├── .editorconfig ├── .ember-cli ├── .eslintignore ├── .eslintrc.js ├── .github └── workflows │ └── ci.yml ├── .gitignore ├── .npmignore ├── .prettierignore ├── .prettierrc.js ├── .template-lintrc.js ├── .watchmanconfig ├── CHANGELOG.md ├── CONTRIBUTING.md ├── LICENSE.md ├── README.md ├── RELEASE.md ├── addon └── .gitkeep ├── app └── .gitkeep ├── blueprints └── ember-cli-bootstrap-4 │ └── index.js ├── config ├── ember-try.js └── environment.js ├── ember-cli-build.js ├── index.js ├── jsconfig.json ├── package-lock.json ├── package.json ├── testem.js ├── tests ├── acceptance │ └── index-test.js ├── dummy │ ├── app │ │ ├── app.js │ │ ├── components │ │ │ └── .gitkeep │ │ ├── controllers │ │ │ └── .gitkeep │ │ ├── helpers │ │ │ └── .gitkeep │ │ ├── index.html │ │ ├── models │ │ │ └── .gitkeep │ │ ├── router.js │ │ ├── routes │ │ │ └── .gitkeep │ │ ├── styles │ │ │ └── app.scss │ │ └── templates │ │ │ └── application.hbs │ ├── config │ │ ├── ember-cli-update.json │ │ ├── environment.js │ │ ├── optional-features.json │ │ └── targets.js │ └── public │ │ ├── crossdomain.xml │ │ ├── images │ │ ├── apple-touch-icon.png │ │ └── favicon.ico │ │ └── robots.txt ├── helpers │ └── .gitkeep ├── index.html ├── integration │ └── .gitkeep ├── test-helper.js └── unit │ └── .gitkeep └── vendor └── .gitkeep /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig helps developers define and maintain consistent 2 | # coding styles between different editors and IDEs 3 | # editorconfig.org 4 | 5 | root = true 6 | 7 | [*] 8 | end_of_line = lf 9 | charset = utf-8 10 | trim_trailing_whitespace = true 11 | insert_final_newline = true 12 | indent_style = space 13 | indent_size = 2 14 | 15 | [*.hbs] 16 | insert_final_newline = false 17 | 18 | [*.{diff,md}] 19 | trim_trailing_whitespace = false 20 | -------------------------------------------------------------------------------- /.ember-cli: -------------------------------------------------------------------------------- 1 | { 2 | /** 3 | Ember CLI sends analytics information by default. The data is completely 4 | anonymous, but there are times when you might want to disable this behavior. 5 | 6 | Setting `disableAnalytics` to true will prevent any data from being sent. 7 | */ 8 | "disableAnalytics": false 9 | } 10 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | # unconventional js 2 | /blueprints/*/files/ 3 | /vendor/ 4 | 5 | # compiled output 6 | /dist/ 7 | /tmp/ 8 | 9 | # dependencies 10 | /bower_components/ 11 | /node_modules/ 12 | 13 | # misc 14 | /coverage/ 15 | !.* 16 | .*/ 17 | .eslintcache 18 | 19 | # ember-try 20 | /.node_modules.ember-try/ 21 | /bower.json.ember-try 22 | /package.json.ember-try 23 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = { 4 | root: true, 5 | parser: 'babel-eslint', 6 | parserOptions: { 7 | ecmaVersion: 2018, 8 | sourceType: 'module', 9 | ecmaFeatures: { 10 | legacyDecorators: true, 11 | }, 12 | }, 13 | plugins: ['ember'], 14 | extends: [ 15 | 'eslint:recommended', 16 | 'plugin:ember/recommended', 17 | 'plugin:prettier/recommended', 18 | ], 19 | env: { 20 | browser: true, 21 | }, 22 | rules: {}, 23 | overrides: [ 24 | // node files 25 | { 26 | files: [ 27 | './.eslintrc.js', 28 | './.prettierrc.js', 29 | './.template-lintrc.js', 30 | './ember-cli-build.js', 31 | './index.js', 32 | './testem.js', 33 | './blueprints/*/index.js', 34 | './config/**/*.js', 35 | './tests/dummy/config/**/*.js', 36 | ], 37 | parserOptions: { 38 | sourceType: 'script', 39 | }, 40 | env: { 41 | browser: false, 42 | node: true, 43 | }, 44 | plugins: ['node'], 45 | extends: ['plugin:node/recommended'], 46 | }, 47 | { 48 | // Test files: 49 | files: ['tests/**/*-test.{js,ts}'], 50 | extends: ['plugin:qunit/recommended'], 51 | }, 52 | ], 53 | }; 54 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | - master 8 | pull_request: {} 9 | 10 | concurrency: 11 | group: ci-${{ github.head_ref || github.ref }} 12 | cancel-in-progress: true 13 | 14 | jobs: 15 | test: 16 | name: "Tests" 17 | runs-on: ubuntu-latest 18 | 19 | steps: 20 | - uses: actions/checkout@v2 21 | - name: Install Node 22 | uses: actions/setup-node@v2 23 | with: 24 | node-version: 16.x 25 | cache: npm 26 | - name: Install Dependencies 27 | run: npm ci 28 | - name: Lint 29 | run: npm run lint 30 | - name: Run Tests 31 | run: npm run test:ember 32 | 33 | floating: 34 | name: "Floating Dependencies" 35 | runs-on: ubuntu-latest 36 | 37 | steps: 38 | - uses: actions/checkout@v2 39 | - uses: actions/setup-node@v2 40 | with: 41 | node-version: 16.x 42 | cache: npm 43 | - name: Install Dependencies 44 | run: npm install --no-shrinkwrap 45 | - name: Run Tests 46 | run: npm run test:ember 47 | 48 | try-scenarios: 49 | name: ${{ matrix.try-scenario }} 50 | runs-on: ubuntu-latest 51 | needs: 'test' 52 | 53 | strategy: 54 | fail-fast: false 55 | matrix: 56 | try-scenario: 57 | - ember-lts-3.24 58 | - ember-lts-3.28 59 | - ember-release 60 | - ember-beta 61 | - ember-canary 62 | - ember-classic 63 | - ember-default-with-jquery 64 | - embroider-safe 65 | - embroider-optimized 66 | 67 | steps: 68 | - uses: actions/checkout@v2 69 | - name: Install Node 70 | uses: actions/setup-node@v2 71 | with: 72 | node-version: 16.x 73 | cache: npm 74 | - name: Install Dependencies 75 | run: npm ci 76 | - name: Run Tests 77 | run: ./node_modules/.bin/ember try:one ${{ matrix.try-scenario }} 78 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # compiled output 4 | /dist/ 5 | /tmp/ 6 | 7 | # dependencies 8 | /bower_components/ 9 | /node_modules/ 10 | 11 | # misc 12 | /.env* 13 | /.pnp* 14 | /.sass-cache 15 | /.eslintcache 16 | /connect.lock 17 | /coverage/ 18 | /libpeerconnection.log 19 | /npm-debug.log* 20 | /testem.log 21 | /yarn-error.log 22 | 23 | # ember-try 24 | /.node_modules.ember-try/ 25 | /bower.json.ember-try 26 | /package.json.ember-try 27 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | # compiled output 2 | /dist/ 3 | /tmp/ 4 | 5 | # dependencies 6 | /bower_components/ 7 | 8 | # misc 9 | /.bowerrc 10 | /.editorconfig 11 | /.ember-cli 12 | /.env* 13 | /.eslintcache 14 | /.eslintignore 15 | /.eslintrc.js 16 | /.git/ 17 | /.gitignore 18 | /.prettierignore 19 | /.prettierrc.js 20 | /.template-lintrc.js 21 | /.travis.yml 22 | /.watchmanconfig 23 | /bower.json 24 | /config/ember-try.js 25 | /CONTRIBUTING.md 26 | /ember-cli-build.js 27 | /testem.js 28 | /tests/ 29 | /yarn-error.log 30 | /yarn.lock 31 | .gitkeep 32 | 33 | # ember-try 34 | /.node_modules.ember-try/ 35 | /bower.json.ember-try 36 | /package.json.ember-try 37 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | # unconventional js 2 | /blueprints/*/files/ 3 | /vendor/ 4 | 5 | # compiled output 6 | /dist/ 7 | /tmp/ 8 | 9 | # dependencies 10 | /bower_components/ 11 | /node_modules/ 12 | 13 | # misc 14 | /coverage/ 15 | !.* 16 | .eslintcache 17 | 18 | # ember-try 19 | /.node_modules.ember-try/ 20 | /bower.json.ember-try 21 | /package.json.ember-try 22 | -------------------------------------------------------------------------------- /.prettierrc.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = { 4 | singleQuote: true, 5 | }; 6 | -------------------------------------------------------------------------------- /.template-lintrc.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = { 4 | extends: 'recommended', 5 | }; 6 | -------------------------------------------------------------------------------- /.watchmanconfig: -------------------------------------------------------------------------------- 1 | { 2 | "ignore_dirs": ["tmp", "dist"] 3 | } 4 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## v1.0.0 (2023-05-13) 4 | 5 | #### :memo: Documentation 6 | * [#66](https://github.com/kaermorchen/ember-cli-bootstrap-4/pull/66) Move changelog's title ([@kaermorchen](https://github.com/kaermorchen)) 7 | 8 | #### Committers: 1 9 | - Stanislav Romanov ([@kaermorchen](https://github.com/kaermorchen)) 10 | 11 | ## v0.13.0 (2022-02-28) 12 | 13 | #### :boom: Breaking Change 14 | * [#61](https://github.com/kaermorchen/ember-cli-bootstrap-4/pull/61) Remove jQuery ([@kaermorchen](https://github.com/kaermorchen)) 15 | 16 | #### :rocket: Enhancement 17 | * [#63](https://github.com/kaermorchen/ember-cli-bootstrap-4/pull/63) Add release-it to the project ([@kaermorchen](https://github.com/kaermorchen)) 18 | 19 | #### :memo: Documentation 20 | * [#64](https://github.com/kaermorchen/ember-cli-bootstrap-4/pull/64) Remove travis badge ([@kaermorchen](https://github.com/kaermorchen)) 21 | * [#61](https://github.com/kaermorchen/ember-cli-bootstrap-4/pull/61) Remove jQuery ([@kaermorchen](https://github.com/kaermorchen)) 22 | 23 | #### :house: Internal 24 | * [#63](https://github.com/kaermorchen/ember-cli-bootstrap-4/pull/63) Add release-it to the project ([@kaermorchen](https://github.com/kaermorchen)) 25 | * [#61](https://github.com/kaermorchen/ember-cli-bootstrap-4/pull/61) Remove jQuery ([@kaermorchen](https://github.com/kaermorchen)) 26 | * [#62](https://github.com/kaermorchen/ember-cli-bootstrap-4/pull/62) Change ci to default Ember's the github actions ([@kaermorchen](https://github.com/kaermorchen)) 27 | 28 | #### Committers: 1 29 | - Stanislav Romanov ([@kaermorchen](https://github.com/kaermorchen)) 30 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # How To Contribute 2 | 3 | ## Installation 4 | 5 | * `git clone ` 6 | * `cd my-addon` 7 | * `npm install` 8 | 9 | ## Linting 10 | 11 | * `npm run lint` 12 | * `npm run lint:fix` 13 | 14 | ## Running tests 15 | 16 | * `ember test` – Runs the test suite on the current Ember version 17 | * `ember test --server` – Runs the test suite in "watch mode" 18 | * `ember try:each` – Runs the test suite against multiple Ember versions 19 | 20 | ## Running the dummy application 21 | 22 | * `ember serve` 23 | * Visit the dummy application at [http://localhost:4200](http://localhost:4200). 24 | 25 | For more information on using ember-cli, visit [https://ember-cli.com/](https://ember-cli.com/). 26 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2019 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

