├── libs ├── .gitkeep ├── auth │ ├── src │ │ ├── test-setup.ts │ │ ├── testing │ │ │ └── index.ts │ │ ├── lib │ │ │ └── auth-shared │ │ │ │ ├── components │ │ │ │ └── auth-login-button │ │ │ │ │ ├── auth-login-button.component.scss │ │ │ │ │ └── auth-login-button.component.html │ │ │ │ └── auth-shared.common.ts │ │ └── assets │ │ │ └── i18n │ │ │ ├── en.json │ │ │ └── ru.json │ ├── tsconfig.lib.prod.json │ ├── README.md │ ├── tsconfig.json │ ├── tsconfig.spec.json │ ├── tslint.json │ └── jest.config.js ├── common │ ├── src │ │ ├── test-setup.ts │ │ ├── testing │ │ │ └── index.ts │ │ ├── lib │ │ │ ├── types │ │ │ │ └── dictionary.type.ts │ │ │ └── common.tokens.ts │ │ └── index.ts │ ├── tsconfig.json │ ├── README.md │ ├── tsconfig.spec.json │ └── jest.config.js ├── events │ ├── src │ │ ├── test-setup.ts │ │ ├── testing │ │ │ └── index.ts │ │ └── lib │ │ │ ├── events │ │ │ ├── components │ │ │ │ └── event-new-field-wrapper │ │ │ │ │ └── event-new-field-wrapper.component.scss │ │ │ └── containers │ │ │ │ └── event-new │ │ │ │ └── event-new.component.scss │ │ │ └── events-core │ │ │ └── interfaces │ │ │ └── events-core-options.interface.ts │ ├── tsconfig.json │ ├── README.md │ ├── tsconfig.spec.json │ └── jest.config.js ├── shared │ ├── src │ │ ├── test-setup.ts │ │ ├── testing │ │ │ └── index.ts │ │ ├── lib │ │ │ ├── components │ │ │ │ ├── infinite-scroll │ │ │ │ │ ├── infinite-scroll.component.scss │ │ │ │ │ └── infinite-scroll.component.html │ │ │ │ └── icon │ │ │ │ │ └── icon.component.ts │ │ │ └── pipes │ │ │ │ ├── localized-date.pipe.spec.ts │ │ │ │ └── language-label.pipe.ts │ │ └── index.ts │ ├── tsconfig.json │ ├── README.md │ ├── tsconfig.spec.json │ └── jest.config.js ├── store │ ├── src │ │ ├── test-setup.ts │ │ ├── testing │ │ │ ├── index.ts │ │ │ └── stubs │ │ │ │ └── payload.stub.ts │ │ └── lib │ │ │ ├── +state │ │ │ ├── root.reducer.spec.ts │ │ │ └── root.effects.ts │ │ │ └── interfaces │ │ │ ├── payload.interface.ts │ │ │ └── router-url-state.interface.ts │ ├── README.md │ ├── tsconfig.json │ ├── tsconfig.spec.json │ └── jest.config.js ├── users │ ├── src │ │ ├── test-setup.ts │ │ ├── testing │ │ │ ├── index.ts │ │ │ └── stubs │ │ │ │ └── user.stub.ts │ │ └── lib │ │ │ ├── users-shared │ │ │ ├── components │ │ │ │ └── user-load-button │ │ │ │ │ ├── user-load-button.component.scss │ │ │ │ │ └── user-load-button.component.html │ │ │ └── users-shared.common.ts │ │ │ └── users-core │ │ │ ├── interfaces │ │ │ ├── user.interface.ts │ │ │ └── user-apollo.interface.ts │ │ │ └── graphql │ │ │ └── user.queries.ts │ ├── tsconfig.lib.prod.json │ ├── README.md │ ├── tsconfig.json │ ├── tsconfig.spec.json │ └── jest.config.js ├── layouts │ ├── src │ │ ├── test-setup.ts │ │ ├── lib │ │ │ ├── layout │ │ │ │ ├── components │ │ │ │ │ ├── side-languages │ │ │ │ │ │ └── side-languages.component.scss │ │ │ │ │ ├── footer-copyright │ │ │ │ │ │ ├── footer-copyright.component.html │ │ │ │ │ │ └── footer-copyright.component.scss │ │ │ │ │ ├── logo │ │ │ │ │ │ ├── logo.component.html │ │ │ │ │ │ ├── logo.component.scss │ │ │ │ │ │ └── logo.component.ts │ │ │ │ │ ├── side-tools │ │ │ │ │ │ ├── side-tools.component.html │ │ │ │ │ │ └── side-tools.component.ts │ │ │ │ │ ├── toolbar │ │ │ │ │ │ ├── toolbar.component.scss │ │ │ │ │ │ ├── toolbar.component.html │ │ │ │ │ │ └── toolbar.component.ts │ │ │ │ │ ├── sidebar │ │ │ │ │ │ └── sidebar.component.html │ │ │ │ │ ├── side-search │ │ │ │ │ │ └── side-search.component.html │ │ │ │ │ ├── footer-bottom │ │ │ │ │ │ ├── footer-bottom.component.html │ │ │ │ │ │ ├── footer-bottom.component.ts │ │ │ │ │ │ └── footer-bottom.component.scss │ │ │ │ │ ├── footer │ │ │ │ │ │ ├── footer.component.scss │ │ │ │ │ │ └── footer.component.ts │ │ │ │ │ ├── hamburger │ │ │ │ │ │ └── hamburger.component.html │ │ │ │ │ ├── search │ │ │ │ │ │ └── search.component.scss │ │ │ │ │ ├── header │ │ │ │ │ │ └── header.component.html │ │ │ │ │ └── footer-social │ │ │ │ │ │ └── footer-social.component.html │ │ │ │ ├── containers │ │ │ │ │ └── base-layout │ │ │ │ │ │ └── base-layout.component.scss │ │ │ │ ├── interfaces │ │ │ │ │ └── promo-top.interface.ts │ │ │ │ └── layouts.tokens.ts │ │ │ ├── layout-breadcrumbs │ │ │ │ └── layout-breadcrumbs.common.ts │ │ │ └── layout-core │ │ │ │ └── interfaces │ │ │ │ └── breadcrumb.interface.ts │ │ ├── testing │ │ │ ├── index.ts │ │ │ └── stubs │ │ │ │ └── payloads.stub.ts │ │ └── assets │ │ │ └── images │ │ │ ├── slides │ │ │ ├── slide-1.webp │ │ │ ├── slide-2.webp │ │ │ └── slide-3.webp │ │ │ ├── layouts │ │ │ └── footer-bg.webp │ │ │ ├── promo-top │ │ │ └── promo-top-1.webp │ │ │ ├── transitions │ │ │ └── slider-sprite.png │ │ │ └── icons │ │ │ └── down-arrow.svg │ ├── tsconfig.json │ ├── README.md │ ├── tsconfig.spec.json │ └── jest.config.js ├── responsive │ ├── src │ │ ├── test-setup.ts │ │ ├── testing │ │ │ └── index.ts │ │ └── lib │ │ │ ├── responsive.tokens.ts │ │ │ └── interfaces │ │ │ └── adaptive.interface.ts │ ├── tsconfig.json │ ├── README.md │ ├── tsconfig.spec.json │ └── jest.config.js ├── storage │ ├── src │ │ ├── test-setup.ts │ │ ├── testing │ │ │ └── index.ts │ │ └── lib │ │ │ └── interfaces │ │ │ ├── local-storage.interface.ts │ │ │ ├── session-storage.interface.ts │ │ │ └── memory-storage.interface.ts │ ├── tsconfig.json │ ├── README.md │ ├── tsconfig.spec.json │ └── jest.config.js ├── translation │ ├── src │ │ ├── test-setup.ts │ │ ├── testing │ │ │ └── index.ts │ │ ├── assets │ │ │ └── i18n │ │ │ │ ├── en.json │ │ │ │ └── ru.json │ │ └── lib │ │ │ ├── interfaces │ │ │ └── translation.interface.ts │ │ │ └── loaders │ │ │ ├── server-translate.loader.spec.ts │ │ │ └── browser-translate.loader.spec.ts │ ├── tsconfig.json │ ├── README.md │ ├── tsconfig.spec.json │ └── jest.config.js ├── dynamic-forms │ ├── src │ │ ├── test-setup.ts │ │ ├── lib │ │ │ ├── components │ │ │ │ ├── field-input │ │ │ │ │ └── field-input.component.scss │ │ │ │ ├── field-textarea │ │ │ │ │ └── field-textarea.component.scss │ │ │ │ ├── field-typehead │ │ │ │ │ └── field-typehead.component.scss │ │ │ │ ├── field-wrapper │ │ │ │ │ └── field-wrapper.component.scss │ │ │ │ ├── field-input-mask │ │ │ │ │ └── field-input-mask.component.scss │ │ │ │ ├── field-empty-wrapper │ │ │ │ │ ├── field-empty-wrapper.component.scss │ │ │ │ │ └── field-empty-wrapper.component.html │ │ │ │ ├── field-input-ucfirst │ │ │ │ │ └── field-input-ucfirst.component.scss │ │ │ │ ├── form │ │ │ │ │ ├── form.component.scss │ │ │ │ │ └── form.component.html │ │ │ │ ├── field-date │ │ │ │ │ └── field-date.component.scss │ │ │ │ ├── field-radio │ │ │ │ │ └── field-radio.component.scss │ │ │ │ ├── field-checkbox │ │ │ │ │ └── field-checkbox.component.scss │ │ │ │ ├── field-input-range │ │ │ │ │ └── field-input-range.component.scss │ │ │ │ └── field-select │ │ │ │ │ └── field-select.component.scss │ │ │ ├── directives │ │ │ │ ├── form-host.directive.ts │ │ │ │ ├── form-host.directive.spec.ts │ │ │ │ ├── input-range.directive.spec.ts │ │ │ │ ├── input-mask.directive.spec.ts │ │ │ │ └── input-ucfirst.directive.spec.ts │ │ │ └── interfaces │ │ │ │ └── dynamic-forms-options.interface.ts │ │ └── testing │ │ │ └── index.ts │ ├── tsconfig.json │ ├── README.md │ ├── tsconfig.spec.json │ └── jest.config.js └── entities │ ├── tsconfig.json │ ├── src │ └── lib │ │ └── interfaces │ │ └── types │ │ ├── entity-options.type.ts │ │ └── locale.type.ts │ ├── README.md │ ├── tsconfig.lib.json │ ├── jest.config.js │ └── tsconfig.spec.json ├── tools ├── schematics │ └── .gitkeep └── tsconfig.tools.json ├── apps ├── backend │ └── api │ │ ├── src │ │ ├── app │ │ │ ├── .gitkeep │ │ │ ├── app.graphql │ │ │ ├── users │ │ │ │ ├── users.graphql │ │ │ │ └── decorators │ │ │ │ │ └── user.decorator.ts │ │ │ ├── app.controller.ts │ │ │ └── auth │ │ │ │ ├── auth.graphql │ │ │ │ └── decorators │ │ │ │ └── auth.decorator.ts │ │ ├── assets │ │ │ ├── .gitkeep │ │ │ └── uploads │ │ │ │ ├── image-1.webp │ │ │ │ ├── image-10.jpg │ │ │ │ ├── image-2.jpg │ │ │ │ ├── image-3.webp │ │ │ │ ├── image-4.webp │ │ │ │ ├── image-5.webp │ │ │ │ ├── image-6.jpg │ │ │ │ ├── image-7.webp │ │ │ │ ├── image-8.jpg │ │ │ │ └── image-9.jpg │ │ └── environments │ │ │ ├── environment.prod.ts │ │ │ └── environment.ts │ │ ├── tslint.json │ │ ├── jest.config.js │ │ ├── tsconfig.json │ │ ├── tsconfig.app.json │ │ ├── tsconfig.spec.json │ │ ├── tsconfig.migrations.json │ │ └── tsconfig.entities.json └── frontend │ ├── base │ ├── src │ │ ├── assets │ │ │ └── .gitkeep │ │ ├── app │ │ │ ├── app.component.scss │ │ │ ├── app.component.ts │ │ │ └── app.browser.module.ts │ │ ├── test-setup.ts │ │ ├── environments │ │ │ └── environment.prod.ts │ │ ├── styles.scss │ │ ├── favicon.ico │ │ └── index.html │ ├── tsconfig.json │ ├── tsconfig.app.json │ ├── jest.config.js │ ├── tsconfig.spec.json │ ├── tslint.json │ └── tsconfig.server.json │ ├── css │ ├── src │ │ ├── assets │ │ │ └── .gitkeep │ │ ├── stylesheets │ │ │ ├── mixins │ │ │ │ └── .gitkeep │ │ │ ├── utils.scss │ │ │ ├── style.scss │ │ │ └── common │ │ │ │ └── theme.scss │ │ ├── test-setup.ts │ │ ├── app │ │ │ ├── grids │ │ │ │ ├── containers │ │ │ │ │ └── grids-demo │ │ │ │ │ │ ├── grids-demo.component.scss │ │ │ │ │ │ └── grids-demo.component.ts │ │ │ │ └── components │ │ │ │ │ ├── grid-new │ │ │ │ │ └── grid-new.component.ts │ │ │ │ │ ├── grid-old │ │ │ │ │ └── grid-old.component.ts │ │ │ │ │ └── grid-feature │ │ │ │ │ └── grid-feature.component.ts │ │ │ ├── fixed-adaptive │ │ │ │ └── containers │ │ │ │ │ └── fixed-adaptive-demo │ │ │ │ │ ├── fixed-adaptive-demo.component.scss │ │ │ │ │ └── fixed-adaptive-demo.component.html │ │ │ ├── home │ │ │ │ ├── containers │ │ │ │ │ └── home │ │ │ │ │ │ ├── home.component.scss │ │ │ │ │ │ ├── home.component.html │ │ │ │ │ │ └── home.component.ts │ │ │ │ └── home.common.ts │ │ │ └── app.component.ts │ │ ├── environments │ │ │ └── environment.prod.ts │ │ ├── favicon.ico │ │ ├── styles.scss │ │ └── index.html │ ├── tsconfig.json │ ├── tsconfig.app.json │ ├── tsconfig.spec.json │ └── jest.config.js │ ├── forms │ ├── proxy.conf.json │ ├── src │ │ ├── assets │ │ │ ├── .gitkeep │ │ │ └── images │ │ │ │ ├── home │ │ │ │ └── main.webp │ │ │ │ └── events │ │ │ │ └── main.webp │ │ ├── app │ │ │ ├── core │ │ │ │ └── containers │ │ │ │ │ └── app │ │ │ │ │ ├── app.component.scss │ │ │ │ │ └── app.component.html │ │ │ ├── home │ │ │ │ └── containers │ │ │ │ │ └── home │ │ │ │ │ └── home.component.scss │ │ │ └── events │ │ │ │ └── events.common.ts │ │ ├── test-setup.ts │ │ ├── favicon.ico │ │ ├── styles.scss │ │ ├── styles │ │ │ ├── common │ │ │ │ ├── buttons.scss │ │ │ │ └── theme.scss │ │ │ ├── utils.scss │ │ │ ├── mixins │ │ │ │ └── layouts.scss │ │ │ ├── material │ │ │ │ └── theme.scss │ │ │ └── style.scss │ │ ├── environments │ │ │ └── environment.prod.ts │ │ ├── main.server.ts │ │ └── index.html │ ├── tsconfig.json │ ├── tsconfig.app.json │ ├── tsconfig.spec.json │ ├── jest.config.js │ └── tsconfig.server.json │ ├── graphql │ ├── src │ │ ├── assets │ │ │ ├── .gitkeep │ │ │ └── images │ │ │ │ ├── home │ │ │ │ └── main.webp │ │ │ │ └── events │ │ │ │ └── main.webp │ │ ├── app │ │ │ ├── core │ │ │ │ └── containers │ │ │ │ │ └── app │ │ │ │ │ ├── app.component.scss │ │ │ │ │ └── app.component.html │ │ │ ├── home │ │ │ │ └── containers │ │ │ │ │ └── home │ │ │ │ │ └── home.component.scss │ │ │ └── events │ │ │ │ └── events.common.ts │ │ ├── test-setup.ts │ │ ├── favicon.ico │ │ ├── styles │ │ │ ├── common │ │ │ │ ├── theme.scss │ │ │ │ └── buttons.scss │ │ │ ├── utils.scss │ │ │ ├── mixins │ │ │ │ └── layouts.scss │ │ │ ├── material │ │ │ │ └── theme.scss │ │ │ └── style.scss │ │ ├── styles.scss │ │ └── environments │ │ │ └── environment.prod.ts │ ├── proxy.conf.json │ ├── tsconfig.json │ ├── tsconfig.app.json │ ├── tsconfig.spec.json │ ├── jest.config.js │ └── tsconfig.server.json │ ├── markup │ ├── proxy.conf.json │ ├── src │ │ ├── assets │ │ │ ├── .gitkeep │ │ │ └── images │ │ │ │ ├── home │ │ │ │ └── main.webp │ │ │ │ └── events │ │ │ │ └── main.webp │ │ ├── app │ │ │ ├── core │ │ │ │ └── containers │ │ │ │ │ └── app │ │ │ │ │ ├── app.component.scss │ │ │ │ │ └── app.component.html │ │ │ ├── events │ │ │ │ └── containers │ │ │ │ │ └── events │ │ │ │ │ ├── events.component.html │ │ │ │ │ ├── events.component.scss │ │ │ │ │ └── events.component.ts │ │ │ └── home │ │ │ │ └── containers │ │ │ │ └── home │ │ │ │ ├── home.component.scss │ │ │ │ └── home.component.html │ │ ├── test-setup.ts │ │ ├── favicon.ico │ │ ├── styles.scss │ │ ├── styles │ │ │ ├── common │ │ │ │ ├── theme.scss │ │ │ │ └── buttons.scss │ │ │ ├── utils.scss │ │ │ ├── mixins │ │ │ │ └── layouts.scss │ │ │ ├── material │ │ │ │ └── theme.scss │ │ │ └── style.scss │ │ ├── environments │ │ │ └── environment.prod.ts │ │ └── index.html │ ├── tsconfig.json │ ├── tsconfig.app.json │ ├── tsconfig.spec.json │ ├── jest.config.js │ └── tsconfig.server.json │ ├── redux │ ├── src │ │ ├── assets │ │ │ ├── .gitkeep │ │ │ └── i18n │ │ │ │ ├── en.json │ │ │ │ └── ru.json │ │ ├── app │ │ │ ├── users │ │ │ │ ├── containers │ │ │ │ │ └── user │ │ │ │ │ │ ├── user.component.scss │ │ │ │ │ │ ├── user.component.html │ │ │ │ │ │ └── user.component.ts │ │ │ │ ├── +state │ │ │ │ │ └── user.models.ts │ │ │ │ └── users.common.ts │ │ │ ├── app.component.ts │ │ │ ├── home │ │ │ │ ├── home.common.ts │ │ │ │ └── containers │ │ │ │ │ └── home │ │ │ │ │ └── home.component.ts │ │ │ └── app.common.ts │ │ ├── test-setup.ts │ │ ├── styles.scss │ │ ├── favicon.ico │ │ ├── environments │ │ │ └── environment.prod.ts │ │ └── index.html │ ├── tsconfig.json │ ├── tsconfig.app.json │ ├── tsconfig.spec.json │ ├── tsconfig.server.json │ └── jest.config.js │ ├── shared │ ├── src │ │ ├── assets │ │ │ └── .gitkeep │ │ ├── app │ │ │ ├── core │ │ │ │ ├── containers │ │ │ │ │ └── app │ │ │ │ │ │ ├── app.component.scss │ │ │ │ │ │ └── app.component.html │ │ │ │ └── core.common.ts │ │ │ └── home │ │ │ │ ├── home.common.ts │ │ │ │ └── containers │ │ │ │ └── home │ │ │ │ └── home.component.scss │ │ ├── test-setup.ts │ │ ├── favicon.ico │ │ ├── styles.scss │ │ ├── styles │ │ │ ├── utils.scss │ │ │ └── style.scss │ │ ├── environments │ │ │ └── environment.prod.ts │ │ └── index.html │ ├── tsconfig.json │ ├── tsconfig.app.json │ ├── tsconfig.spec.json │ ├── jest.config.js │ └── tsconfig.server.json │ ├── storage │ ├── src │ │ ├── assets │ │ │ └── .gitkeep │ │ ├── app │ │ │ ├── core │ │ │ │ ├── containers │ │ │ │ │ └── app │ │ │ │ │ │ ├── app.component.scss │ │ │ │ │ │ ├── app.component.html │ │ │ │ │ │ └── app.component.ts │ │ │ │ └── core.common.ts │ │ │ ├── home │ │ │ │ ├── containers │ │ │ │ │ └── home │ │ │ │ │ │ ├── home.component.scss │ │ │ │ │ │ └── home.component.html │ │ │ │ ├── home.common.ts │ │ │ │ └── home.module.ts │ │ │ └── app.module.ts │ │ ├── test-setup.ts │ │ ├── environments │ │ │ └── environment.prod.ts │ │ ├── styles.scss │ │ └── favicon.ico │ ├── tsconfig.json │ ├── tsconfig.app.json │ ├── tsconfig.spec.json │ ├── jest.config.js │ └── tsconfig.server.json │ ├── store │ ├── src │ │ ├── assets │ │ │ ├── .gitkeep │ │ │ └── i18n │ │ │ │ ├── en.json │ │ │ │ └── ru.json │ │ ├── app │ │ │ ├── core │ │ │ │ ├── containers │ │ │ │ │ └── app │ │ │ │ │ │ ├── app.component.scss │ │ │ │ │ │ ├── app.component.html │ │ │ │ │ │ └── app.component.ts │ │ │ │ └── core.common.ts │ │ │ └── home │ │ │ │ ├── containers │ │ │ │ └── home │ │ │ │ │ └── home.component.scss │ │ │ │ └── home.common.ts │ │ ├── test-setup.ts │ │ ├── styles.scss │ │ ├── favicon.ico │ │ ├── environments │ │ │ └── environment.prod.ts │ │ └── index.html │ ├── tsconfig.json │ ├── tsconfig.app.json │ ├── tsconfig.spec.json │ ├── jest.config.js │ └── tsconfig.server.json │ ├── testing │ ├── src │ │ ├── assets │ │ │ ├── .gitkeep │ │ │ └── i18n │ │ │ │ ├── en.json │ │ │ │ └── ru.json │ │ ├── app │ │ │ ├── home │ │ │ │ ├── containers │ │ │ │ │ ├── user │ │ │ │ │ │ ├── user.component.scss │ │ │ │ │ │ └── user.component.html │ │ │ │ │ └── home │ │ │ │ │ │ ├── home.component.scss │ │ │ │ │ │ ├── home.component.html │ │ │ │ │ │ └── home.component.ts │ │ │ │ └── components │ │ │ │ │ ├── banner │ │ │ │ │ ├── banner.component.scss │ │ │ │ │ └── banner.component.html │ │ │ │ │ ├── welcome │ │ │ │ │ ├── welcome.component.scss │ │ │ │ │ └── welcome.component.html │ │ │ │ │ ├── banner-edit │ │ │ │ │ ├── banner-edit.component.scss │ │ │ │ │ └── banner-edit.component.html │ │ │ │ │ ├── banner-list │ │ │ │ │ ├── banner-list.component.scss │ │ │ │ │ └── banner-list.component.html │ │ │ │ │ ├── banner-toggle │ │ │ │ │ ├── banner-toggle.component.scss │ │ │ │ │ └── banner-toggle.component.html │ │ │ │ │ ├── lightswitch │ │ │ │ │ ├── lightswitch.component.scss │ │ │ │ │ └── lightswitch.component.html │ │ │ │ │ ├── welcome-mock │ │ │ │ │ ├── welcome-mock.component.scss │ │ │ │ │ └── welcome-mock.component.html │ │ │ │ │ ├── banner-details │ │ │ │ │ ├── banner-details.component.scss │ │ │ │ │ └── banner-details.component.html │ │ │ │ │ ├── dashboard-hero │ │ │ │ │ ├── dashboard-hero.component.scss │ │ │ │ │ └── dashboard-hero.component.html │ │ │ │ │ └── banner-title │ │ │ │ │ ├── banner-title.component.html │ │ │ │ │ └── banner-title.component.scss │ │ │ ├── users │ │ │ │ ├── containers │ │ │ │ │ └── user │ │ │ │ │ │ ├── user.component.scss │ │ │ │ │ │ ├── user.component.html │ │ │ │ │ │ └── user.component.ts │ │ │ │ ├── components │ │ │ │ │ ├── user-box │ │ │ │ │ │ └── user-box.component.scss │ │ │ │ │ └── user-card │ │ │ │ │ │ ├── user-card.component.scss │ │ │ │ │ │ └── user-card.component.html │ │ │ │ └── services │ │ │ │ │ ├── simple.service.ts │ │ │ │ │ ├── multiply.service.ts │ │ │ │ │ ├── user-easy.service.ts │ │ │ │ │ └── simple.service.spec.ts │ │ │ ├── app.component.ts │ │ │ └── app.common.ts │ │ ├── test-setup.ts │ │ ├── favicon.ico │ │ ├── styles.scss │ │ ├── styles │ │ │ ├── common │ │ │ │ ├── buttons.scss │ │ │ │ └── theme.scss │ │ │ ├── utils.scss │ │ │ ├── mixins │ │ │ │ └── layouts.scss │ │ │ ├── material │ │ │ │ └── theme.scss │ │ │ └── style.scss │ │ ├── environments │ │ │ └── environment.prod.ts │ │ └── index.html │ ├── tsconfig.json │ ├── tsconfig.app.json │ ├── tsconfig.spec.json │ └── tsconfig.server.json │ ├── theming │ ├── src │ │ ├── assets │ │ │ ├── .gitkeep │ │ │ └── i18n │ │ │ │ ├── en.json │ │ │ │ └── ru.json │ │ ├── app │ │ │ ├── core │ │ │ │ ├── containers │ │ │ │ │ └── app │ │ │ │ │ │ ├── app.component.scss │ │ │ │ │ │ └── app.component.html │ │ │ │ └── core.common.ts │ │ │ └── home │ │ │ │ ├── containers │ │ │ │ └── home │ │ │ │ │ └── home.component.scss │ │ │ │ └── home.common.ts │ │ ├── test-setup.ts │ │ ├── favicon.ico │ │ ├── styles.scss │ │ ├── styles │ │ │ ├── utils.scss │ │ │ └── style.scss │ │ └── environments │ │ │ └── environment.prod.ts │ ├── tsconfig.json │ ├── tsconfig.app.json │ ├── tsconfig.spec.json │ ├── jest.config.js │ └── tsconfig.server.json │ ├── universal │ ├── src │ │ ├── assets │ │ │ └── .gitkeep │ │ ├── test-setup.ts │ │ ├── environments │ │ │ └── environment.prod.ts │ │ ├── styles.scss │ │ ├── favicon.ico │ │ ├── app │ │ │ ├── app.component.ts │ │ │ └── app.server.module.ts │ │ └── index.html │ ├── tsconfig.json │ ├── tsconfig.app.json │ ├── tsconfig.spec.json │ └── tsconfig.server.json │ ├── common-styles │ ├── src │ │ ├── assets │ │ │ ├── .gitkeep │ │ │ └── i18n │ │ │ │ ├── en.json │ │ │ │ └── ru.json │ │ ├── app │ │ │ ├── core │ │ │ │ ├── containers │ │ │ │ │ └── app │ │ │ │ │ │ ├── app.component.scss │ │ │ │ │ │ └── app.component.html │ │ │ │ └── core.common.ts │ │ │ └── home │ │ │ │ └── containers │ │ │ │ └── home │ │ │ │ └── home.component.scss │ │ ├── test-setup.ts │ │ ├── favicon.ico │ │ ├── styles.scss │ │ ├── styles │ │ │ ├── style.scss │ │ │ └── utils.scss │ │ └── environments │ │ │ └── environment.prod.ts │ ├── tsconfig.json │ ├── tsconfig.app.json │ ├── tsconfig.spec.json │ ├── jest.config.js │ └── tsconfig.server.json │ ├── localization │ ├── src │ │ ├── assets │ │ │ └── .gitkeep │ │ ├── app │ │ │ ├── home │ │ │ │ ├── containers │ │ │ │ │ └── home │ │ │ │ │ │ ├── home.component.scss │ │ │ │ │ │ ├── home.component.html │ │ │ │ │ │ └── home.component.ts │ │ │ │ ├── home.common.ts │ │ │ │ └── home.module.ts │ │ │ ├── app.component.ts │ │ │ └── app.common.ts │ │ ├── test-setup.ts │ │ ├── styles.scss │ │ ├── favicon.ico │ │ └── environments │ │ │ └── environment.prod.ts │ ├── tsconfig.json │ ├── tsconfig.app.json │ ├── tsconfig.spec.json │ └── tsconfig.server.json │ ├── responsive │ ├── src │ │ ├── assets │ │ │ ├── .gitkeep │ │ │ └── i18n │ │ │ │ └── en.json │ │ ├── app │ │ │ ├── core │ │ │ │ ├── containers │ │ │ │ │ └── app │ │ │ │ │ │ ├── app.component.scss │ │ │ │ │ │ └── app.component.html │ │ │ │ └── core.common.ts │ │ │ └── home │ │ │ │ ├── containers │ │ │ │ └── home │ │ │ │ │ └── home.component.scss │ │ │ │ └── home.common.ts │ │ ├── test-setup.ts │ │ ├── favicon.ico │ │ ├── styles.scss │ │ ├── styles │ │ │ ├── utils.scss │ │ │ └── style.scss │ │ └── environments │ │ │ └── environment.prod.ts │ ├── tsconfig.json │ ├── tsconfig.app.json │ ├── tsconfig.spec.json │ ├── jest.config.js │ └── tsconfig.server.json │ ├── translation │ ├── src │ │ ├── assets │ │ │ ├── .gitkeep │ │ │ └── i18n │ │ │ │ ├── en.json │ │ │ │ └── ru.json │ │ ├── app │ │ │ ├── core │ │ │ │ ├── containers │ │ │ │ │ └── app │ │ │ │ │ │ ├── app.component.scss │ │ │ │ │ │ ├── app.component.html │ │ │ │ │ │ └── app.component.ts │ │ │ │ └── core.common.ts │ │ │ └── home │ │ │ │ ├── containers │ │ │ │ └── home │ │ │ │ │ └── home.component.scss │ │ │ │ └── home.common.ts │ │ ├── test-setup.ts │ │ ├── styles.scss │ │ ├── favicon.ico │ │ └── environments │ │ │ └── environment.prod.ts │ ├── tsconfig.json │ ├── tsconfig.app.json │ ├── tsconfig.spec.json │ ├── jest.config.js │ └── tsconfig.server.json │ ├── infinite-scroll │ ├── src │ │ ├── assets │ │ │ └── .gitkeep │ │ ├── test-setup.ts │ │ ├── styles.scss │ │ ├── favicon.ico │ │ └── environments │ │ │ └── environment.prod.ts │ ├── tsconfig.json │ ├── tsconfig.app.json │ ├── tsconfig.spec.json │ └── tsconfig.server.json │ ├── translation-state │ ├── src │ │ ├── assets │ │ │ ├── .gitkeep │ │ │ └── i18n │ │ │ │ ├── en.json │ │ │ │ └── ru.json │ │ ├── app │ │ │ ├── core │ │ │ │ ├── containers │ │ │ │ │ └── app │ │ │ │ │ │ ├── app.component.scss │ │ │ │ │ │ └── app.component.html │ │ │ │ └── core.common.ts │ │ │ └── home │ │ │ │ └── containers │ │ │ │ └── home │ │ │ │ └── home.component.scss │ │ ├── test-setup.ts │ │ ├── styles.scss │ │ ├── favicon.ico │ │ ├── styles │ │ │ ├── common │ │ │ │ ├── buttons.scss │ │ │ │ └── theme.scss │ │ │ ├── utils.scss │ │ │ ├── mixins │ │ │ │ └── layouts.scss │ │ │ ├── material │ │ │ │ └── theme.scss │ │ │ └── style.scss │ │ └── environments │ │ │ └── environment.prod.ts │ ├── tsconfig.json │ ├── tsconfig.app.json │ ├── tsconfig.spec.json │ ├── jest.config.js │ └── tsconfig.server.json │ └── base-e2e │ ├── src │ ├── support │ │ └── app.po.ts │ ├── fixtures │ │ └── example.json │ └── integration │ │ └── app.spec.ts │ ├── tsconfig.json │ └── tsconfig.e2e.json ├── styles ├── mixins.scss ├── common │ ├── forms.scss │ ├── buttons.scss │ └── fonts.scss ├── variables.scss ├── style.scss ├── utils.scss └── material │ └── theme.scss ├── .vscode └── extensions.json ├── .eslintrc ├── .prettierignore ├── jest.config.js ├── .editorconfig ├── .prettierrc ├── docker-compose └── docker-compose.yml └── ormconfig.example.json /libs/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tools/schematics/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/backend/api/src/app/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/backend/api/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/base/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/css/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/forms/proxy.conf.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /apps/frontend/forms/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/graphql/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/markup/proxy.conf.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /apps/frontend/markup/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/redux/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/shared/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/storage/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/store/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/theming/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/universal/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/base/src/app/app.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/common-styles/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/graphql/proxy.conf.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /apps/frontend/localization/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/responsive/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/translation/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /styles/mixins.scss: -------------------------------------------------------------------------------- 1 | @import 'mixins/buttons'; 2 | -------------------------------------------------------------------------------- /apps/frontend/css/src/stylesheets/mixins/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/infinite-scroll/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/translation-state/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /libs/auth/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular'; 2 | -------------------------------------------------------------------------------- /libs/auth/src/testing/index.ts: -------------------------------------------------------------------------------- 1 | export const authTest = 1; 2 | -------------------------------------------------------------------------------- /libs/common/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular'; 2 | -------------------------------------------------------------------------------- /libs/events/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular'; 2 | -------------------------------------------------------------------------------- /libs/shared/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular'; 2 | -------------------------------------------------------------------------------- /libs/store/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular'; 2 | -------------------------------------------------------------------------------- /libs/users/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular'; 2 | -------------------------------------------------------------------------------- /apps/frontend/forms/src/app/core/containers/app/app.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/graphql/src/app/core/containers/app/app.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/markup/src/app/core/containers/app/app.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/shared/src/app/core/containers/app/app.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/storage/src/app/core/containers/app/app.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/store/src/app/core/containers/app/app.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/store/src/app/home/containers/home/home.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/theming/src/app/core/containers/app/app.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /libs/layouts/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular'; 2 | -------------------------------------------------------------------------------- /libs/responsive/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular'; 2 | -------------------------------------------------------------------------------- /libs/shared/src/testing/index.ts: -------------------------------------------------------------------------------- 1 | export const sharedTest = 1; 2 | -------------------------------------------------------------------------------- /libs/storage/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular'; 2 | -------------------------------------------------------------------------------- /libs/storage/src/testing/index.ts: -------------------------------------------------------------------------------- 1 | export const storageTest = 1; 2 | -------------------------------------------------------------------------------- /libs/translation/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular'; 2 | -------------------------------------------------------------------------------- /apps/frontend/base/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular'; 2 | -------------------------------------------------------------------------------- /apps/frontend/css/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular'; 2 | -------------------------------------------------------------------------------- /apps/frontend/forms/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular'; 2 | -------------------------------------------------------------------------------- /apps/frontend/graphql/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular'; 2 | -------------------------------------------------------------------------------- /apps/frontend/markup/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular'; 2 | -------------------------------------------------------------------------------- /apps/frontend/redux/src/app/users/containers/user/user.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/redux/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular'; 2 | -------------------------------------------------------------------------------- /apps/frontend/responsive/src/app/core/containers/app/app.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/shared/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular'; 2 | -------------------------------------------------------------------------------- /apps/frontend/storage/src/app/home/containers/home/home.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/storage/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular'; 2 | -------------------------------------------------------------------------------- /apps/frontend/store/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular'; 2 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/home/containers/user/user.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/users/containers/user/user.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular'; 2 | -------------------------------------------------------------------------------- /apps/frontend/theming/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular'; 2 | -------------------------------------------------------------------------------- /apps/frontend/translation/src/app/core/containers/app/app.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /libs/common/src/testing/index.ts: -------------------------------------------------------------------------------- 1 | export * from './stub/error.stub'; 2 | -------------------------------------------------------------------------------- /libs/dynamic-forms/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular'; 2 | -------------------------------------------------------------------------------- /libs/events/src/testing/index.ts: -------------------------------------------------------------------------------- 1 | export * from './stubs/event.stub'; 2 | -------------------------------------------------------------------------------- /libs/users/src/testing/index.ts: -------------------------------------------------------------------------------- 1 | export * from './stubs/user.stub'; 2 | -------------------------------------------------------------------------------- /apps/frontend/common-styles/src/app/core/containers/app/app.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/common-styles/src/app/home/containers/home/home.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/localization/src/app/home/containers/home/home.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/localization/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular'; 2 | -------------------------------------------------------------------------------- /apps/frontend/responsive/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular'; 2 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/home/components/banner/banner.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/home/components/welcome/welcome.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/home/containers/home/home.component.scss: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /apps/frontend/translation-state/src/app/core/containers/app/app.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/translation/src/app/home/containers/home/home.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/translation/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular'; 2 | -------------------------------------------------------------------------------- /apps/frontend/universal/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular'; 2 | -------------------------------------------------------------------------------- /libs/dynamic-forms/src/lib/components/field-input/field-input.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/common-styles/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular'; 2 | -------------------------------------------------------------------------------- /apps/frontend/css/src/app/grids/containers/grids-demo/grids-demo.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/infinite-scroll/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular'; 2 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/users/components/user-box/user-box.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/users/components/user-card/user-card.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/translation-state/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular'; 2 | -------------------------------------------------------------------------------- /libs/dynamic-forms/src/lib/components/field-textarea/field-textarea.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /libs/dynamic-forms/src/lib/components/field-typehead/field-typehead.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /libs/dynamic-forms/src/lib/components/field-wrapper/field-wrapper.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /libs/responsive/src/testing/index.ts: -------------------------------------------------------------------------------- 1 | export * from './stubs/responsive.stub'; 2 | -------------------------------------------------------------------------------- /libs/translation/src/testing/index.ts: -------------------------------------------------------------------------------- 1 | export * from './stubs/translation.stub'; 2 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/home/components/banner-edit/banner-edit.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/home/components/banner-list/banner-list.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/home/components/banner-toggle/banner-toggle.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/home/components/lightswitch/lightswitch.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/home/components/welcome-mock/welcome-mock.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /libs/dynamic-forms/src/lib/components/field-input-mask/field-input-mask.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/home/components/banner-details/banner-details.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/home/components/dashboard-hero/dashboard-hero.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/translation/src/assets/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "brand": "Medium stories" 3 | } 4 | -------------------------------------------------------------------------------- /apps/frontend/translation/src/assets/i18n/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "brand": "Medium stories" 3 | } 4 | -------------------------------------------------------------------------------- /libs/auth/src/lib/auth-shared/components/auth-login-button/auth-login-button.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /libs/dynamic-forms/src/lib/components/field-empty-wrapper/field-empty-wrapper.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /libs/dynamic-forms/src/lib/components/field-input-ucfirst/field-input-ucfirst.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /libs/users/src/lib/users-shared/components/user-load-button/user-load-button.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/base-e2e/src/support/app.po.ts: -------------------------------------------------------------------------------- 1 | export const getGreeting = () => cy.get('h1'); 2 | -------------------------------------------------------------------------------- /styles/common/forms.scss: -------------------------------------------------------------------------------- 1 | @import '../utils'; 2 | 3 | textarea { 4 | max-width: 100%; 5 | } 6 | -------------------------------------------------------------------------------- /apps/frontend/forms/src/app/core/containers/app/app.component.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /apps/frontend/markup/src/app/core/containers/app/app.component.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /apps/frontend/shared/src/app/core/containers/app/app.component.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /apps/frontend/store/src/app/core/containers/app/app.component.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/home/components/banner/banner.component.html: -------------------------------------------------------------------------------- 1 |

