├── web
├── src
│ ├── assets
│ │ ├── .gitkeep
│ │ └── css
│ │ │ ├── bootstrap-reboot.min.css.map
│ │ │ ├── cover.css
│ │ │ ├── bootstrap-reboot.min.css
│ │ │ ├── bootstrap-reboot.css
│ │ │ ├── bootstrap-reboot.css.map
│ │ │ ├── bootstrap-grid.min.css.map
│ │ │ ├── bootstrap-grid.min.css
│ │ │ ├── bootstrap-grid.css.map
│ │ │ └── bootstrap-grid.css
│ ├── app
│ │ ├── shared
│ │ │ ├── index.ts
│ │ │ └── util.ts
│ │ ├── index.ts
│ │ ├── app.state.ts
│ │ ├── app.module.ts
│ │ ├── app.component.ts
│ │ ├── app.reducer.ts
│ │ ├── app.component.spec.ts
│ │ └── app.component.html
│ ├── favicon.ico
│ ├── styles.css
│ ├── environments
│ │ ├── environment.prod.ts
│ │ └── environment.ts
│ ├── typings.d.ts
│ ├── tsconfig.app.json
│ ├── main.ts
│ ├── tsconfig.spec.json
│ ├── index.html
│ ├── test.ts
│ └── polyfills.ts
├── e2e
│ ├── app.po.ts
│ ├── app.e2e-spec.ts
│ └── tsconfig.json
├── .editorconfig
├── .gitignore
├── protractor.conf.js
├── tsconfig.json
├── README.md
├── angular-cli.json
├── karma.conf.js
├── package.json
└── tslint.json
├── core
├── .gitignore
├── .npmignore
├── src
│ ├── modules
│ │ └── counter
│ │ │ ├── counter.state.ts
│ │ │ ├── index.ts
│ │ │ ├── counter.module.ts
│ │ │ ├── counter.effects.ts
│ │ │ ├── counter.actions.ts
│ │ │ └── counter.reducer.ts
│ ├── providers
│ │ └── my-provider.ts
│ ├── components
│ │ └── my-component.ts
│ ├── index.ts
│ └── demo-core-module.module.ts
├── scripts
│ └── copy-package.js
├── .editorconfig
├── tsconfig.json
├── package.json
├── tslint.json
└── yarn.lock
├── mobile
├── src
│ ├── pages
│ │ └── home
│ │ │ ├── home.scss
│ │ │ ├── home.html
│ │ │ └── home.ts
│ ├── app
│ │ ├── app.html
│ │ ├── app.state.ts
│ │ ├── main.ts
│ │ ├── app.scss
│ │ ├── app.component.ts
│ │ ├── app.reducer.ts
│ │ └── app.module.ts
│ ├── assets
│ │ └── icon
│ │ │ └── favicon.ico
│ ├── manifest.json
│ ├── declarations.d.ts
│ ├── service-worker.js
│ ├── index.html
│ └── theme
│ │ └── variables.scss
├── resources
│ ├── icon.png
│ ├── splash.png
│ ├── ios
│ │ ├── icon
│ │ │ ├── icon.png
│ │ │ ├── icon-40.png
│ │ │ ├── icon-50.png
│ │ │ ├── icon-60.png
│ │ │ ├── icon-72.png
│ │ │ ├── icon-76.png
│ │ │ ├── icon@2x.png
│ │ │ ├── icon-40@2x.png
│ │ │ ├── icon-40@3x.png
│ │ │ ├── icon-50@2x.png
│ │ │ ├── icon-60@2x.png
│ │ │ ├── icon-60@3x.png
│ │ │ ├── icon-72@2x.png
│ │ │ ├── icon-76@2x.png
│ │ │ ├── icon-83.5@2x.png
│ │ │ ├── icon-small.png
│ │ │ ├── icon-small@2x.png
│ │ │ └── icon-small@3x.png
│ │ └── splash
│ │ │ ├── Default-667h.png
│ │ │ ├── Default-736h.png
│ │ │ ├── Default~iphone.png
│ │ │ ├── Default@2x~iphone.png
│ │ │ ├── Default-568h@2x~iphone.png
│ │ │ ├── Default-Landscape-736h.png
│ │ │ ├── Default-Landscape~ipad.png
│ │ │ ├── Default-Portrait~ipad.png
│ │ │ ├── Default-Landscape@2x~ipad.png
│ │ │ └── Default-Portrait@2x~ipad.png
│ └── android
│ │ ├── icon
│ │ ├── drawable-hdpi-icon.png
│ │ ├── drawable-ldpi-icon.png
│ │ ├── drawable-mdpi-icon.png
│ │ ├── drawable-xhdpi-icon.png
│ │ ├── drawable-xxhdpi-icon.png
│ │ └── drawable-xxxhdpi-icon.png
│ │ └── splash
│ │ ├── drawable-land-hdpi-screen.png
│ │ ├── drawable-land-ldpi-screen.png
│ │ ├── drawable-land-mdpi-screen.png
│ │ ├── drawable-land-xhdpi-screen.png
│ │ ├── drawable-port-hdpi-screen.png
│ │ ├── drawable-port-ldpi-screen.png
│ │ ├── drawable-port-mdpi-screen.png
│ │ ├── drawable-port-xhdpi-screen.png
│ │ ├── drawable-land-xxhdpi-screen.png
│ │ ├── drawable-land-xxxhdpi-screen.png
│ │ ├── drawable-port-xxhdpi-screen.png
│ │ └── drawable-port-xxxhdpi-screen.png
├── ionic.config.json
├── tslint.json
├── .editorconfig
├── README.md
├── .gitignore
├── tsconfig.json
├── www
│ └── index.html
├── package.json
├── config.xml
└── hooks
│ └── README.md
├── ngrx-angular-web-app.png
├── .gitignore
└── README.md
/web/src/assets/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/web/src/app/shared/index.ts:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/core/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | dist/
3 | aot/
--------------------------------------------------------------------------------
/mobile/src/pages/home/home.scss:
--------------------------------------------------------------------------------
1 | page-home {
2 |
3 | }
4 |
--------------------------------------------------------------------------------
/mobile/src/app/app.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/core/.npmignore:
--------------------------------------------------------------------------------
1 | src
2 | node_modules
3 | .gitignore
4 | .npmignore
5 | tsconfig.json
6 | aot
--------------------------------------------------------------------------------
/web/src/app/index.ts:
--------------------------------------------------------------------------------
1 | export * from './app.component';
2 | export * from './app.module';
3 |
--------------------------------------------------------------------------------
/web/src/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/web/src/favicon.ico
--------------------------------------------------------------------------------
/web/src/styles.css:
--------------------------------------------------------------------------------
1 | /* You can add global styles to this file, and also import other style files */
--------------------------------------------------------------------------------
/web/src/environments/environment.prod.ts:
--------------------------------------------------------------------------------
1 | export const environment = {
2 | production: true
3 | };
4 |
--------------------------------------------------------------------------------
/ngrx-angular-web-app.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/ngrx-angular-web-app.png
--------------------------------------------------------------------------------
/mobile/resources/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/icon.png
--------------------------------------------------------------------------------
/mobile/resources/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/splash.png
--------------------------------------------------------------------------------
/mobile/resources/ios/icon/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/ios/icon/icon.png
--------------------------------------------------------------------------------
/mobile/src/assets/icon/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/src/assets/icon/favicon.ico
--------------------------------------------------------------------------------
/mobile/ionic.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ngrx-demo-mobile",
3 | "app_id": "",
4 | "projectTypeId": "ionic-angular"
5 | }
6 |
--------------------------------------------------------------------------------
/mobile/resources/ios/icon/icon-40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/ios/icon/icon-40.png
--------------------------------------------------------------------------------
/mobile/resources/ios/icon/icon-50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/ios/icon/icon-50.png
--------------------------------------------------------------------------------
/mobile/resources/ios/icon/icon-60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/ios/icon/icon-60.png
--------------------------------------------------------------------------------
/mobile/resources/ios/icon/icon-72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/ios/icon/icon-72.png
--------------------------------------------------------------------------------
/mobile/resources/ios/icon/icon-76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/ios/icon/icon-76.png
--------------------------------------------------------------------------------
/mobile/resources/ios/icon/icon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/ios/icon/icon@2x.png
--------------------------------------------------------------------------------
/mobile/resources/ios/icon/icon-40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/ios/icon/icon-40@2x.png
--------------------------------------------------------------------------------
/mobile/resources/ios/icon/icon-40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/ios/icon/icon-40@3x.png
--------------------------------------------------------------------------------
/mobile/resources/ios/icon/icon-50@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/ios/icon/icon-50@2x.png
--------------------------------------------------------------------------------
/mobile/resources/ios/icon/icon-60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/ios/icon/icon-60@2x.png
--------------------------------------------------------------------------------
/mobile/resources/ios/icon/icon-60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/ios/icon/icon-60@3x.png
--------------------------------------------------------------------------------
/mobile/resources/ios/icon/icon-72@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/ios/icon/icon-72@2x.png
--------------------------------------------------------------------------------
/mobile/resources/ios/icon/icon-76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/ios/icon/icon-76@2x.png
--------------------------------------------------------------------------------
/mobile/resources/ios/icon/icon-83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/ios/icon/icon-83.5@2x.png
--------------------------------------------------------------------------------
/mobile/resources/ios/icon/icon-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/ios/icon/icon-small.png
--------------------------------------------------------------------------------
/mobile/resources/ios/icon/icon-small@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/ios/icon/icon-small@2x.png
--------------------------------------------------------------------------------
/mobile/resources/ios/icon/icon-small@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/ios/icon/icon-small@3x.png
--------------------------------------------------------------------------------
/mobile/resources/ios/splash/Default-667h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/ios/splash/Default-667h.png
--------------------------------------------------------------------------------
/mobile/resources/ios/splash/Default-736h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/ios/splash/Default-736h.png
--------------------------------------------------------------------------------
/web/src/typings.d.ts:
--------------------------------------------------------------------------------
1 | /* SystemJS module definition */
2 | declare var module: NodeModule;
3 | interface NodeModule {
4 | id: string;
5 | }
6 |
--------------------------------------------------------------------------------
/mobile/resources/ios/splash/Default~iphone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/ios/splash/Default~iphone.png
--------------------------------------------------------------------------------
/mobile/resources/ios/splash/Default@2x~iphone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/ios/splash/Default@2x~iphone.png
--------------------------------------------------------------------------------
/mobile/resources/android/icon/drawable-hdpi-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/android/icon/drawable-hdpi-icon.png
--------------------------------------------------------------------------------
/mobile/resources/android/icon/drawable-ldpi-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/android/icon/drawable-ldpi-icon.png
--------------------------------------------------------------------------------
/mobile/resources/android/icon/drawable-mdpi-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/android/icon/drawable-mdpi-icon.png
--------------------------------------------------------------------------------
/mobile/resources/android/icon/drawable-xhdpi-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/android/icon/drawable-xhdpi-icon.png
--------------------------------------------------------------------------------
/mobile/resources/android/icon/drawable-xxhdpi-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/android/icon/drawable-xxhdpi-icon.png
--------------------------------------------------------------------------------
/mobile/resources/ios/splash/Default-568h@2x~iphone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/ios/splash/Default-568h@2x~iphone.png
--------------------------------------------------------------------------------
/mobile/resources/ios/splash/Default-Landscape-736h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/ios/splash/Default-Landscape-736h.png
--------------------------------------------------------------------------------
/mobile/resources/ios/splash/Default-Landscape~ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/ios/splash/Default-Landscape~ipad.png
--------------------------------------------------------------------------------
/mobile/resources/ios/splash/Default-Portrait~ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/ios/splash/Default-Portrait~ipad.png
--------------------------------------------------------------------------------
/mobile/resources/android/icon/drawable-xxxhdpi-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/android/icon/drawable-xxxhdpi-icon.png
--------------------------------------------------------------------------------
/mobile/resources/ios/splash/Default-Landscape@2x~ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/ios/splash/Default-Landscape@2x~ipad.png
--------------------------------------------------------------------------------
/mobile/resources/ios/splash/Default-Portrait@2x~ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/ios/splash/Default-Portrait@2x~ipad.png
--------------------------------------------------------------------------------
/web/src/app/app.state.ts:
--------------------------------------------------------------------------------
1 | import { CounterState } from 'ngrx-demo-core';
2 |
3 | export interface AppState {
4 | counter: CounterState,
5 | // Add other states here
6 | }
--------------------------------------------------------------------------------
/mobile/resources/android/splash/drawable-land-hdpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/android/splash/drawable-land-hdpi-screen.png
--------------------------------------------------------------------------------
/mobile/resources/android/splash/drawable-land-ldpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/android/splash/drawable-land-ldpi-screen.png
--------------------------------------------------------------------------------
/mobile/resources/android/splash/drawable-land-mdpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/android/splash/drawable-land-mdpi-screen.png
--------------------------------------------------------------------------------
/mobile/resources/android/splash/drawable-land-xhdpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/android/splash/drawable-land-xhdpi-screen.png
--------------------------------------------------------------------------------
/mobile/resources/android/splash/drawable-port-hdpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/android/splash/drawable-port-hdpi-screen.png
--------------------------------------------------------------------------------
/mobile/resources/android/splash/drawable-port-ldpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/android/splash/drawable-port-ldpi-screen.png
--------------------------------------------------------------------------------
/mobile/resources/android/splash/drawable-port-mdpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/android/splash/drawable-port-mdpi-screen.png
--------------------------------------------------------------------------------
/mobile/resources/android/splash/drawable-port-xhdpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/android/splash/drawable-port-xhdpi-screen.png
--------------------------------------------------------------------------------
/mobile/src/app/app.state.ts:
--------------------------------------------------------------------------------
1 | import { CounterState } from 'ngrx-demo-core';
2 |
3 | export interface AppState {
4 | counter: CounterState,
5 | // Add other states here
6 | }
7 |
--------------------------------------------------------------------------------
/mobile/resources/android/splash/drawable-land-xxhdpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/android/splash/drawable-land-xxhdpi-screen.png
--------------------------------------------------------------------------------
/mobile/resources/android/splash/drawable-land-xxxhdpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/android/splash/drawable-land-xxxhdpi-screen.png
--------------------------------------------------------------------------------
/mobile/resources/android/splash/drawable-port-xxhdpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/android/splash/drawable-port-xxhdpi-screen.png
--------------------------------------------------------------------------------
/mobile/resources/android/splash/drawable-port-xxxhdpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benorama/ngrx-demo-apps/HEAD/mobile/resources/android/splash/drawable-port-xxxhdpi-screen.png
--------------------------------------------------------------------------------
/core/src/modules/counter/counter.state.ts:
--------------------------------------------------------------------------------
1 | export interface CounterState {
2 |
3 | total: number;
4 |
5 | }
6 |
7 | export let initialCounterState: CounterState = {
8 | total: 0
9 | };
10 |
--------------------------------------------------------------------------------
/mobile/src/app/main.ts:
--------------------------------------------------------------------------------
1 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
2 |
3 | import { AppModule } from './app.module';
4 |
5 | platformBrowserDynamic().bootstrapModule(AppModule);
6 |
--------------------------------------------------------------------------------
/core/src/providers/my-provider.ts:
--------------------------------------------------------------------------------
1 | import { Injectable } from '@angular/core';
2 |
3 | @Injectable()
4 | export class MyProvider {
5 | myMethod() {
6 | console.log("I'm afraid I can't do that.");
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/mobile/tslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "rules": {
3 | "no-duplicate-variable": true,
4 | "no-unused-variable": [
5 | true
6 | ]
7 | },
8 | "rulesDirectory": [
9 | "node_modules/tslint-eslint-rules/dist/rules"
10 | ]
11 | }
12 |
--------------------------------------------------------------------------------
/core/src/components/my-component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'my-component',
5 | template: `
I'm a special snowflake
`
6 | })
7 | export class MyComponent {
8 | constructor() {}
9 | }
10 |
--------------------------------------------------------------------------------
/core/src/modules/counter/index.ts:
--------------------------------------------------------------------------------
1 | export * from './counter.actions';
2 | export {CounterModule} from './counter.module';
3 | export {counterReducer} from './counter.reducer';
4 | export {CounterState} from './counter.state';
5 | export {CounterEffects} from './counter.effects';
6 |
--------------------------------------------------------------------------------
/web/e2e/app.po.ts:
--------------------------------------------------------------------------------
1 | import { browser, element, by } from 'protractor/globals';
2 |
3 | export class WebPage {
4 | navigateTo() {
5 | return browser.get('/');
6 | }
7 |
8 | getParagraphText() {
9 | return element(by.css('app-root h1')).getText();
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/web/src/tsconfig.app.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../out-tsc/app",
5 | "module": "es2015",
6 | "baseUrl": "",
7 | "types": []
8 | },
9 | "exclude": [
10 | "test.ts",
11 | "**/*.spec.ts"
12 | ]
13 | }
14 |
--------------------------------------------------------------------------------
/web/.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 |
--------------------------------------------------------------------------------
/core/scripts/copy-package.js:
--------------------------------------------------------------------------------
1 | var fs = require('fs');
2 |
3 | var packageJson = require('../package.json');
4 | if (! packageJson) {
5 | throw new Error('Can\'t find package json');
6 | }
7 |
8 | delete packageJson.devDependencies;
9 |
10 | fs.writeFile('./dist/package.json', JSON.stringify(packageJson, null, 2));
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | dist/
3 | tmp/
4 |
5 | *.log
6 | *.tgz
7 |
8 | # core
9 | core/typings/
10 |
11 | # web
12 | web/typings/
13 | web/e2e/*.d.ts
14 |
15 | # mobile
16 | mobile/www/build/
17 | mobile/platforms/
18 | mobile/plugins/
19 | mobile/typings/
20 | *.swp
21 |
22 | .DS_Store
23 | Thumbs.db
24 | .idea
25 |
--------------------------------------------------------------------------------
/core/.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 | end_of_line = lf
9 | insert_final_newline = true
10 | trim_trailing_whitespace = true
11 |
12 | [*.md]
13 | max_line_length = 0
14 | trim_trailing_whitespace = false
15 |
--------------------------------------------------------------------------------
/mobile/src/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Ionic",
3 | "short_name": "Ionic",
4 | "start_url": "index.html",
5 | "display": "standalone",
6 | "icons": [{
7 | "src": "assets/imgs/logo.png",
8 | "sizes": "512x512",
9 | "type": "image/png"
10 | }],
11 | "background_color": "#4e8ef7",
12 | "theme_color": "#4e8ef7"
13 | }
--------------------------------------------------------------------------------
/core/src/index.ts:
--------------------------------------------------------------------------------
1 | export {DemoCoreModule} from './demo-core-module.module';
2 | export * from './components/my-component';
3 | export * from './providers/my-provider';
4 | export {
5 | CounterState,
6 | CounterModule,
7 | counterReducer,
8 | CounterEffects
9 | } from './modules/counter';
10 | export * from './modules/counter/counter.actions';
11 |
--------------------------------------------------------------------------------
/web/e2e/app.e2e-spec.ts:
--------------------------------------------------------------------------------
1 | import { WebPage } from './app.po';
2 |
3 | describe('web App', function() {
4 | let page: WebPage;
5 |
6 | beforeEach(() => {
7 | page = new WebPage();
8 | });
9 |
10 | it('should display message saying app works', () => {
11 | page.navigateTo();
12 | expect(page.getParagraphText()).toEqual('app works!');
13 | });
14 | });
15 |
--------------------------------------------------------------------------------
/web/src/main.ts:
--------------------------------------------------------------------------------
1 | import { enableProdMode } from '@angular/core';
2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
3 |
4 | import { AppModule } from './app/app.module';
5 | import { environment } from './environments/environment';
6 |
7 | if (environment.production) {
8 | enableProdMode();
9 | }
10 |
11 | platformBrowserDynamic().bootstrapModule(AppModule);
12 |
--------------------------------------------------------------------------------
/web/src/tsconfig.spec.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../out-tsc/spec",
5 | "module": "commonjs",
6 | "target": "es5",
7 | "baseUrl": "",
8 | "types": [
9 | "jasmine",
10 | "node"
11 | ]
12 | },
13 | "files": [
14 | "test.ts"
15 | ],
16 | "include": [
17 | "**/*.spec.ts",
18 | "**/*.d.ts"
19 | ]
20 | }
21 |
--------------------------------------------------------------------------------
/web/e2e/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compileOnSave": false,
3 | "compilerOptions": {
4 | "declaration": false,
5 | "emitDecoratorMetadata": true,
6 | "experimentalDecorators": true,
7 | "module": "commonjs",
8 | "moduleResolution": "node",
9 | "outDir": "../dist/out-tsc-e2e",
10 | "sourceMap": true,
11 | "target": "es5",
12 | "typeRoots": [
13 | "../node_modules/@types"
14 | ]
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/web/src/environments/environment.ts:
--------------------------------------------------------------------------------
1 | // The file contents for the current environment will overwrite these during build.
2 | // The build system defaults to the dev environment which uses `environment.ts`, but if you do
3 | // `ng build --env=prod` then `environment.prod.ts` will be used instead.
4 | // The list of which env maps to which file can be found in `angular-cli.json`.
5 |
6 | export const environment = {
7 | production: false
8 | };
9 |
--------------------------------------------------------------------------------
/core/src/modules/counter/counter.module.ts:
--------------------------------------------------------------------------------
1 | import { NgModule } from '@angular/core';
2 | import { EffectsModule } from '@ngrx/effects';
3 |
4 | import { CounterEffects } from './counter.effects';
5 | import { counterReducer } from './counter.reducer';
6 |
7 | @NgModule({
8 | declarations: [
9 | ],
10 | imports: [
11 | EffectsModule.run(CounterEffects)
12 | ],
13 | providers: [
14 | ]
15 | })
16 | export class CounterModule {}
17 |
--------------------------------------------------------------------------------
/mobile/.editorconfig:
--------------------------------------------------------------------------------
1 | # EditorConfig helps developers define and maintain consistent coding styles between different editors and IDEs
2 | # editorconfig.org
3 |
4 | root = true
5 |
6 | [*]
7 | indent_style = space
8 | indent_size = 2
9 |
10 | # We recommend you to keep these unchanged
11 | end_of_line = lf
12 | charset = utf-8
13 | trim_trailing_whitespace = true
14 | insert_final_newline = true
15 |
16 | [*.md]
17 | trim_trailing_whitespace = false
--------------------------------------------------------------------------------
/mobile/README.md:
--------------------------------------------------------------------------------
1 | Ionic 2 App Base
2 | =====================
3 |
4 | This is the base template for Ionic 2 starter apps.
5 |
6 | ## Using this project
7 |
8 | You'll need the Ionic CLI with support for v2 apps:
9 |
10 | ```bash
11 | $ npm install -g ionic
12 | ```
13 |
14 | Then run:
15 |
16 | ```bash
17 | $ ionic start myApp
18 | ```
19 |
20 | More info on this can be found on the Ionic [Getting Started](http://ionicframework.com/docs/v2/getting-started/) page.
21 |
--------------------------------------------------------------------------------
/core/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compileOnSave": false,
3 | "compilerOptions": {
4 | "baseUrl": "src",
5 | "declaration": true,
6 | "emitDecoratorMetadata": true,
7 | "experimentalDecorators": true,
8 | "module": "commonjs",
9 | "moduleResolution": "node",
10 | "outDir": "./dist",
11 | "sourceMap": true,
12 | "target": "es5",
13 | "typeRoots": [
14 | "node_modules/@types"
15 | ],
16 | "lib": [
17 | "es2016",
18 | "dom"
19 | ]
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/mobile/src/pages/home/home.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Ngrx/Ionic mobile app
5 |
6 |
7 |
8 |
9 |
10 |
11 | {{counter$ | async}}
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/mobile/.gitignore:
--------------------------------------------------------------------------------
1 | # Specifies intentionally untracked files to ignore when using Git
2 | # http://git-scm.com/docs/gitignore
3 |
4 | *~
5 | *.sw[mnpcod]
6 | *.log
7 | *.tmp
8 | *.tmp.*
9 | log.txt
10 | *.sublime-project
11 | *.sublime-workspace
12 | .vscode/
13 | npm-debug.log*
14 |
15 | .idea/
16 | .sass-cache/
17 | .tmp/
18 | .versions/
19 | coverage/
20 | dist/
21 | node_modules/
22 | tmp/
23 | temp/
24 | hooks/
25 | platforms/
26 | plugins/
27 | plugins/android.json
28 | plugins/ios.json
29 | www/
30 | $RECYCLE.BIN/
31 |
32 | .DS_Store
33 | Thumbs.db
34 | UserInterfaceState.xcuserstate
35 |
--------------------------------------------------------------------------------
/mobile/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "allowSyntheticDefaultImports": true,
4 | "declaration": false,
5 | "emitDecoratorMetadata": true,
6 | "experimentalDecorators": true,
7 | "lib": [
8 | "dom",
9 | "es2015"
10 | ],
11 | "module": "es2015",
12 | "moduleResolution": "node",
13 | "sourceMap": true,
14 | "target": "es5"
15 | },
16 | "include": [
17 | "src/**/*.ts"
18 | ],
19 | "exclude": [
20 | "node_modules"
21 | ],
22 | "compileOnSave": false,
23 | "atom": {
24 | "rewriteTsconfig": false
25 | }
26 | }
--------------------------------------------------------------------------------
/core/src/demo-core-module.module.ts:
--------------------------------------------------------------------------------
1 | import { Observable } from 'rxjs';
2 | import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
3 | import { BrowserModule } from '@angular/platform-browser';
4 |
5 | import { MyComponent } from './components/my-component';
6 | import { MyProvider } from './providers/my-provider';
7 |
8 | @NgModule({
9 | declarations: [
10 | MyComponent
11 | ],
12 | providers: [ MyProvider ],
13 | exports: [
14 | MyComponent
15 | ],
16 | imports: [
17 | BrowserModule
18 | ],
19 | schemas: [
20 | CUSTOM_ELEMENTS_SCHEMA
21 | ]
22 | })
23 | export class DemoCoreModule {}
24 |
--------------------------------------------------------------------------------
/web/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | Ngrx/Angular Web App
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 | Loading...
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/web/.gitignore:
--------------------------------------------------------------------------------
1 | # See http://help.github.com/ignore-files/ for more about ignoring files.
2 |
3 | # compiled output
4 | /dist
5 | /tmp
6 |
7 | # dependencies
8 | /node_modules
9 |
10 | # IDEs and editors
11 | /.idea
12 | .project
13 | .classpath
14 | .c9/
15 | *.launch
16 | .settings/
17 |
18 | # IDE - VSCode
19 | .vscode/*
20 | !.vscode/settings.json
21 | !.vscode/tasks.json
22 | !.vscode/launch.json
23 | !.vscode/extensions.json
24 |
25 | # misc
26 | /.sass-cache
27 | /connect.lock
28 | /coverage/*
29 | /libpeerconnection.log
30 | npm-debug.log
31 | testem.log
32 | /typings
33 |
34 | # e2e
35 | /e2e/*.js
36 | /e2e/*.map
37 |
38 | #System Files
39 | .DS_Store
40 | Thumbs.db
41 |
--------------------------------------------------------------------------------
/mobile/src/declarations.d.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Declaration files are how the Typescript compiler knows about the type information(or shape) of an object.
3 | They're what make intellisense work and make Typescript know all about your code.
4 |
5 | A wildcard module is declared below to allow third party libraries to be used in an app even if they don't
6 | provide their own type declarations.
7 |
8 | To learn more about using third party libraries in an Ionic app, check out the docs here:
9 | http://ionicframework.com/docs/v2/resources/third-party-libs/
10 |
11 | For more info on type definition files, check out the Typescript docs here:
12 | https://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html
13 | */
14 | declare module '*';
--------------------------------------------------------------------------------
/mobile/src/app/app.scss:
--------------------------------------------------------------------------------
1 | // http://ionicframework.com/docs/v2/theming/
2 |
3 |
4 | // App Global Sass
5 | // --------------------------------------------------
6 | // Put style rules here that you want to apply globally. These
7 | // styles are for the entire app and not just one component.
8 | // Additionally, this file can be also used as an entry point
9 | // to import other Sass files to be included in the output CSS.
10 | //
11 | // Shared Sass variables, which can be used to adjust Ionic's
12 | // default Sass variables, belong in "theme/variables.scss".
13 | //
14 | // To declare rules for a specific mode, create a child rule
15 | // for the .md, .ios, or .wp mode classes. The mode class is
16 | // automatically applied to the element in the app.
17 |
--------------------------------------------------------------------------------
/core/src/modules/counter/counter.effects.ts:
--------------------------------------------------------------------------------
1 | import { Injectable } from '@angular/core';
2 | import { Effect, Actions } from '@ngrx/effects';
3 | import { Observable } from 'rxjs/Observable';;
4 | import 'rxjs/add/operator/map';
5 | import 'rxjs/add/operator/startWith';
6 | import 'rxjs/add/observable/of';
7 | import {
8 | CounterActionTypes,
9 | ResetAction,
10 | ResetSuccessAction
11 | } from './counter.actions';
12 |
13 | @Injectable()
14 | export class CounterEffects {
15 | constructor(
16 | private actions$: Actions
17 | ) { }
18 |
19 |
20 | @Effect() resetSuccess$ = this.actions$
21 | .ofType(CounterActionTypes.RESET)
22 | .startWith(new ResetAction())
23 | .map(() => {
24 | return new ResetSuccessAction()
25 | });
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/mobile/src/app/app.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 | import { Platform } from 'ionic-angular';
3 | import { StatusBar } from '@ionic-native/status-bar';
4 | import { SplashScreen } from '@ionic-native/splash-screen';
5 |
6 | import { HomePage } from '../pages/home/home';
7 |
8 |
9 | @Component({
10 | templateUrl: 'app.html'
11 | })
12 | export class MyApp {
13 | rootPage:any = HomePage;
14 |
15 | constructor(platform: Platform, statusBar: StatusBar, splashScreen: SplashScreen) {
16 | platform.ready().then(() => {
17 | // Okay, so the platform is ready and our plugins are available.
18 | // Here you can do any higher level native things you might need.
19 | statusBar.styleDefault();
20 | splashScreen.hide();
21 | });
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/core/src/modules/counter/counter.actions.ts:
--------------------------------------------------------------------------------
1 | import { Action } from '@ngrx/store';
2 |
3 | export const CounterActionTypes = {
4 | INCREMENT: '[Counter] Increment',
5 | DECREMENT: '[Counter] Decrement',
6 | RESET: '[Counter] Reset',
7 | RESET_SUCCESS: '[Counter] ResetSucess'
8 | };
9 |
10 |
11 | export class IncrementAction implements Action {
12 | type = CounterActionTypes.INCREMENT;
13 | }
14 |
15 | export class DecrementAction implements Action {
16 | type = CounterActionTypes.DECREMENT;
17 | }
18 |
19 | export class ResetAction implements Action {
20 | type = CounterActionTypes.RESET;
21 | }
22 |
23 | export class ResetSuccessAction implements Action {
24 | type = CounterActionTypes.RESET_SUCCESS;
25 | }
26 |
27 | export type CounterActions =
28 | IncrementAction
29 | | DecrementAction
30 | | ResetAction
31 | | ResetSuccessAction;
32 |
--------------------------------------------------------------------------------
/mobile/src/pages/home/home.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 | import { Observable } from 'rxjs/Observable';
3 | import { Store } from '@ngrx/store';
4 |
5 | import { AppState } from '../../app/app.state';
6 | import * as counterActions from 'ngrx-demo-core';
7 |
8 | @Component({
9 | selector: 'page-home',
10 | templateUrl: 'home.html'
11 | })
12 | export class HomePage {
13 |
14 | counter$: Observable;
15 |
16 | constructor(private store: Store) {
17 | this.counter$ = this.store.select(s => s.counter.total);
18 | }
19 |
20 | decrement() {
21 | this.store.dispatch(new counterActions.DecrementAction());
22 | }
23 |
24 | increment() {
25 | this.store.dispatch(new counterActions.IncrementAction());
26 | }
27 |
28 | reset() {
29 | this.store.dispatch(new counterActions.ResetAction());
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/web/src/app/app.module.ts:
--------------------------------------------------------------------------------
1 | import { BrowserModule } from '@angular/platform-browser';
2 | import { NgModule } from '@angular/core';
3 | import { StoreModule } from '@ngrx/store';
4 | import { StoreDevtoolsModule } from '@ngrx/store-devtools';
5 | import { EffectsModule } from '@ngrx/effects';
6 |
7 | import { DemoCoreModule, CounterEffects } from 'ngrx-demo-core';
8 | import { reducer } from './app.reducer';
9 | import { AppComponent } from './app.component';
10 |
11 | @NgModule({
12 | bootstrap: [
13 | AppComponent
14 | ],
15 | declarations: [
16 | AppComponent
17 | ],
18 | imports: [
19 | BrowserModule,
20 | DemoCoreModule,
21 | StoreModule.provideStore(reducer),
22 | StoreDevtoolsModule.instrumentOnlyWithExtension(),
23 | EffectsModule.runAfterBootstrap(CounterEffects)
24 | ],
25 | providers: []
26 | })
27 | export class AppModule { }
28 |
--------------------------------------------------------------------------------
/mobile/src/service-worker.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Check out https://googlechrome.github.io/sw-toolbox/docs/master/index.html for
3 | * more info on how to use sw-toolbox to custom configure your service worker.
4 | */
5 |
6 |
7 | 'use strict';
8 | importScripts('./build/sw-toolbox.js');
9 |
10 | self.toolbox.options.cache = {
11 | name: 'ionic-cache'
12 | };
13 |
14 | // pre-cache our key assets
15 | self.toolbox.precache(
16 | [
17 | './build/main.js',
18 | './build/main.css',
19 | './build/polyfills.js',
20 | 'index.html',
21 | 'manifest.json'
22 | ]
23 | );
24 |
25 | // dynamically cache any other local assets
26 | self.toolbox.router.any('/*', self.toolbox.cacheFirst);
27 |
28 | // for any other requests go to the network, cache,
29 | // and then only use that cached resource if your user goes offline
30 | self.toolbox.router.default = self.toolbox.networkFirst;
--------------------------------------------------------------------------------
/web/protractor.conf.js:
--------------------------------------------------------------------------------
1 | // Protractor configuration file, see link for more information
2 | // https://github.com/angular/protractor/blob/master/lib/config.ts
3 |
4 | const { SpecReporter } = require('jasmine-spec-reporter');
5 |
6 | exports.config = {
7 | allScriptsTimeout: 11000,
8 | specs: [
9 | './e2e/**/*.e2e-spec.ts'
10 | ],
11 | capabilities: {
12 | 'browserName': 'chrome'
13 | },
14 | directConnect: true,
15 | baseUrl: 'http://localhost:4200/',
16 | framework: 'jasmine',
17 | jasmineNodeOpts: {
18 | showColors: true,
19 | defaultTimeoutInterval: 30000,
20 | print: function() {}
21 | },
22 | beforeLaunch: function() {
23 | require('ts-node').register({
24 | project: 'e2e/tsconfig.e2e.json'
25 | });
26 | },
27 | onPrepare() {
28 | jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
29 | }
30 | };
31 |
--------------------------------------------------------------------------------
/mobile/src/app/app.reducer.ts:
--------------------------------------------------------------------------------
1 | import '@ngrx/core/add/operator/select';
2 | import 'rxjs/add/operator/switchMap';
3 | import 'rxjs/add/operator/let';
4 | import { combineReducers } from '@ngrx/store';
5 | import { compose } from '@ngrx/core/compose';
6 | import { storeLogger } from 'ngrx-store-logger';
7 | import { storeFreeze } from 'ngrx-store-freeze';
8 | import { counterReducer } from 'ngrx-demo-core';
9 |
10 | const reducers = {
11 | counter: counterReducer
12 | };
13 |
14 | const developmentReducer = compose(storeFreeze, storeLogger(), combineReducers)(reducers);
15 | //const productionReducer = combineReducers(reducers);
16 |
17 | export function reducer(state: any, action: any) {
18 | /*if (environment.production) {
19 | return productionReducer(state, action);
20 | }
21 | else {
22 | return developmentReducer(state, action);
23 | }*/
24 | return developmentReducer(state, action);
25 | }
26 |
--------------------------------------------------------------------------------
/web/src/app/app.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 | import { Observable } from 'rxjs/Observable';
4 | import { Store } from '@ngrx/store';
5 |
6 | import { AppState } from './app.state';
7 | import * as counterActions from 'ngrx-demo-core';
8 | //import * as counterActions from './counter/counter.actions';
9 |
10 | @Component({
11 | selector: 'app-root',
12 | templateUrl: './app.component.html'
13 | })
14 | export class AppComponent {
15 |
16 | counter$: Observable;
17 |
18 | constructor(private store: Store) {
19 | this.counter$ = this.store.select(s => s.counter.total);
20 | }
21 |
22 | decrement() {
23 | this.store.dispatch(new counterActions.DecrementAction());
24 | }
25 |
26 | increment() {
27 | this.store.dispatch(new counterActions.IncrementAction());
28 | }
29 |
30 | reset() {
31 | this.store.dispatch(new counterActions.ResetAction());
32 | }
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/core/src/modules/counter/counter.reducer.ts:
--------------------------------------------------------------------------------
1 | import '@ngrx/core/add/operator/select';
2 | import 'rxjs/add/operator/map';
3 | import { Action } from '@ngrx/store';
4 | import { Observable } from 'rxjs/Observable';
5 | import { CounterActions, CounterActionTypes } from './counter.actions';
6 | import { initialCounterState, CounterState } from './counter.state';
7 |
8 | export function counterReducer(state = initialCounterState, action: CounterActions): CounterState {
9 | switch (action.type) {
10 |
11 | case CounterActionTypes.INCREMENT:
12 | return Object.assign({}, state, {
13 | total : state.total + 1
14 | });
15 |
16 | case CounterActionTypes.DECREMENT:
17 | return Object.assign({}, state, {
18 | total : state.total - 1
19 | });
20 |
21 | case CounterActionTypes.RESET_SUCCESS:
22 | return initialCounterState;
23 |
24 |
25 | default: {
26 | return state;
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/web/src/app/app.reducer.ts:
--------------------------------------------------------------------------------
1 | import '@ngrx/core/add/operator/select';
2 | import 'rxjs/add/operator/switchMap';
3 | import 'rxjs/add/operator/let';
4 | import { combineReducers } from '@ngrx/store';
5 | import { compose } from '@ngrx/core/compose';
6 | import { storeLogger } from 'ngrx-store-logger';
7 | import { storeFreeze } from 'ngrx-store-freeze';
8 | import { share, Selector } from './shared/util';
9 | import { environment } from '../environments/environment';
10 | import { counterReducer } from 'ngrx-demo-core';
11 |
12 | const reducers = {
13 | counter: counterReducer
14 | };
15 |
16 | const developmentReducer = compose(storeFreeze, storeLogger(), combineReducers)(reducers);
17 | const productionReducer = combineReducers(reducers);
18 |
19 | export function reducer(state: any, action: any) {
20 | if (environment.production) {
21 | return productionReducer(state, action);
22 | }
23 | else {
24 | return developmentReducer(state, action);
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/web/src/app/app.component.spec.ts:
--------------------------------------------------------------------------------
1 | /* tslint:disable:no-unused-variable */
2 |
3 | import { TestBed, async } from '@angular/core/testing';
4 | import { AppComponent } from './app.component';
5 |
6 | describe('App: Web', () => {
7 | beforeEach(() => {
8 | TestBed.configureTestingModule({
9 | declarations: [
10 | AppComponent
11 | ],
12 | });
13 | });
14 |
15 | it('should create the app', async(() => {
16 | let fixture = TestBed.createComponent(AppComponent);
17 | let app = fixture.debugElement.componentInstance;
18 | expect(app).toBeTruthy();
19 | }));
20 |
21 | it(`should have as title 'app works!'`, async(() => {
22 | let fixture = TestBed.createComponent(AppComponent);
23 | let app = fixture.debugElement.componentInstance;
24 | expect(app.title).toEqual('app works!');
25 | }));
26 |
27 | it('should render title in a h1 tag', async(() => {
28 | let fixture = TestBed.createComponent(AppComponent);
29 | fixture.detectChanges();
30 | let compiled = fixture.debugElement.nativeElement;
31 | expect(compiled.querySelector('h1').textContent).toContain('app works!');
32 | }));
33 | });
34 |
--------------------------------------------------------------------------------
/web/src/test.ts:
--------------------------------------------------------------------------------
1 | // This file is required by karma.conf.js and loads recursively all the .spec and framework files
2 |
3 | import 'zone.js/dist/long-stack-trace-zone';
4 | import 'zone.js/dist/proxy.js';
5 | import 'zone.js/dist/sync-test';
6 | import 'zone.js/dist/jasmine-patch';
7 | import 'zone.js/dist/async-test';
8 | import 'zone.js/dist/fake-async-test';
9 | import { getTestBed } from '@angular/core/testing';
10 | import {
11 | BrowserDynamicTestingModule,
12 | platformBrowserDynamicTesting
13 | } from '@angular/platform-browser-dynamic/testing';
14 |
15 | // Unfortunately there's no typing for the `__karma__` variable. Just declare it as any.
16 | declare var __karma__: any;
17 | declare var require: any;
18 |
19 | // Prevent Karma from running prematurely.
20 | __karma__.loaded = function () {};
21 |
22 | // First, initialize the Angular testing environment.
23 | getTestBed().initTestEnvironment(
24 | BrowserDynamicTestingModule,
25 | platformBrowserDynamicTesting()
26 | );
27 | // Then we find all the tests.
28 | const context = require.context('./', true, /\.spec\.ts$/);
29 | // And load the modules.
30 | context.keys().map(context);
31 | // Finally, start Karma to run the tests.
32 | __karma__.start();
33 |
--------------------------------------------------------------------------------
/web/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compileOnSave": false,
3 | "compilerOptions": {
4 | "outDir": "./dist/out-tsc",
5 | "baseUrl": "src",
6 | "sourceMap": true,
7 | "declaration": false,
8 | "moduleResolution": "node",
9 | "emitDecoratorMetadata": true,
10 | "experimentalDecorators": true,
11 | "target": "es5",
12 | "typeRoots": [
13 | "node_modules/@types"
14 | ],
15 | "lib": [
16 | "es2016",
17 | "dom"
18 | ],
19 | "paths": {
20 | "@angular/common": ["../node_modules/@angular/common"],
21 | "@angular/compiler": ["../node_modules/@angular/compiler"],
22 | "@angular/compiler-cli": ["../node_modules/@angular/compiler-cli"],
23 | "@angular/core": ["../node_modules/@angular/core"],
24 | "@angular/platform-browser": ["../node_modules/@angular/platform-browser"],
25 | "@ngrx/core": ["../node_modules/@ngrx/core"],
26 | "@ngrx/effects": ["../node_modules/@ngrx/effects"],
27 | "@ngrx/store": ["../node_modules/@ngrx/store"],
28 | "@types/node": ["../node_modules/@types/node"],
29 | "rxjs": ["../node_modules/rxjs"],
30 | "tslint": ["../node_modules/tslint"],
31 | "zone.js": ["../node_moduleszone.js"]
32 | }
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/mobile/src/app/app.module.ts:
--------------------------------------------------------------------------------
1 | import { NgModule, ErrorHandler } from '@angular/core';
2 | import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular';
3 | import { StatusBar } from '@ionic-native/status-bar';
4 | import { SplashScreen } from '@ionic-native/splash-screen';
5 | import { StoreModule } from '@ngrx/store';
6 | import { StoreDevtoolsModule } from '@ngrx/store-devtools';
7 | import { EffectsModule } from '@ngrx/effects';
8 |
9 | import { reducer } from './app.reducer';
10 | import { DemoCoreModule, CounterEffects } from 'ngrx-demo-core';
11 |
12 | import { MyApp } from './app.component';
13 | import { HomePage } from '../pages/home/home';
14 |
15 | @NgModule({
16 | declarations: [
17 | MyApp,
18 | HomePage
19 | ],
20 | imports: [
21 | IonicModule.forRoot(MyApp),
22 | DemoCoreModule,
23 | StoreModule.provideStore(reducer),
24 | StoreDevtoolsModule.instrumentOnlyWithExtension(),
25 | EffectsModule.runAfterBootstrap(CounterEffects)
26 | ],
27 | bootstrap: [IonicApp],
28 | entryComponents: [
29 | MyApp,
30 | HomePage
31 | ],
32 | providers: [
33 | StatusBar,
34 | SplashScreen,
35 | {provide: ErrorHandler, useClass: IonicErrorHandler}
36 | ]
37 | })
38 | export class AppModule {}
39 |
--------------------------------------------------------------------------------
/web/README.md:
--------------------------------------------------------------------------------
1 | # Web
2 |
3 | This project was generated with [angular-cli](https://github.com/angular/angular-cli) version 1.0.0-beta.15.
4 |
5 | ## Development server
6 | Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.
7 |
8 | ## Code scaffolding
9 |
10 | Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive/pipe/service/class`.
11 |
12 | ## Build
13 |
14 | Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `-prod` flag for a production build.
15 |
16 | ## Running unit tests
17 |
18 | Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
19 |
20 | ## Running end-to-end tests
21 |
22 | Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).
23 | Before running the tests make sure you are serving the app via `ng serve`.
24 |
25 | ## Deploying to Github Pages
26 |
27 | Run `ng github-pages:deploy` to deploy to Github Pages.
28 |
29 | ## Further help
30 |
31 | To get more help on the `angular-cli` use `ng --help` or go check out the [Angular-CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
32 |
--------------------------------------------------------------------------------
/web/src/app/app.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
14 |
15 |
16 | Counter example
17 |
18 |
19 | {{counter$ | async}}
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
36 |
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/web/angular-cli.json:
--------------------------------------------------------------------------------
1 | {
2 | "project": {
3 | "version": "1.0.0-beta.26",
4 | "name": "ngrx-demo-web"
5 | },
6 | "apps": [
7 | {
8 | "root": "src",
9 | "outDir": "dist",
10 | "assets": [
11 | "assets",
12 | "favicon.ico"
13 | ],
14 | "index": "index.html",
15 | "main": "main.ts",
16 | "polyfills": "polyfills.ts",
17 | "test": "test.ts",
18 | "tsconfig": "tsconfig.app.json",
19 | "testTsconfig": "tsconfig.spec.json",
20 | "prefix": "app",
21 | "styles": [
22 | "styles.css"
23 | ],
24 | "scripts": [],
25 | "environmentSource": "environments/environment.ts",
26 | "environments": {
27 | "dev": "environments/environment.ts",
28 | "prod": "environments/environment.prod.ts"
29 | }
30 | }
31 | ],
32 | "e2e": {
33 | "protractor": {
34 | "config": "./protractor.conf.js"
35 | }
36 | },
37 | "lint": [
38 | {
39 | "project": "src/tsconfig.app.json"
40 | },
41 | {
42 | "project": "src/tsconfig.spec.json"
43 | },
44 | {
45 | "project": "e2e/tsconfig.e2e.json"
46 | }
47 | ],
48 | "test": {
49 | "karma": {
50 | "config": "./karma.conf.js"
51 | }
52 | },
53 | "defaults": {
54 | "styleExt": "css",
55 | "component": {}
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/web/karma.conf.js:
--------------------------------------------------------------------------------
1 | // Karma configuration file, see link for more information
2 | // https://karma-runner.github.io/0.13/config/configuration-file.html
3 |
4 | module.exports = function (config) {
5 | config.set({
6 | basePath: '',
7 | frameworks: ['jasmine', '@angular/cli'],
8 | plugins: [
9 | require('karma-jasmine'),
10 | require('karma-chrome-launcher'),
11 | require('karma-jasmine-html-reporter'),
12 | require('karma-coverage-istanbul-reporter'),
13 | require('@angular/cli/plugins/karma')
14 | ],
15 | client:{
16 | clearContext: false // leave Jasmine Spec Runner output visible in browser
17 | },
18 | files: [
19 | { pattern: './src/test.ts', watched: false }
20 | ],
21 | preprocessors: {
22 | './src/test.ts': ['@angular/cli']
23 | },
24 | mime: {
25 | 'text/x-typescript': ['ts','tsx']
26 | },
27 | coverageIstanbulReporter: {
28 | reports: [ 'html', 'lcovonly' ],
29 | fixWebpackSourcePaths: true
30 | },
31 | angularCli: {
32 | environment: 'dev'
33 | },
34 | reporters: config.angularCli && config.angularCli.codeCoverage
35 | ? ['progress', 'coverage-istanbul']
36 | : ['progress', 'kjhtml'],
37 | port: 9876,
38 | colors: true,
39 | logLevel: config.LOG_INFO,
40 | autoWatch: true,
41 | browsers: ['Chrome'],
42 | singleRun: false
43 | });
44 | };
45 |
--------------------------------------------------------------------------------
/mobile/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Ionic App
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/mobile/www/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Ionic App
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/mobile/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ngrx-demo-mobile",
3 | "author": "Benoit Hediard",
4 | "private": true,
5 | "scripts": {
6 | "clean": "ionic-app-scripts clean",
7 | "build": "ionic-app-scripts build",
8 | "ionic:build": "ionic-app-scripts build",
9 | "ionic:serve": "ionic-app-scripts serve"
10 | },
11 | "dependencies": {
12 | "@angular/animations": "4.0.1",
13 | "@angular/common": "4.0.1",
14 | "@angular/compiler": "4.0.1",
15 | "@angular/compiler-cli": "4.0.1",
16 | "@angular/core": "4.0.1",
17 | "@angular/forms": "4.0.1",
18 | "@angular/http": "4.0.1",
19 | "@angular/platform-browser": "4.0.1",
20 | "@angular/platform-browser-dynamic": "4.0.1",
21 | "@angular/platform-server": "4.0.1",
22 | "@ionic-native/core": "3.4.4",
23 | "@ionic-native/splash-screen": "3.4.4",
24 | "@ionic-native/status-bar": "3.4.4",
25 | "@ionic/storage": "2.0.1",
26 | "@ngrx/core": "1.2.0",
27 | "@ngrx/effects": "2.0.2",
28 | "@ngrx/store": "2.2.1",
29 | "@ngrx/store-devtools": "3.2.4",
30 | "ionic-angular": "3.0.0",
31 | "ionicons": "3.0.0",
32 | "ngrx-store-freeze": "0.1.9",
33 | "ngrx-store-logger": "0.1.7",
34 | "rxjs": "5.3.0",
35 | "sw-toolbox": "3.6.0",
36 | "zone.js": "0.8.5"
37 | },
38 | "devDependencies": {
39 | "@angular/tsc-wrapped": "4.0.1",
40 | "@ionic/app-scripts": "1.2.5",
41 | "@ionic/cli-build-ionic-angular": "0.0.4",
42 | "@ionic/cli-plugin-cordova": "0.0.10",
43 | "typescript": "2.2.2"
44 | },
45 | "version": "0.0.1",
46 | "description": "An Ionic project"
47 | }
48 |
--------------------------------------------------------------------------------
/core/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ngrx-demo-core",
3 | "version": "0.0.1",
4 | "author": "Benoit Hediard",
5 | "description": "Core module with ngrx shared business logic to be used in an Angular2 web app and a Ionic2 mobile app.",
6 | "main": "./dist/index.js",
7 | "typings": "./dist/index.d.ts",
8 | "scripts": {
9 | "clean": "rm -rf ./aot/* && rm -rf ./dist/* && npm run clean:postbuild",
10 | "clean:postbuild": "find ./src/ -type f -iname *.ngsummary.json -delete && find ./src/ -type f -iname *.ngfactory.ts -delete",
11 | "build": "npm run clean && ngc -p tsconfig.json && npm run clean:postbuild",
12 | "publishPackage": "npm run build && npm publish"
13 | },
14 | "license": "MIT",
15 | "repository": {
16 | "type": "git",
17 | "url": "git+https://github.com/benorama/ngrx-demo-apps.git"
18 | },
19 | "homepage": "https://github.com/benorama/ngrx-demo-apps#readme",
20 | "bugs": {
21 | "url": "https://github.com/benorama/ngrx-demo-apps/issues"
22 | },
23 | "keywords": [
24 | "angular",
25 | "angular2",
26 | "ionic",
27 | "ionic2",
28 | "ngrx"
29 | ],
30 | "dependencies": {},
31 | "devDependencies": {
32 | "@angular/common": "4.0.1",
33 | "@angular/compiler": "4.0.1",
34 | "@angular/compiler-cli": "4.0.1",
35 | "@angular/core": "4.0.1",
36 | "@angular/platform-browser": "4.0.1",
37 | "@ngrx/core": "1.2.0",
38 | "@ngrx/effects": "2.0.2",
39 | "@ngrx/store": "2.2.1",
40 | "@types/node": "7.0.12",
41 | "rxjs": "5.3.0",
42 | "tslint": "5.0.0",
43 | "typescript": "2.2.2",
44 | "zone.js": "0.8.5"
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/web/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ngrx-demo-web",
3 | "author": "Benoit Hediard",
4 | "version": "0.0.1",
5 | "license": "MIT",
6 | "repository": {
7 | "type": "git",
8 | "url": "https://github.com/benorama/ngrx-demo-apps.git"
9 | },
10 | "angular-cli": {},
11 | "scripts": {
12 | "ng": "ng",
13 | "start": "ng serve",
14 | "build": "ng build",
15 | "test": "ng test",
16 | "lint": "ng lint",
17 | "e2e": "ng e2e"
18 | },
19 | "private": true,
20 | "dependencies": {
21 | "@angular/common": "4.0.1",
22 | "@angular/compiler": "4.0.1",
23 | "@angular/core": "4.0.1",
24 | "@angular/platform-browser": "4.0.1",
25 | "@angular/platform-browser-dynamic": "4.0.1",
26 | "@angular/router": "4.0.1",
27 | "@ngrx/core": "1.2.0",
28 | "@ngrx/effects": "2.0.2",
29 | "@ngrx/store": "2.2.1",
30 | "core-js": "2.4.1",
31 | "ngrx-store-freeze": "0.1.9",
32 | "ngrx-store-logger": "0.1.7",
33 | "rxjs": "5.2.0",
34 | "zone.js": "0.8.5"
35 | },
36 | "devDependencies": {
37 | "@angular/cli": "1.0.0",
38 | "@angular/compiler-cli": "^4.0.1",
39 | "@ngrx/store-devtools": "3.2.4",
40 | "@types/jasmine": "2.5.47",
41 | "@types/node": "7.0.12",
42 | "codelyzer": "3.0.0-beta.4",
43 | "jasmine-core": "2.5.2",
44 | "jasmine-spec-reporter": "3.2.0",
45 | "karma": "1.5.0",
46 | "karma-chrome-launcher": "2.0.0",
47 | "karma-cli": "1.0.1",
48 | "karma-coverage-istanbul-reporter": "1.0.0",
49 | "karma-jasmine": "1.1.0",
50 | "protractor": "5.1.1",
51 | "ts-node": "3.0.2",
52 | "tslint": "5.0.0",
53 | "typescript": "2.2.2"
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/mobile/config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | MyApp
4 | An awesome Ionic/Cordova app.
5 | Ionic Framework Team
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/web/src/app/shared/util.ts:
--------------------------------------------------------------------------------
1 | import 'rxjs/add/operator/publishReplay';
2 | import { multicast } from 'rxjs/operator/multicast';
3 | import { Scheduler } from 'rxjs/Scheduler';
4 | import { ReplaySubject } from 'rxjs/ReplaySubject';
5 | import { Observable } from 'rxjs/Observable';
6 | import { compose } from '@ngrx/core/compose';
7 |
8 | /**
9 | * This function coerces a string into a string literal type.
10 | * Using tagged union types in TypeScript 2.0, this enables
11 | * powerful typechecking of our reducers.
12 | *
13 | * Since every action label passes through this function it
14 | * is a good place to ensure all of our action labels
15 | * are unique.
16 | */
17 |
18 | let labelCache: { [label: string]: boolean } = {};
19 | export function label(label: T | ''): T {
20 | if (labelCache[label]) {
21 | throw new Error(`Action type "${label}" is not unqiue"`);
22 | }
23 |
24 | labelCache[label] = true;
25 |
26 | return label;
27 | }
28 |
29 | export interface SelectorFn {
30 | (input$: Observable): Observable;
31 | }
32 |
33 | export interface Selector extends SelectorFn {
34 | readonly cachedResult?: null | Observable;
35 | reset(): void;
36 | override(source$: Observable): void;
37 | }
38 |
39 | export function share(selectFn: SelectorFn): Selector {
40 | let cachedResult: null | Observable;
41 |
42 |
43 | const override = function (source$: Observable) {
44 | cachedResult = source$;
45 | };
46 |
47 | const reset = function () {
48 | cachedResult = null;
49 | };
50 |
51 | const multicastFactory = function () {
52 | return new ReplaySubject(1);
53 | };
54 |
55 | const selector: any = function (input$: Observable) {
56 | if (Boolean(cachedResult)) {
57 | return cachedResult;
58 | }
59 |
60 | return cachedResult = multicast.call(selectFn(input$), multicastFactory).refCount();
61 | };
62 |
63 | selector.override = override;
64 | selector.reset = reset;
65 | Object.defineProperty(selector, 'cachedResult', {
66 | configurable: true,
67 | enumerable: true,
68 | get() {
69 | return cachedResult;
70 | }
71 | });
72 |
73 | return selector;
74 | }
75 |
--------------------------------------------------------------------------------
/mobile/src/theme/variables.scss:
--------------------------------------------------------------------------------
1 | // Ionic Variables and Theming. For more info, please see:
2 | // http://ionicframework.com/docs/v2/theming/
3 | $font-path: "../assets/fonts";
4 |
5 | @import "ionic.globals";
6 |
7 |
8 | // Shared Variables
9 | // --------------------------------------------------
10 | // To customize the look and feel of this app, you can override
11 | // the Sass variables found in Ionic's source scss files.
12 | // To view all the possible Ionic variables, see:
13 | // http://ionicframework.com/docs/v2/theming/overriding-ionic-variables/
14 |
15 |
16 |
17 |
18 | // Named Color Variables
19 | // --------------------------------------------------
20 | // Named colors makes it easy to reuse colors on various components.
21 | // It's highly recommended to change the default colors
22 | // to match your app's branding. Ionic uses a Sass map of
23 | // colors so you can add, rename and remove colors as needed.
24 | // The "primary" color is the only required color in the map.
25 |
26 | $colors: (
27 | primary: #387ef5,
28 | secondary: #32db64,
29 | danger: #f53d3d,
30 | light: #f4f4f4,
31 | dark: #222
32 | );
33 |
34 |
35 | // App iOS Variables
36 | // --------------------------------------------------
37 | // iOS only Sass variables can go here
38 |
39 |
40 |
41 |
42 | // App Material Design Variables
43 | // --------------------------------------------------
44 | // Material Design only Sass variables can go here
45 |
46 |
47 |
48 |
49 | // App Windows Variables
50 | // --------------------------------------------------
51 | // Windows only Sass variables can go here
52 |
53 |
54 |
55 |
56 | // App Theme
57 | // --------------------------------------------------
58 | // Ionic apps can have different themes applied, which can
59 | // then be future customized. This import comes last
60 | // so that the above variables are used and Ionic's
61 | // default are overridden.
62 |
63 | @import "ionic.theme.default";
64 |
65 |
66 | // Ionicons
67 | // --------------------------------------------------
68 | // The premium icon font for Ionic. For more info, please see:
69 | // http://ionicframework.com/docs/v2/ionicons/
70 |
71 | @import "ionic.ionicons";
72 |
73 |
74 | // Fonts
75 | // --------------------------------------------------
76 |
77 | @import "roboto";
78 | @import "noto-sans";
79 |
--------------------------------------------------------------------------------
/web/src/assets/css/bootstrap-reboot.min.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["../../scss/_normalize.scss","bootstrap-reboot.css","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/mixins/_hover.scss"],"names":[],"mappings":"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"}
--------------------------------------------------------------------------------
/web/src/polyfills.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * This file includes polyfills needed by Angular and is loaded before the app.
3 | * You can add your own extra polyfills to this file.
4 | *
5 | * This file is divided into 2 sections:
6 | * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.
7 | * 2. Application imports. Files imported after ZoneJS that should be loaded before your main
8 | * file.
9 | *
10 | * The current setup is for so-called "evergreen" browsers; the last versions of browsers that
11 | * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),
12 | * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.
13 | *
14 | * Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html
15 | */
16 |
17 | /***************************************************************************************************
18 | * BROWSER POLYFILLS
19 | */
20 |
21 | /** IE9, IE10 and IE11 requires all of the following polyfills. **/
22 | // import 'core-js/es6/symbol';
23 | // import 'core-js/es6/object';
24 | // import 'core-js/es6/function';
25 | // import 'core-js/es6/parse-int';
26 | // import 'core-js/es6/parse-float';
27 | // import 'core-js/es6/number';
28 | // import 'core-js/es6/math';
29 | // import 'core-js/es6/string';
30 | // import 'core-js/es6/date';
31 | // import 'core-js/es6/array';
32 | // import 'core-js/es6/regexp';
33 | // import 'core-js/es6/map';
34 | // import 'core-js/es6/set';
35 |
36 | /** IE10 and IE11 requires the following for NgClass support on SVG elements */
37 | // import 'classlist.js'; // Run `npm install --save classlist.js`.
38 |
39 | /** IE10 and IE11 requires the following to support `@angular/animation`. */
40 | // import 'web-animations-js'; // Run `npm install --save web-animations-js`.
41 |
42 |
43 | /** Evergreen browsers require these. **/
44 | import 'core-js/es6/reflect';
45 | import 'core-js/es7/reflect';
46 |
47 |
48 | /** ALL Firefox browsers require the following to support `@angular/animation`. **/
49 | // import 'web-animations-js'; // Run `npm install --save web-animations-js`.
50 |
51 |
52 |
53 | /***************************************************************************************************
54 | * Zone JS is required by Angular itself.
55 | */
56 | import 'zone.js/dist/zone'; // Included with Angular CLI.
57 |
58 |
59 |
60 | /***************************************************************************************************
61 | * APPLICATION IMPORTS
62 | */
63 |
64 | /**
65 | * Date, currency, decimal and percent pipes.
66 | * Needed for: All but Chrome, Firefox, Edge, IE11 and Safari 10
67 | */
68 | // import 'intl'; // Run `npm install --save intl`.
69 |
--------------------------------------------------------------------------------
/web/tslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "rulesDirectory": [
3 | "node_modules/codelyzer"
4 | ],
5 | "rules": {
6 | "callable-types": true,
7 | "class-name": true,
8 | "comment-format": [
9 | true,
10 | "check-space"
11 | ],
12 | "curly": true,
13 | "eofline": true,
14 | "forin": true,
15 | "import-blacklist": [true, "rxjs"],
16 | "import-spacing": true,
17 | "indent": [
18 | true,
19 | "spaces"
20 | ],
21 | "interface-over-type-literal": true,
22 | "label-position": true,
23 | "max-line-length": [
24 | true,
25 | 140
26 | ],
27 | "member-access": false,
28 | "member-ordering": [
29 | true,
30 | "static-before-instance",
31 | "variables-before-functions"
32 | ],
33 | "no-arg": true,
34 | "no-bitwise": true,
35 | "no-console": [
36 | true,
37 | "debug",
38 | "info",
39 | "time",
40 | "timeEnd",
41 | "trace"
42 | ],
43 | "no-construct": true,
44 | "no-debugger": true,
45 | "no-duplicate-variable": true,
46 | "no-empty": false,
47 | "no-empty-interface": true,
48 | "no-eval": true,
49 | "no-inferrable-types": [true, "ignore-params"],
50 | "no-shadowed-variable": true,
51 | "no-string-literal": false,
52 | "no-string-throw": true,
53 | "no-switch-case-fall-through": true,
54 | "no-trailing-whitespace": true,
55 | "no-unused-expression": true,
56 | "no-use-before-declare": true,
57 | "no-var-keyword": true,
58 | "object-literal-sort-keys": false,
59 | "one-line": [
60 | true,
61 | "check-open-brace",
62 | "check-catch",
63 | "check-else",
64 | "check-whitespace"
65 | ],
66 | "prefer-const": true,
67 | "quotemark": [
68 | true,
69 | "single"
70 | ],
71 | "radix": true,
72 | "semicolon": [
73 | "always"
74 | ],
75 | "triple-equals": [
76 | true,
77 | "allow-null-check"
78 | ],
79 | "typedef-whitespace": [
80 | true,
81 | {
82 | "call-signature": "nospace",
83 | "index-signature": "nospace",
84 | "parameter": "nospace",
85 | "property-declaration": "nospace",
86 | "variable-declaration": "nospace"
87 | }
88 | ],
89 | "typeof-compare": true,
90 | "unified-signatures": true,
91 | "variable-name": false,
92 | "whitespace": [
93 | true,
94 | "check-branch",
95 | "check-decl",
96 | "check-operator",
97 | "check-separator",
98 | "check-type"
99 | ],
100 |
101 | "directive-selector": [true, "attribute", "app", "camelCase"],
102 | "component-selector": [true, "element", "app", "kebab-case"],
103 | "use-input-property-decorator": true,
104 | "use-output-property-decorator": true,
105 | "use-host-property-decorator": true,
106 | "no-input-rename": true,
107 | "no-output-rename": true,
108 | "use-life-cycle-interface": true,
109 | "use-pipe-transform-interface": true,
110 | "component-class-suffix": true,
111 | "directive-class-suffix": true,
112 | "no-access-missing-member": true,
113 | "templates-use-public": true,
114 | "invoke-injectable": true
115 | }
116 | }
117 |
--------------------------------------------------------------------------------
/core/tslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "rulesDirectory": [
3 | "node_modules/codelyzer"
4 | ],
5 | "rules": {
6 | "callable-types": true,
7 | "class-name": true,
8 | "comment-format": [
9 | true,
10 | "check-space"
11 | ],
12 | "curly": true,
13 | "eofline": true,
14 | "forin": true,
15 | "import-blacklist": [true, "rxjs"],
16 | "import-spacing": true,
17 | "indent": [
18 | true,
19 | "spaces"
20 | ],
21 | "interface-over-type-literal": true,
22 | "label-position": true,
23 | "max-line-length": [
24 | true,
25 | 140
26 | ],
27 | "member-access": false,
28 | "member-ordering": [
29 | true,
30 | "static-before-instance",
31 | "variables-before-functions"
32 | ],
33 | "no-arg": true,
34 | "no-bitwise": true,
35 | "no-console": [
36 | true,
37 | "debug",
38 | "info",
39 | "time",
40 | "timeEnd",
41 | "trace"
42 | ],
43 | "no-construct": true,
44 | "no-debugger": true,
45 | "no-duplicate-variable": true,
46 | "no-empty": false,
47 | "no-empty-interface": true,
48 | "no-eval": true,
49 | "no-inferrable-types": [true, "ignore-params"],
50 | "no-shadowed-variable": true,
51 | "no-string-literal": false,
52 | "no-string-throw": true,
53 | "no-switch-case-fall-through": true,
54 | "no-trailing-whitespace": true,
55 | "no-unused-expression": true,
56 | "no-use-before-declare": true,
57 | "no-var-keyword": true,
58 | "object-literal-sort-keys": false,
59 | "one-line": [
60 | true,
61 | "check-open-brace",
62 | "check-catch",
63 | "check-else",
64 | "check-whitespace"
65 | ],
66 | "prefer-const": true,
67 | "quotemark": [
68 | true,
69 | "single"
70 | ],
71 | "radix": true,
72 | "semicolon": [
73 | "always"
74 | ],
75 | "triple-equals": [
76 | true,
77 | "allow-null-check"
78 | ],
79 | "typedef-whitespace": [
80 | true,
81 | {
82 | "call-signature": "nospace",
83 | "index-signature": "nospace",
84 | "parameter": "nospace",
85 | "property-declaration": "nospace",
86 | "variable-declaration": "nospace"
87 | }
88 | ],
89 | "typeof-compare": true,
90 | "unified-signatures": true,
91 | "variable-name": false,
92 | "whitespace": [
93 | true,
94 | "check-branch",
95 | "check-decl",
96 | "check-operator",
97 | "check-separator",
98 | "check-type"
99 | ],
100 |
101 | "directive-selector": [true, "attribute", "app", "camelCase"],
102 | "component-selector": [true, "element", "app", "kebab-case"],
103 | "use-input-property-decorator": true,
104 | "use-output-property-decorator": true,
105 | "use-host-property-decorator": true,
106 | "no-input-rename": true,
107 | "no-output-rename": true,
108 | "use-life-cycle-interface": true,
109 | "use-pipe-transform-interface": true,
110 | "component-class-suffix": true,
111 | "directive-class-suffix": true,
112 | "no-access-missing-member": true,
113 | "templates-use-public": true,
114 | "invoke-injectable": true
115 | }
116 | }
117 |
--------------------------------------------------------------------------------
/web/src/assets/css/cover.css:
--------------------------------------------------------------------------------
1 | /*
2 | * Globals
3 | */
4 |
5 | /* Links */
6 | a,
7 | a:focus,
8 | a:hover {
9 | color: #fff;
10 | }
11 |
12 | /* Custom default button */
13 | .btn-secondary,
14 | .btn-secondary:hover,
15 | .btn-secondary:focus {
16 | color: #333;
17 | text-shadow: none; /* Prevent inheritance from `body` */
18 | background-color: #fff;
19 | border: .05rem solid #fff;
20 | }
21 |
22 |
23 | /*
24 | * Base structure
25 | */
26 |
27 | html,
28 | body {
29 | height: 100%;
30 | background-color: #333;
31 | }
32 | body {
33 | color: #fff;
34 | text-align: center;
35 | text-shadow: 0 .05rem .1rem rgba(0,0,0,.5);
36 | }
37 |
38 | /* Extra markup and styles for table-esque vertical and horizontal centering */
39 | .site-wrapper {
40 | display: table;
41 | width: 100%;
42 | height: 100%; /* For at least Firefox */
43 | min-height: 100%;
44 | -webkit-box-shadow: inset 0 0 5rem rgba(0,0,0,.5);
45 | box-shadow: inset 0 0 5rem rgba(0,0,0,.5);
46 | }
47 | .site-wrapper-inner {
48 | display: table-cell;
49 | vertical-align: top;
50 | }
51 | .cover-container {
52 | margin-right: auto;
53 | margin-left: auto;
54 | }
55 |
56 | /* Padding for spacing */
57 | .inner {
58 | padding: 2rem;
59 | }
60 |
61 |
62 | /*
63 | * Header
64 | */
65 |
66 | .masthead {
67 | margin-bottom: 2rem;
68 | }
69 |
70 | .masthead-brand {
71 | margin-bottom: 0;
72 | }
73 |
74 | .nav-masthead .nav-link {
75 | padding: .25rem 0;
76 | font-weight: bold;
77 | color: rgba(255,255,255,.5);
78 | background-color: transparent;
79 | border-bottom: .25rem solid transparent;
80 | }
81 |
82 | .nav-masthead .nav-link:hover,
83 | .nav-masthead .nav-link:focus {
84 | border-bottom-color: rgba(255,255,255,.25);
85 | }
86 |
87 | .nav-masthead .nav-link + .nav-link {
88 | margin-left: 1rem;
89 | }
90 |
91 | .nav-masthead .active {
92 | color: #fff;
93 | border-bottom-color: #fff;
94 | }
95 |
96 | @media (min-width: 48em) {
97 | .masthead-brand {
98 | float: left;
99 | }
100 | .nav-masthead {
101 | float: right;
102 | }
103 | }
104 |
105 |
106 | /*
107 | * Cover
108 | */
109 |
110 | .cover {
111 | padding: 0 1.5rem;
112 | }
113 | .cover .btn-lg {
114 | padding: .75rem 1.25rem;
115 | font-weight: bold;
116 | }
117 |
118 |
119 | /*
120 | * Footer
121 | */
122 |
123 | .mastfoot {
124 | color: rgba(255,255,255,.5);
125 | }
126 |
127 |
128 | /*
129 | * Affix and center
130 | */
131 |
132 | @media (min-width: 40em) {
133 | /* Pull out the header and footer */
134 | .masthead {
135 | position: fixed;
136 | top: 0;
137 | }
138 | .mastfoot {
139 | position: fixed;
140 | bottom: 0;
141 | }
142 | /* Start the vertical centering */
143 | .site-wrapper-inner {
144 | vertical-align: middle;
145 | }
146 | /* Handle the widths */
147 | .masthead,
148 | .mastfoot,
149 | .cover-container {
150 | width: 100%; /* Must be percentage or pixels for horizontal alignment */
151 | }
152 | }
153 |
154 | @media (min-width: 62em) {
155 | .masthead,
156 | .mastfoot,
157 | .cover-container {
158 | width: 42rem;
159 | }
160 | }
161 |
162 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 | ## Introduction
3 |
4 | This is a proof of concept that demonstrates the ability to share a Typescript package with core functionalities and business logic between an Angular web app and an Ionic mobile app.
5 |
6 | Please check the Medium article [Hybrid mobile apps: sharing logic between Angular and Ionic apps](https://medium.com/@benorama/hybrid-mobile-apps-sharing-logic-between-angular2-and-ionic2-apps-7c32145b90d5#.m1x3vpyc0) for more info.
7 |
8 | 
9 |
10 | **Goals:**
11 |
12 | * encapsulate all the business logic in a core module, based on [@ngrx/store](https://github.com/ngrx/store),
13 | * keep specific view layout, markup and navigation logic in the app projects.
14 |
15 | Note: [@ngrx/store](https://github.com/ngrx/store) is a RxJS powered state management inspired by Redux for Angular apps.
16 | It's currently the most popular way to structure complex business logic in Angular apps.
17 |
18 |
19 | ## Running the apps locally
20 |
21 | ```
22 | # Clone the repo
23 | git clone https://github.com/benorama/ngrx-demo-apps.git
24 | ```
25 |
26 | Prerequisites:
27 | * [Typescript 2.0+](https://www.typescriptlang.org/index.html#download-links)
28 | * [Angular CLI](https://cli.angular.io)
29 | * [Ionic CLI](http://ionicframework.com/docs/cli/)
30 |
31 | Note: `ngrx-demo-core` module is shared between the apps with `npm link` but it could be published to `npmjs` and be used as a regular dependency.
32 |
33 | ### ngrx-demo-core module
34 |
35 | First, compile `ngrx-demo-core` shared module.
36 |
37 | It is based on official Ionic module template, which supports Angular's ngc and Ahead-of-Time compiling out of the box.
38 | https://github.com/driftyco/ionic-module-template
39 |
40 | ```
41 | # Go into core module directory
42 | cd ngrx-demo-apps/core
43 |
44 | # Install dependencies
45 | yarn
46 | # Or npm install
47 |
48 | # Compile typescript into dist
49 | yarn build
50 | # Or npm run build
51 |
52 | yarn link
53 | # Or npm pack
54 | # Or npm publish
55 |
56 | # Note: during dev, you can use 'tsc -w'
57 | ```
58 |
59 | The shared module is now installed locally and can be used in other local npm projects.
60 |
61 | ### ngrx-demo-web app
62 |
63 | Install or link `ngrx-demo-core` shared module and run the web app.
64 |
65 | ```
66 | # Go into web Angular2 app directory
67 | cd ../web
68 |
69 | # Install dependencies
70 | yarn
71 | # Or npm install
72 |
73 | # Create a symlink from the local node_modules folder to the global shared module symlink
74 | yarn link "ngrx-demo-core"
75 | # Or npm install ../core/ngrx-demo-core-0.0.1.tgz (if you used npm pack)
76 |
77 | # Run the web app locally
78 | ng serve
79 | ```
80 |
81 | ### ngrx-demo-mobile app
82 |
83 | As we did for the web app, install or link the `ngrx-demo-core` shared module and run the mobile app.
84 |
85 | ```
86 | # Go into mobile Ionic2 app directory
87 | cd ../mobile
88 |
89 | # Install dependencies and typings (you can get a burger...)
90 | yarn
91 | # Or npm install
92 |
93 | # Create a symlink from the local node_modules folder to the global shared module symlink
94 | yarn link "ngrx-demo-core"
95 | # Or npm install ../core/ngrx-demo-core-0.0.1.tgz (if you used npm pack)
96 |
97 | # Run the mobile app locally
98 | ionic serve
99 | ```
100 |
101 | Note: for more info on using external lib on Ionic2
102 | * [Third Party libraries in Ionic Apps](http://ionicframework.com/docs/v2/resources/third-party-libs/)
103 | * [App Scripts](http://ionicframework.com/docs/v2/resources/app-scripts/)
104 |
105 | ## Bugs and feedback
106 |
107 | If you have any questions or suggestions to improve the demo app, don't hesitate to submit an issue or a pull request!
--------------------------------------------------------------------------------
/web/src/assets/css/bootstrap-reboot.min.css:
--------------------------------------------------------------------------------
1 | /*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}template{display:none}[hidden]{display:none}html{-webkit-box-sizing:border-box;box-sizing:border-box}*,::after,::before{-webkit-box-sizing:inherit;box-sizing:inherit}@-ms-viewport{width:device-width}html{-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}body{font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:1rem;font-weight:400;line-height:1.5;color:#292b2c;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{cursor:help}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}a{color:#0275d8;text-decoration:none}a:focus,a:hover{color:#014c8c;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle}[role=button]{cursor:pointer}[role=button],a,area,button,input,label,select,summary,textarea{-ms-touch-action:manipulation;touch-action:manipulation}table{border-collapse:collapse;background-color:transparent}caption{padding-top:.75rem;padding-bottom:.75rem;color:#636c72;text-align:left;caption-side:bottom}th{text-align:left}label{display:inline-block;margin-bottom:.5rem}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,select,textarea{line-height:inherit}input[type=checkbox]:disabled,input[type=radio]:disabled{cursor:not-allowed}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit}input[type=search]{-webkit-appearance:none}output{display:inline-block}[hidden]{display:none!important}/*# sourceMappingURL=bootstrap-reboot.min.css.map */
--------------------------------------------------------------------------------
/web/src/assets/css/bootstrap-reboot.css:
--------------------------------------------------------------------------------
1 | /*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */
2 | html {
3 | font-family: sans-serif;
4 | line-height: 1.15;
5 | -ms-text-size-adjust: 100%;
6 | -webkit-text-size-adjust: 100%;
7 | }
8 |
9 | body {
10 | margin: 0;
11 | }
12 |
13 | article,
14 | aside,
15 | footer,
16 | header,
17 | nav,
18 | section {
19 | display: block;
20 | }
21 |
22 | h1 {
23 | font-size: 2em;
24 | margin: 0.67em 0;
25 | }
26 |
27 | figcaption,
28 | figure,
29 | main {
30 | display: block;
31 | }
32 |
33 | figure {
34 | margin: 1em 40px;
35 | }
36 |
37 | hr {
38 | -webkit-box-sizing: content-box;
39 | box-sizing: content-box;
40 | height: 0;
41 | overflow: visible;
42 | }
43 |
44 | pre {
45 | font-family: monospace, monospace;
46 | font-size: 1em;
47 | }
48 |
49 | a {
50 | background-color: transparent;
51 | -webkit-text-decoration-skip: objects;
52 | }
53 |
54 | a:active,
55 | a:hover {
56 | outline-width: 0;
57 | }
58 |
59 | abbr[title] {
60 | border-bottom: none;
61 | text-decoration: underline;
62 | text-decoration: underline dotted;
63 | }
64 |
65 | b,
66 | strong {
67 | font-weight: inherit;
68 | }
69 |
70 | b,
71 | strong {
72 | font-weight: bolder;
73 | }
74 |
75 | code,
76 | kbd,
77 | samp {
78 | font-family: monospace, monospace;
79 | font-size: 1em;
80 | }
81 |
82 | dfn {
83 | font-style: italic;
84 | }
85 |
86 | mark {
87 | background-color: #ff0;
88 | color: #000;
89 | }
90 |
91 | small {
92 | font-size: 80%;
93 | }
94 |
95 | sub,
96 | sup {
97 | font-size: 75%;
98 | line-height: 0;
99 | position: relative;
100 | vertical-align: baseline;
101 | }
102 |
103 | sub {
104 | bottom: -0.25em;
105 | }
106 |
107 | sup {
108 | top: -0.5em;
109 | }
110 |
111 | audio,
112 | video {
113 | display: inline-block;
114 | }
115 |
116 | audio:not([controls]) {
117 | display: none;
118 | height: 0;
119 | }
120 |
121 | img {
122 | border-style: none;
123 | }
124 |
125 | svg:not(:root) {
126 | overflow: hidden;
127 | }
128 |
129 | button,
130 | input,
131 | optgroup,
132 | select,
133 | textarea {
134 | font-family: sans-serif;
135 | font-size: 100%;
136 | line-height: 1.15;
137 | margin: 0;
138 | }
139 |
140 | button,
141 | input {
142 | overflow: visible;
143 | }
144 |
145 | button,
146 | select {
147 | text-transform: none;
148 | }
149 |
150 | button,
151 | html [type="button"],
152 | [type="reset"],
153 | [type="submit"] {
154 | -webkit-appearance: button;
155 | }
156 |
157 | button::-moz-focus-inner,
158 | [type="button"]::-moz-focus-inner,
159 | [type="reset"]::-moz-focus-inner,
160 | [type="submit"]::-moz-focus-inner {
161 | border-style: none;
162 | padding: 0;
163 | }
164 |
165 | button:-moz-focusring,
166 | [type="button"]:-moz-focusring,
167 | [type="reset"]:-moz-focusring,
168 | [type="submit"]:-moz-focusring {
169 | outline: 1px dotted ButtonText;
170 | }
171 |
172 | fieldset {
173 | border: 1px solid #c0c0c0;
174 | margin: 0 2px;
175 | padding: 0.35em 0.625em 0.75em;
176 | }
177 |
178 | legend {
179 | -webkit-box-sizing: border-box;
180 | box-sizing: border-box;
181 | color: inherit;
182 | display: table;
183 | max-width: 100%;
184 | padding: 0;
185 | white-space: normal;
186 | }
187 |
188 | progress {
189 | display: inline-block;
190 | vertical-align: baseline;
191 | }
192 |
193 | textarea {
194 | overflow: auto;
195 | }
196 |
197 | [type="checkbox"],
198 | [type="radio"] {
199 | -webkit-box-sizing: border-box;
200 | box-sizing: border-box;
201 | padding: 0;
202 | }
203 |
204 | [type="number"]::-webkit-inner-spin-button,
205 | [type="number"]::-webkit-outer-spin-button {
206 | height: auto;
207 | }
208 |
209 | [type="search"] {
210 | -webkit-appearance: textfield;
211 | outline-offset: -2px;
212 | }
213 |
214 | [type="search"]::-webkit-search-cancel-button,
215 | [type="search"]::-webkit-search-decoration {
216 | -webkit-appearance: none;
217 | }
218 |
219 | ::-webkit-file-upload-button {
220 | -webkit-appearance: button;
221 | font: inherit;
222 | }
223 |
224 | details,
225 | menu {
226 | display: block;
227 | }
228 |
229 | summary {
230 | display: list-item;
231 | }
232 |
233 | canvas {
234 | display: inline-block;
235 | }
236 |
237 | template {
238 | display: none;
239 | }
240 |
241 | [hidden] {
242 | display: none;
243 | }
244 |
245 | html {
246 | -webkit-box-sizing: border-box;
247 | box-sizing: border-box;
248 | }
249 |
250 | *,
251 | *::before,
252 | *::after {
253 | -webkit-box-sizing: inherit;
254 | box-sizing: inherit;
255 | }
256 |
257 | @-ms-viewport {
258 | width: device-width;
259 | }
260 |
261 | html {
262 | -ms-overflow-style: scrollbar;
263 | -webkit-tap-highlight-color: transparent;
264 | }
265 |
266 | body {
267 | font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
268 | font-size: 1rem;
269 | font-weight: normal;
270 | line-height: 1.5;
271 | color: #292b2c;
272 | background-color: #fff;
273 | }
274 |
275 | [tabindex="-1"]:focus {
276 | outline: none !important;
277 | }
278 |
279 | h1, h2, h3, h4, h5, h6 {
280 | margin-top: 0;
281 | margin-bottom: .5rem;
282 | }
283 |
284 | p {
285 | margin-top: 0;
286 | margin-bottom: 1rem;
287 | }
288 |
289 | abbr[title],
290 | abbr[data-original-title] {
291 | cursor: help;
292 | }
293 |
294 | address {
295 | margin-bottom: 1rem;
296 | font-style: normal;
297 | line-height: inherit;
298 | }
299 |
300 | ol,
301 | ul,
302 | dl {
303 | margin-top: 0;
304 | margin-bottom: 1rem;
305 | }
306 |
307 | ol ol,
308 | ul ul,
309 | ol ul,
310 | ul ol {
311 | margin-bottom: 0;
312 | }
313 |
314 | dt {
315 | font-weight: bold;
316 | }
317 |
318 | dd {
319 | margin-bottom: .5rem;
320 | margin-left: 0;
321 | }
322 |
323 | blockquote {
324 | margin: 0 0 1rem;
325 | }
326 |
327 | a {
328 | color: #0275d8;
329 | text-decoration: none;
330 | }
331 |
332 | a:focus, a:hover {
333 | color: #014c8c;
334 | text-decoration: underline;
335 | }
336 |
337 | a:not([href]):not([tabindex]) {
338 | color: inherit;
339 | text-decoration: none;
340 | }
341 |
342 | a:not([href]):not([tabindex]):focus, a:not([href]):not([tabindex]):hover {
343 | color: inherit;
344 | text-decoration: none;
345 | }
346 |
347 | a:not([href]):not([tabindex]):focus {
348 | outline: 0;
349 | }
350 |
351 | pre {
352 | margin-top: 0;
353 | margin-bottom: 1rem;
354 | overflow: auto;
355 | }
356 |
357 | figure {
358 | margin: 0 0 1rem;
359 | }
360 |
361 | img {
362 | vertical-align: middle;
363 | }
364 |
365 | [role="button"] {
366 | cursor: pointer;
367 | }
368 |
369 | a,
370 | area,
371 | button,
372 | [role="button"],
373 | input,
374 | label,
375 | select,
376 | summary,
377 | textarea {
378 | -ms-touch-action: manipulation;
379 | touch-action: manipulation;
380 | }
381 |
382 | table {
383 | border-collapse: collapse;
384 | background-color: transparent;
385 | }
386 |
387 | caption {
388 | padding-top: 0.75rem;
389 | padding-bottom: 0.75rem;
390 | color: #636c72;
391 | text-align: left;
392 | caption-side: bottom;
393 | }
394 |
395 | th {
396 | text-align: left;
397 | }
398 |
399 | label {
400 | display: inline-block;
401 | margin-bottom: .5rem;
402 | }
403 |
404 | button:focus {
405 | outline: 1px dotted;
406 | outline: 5px auto -webkit-focus-ring-color;
407 | }
408 |
409 | input,
410 | button,
411 | select,
412 | textarea {
413 | line-height: inherit;
414 | }
415 |
416 | input[type="radio"]:disabled,
417 | input[type="checkbox"]:disabled {
418 | cursor: not-allowed;
419 | }
420 |
421 | input[type="date"],
422 | input[type="time"],
423 | input[type="datetime-local"],
424 | input[type="month"] {
425 | -webkit-appearance: listbox;
426 | }
427 |
428 | textarea {
429 | resize: vertical;
430 | }
431 |
432 | fieldset {
433 | min-width: 0;
434 | padding: 0;
435 | margin: 0;
436 | border: 0;
437 | }
438 |
439 | legend {
440 | display: block;
441 | width: 100%;
442 | padding: 0;
443 | margin-bottom: .5rem;
444 | font-size: 1.5rem;
445 | line-height: inherit;
446 | }
447 |
448 | input[type="search"] {
449 | -webkit-appearance: none;
450 | }
451 |
452 | output {
453 | display: inline-block;
454 | }
455 |
456 | [hidden] {
457 | display: none !important;
458 | }
459 | /*# sourceMappingURL=bootstrap-reboot.css.map */
--------------------------------------------------------------------------------
/mobile/hooks/README.md:
--------------------------------------------------------------------------------
1 |
21 | # Cordova Hooks
22 |
23 | Cordova Hooks represent special scripts which could be added by application and plugin developers or even by your own build system to customize cordova commands. Hook scripts could be defined by adding them to the special predefined folder (`/hooks`) or via configuration files (`config.xml` and `plugin.xml`) and run serially in the following order:
24 | * Application hooks from `/hooks`;
25 | * Application hooks from `config.xml`;
26 | * Plugin hooks from `plugins/.../plugin.xml`.
27 |
28 | __Remember__: Make your scripts executable.
29 |
30 | __Note__: `.cordova/hooks` directory is also supported for backward compatibility, but we don't recommend using it as it is deprecated.
31 |
32 | ## Supported hook types
33 | The following hook types are supported:
34 |
35 | after_build/
36 | after_compile/
37 | after_docs/
38 | after_emulate/
39 | after_platform_add/
40 | after_platform_rm/
41 | after_platform_ls/
42 | after_plugin_add/
43 | after_plugin_ls/
44 | after_plugin_rm/
45 | after_plugin_search/
46 | after_plugin_install/ <-- Plugin hooks defined in plugin.xml are executed exclusively for a plugin being installed
47 | after_prepare/
48 | after_run/
49 | after_serve/
50 | before_build/
51 | before_compile/
52 | before_docs/
53 | before_emulate/
54 | before_platform_add/
55 | before_platform_rm/
56 | before_platform_ls/
57 | before_plugin_add/
58 | before_plugin_ls/
59 | before_plugin_rm/
60 | before_plugin_search/
61 | before_plugin_install/ <-- Plugin hooks defined in plugin.xml are executed exclusively for a plugin being installed
62 | before_plugin_uninstall/ <-- Plugin hooks defined in plugin.xml are executed exclusively for a plugin being uninstalled
63 | before_prepare/
64 | before_run/
65 | before_serve/
66 | pre_package/ <-- Windows 8 and Windows Phone only.
67 |
68 | ## Ways to define hooks
69 | ### Via '/hooks' directory
70 | To execute custom action when corresponding hook type is fired, use hook type as a name for a subfolder inside 'hooks' directory and place you script file here, for example:
71 |
72 | # script file will be automatically executed after each build
73 | hooks/after_build/after_build_custom_action.js
74 |
75 |
76 | ### Config.xml
77 |
78 | Hooks can be defined in project's `config.xml` using `` elements, for example:
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 | ...
89 |
90 |
91 |
92 |
93 |
94 |
95 | ...
96 |
97 |
98 | ### Plugin hooks (plugin.xml)
99 |
100 | As a plugin developer you can define hook scripts using `` elements in a `plugin.xml` like that:
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 | ...
109 |
110 |
111 | `before_plugin_install`, `after_plugin_install`, `before_plugin_uninstall` plugin hooks will be fired exclusively for the plugin being installed/uninstalled.
112 |
113 | ## Script Interface
114 |
115 | ### Javascript
116 |
117 | If you are writing hooks in Javascript you should use the following module definition:
118 | ```javascript
119 | module.exports = function(context) {
120 | ...
121 | }
122 | ```
123 |
124 | You can make your scipts async using Q:
125 | ```javascript
126 | module.exports = function(context) {
127 | var Q = context.requireCordovaModule('q');
128 | var deferral = new Q.defer();
129 |
130 | setTimeout(function(){
131 | console.log('hook.js>> end');
132 | deferral.resolve();
133 | }, 1000);
134 |
135 | return deferral.promise;
136 | }
137 | ```
138 |
139 | `context` object contains hook type, executed script full path, hook options, command-line arguments passed to Cordova and top-level "cordova" object:
140 | ```json
141 | {
142 | "hook": "before_plugin_install",
143 | "scriptLocation": "c:\\script\\full\\path\\appBeforePluginInstall.js",
144 | "cmdLine": "The\\exact\\command\\cordova\\run\\with arguments",
145 | "opts": {
146 | "projectRoot":"C:\\path\\to\\the\\project",
147 | "cordova": {
148 | "platforms": ["wp8"],
149 | "plugins": ["com.plugin.withhooks"],
150 | "version": "0.21.7-dev"
151 | },
152 | "plugin": {
153 | "id": "com.plugin.withhooks",
154 | "pluginInfo": {
155 | ...
156 | },
157 | "platform": "wp8",
158 | "dir": "C:\\path\\to\\the\\project\\plugins\\com.plugin.withhooks"
159 | }
160 | },
161 | "cordova": {...}
162 | }
163 |
164 | ```
165 | `context.opts.plugin` object will only be passed to plugin hooks scripts.
166 |
167 | You can also require additional Cordova modules in your script using `context.requireCordovaModule` in the following way:
168 | ```javascript
169 | var Q = context.requireCordovaModule('q');
170 | ```
171 |
172 | __Note__: new module loader script interface is used for the `.js` files defined via `config.xml` or `plugin.xml` only.
173 | For compatibility reasons hook files specified via `/hooks` folders are run via Node child_process spawn, see 'Non-javascript' section below.
174 |
175 | ### Non-javascript
176 |
177 | Non-javascript scripts are run via Node child_process spawn from the project's root directory and have the root directory passes as the first argument. All other options are passed to the script using environment variables:
178 |
179 | * CORDOVA_VERSION - The version of the Cordova-CLI.
180 | * CORDOVA_PLATFORMS - Comma separated list of platforms that the command applies to (e.g.: android, ios).
181 | * CORDOVA_PLUGINS - Comma separated list of plugin IDs that the command applies to (e.g.: org.apache.cordova.file, org.apache.cordova.file-transfer)
182 | * CORDOVA_HOOK - Path to the hook that is being executed.
183 | * CORDOVA_CMDLINE - The exact command-line arguments passed to cordova (e.g.: cordova run ios --emulate)
184 |
185 | If a script returns a non-zero exit code, then the parent cordova command will be aborted.
186 |
187 | ## Writing hooks
188 |
189 | We highly recommend writing your hooks using Node.js so that they are
190 | cross-platform. Some good examples are shown here:
191 |
192 | [http://devgirl.org/2013/11/12/three-hooks-your-cordovaphonegap-project-needs/](http://devgirl.org/2013/11/12/three-hooks-your-cordovaphonegap-project-needs/)
193 |
194 | Also, note that even if you are working on Windows, and in case your hook scripts aren't bat files (which is recommended, if you want your scripts to work in non-Windows operating systems) Cordova CLI will expect a shebang line as the first line for it to know the interpreter it needs to use to launch the script. The shebang line should match the following example:
195 |
196 | #!/usr/bin/env [name_of_interpreter_executable]
197 |
--------------------------------------------------------------------------------
/web/src/assets/css/bootstrap-reboot.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["../../scss/_normalize.scss","bootstrap-reboot.css","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/mixins/_hover.scss"],"names":[],"mappings":"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","file":"bootstrap-reboot.css","sourcesContent":[null,"/*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n}\n\nbody {\n margin: 0;\n}\n\narticle,\naside,\nfooter,\nheader,\nnav,\nsection {\n display: block;\n}\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\nfigcaption,\nfigure,\nmain {\n display: block;\n}\n\nfigure {\n margin: 1em 40px;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\npre {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\na {\n background-color: transparent;\n -webkit-text-decoration-skip: objects;\n}\n\na:active,\na:hover {\n outline-width: 0;\n}\n\nabbr[title] {\n border-bottom: none;\n text-decoration: underline;\n text-decoration: underline dotted;\n}\n\nb,\nstrong {\n font-weight: inherit;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\ndfn {\n font-style: italic;\n}\n\nmark {\n background-color: #ff0;\n color: #000;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\naudio,\nvideo {\n display: inline-block;\n}\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\nimg {\n border-style: none;\n}\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: sans-serif;\n font-size: 100%;\n line-height: 1.15;\n margin: 0;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nbutton,\nhtml [type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\nlegend {\n box-sizing: border-box;\n color: inherit;\n display: table;\n max-width: 100%;\n padding: 0;\n white-space: normal;\n}\n\nprogress {\n display: inline-block;\n vertical-align: baseline;\n}\n\ntextarea {\n overflow: auto;\n}\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n}\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n -webkit-appearance: button;\n font: inherit;\n}\n\ndetails,\nmenu {\n display: block;\n}\n\nsummary {\n display: list-item;\n}\n\ncanvas {\n display: inline-block;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none;\n}\n\nhtml {\n box-sizing: border-box;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n@-ms-viewport {\n width: device-width;\n}\n\nhtml {\n -ms-overflow-style: scrollbar;\n -webkit-tap-highlight-color: transparent;\n}\n\nbody {\n font-family: -apple-system, system-ui, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n font-size: 1rem;\n font-weight: normal;\n line-height: 1.5;\n color: #292b2c;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n outline: none !important;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: .5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n cursor: help;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: bold;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\na {\n color: #0275d8;\n text-decoration: none;\n}\n\na:focus, a:hover {\n color: #014c8c;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus, a:not([href]):not([tabindex]):hover {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n}\n\n[role=\"button\"] {\n cursor: pointer;\n}\n\na,\narea,\nbutton,\n[role=\"button\"],\ninput,\nlabel,\nselect,\nsummary,\ntextarea {\n touch-action: manipulation;\n}\n\ntable {\n border-collapse: collapse;\n background-color: transparent;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #636c72;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: left;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: .5rem;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\ntextarea {\n line-height: inherit;\n}\n\ninput[type=\"radio\"]:disabled,\ninput[type=\"checkbox\"]:disabled {\n cursor: not-allowed;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n}\n\ninput[type=\"search\"] {\n -webkit-appearance: none;\n}\n\noutput {\n display: inline-block;\n}\n\n[hidden] {\n display: none !important;\n}\n\n/*# sourceMappingURL=bootstrap-reboot.css.map */",null,null,null]}
--------------------------------------------------------------------------------
/core/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@angular/common@4.0.1":
6 | version "4.0.1"
7 | resolved "https://registry.yarnpkg.com/@angular/common/-/common-4.0.1.tgz#df488eada842b2d841ded750712292b18387b5b0"
8 |
9 | "@angular/compiler-cli@4.0.1":
10 | version "4.0.1"
11 | resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-4.0.1.tgz#90c60d491c12e1da901a0aeb3990470aa96e9bfa"
12 | dependencies:
13 | "@angular/tsc-wrapped" "4.0.1"
14 | minimist "^1.2.0"
15 | reflect-metadata "^0.1.2"
16 |
17 | "@angular/compiler@4.0.1":
18 | version "4.0.1"
19 | resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-4.0.1.tgz#15721edb148167a2d83b6f9324817e658eac8280"
20 |
21 | "@angular/core@4.0.1":
22 | version "4.0.1"
23 | resolved "https://registry.yarnpkg.com/@angular/core/-/core-4.0.1.tgz#0b110a001012076ea696460ccd922707bcdf51ba"
24 |
25 | "@angular/platform-browser@4.0.1":
26 | version "4.0.1"
27 | resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-4.0.1.tgz#4b9efbeb2fbb900de188743b988802d3aa2b33ff"
28 |
29 | "@angular/tsc-wrapped@4.0.1":
30 | version "4.0.1"
31 | resolved "https://registry.yarnpkg.com/@angular/tsc-wrapped/-/tsc-wrapped-4.0.1.tgz#5323cc99263b097bceeb8e423270b5f58ffb2186"
32 | dependencies:
33 | tsickle "^0.21.0"
34 |
35 | "@ngrx/core@1.2.0":
36 | version "1.2.0"
37 | resolved "https://registry.yarnpkg.com/@ngrx/core/-/core-1.2.0.tgz#882b46abafa2e0e6d887cb71a1b2c2fa3e6d0dc6"
38 |
39 | "@ngrx/effects@2.0.2":
40 | version "2.0.2"
41 | resolved "https://registry.yarnpkg.com/@ngrx/effects/-/effects-2.0.2.tgz#8255e29cc0276f108784c90481e3b96e6713154b"
42 |
43 | "@ngrx/store@2.2.1":
44 | version "2.2.1"
45 | resolved "https://registry.yarnpkg.com/@ngrx/store/-/store-2.2.1.tgz#316ec1e43aa5a0166e5e6e1aa2c34a4049386510"
46 |
47 | "@types/node@7.0.12":
48 | version "7.0.12"
49 | resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.12.tgz#ae5f67a19c15f752148004db07cbbb372e69efc9"
50 |
51 | ansi-regex@^2.0.0:
52 | version "2.1.1"
53 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
54 |
55 | ansi-styles@^2.2.1:
56 | version "2.2.1"
57 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
58 |
59 | babel-code-frame@^6.22.0:
60 | version "6.22.0"
61 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4"
62 | dependencies:
63 | chalk "^1.1.0"
64 | esutils "^2.0.2"
65 | js-tokens "^3.0.0"
66 |
67 | balanced-match@^0.4.1:
68 | version "0.4.2"
69 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838"
70 |
71 | brace-expansion@^1.0.0:
72 | version "1.1.6"
73 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9"
74 | dependencies:
75 | balanced-match "^0.4.1"
76 | concat-map "0.0.1"
77 |
78 | chalk@^1.1.0:
79 | version "1.1.3"
80 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
81 | dependencies:
82 | ansi-styles "^2.2.1"
83 | escape-string-regexp "^1.0.2"
84 | has-ansi "^2.0.0"
85 | strip-ansi "^3.0.0"
86 | supports-color "^2.0.0"
87 |
88 | colors@^1.1.2:
89 | version "1.1.2"
90 | resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"
91 |
92 | concat-map@0.0.1:
93 | version "0.0.1"
94 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
95 |
96 | diff@^3.2.0:
97 | version "3.2.0"
98 | resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9"
99 |
100 | escape-string-regexp@^1.0.2:
101 | version "1.0.5"
102 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
103 |
104 | esutils@^2.0.2:
105 | version "2.0.2"
106 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
107 |
108 | findup-sync@~0.3.0:
109 | version "0.3.0"
110 | resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.3.0.tgz#37930aa5d816b777c03445e1966cc6790a4c0b16"
111 | dependencies:
112 | glob "~5.0.0"
113 |
114 | fs.realpath@^1.0.0:
115 | version "1.0.0"
116 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
117 |
118 | glob@^7.1.1:
119 | version "7.1.1"
120 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8"
121 | dependencies:
122 | fs.realpath "^1.0.0"
123 | inflight "^1.0.4"
124 | inherits "2"
125 | minimatch "^3.0.2"
126 | once "^1.3.0"
127 | path-is-absolute "^1.0.0"
128 |
129 | glob@~5.0.0:
130 | version "5.0.15"
131 | resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1"
132 | dependencies:
133 | inflight "^1.0.4"
134 | inherits "2"
135 | minimatch "2 || 3"
136 | once "^1.3.0"
137 | path-is-absolute "^1.0.0"
138 |
139 | has-ansi@^2.0.0:
140 | version "2.0.0"
141 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
142 | dependencies:
143 | ansi-regex "^2.0.0"
144 |
145 | inflight@^1.0.4:
146 | version "1.0.6"
147 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
148 | dependencies:
149 | once "^1.3.0"
150 | wrappy "1"
151 |
152 | inherits@2:
153 | version "2.0.3"
154 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
155 |
156 | js-tokens@^3.0.0:
157 | version "3.0.1"
158 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7"
159 |
160 | "minimatch@2 || 3", minimatch@^3.0.2:
161 | version "3.0.3"
162 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774"
163 | dependencies:
164 | brace-expansion "^1.0.0"
165 |
166 | minimist@0.0.8:
167 | version "0.0.8"
168 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
169 |
170 | minimist@^1.2.0:
171 | version "1.2.0"
172 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
173 |
174 | minimist@~0.0.1:
175 | version "0.0.10"
176 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
177 |
178 | mkdirp@^0.5.1:
179 | version "0.5.1"
180 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
181 | dependencies:
182 | minimist "0.0.8"
183 |
184 | once@^1.3.0:
185 | version "1.4.0"
186 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
187 | dependencies:
188 | wrappy "1"
189 |
190 | optimist@~0.6.0:
191 | version "0.6.1"
192 | resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
193 | dependencies:
194 | minimist "~0.0.1"
195 | wordwrap "~0.0.2"
196 |
197 | path-is-absolute@^1.0.0:
198 | version "1.0.1"
199 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
200 |
201 | path-parse@^1.0.5:
202 | version "1.0.5"
203 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
204 |
205 | reflect-metadata@^0.1.2:
206 | version "0.1.10"
207 | resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.10.tgz#b4f83704416acad89988c9b15635d47e03b9344a"
208 |
209 | resolve@^1.3.2:
210 | version "1.3.2"
211 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.2.tgz#1f0442c9e0cbb8136e87b9305f932f46c7f28235"
212 | dependencies:
213 | path-parse "^1.0.5"
214 |
215 | rxjs@5.3.0:
216 | version "5.3.0"
217 | resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.3.0.tgz#d88ccbdd46af290cbdb97d5d8055e52453fabe2d"
218 | dependencies:
219 | symbol-observable "^1.0.1"
220 |
221 | semver@^5.3.0:
222 | version "5.3.0"
223 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
224 |
225 | source-map-support@^0.4.2:
226 | version "0.4.14"
227 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.14.tgz#9d4463772598b86271b4f523f6c1f4e02a7d6aef"
228 | dependencies:
229 | source-map "^0.5.6"
230 |
231 | source-map@^0.5.6:
232 | version "0.5.6"
233 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
234 |
235 | strip-ansi@^3.0.0:
236 | version "3.0.1"
237 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
238 | dependencies:
239 | ansi-regex "^2.0.0"
240 |
241 | supports-color@^2.0.0:
242 | version "2.0.0"
243 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
244 |
245 | symbol-observable@^1.0.1:
246 | version "1.0.4"
247 | resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d"
248 |
249 | tsickle@^0.21.0:
250 | version "0.21.6"
251 | resolved "https://registry.yarnpkg.com/tsickle/-/tsickle-0.21.6.tgz#53b01b979c5c13fdb13afb3fb958177e5991588d"
252 | dependencies:
253 | minimist "^1.2.0"
254 | mkdirp "^0.5.1"
255 | source-map "^0.5.6"
256 | source-map-support "^0.4.2"
257 |
258 | tslint@5.0.0:
259 | version "5.0.0"
260 | resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.0.0.tgz#ad3b7952f8a9b21079248bee01c2eaf92167e185"
261 | dependencies:
262 | babel-code-frame "^6.22.0"
263 | colors "^1.1.2"
264 | diff "^3.2.0"
265 | findup-sync "~0.3.0"
266 | glob "^7.1.1"
267 | optimist "~0.6.0"
268 | resolve "^1.3.2"
269 | semver "^5.3.0"
270 | tsutils "^1.4.0"
271 |
272 | tsutils@^1.4.0:
273 | version "1.4.0"
274 | resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-1.4.0.tgz#84f8a83df9967d35bf1ff3aa48c7339593d64e19"
275 |
276 | typescript@2.2.2:
277 | version "2.2.2"
278 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.2.2.tgz#606022508479b55ffa368b58fee963a03dfd7b0c"
279 |
280 | wordwrap@~0.0.2:
281 | version "0.0.3"
282 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
283 |
284 | wrappy@1:
285 | version "1.0.2"
286 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
287 |
288 | zone.js@0.8.5:
289 | version "0.8.5"
290 | resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.8.5.tgz#7906e017482cbff4c3f079c5c34305ce941f5ba2"
291 |
--------------------------------------------------------------------------------
/web/src/assets/css/bootstrap-grid.min.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["../../scss/bootstrap-grid.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss"],"names":[],"mappings":"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"}
--------------------------------------------------------------------------------
/web/src/assets/css/bootstrap-grid.min.css:
--------------------------------------------------------------------------------
1 | @-ms-viewport{width:device-width}html{-webkit-box-sizing:border-box;box-sizing:border-box;-ms-overflow-style:scrollbar}*,::after,::before{-webkit-box-sizing:inherit;box-sizing:inherit}.container{position:relative;margin-left:auto;margin-right:auto;padding-right:15px;padding-left:15px}@media (min-width:576px){.container{padding-right:15px;padding-left:15px}}@media (min-width:768px){.container{padding-right:15px;padding-left:15px}}@media (min-width:992px){.container{padding-right:15px;padding-left:15px}}@media (min-width:1200px){.container{padding-right:15px;padding-left:15px}}@media (min-width:576px){.container{width:540px;max-width:100%}}@media (min-width:768px){.container{width:720px;max-width:100%}}@media (min-width:992px){.container{width:960px;max-width:100%}}@media (min-width:1200px){.container{width:1140px;max-width:100%}}.container-fluid{position:relative;margin-left:auto;margin-right:auto;padding-right:15px;padding-left:15px}@media (min-width:576px){.container-fluid{padding-right:15px;padding-left:15px}}@media (min-width:768px){.container-fluid{padding-right:15px;padding-left:15px}}@media (min-width:992px){.container-fluid{padding-right:15px;padding-left:15px}}@media (min-width:1200px){.container-fluid{padding-right:15px;padding-left:15px}}.row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}@media (min-width:576px){.row{margin-right:-15px;margin-left:-15px}}@media (min-width:768px){.row{margin-right:-15px;margin-left:-15px}}@media (min-width:992px){.row{margin-right:-15px;margin-left:-15px}}@media (min-width:1200px){.row{margin-right:-15px;margin-left:-15px}}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}@media (min-width:576px){.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9{padding-right:15px;padding-left:15px}}@media (min-width:768px){.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9{padding-right:15px;padding-left:15px}}@media (min-width:992px){.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9{padding-right:15px;padding-left:15px}}@media (min-width:1200px){.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9{padding-right:15px;padding-left:15px}}.col{-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-1{-webkit-box-flex:0;-webkit-flex:0 0 8.333333%;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-webkit-box-flex:0;-webkit-flex:0 0 16.666667%;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-webkit-box-flex:0;-webkit-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-webkit-box-flex:0;-webkit-flex:0 0 33.333333%;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-webkit-box-flex:0;-webkit-flex:0 0 41.666667%;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-webkit-box-flex:0;-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-webkit-box-flex:0;-webkit-flex:0 0 58.333333%;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-webkit-box-flex:0;-webkit-flex:0 0 66.666667%;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-webkit-box-flex:0;-webkit-flex:0 0 75%;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-webkit-box-flex:0;-webkit-flex:0 0 83.333333%;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-webkit-box-flex:0;-webkit-flex:0 0 91.666667%;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.pull-0{right:auto}.pull-1{right:8.333333%}.pull-2{right:16.666667%}.pull-3{right:25%}.pull-4{right:33.333333%}.pull-5{right:41.666667%}.pull-6{right:50%}.pull-7{right:58.333333%}.pull-8{right:66.666667%}.pull-9{right:75%}.pull-10{right:83.333333%}.pull-11{right:91.666667%}.pull-12{right:100%}.push-0{left:auto}.push-1{left:8.333333%}.push-2{left:16.666667%}.push-3{left:25%}.push-4{left:33.333333%}.push-5{left:41.666667%}.push-6{left:50%}.push-7{left:58.333333%}.push-8{left:66.666667%}.push-9{left:75%}.push-10{left:83.333333%}.push-11{left:91.666667%}.push-12{left:100%}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-sm-1{-webkit-box-flex:0;-webkit-flex:0 0 8.333333%;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-webkit-box-flex:0;-webkit-flex:0 0 16.666667%;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-webkit-box-flex:0;-webkit-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;-webkit-flex:0 0 33.333333%;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-webkit-box-flex:0;-webkit-flex:0 0 41.666667%;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-webkit-box-flex:0;-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;-webkit-flex:0 0 58.333333%;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-webkit-box-flex:0;-webkit-flex:0 0 66.666667%;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-webkit-box-flex:0;-webkit-flex:0 0 75%;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;-webkit-flex:0 0 83.333333%;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-webkit-box-flex:0;-webkit-flex:0 0 91.666667%;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.pull-sm-0{right:auto}.pull-sm-1{right:8.333333%}.pull-sm-2{right:16.666667%}.pull-sm-3{right:25%}.pull-sm-4{right:33.333333%}.pull-sm-5{right:41.666667%}.pull-sm-6{right:50%}.pull-sm-7{right:58.333333%}.pull-sm-8{right:66.666667%}.pull-sm-9{right:75%}.pull-sm-10{right:83.333333%}.pull-sm-11{right:91.666667%}.pull-sm-12{right:100%}.push-sm-0{left:auto}.push-sm-1{left:8.333333%}.push-sm-2{left:16.666667%}.push-sm-3{left:25%}.push-sm-4{left:33.333333%}.push-sm-5{left:41.666667%}.push-sm-6{left:50%}.push-sm-7{left:58.333333%}.push-sm-8{left:66.666667%}.push-sm-9{left:75%}.push-sm-10{left:83.333333%}.push-sm-11{left:91.666667%}.push-sm-12{left:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-md-1{-webkit-box-flex:0;-webkit-flex:0 0 8.333333%;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-webkit-box-flex:0;-webkit-flex:0 0 16.666667%;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-webkit-box-flex:0;-webkit-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;-webkit-flex:0 0 33.333333%;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-webkit-box-flex:0;-webkit-flex:0 0 41.666667%;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-webkit-box-flex:0;-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;-webkit-flex:0 0 58.333333%;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-webkit-box-flex:0;-webkit-flex:0 0 66.666667%;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-webkit-box-flex:0;-webkit-flex:0 0 75%;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;-webkit-flex:0 0 83.333333%;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-webkit-box-flex:0;-webkit-flex:0 0 91.666667%;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.pull-md-0{right:auto}.pull-md-1{right:8.333333%}.pull-md-2{right:16.666667%}.pull-md-3{right:25%}.pull-md-4{right:33.333333%}.pull-md-5{right:41.666667%}.pull-md-6{right:50%}.pull-md-7{right:58.333333%}.pull-md-8{right:66.666667%}.pull-md-9{right:75%}.pull-md-10{right:83.333333%}.pull-md-11{right:91.666667%}.pull-md-12{right:100%}.push-md-0{left:auto}.push-md-1{left:8.333333%}.push-md-2{left:16.666667%}.push-md-3{left:25%}.push-md-4{left:33.333333%}.push-md-5{left:41.666667%}.push-md-6{left:50%}.push-md-7{left:58.333333%}.push-md-8{left:66.666667%}.push-md-9{left:75%}.push-md-10{left:83.333333%}.push-md-11{left:91.666667%}.push-md-12{left:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-lg-1{-webkit-box-flex:0;-webkit-flex:0 0 8.333333%;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-webkit-box-flex:0;-webkit-flex:0 0 16.666667%;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-webkit-box-flex:0;-webkit-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;-webkit-flex:0 0 33.333333%;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-webkit-box-flex:0;-webkit-flex:0 0 41.666667%;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-webkit-box-flex:0;-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;-webkit-flex:0 0 58.333333%;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-webkit-box-flex:0;-webkit-flex:0 0 66.666667%;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-webkit-box-flex:0;-webkit-flex:0 0 75%;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;-webkit-flex:0 0 83.333333%;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-webkit-box-flex:0;-webkit-flex:0 0 91.666667%;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.pull-lg-0{right:auto}.pull-lg-1{right:8.333333%}.pull-lg-2{right:16.666667%}.pull-lg-3{right:25%}.pull-lg-4{right:33.333333%}.pull-lg-5{right:41.666667%}.pull-lg-6{right:50%}.pull-lg-7{right:58.333333%}.pull-lg-8{right:66.666667%}.pull-lg-9{right:75%}.pull-lg-10{right:83.333333%}.pull-lg-11{right:91.666667%}.pull-lg-12{right:100%}.push-lg-0{left:auto}.push-lg-1{left:8.333333%}.push-lg-2{left:16.666667%}.push-lg-3{left:25%}.push-lg-4{left:33.333333%}.push-lg-5{left:41.666667%}.push-lg-6{left:50%}.push-lg-7{left:58.333333%}.push-lg-8{left:66.666667%}.push-lg-9{left:75%}.push-lg-10{left:83.333333%}.push-lg-11{left:91.666667%}.push-lg-12{left:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-xl-1{-webkit-box-flex:0;-webkit-flex:0 0 8.333333%;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-webkit-box-flex:0;-webkit-flex:0 0 16.666667%;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-webkit-box-flex:0;-webkit-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;-webkit-flex:0 0 33.333333%;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-webkit-box-flex:0;-webkit-flex:0 0 41.666667%;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-webkit-box-flex:0;-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;-webkit-flex:0 0 58.333333%;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-webkit-box-flex:0;-webkit-flex:0 0 66.666667%;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-webkit-box-flex:0;-webkit-flex:0 0 75%;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;-webkit-flex:0 0 83.333333%;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-webkit-box-flex:0;-webkit-flex:0 0 91.666667%;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.pull-xl-0{right:auto}.pull-xl-1{right:8.333333%}.pull-xl-2{right:16.666667%}.pull-xl-3{right:25%}.pull-xl-4{right:33.333333%}.pull-xl-5{right:41.666667%}.pull-xl-6{right:50%}.pull-xl-7{right:58.333333%}.pull-xl-8{right:66.666667%}.pull-xl-9{right:75%}.pull-xl-10{right:83.333333%}.pull-xl-11{right:91.666667%}.pull-xl-12{right:100%}.push-xl-0{left:auto}.push-xl-1{left:8.333333%}.push-xl-2{left:16.666667%}.push-xl-3{left:25%}.push-xl-4{left:33.333333%}.push-xl-5{left:41.666667%}.push-xl-6{left:50%}.push-xl-7{left:58.333333%}.push-xl-8{left:66.666667%}.push-xl-9{left:75%}.push-xl-10{left:83.333333%}.push-xl-11{left:91.666667%}.push-xl-12{left:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}/*# sourceMappingURL=bootstrap-grid.min.css.map */
--------------------------------------------------------------------------------
/web/src/assets/css/bootstrap-grid.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["../../scss/bootstrap-grid.scss","bootstrap-grid.css","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/_variables.scss","../../scss/mixins/_grid-framework.scss"],"names":[],"mappings":"AAUE;EAAgB,oBAAmB;CCRpC;;ADWD;EACE,+BAAsB;UAAtB,uBAAsB;EACtB,8BAA6B;CAC9B;;AAED;;;EAGE,4BAAmB;UAAnB,oBAAmB;CACpB;;AEjBC;ECAA,mBAAkB;EAClB,kBAAiB;EACjB,mBAAkB;EAKd,oBAA4B;EAC5B,mBAA4B;CDL/B;;AEgDC;EFnDF;ICOI,oBAA4B;IAC5B,mBAA4B;GDL/B;CDoBF;;AG4BG;EFnDF;ICOI,oBAA4B;IAC5B,mBAA4B;GDL/B;CD2BF;;AGqBG;EFnDF;ICOI,oBAA4B;IAC5B,mBAA4B;GDL/B;CDkCF;;AGcG;EFnDF;ICOI,oBAA4B;IAC5B,mBAA4B;GDL/B;CDyCF;;AGOG;EFnDF;ICkBI,aEqMK;IFpML,gBAAe;GDhBlB;CDgDF;;AGAG;EFnDF;ICkBI,aEsMK;IFrML,gBAAe;GDhBlB;CDuDF;;AGPG;EFnDF;ICkBI,aEuMK;IFtML,gBAAe;GDhBlB;CD8DF;;AGdG;EFnDF;ICkBI,cEwMM;IFvMN,gBAAe;GDhBlB;CDqEF;;AC5DC;ECZA,mBAAkB;EAClB,kBAAiB;EACjB,mBAAkB;EAKd,oBAA4B;EAC5B,mBAA4B;CDM/B;;AEqCC;EFvCF;ICLI,oBAA4B;IAC5B,mBAA4B;GDM/B;CDyEF;;AGpCG;EFvCF;ICLI,oBAA4B;IAC5B,mBAA4B;GDM/B;CDgFF;;AG3CG;EFvCF;ICLI,oBAA4B;IAC5B,mBAA4B;GDM/B;CDuFF;;AGlDG;EFvCF;ICLI,oBAA4B;IAC5B,mBAA4B;GDM/B;CD8FF;;ACtFC;ECaA,qBAAa;EAAb,sBAAa;EAAb,qBAAa;EAAb,cAAa;EACb,wBAAe;MAAf,oBAAe;UAAf,gBAAe;EAKX,oBAA4B;EAC5B,mBAA4B;CDlB/B;;AE2BC;EF7BF;ICmBI,oBAA4B;IAC5B,mBAA4B;GDlB/B;CDkGF;;AGvEG;EF7BF;ICmBI,oBAA4B;IAC5B,mBAA4B;GDlB/B;CDyGF;;AG9EG;EF7BF;ICmBI,oBAA4B;IAC5B,mBAA4B;GDlB/B;CDgHF;;AGrFG;EF7BF;ICmBI,oBAA4B;IAC5B,mBAA4B;GDlB/B;CDuHF;;ACnHC;EACE,gBAAe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AiD;GGrCxC;EAFD;IHuCR,kBAAiD;GGrCxC;EAFD;IHuCR,WAAiD;GGrCxC;EAFD;IHuCR,kBAAiD;GGrCxC;EAFD;IHuCR,kBAAiD;GGrCxC;EAFD;IHuCR,WAAiD;GGrCxC;EAFD;IHuCR,kBAAiD;GGrCxC;EAFD;IHuCR,kBAAiD;GGrCxC;EAFD;IHuCR,WAAiD;GGrCxC;EAFD;IHuCR,kBAAiD;GGrCxC;EAFD;IHuCR,kBAAiD;GGrCxC;EAFD;IHuCR,YAAiD;GGrCxC;EAFD;IHmCR,WAAsD;GGjC7C;EAFD;IHmCR,gBAAgD;GGjCvC;EAFD;IHmCR,iBAAgD;GGjCvC;EAFD;IHmCR,UAAgD;GGjCvC;EAFD;IHmCR,iBAAgD;GGjCvC;EAFD;IHmCR,iBAAgD;GGjCvC;EAFD;IHmCR,UAAgD;GGjCvC;EAFD;IHmCR,iBAAgD;GGjCvC;EAFD;IHmCR,iBAAgD;GGjCvC;EAFD;IHmCR,UAAgD;GGjCvC;EAFD;IHmCR,iBAAgD;GGjCvC;EAFD;IHmCR,iBAAgD;GGjCvC;EAFD;IHmCR,WAAgD;GGjCvC;EAOD;IHsBR,gBAAyC;GGpBhC;EAFD;IHsBR,uBAAyC;GGpBhC;EAFD;IHsBR,wBAAyC;GGpBhC;EAFD;IHsBR,iBAAyC;GGpBhC;EAFD;IHsBR,wBAAyC;GGpBhC;EAFD;IHsBR,wBAAyC;GGpBhC;EAFD;IHsBR,iBAAyC;GGpBhC;EAFD;IHsBR,wBAAyC;GGpBhC;EAFD;IHsBR,wBAAyC;GGpBhC;EAFD;IHsBR,iBAAyC;GGpBhC;EAFD;IHsBR,wBAAyC;GGpBhC;EAFD;IHsBR,wBAAyC;GGpBhC;CL2hCV","file":"bootstrap-grid.css","sourcesContent":[null,"@-ms-viewport {\n width: device-width;\n}\n\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n.container {\n position: relative;\n margin-left: auto;\n margin-right: auto;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n@media (min-width: 576px) {\n .container {\n padding-right: 15px;\n padding-left: 15px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n padding-right: 15px;\n padding-left: 15px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n padding-right: 15px;\n padding-left: 15px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n padding-right: 15px;\n padding-left: 15px;\n }\n}\n\n@media (min-width: 576px) {\n .container {\n width: 540px;\n max-width: 100%;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n width: 720px;\n max-width: 100%;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n width: 960px;\n max-width: 100%;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n width: 1140px;\n max-width: 100%;\n }\n}\n\n.container-fluid {\n position: relative;\n margin-left: auto;\n margin-right: auto;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n@media (min-width: 576px) {\n .container-fluid {\n padding-right: 15px;\n padding-left: 15px;\n }\n}\n\n@media (min-width: 768px) {\n .container-fluid {\n padding-right: 15px;\n padding-left: 15px;\n }\n}\n\n@media (min-width: 992px) {\n .container-fluid {\n padding-right: 15px;\n padding-left: 15px;\n }\n}\n\n@media (min-width: 1200px) {\n .container-fluid {\n padding-right: 15px;\n padding-left: 15px;\n }\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n@media (min-width: 576px) {\n .row {\n margin-right: -15px;\n margin-left: -15px;\n }\n}\n\n@media (min-width: 768px) {\n .row {\n margin-right: -15px;\n margin-left: -15px;\n }\n}\n\n@media (min-width: 992px) {\n .row {\n margin-right: -15px;\n margin-left: -15px;\n }\n}\n\n@media (min-width: 1200px) {\n .row {\n margin-right: -15px;\n margin-left: -15px;\n }\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl {\n position: relative;\n width: 100%;\n min-height: 1px;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n@media (min-width: 576px) {\n .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl {\n padding-right: 15px;\n padding-left: 15px;\n }\n}\n\n@media (min-width: 768px) {\n .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl {\n padding-right: 15px;\n padding-left: 15px;\n }\n}\n\n@media (min-width: 992px) {\n .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl {\n padding-right: 15px;\n padding-left: 15px;\n }\n}\n\n@media (min-width: 1200px) {\n .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl {\n padding-right: 15px;\n padding-left: 15px;\n }\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.pull-0 {\n right: auto;\n}\n\n.pull-1 {\n right: 8.333333%;\n}\n\n.pull-2 {\n right: 16.666667%;\n}\n\n.pull-3 {\n right: 25%;\n}\n\n.pull-4 {\n right: 33.333333%;\n}\n\n.pull-5 {\n right: 41.666667%;\n}\n\n.pull-6 {\n right: 50%;\n}\n\n.pull-7 {\n right: 58.333333%;\n}\n\n.pull-8 {\n right: 66.666667%;\n}\n\n.pull-9 {\n right: 75%;\n}\n\n.pull-10 {\n right: 83.333333%;\n}\n\n.pull-11 {\n right: 91.666667%;\n}\n\n.pull-12 {\n right: 100%;\n}\n\n.push-0 {\n left: auto;\n}\n\n.push-1 {\n left: 8.333333%;\n}\n\n.push-2 {\n left: 16.666667%;\n}\n\n.push-3 {\n left: 25%;\n}\n\n.push-4 {\n left: 33.333333%;\n}\n\n.push-5 {\n left: 41.666667%;\n}\n\n.push-6 {\n left: 50%;\n}\n\n.push-7 {\n left: 58.333333%;\n}\n\n.push-8 {\n left: 66.666667%;\n}\n\n.push-9 {\n left: 75%;\n}\n\n.push-10 {\n left: 83.333333%;\n}\n\n.push-11 {\n left: 91.666667%;\n}\n\n.push-12 {\n left: 100%;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .pull-sm-0 {\n right: auto;\n }\n .pull-sm-1 {\n right: 8.333333%;\n }\n .pull-sm-2 {\n right: 16.666667%;\n }\n .pull-sm-3 {\n right: 25%;\n }\n .pull-sm-4 {\n right: 33.333333%;\n }\n .pull-sm-5 {\n right: 41.666667%;\n }\n .pull-sm-6 {\n right: 50%;\n }\n .pull-sm-7 {\n right: 58.333333%;\n }\n .pull-sm-8 {\n right: 66.666667%;\n }\n .pull-sm-9 {\n right: 75%;\n }\n .pull-sm-10 {\n right: 83.333333%;\n }\n .pull-sm-11 {\n right: 91.666667%;\n }\n .pull-sm-12 {\n right: 100%;\n }\n .push-sm-0 {\n left: auto;\n }\n .push-sm-1 {\n left: 8.333333%;\n }\n .push-sm-2 {\n left: 16.666667%;\n }\n .push-sm-3 {\n left: 25%;\n }\n .push-sm-4 {\n left: 33.333333%;\n }\n .push-sm-5 {\n left: 41.666667%;\n }\n .push-sm-6 {\n left: 50%;\n }\n .push-sm-7 {\n left: 58.333333%;\n }\n .push-sm-8 {\n left: 66.666667%;\n }\n .push-sm-9 {\n left: 75%;\n }\n .push-sm-10 {\n left: 83.333333%;\n }\n .push-sm-11 {\n left: 91.666667%;\n }\n .push-sm-12 {\n left: 100%;\n }\n .offset-sm-0 {\n margin-left: 0%;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .pull-md-0 {\n right: auto;\n }\n .pull-md-1 {\n right: 8.333333%;\n }\n .pull-md-2 {\n right: 16.666667%;\n }\n .pull-md-3 {\n right: 25%;\n }\n .pull-md-4 {\n right: 33.333333%;\n }\n .pull-md-5 {\n right: 41.666667%;\n }\n .pull-md-6 {\n right: 50%;\n }\n .pull-md-7 {\n right: 58.333333%;\n }\n .pull-md-8 {\n right: 66.666667%;\n }\n .pull-md-9 {\n right: 75%;\n }\n .pull-md-10 {\n right: 83.333333%;\n }\n .pull-md-11 {\n right: 91.666667%;\n }\n .pull-md-12 {\n right: 100%;\n }\n .push-md-0 {\n left: auto;\n }\n .push-md-1 {\n left: 8.333333%;\n }\n .push-md-2 {\n left: 16.666667%;\n }\n .push-md-3 {\n left: 25%;\n }\n .push-md-4 {\n left: 33.333333%;\n }\n .push-md-5 {\n left: 41.666667%;\n }\n .push-md-6 {\n left: 50%;\n }\n .push-md-7 {\n left: 58.333333%;\n }\n .push-md-8 {\n left: 66.666667%;\n }\n .push-md-9 {\n left: 75%;\n }\n .push-md-10 {\n left: 83.333333%;\n }\n .push-md-11 {\n left: 91.666667%;\n }\n .push-md-12 {\n left: 100%;\n }\n .offset-md-0 {\n margin-left: 0%;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .pull-lg-0 {\n right: auto;\n }\n .pull-lg-1 {\n right: 8.333333%;\n }\n .pull-lg-2 {\n right: 16.666667%;\n }\n .pull-lg-3 {\n right: 25%;\n }\n .pull-lg-4 {\n right: 33.333333%;\n }\n .pull-lg-5 {\n right: 41.666667%;\n }\n .pull-lg-6 {\n right: 50%;\n }\n .pull-lg-7 {\n right: 58.333333%;\n }\n .pull-lg-8 {\n right: 66.666667%;\n }\n .pull-lg-9 {\n right: 75%;\n }\n .pull-lg-10 {\n right: 83.333333%;\n }\n .pull-lg-11 {\n right: 91.666667%;\n }\n .pull-lg-12 {\n right: 100%;\n }\n .push-lg-0 {\n left: auto;\n }\n .push-lg-1 {\n left: 8.333333%;\n }\n .push-lg-2 {\n left: 16.666667%;\n }\n .push-lg-3 {\n left: 25%;\n }\n .push-lg-4 {\n left: 33.333333%;\n }\n .push-lg-5 {\n left: 41.666667%;\n }\n .push-lg-6 {\n left: 50%;\n }\n .push-lg-7 {\n left: 58.333333%;\n }\n .push-lg-8 {\n left: 66.666667%;\n }\n .push-lg-9 {\n left: 75%;\n }\n .push-lg-10 {\n left: 83.333333%;\n }\n .push-lg-11 {\n left: 91.666667%;\n }\n .push-lg-12 {\n left: 100%;\n }\n .offset-lg-0 {\n margin-left: 0%;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .pull-xl-0 {\n right: auto;\n }\n .pull-xl-1 {\n right: 8.333333%;\n }\n .pull-xl-2 {\n right: 16.666667%;\n }\n .pull-xl-3 {\n right: 25%;\n }\n .pull-xl-4 {\n right: 33.333333%;\n }\n .pull-xl-5 {\n right: 41.666667%;\n }\n .pull-xl-6 {\n right: 50%;\n }\n .pull-xl-7 {\n right: 58.333333%;\n }\n .pull-xl-8 {\n right: 66.666667%;\n }\n .pull-xl-9 {\n right: 75%;\n }\n .pull-xl-10 {\n right: 83.333333%;\n }\n .pull-xl-11 {\n right: 91.666667%;\n }\n .pull-xl-12 {\n right: 100%;\n }\n .push-xl-0 {\n left: auto;\n }\n .push-xl-1 {\n left: 8.333333%;\n }\n .push-xl-2 {\n left: 16.666667%;\n }\n .push-xl-3 {\n left: 25%;\n }\n .push-xl-4 {\n left: 33.333333%;\n }\n .push-xl-5 {\n left: 41.666667%;\n }\n .push-xl-6 {\n left: 50%;\n }\n .push-xl-7 {\n left: 58.333333%;\n }\n .push-xl-8 {\n left: 66.666667%;\n }\n .push-xl-9 {\n left: 75%;\n }\n .push-xl-10 {\n left: 83.333333%;\n }\n .push-xl-11 {\n left: 91.666667%;\n }\n .push-xl-12 {\n left: 100%;\n }\n .offset-xl-0 {\n margin-left: 0%;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n/*# sourceMappingURL=bootstrap-grid.css.map */",null,null,null,null,null]}
--------------------------------------------------------------------------------
/web/src/assets/css/bootstrap-grid.css:
--------------------------------------------------------------------------------
1 | @-ms-viewport {
2 | width: device-width;
3 | }
4 |
5 | html {
6 | -webkit-box-sizing: border-box;
7 | box-sizing: border-box;
8 | -ms-overflow-style: scrollbar;
9 | }
10 |
11 | *,
12 | *::before,
13 | *::after {
14 | -webkit-box-sizing: inherit;
15 | box-sizing: inherit;
16 | }
17 |
18 | .container {
19 | position: relative;
20 | margin-left: auto;
21 | margin-right: auto;
22 | padding-right: 15px;
23 | padding-left: 15px;
24 | }
25 |
26 | @media (min-width: 576px) {
27 | .container {
28 | padding-right: 15px;
29 | padding-left: 15px;
30 | }
31 | }
32 |
33 | @media (min-width: 768px) {
34 | .container {
35 | padding-right: 15px;
36 | padding-left: 15px;
37 | }
38 | }
39 |
40 | @media (min-width: 992px) {
41 | .container {
42 | padding-right: 15px;
43 | padding-left: 15px;
44 | }
45 | }
46 |
47 | @media (min-width: 1200px) {
48 | .container {
49 | padding-right: 15px;
50 | padding-left: 15px;
51 | }
52 | }
53 |
54 | @media (min-width: 576px) {
55 | .container {
56 | width: 540px;
57 | max-width: 100%;
58 | }
59 | }
60 |
61 | @media (min-width: 768px) {
62 | .container {
63 | width: 720px;
64 | max-width: 100%;
65 | }
66 | }
67 |
68 | @media (min-width: 992px) {
69 | .container {
70 | width: 960px;
71 | max-width: 100%;
72 | }
73 | }
74 |
75 | @media (min-width: 1200px) {
76 | .container {
77 | width: 1140px;
78 | max-width: 100%;
79 | }
80 | }
81 |
82 | .container-fluid {
83 | position: relative;
84 | margin-left: auto;
85 | margin-right: auto;
86 | padding-right: 15px;
87 | padding-left: 15px;
88 | }
89 |
90 | @media (min-width: 576px) {
91 | .container-fluid {
92 | padding-right: 15px;
93 | padding-left: 15px;
94 | }
95 | }
96 |
97 | @media (min-width: 768px) {
98 | .container-fluid {
99 | padding-right: 15px;
100 | padding-left: 15px;
101 | }
102 | }
103 |
104 | @media (min-width: 992px) {
105 | .container-fluid {
106 | padding-right: 15px;
107 | padding-left: 15px;
108 | }
109 | }
110 |
111 | @media (min-width: 1200px) {
112 | .container-fluid {
113 | padding-right: 15px;
114 | padding-left: 15px;
115 | }
116 | }
117 |
118 | .row {
119 | display: -webkit-box;
120 | display: -webkit-flex;
121 | display: -ms-flexbox;
122 | display: flex;
123 | -webkit-flex-wrap: wrap;
124 | -ms-flex-wrap: wrap;
125 | flex-wrap: wrap;
126 | margin-right: -15px;
127 | margin-left: -15px;
128 | }
129 |
130 | @media (min-width: 576px) {
131 | .row {
132 | margin-right: -15px;
133 | margin-left: -15px;
134 | }
135 | }
136 |
137 | @media (min-width: 768px) {
138 | .row {
139 | margin-right: -15px;
140 | margin-left: -15px;
141 | }
142 | }
143 |
144 | @media (min-width: 992px) {
145 | .row {
146 | margin-right: -15px;
147 | margin-left: -15px;
148 | }
149 | }
150 |
151 | @media (min-width: 1200px) {
152 | .row {
153 | margin-right: -15px;
154 | margin-left: -15px;
155 | }
156 | }
157 |
158 | .no-gutters {
159 | margin-right: 0;
160 | margin-left: 0;
161 | }
162 |
163 | .no-gutters > .col,
164 | .no-gutters > [class*="col-"] {
165 | padding-right: 0;
166 | padding-left: 0;
167 | }
168 |
169 | .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl {
170 | position: relative;
171 | width: 100%;
172 | min-height: 1px;
173 | padding-right: 15px;
174 | padding-left: 15px;
175 | }
176 |
177 | @media (min-width: 576px) {
178 | .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl {
179 | padding-right: 15px;
180 | padding-left: 15px;
181 | }
182 | }
183 |
184 | @media (min-width: 768px) {
185 | .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl {
186 | padding-right: 15px;
187 | padding-left: 15px;
188 | }
189 | }
190 |
191 | @media (min-width: 992px) {
192 | .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl {
193 | padding-right: 15px;
194 | padding-left: 15px;
195 | }
196 | }
197 |
198 | @media (min-width: 1200px) {
199 | .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl {
200 | padding-right: 15px;
201 | padding-left: 15px;
202 | }
203 | }
204 |
205 | .col {
206 | -webkit-flex-basis: 0;
207 | -ms-flex-preferred-size: 0;
208 | flex-basis: 0;
209 | -webkit-box-flex: 1;
210 | -webkit-flex-grow: 1;
211 | -ms-flex-positive: 1;
212 | flex-grow: 1;
213 | max-width: 100%;
214 | }
215 |
216 | .col-auto {
217 | -webkit-box-flex: 0;
218 | -webkit-flex: 0 0 auto;
219 | -ms-flex: 0 0 auto;
220 | flex: 0 0 auto;
221 | width: auto;
222 | }
223 |
224 | .col-1 {
225 | -webkit-box-flex: 0;
226 | -webkit-flex: 0 0 8.333333%;
227 | -ms-flex: 0 0 8.333333%;
228 | flex: 0 0 8.333333%;
229 | max-width: 8.333333%;
230 | }
231 |
232 | .col-2 {
233 | -webkit-box-flex: 0;
234 | -webkit-flex: 0 0 16.666667%;
235 | -ms-flex: 0 0 16.666667%;
236 | flex: 0 0 16.666667%;
237 | max-width: 16.666667%;
238 | }
239 |
240 | .col-3 {
241 | -webkit-box-flex: 0;
242 | -webkit-flex: 0 0 25%;
243 | -ms-flex: 0 0 25%;
244 | flex: 0 0 25%;
245 | max-width: 25%;
246 | }
247 |
248 | .col-4 {
249 | -webkit-box-flex: 0;
250 | -webkit-flex: 0 0 33.333333%;
251 | -ms-flex: 0 0 33.333333%;
252 | flex: 0 0 33.333333%;
253 | max-width: 33.333333%;
254 | }
255 |
256 | .col-5 {
257 | -webkit-box-flex: 0;
258 | -webkit-flex: 0 0 41.666667%;
259 | -ms-flex: 0 0 41.666667%;
260 | flex: 0 0 41.666667%;
261 | max-width: 41.666667%;
262 | }
263 |
264 | .col-6 {
265 | -webkit-box-flex: 0;
266 | -webkit-flex: 0 0 50%;
267 | -ms-flex: 0 0 50%;
268 | flex: 0 0 50%;
269 | max-width: 50%;
270 | }
271 |
272 | .col-7 {
273 | -webkit-box-flex: 0;
274 | -webkit-flex: 0 0 58.333333%;
275 | -ms-flex: 0 0 58.333333%;
276 | flex: 0 0 58.333333%;
277 | max-width: 58.333333%;
278 | }
279 |
280 | .col-8 {
281 | -webkit-box-flex: 0;
282 | -webkit-flex: 0 0 66.666667%;
283 | -ms-flex: 0 0 66.666667%;
284 | flex: 0 0 66.666667%;
285 | max-width: 66.666667%;
286 | }
287 |
288 | .col-9 {
289 | -webkit-box-flex: 0;
290 | -webkit-flex: 0 0 75%;
291 | -ms-flex: 0 0 75%;
292 | flex: 0 0 75%;
293 | max-width: 75%;
294 | }
295 |
296 | .col-10 {
297 | -webkit-box-flex: 0;
298 | -webkit-flex: 0 0 83.333333%;
299 | -ms-flex: 0 0 83.333333%;
300 | flex: 0 0 83.333333%;
301 | max-width: 83.333333%;
302 | }
303 |
304 | .col-11 {
305 | -webkit-box-flex: 0;
306 | -webkit-flex: 0 0 91.666667%;
307 | -ms-flex: 0 0 91.666667%;
308 | flex: 0 0 91.666667%;
309 | max-width: 91.666667%;
310 | }
311 |
312 | .col-12 {
313 | -webkit-box-flex: 0;
314 | -webkit-flex: 0 0 100%;
315 | -ms-flex: 0 0 100%;
316 | flex: 0 0 100%;
317 | max-width: 100%;
318 | }
319 |
320 | .pull-0 {
321 | right: auto;
322 | }
323 |
324 | .pull-1 {
325 | right: 8.333333%;
326 | }
327 |
328 | .pull-2 {
329 | right: 16.666667%;
330 | }
331 |
332 | .pull-3 {
333 | right: 25%;
334 | }
335 |
336 | .pull-4 {
337 | right: 33.333333%;
338 | }
339 |
340 | .pull-5 {
341 | right: 41.666667%;
342 | }
343 |
344 | .pull-6 {
345 | right: 50%;
346 | }
347 |
348 | .pull-7 {
349 | right: 58.333333%;
350 | }
351 |
352 | .pull-8 {
353 | right: 66.666667%;
354 | }
355 |
356 | .pull-9 {
357 | right: 75%;
358 | }
359 |
360 | .pull-10 {
361 | right: 83.333333%;
362 | }
363 |
364 | .pull-11 {
365 | right: 91.666667%;
366 | }
367 |
368 | .pull-12 {
369 | right: 100%;
370 | }
371 |
372 | .push-0 {
373 | left: auto;
374 | }
375 |
376 | .push-1 {
377 | left: 8.333333%;
378 | }
379 |
380 | .push-2 {
381 | left: 16.666667%;
382 | }
383 |
384 | .push-3 {
385 | left: 25%;
386 | }
387 |
388 | .push-4 {
389 | left: 33.333333%;
390 | }
391 |
392 | .push-5 {
393 | left: 41.666667%;
394 | }
395 |
396 | .push-6 {
397 | left: 50%;
398 | }
399 |
400 | .push-7 {
401 | left: 58.333333%;
402 | }
403 |
404 | .push-8 {
405 | left: 66.666667%;
406 | }
407 |
408 | .push-9 {
409 | left: 75%;
410 | }
411 |
412 | .push-10 {
413 | left: 83.333333%;
414 | }
415 |
416 | .push-11 {
417 | left: 91.666667%;
418 | }
419 |
420 | .push-12 {
421 | left: 100%;
422 | }
423 |
424 | .offset-1 {
425 | margin-left: 8.333333%;
426 | }
427 |
428 | .offset-2 {
429 | margin-left: 16.666667%;
430 | }
431 |
432 | .offset-3 {
433 | margin-left: 25%;
434 | }
435 |
436 | .offset-4 {
437 | margin-left: 33.333333%;
438 | }
439 |
440 | .offset-5 {
441 | margin-left: 41.666667%;
442 | }
443 |
444 | .offset-6 {
445 | margin-left: 50%;
446 | }
447 |
448 | .offset-7 {
449 | margin-left: 58.333333%;
450 | }
451 |
452 | .offset-8 {
453 | margin-left: 66.666667%;
454 | }
455 |
456 | .offset-9 {
457 | margin-left: 75%;
458 | }
459 |
460 | .offset-10 {
461 | margin-left: 83.333333%;
462 | }
463 |
464 | .offset-11 {
465 | margin-left: 91.666667%;
466 | }
467 |
468 | @media (min-width: 576px) {
469 | .col-sm {
470 | -webkit-flex-basis: 0;
471 | -ms-flex-preferred-size: 0;
472 | flex-basis: 0;
473 | -webkit-box-flex: 1;
474 | -webkit-flex-grow: 1;
475 | -ms-flex-positive: 1;
476 | flex-grow: 1;
477 | max-width: 100%;
478 | }
479 | .col-sm-auto {
480 | -webkit-box-flex: 0;
481 | -webkit-flex: 0 0 auto;
482 | -ms-flex: 0 0 auto;
483 | flex: 0 0 auto;
484 | width: auto;
485 | }
486 | .col-sm-1 {
487 | -webkit-box-flex: 0;
488 | -webkit-flex: 0 0 8.333333%;
489 | -ms-flex: 0 0 8.333333%;
490 | flex: 0 0 8.333333%;
491 | max-width: 8.333333%;
492 | }
493 | .col-sm-2 {
494 | -webkit-box-flex: 0;
495 | -webkit-flex: 0 0 16.666667%;
496 | -ms-flex: 0 0 16.666667%;
497 | flex: 0 0 16.666667%;
498 | max-width: 16.666667%;
499 | }
500 | .col-sm-3 {
501 | -webkit-box-flex: 0;
502 | -webkit-flex: 0 0 25%;
503 | -ms-flex: 0 0 25%;
504 | flex: 0 0 25%;
505 | max-width: 25%;
506 | }
507 | .col-sm-4 {
508 | -webkit-box-flex: 0;
509 | -webkit-flex: 0 0 33.333333%;
510 | -ms-flex: 0 0 33.333333%;
511 | flex: 0 0 33.333333%;
512 | max-width: 33.333333%;
513 | }
514 | .col-sm-5 {
515 | -webkit-box-flex: 0;
516 | -webkit-flex: 0 0 41.666667%;
517 | -ms-flex: 0 0 41.666667%;
518 | flex: 0 0 41.666667%;
519 | max-width: 41.666667%;
520 | }
521 | .col-sm-6 {
522 | -webkit-box-flex: 0;
523 | -webkit-flex: 0 0 50%;
524 | -ms-flex: 0 0 50%;
525 | flex: 0 0 50%;
526 | max-width: 50%;
527 | }
528 | .col-sm-7 {
529 | -webkit-box-flex: 0;
530 | -webkit-flex: 0 0 58.333333%;
531 | -ms-flex: 0 0 58.333333%;
532 | flex: 0 0 58.333333%;
533 | max-width: 58.333333%;
534 | }
535 | .col-sm-8 {
536 | -webkit-box-flex: 0;
537 | -webkit-flex: 0 0 66.666667%;
538 | -ms-flex: 0 0 66.666667%;
539 | flex: 0 0 66.666667%;
540 | max-width: 66.666667%;
541 | }
542 | .col-sm-9 {
543 | -webkit-box-flex: 0;
544 | -webkit-flex: 0 0 75%;
545 | -ms-flex: 0 0 75%;
546 | flex: 0 0 75%;
547 | max-width: 75%;
548 | }
549 | .col-sm-10 {
550 | -webkit-box-flex: 0;
551 | -webkit-flex: 0 0 83.333333%;
552 | -ms-flex: 0 0 83.333333%;
553 | flex: 0 0 83.333333%;
554 | max-width: 83.333333%;
555 | }
556 | .col-sm-11 {
557 | -webkit-box-flex: 0;
558 | -webkit-flex: 0 0 91.666667%;
559 | -ms-flex: 0 0 91.666667%;
560 | flex: 0 0 91.666667%;
561 | max-width: 91.666667%;
562 | }
563 | .col-sm-12 {
564 | -webkit-box-flex: 0;
565 | -webkit-flex: 0 0 100%;
566 | -ms-flex: 0 0 100%;
567 | flex: 0 0 100%;
568 | max-width: 100%;
569 | }
570 | .pull-sm-0 {
571 | right: auto;
572 | }
573 | .pull-sm-1 {
574 | right: 8.333333%;
575 | }
576 | .pull-sm-2 {
577 | right: 16.666667%;
578 | }
579 | .pull-sm-3 {
580 | right: 25%;
581 | }
582 | .pull-sm-4 {
583 | right: 33.333333%;
584 | }
585 | .pull-sm-5 {
586 | right: 41.666667%;
587 | }
588 | .pull-sm-6 {
589 | right: 50%;
590 | }
591 | .pull-sm-7 {
592 | right: 58.333333%;
593 | }
594 | .pull-sm-8 {
595 | right: 66.666667%;
596 | }
597 | .pull-sm-9 {
598 | right: 75%;
599 | }
600 | .pull-sm-10 {
601 | right: 83.333333%;
602 | }
603 | .pull-sm-11 {
604 | right: 91.666667%;
605 | }
606 | .pull-sm-12 {
607 | right: 100%;
608 | }
609 | .push-sm-0 {
610 | left: auto;
611 | }
612 | .push-sm-1 {
613 | left: 8.333333%;
614 | }
615 | .push-sm-2 {
616 | left: 16.666667%;
617 | }
618 | .push-sm-3 {
619 | left: 25%;
620 | }
621 | .push-sm-4 {
622 | left: 33.333333%;
623 | }
624 | .push-sm-5 {
625 | left: 41.666667%;
626 | }
627 | .push-sm-6 {
628 | left: 50%;
629 | }
630 | .push-sm-7 {
631 | left: 58.333333%;
632 | }
633 | .push-sm-8 {
634 | left: 66.666667%;
635 | }
636 | .push-sm-9 {
637 | left: 75%;
638 | }
639 | .push-sm-10 {
640 | left: 83.333333%;
641 | }
642 | .push-sm-11 {
643 | left: 91.666667%;
644 | }
645 | .push-sm-12 {
646 | left: 100%;
647 | }
648 | .offset-sm-0 {
649 | margin-left: 0%;
650 | }
651 | .offset-sm-1 {
652 | margin-left: 8.333333%;
653 | }
654 | .offset-sm-2 {
655 | margin-left: 16.666667%;
656 | }
657 | .offset-sm-3 {
658 | margin-left: 25%;
659 | }
660 | .offset-sm-4 {
661 | margin-left: 33.333333%;
662 | }
663 | .offset-sm-5 {
664 | margin-left: 41.666667%;
665 | }
666 | .offset-sm-6 {
667 | margin-left: 50%;
668 | }
669 | .offset-sm-7 {
670 | margin-left: 58.333333%;
671 | }
672 | .offset-sm-8 {
673 | margin-left: 66.666667%;
674 | }
675 | .offset-sm-9 {
676 | margin-left: 75%;
677 | }
678 | .offset-sm-10 {
679 | margin-left: 83.333333%;
680 | }
681 | .offset-sm-11 {
682 | margin-left: 91.666667%;
683 | }
684 | }
685 |
686 | @media (min-width: 768px) {
687 | .col-md {
688 | -webkit-flex-basis: 0;
689 | -ms-flex-preferred-size: 0;
690 | flex-basis: 0;
691 | -webkit-box-flex: 1;
692 | -webkit-flex-grow: 1;
693 | -ms-flex-positive: 1;
694 | flex-grow: 1;
695 | max-width: 100%;
696 | }
697 | .col-md-auto {
698 | -webkit-box-flex: 0;
699 | -webkit-flex: 0 0 auto;
700 | -ms-flex: 0 0 auto;
701 | flex: 0 0 auto;
702 | width: auto;
703 | }
704 | .col-md-1 {
705 | -webkit-box-flex: 0;
706 | -webkit-flex: 0 0 8.333333%;
707 | -ms-flex: 0 0 8.333333%;
708 | flex: 0 0 8.333333%;
709 | max-width: 8.333333%;
710 | }
711 | .col-md-2 {
712 | -webkit-box-flex: 0;
713 | -webkit-flex: 0 0 16.666667%;
714 | -ms-flex: 0 0 16.666667%;
715 | flex: 0 0 16.666667%;
716 | max-width: 16.666667%;
717 | }
718 | .col-md-3 {
719 | -webkit-box-flex: 0;
720 | -webkit-flex: 0 0 25%;
721 | -ms-flex: 0 0 25%;
722 | flex: 0 0 25%;
723 | max-width: 25%;
724 | }
725 | .col-md-4 {
726 | -webkit-box-flex: 0;
727 | -webkit-flex: 0 0 33.333333%;
728 | -ms-flex: 0 0 33.333333%;
729 | flex: 0 0 33.333333%;
730 | max-width: 33.333333%;
731 | }
732 | .col-md-5 {
733 | -webkit-box-flex: 0;
734 | -webkit-flex: 0 0 41.666667%;
735 | -ms-flex: 0 0 41.666667%;
736 | flex: 0 0 41.666667%;
737 | max-width: 41.666667%;
738 | }
739 | .col-md-6 {
740 | -webkit-box-flex: 0;
741 | -webkit-flex: 0 0 50%;
742 | -ms-flex: 0 0 50%;
743 | flex: 0 0 50%;
744 | max-width: 50%;
745 | }
746 | .col-md-7 {
747 | -webkit-box-flex: 0;
748 | -webkit-flex: 0 0 58.333333%;
749 | -ms-flex: 0 0 58.333333%;
750 | flex: 0 0 58.333333%;
751 | max-width: 58.333333%;
752 | }
753 | .col-md-8 {
754 | -webkit-box-flex: 0;
755 | -webkit-flex: 0 0 66.666667%;
756 | -ms-flex: 0 0 66.666667%;
757 | flex: 0 0 66.666667%;
758 | max-width: 66.666667%;
759 | }
760 | .col-md-9 {
761 | -webkit-box-flex: 0;
762 | -webkit-flex: 0 0 75%;
763 | -ms-flex: 0 0 75%;
764 | flex: 0 0 75%;
765 | max-width: 75%;
766 | }
767 | .col-md-10 {
768 | -webkit-box-flex: 0;
769 | -webkit-flex: 0 0 83.333333%;
770 | -ms-flex: 0 0 83.333333%;
771 | flex: 0 0 83.333333%;
772 | max-width: 83.333333%;
773 | }
774 | .col-md-11 {
775 | -webkit-box-flex: 0;
776 | -webkit-flex: 0 0 91.666667%;
777 | -ms-flex: 0 0 91.666667%;
778 | flex: 0 0 91.666667%;
779 | max-width: 91.666667%;
780 | }
781 | .col-md-12 {
782 | -webkit-box-flex: 0;
783 | -webkit-flex: 0 0 100%;
784 | -ms-flex: 0 0 100%;
785 | flex: 0 0 100%;
786 | max-width: 100%;
787 | }
788 | .pull-md-0 {
789 | right: auto;
790 | }
791 | .pull-md-1 {
792 | right: 8.333333%;
793 | }
794 | .pull-md-2 {
795 | right: 16.666667%;
796 | }
797 | .pull-md-3 {
798 | right: 25%;
799 | }
800 | .pull-md-4 {
801 | right: 33.333333%;
802 | }
803 | .pull-md-5 {
804 | right: 41.666667%;
805 | }
806 | .pull-md-6 {
807 | right: 50%;
808 | }
809 | .pull-md-7 {
810 | right: 58.333333%;
811 | }
812 | .pull-md-8 {
813 | right: 66.666667%;
814 | }
815 | .pull-md-9 {
816 | right: 75%;
817 | }
818 | .pull-md-10 {
819 | right: 83.333333%;
820 | }
821 | .pull-md-11 {
822 | right: 91.666667%;
823 | }
824 | .pull-md-12 {
825 | right: 100%;
826 | }
827 | .push-md-0 {
828 | left: auto;
829 | }
830 | .push-md-1 {
831 | left: 8.333333%;
832 | }
833 | .push-md-2 {
834 | left: 16.666667%;
835 | }
836 | .push-md-3 {
837 | left: 25%;
838 | }
839 | .push-md-4 {
840 | left: 33.333333%;
841 | }
842 | .push-md-5 {
843 | left: 41.666667%;
844 | }
845 | .push-md-6 {
846 | left: 50%;
847 | }
848 | .push-md-7 {
849 | left: 58.333333%;
850 | }
851 | .push-md-8 {
852 | left: 66.666667%;
853 | }
854 | .push-md-9 {
855 | left: 75%;
856 | }
857 | .push-md-10 {
858 | left: 83.333333%;
859 | }
860 | .push-md-11 {
861 | left: 91.666667%;
862 | }
863 | .push-md-12 {
864 | left: 100%;
865 | }
866 | .offset-md-0 {
867 | margin-left: 0%;
868 | }
869 | .offset-md-1 {
870 | margin-left: 8.333333%;
871 | }
872 | .offset-md-2 {
873 | margin-left: 16.666667%;
874 | }
875 | .offset-md-3 {
876 | margin-left: 25%;
877 | }
878 | .offset-md-4 {
879 | margin-left: 33.333333%;
880 | }
881 | .offset-md-5 {
882 | margin-left: 41.666667%;
883 | }
884 | .offset-md-6 {
885 | margin-left: 50%;
886 | }
887 | .offset-md-7 {
888 | margin-left: 58.333333%;
889 | }
890 | .offset-md-8 {
891 | margin-left: 66.666667%;
892 | }
893 | .offset-md-9 {
894 | margin-left: 75%;
895 | }
896 | .offset-md-10 {
897 | margin-left: 83.333333%;
898 | }
899 | .offset-md-11 {
900 | margin-left: 91.666667%;
901 | }
902 | }
903 |
904 | @media (min-width: 992px) {
905 | .col-lg {
906 | -webkit-flex-basis: 0;
907 | -ms-flex-preferred-size: 0;
908 | flex-basis: 0;
909 | -webkit-box-flex: 1;
910 | -webkit-flex-grow: 1;
911 | -ms-flex-positive: 1;
912 | flex-grow: 1;
913 | max-width: 100%;
914 | }
915 | .col-lg-auto {
916 | -webkit-box-flex: 0;
917 | -webkit-flex: 0 0 auto;
918 | -ms-flex: 0 0 auto;
919 | flex: 0 0 auto;
920 | width: auto;
921 | }
922 | .col-lg-1 {
923 | -webkit-box-flex: 0;
924 | -webkit-flex: 0 0 8.333333%;
925 | -ms-flex: 0 0 8.333333%;
926 | flex: 0 0 8.333333%;
927 | max-width: 8.333333%;
928 | }
929 | .col-lg-2 {
930 | -webkit-box-flex: 0;
931 | -webkit-flex: 0 0 16.666667%;
932 | -ms-flex: 0 0 16.666667%;
933 | flex: 0 0 16.666667%;
934 | max-width: 16.666667%;
935 | }
936 | .col-lg-3 {
937 | -webkit-box-flex: 0;
938 | -webkit-flex: 0 0 25%;
939 | -ms-flex: 0 0 25%;
940 | flex: 0 0 25%;
941 | max-width: 25%;
942 | }
943 | .col-lg-4 {
944 | -webkit-box-flex: 0;
945 | -webkit-flex: 0 0 33.333333%;
946 | -ms-flex: 0 0 33.333333%;
947 | flex: 0 0 33.333333%;
948 | max-width: 33.333333%;
949 | }
950 | .col-lg-5 {
951 | -webkit-box-flex: 0;
952 | -webkit-flex: 0 0 41.666667%;
953 | -ms-flex: 0 0 41.666667%;
954 | flex: 0 0 41.666667%;
955 | max-width: 41.666667%;
956 | }
957 | .col-lg-6 {
958 | -webkit-box-flex: 0;
959 | -webkit-flex: 0 0 50%;
960 | -ms-flex: 0 0 50%;
961 | flex: 0 0 50%;
962 | max-width: 50%;
963 | }
964 | .col-lg-7 {
965 | -webkit-box-flex: 0;
966 | -webkit-flex: 0 0 58.333333%;
967 | -ms-flex: 0 0 58.333333%;
968 | flex: 0 0 58.333333%;
969 | max-width: 58.333333%;
970 | }
971 | .col-lg-8 {
972 | -webkit-box-flex: 0;
973 | -webkit-flex: 0 0 66.666667%;
974 | -ms-flex: 0 0 66.666667%;
975 | flex: 0 0 66.666667%;
976 | max-width: 66.666667%;
977 | }
978 | .col-lg-9 {
979 | -webkit-box-flex: 0;
980 | -webkit-flex: 0 0 75%;
981 | -ms-flex: 0 0 75%;
982 | flex: 0 0 75%;
983 | max-width: 75%;
984 | }
985 | .col-lg-10 {
986 | -webkit-box-flex: 0;
987 | -webkit-flex: 0 0 83.333333%;
988 | -ms-flex: 0 0 83.333333%;
989 | flex: 0 0 83.333333%;
990 | max-width: 83.333333%;
991 | }
992 | .col-lg-11 {
993 | -webkit-box-flex: 0;
994 | -webkit-flex: 0 0 91.666667%;
995 | -ms-flex: 0 0 91.666667%;
996 | flex: 0 0 91.666667%;
997 | max-width: 91.666667%;
998 | }
999 | .col-lg-12 {
1000 | -webkit-box-flex: 0;
1001 | -webkit-flex: 0 0 100%;
1002 | -ms-flex: 0 0 100%;
1003 | flex: 0 0 100%;
1004 | max-width: 100%;
1005 | }
1006 | .pull-lg-0 {
1007 | right: auto;
1008 | }
1009 | .pull-lg-1 {
1010 | right: 8.333333%;
1011 | }
1012 | .pull-lg-2 {
1013 | right: 16.666667%;
1014 | }
1015 | .pull-lg-3 {
1016 | right: 25%;
1017 | }
1018 | .pull-lg-4 {
1019 | right: 33.333333%;
1020 | }
1021 | .pull-lg-5 {
1022 | right: 41.666667%;
1023 | }
1024 | .pull-lg-6 {
1025 | right: 50%;
1026 | }
1027 | .pull-lg-7 {
1028 | right: 58.333333%;
1029 | }
1030 | .pull-lg-8 {
1031 | right: 66.666667%;
1032 | }
1033 | .pull-lg-9 {
1034 | right: 75%;
1035 | }
1036 | .pull-lg-10 {
1037 | right: 83.333333%;
1038 | }
1039 | .pull-lg-11 {
1040 | right: 91.666667%;
1041 | }
1042 | .pull-lg-12 {
1043 | right: 100%;
1044 | }
1045 | .push-lg-0 {
1046 | left: auto;
1047 | }
1048 | .push-lg-1 {
1049 | left: 8.333333%;
1050 | }
1051 | .push-lg-2 {
1052 | left: 16.666667%;
1053 | }
1054 | .push-lg-3 {
1055 | left: 25%;
1056 | }
1057 | .push-lg-4 {
1058 | left: 33.333333%;
1059 | }
1060 | .push-lg-5 {
1061 | left: 41.666667%;
1062 | }
1063 | .push-lg-6 {
1064 | left: 50%;
1065 | }
1066 | .push-lg-7 {
1067 | left: 58.333333%;
1068 | }
1069 | .push-lg-8 {
1070 | left: 66.666667%;
1071 | }
1072 | .push-lg-9 {
1073 | left: 75%;
1074 | }
1075 | .push-lg-10 {
1076 | left: 83.333333%;
1077 | }
1078 | .push-lg-11 {
1079 | left: 91.666667%;
1080 | }
1081 | .push-lg-12 {
1082 | left: 100%;
1083 | }
1084 | .offset-lg-0 {
1085 | margin-left: 0%;
1086 | }
1087 | .offset-lg-1 {
1088 | margin-left: 8.333333%;
1089 | }
1090 | .offset-lg-2 {
1091 | margin-left: 16.666667%;
1092 | }
1093 | .offset-lg-3 {
1094 | margin-left: 25%;
1095 | }
1096 | .offset-lg-4 {
1097 | margin-left: 33.333333%;
1098 | }
1099 | .offset-lg-5 {
1100 | margin-left: 41.666667%;
1101 | }
1102 | .offset-lg-6 {
1103 | margin-left: 50%;
1104 | }
1105 | .offset-lg-7 {
1106 | margin-left: 58.333333%;
1107 | }
1108 | .offset-lg-8 {
1109 | margin-left: 66.666667%;
1110 | }
1111 | .offset-lg-9 {
1112 | margin-left: 75%;
1113 | }
1114 | .offset-lg-10 {
1115 | margin-left: 83.333333%;
1116 | }
1117 | .offset-lg-11 {
1118 | margin-left: 91.666667%;
1119 | }
1120 | }
1121 |
1122 | @media (min-width: 1200px) {
1123 | .col-xl {
1124 | -webkit-flex-basis: 0;
1125 | -ms-flex-preferred-size: 0;
1126 | flex-basis: 0;
1127 | -webkit-box-flex: 1;
1128 | -webkit-flex-grow: 1;
1129 | -ms-flex-positive: 1;
1130 | flex-grow: 1;
1131 | max-width: 100%;
1132 | }
1133 | .col-xl-auto {
1134 | -webkit-box-flex: 0;
1135 | -webkit-flex: 0 0 auto;
1136 | -ms-flex: 0 0 auto;
1137 | flex: 0 0 auto;
1138 | width: auto;
1139 | }
1140 | .col-xl-1 {
1141 | -webkit-box-flex: 0;
1142 | -webkit-flex: 0 0 8.333333%;
1143 | -ms-flex: 0 0 8.333333%;
1144 | flex: 0 0 8.333333%;
1145 | max-width: 8.333333%;
1146 | }
1147 | .col-xl-2 {
1148 | -webkit-box-flex: 0;
1149 | -webkit-flex: 0 0 16.666667%;
1150 | -ms-flex: 0 0 16.666667%;
1151 | flex: 0 0 16.666667%;
1152 | max-width: 16.666667%;
1153 | }
1154 | .col-xl-3 {
1155 | -webkit-box-flex: 0;
1156 | -webkit-flex: 0 0 25%;
1157 | -ms-flex: 0 0 25%;
1158 | flex: 0 0 25%;
1159 | max-width: 25%;
1160 | }
1161 | .col-xl-4 {
1162 | -webkit-box-flex: 0;
1163 | -webkit-flex: 0 0 33.333333%;
1164 | -ms-flex: 0 0 33.333333%;
1165 | flex: 0 0 33.333333%;
1166 | max-width: 33.333333%;
1167 | }
1168 | .col-xl-5 {
1169 | -webkit-box-flex: 0;
1170 | -webkit-flex: 0 0 41.666667%;
1171 | -ms-flex: 0 0 41.666667%;
1172 | flex: 0 0 41.666667%;
1173 | max-width: 41.666667%;
1174 | }
1175 | .col-xl-6 {
1176 | -webkit-box-flex: 0;
1177 | -webkit-flex: 0 0 50%;
1178 | -ms-flex: 0 0 50%;
1179 | flex: 0 0 50%;
1180 | max-width: 50%;
1181 | }
1182 | .col-xl-7 {
1183 | -webkit-box-flex: 0;
1184 | -webkit-flex: 0 0 58.333333%;
1185 | -ms-flex: 0 0 58.333333%;
1186 | flex: 0 0 58.333333%;
1187 | max-width: 58.333333%;
1188 | }
1189 | .col-xl-8 {
1190 | -webkit-box-flex: 0;
1191 | -webkit-flex: 0 0 66.666667%;
1192 | -ms-flex: 0 0 66.666667%;
1193 | flex: 0 0 66.666667%;
1194 | max-width: 66.666667%;
1195 | }
1196 | .col-xl-9 {
1197 | -webkit-box-flex: 0;
1198 | -webkit-flex: 0 0 75%;
1199 | -ms-flex: 0 0 75%;
1200 | flex: 0 0 75%;
1201 | max-width: 75%;
1202 | }
1203 | .col-xl-10 {
1204 | -webkit-box-flex: 0;
1205 | -webkit-flex: 0 0 83.333333%;
1206 | -ms-flex: 0 0 83.333333%;
1207 | flex: 0 0 83.333333%;
1208 | max-width: 83.333333%;
1209 | }
1210 | .col-xl-11 {
1211 | -webkit-box-flex: 0;
1212 | -webkit-flex: 0 0 91.666667%;
1213 | -ms-flex: 0 0 91.666667%;
1214 | flex: 0 0 91.666667%;
1215 | max-width: 91.666667%;
1216 | }
1217 | .col-xl-12 {
1218 | -webkit-box-flex: 0;
1219 | -webkit-flex: 0 0 100%;
1220 | -ms-flex: 0 0 100%;
1221 | flex: 0 0 100%;
1222 | max-width: 100%;
1223 | }
1224 | .pull-xl-0 {
1225 | right: auto;
1226 | }
1227 | .pull-xl-1 {
1228 | right: 8.333333%;
1229 | }
1230 | .pull-xl-2 {
1231 | right: 16.666667%;
1232 | }
1233 | .pull-xl-3 {
1234 | right: 25%;
1235 | }
1236 | .pull-xl-4 {
1237 | right: 33.333333%;
1238 | }
1239 | .pull-xl-5 {
1240 | right: 41.666667%;
1241 | }
1242 | .pull-xl-6 {
1243 | right: 50%;
1244 | }
1245 | .pull-xl-7 {
1246 | right: 58.333333%;
1247 | }
1248 | .pull-xl-8 {
1249 | right: 66.666667%;
1250 | }
1251 | .pull-xl-9 {
1252 | right: 75%;
1253 | }
1254 | .pull-xl-10 {
1255 | right: 83.333333%;
1256 | }
1257 | .pull-xl-11 {
1258 | right: 91.666667%;
1259 | }
1260 | .pull-xl-12 {
1261 | right: 100%;
1262 | }
1263 | .push-xl-0 {
1264 | left: auto;
1265 | }
1266 | .push-xl-1 {
1267 | left: 8.333333%;
1268 | }
1269 | .push-xl-2 {
1270 | left: 16.666667%;
1271 | }
1272 | .push-xl-3 {
1273 | left: 25%;
1274 | }
1275 | .push-xl-4 {
1276 | left: 33.333333%;
1277 | }
1278 | .push-xl-5 {
1279 | left: 41.666667%;
1280 | }
1281 | .push-xl-6 {
1282 | left: 50%;
1283 | }
1284 | .push-xl-7 {
1285 | left: 58.333333%;
1286 | }
1287 | .push-xl-8 {
1288 | left: 66.666667%;
1289 | }
1290 | .push-xl-9 {
1291 | left: 75%;
1292 | }
1293 | .push-xl-10 {
1294 | left: 83.333333%;
1295 | }
1296 | .push-xl-11 {
1297 | left: 91.666667%;
1298 | }
1299 | .push-xl-12 {
1300 | left: 100%;
1301 | }
1302 | .offset-xl-0 {
1303 | margin-left: 0%;
1304 | }
1305 | .offset-xl-1 {
1306 | margin-left: 8.333333%;
1307 | }
1308 | .offset-xl-2 {
1309 | margin-left: 16.666667%;
1310 | }
1311 | .offset-xl-3 {
1312 | margin-left: 25%;
1313 | }
1314 | .offset-xl-4 {
1315 | margin-left: 33.333333%;
1316 | }
1317 | .offset-xl-5 {
1318 | margin-left: 41.666667%;
1319 | }
1320 | .offset-xl-6 {
1321 | margin-left: 50%;
1322 | }
1323 | .offset-xl-7 {
1324 | margin-left: 58.333333%;
1325 | }
1326 | .offset-xl-8 {
1327 | margin-left: 66.666667%;
1328 | }
1329 | .offset-xl-9 {
1330 | margin-left: 75%;
1331 | }
1332 | .offset-xl-10 {
1333 | margin-left: 83.333333%;
1334 | }
1335 | .offset-xl-11 {
1336 | margin-left: 91.666667%;
1337 | }
1338 | }
1339 | /*# sourceMappingURL=bootstrap-grid.css.map */
--------------------------------------------------------------------------------