Ember CLI Bootstrap 4

2 | 3 |

4 | npm version 5 | npm monthly downloads 6 | Ember Observer Score 7 | License: MIT 8 |

9 | 10 | An [ember-cli](http://www.ember-cli.com) addon for using [Bootstrap 4](http://getbootstrap.com/) in Ember applications. 11 | 12 | Compatibility 13 | ------------------------------------------------------------------------------ 14 | 15 | * Ember.js v3.24 or above 16 | * Ember CLI v3.24 or above 17 | * Node.js v12 or above 18 | 19 | 20 | Installation 21 | ------------------------------------------------------------------------------ 22 | 23 | ### [Demo](https://kaermorchen.github.io/ember-cli-bootstrap-4/) 24 | 25 | ## Getting Started 26 | 27 | Install in ember-cli application 28 | 29 | ```bash 30 | ember install ember-cli-bootstrap-4 31 | ``` 32 | 33 | Then include the following in your `app.scss` file: 34 | 35 | ```scss 36 | @import "ember-cli-bootstrap-4/bootstrap"; 37 | ``` 38 | 39 | or for grid only 40 | 41 | ```scss 42 | @import "ember-cli-bootstrap-4/bootstrap-grid"; 43 | ``` 44 | 45 | ## Configuration 46 | 47 | ### JavaScript 48 | Ember don't support jQuery and this addon don't include the javascript part of Bootstrap too. 49 | 50 | If you need to use `bootstrap.js` in your project, install `jQuery` and `popper.js` and include its like [others dependencies](https://guides.emberjs.com/release/addons-and-dependencies/). 51 | 52 | ```bash 53 | npm install jquery popper.js 54 | ``` 55 | 56 | ```js 57 | // ember-cli-build.js 58 | 59 | app.import('node_modules/jquery/dist/jquery.js'); 60 | app.import('node_modules/popper.js/dist/umd/popper.js'); 61 | app.import('node_modules/popper.js/dist/umd/popper-utils.js'); 62 | app.import('node_modules/bootstrap/dist/js/bootstrap.js'); 63 | ``` 64 | 65 | ### Custom variables 66 | 67 | You can use custom Bootstrap 4 variables. Store your custom [available](https://github.com/twbs/bootstrap/blob/v4-dev/scss/_variables.scss) variables in `app\styles\_custom.scss`. And add import `_custom.scss` in `app.scss`. 68 | 69 | ```scss 70 | @import "custom"; 71 | @import "ember-cli-bootstrap-4/bootstrap"; 72 | ``` 73 | 74 | ### Custom Bootstrap 4 components 75 | 76 | For import custom Bootstrap 4 css components instead `@import "ember-cli-bootstrap-4/bootstrap";` you can use code below: 77 | 78 | ```scss 79 | @import "ember-cli-bootstrap-4/functions"; 80 | @import "ember-cli-bootstrap-4/variables"; 81 | @import "ember-cli-bootstrap-4/mixins"; 82 | @import "ember-cli-bootstrap-4/root"; 83 | @import "ember-cli-bootstrap-4/reboot"; 84 | @import "ember-cli-bootstrap-4/type"; 85 | @import "ember-cli-bootstrap-4/images"; 86 | @import "ember-cli-bootstrap-4/code"; 87 | @import "ember-cli-bootstrap-4/grid"; 88 | @import "ember-cli-bootstrap-4/tables"; 89 | @import "ember-cli-bootstrap-4/forms"; 90 | @import "ember-cli-bootstrap-4/buttons"; 91 | @import "ember-cli-bootstrap-4/transitions"; 92 | @import "ember-cli-bootstrap-4/dropdown"; 93 | @import "ember-cli-bootstrap-4/button-group"; 94 | @import "ember-cli-bootstrap-4/input-group"; 95 | @import "ember-cli-bootstrap-4/custom-forms"; 96 | @import "ember-cli-bootstrap-4/nav"; 97 | @import "ember-cli-bootstrap-4/navbar"; 98 | @import "ember-cli-bootstrap-4/card"; 99 | @import "ember-cli-bootstrap-4/breadcrumb"; 100 | @import "ember-cli-bootstrap-4/pagination"; 101 | @import "ember-cli-bootstrap-4/badge"; 102 | @import "ember-cli-bootstrap-4/jumbotron"; 103 | @import "ember-cli-bootstrap-4/alert"; 104 | @import "ember-cli-bootstrap-4/progress"; 105 | @import "ember-cli-bootstrap-4/media"; 106 | @import "ember-cli-bootstrap-4/list-group"; 107 | @import "ember-cli-bootstrap-4/close"; 108 | @import "ember-cli-bootstrap-4/toasts"; 109 | @import "ember-cli-bootstrap-4/modal"; 110 | @import "ember-cli-bootstrap-4/tooltip"; 111 | @import "ember-cli-bootstrap-4/popover"; 112 | @import "ember-cli-bootstrap-4/carousel"; 113 | @import "ember-cli-bootstrap-4/spinners"; 114 | @import "ember-cli-bootstrap-4/utilities"; 115 | @import "ember-cli-bootstrap-4/print"; 116 | ``` 117 | 118 | Contributing 119 | ------------------------------------------------------------------------------ 120 | 121 | See the [Contributing](CONTRIBUTING.md) guide for details. 122 | 123 | 124 | License 125 | ------------------------------------------------------------------------------ 126 | 127 | Ember-cli-bootstrap-4 is released under the MIT License. See the bundled [LICENSE](LICENSE.md) file for details. 128 | -------------------------------------------------------------------------------- /RELEASE.md: -------------------------------------------------------------------------------- 1 | # Release Process 2 | 3 | Releases are mostly automated using 4 | [release-it](https://github.com/release-it/release-it/) and 5 | [lerna-changelog](https://github.com/lerna/lerna-changelog/). 6 | 7 | ## Preparation 8 | 9 | Since the majority of the actual release process is automated, the primary 10 | remaining task prior to releasing is confirming that all pull requests that 11 | have been merged since the last release have been labeled with the appropriate 12 | `lerna-changelog` labels and the titles have been updated to ensure they 13 | represent something that would make sense to our users. Some great information 14 | on why this is important can be found at 15 | [keepachangelog.com](https://keepachangelog.com/en/1.0.0/), but the overall 16 | guiding principle here is that changelogs are for humans, not machines. 17 | 18 | When reviewing merged PR's the labels to be used are: 19 | 20 | * breaking - Used when the PR is considered a breaking change. 21 | * enhancement - Used when the PR adds a new feature or enhancement. 22 | * bug - Used when the PR fixes a bug included in a previous release. 23 | * documentation - Used when the PR adds or updates documentation. 24 | * internal - Used for internal changes that still require a mention in the 25 | changelog/release notes. 26 | 27 | ## Release 28 | 29 | Once the prep work is completed, the actual release is straight forward: 30 | 31 | * First, ensure that you have installed your projects dependencies: 32 | 33 | ```sh 34 | npm install 35 | ``` 36 | 37 | * Second, ensure that you have obtained a 38 | [GitHub personal access token][generate-token] with the `repo` scope (no 39 | other permissions are needed). Make sure the token is available as the 40 | `GITHUB_AUTH` environment variable. 41 | 42 | For instance: 43 | 44 | ```bash 45 | export GITHUB_AUTH=abc123def456 46 | ``` 47 | 48 | [generate-token]: https://github.com/settings/tokens/new?scopes=repo&description=GITHUB_AUTH+env+variable 49 | 50 | * And last (but not least 😁) do your release. 51 | 52 | ```sh 53 | npx release-it 54 | ``` 55 | 56 | [release-it](https://github.com/release-it/release-it/) manages the actual 57 | release process. It will prompt you to to choose the version number after which 58 | you will have the chance to hand tweak the changelog to be used (for the 59 | `CHANGELOG.md` and GitHub release), then `release-it` continues on to tagging, 60 | pushing the tag and commits, etc. 61 | -------------------------------------------------------------------------------- /addon/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaermorchen/ember-cli-bootstrap-4/ab3522e2d250c22ab45c538ea00a58e8a1a3a719/addon/.gitkeep -------------------------------------------------------------------------------- /app/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaermorchen/ember-cli-bootstrap-4/ab3522e2d250c22ab45c538ea00a58e8a1a3a719/app/.gitkeep -------------------------------------------------------------------------------- /blueprints/ember-cli-bootstrap-4/index.js: -------------------------------------------------------------------------------- 1 | /* eslint-env node */ 2 | 'use strict'; 3 | 4 | const path = require('path'); 5 | const fs = require('fs'); 6 | 7 | module.exports = { 8 | normalizeEntityName(entityName) { 9 | return entityName || 'ember-cli-bootstrap-4'; 10 | }, 11 | 12 | afterInstall() { 13 | const importStatement = '\n@import "ember-cli-bootstrap-4/bootstrap";\n'; 14 | const stylePath = path.join('app', 'styles'); 15 | const file = path.join(stylePath, `app.scss`); 16 | 17 | if (!fs.existsSync(stylePath)) { 18 | fs.mkdirSync(stylePath); 19 | } 20 | 21 | if (fs.existsSync(file)) { 22 | this.ui.writeLine(`Added import statement to ${file}`); 23 | this.insertIntoFile(file, importStatement, {}); 24 | } else { 25 | fs.writeFileSync(file, importStatement); 26 | this.ui.writeLine(`Created ${file}`); 27 | } 28 | 29 | return this.addPackagesToProject([ 30 | { name: 'bootstrap', target: '^4.6.1' }, 31 | { name: 'ember-cli-sass', target: '^10.0.0' }, 32 | { name: 'sass', target: '^1.23.0' }, 33 | ]); 34 | }, 35 | }; 36 | -------------------------------------------------------------------------------- /config/ember-try.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const getChannelURL = require('ember-source-channel-url'); 4 | const { embroiderSafe, embroiderOptimized } = require('@embroider/test-setup'); 5 | 6 | module.exports = async function () { 7 | return { 8 | scenarios: [ 9 | { 10 | name: 'ember-lts-3.24', 11 | npm: { 12 | devDependencies: { 13 | 'ember-source': '~3.24.3', 14 | }, 15 | }, 16 | }, 17 | { 18 | name: 'ember-lts-3.28', 19 | npm: { 20 | devDependencies: { 21 | 'ember-source': '~3.28.0', 22 | }, 23 | }, 24 | }, 25 | { 26 | name: 'ember-release', 27 | npm: { 28 | devDependencies: { 29 | 'ember-source': await getChannelURL('release'), 30 | }, 31 | }, 32 | }, 33 | { 34 | name: 'ember-beta', 35 | npm: { 36 | devDependencies: { 37 | 'ember-source': await getChannelURL('beta'), 38 | }, 39 | }, 40 | }, 41 | { 42 | name: 'ember-canary', 43 | npm: { 44 | devDependencies: { 45 | 'ember-source': await getChannelURL('canary'), 46 | }, 47 | }, 48 | }, 49 | { 50 | name: 'ember-default-with-jquery', 51 | env: { 52 | EMBER_OPTIONAL_FEATURES: JSON.stringify({ 53 | 'jquery-integration': true, 54 | }), 55 | }, 56 | npm: { 57 | devDependencies: { 58 | '@ember/jquery': '^1.1.0', 59 | }, 60 | }, 61 | }, 62 | { 63 | name: 'ember-classic', 64 | env: { 65 | EMBER_OPTIONAL_FEATURES: JSON.stringify({ 66 | 'application-template-wrapper': true, 67 | 'default-async-observers': false, 68 | 'template-only-glimmer-components': false, 69 | }), 70 | }, 71 | npm: { 72 | devDependencies: { 73 | 'ember-source': '~3.28.0', 74 | }, 75 | ember: { 76 | edition: 'classic', 77 | }, 78 | }, 79 | }, 80 | embroiderSafe(), 81 | embroiderOptimized(), 82 | ], 83 | }; 84 | }; 85 | -------------------------------------------------------------------------------- /config/environment.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = function (/* environment, appConfig */) { 4 | return {}; 5 | }; 6 | -------------------------------------------------------------------------------- /ember-cli-build.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const EmberAddon = require('ember-cli/lib/broccoli/ember-addon'); 4 | 5 | module.exports = function (defaults) { 6 | let app = new EmberAddon(defaults, { 7 | 'ember-cli-bootstrap-4': { 8 | js: null, 9 | }, 10 | }); 11 | 12 | /* 13 | This build file specifies the options for the dummy test app of this 14 | addon, located in `/tests/dummy` 15 | This build file does *not* influence how the addon or the app using it 16 | behave. You most likely want to be modifying `./index.js` or app's build file 17 | */ 18 | 19 | const { maybeEmbroider } = require('@embroider/test-setup'); 20 | return maybeEmbroider(app, { 21 | skipBabel: [ 22 | { 23 | package: 'qunit', 24 | }, 25 | ], 26 | }); 27 | }; 28 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const path = require('path'); 4 | const Funnel = require('broccoli-funnel'); 5 | const mergeTrees = require('broccoli-merge-trees'); 6 | const resolve = require('resolve'); 7 | 8 | module.exports = { 9 | name: require('./package').name, 10 | 11 | included() { 12 | this._super.included.apply(this, arguments); 13 | this._ensureFindHost(); 14 | }, 15 | 16 | treeForStyles(tree) { 17 | let styleTrees = []; 18 | let host = this._findHost(); 19 | 20 | if (host.project.findAddonByName('ember-cli-sass')) { 21 | styleTrees.push( 22 | new Funnel(path.join(this.resolvePackagePath('bootstrap'), 'scss'), { 23 | destDir: this.name, 24 | }) 25 | ); 26 | } 27 | 28 | if (tree) { 29 | styleTrees.push(tree); 30 | } 31 | 32 | return mergeTrees(styleTrees, { overwrite: true }); 33 | }, 34 | 35 | resolvePackagePath(packageName) { 36 | let host = this._findHost(); 37 | return path.dirname( 38 | resolve.sync(`${packageName}/package.json`, { 39 | basedir: host.project.root, 40 | }) 41 | ); 42 | }, 43 | 44 | _ensureFindHost() { 45 | if (!this._findHost) { 46 | this._findHost = function findHostShim() { 47 | let current = this; 48 | let app; 49 | 50 | do { 51 | app = current.app || app; 52 | } while (current.parent.parent && (current = current.parent)); 53 | 54 | return app; 55 | }; 56 | } 57 | }, 58 | }; 59 | -------------------------------------------------------------------------------- /jsconfig.json: -------------------------------------------------------------------------------- 1 | {"compilerOptions":{"target":"es6","experimentalDecorators":true},"exclude":["node_modules","bower_components","tmp","vendor",".git","dist"]} -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ember-cli-bootstrap-4", 3 | "version": "1.0.0", 4 | "description": "An ember-cli addon for using Bootstrap 4 in Ember applications.", 5 | "keywords": [ 6 | "bootstrap", 7 | "bootstrap-4", 8 | "framework", 9 | "css", 10 | "scss", 11 | "style", 12 | "styles", 13 | "ember-addon" 14 | ], 15 | "homepage": "https://github.com/kaermorchen/ember-cli-bootstrap-4", 16 | "repository": { 17 | "type": "git", 18 | "url": "git@github.com:kaermorchen/ember-cli-bootstrap-4.git" 19 | }, 20 | "license": "MIT", 21 | "author": { 22 | "name": "Stanislav Romanov", 23 | "email": "kaermorchen@gmail.com", 24 | "url": "https://stanislavromanov.ru" 25 | }, 26 | "directories": { 27 | "doc": "doc", 28 | "test": "tests" 29 | }, 30 | "scripts": { 31 | "build": "ember build --environment=production", 32 | "deploy": "ember github-pages:commit --message \"Deploy gh-pages from commit $(git rev-parse HEAD)\"; git push; git checkout -", 33 | "lint": "npm-run-all --aggregate-output --continue-on-error --parallel \"lint:!(fix)\"", 34 | "lint:fix": "npm-run-all --aggregate-output --continue-on-error --parallel lint:*:fix", 35 | "lint:hbs": "ember-template-lint .", 36 | "lint:hbs:fix": "ember-template-lint . --fix", 37 | "lint:js": "eslint . --cache", 38 | "lint:js:fix": "eslint . --fix", 39 | "start": "ember serve", 40 | "test": "npm-run-all lint test:*", 41 | "test:ember": "ember test", 42 | "test:ember-compatibility": "ember try:each" 43 | }, 44 | "dependencies": { 45 | "bootstrap": "^5.0.0", 46 | "broccoli-funnel": "^2.0.2", 47 | "broccoli-merge-trees": "^3.0.2", 48 | "ember-cli-babel": "^7.26.10", 49 | "ember-cli-htmlbars": "^5.7.2", 50 | "ember-cli-sass": "^10.0.1", 51 | "resolve": "^1.12.0", 52 | "sass": "^1.23.3" 53 | }, 54 | "devDependencies": { 55 | "@ember/optional-features": "^2.0.0", 56 | "@ember/test-helpers": "^2.6.0", 57 | "@embroider/test-setup": "^0.48.1", 58 | "@glimmer/component": "^1.0.4", 59 | "@glimmer/tracking": "^1.0.4", 60 | "babel-eslint": "^10.1.0", 61 | "broccoli-asset-rev": "^3.0.0", 62 | "ember-auto-import": "^2.4.0", 63 | "ember-cli": "~4.11.0", 64 | "ember-cli-dependency-checker": "^3.2.0", 65 | "ember-cli-github-pages": "^0.2.2", 66 | "ember-cli-inject-live-reload": "^2.1.0", 67 | "ember-cli-sri": "^2.1.1", 68 | "ember-cli-terser": "^4.0.2", 69 | "ember-disable-prototype-extensions": "^1.1.3", 70 | "ember-export-application-global": "^2.0.1", 71 | "ember-load-initializers": "^2.1.2", 72 | "ember-qunit": "^8.0.2", 73 | "ember-resolver": "^8.0.3", 74 | "ember-source": "~3.28.8", 75 | "ember-source-channel-url": "^3.0.0", 76 | "ember-template-lint": "^3.15.0", 77 | "ember-try": "^2.0.0", 78 | "eslint": "^7.32.0", 79 | "eslint-config-prettier": "^8.3.0", 80 | "eslint-plugin-ember": "^10.5.8", 81 | "eslint-plugin-node": "^11.1.0", 82 | "eslint-plugin-prettier": "^3.4.1", 83 | "eslint-plugin-qunit": "^6.2.0", 84 | "loader.js": "^4.7.0", 85 | "npm-run-all": "^4.1.5", 86 | "prettier": "^2.5.1", 87 | "qunit": "^2.17.2", 88 | "qunit-dom": "^1.6.0", 89 | "release-it": "^15.5.0", 90 | "release-it-lerna-changelog": "^5.0.0", 91 | "webpack": "^5.69.0" 92 | }, 93 | "engines": { 94 | "node": "12.* || 14.* || >= 16" 95 | }, 96 | "publishConfig": { 97 | "registry": "https://registry.npmjs.org" 98 | }, 99 | "ember": { 100 | "edition": "octane" 101 | }, 102 | "ember-addon": { 103 | "configPath": "tests/dummy/config", 104 | "defaultBlueprint": "ember-cli-bootstrap-4", 105 | "demoURL": "https://kaermorchen.github.io/ember-cli-bootstrap-4/" 106 | }, 107 | "release-it": { 108 | "plugins": { 109 | "release-it-lerna-changelog": { 110 | "infile": "CHANGELOG.md", 111 | "launchEditor": true 112 | } 113 | }, 114 | "git": { 115 | "tagName": "v${version}" 116 | }, 117 | "github": { 118 | "release": true, 119 | "tokenRef": "GITHUB_AUTH" 120 | } 121 | } 122 | } 123 | -------------------------------------------------------------------------------- /testem.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = { 4 | test_page: 'tests/index.html?hidepassed', 5 | disable_watching: true, 6 | launch_in_ci: ['Chrome'], 7 | launch_in_dev: ['Chrome'], 8 | browser_start_timeout: 120, 9 | browser_args: { 10 | Chrome: { 11 | ci: [ 12 | // --no-sandbox is needed when running Chrome inside a container 13 | process.env.CI ? '--no-sandbox' : null, 14 | '--no-sandbox', 15 | '--headless', 16 | '--disable-dev-shm-usage', 17 | '--disable-software-rasterizer', 18 | '--mute-audio', 19 | '--remote-debugging-port=0', 20 | '--window-size=1440,900', 21 | ].filter(Boolean), 22 | }, 23 | }, 24 | }; 25 | -------------------------------------------------------------------------------- /tests/acceptance/index-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { visit, currentURL, find } from '@ember/test-helpers'; 3 | import { setupApplicationTest } from 'ember-qunit'; 4 | 5 | module('Acceptance | index', function (hooks) { 6 | setupApplicationTest(hooks); 7 | 8 | test('visiting /index', async function (assert) { 9 | await visit('/'); 10 | 11 | assert.equal(currentURL(), '/'); 12 | 13 | const navbar = find('.navbar.bg-dark'); 14 | 15 | assert.equal( 16 | window 17 | .getComputedStyle(navbar, null) 18 | .getPropertyValue('background-color'), 19 | 'rgb(52, 58, 64)' 20 | ); 21 | }); 22 | }); 23 | -------------------------------------------------------------------------------- /tests/dummy/app/app.js: -------------------------------------------------------------------------------- 1 | import Application from '@ember/application'; 2 | import Resolver from 'ember-resolver'; 3 | import loadInitializers from 'ember-load-initializers'; 4 | import config from 'dummy/config/environment'; 5 | 6 | export default class App extends Application { 7 | modulePrefix = config.modulePrefix; 8 | podModulePrefix = config.podModulePrefix; 9 | Resolver = Resolver; 10 | } 11 | 12 | loadInitializers(App, config.modulePrefix); 13 | -------------------------------------------------------------------------------- /tests/dummy/app/components/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaermorchen/ember-cli-bootstrap-4/ab3522e2d250c22ab45c538ea00a58e8a1a3a719/tests/dummy/app/components/.gitkeep -------------------------------------------------------------------------------- /tests/dummy/app/controllers/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaermorchen/ember-cli-bootstrap-4/ab3522e2d250c22ab45c538ea00a58e8a1a3a719/tests/dummy/app/controllers/.gitkeep -------------------------------------------------------------------------------- /tests/dummy/app/helpers/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaermorchen/ember-cli-bootstrap-4/ab3522e2d250c22ab45c538ea00a58e8a1a3a719/tests/dummy/app/helpers/.gitkeep -------------------------------------------------------------------------------- /tests/dummy/app/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Ember CLI Bootstrap 4 6 | 7 | 8 | 9 | 10 | 11 | {{content-for "head"}} 12 | 13 | 14 | 15 | 16 | {{content-for "head-footer"}} 17 | 18 | 19 | {{content-for "body"}} 20 | 21 | 22 | 23 | 24 | {{content-for "body-footer"}} 25 | 26 | 27 | -------------------------------------------------------------------------------- /tests/dummy/app/models/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaermorchen/ember-cli-bootstrap-4/ab3522e2d250c22ab45c538ea00a58e8a1a3a719/tests/dummy/app/models/.gitkeep -------------------------------------------------------------------------------- /tests/dummy/app/router.js: -------------------------------------------------------------------------------- 1 | import EmberRouter from '@ember/routing/router'; 2 | import config from 'dummy/config/environment'; 3 | 4 | export default class Router extends EmberRouter { 5 | location = config.locationType; 6 | rootURL = config.rootURL; 7 | } 8 | 9 | Router.map(function () {}); 10 | -------------------------------------------------------------------------------- /tests/dummy/app/routes/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaermorchen/ember-cli-bootstrap-4/ab3522e2d250c22ab45c538ea00a58e8a1a3a719/tests/dummy/app/routes/.gitkeep -------------------------------------------------------------------------------- /tests/dummy/app/styles/app.scss: -------------------------------------------------------------------------------- 1 | @import "ember-cli-bootstrap-4/functions"; 2 | @import "ember-cli-bootstrap-4/variables"; 3 | @import "ember-cli-bootstrap-4/mixins"; 4 | @import "ember-cli-bootstrap-4/root"; 5 | @import "ember-cli-bootstrap-4/reboot"; 6 | @import "ember-cli-bootstrap-4/type"; 7 | @import "ember-cli-bootstrap-4/images"; 8 | @import "ember-cli-bootstrap-4/code"; 9 | @import "ember-cli-bootstrap-4/grid"; 10 | @import "ember-cli-bootstrap-4/tables"; 11 | @import "ember-cli-bootstrap-4/forms"; 12 | @import "ember-cli-bootstrap-4/buttons"; 13 | @import "ember-cli-bootstrap-4/transitions"; 14 | @import "ember-cli-bootstrap-4/dropdown"; 15 | @import "ember-cli-bootstrap-4/button-group"; 16 | @import "ember-cli-bootstrap-4/input-group"; 17 | @import "ember-cli-bootstrap-4/custom-forms"; 18 | @import "ember-cli-bootstrap-4/nav"; 19 | @import "ember-cli-bootstrap-4/navbar"; 20 | @import "ember-cli-bootstrap-4/card"; 21 | @import "ember-cli-bootstrap-4/breadcrumb"; 22 | @import "ember-cli-bootstrap-4/pagination"; 23 | @import "ember-cli-bootstrap-4/badge"; 24 | @import "ember-cli-bootstrap-4/jumbotron"; 25 | @import "ember-cli-bootstrap-4/alert"; 26 | @import "ember-cli-bootstrap-4/progress"; 27 | @import "ember-cli-bootstrap-4/media"; 28 | @import "ember-cli-bootstrap-4/list-group"; 29 | @import "ember-cli-bootstrap-4/close"; 30 | @import "ember-cli-bootstrap-4/toasts"; 31 | @import "ember-cli-bootstrap-4/modal"; 32 | @import "ember-cli-bootstrap-4/tooltip"; 33 | @import "ember-cli-bootstrap-4/popover"; 34 | @import "ember-cli-bootstrap-4/carousel"; 35 | @import "ember-cli-bootstrap-4/spinners"; 36 | @import "ember-cli-bootstrap-4/utilities"; 37 | @import "ember-cli-bootstrap-4/print"; 38 | 39 | body { 40 | padding-top: 5rem; 41 | } 42 | 43 | .bd-navbar .navbar-nav-svg { 44 | display: inline-block; 45 | width: 1rem; 46 | height: 1rem; 47 | vertical-align: text-top; 48 | } 49 | 50 | pre { 51 | padding: calc($spacer / 2); 52 | background-color: $gray-100; 53 | } 54 | 55 | code { 56 | background-color: $gray-100; 57 | } 58 | -------------------------------------------------------------------------------- /tests/dummy/app/templates/application.hbs: -------------------------------------------------------------------------------- 1 | 23 | 24 |
25 |

Ember CLI Bootstrap 4

26 | 27 |

Headings

28 |
29 |

h1. Bootstrap heading

30 |

h2. Bootstrap heading

31 |

h3. Bootstrap heading

32 |

h4. Bootstrap heading

33 |
h5. Bootstrap heading
34 |
h6. Bootstrap heading
35 |
36 | 37 |

Blockquotes

38 |
39 |
40 |

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.

41 |
42 |
43 | 44 |

Lists

45 |
46 |
    47 |
  • Lorem ipsum dolor sit amet
  • 48 |
  • Consectetur adipiscing elit
  • 49 |
  • Integer molestie lorem at massa
  • 50 |
  • Facilisis in pretium nisl aliquet
  • 51 |
  • 52 | Nulla volutpat aliquam velit 53 |
      54 |
    • Phasellus iaculis neque
    • 55 |
    • Purus sodales ultricies
    • 56 |
    • Vestibulum laoreet porttitor sem
    • 57 |
    • Ac tristique libero volutpat at
    • 58 |
    59 |
  • 60 |
  • Faucibus porta lacus fringilla vel
  • 61 |
  • Aenean sit amet erat nunc
  • 62 |
  • Eget porttitor lorem
  • 63 |
64 |
65 |
66 | -------------------------------------------------------------------------------- /tests/dummy/config/ember-cli-update.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "packages": [ 4 | { 5 | "name": "ember-cli", 6 | "version": "3.28.5", 7 | "blueprints": [ 8 | { 9 | "name": "addon", 10 | "outputRepo": "https://github.com/ember-cli/ember-addon-output", 11 | "codemodsSource": "ember-addon-codemods-manifest@1", 12 | "isBaseBlueprint": true, 13 | "options": [ 14 | "--no-welcome" 15 | ] 16 | } 17 | ] 18 | } 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /tests/dummy/config/environment.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = function (environment) { 4 | let ENV = { 5 | modulePrefix: 'dummy', 6 | environment, 7 | rootURL: '/', 8 | locationType: 'auto', 9 | EmberENV: { 10 | FEATURES: { 11 | // Here you can enable experimental features on an ember canary build 12 | // e.g. EMBER_NATIVE_DECORATOR_SUPPORT: true 13 | }, 14 | EXTEND_PROTOTYPES: { 15 | // Prevent Ember Data from overriding Date.parse. 16 | Date: false, 17 | }, 18 | }, 19 | 20 | APP: { 21 | // Here you can pass flags/options to your application instance 22 | // when it is created 23 | }, 24 | }; 25 | 26 | if (environment === 'development') { 27 | // ENV.APP.LOG_RESOLVER = true; 28 | // ENV.APP.LOG_ACTIVE_GENERATION = true; 29 | // ENV.APP.LOG_TRANSITIONS = true; 30 | // ENV.APP.LOG_TRANSITIONS_INTERNAL = true; 31 | // ENV.APP.LOG_VIEW_LOOKUPS = true; 32 | } 33 | 34 | if (environment === 'test') { 35 | // Testem prefers this... 36 | ENV.locationType = 'none'; 37 | 38 | // keep test console output quieter 39 | ENV.APP.LOG_ACTIVE_GENERATION = false; 40 | ENV.APP.LOG_VIEW_LOOKUPS = false; 41 | 42 | ENV.APP.rootElement = '#ember-testing'; 43 | ENV.APP.autoboot = false; 44 | } 45 | 46 | if (environment === 'production') { 47 | ENV.locationType = 'hash'; 48 | ENV.rootURL = '/ember-cli-bootstrap-4/'; 49 | } 50 | 51 | return ENV; 52 | }; 53 | -------------------------------------------------------------------------------- /tests/dummy/config/optional-features.json: -------------------------------------------------------------------------------- 1 | { 2 | "application-template-wrapper": false, 3 | "default-async-observers": true, 4 | "jquery-integration": false, 5 | "template-only-glimmer-components": true 6 | } 7 | -------------------------------------------------------------------------------- /tests/dummy/config/targets.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const browsers = [ 4 | 'last 1 Chrome versions', 5 | 'last 1 Firefox versions', 6 | 'last 1 Safari versions', 7 | ]; 8 | 9 | // Ember's browser support policy is changing, and IE11 support will end in 10 | // v4.0 onwards. 11 | // 12 | // See https://deprecations.emberjs.com/v3.x#toc_3-0-browser-support-policy 13 | // 14 | // If you need IE11 support on a version of Ember that still offers support 15 | // for it, uncomment the code block below. 16 | // 17 | // const isCI = Boolean(process.env.CI); 18 | // const isProduction = process.env.EMBER_ENV === 'production'; 19 | // 20 | // if (isCI || isProduction) { 21 | // browsers.push('ie 11'); 22 | // } 23 | 24 | module.exports = { 25 | browsers, 26 | }; 27 | -------------------------------------------------------------------------------- /tests/dummy/public/crossdomain.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 15 | 16 | -------------------------------------------------------------------------------- /tests/dummy/public/images/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaermorchen/ember-cli-bootstrap-4/ab3522e2d250c22ab45c538ea00a58e8a1a3a719/tests/dummy/public/images/apple-touch-icon.png -------------------------------------------------------------------------------- /tests/dummy/public/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaermorchen/ember-cli-bootstrap-4/ab3522e2d250c22ab45c538ea00a58e8a1a3a719/tests/dummy/public/images/favicon.ico -------------------------------------------------------------------------------- /tests/dummy/public/robots.txt: -------------------------------------------------------------------------------- 1 | # http://www.robotstxt.org 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /tests/helpers/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaermorchen/ember-cli-bootstrap-4/ab3522e2d250c22ab45c538ea00a58e8a1a3a719/tests/helpers/.gitkeep -------------------------------------------------------------------------------- /tests/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Dummy Tests 7 | 8 | 9 | 10 | {{content-for "head"}} 11 | {{content-for "test-head"}} 12 | 13 | 14 | 15 | 16 | 17 | {{content-for "head-footer"}} 18 | {{content-for "test-head-footer"}} 19 | 20 | 21 | {{content-for "body"}} 22 | {{content-for "test-body"}} 23 | 24 |
25 |
26 |
27 |
28 |
29 |
30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | {{content-for "body-footer"}} 38 | {{content-for "test-body-footer"}} 39 | 40 | 41 | -------------------------------------------------------------------------------- /tests/integration/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaermorchen/ember-cli-bootstrap-4/ab3522e2d250c22ab45c538ea00a58e8a1a3a719/tests/integration/.gitkeep -------------------------------------------------------------------------------- /tests/test-helper.js: -------------------------------------------------------------------------------- 1 | import Application from 'dummy/app'; 2 | import config from 'dummy/config/environment'; 3 | import { setApplication } from '@ember/test-helpers'; 4 | import { start } from 'ember-qunit'; 5 | 6 | setApplication(Application.create(config.APP)); 7 | 8 | start(); 9 | -------------------------------------------------------------------------------- /tests/unit/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaermorchen/ember-cli-bootstrap-4/ab3522e2d250c22ab45c538ea00a58e8a1a3a719/tests/unit/.gitkeep -------------------------------------------------------------------------------- /vendor/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaermorchen/ember-cli-bootstrap-4/ab3522e2d250c22ab45c538ea00a58e8a1a3a719/vendor/.gitkeep --------------------------------------------------------------------------------