banner works!

2 | -------------------------------------------------------------------------------- /libs/events/src/lib/events/components/event-new-field-wrapper/event-new-field-wrapper.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/css/src/app/fixed-adaptive/containers/fixed-adaptive-demo/fixed-adaptive-demo.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/frontend/graphql/src/app/core/containers/app/app.component.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /apps/frontend/responsive/src/app/core/containers/app/app.component.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /apps/frontend/storage/src/app/core/containers/app/app.component.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /apps/frontend/theming/src/app/core/containers/app/app.component.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /apps/frontend/translation/src/app/core/containers/app/app.component.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /libs/layouts/src/lib/layout/components/side-languages/side-languages.component.scss: -------------------------------------------------------------------------------- 1 | @import 'utils'; 2 | -------------------------------------------------------------------------------- /apps/frontend/common-styles/src/app/core/containers/app/app.component.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/home/components/banner-title/banner-title.component.html: -------------------------------------------------------------------------------- 1 |

{{ title }}

2 | -------------------------------------------------------------------------------- /libs/store/src/testing/index.ts: -------------------------------------------------------------------------------- 1 | export * from './stubs/payload.stub'; 2 | export * from './utils/store.util'; 3 | -------------------------------------------------------------------------------- /apps/frontend/base/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /apps/frontend/base/src/styles.scss: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | -------------------------------------------------------------------------------- /apps/frontend/css/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/home/containers/home/home.component.html: -------------------------------------------------------------------------------- 1 |
2 |
Home
3 |
4 | -------------------------------------------------------------------------------- /apps/frontend/translation-state/src/app/core/containers/app/app.component.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /libs/shared/src/lib/components/infinite-scroll/infinite-scroll.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /apps/backend/api/src/app/app.graphql: -------------------------------------------------------------------------------- 1 | # Declare common scalar type 2 | scalar Date 3 | scalar JSON 4 | scalar Upload 5 | -------------------------------------------------------------------------------- /apps/frontend/css/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/apps/frontend/css/src/favicon.ico -------------------------------------------------------------------------------- /apps/frontend/redux/src/styles.scss: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | -------------------------------------------------------------------------------- /apps/frontend/storage/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /apps/frontend/storage/src/styles.scss: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | -------------------------------------------------------------------------------- /apps/frontend/store/src/styles.scss: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/home/components/welcome/welcome.component.html: -------------------------------------------------------------------------------- 1 |
{{ welcome }}
2 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/users/components/user-card/user-card.component.html: -------------------------------------------------------------------------------- 1 |

Hello, {{ user.username }}!

2 | -------------------------------------------------------------------------------- /apps/frontend/universal/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /apps/frontend/universal/src/styles.scss: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | -------------------------------------------------------------------------------- /libs/layouts/src/testing/index.ts: -------------------------------------------------------------------------------- 1 | export * from './stubs/nav-menu.stub'; 2 | export * from './stubs/payloads.stub'; 3 | -------------------------------------------------------------------------------- /apps/frontend/base/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/apps/frontend/base/src/favicon.ico -------------------------------------------------------------------------------- /apps/frontend/forms/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/apps/frontend/forms/src/favicon.ico -------------------------------------------------------------------------------- /apps/frontend/localization/src/styles.scss: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | -------------------------------------------------------------------------------- /apps/frontend/redux/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/apps/frontend/redux/src/favicon.ico -------------------------------------------------------------------------------- /apps/frontend/store/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/apps/frontend/store/src/favicon.ico -------------------------------------------------------------------------------- /apps/frontend/translation/src/styles.scss: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | -------------------------------------------------------------------------------- /libs/dynamic-forms/src/testing/index.ts: -------------------------------------------------------------------------------- 1 | export * from './stubs/form.stub'; 2 | export * from './utils/field-component.util'; 3 | -------------------------------------------------------------------------------- /apps/frontend/graphql/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/apps/frontend/graphql/src/favicon.ico -------------------------------------------------------------------------------- /apps/frontend/infinite-scroll/src/styles.scss: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | -------------------------------------------------------------------------------- /apps/frontend/markup/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/apps/frontend/markup/src/favicon.ico -------------------------------------------------------------------------------- /apps/frontend/redux/src/app/users/containers/user/user.component.html: -------------------------------------------------------------------------------- 1 |
2 |

user works!

3 |
4 | -------------------------------------------------------------------------------- /apps/frontend/shared/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/apps/frontend/shared/src/favicon.ico -------------------------------------------------------------------------------- /apps/frontend/storage/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/apps/frontend/storage/src/favicon.ico -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/home/components/welcome-mock/welcome-mock.component.html: -------------------------------------------------------------------------------- 1 |
{{ welcome }}
2 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/apps/frontend/testing/src/favicon.ico -------------------------------------------------------------------------------- /apps/frontend/theming/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/apps/frontend/theming/src/favicon.ico -------------------------------------------------------------------------------- /apps/frontend/translation-state/src/styles.scss: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | -------------------------------------------------------------------------------- /libs/shared/src/lib/components/infinite-scroll/infinite-scroll.component.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | -------------------------------------------------------------------------------- /apps/frontend/responsive/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/apps/frontend/responsive/src/favicon.ico -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/home/components/banner-toggle/banner-toggle.component.html: -------------------------------------------------------------------------------- 1 |
{{ message }}
2 | -------------------------------------------------------------------------------- /apps/frontend/universal/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/apps/frontend/universal/src/favicon.ico -------------------------------------------------------------------------------- /libs/dynamic-forms/src/lib/components/field-empty-wrapper/field-empty-wrapper.component.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /apps/frontend/common-styles/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/apps/frontend/common-styles/src/favicon.ico -------------------------------------------------------------------------------- /apps/frontend/localization/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/apps/frontend/localization/src/favicon.ico -------------------------------------------------------------------------------- /apps/frontend/translation/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/apps/frontend/translation/src/favicon.ico -------------------------------------------------------------------------------- /libs/dynamic-forms/src/lib/components/form/form.component.scss: -------------------------------------------------------------------------------- 1 | @import 'utils'; 2 | 3 | .dynamic-form { 4 | @include clearfix(); 5 | } 6 | -------------------------------------------------------------------------------- /apps/frontend/base-e2e/src/fixtures/example.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Using fixtures to represent data", 3 | "email": "hello@cypress.io" 4 | } 5 | -------------------------------------------------------------------------------- /apps/frontend/forms/src/styles.scss: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | @import 'styles/style'; 3 | -------------------------------------------------------------------------------- /apps/frontend/graphql/src/styles/common/theme.scss: -------------------------------------------------------------------------------- 1 | @import 'utils'; 2 | 3 | ::selection { 4 | background: $primary; 5 | color: white; 6 | } 7 | -------------------------------------------------------------------------------- /apps/frontend/infinite-scroll/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/apps/frontend/infinite-scroll/src/favicon.ico -------------------------------------------------------------------------------- /apps/frontend/markup/src/styles.scss: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | @import 'styles/style'; 3 | -------------------------------------------------------------------------------- /apps/frontend/markup/src/styles/common/theme.scss: -------------------------------------------------------------------------------- 1 | @import 'utils'; 2 | 3 | ::selection { 4 | background: $primary; 5 | color: white; 6 | } 7 | -------------------------------------------------------------------------------- /apps/frontend/shared/src/styles.scss: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | @import 'styles/style'; 3 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/home/components/banner-title/banner-title.component.scss: -------------------------------------------------------------------------------- 1 | h1 { 2 | color: green; 3 | font-size: 1rem; 4 | } 5 | -------------------------------------------------------------------------------- /libs/dynamic-forms/src/lib/components/field-date/field-date.component.scss: -------------------------------------------------------------------------------- 1 | @import 'utils'; 2 | @import 'styles/components/forms/date-beauty'; 3 | -------------------------------------------------------------------------------- /apps/backend/api/src/assets/uploads/image-1.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/apps/backend/api/src/assets/uploads/image-1.webp -------------------------------------------------------------------------------- /apps/backend/api/src/assets/uploads/image-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/apps/backend/api/src/assets/uploads/image-10.jpg -------------------------------------------------------------------------------- /apps/backend/api/src/assets/uploads/image-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/apps/backend/api/src/assets/uploads/image-2.jpg -------------------------------------------------------------------------------- /apps/backend/api/src/assets/uploads/image-3.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/apps/backend/api/src/assets/uploads/image-3.webp -------------------------------------------------------------------------------- /apps/backend/api/src/assets/uploads/image-4.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/apps/backend/api/src/assets/uploads/image-4.webp -------------------------------------------------------------------------------- /apps/backend/api/src/assets/uploads/image-5.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/apps/backend/api/src/assets/uploads/image-5.webp -------------------------------------------------------------------------------- /apps/backend/api/src/assets/uploads/image-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/apps/backend/api/src/assets/uploads/image-6.jpg -------------------------------------------------------------------------------- /apps/backend/api/src/assets/uploads/image-7.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/apps/backend/api/src/assets/uploads/image-7.webp -------------------------------------------------------------------------------- /apps/backend/api/src/assets/uploads/image-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/apps/backend/api/src/assets/uploads/image-8.jpg -------------------------------------------------------------------------------- /apps/backend/api/src/assets/uploads/image-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/apps/backend/api/src/assets/uploads/image-9.jpg -------------------------------------------------------------------------------- /apps/frontend/css/src/styles.scss: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | @import './stylesheets/style'; 3 | -------------------------------------------------------------------------------- /apps/frontend/forms/src/styles/common/buttons.scss: -------------------------------------------------------------------------------- 1 | @import 'utils'; 2 | 3 | .btn-lite { 4 | @include button-variant($primary, $primary); 5 | } 6 | -------------------------------------------------------------------------------- /apps/frontend/graphql/src/styles.scss: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | @import 'styles/style'; 3 | -------------------------------------------------------------------------------- /apps/frontend/graphql/src/styles/common/buttons.scss: -------------------------------------------------------------------------------- 1 | @import 'utils'; 2 | 3 | .btn-lite { 4 | @include button-variant($primary, $primary); 5 | } 6 | -------------------------------------------------------------------------------- /apps/frontend/markup/src/app/events/containers/events/events.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | -------------------------------------------------------------------------------- /apps/frontend/markup/src/styles/common/buttons.scss: -------------------------------------------------------------------------------- 1 | @import 'utils'; 2 | 3 | .btn-lite { 4 | @include button-variant($primary, $primary); 5 | } 6 | -------------------------------------------------------------------------------- /apps/frontend/responsive/src/styles.scss: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | @import 'styles/style'; 3 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/styles.scss: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | @import 'styles/style'; 3 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/styles/common/buttons.scss: -------------------------------------------------------------------------------- 1 | @import 'utils'; 2 | 3 | .btn-lite { 4 | @include button-variant($primary, $primary); 5 | } 6 | -------------------------------------------------------------------------------- /apps/frontend/theming/src/styles.scss: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | @import 'styles/style'; 3 | -------------------------------------------------------------------------------- /apps/frontend/translation-state/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/apps/frontend/translation-state/src/favicon.ico -------------------------------------------------------------------------------- /libs/auth/tsconfig.lib.prod.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.lib.json", 3 | "angularCompilerOptions": { 4 | "enableIvy": false 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /libs/dynamic-forms/src/lib/components/field-radio/field-radio.component.scss: -------------------------------------------------------------------------------- 1 | @import 'utils'; 2 | @import 'styles/components/forms/radio-beauty'; 3 | -------------------------------------------------------------------------------- /apps/frontend/common-styles/src/styles.scss: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | @import 'styles/style'; 3 | -------------------------------------------------------------------------------- /apps/frontend/common-styles/src/styles/style.scss: -------------------------------------------------------------------------------- 1 | // Import app utils 2 | @import './utils'; 3 | 4 | // Import common styles 5 | @import 'styles/style'; 6 | -------------------------------------------------------------------------------- /libs/dynamic-forms/src/lib/components/field-checkbox/field-checkbox.component.scss: -------------------------------------------------------------------------------- 1 | @import 'utils'; 2 | @import 'styles/components/forms/checkbox-beauty'; 3 | -------------------------------------------------------------------------------- /libs/layouts/src/assets/images/slides/slide-1.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/libs/layouts/src/assets/images/slides/slide-1.webp -------------------------------------------------------------------------------- /libs/layouts/src/assets/images/slides/slide-2.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/libs/layouts/src/assets/images/slides/slide-2.webp -------------------------------------------------------------------------------- /libs/layouts/src/assets/images/slides/slide-3.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/libs/layouts/src/assets/images/slides/slide-3.webp -------------------------------------------------------------------------------- /libs/users/tsconfig.lib.prod.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.lib.json", 3 | "angularCompilerOptions": { 4 | "enableIvy": false 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /apps/backend/api/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tslint.json", 3 | "rules": [], 4 | "linterOptions": { 5 | "exclude": ["!**/*"] 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /apps/frontend/css/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["node", "jest"] 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /apps/frontend/forms/src/assets/images/home/main.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/apps/frontend/forms/src/assets/images/home/main.webp -------------------------------------------------------------------------------- /apps/frontend/localization/src/app/home/containers/home/home.component.html: -------------------------------------------------------------------------------- 1 |
2 |

Hello!

3 |
4 | 5 |
6 | -------------------------------------------------------------------------------- /apps/frontend/markup/src/assets/images/home/main.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/apps/frontend/markup/src/assets/images/home/main.webp -------------------------------------------------------------------------------- /apps/frontend/redux/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["node", "jest"] 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /apps/frontend/translation-state/src/styles/common/buttons.scss: -------------------------------------------------------------------------------- 1 | @import 'utils'; 2 | 3 | .btn-lite { 4 | @include button-variant($primary, $primary); 5 | } 6 | -------------------------------------------------------------------------------- /libs/dynamic-forms/src/lib/components/field-input-range/field-input-range.component.scss: -------------------------------------------------------------------------------- 1 | @import 'utils'; 2 | @import 'styles/components/forms/range-beauty'; 3 | -------------------------------------------------------------------------------- /libs/layouts/src/assets/images/layouts/footer-bg.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/libs/layouts/src/assets/images/layouts/footer-bg.webp -------------------------------------------------------------------------------- /apps/frontend/forms/src/assets/images/events/main.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/apps/frontend/forms/src/assets/images/events/main.webp -------------------------------------------------------------------------------- /apps/frontend/graphql/src/assets/images/home/main.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/apps/frontend/graphql/src/assets/images/home/main.webp -------------------------------------------------------------------------------- /apps/frontend/markup/src/assets/images/events/main.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/apps/frontend/markup/src/assets/images/events/main.webp -------------------------------------------------------------------------------- /apps/frontend/testing/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["node", "jest"] 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /apps/frontend/universal/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["node", "jest"] 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /apps/frontend/graphql/src/assets/images/events/main.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/apps/frontend/graphql/src/assets/images/events/main.webp -------------------------------------------------------------------------------- /apps/frontend/infinite-scroll/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["node", "jest"] 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /apps/frontend/localization/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["node", "jest"] 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /apps/frontend/shared/src/styles/utils.scss: -------------------------------------------------------------------------------- 1 | // Import common utils 2 | @import 'styles/utils'; 3 | 4 | // Override common variables and mixins 5 | @import 'variables'; 6 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/home/components/dashboard-hero/dashboard-hero.component.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | -------------------------------------------------------------------------------- /apps/frontend/theming/src/styles/utils.scss: -------------------------------------------------------------------------------- 1 | // Import common utils 2 | @import 'styles/utils'; 3 | 4 | // Override common variables and mixins 5 | @import 'variables'; 6 | -------------------------------------------------------------------------------- /libs/layouts/src/assets/images/promo-top/promo-top-1.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/libs/layouts/src/assets/images/promo-top/promo-top-1.webp -------------------------------------------------------------------------------- /apps/frontend/responsive/src/styles/utils.scss: -------------------------------------------------------------------------------- 1 | // Import common utils 2 | @import 'styles/utils'; 3 | 4 | // Override common variables and mixins 5 | @import 'variables'; 6 | -------------------------------------------------------------------------------- /libs/layouts/src/assets/images/transitions/slider-sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fafnur/medium-stories/HEAD/libs/layouts/src/assets/images/transitions/slider-sprite.png -------------------------------------------------------------------------------- /libs/layouts/src/lib/layout/components/footer-copyright/footer-copyright.component.html: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /apps/frontend/css/src/stylesheets/utils.scss: -------------------------------------------------------------------------------- 1 | // Override common variables and mixins 2 | @import 'variables'; 3 | 4 | // Import common utils 5 | @import '~bootstrap/scss/mixins'; 6 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/home/containers/user/user.component.html: -------------------------------------------------------------------------------- 1 |

user works!

2 |

3 | 4 |

5 | -------------------------------------------------------------------------------- /apps/frontend/translation-state/src/app/home/containers/home/home.component.scss: -------------------------------------------------------------------------------- 1 | @import 'utils'; 2 | 3 | :host { 4 | display: block; 5 | @include layout-padding-top(); 6 | } 7 | -------------------------------------------------------------------------------- /libs/auth/README.md: -------------------------------------------------------------------------------- 1 | # auth 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test auth` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/auth/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["node", "jest"] 5 | }, 6 | "include": ["**/*.ts"] 7 | } 8 | -------------------------------------------------------------------------------- /libs/common/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["node", "jest"] 5 | }, 6 | "include": ["**/*.ts"] 7 | } 8 | -------------------------------------------------------------------------------- /libs/entities/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["node", "jest"] 5 | }, 6 | "include": ["**/*.ts"] 7 | } 8 | -------------------------------------------------------------------------------- /libs/events/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["node", "jest"] 5 | }, 6 | "include": ["**/*.ts"] 7 | } 8 | -------------------------------------------------------------------------------- /libs/layouts/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["node", "jest"] 5 | }, 6 | "include": ["**/*.ts"] 7 | } 8 | -------------------------------------------------------------------------------- /libs/shared/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["node", "jest"] 5 | }, 6 | "include": ["**/*.ts"] 7 | } 8 | -------------------------------------------------------------------------------- /libs/storage/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["node", "jest"] 5 | }, 6 | "include": ["**/*.ts"] 7 | } 8 | -------------------------------------------------------------------------------- /libs/store/README.md: -------------------------------------------------------------------------------- 1 | # store 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test store` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/store/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["node", "jest"] 5 | }, 6 | "include": ["**/*.ts"] 7 | } 8 | -------------------------------------------------------------------------------- /libs/users/README.md: -------------------------------------------------------------------------------- 1 | # users 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test users` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/users/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["node", "jest"] 5 | }, 6 | "include": ["**/*.ts"] 7 | } 8 | -------------------------------------------------------------------------------- /libs/common/README.md: -------------------------------------------------------------------------------- 1 | # common 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test common` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/dynamic-forms/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["node", "jest"] 5 | }, 6 | "include": ["**/*.ts"] 7 | } 8 | -------------------------------------------------------------------------------- /libs/events/README.md: -------------------------------------------------------------------------------- 1 | # events 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test events` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/layouts/README.md: -------------------------------------------------------------------------------- 1 | # layouts 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test layouts` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/responsive/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["node", "jest"] 5 | }, 6 | "include": ["**/*.ts"] 7 | } 8 | -------------------------------------------------------------------------------- /libs/shared/README.md: -------------------------------------------------------------------------------- 1 | # shared 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test shared` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/storage/README.md: -------------------------------------------------------------------------------- 1 | # storage 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test storage` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/translation/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["node", "jest"] 5 | }, 6 | "include": ["**/*.ts"] 7 | } 8 | -------------------------------------------------------------------------------- /apps/backend/api/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'backend-api', 3 | preset: '../../../jest.config.js', 4 | coverageDirectory: '../../../coverage/apps/backend/api' 5 | }; 6 | -------------------------------------------------------------------------------- /apps/frontend/base/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["node", "jest"] 5 | }, 6 | "include": ["**/*.ts"] 7 | } 8 | -------------------------------------------------------------------------------- /apps/frontend/forms/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["node", "jest"] 5 | }, 6 | "include": ["**/*.ts"] 7 | } 8 | -------------------------------------------------------------------------------- /apps/frontend/markup/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["node", "jest"] 5 | }, 6 | "include": ["**/*.ts"] 7 | } 8 | -------------------------------------------------------------------------------- /apps/frontend/redux/src/app/users/+state/user.models.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Interface for the 'User' data 3 | */ 4 | export interface UserEntity { 5 | id: string | number; // Primary ID 6 | } 7 | -------------------------------------------------------------------------------- /apps/frontend/shared/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["node", "jest"] 5 | }, 6 | "include": ["**/*.ts"] 7 | } 8 | -------------------------------------------------------------------------------- /apps/frontend/store/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["node", "jest"] 5 | }, 6 | "include": ["**/*.ts"] 7 | } 8 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/home/components/lightswitch/lightswitch.component.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | {{ message }} 4 |
5 | -------------------------------------------------------------------------------- /apps/frontend/base-e2e/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["cypress", "node"] 5 | }, 6 | "include": ["**/*.ts"] 7 | } 8 | -------------------------------------------------------------------------------- /apps/frontend/css/src/app/home/containers/home/home.component.scss: -------------------------------------------------------------------------------- 1 | @import 'utils'; 2 | 3 | .nav { 4 | flex-flow: column wrap; 5 | } 6 | 7 | .nav-link { 8 | display: block; 9 | } 10 | -------------------------------------------------------------------------------- /apps/frontend/graphql/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["node", "jest"] 5 | }, 6 | "include": ["**/*.ts"] 7 | } 8 | -------------------------------------------------------------------------------- /apps/frontend/responsive/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["node", "jest"] 5 | }, 6 | "include": ["**/*.ts"] 7 | } 8 | -------------------------------------------------------------------------------- /apps/frontend/storage/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["node", "jest"] 5 | }, 6 | "include": ["**/*.ts"] 7 | } 8 | -------------------------------------------------------------------------------- /apps/frontend/theming/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["node", "jest"] 5 | }, 6 | "include": ["**/*.ts"] 7 | } 8 | -------------------------------------------------------------------------------- /apps/frontend/translation/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["node", "jest"] 5 | }, 6 | "include": ["**/*.ts"] 7 | } 8 | -------------------------------------------------------------------------------- /libs/responsive/README.md: -------------------------------------------------------------------------------- 1 | # responsive 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test responsive` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /styles/variables.scss: -------------------------------------------------------------------------------- 1 | $default-bg: #fff !default; 2 | $default-color: #000 !default; 3 | 4 | // Sizes 5 | $mobile: md !default; 6 | 7 | // Fonts 8 | $font-open-sans: 'Open Sans', sans-serif; 9 | -------------------------------------------------------------------------------- /apps/frontend/common-styles/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["node", "jest"] 5 | }, 6 | "include": ["**/*.ts"] 7 | } 8 | -------------------------------------------------------------------------------- /apps/frontend/forms/src/styles/utils.scss: -------------------------------------------------------------------------------- 1 | // Import common utils 2 | @import 'styles/utils'; 3 | @import 'mixins/layouts'; 4 | 5 | // Override common variables and mixins 6 | @import 'variables'; 7 | -------------------------------------------------------------------------------- /apps/frontend/graphql/src/styles/utils.scss: -------------------------------------------------------------------------------- 1 | // Import common utils 2 | @import 'styles/utils'; 3 | @import 'mixins/layouts'; 4 | 5 | // Override common variables and mixins 6 | @import 'variables'; 7 | -------------------------------------------------------------------------------- /apps/frontend/markup/src/styles/utils.scss: -------------------------------------------------------------------------------- 1 | // Import common utils 2 | @import 'styles/utils'; 3 | @import 'mixins/layouts'; 4 | 5 | // Override common variables and mixins 6 | @import 'variables'; 7 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/styles/utils.scss: -------------------------------------------------------------------------------- 1 | // Import common utils 2 | @import 'styles/utils'; 3 | @import 'mixins/layouts'; 4 | 5 | // Override common variables and mixins 6 | @import 'variables'; 7 | -------------------------------------------------------------------------------- /libs/translation/README.md: -------------------------------------------------------------------------------- 1 | # translation 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test translation` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /apps/frontend/common-styles/src/styles/utils.scss: -------------------------------------------------------------------------------- 1 | // Import common utils 2 | @import 'styles/utils'; 3 | 4 | // Override common variables and mixins 5 | $default-bg: #300a24; 6 | $default-color: #fff; 7 | -------------------------------------------------------------------------------- /apps/frontend/markup/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true, 3 | translation: { 4 | languages: ['ru', 'en'], 5 | language: 'ru' 6 | } 7 | }; 8 | -------------------------------------------------------------------------------- /apps/frontend/shared/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true, 3 | translation: { 4 | languages: ['ru', 'en'], 5 | language: 'ru' 6 | } 7 | }; 8 | -------------------------------------------------------------------------------- /apps/frontend/store/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true, 3 | translation: { 4 | languages: ['ru', 'en'], 5 | language: 'ru' 6 | } 7 | }; 8 | -------------------------------------------------------------------------------- /apps/frontend/theming/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true, 3 | translation: { 4 | languages: ['ru', 'en'], 5 | language: 'ru' 6 | } 7 | }; 8 | -------------------------------------------------------------------------------- /apps/frontend/translation-state/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["node", "jest"] 5 | }, 6 | "include": ["**/*.ts"] 7 | } 8 | -------------------------------------------------------------------------------- /libs/dynamic-forms/README.md: -------------------------------------------------------------------------------- 1 | # dynamic-forms 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test dynamic-forms` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /apps/frontend/common-styles/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true, 3 | translation: { 4 | languages: ['ru', 'en'], 5 | language: 'ru' 6 | } 7 | }; 8 | -------------------------------------------------------------------------------- /apps/frontend/css/src/stylesheets/style.scss: -------------------------------------------------------------------------------- 1 | // Import app utils 2 | @import 'utils'; 3 | 4 | // Import common theme 5 | @import 'bootstrap/theme'; 6 | 7 | // Import common styles 8 | @import 'common/theme'; 9 | -------------------------------------------------------------------------------- /apps/frontend/responsive/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true, 3 | translation: { 4 | languages: ['ru', 'en'], 5 | language: 'ru' 6 | } 7 | }; 8 | -------------------------------------------------------------------------------- /apps/frontend/translation-state/src/styles/utils.scss: -------------------------------------------------------------------------------- 1 | // Import common utils 2 | @import 'styles/utils'; 3 | @import 'mixins/layouts'; 4 | 5 | // Override common variables and mixins 6 | @import 'variables'; 7 | -------------------------------------------------------------------------------- /apps/frontend/translation/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true, 3 | translation: { 4 | languages: ['ru', 'en'], 5 | language: 'ru' 6 | } 7 | }; 8 | -------------------------------------------------------------------------------- /libs/layouts/src/lib/layout/components/logo/logo.component.html: -------------------------------------------------------------------------------- 1 | 2 | {{ 'brand.short' | translate }} 3 | 4 | -------------------------------------------------------------------------------- /libs/users/src/lib/users-core/interfaces/user.interface.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * User load payload 3 | */ 4 | export interface UserLoadPayload { 5 | /** 6 | * User id 7 | */ 8 | userId: number; 9 | } 10 | -------------------------------------------------------------------------------- /apps/frontend/infinite-scroll/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true, 3 | translation: { 4 | languages: ['ru', 'en'], 5 | language: 'ru' 6 | } 7 | }; 8 | -------------------------------------------------------------------------------- /apps/frontend/translation-state/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true, 3 | translation: { 4 | languages: ['ru', 'en'], 5 | language: 'ru' 6 | } 7 | }; 8 | -------------------------------------------------------------------------------- /libs/entities/src/lib/interfaces/types/entity-options.type.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Entity service options 3 | */ 4 | export interface EntityServiceOptions { 5 | [key: string]: any; 6 | 7 | relations?: string[]; 8 | } 9 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "nrwl.angular-console", 4 | "angular.ng-template", 5 | "ms-vscode.vscode-typescript-tslint-plugin", 6 | "esbenp.prettier-vscode" 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/users/services/simple.service.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | 3 | @Injectable() 4 | export class SimpleService { 5 | get(): number { 6 | return 1; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /libs/auth/src/assets/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": { 3 | "ru": "Русский", 4 | "en": "English" 5 | }, 6 | "signIn": { 7 | "actions": { 8 | "signIn": "Sign in" 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /libs/auth/src/assets/i18n/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": { 3 | "ru": "Русский", 4 | "en": "English" 5 | }, 6 | "signIn": { 7 | "actions": { 8 | "signIn": "Войти" 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /libs/common/src/lib/types/dictionary.type.ts: -------------------------------------------------------------------------------- 1 | export interface DictionaryNum { 2 | [id: number]: T; 3 | } 4 | 5 | export interface Dictionary extends DictionaryNum { 6 | [id: string]: T; 7 | } 8 | -------------------------------------------------------------------------------- /libs/entities/README.md: -------------------------------------------------------------------------------- 1 | # entities 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `ng test entities` to execute the unit tests via [Jest](https://jestjs.io). 8 | -------------------------------------------------------------------------------- /apps/backend/api/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["node", "jest"], 5 | "emitDecoratorMetadata": true 6 | }, 7 | "include": ["**/*.ts"] 8 | } 9 | -------------------------------------------------------------------------------- /apps/frontend/base-e2e/tsconfig.e2e.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "sourceMap": false, 5 | "outDir": "../../../dist/out-tsc" 6 | }, 7 | "include": ["src/**/*.ts"] 8 | } 9 | -------------------------------------------------------------------------------- /libs/auth/src/lib/auth-shared/components/auth-login-button/auth-login-button.component.html: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /libs/users/src/lib/users-shared/components/user-load-button/user-load-button.component.html: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /apps/frontend/css/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "types": [] 6 | }, 7 | "files": ["src/main.ts", "src/polyfills.ts"] 8 | } 9 | -------------------------------------------------------------------------------- /apps/frontend/storage/src/app/home/containers/home/home.component.html: -------------------------------------------------------------------------------- 1 |

Home page

2 | 3 |
4 |
Count: {{ counter }}
5 | 6 |
7 | -------------------------------------------------------------------------------- /libs/auth/src/lib/auth-shared/auth-shared.common.ts: -------------------------------------------------------------------------------- 1 | import { AuthLoginButtonComponent } from './components/auth-login-button/auth-login-button.component'; 2 | 3 | export const authComponents: any[] = [AuthLoginButtonComponent]; 4 | -------------------------------------------------------------------------------- /libs/common/src/lib/common.tokens.ts: -------------------------------------------------------------------------------- 1 | import { InjectionToken } from '@angular/core'; 2 | 3 | export const APP_DIST = new InjectionToken('AppDist'); 4 | export const API_SOURCES = new InjectionToken('ApiSources'); 5 | -------------------------------------------------------------------------------- /styles/common/buttons.scss: -------------------------------------------------------------------------------- 1 | @import '../utils'; 2 | 3 | .btn-lite { 4 | @include button-variant-custom(white, white, $primary, $primary, $primary, $primary); 5 | 6 | border-radius: 0; 7 | text-transform: uppercase; 8 | } 9 | -------------------------------------------------------------------------------- /libs/layouts/src/lib/layout/components/side-tools/side-tools.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /libs/layouts/src/lib/layout/components/toolbar/toolbar.component.scss: -------------------------------------------------------------------------------- 1 | @import 'utils'; 2 | 3 | :host { 4 | margin-right: -1rem; 5 | 6 | @include media-breakpoint-up($mobile) { 7 | margin-right: 0; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /libs/store/src/lib/+state/root.reducer.spec.ts: -------------------------------------------------------------------------------- 1 | import { reducers } from './root.reducer'; 2 | 3 | describe('RootReducer', () => { 4 | it('should be initial state', () => { 5 | expect(reducers).toBeTruthy(); 6 | }); 7 | }); 8 | -------------------------------------------------------------------------------- /libs/users/src/lib/users-shared/users-shared.common.ts: -------------------------------------------------------------------------------- 1 | import { UserLoadButtonComponent } from './components/user-load-button/user-load-button.component'; 2 | 3 | export const usersSharedComponents: any[] = [UserLoadButtonComponent]; 4 | -------------------------------------------------------------------------------- /apps/frontend/forms/src/styles/mixins/layouts.scss: -------------------------------------------------------------------------------- 1 | @mixin layout-padding-top($mobileSize: 4rem, $size: 7rem) { 2 | padding-top: $mobileSize; 3 | 4 | @include media-breakpoint-up($mobile) { 5 | padding-top: $size; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /apps/frontend/graphql/src/styles/mixins/layouts.scss: -------------------------------------------------------------------------------- 1 | @mixin layout-padding-top($mobileSize: 4rem, $size: 7rem) { 2 | padding-top: $mobileSize; 3 | 4 | @include media-breakpoint-up($mobile) { 5 | padding-top: $size; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /apps/frontend/markup/src/styles/mixins/layouts.scss: -------------------------------------------------------------------------------- 1 | @mixin layout-padding-top($mobileSize: 4rem, $size: 7rem) { 2 | padding-top: $mobileSize; 3 | 4 | @include media-breakpoint-up($mobile) { 5 | padding-top: $size; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /apps/frontend/redux/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'medium-stories-root', 5 | template: '' 6 | }) 7 | export class AppComponent {} 8 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/styles/mixins/layouts.scss: -------------------------------------------------------------------------------- 1 | @mixin layout-padding-top($mobileSize: 4rem, $size: 7rem) { 2 | padding-top: $mobileSize; 3 | 4 | @include media-breakpoint-up($mobile) { 5 | padding-top: $size; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /libs/layouts/src/lib/layout-breadcrumbs/layout-breadcrumbs.common.ts: -------------------------------------------------------------------------------- 1 | import { BreadcrumbsComponent } from './components/breadcrumbs/breadcrumbs.component'; 2 | 3 | export const layoutBreadCrumbsComponents: any[] = [BreadcrumbsComponent]; 4 | -------------------------------------------------------------------------------- /libs/store/src/testing/stubs/payload.stub.ts: -------------------------------------------------------------------------------- 1 | export const actionPropsForcePayloadStub = { 2 | payload: { 3 | force: false 4 | } 5 | }; 6 | 7 | export const actionPropsForcePayloadEmptyStub = { 8 | payload: {} 9 | }; 10 | -------------------------------------------------------------------------------- /apps/frontend/css/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'medium-stories-root', 5 | template: `` 6 | }) 7 | export class AppComponent { 8 | } 9 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'medium-stories-root', 5 | template: '' 6 | }) 7 | export class AppComponent {} 8 | -------------------------------------------------------------------------------- /apps/backend/api/src/app/users/users.graphql: -------------------------------------------------------------------------------- 1 | type Query { 2 | user(id: Int): User 3 | } 4 | 5 | type User { 6 | id: Int 7 | username: String 8 | email: String 9 | phone: String 10 | created: Date 11 | updated: Date 12 | } 13 | -------------------------------------------------------------------------------- /apps/frontend/localization/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'medium-stories-root', 5 | template: '' 6 | }) 7 | export class AppComponent {} 8 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/users/services/multiply.service.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | 3 | @Injectable() 4 | export class MultiplyService { 5 | calc(a: number, b: number): number { 6 | return a * b; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /apps/frontend/translation-state/src/styles/mixins/layouts.scss: -------------------------------------------------------------------------------- 1 | @mixin layout-padding-top($mobileSize: 4rem, $size: 7rem) { 2 | padding-top: $mobileSize; 3 | 4 | @include media-breakpoint-up($mobile) { 5 | padding-top: $size; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /libs/dynamic-forms/src/lib/components/form/form.component.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 |
5 | -------------------------------------------------------------------------------- /libs/entities/src/lib/interfaces/types/locale.type.ts: -------------------------------------------------------------------------------- 1 | export interface Locale { 2 | [key: string]: T; 3 | 4 | /** 5 | * English 6 | */ 7 | en: T; 8 | 9 | /** 10 | * Russian 11 | */ 12 | ru: T; 13 | } 14 | -------------------------------------------------------------------------------- /libs/entities/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "types": [] 6 | }, 7 | "exclude": ["**/*.spec.ts"], 8 | "include": ["**/*.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /apps/frontend/localization/src/app/app.common.ts: -------------------------------------------------------------------------------- 1 | import { Routes } from '@angular/router'; 2 | 3 | export const routes: Routes = [ 4 | { 5 | path: '', 6 | loadChildren: () => import('./home/home.module').then(m => m.HomeModule) 7 | } 8 | ]; 9 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "plugin:prettier/recommended", 4 | "plugin:angular/johnpapa" 5 | ], 6 | "rules": {}, 7 | "parserOptions": { 8 | "ecmaVersion": 2018 9 | }, 10 | "env": { 11 | "es6": true 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /apps/backend/api/src/app/app.controller.ts: -------------------------------------------------------------------------------- 1 | import { Controller, Get } from '@nestjs/common'; 2 | 3 | @Controller() 4 | export class AppController { 5 | @Get() 6 | index() { 7 | return { message: 'Welcome to backend/api!' }; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /apps/backend/api/src/app/auth/auth.graphql: -------------------------------------------------------------------------------- 1 | type Query { 2 | login(username: String!, password: String!): SignInResponse 3 | logout: Boolean 4 | } 5 | 6 | type SignInResponse { 7 | expiresIn: Int 8 | accessToken: String 9 | id: Int 10 | } 11 | -------------------------------------------------------------------------------- /apps/backend/api/src/app/users/decorators/user.decorator.ts: -------------------------------------------------------------------------------- 1 | import { createParamDecorator, ExecutionContext } from '@nestjs/common'; 2 | 3 | export const CurrentUser = createParamDecorator((data: unknown, ctx: ExecutionContext) => { 4 | return ctx; 5 | }); 6 | -------------------------------------------------------------------------------- /apps/backend/api/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "types": ["node"] 6 | }, 7 | "exclude": ["**/*.spec.ts"], 8 | "include": ["**/*.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /apps/frontend/shared/src/styles/style.scss: -------------------------------------------------------------------------------- 1 | // Import app utils 2 | @import './utils'; 3 | 4 | // Import common theme 5 | @import 'styles/material/theme'; 6 | @import 'bootstrap/theme'; 7 | 8 | // Import common styles 9 | @import 'styles/style'; 10 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/home/components/banner-list/banner-list.component.html: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /apps/frontend/theming/src/styles/style.scss: -------------------------------------------------------------------------------- 1 | // Import app utils 2 | @import './utils'; 3 | 4 | // Import common theme 5 | @import 'styles/material/theme'; 6 | @import 'bootstrap/theme'; 7 | 8 | // Import common styles 9 | @import 'styles/style'; 10 | -------------------------------------------------------------------------------- /apps/frontend/responsive/src/styles/style.scss: -------------------------------------------------------------------------------- 1 | // Import app utils 2 | @import './utils'; 3 | 4 | // Import common theme 5 | @import 'styles/material/theme'; 6 | @import 'bootstrap/theme'; 7 | 8 | // Import common styles 9 | @import 'styles/style'; 10 | -------------------------------------------------------------------------------- /libs/responsive/src/lib/responsive.tokens.ts: -------------------------------------------------------------------------------- 1 | import { InjectionToken } from '@angular/core'; 2 | 3 | import { ResponsiveMode } from './interfaces/responsive.interface'; 4 | 5 | export const RESPONSIVE_MODE = new InjectionToken('ResponsiveMode'); 6 | -------------------------------------------------------------------------------- /libs/layouts/src/lib/layout/components/sidebar/sidebar.component.html: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /apps/frontend/css/src/app/home/containers/home/home.component.html: -------------------------------------------------------------------------------- 1 |
2 | 6 |
7 | -------------------------------------------------------------------------------- /apps/frontend/theming/src/app/home/containers/home/home.component.scss: -------------------------------------------------------------------------------- 1 | @import 'utils'; 2 | 3 | :host { 4 | background-color: mat-color($mat-gray, 200); 5 | display: block; 6 | height: 100vh; 7 | } 8 | 9 | .home-page { 10 | padding: 1rem 2rem; 11 | } 12 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | # Add files here to ignore them from prettier formatting 2 | dist/ 3 | coverage/ 4 | tmp/ 5 | out-tsc/ 6 | bazel-out/ 7 | node_modules/ 8 | .vscode/ 9 | .idea/ 10 | .vscode/ 11 | .prettierignore 12 | package-lock.json 13 | package.json 14 | yarn.lock 15 | -------------------------------------------------------------------------------- /apps/backend/api/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "include": ["**/*.spec.ts", "**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/home/components/banner-details/banner-details.component.html: -------------------------------------------------------------------------------- 1 | 5 | -------------------------------------------------------------------------------- /apps/frontend/markup/src/app/events/containers/events/events.component.scss: -------------------------------------------------------------------------------- 1 | @import 'utils'; 2 | 3 | :host { 4 | } 5 | 6 | .events-page { 7 | background: url(/assets/images/events/main.webp) no-repeat 50% 50%; 8 | background-size: cover; 9 | height: 100vh; 10 | } 11 | -------------------------------------------------------------------------------- /libs/shared/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/components/icon/icon.component'; 2 | export * from './lib/directives/ms-let.directive'; 3 | export * from './lib/directives/ms-run.directive'; 4 | export * from './lib/pipes/language-label.pipe'; 5 | export * from './lib/shared.module'; 6 | -------------------------------------------------------------------------------- /apps/frontend/base/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "types": ["node"] 6 | }, 7 | "files": ["src/main.browser.ts", "src/polyfills.ts"], 8 | "include": ["**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /apps/frontend/forms/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "types": ["node"] 6 | }, 7 | "files": ["src/main.browser.ts", "src/polyfills.ts"], 8 | "include": ["**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /apps/frontend/graphql/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "types": ["node"] 6 | }, 7 | "files": ["src/main.browser.ts", "src/polyfills.ts"], 8 | "include": ["**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /apps/frontend/markup/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "types": ["node"] 6 | }, 7 | "files": ["src/main.browser.ts", "src/polyfills.ts"], 8 | "include": ["**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /apps/frontend/redux/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "types": ["node"] 6 | }, 7 | "files": ["src/main.browser.ts", "src/polyfills.ts"], 8 | "include": ["**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /apps/frontend/shared/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "types": ["node"] 6 | }, 7 | "files": ["src/main.browser.ts", "src/polyfills.ts"], 8 | "include": ["**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /apps/frontend/storage/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "types": ["node"] 6 | }, 7 | "files": ["src/main.browser.ts", "src/polyfills.ts"], 8 | "include": ["**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /apps/frontend/store/src/assets/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": { 3 | "ru": "Русский", 4 | "en": "English" 5 | }, 6 | "home": { 7 | "title": "Home page with ngrx", 8 | "count": "Count", 9 | "actions": { 10 | "add": "Add" 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /apps/frontend/store/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "types": ["node"] 6 | }, 7 | "files": ["src/main.browser.ts", "src/polyfills.ts"], 8 | "include": ["**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /apps/frontend/testing/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "types": ["node"] 6 | }, 7 | "files": ["src/main.browser.ts", "src/polyfills.ts"], 8 | "include": ["**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /apps/frontend/theming/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "types": ["node"] 6 | }, 7 | "files": ["src/main.browser.ts", "src/polyfills.ts"], 8 | "include": ["**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /libs/dynamic-forms/src/lib/directives/form-host.directive.ts: -------------------------------------------------------------------------------- 1 | import { Directive, ViewContainerRef } from '@angular/core'; 2 | 3 | @Directive({ 4 | selector: '[msFormHost]' 5 | }) 6 | export class FormHostDirective { 7 | constructor(public viewContainerRef: ViewContainerRef) {} 8 | } 9 | -------------------------------------------------------------------------------- /libs/store/src/lib/+state/root.effects.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | 3 | /** 4 | * Notice: Use root effect's only for root actions (like as router). 5 | * Anthers modules will be loaded with lazy loading. 6 | */ 7 | @Injectable() 8 | export class RootEffects {} 9 | -------------------------------------------------------------------------------- /styles/style.scss: -------------------------------------------------------------------------------- 1 | // Commons 2 | 3 | // Normalize default styles browsers 4 | @import '~bootstrap/scss/reboot'; 5 | 6 | // Import common applications styles 7 | @import 'common/typography'; 8 | @import 'common/buttons'; 9 | @import 'common/fonts'; 10 | @import 'common/forms'; 11 | -------------------------------------------------------------------------------- /apps/frontend/localization/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "types": ["node"] 6 | }, 7 | "files": ["src/main.browser.ts", "src/polyfills.ts"], 8 | "include": ["**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /apps/frontend/responsive/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "types": ["node"] 6 | }, 7 | "files": ["src/main.browser.ts", "src/polyfills.ts"], 8 | "include": ["**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /apps/frontend/store/src/app/core/containers/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'medium-stories-root', 5 | templateUrl: './app.component.html', 6 | styleUrls: ['./app.component.scss'] 7 | }) 8 | export class AppComponent {} 9 | -------------------------------------------------------------------------------- /apps/frontend/theming/src/assets/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": { 3 | "ru": "Русский", 4 | "en": "English" 5 | }, 6 | "home": { 7 | "title": "Home page with Theming", 8 | "count": "Count", 9 | "actions": { 10 | "add": "Add" 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /apps/frontend/translation/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "types": ["node"] 6 | }, 7 | "files": ["src/main.browser.ts", "src/polyfills.ts"], 8 | "include": ["**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /apps/frontend/universal/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "types": ["node"] 6 | }, 7 | "files": ["src/main.browser.ts", "src/polyfills.ts"], 8 | "include": ["**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /libs/layouts/src/testing/stubs/payloads.stub.ts: -------------------------------------------------------------------------------- 1 | import { HoveredNavItemPayload } from '../../lib/layout-core/+state/layout.actions'; 2 | 3 | export const hoveredNavItemPayloadStub: HoveredNavItemPayload = { 4 | id: 'nav_0', 5 | index: 2, 6 | level: 1, 7 | showedSubmenu: true 8 | }; 9 | -------------------------------------------------------------------------------- /libs/translation/src/assets/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": { 3 | "ru": "Русский", 4 | "en": "English" 5 | }, 6 | "home": { 7 | "title": "Home page with ngx-translate", 8 | "count": "Count", 9 | "actions": { 10 | "add": "Add" 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /apps/frontend/common-styles/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "types": ["node"] 6 | }, 7 | "files": ["src/main.browser.ts", "src/polyfills.ts"], 8 | "include": ["**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /apps/frontend/forms/src/app/home/containers/home/home.component.scss: -------------------------------------------------------------------------------- 1 | @import 'utils'; 2 | 3 | :host { 4 | display: block; 5 | } 6 | 7 | .home-page { 8 | //background: url(/assets/images/home/main.webp) no-repeat 50% 50%; 9 | //background-size: cover; 10 | //height: 100vh; 11 | } 12 | -------------------------------------------------------------------------------- /apps/frontend/infinite-scroll/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "types": ["node"] 6 | }, 7 | "files": ["src/main.browser.ts", "src/polyfills.ts"], 8 | "include": ["**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /apps/frontend/storage/src/app/core/containers/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'medium-stories-root', 5 | templateUrl: './app.component.html', 6 | styleUrls: ['./app.component.scss'] 7 | }) 8 | export class AppComponent {} 9 | -------------------------------------------------------------------------------- /apps/frontend/translation-state/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "types": ["node"] 6 | }, 7 | "files": ["src/main.browser.ts", "src/polyfills.ts"], 8 | "include": ["**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /apps/frontend/translation/src/app/core/containers/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'medium-stories-root', 5 | templateUrl: './app.component.html', 6 | styleUrls: ['./app.component.scss'] 7 | }) 8 | export class AppComponent {} 9 | -------------------------------------------------------------------------------- /libs/layouts/src/lib/layout/components/logo/logo.component.scss: -------------------------------------------------------------------------------- 1 | @import 'utils'; 2 | 3 | :host { 4 | display: block; 5 | user-select: none; 6 | } 7 | .logo-image { 8 | max-height: 2.5rem; 9 | 10 | @include media-breakpoint-up(xl) { 11 | max-height: 4.25rem; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /apps/frontend/graphql/src/app/home/containers/home/home.component.scss: -------------------------------------------------------------------------------- 1 | @import 'utils'; 2 | 3 | :host { 4 | display: block; 5 | } 6 | 7 | .home-page { 8 | //background: url(/assets/images/home/main.webp) no-repeat 50% 50%; 9 | //background-size: cover; 10 | //height: 100vh; 11 | } 12 | -------------------------------------------------------------------------------- /apps/frontend/markup/src/app/home/containers/home/home.component.scss: -------------------------------------------------------------------------------- 1 | @import 'utils'; 2 | 3 | :host { 4 | display: block; 5 | } 6 | 7 | .home-page { 8 | //background: url(/assets/images/home/main.webp) no-repeat 50% 50%; 9 | //background-size: cover; 10 | //height: 100vh; 11 | } 12 | -------------------------------------------------------------------------------- /apps/frontend/store/src/assets/i18n/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": { 3 | "ru": "Русский", 4 | "en": "English" 5 | }, 6 | "home": { 7 | "title": "Главная страница с ngrx", 8 | "count": "Количество", 9 | "actions": { 10 | "add": "Добавить" 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /apps/frontend/translation-state/src/assets/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": { 3 | "ru": "Русский", 4 | "en": "English" 5 | }, 6 | "home": { 7 | "title": "Home page with ngrx", 8 | "count": "Count", 9 | "actions": { 10 | "add": "Add" 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /libs/layouts/src/lib/layout/containers/base-layout/base-layout.component.scss: -------------------------------------------------------------------------------- 1 | @import 'utils'; 2 | 3 | :host { 4 | display: flex; 5 | flex-direction: column; 6 | min-height: 100%; 7 | } 8 | 9 | .content { 10 | flex: 1 0 auto; 11 | } 12 | 13 | .footer { 14 | flex-shrink: 0; 15 | } 16 | -------------------------------------------------------------------------------- /tools/tsconfig.tools.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.base.json", 3 | "compilerOptions": { 4 | "outDir": "../dist/out-tsc/tools", 5 | "rootDir": ".", 6 | "module": "commonjs", 7 | "target": "es5", 8 | "types": ["node"] 9 | }, 10 | "include": ["**/*.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /apps/frontend/common-styles/src/assets/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": { 3 | "ru": "Русский", 4 | "en": "English" 5 | }, 6 | "home": { 7 | "title": "Home page with Common styles", 8 | "count": "Count", 9 | "actions": { 10 | "add": "Add" 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /apps/frontend/theming/src/assets/i18n/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": { 3 | "ru": "Русский", 4 | "en": "English" 5 | }, 6 | "home": { 7 | "title": "Главная страница с Theming", 8 | "count": "Количество", 9 | "actions": { 10 | "add": "Добавить" 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | testMatch: ['**/+(*.)+(spec|test).+(ts|js)?(x)'], 3 | transform: { 4 | '^.+\\.(ts|js|html)$': 'ts-jest' 5 | }, 6 | resolver: '@nrwl/jest/plugins/resolver', 7 | moduleFileExtensions: ['ts', 'js', 'html'], 8 | coverageReporters: ['html'] 9 | }; 10 | -------------------------------------------------------------------------------- /libs/auth/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/layouts/src/lib/layout/components/side-search/side-search.component.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | search 5 | 6 |
7 | -------------------------------------------------------------------------------- /libs/store/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/translation/src/assets/i18n/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": { 3 | "ru": "Русский", 4 | "en": "English" 5 | }, 6 | "home": { 7 | "title": "Главная страница с ngx-translate", 8 | "count": "Количество", 9 | "actions": { 10 | "add": "Добавить" 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /libs/users/src/testing/stubs/user.stub.ts: -------------------------------------------------------------------------------- 1 | import { User } from '@medium-stories/entities'; 2 | 3 | export const userStub: User = { 4 | created: '2020-03-06', 5 | email: 'ivan@dorin.ru', 6 | phone: '9231002020', 7 | id: 1, 8 | username: 'Ivan Dorin', 9 | updated: '2020-03-06' 10 | }; 11 | -------------------------------------------------------------------------------- /libs/users/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /apps/frontend/translation-state/src/assets/i18n/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": { 3 | "ru": "Русский", 4 | "en": "English" 5 | }, 6 | "home": { 7 | "title": "Главная страница с ngrx", 8 | "count": "Количество", 9 | "actions": { 10 | "add": "Добавить" 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /libs/common/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/entities/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'entities', 3 | preset: '../../jest.config.js', 4 | transform: { 5 | '^.+\\.[tj]sx?$': 'ts-jest' 6 | }, 7 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'], 8 | coverageDirectory: '../../coverage/libs/entities' 9 | }; 10 | -------------------------------------------------------------------------------- /libs/events/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/layouts/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/responsive/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/shared/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/storage/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /apps/frontend/base/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'medium-stories-root', 5 | templateUrl: './app.component.html', 6 | styleUrls: ['./app.component.scss'] 7 | }) 8 | export class AppComponent { 9 | title = 'frontend-base'; 10 | } 11 | -------------------------------------------------------------------------------- /apps/frontend/common-styles/src/assets/i18n/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": { 3 | "ru": "Русский", 4 | "en": "English" 5 | }, 6 | "home": { 7 | "title": "Главная страница с Common styles", 8 | "count": "Количество", 9 | "actions": { 10 | "add": "Добавить" 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /apps/frontend/css/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/dynamic-forms/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/storage/src/lib/interfaces/local-storage.interface.ts: -------------------------------------------------------------------------------- 1 | import { AbstractStorage } from './abstract-storage.interface'; 2 | 3 | /** 4 | * Local Storage 5 | * 6 | * @see https://developer.mozilla.org/ru/docs/Web/API/Window/localStorage 7 | */ 8 | export abstract class LocalStorage extends AbstractStorage {} 9 | -------------------------------------------------------------------------------- /libs/translation/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see http://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 | [*.md] 12 | max_line_length = off 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /apps/frontend/base/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'frontend-base', 3 | preset: '../../../jest.config.js', 4 | coverageDirectory: '../../../coverage/apps/frontend/base', 5 | snapshotSerializers: ['jest-preset-angular/AngularSnapshotSerializer.js', 'jest-preset-angular/HTMLCommentSerializer.js'] 6 | }; 7 | -------------------------------------------------------------------------------- /apps/frontend/base/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /apps/frontend/forms/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /apps/frontend/graphql/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /apps/frontend/markup/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /apps/frontend/redux/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /apps/frontend/shared/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /apps/frontend/storage/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /apps/frontend/store/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/home/components/banner-edit/banner-edit.component.html: -------------------------------------------------------------------------------- 1 |
2 |

{{ banner.name | uppercase }}

3 |
id: {{ banner.id }}
4 |
5 | 6 |
7 |
8 | -------------------------------------------------------------------------------- /apps/frontend/testing/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /apps/frontend/theming/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/common/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/api/apollo.interface'; 2 | export * from './lib/api/api.interface'; 3 | 4 | export * from './lib/decorators/debounce'; 5 | export * from './lib/decorators/throttle'; 6 | 7 | export * from './lib/types/dictionary.type'; 8 | 9 | export * from './lib/common.tokens'; 10 | -------------------------------------------------------------------------------- /libs/entities/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "include": ["**/*.spec.ts", "**/*.spec.tsx", "**/*.spec.js", "**/*.spec.jsx", "**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /libs/storage/src/lib/interfaces/session-storage.interface.ts: -------------------------------------------------------------------------------- 1 | import { AbstractStorage } from './abstract-storage.interface'; 2 | 3 | /** 4 | * Session Storage 5 | * 6 | * @see https://developer.mozilla.org/ru/docs/Web/API/Window/sessionStorage 7 | */ 8 | export abstract class SessionStorage extends AbstractStorage {} 9 | -------------------------------------------------------------------------------- /styles/utils.scss: -------------------------------------------------------------------------------- 1 | // External variables and mixins 2 | @import '~@angular/material/theming'; 3 | 4 | @import '~bootstrap/scss/functions'; 5 | @import '~bootstrap/scss/variables'; 6 | @import '~bootstrap/scss/mixins'; 7 | 8 | // Mixins 9 | @import './mixins'; 10 | 11 | // Variables 12 | @import './variables'; 13 | -------------------------------------------------------------------------------- /apps/frontend/base-e2e/src/integration/app.spec.ts: -------------------------------------------------------------------------------- 1 | import { getGreeting } from '../support/app.po'; 2 | 3 | describe('frontend-base', () => { 4 | beforeEach(() => cy.visit('/')); 5 | 6 | it('should display welcome message', () => { 7 | getGreeting().contains('Welcome to frontend-base!'); 8 | }); 9 | }); 10 | -------------------------------------------------------------------------------- /apps/frontend/common-styles/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /apps/frontend/forms/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'frontend-forms', 3 | preset: '../../../jest.config.js', 4 | coverageDirectory: '../../../coverage/apps/frontend/forms', 5 | snapshotSerializers: ['jest-preset-angular/AngularSnapshotSerializer.js', 'jest-preset-angular/HTMLCommentSerializer.js'] 6 | }; 7 | -------------------------------------------------------------------------------- /apps/frontend/localization/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /apps/frontend/markup/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'frontend-markup', 3 | preset: '../../../jest.config.js', 4 | coverageDirectory: '../../../coverage/apps/frontend/markup', 5 | snapshotSerializers: ['jest-preset-angular/AngularSnapshotSerializer.js', 'jest-preset-angular/HTMLCommentSerializer.js'] 6 | }; 7 | -------------------------------------------------------------------------------- /apps/frontend/responsive/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /apps/frontend/shared/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'frontend-shared', 3 | preset: '../../../jest.config.js', 4 | coverageDirectory: '../../../coverage/apps/frontend/shared', 5 | snapshotSerializers: ['jest-preset-angular/AngularSnapshotSerializer.js', 'jest-preset-angular/HTMLCommentSerializer.js'] 6 | }; 7 | -------------------------------------------------------------------------------- /apps/frontend/store/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'frontend-store', 3 | preset: '../../../jest.config.js', 4 | coverageDirectory: '../../../coverage/apps/frontend/store', 5 | snapshotSerializers: ['jest-preset-angular/AngularSnapshotSerializer.js', 'jest-preset-angular/HTMLCommentSerializer.js'] 6 | }; 7 | -------------------------------------------------------------------------------- /apps/frontend/translation/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /apps/frontend/universal/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'medium-stories-root', 5 | templateUrl: './app.component.html', 6 | styleUrls: ['./app.component.scss'] 7 | }) 8 | export class AppComponent { 9 | title = 'frontend-universal'; 10 | } 11 | -------------------------------------------------------------------------------- /apps/frontend/universal/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/auth/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tslint.json", 3 | "rules": { 4 | "directive-selector": [true, "attribute", "mediumStories", "camelCase"], 5 | "component-selector": [true, "element", "medium-stories", "kebab-case"] 6 | }, 7 | "linterOptions": { 8 | "exclude": ["!**/*"] 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /apps/backend/api/tsconfig.migrations.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist", 5 | "types": ["node"], 6 | "target": "es5", 7 | "module": "commonjs" 8 | }, 9 | "exclude": ["src/**/*.spec.ts"], 10 | "include": ["src/migrations/**/*.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /apps/frontend/graphql/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'frontend-graphql', 3 | preset: '../../../jest.config.js', 4 | coverageDirectory: '../../../coverage/apps/frontend/graphql', 5 | snapshotSerializers: ['jest-preset-angular/AngularSnapshotSerializer.js', 'jest-preset-angular/HTMLCommentSerializer.js'] 6 | }; 7 | -------------------------------------------------------------------------------- /apps/frontend/infinite-scroll/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /apps/frontend/storage/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'frontend-storage', 3 | preset: '../../../jest.config.js', 4 | coverageDirectory: '../../../coverage/apps/frontend/storage', 5 | snapshotSerializers: ['jest-preset-angular/AngularSnapshotSerializer.js', 'jest-preset-angular/HTMLCommentSerializer.js'] 6 | }; 7 | -------------------------------------------------------------------------------- /apps/frontend/theming/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'frontend-theming', 3 | preset: '../../../jest.config.js', 4 | coverageDirectory: '../../../coverage/apps/frontend/theming', 5 | snapshotSerializers: ['jest-preset-angular/AngularSnapshotSerializer.js', 'jest-preset-angular/HTMLCommentSerializer.js'] 6 | }; 7 | -------------------------------------------------------------------------------- /apps/frontend/translation-state/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/dynamic-forms/src/lib/directives/form-host.directive.spec.ts: -------------------------------------------------------------------------------- 1 | import { FormHostDirective } from './form-host.directive'; 2 | 3 | describe('FormHostDirective', () => { 4 | it('should create an instance', () => { 5 | const directive = new FormHostDirective(null); 6 | expect(directive).toBeTruthy(); 7 | }); 8 | }); 9 | -------------------------------------------------------------------------------- /apps/frontend/base/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tslint.json", 3 | "rules": { 4 | "directive-selector": [true, "attribute", "mediumStories", "camelCase"], 5 | "component-selector": [true, "element", "medium-stories", "kebab-case"] 6 | }, 7 | "linterOptions": { 8 | "exclude": ["!**/*"] 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /apps/frontend/responsive/src/app/home/containers/home/home.component.scss: -------------------------------------------------------------------------------- 1 | @import 'utils'; 2 | 3 | :host { 4 | background-color: mat-color($mat-gray, 200); 5 | display: block; 6 | height: 100vh; 7 | } 8 | 9 | .home-page { 10 | padding: 1rem 2rem; 11 | } 12 | 13 | .responsive-card { 14 | margin-top: 2rem; 15 | } 16 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "bracketSpacing": true, 3 | "printWidth": 140, 4 | "semi": true, 5 | "singleQuote": true, 6 | "tabWidth": 2, 7 | "useTabs": false, 8 | "overrides": [ 9 | { 10 | "files": "{apps,libs}/**/*.html", 11 | "options": { 12 | "parser": "angular" 13 | } 14 | } 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /apps/backend/api/src/app/auth/decorators/auth.decorator.ts: -------------------------------------------------------------------------------- 1 | import { createParamDecorator, ExecutionContext } from '@nestjs/common'; 2 | 3 | export const SignIn = createParamDecorator((data: unknown, ctx: ExecutionContext) => { 4 | const args = ctx.getArgs()[1]; 5 | 6 | return { username: args.username, password: args.password }; 7 | }); 8 | -------------------------------------------------------------------------------- /apps/frontend/responsive/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'frontend-responsive', 3 | preset: '../../../jest.config.js', 4 | coverageDirectory: '../../../coverage/apps/frontend/responsive', 5 | snapshotSerializers: ['jest-preset-angular/AngularSnapshotSerializer.js', 'jest-preset-angular/HTMLCommentSerializer.js'] 6 | }; 7 | -------------------------------------------------------------------------------- /apps/frontend/translation/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'frontend-translation', 3 | preset: '../../../jest.config.js', 4 | coverageDirectory: '../../../coverage/apps/frontend/translation', 5 | snapshotSerializers: ['jest-preset-angular/AngularSnapshotSerializer.js', 'jest-preset-angular/HTMLCommentSerializer.js'] 6 | }; 7 | -------------------------------------------------------------------------------- /libs/dynamic-forms/src/lib/directives/input-range.directive.spec.ts: -------------------------------------------------------------------------------- 1 | import { InputRangeDirective } from './input-range.directive'; 2 | 3 | describe('InputRangeDirective', () => { 4 | it('should create an instance', () => { 5 | const directive = new InputRangeDirective(null); 6 | expect(directive).toBeTruthy(); 7 | }); 8 | }); 9 | -------------------------------------------------------------------------------- /apps/frontend/common-styles/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'frontend-common-styles', 3 | preset: '../../../jest.config.js', 4 | coverageDirectory: '../../../coverage/apps/frontend/common-styles', 5 | snapshotSerializers: ['jest-preset-angular/AngularSnapshotSerializer.js', 'jest-preset-angular/HTMLCommentSerializer.js'] 6 | }; 7 | -------------------------------------------------------------------------------- /docker-compose/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.1' 2 | 3 | services: 4 | mpostgres: 5 | image: postgres:latest 6 | restart: 'no' 7 | environment: 8 | - POSTGRES_DB=medium 9 | - POSTGRES_PASSWORD=123456 10 | ports: 11 | - 5433:5432 12 | networks: 13 | - backend 14 | networks: 15 | backend: 16 | -------------------------------------------------------------------------------- /libs/dynamic-forms/src/lib/directives/input-mask.directive.spec.ts: -------------------------------------------------------------------------------- 1 | import { InputMaskDirective } from './input-mask.directive'; 2 | 3 | describe('FieldMaskDirective', () => { 4 | it('should create an instance', () => { 5 | const directive = new InputMaskDirective(null, null, null); 6 | expect(directive).toBeTruthy(); 7 | }); 8 | }); 9 | -------------------------------------------------------------------------------- /libs/layouts/src/lib/layout/components/footer-bottom/footer-bottom.component.html: -------------------------------------------------------------------------------- 1 | 5 | -------------------------------------------------------------------------------- /libs/layouts/src/lib/layout/components/footer/footer.component.scss: -------------------------------------------------------------------------------- 1 | @import 'utils'; 2 | 3 | :host { 4 | background: url(/assets/images/layouts/footer-bg.webp) no-repeat 50% 50%; 5 | background-size: cover; 6 | padding-bottom: 3rem; 7 | 8 | @include media-breakpoint-up($mobile) { 9 | padding-bottom: 4rem; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /libs/layouts/src/lib/layout/components/toolbar/toolbar.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /apps/frontend/forms/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true, 3 | translation: { 4 | languages: ['ru', 'en'], 5 | language: 'ru' 6 | }, 7 | graphql: { 8 | uri: 'http://127.0.0.1:3333/graphql' 9 | }, 10 | api: { 11 | sources: '//127.0.0.1:3333/uploads' 12 | } 13 | }; 14 | -------------------------------------------------------------------------------- /apps/frontend/graphql/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true, 3 | translation: { 4 | languages: ['ru', 'en'], 5 | language: 'ru' 6 | }, 7 | graphql: { 8 | uri: 'http://127.0.0.1:3333/graphql' 9 | }, 10 | api: { 11 | sources: '//127.0.0.1:3333/uploads' 12 | } 13 | }; 14 | -------------------------------------------------------------------------------- /apps/frontend/redux/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true, 3 | graphql: { 4 | uri: 'http://127.0.0.1:3333/graphql' 5 | }, 6 | api: { 7 | sources: '//127.0.0.1:3333/uploads' 8 | }, 9 | translation: { 10 | languages: ['ru', 'en'], 11 | language: 'ru' 12 | } 13 | }; 14 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true, 3 | graphql: { 4 | uri: 'http://127.0.0.1:3333/graphql' 5 | }, 6 | api: { 7 | sources: '//127.0.0.1:3333/uploads' 8 | }, 9 | translation: { 10 | languages: ['ru', 'en'], 11 | language: 'ru' 12 | } 13 | }; 14 | -------------------------------------------------------------------------------- /libs/dynamic-forms/src/lib/directives/input-ucfirst.directive.spec.ts: -------------------------------------------------------------------------------- 1 | import { InputUcfirstDirective } from './input-ucfirst.directive'; 2 | 3 | describe('InputUcfirstDirective', () => { 4 | it('should create an instance', () => { 5 | const directive = new InputUcfirstDirective(null); 6 | expect(directive).toBeTruthy(); 7 | }); 8 | }); 9 | -------------------------------------------------------------------------------- /libs/layouts/src/lib/layout/interfaces/promo-top.interface.ts: -------------------------------------------------------------------------------- 1 | export interface PromoTopOptions { 2 | /** 3 | * Promo top background 4 | */ 5 | background: string; 6 | 7 | /** 8 | * Promo top route 9 | */ 10 | route: (string | number)[]; 11 | 12 | /** 13 | * Promo top title 14 | */ 15 | title?: string; 16 | } 17 | -------------------------------------------------------------------------------- /libs/shared/src/lib/pipes/localized-date.pipe.spec.ts: -------------------------------------------------------------------------------- 1 | import { LocalizedDatePipe } from './localized-date.pipe'; 2 | 3 | /** 4 | * TODO: Add tests 5 | */ 6 | describe('LocalizedDatePipe', () => { 7 | it('create an instance', () => { 8 | const pipe = new LocalizedDatePipe(null); 9 | expect(pipe).toBeTruthy(); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /ormconfig.example.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "postgres", 3 | "host": "localhost", 4 | "port": 5433, 5 | "username": "postgres", 6 | "password": "123456", 7 | "database": "medium", 8 | "synchronize": true, 9 | "entities": ["dist/apps/backend/api/src/**/*.entity.js"], 10 | "migrations": ["dist/apps/backend/api/migrations/*.js"] 11 | } 12 | -------------------------------------------------------------------------------- /apps/frontend/localization/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true, 3 | graphql: { 4 | uri: 'http://127.0.0.1:3333/graphql' 5 | }, 6 | api: { 7 | sources: '//127.0.0.1:3333/uploads' 8 | }, 9 | localize: { 10 | languages: ['ru', 'en'], 11 | language: 'ru' 12 | } 13 | }; 14 | -------------------------------------------------------------------------------- /apps/frontend/redux/src/app/home/home.common.ts: -------------------------------------------------------------------------------- 1 | import { Routes } from '@angular/router'; 2 | 3 | import { HomeComponent } from './containers/home/home.component'; 4 | 5 | export const homeContainers: any[] = [HomeComponent]; 6 | 7 | export const homeRoutes: Routes = [ 8 | { 9 | path: '', 10 | component: HomeComponent 11 | } 12 | ]; 13 | -------------------------------------------------------------------------------- /apps/frontend/store/src/app/home/home.common.ts: -------------------------------------------------------------------------------- 1 | import { Routes } from '@angular/router'; 2 | 3 | import { HomeComponent } from './containers/home/home.component'; 4 | 5 | export const homeContainers: any[] = [HomeComponent]; 6 | 7 | export const homeRoutes: Routes = [ 8 | { 9 | path: '', 10 | component: HomeComponent 11 | } 12 | ]; 13 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/users/services/user-easy.service.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | 3 | import { User } from '@medium-stories/entities'; 4 | import { userStub } from '@medium-stories/users/testing'; 5 | 6 | @Injectable() 7 | export class UserService { 8 | getUser(): User { 9 | return userStub; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /styles/common/fonts.scss: -------------------------------------------------------------------------------- 1 | // prettier-ignore 2 | @import url('//fonts.googleapis.com/css?family=Roboto:100,300,400,500,700&subset=cyrillic,cyrillic-ext'); 3 | @import url('//fonts.googleapis.com/css?family=Open+Sans:300,400,600,700,800&display=swap&subset=cyrillic,cyrillic-ext,latin-ext'); 4 | @import url('//fonts.googleapis.com/icon?family=Material+Icons'); 5 | -------------------------------------------------------------------------------- /apps/backend/api/tsconfig.entities.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist", 5 | "types": ["node"], 6 | "target": "es5", 7 | "module": "commonjs" 8 | }, 9 | "exclude": ["src/**/*.spec.ts", "../../../libs/entities/**/*.ts"], 10 | "include": ["src/app/**/*entity.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /apps/frontend/redux/src/app/users/users.common.ts: -------------------------------------------------------------------------------- 1 | import { Routes } from '@angular/router'; 2 | 3 | import { UserComponent } from './containers/user/user.component'; 4 | 5 | export const usersContainers: any[] = [UserComponent]; 6 | 7 | export const usersRoutes: Routes = [ 8 | { 9 | path: '', 10 | component: UserComponent 11 | } 12 | ]; 13 | -------------------------------------------------------------------------------- /apps/frontend/responsive/src/app/home/home.common.ts: -------------------------------------------------------------------------------- 1 | import { Routes } from '@angular/router'; 2 | 3 | import { HomeComponent } from './containers/home/home.component'; 4 | 5 | export const homeContainers: any[] = [HomeComponent]; 6 | 7 | export const homeRoutes: Routes = [ 8 | { 9 | path: '', 10 | component: HomeComponent 11 | } 12 | ]; 13 | -------------------------------------------------------------------------------- /apps/frontend/shared/src/app/home/home.common.ts: -------------------------------------------------------------------------------- 1 | import { Routes } from '@angular/router'; 2 | 3 | import { HomeComponent } from './containers/home/home.component'; 4 | 5 | export const homeContainers: any[] = [HomeComponent]; 6 | 7 | export const homeRoutes: Routes = [ 8 | { 9 | path: '', 10 | component: HomeComponent 11 | } 12 | ]; 13 | -------------------------------------------------------------------------------- /apps/frontend/storage/src/app/home/home.common.ts: -------------------------------------------------------------------------------- 1 | import { Routes } from '@angular/router'; 2 | 3 | import { HomeComponent } from './containers/home/home.component'; 4 | 5 | export const homeContainers: any[] = [HomeComponent]; 6 | 7 | export const homeRoutes: Routes = [ 8 | { 9 | path: '', 10 | component: HomeComponent 11 | } 12 | ]; 13 | -------------------------------------------------------------------------------- /apps/frontend/theming/src/app/home/home.common.ts: -------------------------------------------------------------------------------- 1 | import { Routes } from '@angular/router'; 2 | 3 | import { HomeComponent } from './containers/home/home.component'; 4 | 5 | export const homeContainers: any[] = [HomeComponent]; 6 | 7 | export const homeRoutes: Routes = [ 8 | { 9 | path: '', 10 | component: HomeComponent 11 | } 12 | ]; 13 | -------------------------------------------------------------------------------- /apps/frontend/translation-state/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'frontend-translation-state', 3 | preset: '../../../jest.config.js', 4 | coverageDirectory: '../../../coverage/apps/frontend/translation-state', 5 | snapshotSerializers: ['jest-preset-angular/AngularSnapshotSerializer.js', 'jest-preset-angular/HTMLCommentSerializer.js'] 6 | }; 7 | -------------------------------------------------------------------------------- /libs/dynamic-forms/src/lib/components/field-select/field-select.component.scss: -------------------------------------------------------------------------------- 1 | @import 'utils'; 2 | @import 'styles/components/forms/select-beauty'; 3 | 4 | :host { 5 | &.form-control-seporate { 6 | &_v1:before, 7 | &_v2:after { 8 | content: '/'; 9 | display: inline-block; 10 | padding: 0 2px; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /apps/frontend/localization/src/app/home/home.common.ts: -------------------------------------------------------------------------------- 1 | import { Routes } from '@angular/router'; 2 | 3 | import { HomeComponent } from './containers/home/home.component'; 4 | 5 | export const homeContainers: any[] = [HomeComponent]; 6 | 7 | export const homeRoutes: Routes = [ 8 | { 9 | path: '', 10 | component: HomeComponent 11 | } 12 | ]; 13 | -------------------------------------------------------------------------------- /apps/frontend/translation/src/app/home/home.common.ts: -------------------------------------------------------------------------------- 1 | import { Routes } from '@angular/router'; 2 | 3 | import { HomeComponent } from './containers/home/home.component'; 4 | 5 | export const homeContainers: any[] = [HomeComponent]; 6 | 7 | export const homeRoutes: Routes = [ 8 | { 9 | path: '', 10 | component: HomeComponent 11 | } 12 | ]; 13 | -------------------------------------------------------------------------------- /libs/store/src/lib/interfaces/payload.interface.ts: -------------------------------------------------------------------------------- 1 | import { Action } from '@ngrx/store'; 2 | 3 | /** 4 | * Action force payload 5 | */ 6 | export interface ActionForcePayload { 7 | force?: boolean; 8 | } 9 | 10 | /** 11 | * Action effect payload 12 | */ 13 | export interface ActionEffectPayload extends Action { 14 | payload: T; 15 | } 16 | -------------------------------------------------------------------------------- /apps/frontend/forms/src/styles/common/theme.scss: -------------------------------------------------------------------------------- 1 | @import 'utils'; 2 | 3 | ::selection { 4 | background: $primary; 5 | color: white; 6 | } 7 | 8 | .is-valid .form-control { 9 | border-color: $success; 10 | &:focus { 11 | border-color: $success; 12 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(92, 184, 92, 0.6); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /libs/events/src/lib/events-core/interfaces/events-core-options.interface.ts: -------------------------------------------------------------------------------- 1 | import { Type } from '@angular/core'; 2 | 3 | import { EventApollo } from './event-apollo.interface'; 4 | 5 | /** 6 | * Events core options 7 | */ 8 | export interface EventsCoreOptions { 9 | /** 10 | * Events apollo service 11 | */ 12 | apollo: Type; 13 | } 14 | -------------------------------------------------------------------------------- /libs/layouts/src/lib/layout/components/hamburger/hamburger.component.html: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/styles/common/theme.scss: -------------------------------------------------------------------------------- 1 | @import 'utils'; 2 | 3 | ::selection { 4 | background: $primary; 5 | color: white; 6 | } 7 | 8 | .is-valid .form-control { 9 | border-color: $success; 10 | &:focus { 11 | border-color: $success; 12 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(92, 184, 92, 0.6); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /libs/layouts/src/lib/layout/components/search/search.component.scss: -------------------------------------------------------------------------------- 1 | @import 'utils'; 2 | 3 | .btn-search { 4 | color: #fff; 5 | padding: 1rem; 6 | 7 | &:focus { 8 | box-shadow: none; 9 | outline: none; 10 | } 11 | } 12 | 13 | ms-icon { 14 | color: #fff; 15 | } 16 | 17 | .search-form { 18 | mat-form-field { 19 | width: 100%; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /apps/frontend/forms/src/main.server.ts: -------------------------------------------------------------------------------- 1 | import { enableProdMode } from '@angular/core'; 2 | 3 | import { environment } from './environments/environment'; 4 | 5 | if (environment.production) { 6 | enableProdMode(); 7 | } 8 | 9 | export { AppServerModule } from './app/app.server.module'; 10 | export { renderModule, renderModuleFactory } from '@angular/platform-server'; 11 | -------------------------------------------------------------------------------- /apps/frontend/redux/src/app/app.common.ts: -------------------------------------------------------------------------------- 1 | import { Routes } from '@angular/router'; 2 | 3 | export const routes: Routes = [ 4 | { 5 | path: '', 6 | loadChildren: () => import('./home/home.module').then(m => m.HomeModule) 7 | }, 8 | { 9 | path: 'users', 10 | loadChildren: () => import('./users/users.module').then(m => m.UsersModule) 11 | } 12 | ]; 13 | -------------------------------------------------------------------------------- /apps/frontend/shared/src/app/home/containers/home/home.component.scss: -------------------------------------------------------------------------------- 1 | @import 'utils'; 2 | 3 | :host { 4 | background-color: mat-color($mat-gray, 200); 5 | display: block; 6 | height: 100vh; 7 | } 8 | 9 | .home-page { 10 | padding: 1rem 2rem; 11 | } 12 | 13 | .home-actions { 14 | float: right; 15 | } 16 | 17 | .shared-card { 18 | margin-top: 2rem; 19 | } 20 | -------------------------------------------------------------------------------- /libs/layouts/src/lib/layout/components/logo/logo.component.ts: -------------------------------------------------------------------------------- 1 | import { ChangeDetectionStrategy, Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'medium-stories-logo', 5 | templateUrl: './logo.component.html', 6 | styleUrls: ['./logo.component.scss'], 7 | changeDetection: ChangeDetectionStrategy.OnPush 8 | }) 9 | export class LogoComponent {} 10 | -------------------------------------------------------------------------------- /apps/frontend/css/src/app/home/containers/home/home.component.ts: -------------------------------------------------------------------------------- 1 | import { ChangeDetectionStrategy, Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'medium-stories-home', 5 | templateUrl: './home.component.html', 6 | styleUrls: ['./home.component.scss'], 7 | changeDetection: ChangeDetectionStrategy.OnPush 8 | }) 9 | export class HomeComponent {} 10 | -------------------------------------------------------------------------------- /apps/frontend/redux/src/app/users/containers/user/user.component.ts: -------------------------------------------------------------------------------- 1 | import { ChangeDetectionStrategy, Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'medium-stories-user', 5 | templateUrl: './user.component.html', 6 | styleUrls: ['./user.component.scss'], 7 | changeDetection: ChangeDetectionStrategy.OnPush 8 | }) 9 | export class UserComponent {} 10 | -------------------------------------------------------------------------------- /apps/frontend/redux/src/assets/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": { 3 | "ru": "Русский", 4 | "en": "English" 5 | }, 6 | "home": { 7 | "welcome": "Welcome to", 8 | "title": "Login & Load", 9 | "actions": { 10 | "add": "Add" 11 | } 12 | }, 13 | "users": { 14 | "actions": { 15 | "load": "Load current user" 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/app.common.ts: -------------------------------------------------------------------------------- 1 | import { Routes } from '@angular/router'; 2 | 3 | export const routes: Routes = [ 4 | { 5 | path: '', 6 | loadChildren: () => import('./home/home.module').then(m => m.HomeModule) 7 | }, 8 | { 9 | path: 'users', 10 | loadChildren: () => import('./users/users.module').then(m => m.UsersModule) 11 | } 12 | ]; 13 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/users/services/simple.service.spec.ts: -------------------------------------------------------------------------------- 1 | import { SimpleService } from './simple.service'; 2 | 3 | describe('Simple test', () => { 4 | let service: SimpleService; 5 | 6 | beforeEach(() => { 7 | service = new SimpleService(); 8 | }); 9 | 10 | it('get() should return 1', () => { 11 | expect(service.get()).toBe(1); 12 | }); 13 | }); 14 | -------------------------------------------------------------------------------- /apps/frontend/translation-state/src/styles/common/theme.scss: -------------------------------------------------------------------------------- 1 | @import 'utils'; 2 | 3 | ::selection { 4 | background: $primary; 5 | color: white; 6 | } 7 | 8 | .is-valid .form-control { 9 | border-color: $success; 10 | &:focus { 11 | border-color: $success; 12 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(92, 184, 92, 0.6); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /libs/dynamic-forms/src/lib/interfaces/dynamic-forms-options.interface.ts: -------------------------------------------------------------------------------- 1 | import { Type } from '@angular/core'; 2 | 3 | import { FormConstructor } from './form-constructor.interface'; 4 | 5 | /** 6 | * Dynamic forms options 7 | */ 8 | export interface DynamicFormsOptions { 9 | /** 10 | * Form constructor 11 | */ 12 | formConstructor: Type; 13 | } 14 | -------------------------------------------------------------------------------- /libs/users/src/lib/users-core/interfaces/user-apollo.interface.ts: -------------------------------------------------------------------------------- 1 | import { ApolloResponse } from '@medium-stories/common'; 2 | import { User } from '@medium-stories/entities'; 3 | 4 | /** 5 | * User apollo 6 | */ 7 | export abstract class UserApollo { 8 | /** 9 | * Load current user 10 | */ 11 | abstract loadUser(queryParams?: object): ApolloResponse; 12 | } 13 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/users/containers/user/user.component.html: -------------------------------------------------------------------------------- 1 |
2 | 12 |
13 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/users/containers/user/user.component.ts: -------------------------------------------------------------------------------- 1 | import { ChangeDetectionStrategy, Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'medium-stories-user', 5 | templateUrl: './user.component.html', 6 | styleUrls: ['./user.component.scss'], 7 | changeDetection: ChangeDetectionStrategy.OnPush 8 | }) 9 | export class UserComponent {} 10 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/assets/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": { 3 | "ru": "Русский", 4 | "en": "English" 5 | }, 6 | "home": { 7 | "welcome": "Welcome to", 8 | "title": "Login & Load", 9 | "actions": { 10 | "add": "Add" 11 | } 12 | }, 13 | "users": { 14 | "actions": { 15 | "load": "Load current user" 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /apps/backend/api/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true, 3 | jwt: { 4 | secret: 'MyJWTSecret', 5 | expiresIn: 15000000 6 | }, 7 | connection: { 8 | type: null, 9 | host: null, 10 | port: null, 11 | username: null, 12 | password: null, 13 | database: null, 14 | synchronize: false 15 | } 16 | }; 17 | -------------------------------------------------------------------------------- /apps/frontend/localization/src/app/home/containers/home/home.component.ts: -------------------------------------------------------------------------------- 1 | import { ChangeDetectionStrategy, Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'medium-stories-home', 5 | templateUrl: './home.component.html', 6 | styleUrls: ['./home.component.scss'], 7 | changeDetection: ChangeDetectionStrategy.OnPush 8 | }) 9 | export class HomeComponent {} 10 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/app/home/containers/home/home.component.ts: -------------------------------------------------------------------------------- 1 | import { ChangeDetectionStrategy, Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'medium-stories-home', 5 | templateUrl: './home.component.html', 6 | styleUrls: ['./home.component.scss'], 7 | changeDetection: ChangeDetectionStrategy.OnPush 8 | }) 9 | export class HomeComponent { 10 | } 11 | -------------------------------------------------------------------------------- /libs/layouts/src/lib/layout-core/interfaces/breadcrumb.interface.ts: -------------------------------------------------------------------------------- 1 | import { Params } from '@angular/router'; 2 | 3 | /** 4 | * Breadcrumb interface 5 | */ 6 | export interface Breadcrumb { 7 | /** 8 | * Label 9 | */ 10 | label: string; 11 | 12 | /** 13 | * Params 14 | */ 15 | params?: Params; 16 | 17 | /** 18 | * Url 19 | */ 20 | url: string; 21 | } 22 | -------------------------------------------------------------------------------- /libs/layouts/src/lib/layout/components/footer/footer.component.ts: -------------------------------------------------------------------------------- 1 | import { ChangeDetectionStrategy, Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'medium-stories-footer', 5 | templateUrl: './footer.component.html', 6 | styleUrls: ['./footer.component.scss'], 7 | changeDetection: ChangeDetectionStrategy.OnPush 8 | }) 9 | export class FooterComponent {} 10 | -------------------------------------------------------------------------------- /libs/responsive/src/lib/interfaces/adaptive.interface.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Enum adaptive mode 3 | */ 4 | export enum AdaptiveMode { 5 | Equal = 'equal', 6 | Min = 'min', 7 | Max = 'max', 8 | Between = 'between', 9 | 10 | Mobile = 'mobile', 11 | 12 | // Next 13 | LeftBetween = 'left_between', 14 | RightBetween = 'right_between', 15 | StrictBetween = 'strict_between' 16 | } 17 | -------------------------------------------------------------------------------- /apps/frontend/markup/src/app/events/containers/events/events.component.ts: -------------------------------------------------------------------------------- 1 | import { ChangeDetectionStrategy, Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'medium-stories-events', 5 | templateUrl: './events.component.html', 6 | styleUrls: ['./events.component.scss'], 7 | changeDetection: ChangeDetectionStrategy.OnPush 8 | }) 9 | export class EventsComponent {} 10 | -------------------------------------------------------------------------------- /apps/frontend/store/src/app/core/core.common.ts: -------------------------------------------------------------------------------- 1 | import { Routes } from '@angular/router'; 2 | 3 | import { AppComponent } from './containers/app/app.component'; 4 | 5 | export const coreContainers: any[] = [AppComponent]; 6 | 7 | export const coreRoutes: Routes = [ 8 | { 9 | path: '', 10 | loadChildren: () => import('../home/home.module').then(m => m.HomeModule) 11 | } 12 | ]; 13 | -------------------------------------------------------------------------------- /libs/layouts/src/lib/layout/components/toolbar/toolbar.component.ts: -------------------------------------------------------------------------------- 1 | import { ChangeDetectionStrategy, Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'medium-stories-toolbar', 5 | templateUrl: './toolbar.component.html', 6 | styleUrls: ['./toolbar.component.scss'], 7 | changeDetection: ChangeDetectionStrategy.OnPush 8 | }) 9 | export class ToolbarComponent {} 10 | -------------------------------------------------------------------------------- /libs/storage/src/lib/interfaces/memory-storage.interface.ts: -------------------------------------------------------------------------------- 1 | import { AbstractStorage } from './abstract-storage.interface'; 2 | 3 | /** 4 | * Memory Storage 5 | * 6 | * @description 7 | * It simple storage for emulate Web Storage API 8 | * @see https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API 9 | */ 10 | export abstract class MemoryStorage extends AbstractStorage {} 11 | -------------------------------------------------------------------------------- /apps/frontend/css/src/app/home/home.common.ts: -------------------------------------------------------------------------------- 1 | import { Routes } from '@angular/router'; 2 | 3 | import { HomeComponent } from './containers/home/home.component'; 4 | 5 | export const homeComponents: any[] = []; 6 | 7 | export const homeContainers: any[] = [HomeComponent]; 8 | 9 | export const homeRoutes: Routes = [ 10 | { 11 | path: '', 12 | component: HomeComponent 13 | } 14 | ]; 15 | -------------------------------------------------------------------------------- /apps/frontend/css/src/stylesheets/common/theme.scss: -------------------------------------------------------------------------------- 1 | @import 'utils'; 2 | 3 | ::selection { 4 | background: $primary; 5 | color: white; 6 | } 7 | 8 | body { 9 | font-size: 16px; 10 | font-family: Roboto, 'Helvetica Neue', sans-serif; 11 | } 12 | 13 | .content-group { 14 | margin-bottom: 1rem; 15 | 16 | @include media-breakpoint-up(lg) { 17 | margin-bottom: 2rem; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /apps/frontend/forms/src/styles/material/theme.scss: -------------------------------------------------------------------------------- 1 | @import '~@angular/material/theming'; 2 | 3 | @include mat-core(); 4 | 5 | $app-primary: mat-palette($mat-lamborghini, 500); 6 | $app-accent: mat-palette($mat-gray); 7 | $app-warn: mat-palette($mat-deep-orange); 8 | 9 | $app-theme: mat-light-theme($app-primary, $app-accent, $app-warn); 10 | 11 | @include angular-material-theme($app-theme); 12 | -------------------------------------------------------------------------------- /apps/frontend/graphql/src/styles/material/theme.scss: -------------------------------------------------------------------------------- 1 | @import '~@angular/material/theming'; 2 | 3 | @include mat-core(); 4 | 5 | $app-primary: mat-palette($mat-lamborghini, 500); 6 | $app-accent: mat-palette($mat-gray); 7 | $app-warn: mat-palette($mat-deep-orange); 8 | 9 | $app-theme: mat-light-theme($app-primary, $app-accent, $app-warn); 10 | 11 | @include angular-material-theme($app-theme); 12 | -------------------------------------------------------------------------------- /apps/frontend/markup/src/styles/material/theme.scss: -------------------------------------------------------------------------------- 1 | @import '~@angular/material/theming'; 2 | 3 | @include mat-core(); 4 | 5 | $app-primary: mat-palette($mat-lamborghini, 500); 6 | $app-accent: mat-palette($mat-gray); 7 | $app-warn: mat-palette($mat-deep-orange); 8 | 9 | $app-theme: mat-light-theme($app-primary, $app-accent, $app-warn); 10 | 11 | @include angular-material-theme($app-theme); 12 | -------------------------------------------------------------------------------- /apps/frontend/responsive/src/app/core/core.common.ts: -------------------------------------------------------------------------------- 1 | import { Routes } from '@angular/router'; 2 | 3 | import { AppComponent } from './containers/app/app.component'; 4 | 5 | export const coreContainers: any[] = [AppComponent]; 6 | 7 | export const coreRoutes: Routes = [ 8 | { 9 | path: '', 10 | loadChildren: () => import('../home/home.module').then(m => m.HomeModule) 11 | } 12 | ]; 13 | -------------------------------------------------------------------------------- /apps/frontend/shared/src/app/core/core.common.ts: -------------------------------------------------------------------------------- 1 | import { Routes } from '@angular/router'; 2 | 3 | import { AppComponent } from './containers/app/app.component'; 4 | 5 | export const coreContainers: any[] = [AppComponent]; 6 | 7 | export const coreRoutes: Routes = [ 8 | { 9 | path: '', 10 | loadChildren: () => import('../home/home.module').then(m => m.HomeModule) 11 | } 12 | ]; 13 | -------------------------------------------------------------------------------- /apps/frontend/storage/src/app/core/core.common.ts: -------------------------------------------------------------------------------- 1 | import { Routes } from '@angular/router'; 2 | 3 | import { AppComponent } from './containers/app/app.component'; 4 | 5 | export const coreContainers: any[] = [AppComponent]; 6 | 7 | export const coreRoutes: Routes = [ 8 | { 9 | path: '', 10 | loadChildren: () => import('../home/home.module').then(m => m.HomeModule) 11 | } 12 | ]; 13 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/styles/material/theme.scss: -------------------------------------------------------------------------------- 1 | @import '~@angular/material/theming'; 2 | 3 | @include mat-core(); 4 | 5 | $app-primary: mat-palette($mat-lamborghini, 500); 6 | $app-accent: mat-palette($mat-gray); 7 | $app-warn: mat-palette($mat-deep-orange); 8 | 9 | $app-theme: mat-light-theme($app-primary, $app-accent, $app-warn); 10 | 11 | @include angular-material-theme($app-theme); 12 | -------------------------------------------------------------------------------- /apps/frontend/theming/src/app/core/core.common.ts: -------------------------------------------------------------------------------- 1 | import { Routes } from '@angular/router'; 2 | 3 | import { AppComponent } from './containers/app/app.component'; 4 | 5 | export const coreContainers: any[] = [AppComponent]; 6 | 7 | export const coreRoutes: Routes = [ 8 | { 9 | path: '', 10 | loadChildren: () => import('../home/home.module').then(m => m.HomeModule) 11 | } 12 | ]; 13 | -------------------------------------------------------------------------------- /apps/frontend/universal/src/app/app.server.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { ServerModule } from '@angular/platform-server'; 3 | 4 | import { AppComponent } from './app.component'; 5 | import { AppModule } from './app.module'; 6 | 7 | @NgModule({ 8 | imports: [AppModule, ServerModule], 9 | bootstrap: [AppComponent] 10 | }) 11 | export class AppServerModule {} 12 | -------------------------------------------------------------------------------- /libs/events/src/lib/events/containers/event-new/event-new.component.scss: -------------------------------------------------------------------------------- 1 | @import 'utils'; 2 | 3 | :host { 4 | } 5 | 6 | .event-new-page { 7 | @include layout-padding-top(); 8 | } 9 | 10 | .event-new-title { 11 | margin: 2rem 0 1rem 0; 12 | } 13 | 14 | .event-new-form { 15 | display: block; 16 | margin: 1rem 0; 17 | } 18 | 19 | .event-new-actions { 20 | text-align: right; 21 | } 22 | -------------------------------------------------------------------------------- /libs/layouts/src/lib/layout/components/header/header.component.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 |
5 | 6 |
7 | 8 |
9 | -------------------------------------------------------------------------------- /apps/frontend/common-styles/src/app/core/core.common.ts: -------------------------------------------------------------------------------- 1 | import { Routes } from '@angular/router'; 2 | 3 | import { AppComponent } from './containers/app/app.component'; 4 | 5 | export const coreContainers: any[] = [AppComponent]; 6 | 7 | export const coreRoutes: Routes = [ 8 | { 9 | path: '', 10 | loadChildren: () => import('../home/home.module').then(m => m.HomeModule) 11 | } 12 | ]; 13 | -------------------------------------------------------------------------------- /apps/frontend/css/src/app/grids/components/grid-new/grid-new.component.ts: -------------------------------------------------------------------------------- 1 | import { ChangeDetectionStrategy, Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'medium-stories-grid-new', 5 | templateUrl: './grid-new.component.html', 6 | styleUrls: ['./grid-new.component.scss'], 7 | changeDetection: ChangeDetectionStrategy.OnPush, 8 | }) 9 | export class GridNewComponent {} 10 | -------------------------------------------------------------------------------- /apps/frontend/css/src/app/grids/components/grid-old/grid-old.component.ts: -------------------------------------------------------------------------------- 1 | import { ChangeDetectionStrategy, Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'medium-stories-grid-old', 5 | templateUrl: './grid-old.component.html', 6 | styleUrls: ['./grid-old.component.scss'], 7 | changeDetection: ChangeDetectionStrategy.OnPush, 8 | }) 9 | export class GridOldComponent {} 10 | -------------------------------------------------------------------------------- /apps/frontend/translation/src/app/core/core.common.ts: -------------------------------------------------------------------------------- 1 | import { Routes } from '@angular/router'; 2 | 3 | import { AppComponent } from './containers/app/app.component'; 4 | 5 | export const coreContainers: any[] = [AppComponent]; 6 | 7 | export const coreRoutes: Routes = [ 8 | { 9 | path: '', 10 | loadChildren: () => import('../home/home.module').then(m => m.HomeModule) 11 | } 12 | ]; 13 | -------------------------------------------------------------------------------- /libs/store/src/lib/interfaces/router-url-state.interface.ts: -------------------------------------------------------------------------------- 1 | import { Params } from '@angular/router'; 2 | 3 | /** 4 | * Router state URL 5 | */ 6 | export interface RouterUrlState { 7 | /** 8 | * URL 9 | */ 10 | url: string; 11 | 12 | /** 13 | * Route params 14 | */ 15 | params: Params; 16 | 17 | /** 18 | * Route query params 19 | */ 20 | queryParams: Params; 21 | } 22 | -------------------------------------------------------------------------------- /libs/translation/src/lib/interfaces/translation.interface.ts: -------------------------------------------------------------------------------- 1 | import { InjectionToken } from '@angular/core'; 2 | 3 | /** 4 | * Translate loader prefix token 5 | */ 6 | export const TRANSLATION_PREFIX = new InjectionToken('TranslationPrefix'); 7 | 8 | /** 9 | * Translate loader suffix token 10 | */ 11 | export const TRANSLATION_SUFFIX = new InjectionToken('TranslationSuffix'); 12 | -------------------------------------------------------------------------------- /apps/frontend/css/src/app/fixed-adaptive/containers/fixed-adaptive-demo/fixed-adaptive-demo.component.html: -------------------------------------------------------------------------------- 1 |
2 |

Legacy version

3 | 4 |
5 | 6 |
7 |

Base version

8 | 9 |
10 | -------------------------------------------------------------------------------- /apps/frontend/forms/src/app/events/events.common.ts: -------------------------------------------------------------------------------- 1 | import { Routes } from '@angular/router'; 2 | 3 | import { eventsRoutes as baseEventRoutes } from '@medium-stories/events'; 4 | import { BaseLayoutComponent } from '@medium-stories/layouts'; 5 | 6 | export const eventsRoutes: Routes = [ 7 | { 8 | path: '', 9 | component: BaseLayoutComponent, 10 | children: baseEventRoutes 11 | } 12 | ]; 13 | -------------------------------------------------------------------------------- /apps/frontend/translation-state/src/app/core/core.common.ts: -------------------------------------------------------------------------------- 1 | import { Routes } from '@angular/router'; 2 | 3 | import { AppComponent } from './containers/app/app.component'; 4 | 5 | export const coreContainers: any[] = [AppComponent]; 6 | 7 | export const coreRoutes: Routes = [ 8 | { 9 | path: '', 10 | loadChildren: () => import('../home/home.module').then(m => m.HomeModule) 11 | } 12 | ]; 13 | -------------------------------------------------------------------------------- /apps/frontend/translation-state/src/styles/material/theme.scss: -------------------------------------------------------------------------------- 1 | @import '~@angular/material/theming'; 2 | 3 | @include mat-core(); 4 | 5 | $app-primary: mat-palette($mat-lamborghini, 500); 6 | $app-accent: mat-palette($mat-gray); 7 | $app-warn: mat-palette($mat-deep-orange); 8 | 9 | $app-theme: mat-light-theme($app-primary, $app-accent, $app-warn); 10 | 11 | @include angular-material-theme($app-theme); 12 | -------------------------------------------------------------------------------- /libs/auth/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'auth', 3 | preset: '../../jest.config.js', 4 | coverageDirectory: '../../coverage/libs/auth', 5 | snapshotSerializers: [ 6 | 'jest-preset-angular/build/AngularNoNgAttributesSnapshotSerializer.js', 7 | 'jest-preset-angular/build/AngularSnapshotSerializer.js', 8 | 'jest-preset-angular/build/HTMLCommentSerializer.js' 9 | ] 10 | }; 11 | -------------------------------------------------------------------------------- /libs/layouts/src/lib/layout/components/side-tools/side-tools.component.ts: -------------------------------------------------------------------------------- 1 | import { ChangeDetectionStrategy, Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'medium-stories-side-tools', 5 | templateUrl: './side-tools.component.html', 6 | styleUrls: ['./side-tools.component.scss'], 7 | changeDetection: ChangeDetectionStrategy.OnPush 8 | }) 9 | export class SideToolsComponent {} 10 | -------------------------------------------------------------------------------- /libs/store/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'store', 3 | preset: '../../jest.config.js', 4 | coverageDirectory: '../../coverage/libs/store', 5 | snapshotSerializers: [ 6 | 'jest-preset-angular/build/AngularNoNgAttributesSnapshotSerializer.js', 7 | 'jest-preset-angular/build/AngularSnapshotSerializer.js', 8 | 'jest-preset-angular/build/HTMLCommentSerializer.js' 9 | ] 10 | }; 11 | -------------------------------------------------------------------------------- /libs/users/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'users', 3 | preset: '../../jest.config.js', 4 | coverageDirectory: '../../coverage/libs/users', 5 | snapshotSerializers: [ 6 | 'jest-preset-angular/build/AngularNoNgAttributesSnapshotSerializer.js', 7 | 'jest-preset-angular/build/AngularSnapshotSerializer.js', 8 | 'jest-preset-angular/build/HTMLCommentSerializer.js' 9 | ] 10 | }; 11 | -------------------------------------------------------------------------------- /apps/frontend/css/src/app/grids/containers/grids-demo/grids-demo.component.ts: -------------------------------------------------------------------------------- 1 | import { ChangeDetectionStrategy, Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'medium-stories-grids-demo', 5 | templateUrl: './grids-demo.component.html', 6 | styleUrls: ['./grids-demo.component.scss'], 7 | changeDetection: ChangeDetectionStrategy.OnPush, 8 | }) 9 | export class GridsDemoComponent {} 10 | -------------------------------------------------------------------------------- /apps/frontend/graphql/src/app/events/events.common.ts: -------------------------------------------------------------------------------- 1 | import { Routes } from '@angular/router'; 2 | 3 | import { eventsRoutes as baseEventRoutes } from '@medium-stories/events'; 4 | import { BaseLayoutComponent } from '@medium-stories/layouts'; 5 | 6 | export const eventsRoutes: Routes = [ 7 | { 8 | path: '', 9 | component: BaseLayoutComponent, 10 | children: baseEventRoutes 11 | } 12 | ]; 13 | -------------------------------------------------------------------------------- /apps/frontend/storage/src/app/app.module.ts: -------------------------------------------------------------------------------- 1 | import { HttpClientModule } from '@angular/common/http'; 2 | import { NgModule } from '@angular/core'; 3 | import { BrowserModule, BrowserTransferStateModule } from '@angular/platform-browser'; 4 | 5 | @NgModule({ 6 | imports: [BrowserModule.withServerTransition({ appId: 'medium-stories' }), HttpClientModule, BrowserTransferStateModule] 7 | }) 8 | export class AppModule {} 9 | -------------------------------------------------------------------------------- /libs/common/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'common', 3 | preset: '../../jest.config.js', 4 | coverageDirectory: '../../coverage/libs/common', 5 | snapshotSerializers: [ 6 | 'jest-preset-angular/build/AngularNoNgAttributesSnapshotSerializer.js', 7 | 'jest-preset-angular/build/AngularSnapshotSerializer.js', 8 | 'jest-preset-angular/build/HTMLCommentSerializer.js' 9 | ] 10 | }; 11 | -------------------------------------------------------------------------------- /libs/events/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'events', 3 | preset: '../../jest.config.js', 4 | coverageDirectory: '../../coverage/libs/events', 5 | snapshotSerializers: [ 6 | 'jest-preset-angular/build/AngularNoNgAttributesSnapshotSerializer.js', 7 | 'jest-preset-angular/build/AngularSnapshotSerializer.js', 8 | 'jest-preset-angular/build/HTMLCommentSerializer.js' 9 | ] 10 | }; 11 | -------------------------------------------------------------------------------- /libs/shared/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'shared', 3 | preset: '../../jest.config.js', 4 | coverageDirectory: '../../coverage/libs/shared', 5 | snapshotSerializers: [ 6 | 'jest-preset-angular/build/AngularNoNgAttributesSnapshotSerializer.js', 7 | 'jest-preset-angular/build/AngularSnapshotSerializer.js', 8 | 'jest-preset-angular/build/HTMLCommentSerializer.js' 9 | ] 10 | }; 11 | -------------------------------------------------------------------------------- /apps/backend/api/src/environments/environment.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: false, 3 | jwt: { 4 | secret: 'MyJWTSecret', 5 | expiresIn: 15000000 6 | }, 7 | connection: { 8 | type: 'postgres' as any, 9 | host: 'localhost', 10 | port: 5433, 11 | username: 'postgres', 12 | password: '123456', 13 | database: 'medium', 14 | synchronize: true 15 | } 16 | }; 17 | -------------------------------------------------------------------------------- /apps/frontend/redux/src/app/home/containers/home/home.component.ts: -------------------------------------------------------------------------------- 1 | import { ChangeDetectionStrategy, Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'medium-stories-home', 5 | templateUrl: './home.component.html', 6 | styleUrls: ['./home.component.scss'], 7 | changeDetection: ChangeDetectionStrategy.OnPush 8 | }) 9 | export class HomeComponent { 10 | title = 'frontend-redux'; 11 | } 12 | -------------------------------------------------------------------------------- /libs/layouts/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'layouts', 3 | preset: '../../jest.config.js', 4 | coverageDirectory: '../../coverage/libs/layouts', 5 | snapshotSerializers: [ 6 | 'jest-preset-angular/build/AngularNoNgAttributesSnapshotSerializer.js', 7 | 'jest-preset-angular/build/AngularSnapshotSerializer.js', 8 | 'jest-preset-angular/build/HTMLCommentSerializer.js' 9 | ] 10 | }; 11 | -------------------------------------------------------------------------------- /libs/shared/src/lib/pipes/language-label.pipe.ts: -------------------------------------------------------------------------------- 1 | import { Pipe, PipeTransform } from '@angular/core'; 2 | 3 | @Pipe({ 4 | name: 'languageLabel' 5 | }) 6 | export class LanguageLabelPipe implements PipeTransform { 7 | static prefix = 'languages.full.'; 8 | 9 | transform(language: any, prefix: string = LanguageLabelPipe.prefix, ...args: any[]): string { 10 | return `${prefix}${language}`; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /libs/storage/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'storage', 3 | preset: '../../jest.config.js', 4 | coverageDirectory: '../../coverage/libs/storage', 5 | snapshotSerializers: [ 6 | 'jest-preset-angular/build/AngularNoNgAttributesSnapshotSerializer.js', 7 | 'jest-preset-angular/build/AngularSnapshotSerializer.js', 8 | 'jest-preset-angular/build/HTMLCommentSerializer.js' 9 | ] 10 | }; 11 | -------------------------------------------------------------------------------- /libs/translation/src/lib/loaders/server-translate.loader.spec.ts: -------------------------------------------------------------------------------- 1 | import { ServerTranslateLoader } from './server-translate.loader'; 2 | 3 | describe('ServerTranslateLoader', () => { 4 | let loader: ServerTranslateLoader; 5 | 6 | beforeEach(() => { 7 | loader = new ServerTranslateLoader(null, null); 8 | }); 9 | 10 | it('should create', () => { 11 | expect(loader).toBeTruthy(); 12 | }); 13 | }); 14 | -------------------------------------------------------------------------------- /apps/frontend/forms/src/styles/style.scss: -------------------------------------------------------------------------------- 1 | // Import app utils 2 | @import './utils'; 3 | 4 | // Import common theme 5 | @import 'material/theme'; 6 | @import 'bootstrap/theme'; 7 | 8 | // Import common styles 9 | @import 'styles/style'; 10 | @import 'common/theme'; 11 | 12 | // Import common components 13 | @import 'styles/components/ms-modal'; 14 | 15 | // Import external styles 16 | @import 'external/ng-select'; 17 | -------------------------------------------------------------------------------- /apps/frontend/graphql/src/styles/style.scss: -------------------------------------------------------------------------------- 1 | // Import app utils 2 | @import './utils'; 3 | 4 | // Import common theme 5 | @import 'material/theme'; 6 | @import 'bootstrap/theme'; 7 | 8 | // Import common styles 9 | @import 'styles/style'; 10 | @import 'common/theme'; 11 | 12 | // Import common components 13 | @import 'styles/components/ms-modal'; 14 | 15 | // Import external styles 16 | @import 'external/ng-select'; 17 | -------------------------------------------------------------------------------- /apps/frontend/markup/src/styles/style.scss: -------------------------------------------------------------------------------- 1 | // Import app utils 2 | @import './utils'; 3 | 4 | // Import common theme 5 | @import 'material/theme'; 6 | @import 'bootstrap/theme'; 7 | 8 | // Import common styles 9 | @import 'styles/style'; 10 | @import 'common/theme'; 11 | 12 | // Import common components 13 | @import 'styles/components/ms-modal'; 14 | 15 | // Import external styles 16 | @import 'external/ng-select'; 17 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/styles/style.scss: -------------------------------------------------------------------------------- 1 | // Import app utils 2 | @import './utils'; 3 | 4 | // Import common theme 5 | @import 'material/theme'; 6 | @import 'bootstrap/theme'; 7 | 8 | // Import common styles 9 | @import 'styles/style'; 10 | @import 'common/theme'; 11 | 12 | // Import common components 13 | @import 'styles/components/ms-modal'; 14 | 15 | // Import external styles 16 | @import 'external/ng-select'; 17 | -------------------------------------------------------------------------------- /libs/layouts/src/lib/layout/components/footer-copyright/footer-copyright.component.scss: -------------------------------------------------------------------------------- 1 | @import 'utils'; 2 | 3 | .footer-copyright { 4 | color: mat-color($mat-gray, 200); 5 | font-size: 0.65rem; 6 | font-weight: 300; 7 | text-align: center; 8 | 9 | @include media-breakpoint-up(sm) { 10 | font-size: 0.85rem; 11 | } 12 | @include media-breakpoint-up($mobile) { 13 | font-size: 1rem; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /libs/layouts/src/lib/layout/layouts.tokens.ts: -------------------------------------------------------------------------------- 1 | import { InjectionToken } from '@angular/core'; 2 | 3 | import { NavLink } from './interfaces/nav-link.interface'; 4 | 5 | export const NAV_LINKS = new InjectionToken('NavMenu'); 6 | 7 | export const FOOTER_NAV_LINKS = new InjectionToken('FooterNavMenu'); 8 | 9 | export const FOOTER_GROUPS_LINKS = new InjectionToken('FooterGroupsMenu'); 10 | -------------------------------------------------------------------------------- /libs/responsive/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'responsive', 3 | preset: '../../jest.config.js', 4 | coverageDirectory: '../../coverage/libs/responsive', 5 | snapshotSerializers: [ 6 | 'jest-preset-angular/build/AngularNoNgAttributesSnapshotSerializer.js', 7 | 'jest-preset-angular/build/AngularSnapshotSerializer.js', 8 | 'jest-preset-angular/build/HTMLCommentSerializer.js' 9 | ] 10 | }; 11 | -------------------------------------------------------------------------------- /libs/translation/src/lib/loaders/browser-translate.loader.spec.ts: -------------------------------------------------------------------------------- 1 | import { BrowserTranslateLoader } from './browser-translate.loader'; 2 | 3 | describe('BrowserTranslateLoader', () => { 4 | let loader: BrowserTranslateLoader; 5 | 6 | beforeEach(() => { 7 | loader = new BrowserTranslateLoader(null, null); 8 | }); 9 | 10 | it('should create', () => { 11 | expect(loader).toBeTruthy(); 12 | }); 13 | }); 14 | -------------------------------------------------------------------------------- /apps/frontend/base/src/app/app.browser.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; 3 | 4 | import { AppComponent } from './app.component'; 5 | import { AppModule } from './app.module'; 6 | 7 | @NgModule({ 8 | imports: [AppModule, BrowserAnimationsModule], 9 | bootstrap: [AppComponent] 10 | }) 11 | export class AppBrowserModule {} 12 | -------------------------------------------------------------------------------- /apps/frontend/base/tsconfig.server.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.app.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc-server", 5 | "types": ["node"], 6 | "target": "es2016" 7 | }, 8 | "angularCompilerOptions": { 9 | "entryModule": "./src/app/app.server.module#AppServerModule" 10 | }, 11 | "files": ["src/main.server.ts", "server.ts"], 12 | "include": ["**/*.d.ts"] 13 | } 14 | -------------------------------------------------------------------------------- /apps/frontend/css/src/app/grids/components/grid-feature/grid-feature.component.ts: -------------------------------------------------------------------------------- 1 | import { ChangeDetectionStrategy, Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'medium-stories-grid-feature', 5 | templateUrl: './grid-feature.component.html', 6 | styleUrls: ['./grid-feature.component.scss'], 7 | changeDetection: ChangeDetectionStrategy.OnPush, 8 | }) 9 | export class GridFeatureComponent {} 10 | -------------------------------------------------------------------------------- /apps/frontend/forms/tsconfig.server.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.app.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc-server", 5 | "types": ["node"], 6 | "target": "es2016" 7 | }, 8 | "angularCompilerOptions": { 9 | "entryModule": "./src/app/app.server.module#AppServerModule" 10 | }, 11 | "files": ["src/main.server.ts", "server.ts"], 12 | "include": ["**/*.d.ts"] 13 | } 14 | -------------------------------------------------------------------------------- /apps/frontend/graphql/tsconfig.server.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.app.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc-server", 5 | "types": ["node"], 6 | "target": "es2016" 7 | }, 8 | "angularCompilerOptions": { 9 | "entryModule": "./src/app/app.server.module#AppServerModule" 10 | }, 11 | "files": ["src/main.server.ts", "server.ts"], 12 | "include": ["**/*.d.ts"] 13 | } 14 | -------------------------------------------------------------------------------- /apps/frontend/markup/tsconfig.server.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.app.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc-server", 5 | "types": ["node"], 6 | "target": "es2016" 7 | }, 8 | "angularCompilerOptions": { 9 | "entryModule": "./src/app/app.server.module#AppServerModule" 10 | }, 11 | "files": ["src/main.server.ts", "server.ts"], 12 | "include": ["**/*.d.ts"] 13 | } 14 | -------------------------------------------------------------------------------- /apps/frontend/redux/tsconfig.server.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.app.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc-server", 5 | "types": ["node"], 6 | "target": "es2016" 7 | }, 8 | "angularCompilerOptions": { 9 | "entryModule": "./src/app/app.server.module#AppServerModule" 10 | }, 11 | "files": ["src/main.server.ts", "server.ts"], 12 | "include": ["**/*.d.ts"] 13 | } 14 | -------------------------------------------------------------------------------- /apps/frontend/responsive/src/assets/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": { 3 | "ru": "Русский", 4 | "en": "English" 5 | }, 6 | "home": { 7 | "title": "Home page with Theming", 8 | "count": "Count", 9 | "actions": { 10 | "add": "Add" 11 | } 12 | }, 13 | "responsive": { 14 | "title": "Block with dynamic adaptive", 15 | "titleSync": "Block with dynamic adaptive (sync)" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /apps/frontend/shared/tsconfig.server.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.app.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc-server", 5 | "types": ["node"], 6 | "target": "es2016" 7 | }, 8 | "angularCompilerOptions": { 9 | "entryModule": "./src/app/app.server.module#AppServerModule" 10 | }, 11 | "files": ["src/main.server.ts", "server.ts"], 12 | "include": ["**/*.d.ts"] 13 | } 14 | -------------------------------------------------------------------------------- /apps/frontend/storage/tsconfig.server.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.app.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc-server", 5 | "types": ["node"], 6 | "target": "es2016" 7 | }, 8 | "angularCompilerOptions": { 9 | "entryModule": "./src/app/app.server.module#AppServerModule" 10 | }, 11 | "files": ["src/main.server.ts", "server.ts"], 12 | "include": ["**/*.d.ts"] 13 | } 14 | -------------------------------------------------------------------------------- /apps/frontend/store/tsconfig.server.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.app.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc-server", 5 | "types": ["node"], 6 | "target": "es2016" 7 | }, 8 | "angularCompilerOptions": { 9 | "entryModule": "./src/app/app.server.module#AppServerModule" 10 | }, 11 | "files": ["src/main.server.ts", "server.ts"], 12 | "include": ["**/*.d.ts"] 13 | } 14 | -------------------------------------------------------------------------------- /apps/frontend/testing/tsconfig.server.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.app.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc-server", 5 | "types": ["node"], 6 | "target": "es2016" 7 | }, 8 | "angularCompilerOptions": { 9 | "entryModule": "./src/app/app.server.module#AppServerModule" 10 | }, 11 | "files": ["src/main.server.ts", "server.ts"], 12 | "include": ["**/*.d.ts"] 13 | } 14 | -------------------------------------------------------------------------------- /apps/frontend/theming/tsconfig.server.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.app.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc-server", 5 | "types": ["node"], 6 | "target": "es2016" 7 | }, 8 | "angularCompilerOptions": { 9 | "entryModule": "./src/app/app.server.module#AppServerModule" 10 | }, 11 | "files": ["src/main.server.ts", "server.ts"], 12 | "include": ["**/*.d.ts"] 13 | } 14 | -------------------------------------------------------------------------------- /libs/layouts/src/lib/layout/components/footer-bottom/footer-bottom.component.ts: -------------------------------------------------------------------------------- 1 | import { ChangeDetectionStrategy, Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'medium-stories-footer-bottom', 5 | templateUrl: './footer-bottom.component.html', 6 | styleUrls: ['./footer-bottom.component.scss'], 7 | changeDetection: ChangeDetectionStrategy.OnPush 8 | }) 9 | export class FooterBottomComponent {} 10 | -------------------------------------------------------------------------------- /libs/shared/src/lib/components/icon/icon.component.ts: -------------------------------------------------------------------------------- 1 | import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; 2 | import { IconProp } from '@fortawesome/fontawesome-svg-core'; 3 | 4 | @Component({ 5 | selector: 'ms-icon', 6 | template: '', 7 | changeDetection: ChangeDetectionStrategy.OnPush 8 | }) 9 | export class IconComponent { 10 | @Input() icon: IconProp; 11 | } 12 | -------------------------------------------------------------------------------- /libs/translation/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'translation', 3 | preset: '../../jest.config.js', 4 | coverageDirectory: '../../coverage/libs/translation', 5 | snapshotSerializers: [ 6 | 'jest-preset-angular/build/AngularNoNgAttributesSnapshotSerializer.js', 7 | 'jest-preset-angular/build/AngularSnapshotSerializer.js', 8 | 'jest-preset-angular/build/HTMLCommentSerializer.js' 9 | ] 10 | }; 11 | -------------------------------------------------------------------------------- /styles/material/theme.scss: -------------------------------------------------------------------------------- 1 | @import '~@angular/material/theming'; 2 | 3 | @include mat-core(); 4 | 5 | $candy-app-primary: mat-palette($mat-indigo); 6 | $candy-app-accent: mat-palette($mat-pink, A200, A100, A400); 7 | 8 | $candy-app-warn: mat-palette($mat-red); 9 | 10 | $candy-app-theme: mat-light-theme($candy-app-primary, $candy-app-accent, $candy-app-warn); 11 | 12 | @include angular-material-theme($candy-app-theme); 13 | -------------------------------------------------------------------------------- /apps/frontend/css/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | FrontendCss 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /apps/frontend/localization/tsconfig.server.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.app.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc-server", 5 | "types": ["node"], 6 | "target": "es2016" 7 | }, 8 | "angularCompilerOptions": { 9 | "entryModule": "./src/app/app.server.module#AppServerModule" 10 | }, 11 | "files": ["src/main.server.ts", "server.ts"], 12 | "include": ["**/*.d.ts"] 13 | } 14 | -------------------------------------------------------------------------------- /apps/frontend/markup/src/app/home/containers/home/home.component.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 |
5 |
6 | Main content, demo for scroll example 7 |
8 |
9 |
10 | -------------------------------------------------------------------------------- /apps/frontend/redux/src/assets/i18n/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": { 3 | "ru": "Русский", 4 | "en": "English" 5 | }, 6 | "home": { 7 | "welcome": "Приветствуем ", 8 | "title": "Авторизация и получение текущего пользователя", 9 | "actions": { 10 | "add": "Добавить" 11 | } 12 | }, 13 | "users": { 14 | "actions": { 15 | "load": "Загрузить текущего пользователя" 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /apps/frontend/responsive/tsconfig.server.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.app.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc-server", 5 | "types": ["node"], 6 | "target": "es2016" 7 | }, 8 | "angularCompilerOptions": { 9 | "entryModule": "./src/app/app.server.module#AppServerModule" 10 | }, 11 | "files": ["src/main.server.ts", "server.ts"], 12 | "include": ["**/*.d.ts"] 13 | } 14 | -------------------------------------------------------------------------------- /apps/frontend/storage/src/app/home/home.module.ts: -------------------------------------------------------------------------------- 1 | import { CommonModule } from '@angular/common'; 2 | import { NgModule } from '@angular/core'; 3 | import { RouterModule } from '@angular/router'; 4 | 5 | import { homeContainers, homeRoutes } from './home.common'; 6 | 7 | @NgModule({ 8 | imports: [CommonModule, RouterModule.forChild(homeRoutes)], 9 | declarations: [...homeContainers] 10 | }) 11 | export class HomeModule {} 12 | -------------------------------------------------------------------------------- /apps/frontend/translation-state/src/styles/style.scss: -------------------------------------------------------------------------------- 1 | // Import app utils 2 | @import './utils'; 3 | 4 | // Import common theme 5 | @import 'material/theme'; 6 | @import 'bootstrap/theme'; 7 | 8 | // Import common styles 9 | @import 'styles/style'; 10 | @import 'common/theme'; 11 | 12 | // Import common components 13 | @import 'styles/components/ms-modal'; 14 | 15 | // Import external styles 16 | @import 'external/ng-select'; 17 | -------------------------------------------------------------------------------- /apps/frontend/translation/tsconfig.server.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.app.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc-server", 5 | "types": ["node"], 6 | "target": "es2016" 7 | }, 8 | "angularCompilerOptions": { 9 | "entryModule": "./src/app/app.server.module#AppServerModule" 10 | }, 11 | "files": ["src/main.server.ts", "server.ts"], 12 | "include": ["**/*.d.ts"] 13 | } 14 | -------------------------------------------------------------------------------- /apps/frontend/universal/tsconfig.server.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.app.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc-server", 5 | "types": ["node"], 6 | "target": "es2016" 7 | }, 8 | "angularCompilerOptions": { 9 | "entryModule": "./src/app/app.server.module#AppServerModule" 10 | }, 11 | "files": ["src/main.server.ts", "server.ts"], 12 | "include": ["**/*.d.ts"] 13 | } 14 | -------------------------------------------------------------------------------- /libs/dynamic-forms/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'dynamic-forms', 3 | preset: '../../jest.config.js', 4 | coverageDirectory: '../../coverage/libs/dynamic-forms', 5 | snapshotSerializers: [ 6 | 'jest-preset-angular/build/AngularNoNgAttributesSnapshotSerializer.js', 7 | 'jest-preset-angular/build/AngularSnapshotSerializer.js', 8 | 'jest-preset-angular/build/HTMLCommentSerializer.js' 9 | ] 10 | }; 11 | -------------------------------------------------------------------------------- /libs/users/src/lib/users-core/graphql/user.queries.ts: -------------------------------------------------------------------------------- 1 | import gql from 'graphql-tag'; 2 | 3 | import { ApolloRequest } from '@medium-stories/common'; 4 | 5 | export const userRequest: ApolloRequest = { 6 | keys: ['user'], 7 | query: gql` 8 | query { 9 | user { 10 | id 11 | username 12 | email 13 | phone 14 | created 15 | updated 16 | } 17 | } 18 | ` 19 | }; 20 | -------------------------------------------------------------------------------- /apps/frontend/base/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | FrontendBase 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /apps/frontend/common-styles/tsconfig.server.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.app.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc-server", 5 | "types": ["node"], 6 | "target": "es2016" 7 | }, 8 | "angularCompilerOptions": { 9 | "entryModule": "./src/app/app.server.module#AppServerModule" 10 | }, 11 | "files": ["src/main.server.ts", "server.ts"], 12 | "include": ["**/*.d.ts"] 13 | } 14 | -------------------------------------------------------------------------------- /apps/frontend/css/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'frontend-css', 3 | preset: '../../../jest.config.js', 4 | coverageDirectory: '../../../coverage/apps/frontend/css', 5 | snapshotSerializers: [ 6 | 'jest-preset-angular/build/AngularNoNgAttributesSnapshotSerializer.js', 7 | 'jest-preset-angular/build/AngularSnapshotSerializer.js', 8 | 'jest-preset-angular/build/HTMLCommentSerializer.js' 9 | ] 10 | }; 11 | -------------------------------------------------------------------------------- /apps/frontend/infinite-scroll/tsconfig.server.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.app.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc-server", 5 | "types": ["node"], 6 | "target": "es2016" 7 | }, 8 | "angularCompilerOptions": { 9 | "entryModule": "./src/app/app.server.module#AppServerModule" 10 | }, 11 | "files": ["src/main.server.ts", "server.ts"], 12 | "include": ["**/*.d.ts"] 13 | } 14 | -------------------------------------------------------------------------------- /apps/frontend/localization/src/app/home/home.module.ts: -------------------------------------------------------------------------------- 1 | import { CommonModule } from '@angular/common'; 2 | import { NgModule } from '@angular/core'; 3 | import { RouterModule } from '@angular/router'; 4 | 5 | import { homeContainers, homeRoutes } from './home.common'; 6 | 7 | @NgModule({ 8 | imports: [CommonModule, RouterModule.forChild(homeRoutes)], 9 | declarations: [...homeContainers] 10 | }) 11 | export class HomeModule {} 12 | -------------------------------------------------------------------------------- /apps/frontend/redux/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | FrontendUniversal 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/assets/i18n/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": { 3 | "ru": "Русский", 4 | "en": "English" 5 | }, 6 | "home": { 7 | "welcome": "Приветствуем ", 8 | "title": "Авторизация и получение текущего пользователя", 9 | "actions": { 10 | "add": "Добавить" 11 | } 12 | }, 13 | "users": { 14 | "actions": { 15 | "load": "Загрузить текущего пользователя" 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /apps/frontend/translation-state/tsconfig.server.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.app.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc-server", 5 | "types": ["node"], 6 | "target": "es2016" 7 | }, 8 | "angularCompilerOptions": { 9 | "entryModule": "./src/app/app.server.module#AppServerModule" 10 | }, 11 | "files": ["src/main.server.ts", "server.ts"], 12 | "include": ["**/*.d.ts"] 13 | } 14 | -------------------------------------------------------------------------------- /libs/layouts/src/assets/images/icons/down-arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /libs/layouts/src/lib/layout/components/footer-social/footer-social.component.html: -------------------------------------------------------------------------------- 1 | 4 | 11 | -------------------------------------------------------------------------------- /apps/frontend/forms/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Frontend Markup 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /apps/frontend/markup/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Frontend Markup 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /apps/frontend/redux/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'frontend-redux', 3 | preset: '../../../jest.config.js', 4 | coverageDirectory: '../../../coverage/apps/frontend/redux', 5 | snapshotSerializers: [ 6 | 'jest-preset-angular/build/AngularNoNgAttributesSnapshotSerializer.js', 7 | 'jest-preset-angular/build/AngularSnapshotSerializer.js', 8 | 'jest-preset-angular/build/HTMLCommentSerializer.js' 9 | ] 10 | }; 11 | -------------------------------------------------------------------------------- /apps/frontend/shared/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Frontend Shared 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /apps/frontend/store/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Frontend Store 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /apps/frontend/testing/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | FrontendUniversal 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /apps/frontend/universal/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | FrontendUniversal 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /libs/layouts/src/lib/layout/components/footer-bottom/footer-bottom.component.scss: -------------------------------------------------------------------------------- 1 | @import 'utils'; 2 | 3 | :host { 4 | background-color: rgba(0, 0, 0, 0.7); 5 | bottom: 0; 6 | color: white; 7 | left: 0; 8 | padding: 0.7rem 1rem; 9 | position: fixed; 10 | width: 100%; 11 | z-index: 99; 12 | } 13 | 14 | .footer-emission { 15 | margin: 0; 16 | font-size: 0.75rem; 17 | text-align: center; 18 | line-height: 1.1; 19 | } 20 | --------------------------------------------------------------------------------