Skip to content

Commit

Permalink
Merge pull request #54 from btecu/octane
Browse files Browse the repository at this point in the history
Octane Updates
  • Loading branch information
btecu authored Jun 13, 2021
2 parents 2975a0e + ac1a183 commit c3450bc
Show file tree
Hide file tree
Showing 56 changed files with 5,277 additions and 2,771 deletions.
1 change: 1 addition & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
# misc
/coverage/
!.*
.eslintcache

# ember-try
/.node_modules.ember-try/
Expand Down
33 changes: 14 additions & 19 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,52 +7,47 @@ module.exports = {
ecmaVersion: 2018,
sourceType: 'module',
ecmaFeatures: {
legacyDecorators: true
}
legacyDecorators: true,
},
},
plugins: [
'ember'
],
plugins: ['ember'],
extends: [
'eslint:recommended',
'plugin:ember/recommended'
'plugin:ember/recommended',
],
env: {
browser: true
},
rules: {
'ember/no-jquery': 'error'
browser: true,
},
rules: {},
overrides: [
// node files
{
files: [
'.eslintrc.js',
'.prettierrc.js',
'.template-lintrc.js',
'ember-cli-build.js',
'index.js',
'testem.js',
'blueprints/*/index.js',
'config/**/*.js',
'tests/dummy/config/**/*.js'
'tests/dummy/config/**/*.js',
],
excludedFiles: [
'addon/**',
'addon-test-support/**',
'app/**',
'tests/dummy/app/**'
'tests/dummy/app/**',
],
parserOptions: {
sourceType: 'script'
sourceType: 'script',
},
env: {
browser: false,
node: true
node: true,
},
plugins: ['node'],
rules: Object.assign({}, require('eslint-plugin-node').configs.recommended.rules, {
// add your custom rules and overrides for node files here
})
}
]
extends: ['plugin:node/recommended'],
},
],
};
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
/.env*
/.pnp*
/.sass-cache
/.eslintcache
/connect.lock
/coverage/
/libpeerconnection.log
Expand Down
3 changes: 3 additions & 0 deletions .npmignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,13 @@
/.editorconfig
/.ember-cli
/.env*
/.eslintcache
/.eslintignore
/.eslintrc.js
/.git/
/.gitignore
/.prettierignore
/.prettierrc.js
/.template-lintrc.js
/.travis.yml
/.watchmanconfig
Expand Down
21 changes: 21 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# unconventional js
/blueprints/*/files/
/vendor/

# compiled output
/dist/
/tmp/

# dependencies
/bower_components/
/node_modules/

# misc
/coverage/
!.*
.eslintcache

# ember-try
/.node_modules.ember-try/
/bower.json.ember-try
/package.json.ember-try
5 changes: 5 additions & 0 deletions .prettierrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
'use strict';

module.exports = {
singleQuote: true,
};
2 changes: 1 addition & 1 deletion .template-lintrc.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
'use strict';

module.exports = {
extends: 'recommended'
extends: 'octane',
};
13 changes: 6 additions & 7 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ language: node_js
node_js:
# we recommend testing addons with the same minimum supported node version as Ember CLI
# so that your addon works for all apps
- "10"
- "12"

dist: trusty
dist: xenial

addons:
chrome: stable
Expand Down Expand Up @@ -46,20 +46,19 @@ jobs:

# we recommend new addons test the current and previous LTS
# as well as latest stable release (bonus points to beta/canary)
- env: EMBER_TRY_SCENARIO=ember-lts-3.12
- env: EMBER_TRY_SCENARIO=ember-lts-3.16
- env: EMBER_TRY_SCENARIO=ember-lts-3.20
- env: EMBER_TRY_SCENARIO=ember-lts-3.24
- env: EMBER_TRY_SCENARIO=ember-release
- env: EMBER_TRY_SCENARIO=ember-beta
- env: EMBER_TRY_SCENARIO=ember-canary
- env: EMBER_TRY_SCENARIO=ember-default-with-jquery
- env: EMBER_TRY_SCENARIO=ember-classic
# - env: EMBER_TRY_SCENARIO=embroider-safe
# - env: EMBER_TRY_SCENARIO=embroider-optimized

before_install:
- curl -o- -L https://yarnpkg.com/install.sh | bash
- export PATH=$HOME/.yarn/bin:$PATH

install:
- yarn install --non-interactive

script:
- node_modules/.bin/ember try:one $EMBER_TRY_SCENARIO
5 changes: 2 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,8 @@

## Linting

* `yarn lint:hbs`
* `yarn lint:js`
* `yarn lint:js --fix`
* `yarn lint`
* `yarn lint:fix`

## Running tests

Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ Lightweight, composable tree component for Ember without any dependency.
Compatibility
------------------------------------------------------------------------------

* Ember.js v3.4 or above
* Ember CLI v3.0 or above
* Node.js v8 or above
* Ember.js v3.16 or above
* Ember CLI v2.13 or above
* Node.js v12 or above

If you are using 0.5.x and would like to upgrade to 0.6.0, please note there
are BREAKING CHANGES. For details, see [Upgrading](UPGRADING.md).
Expand Down
40 changes: 40 additions & 0 deletions addon/components/x-tree-branch.hbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
<ul class="tree-branch">
{{#each @model as |child|}}
{{#if child.isVisible}}
{{#if (has-block)}}
<XTreeChildren
@checkable={{@checkable}}
@recursiveCheck={{@recursiveCheck}}
@updateCheckbox={{@updateCheckbox}}
@chosenId={{@chosenId}}
@onCheck={{@onCheck}}
@onContextMenu={{@onContextMenu}}
@onSelect={{@onSelect}}
@onHover={{@onHover}}
@onHoverOut={{@onHoverOut}}
@model={{child}}
@expandedIcon={{@expandedIcon}}
@collapsedIcon={{@collapsedIcon}}
as |node|
>
{{yield node}}
</XTreeChildren>
{{else}}
<XTreeChildren
@model={{child}}
@checkable={{@checkable}}
@recursiveCheck={{@recursiveCheck}}
@updateCheckbox={{@updateCheckbox}}
@chosenId={{@chosenId}}
@onCheck={{@onCheck}}
@onContextMenu={{@onContextMenu}}
@onSelect={{@onSelect}}
@onHover={{@onHover}}
@onHoverOut={{@onHoverOut}}
@expandedIcon={{@expandedIcon}}
@collapsedIcon={{@collapsedIcon}}
/>
{{/if}}
{{/if}}
{{/each}}
</ul>
8 changes: 0 additions & 8 deletions addon/components/x-tree-branch.js

This file was deleted.

11 changes: 11 additions & 0 deletions addon/components/x-tree-checkbox.hbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<span class="tree-checkbox">
<span role="button" {{on "click" @toggleCheck}}>
<Input
aria-label="Checkbox for {{@model.name}}"
disabled={{@model.isDisabled}}
indeterminate={{@model.isIndeterminate}}
@checked={{@model.isChecked}}
@type="checkbox"
/>
</span>
</span>
14 changes: 0 additions & 14 deletions addon/components/x-tree-checkbox.js

This file was deleted.

72 changes: 72 additions & 0 deletions addon/components/x-tree-children.hbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
<li class="tree-node">
{{#if (has-block)}}
<XTreeNode
@checkable={{@checkable}}
@recursiveCheck={{@recursiveCheck}}
@updateCheckbox={{this.updateCheckbox}}
@chosenId={{@chosenId}}
@onCheck={{@onCheck}}
@onContextMenu={{@onContextMenu}}
@onSelect={{@onSelect}}
@onHover={{@onHover}}
@onHoverOut={{@onHoverOut}}
@model={{@model}}
@expandedIcon={{@expandedIcon}}
@collapsedIcon={{@collapsedIcon}}
as |node|
>
{{yield node}}
</XTreeNode>

{{#if @model.isExpanded}}
<XTreeBranch
@checkable={{@checkable}}
@recursiveCheck={{@recursiveCheck}}
@updateCheckbox={{this.updateCheckbox}}
@chosenId={{@chosenId}}
@onCheck={{@onCheck}}
@onContextMenu={{@onContextMenu}}
@onSelect={{@onSelect}}
@onHover={{@onHover}}
@onHoverOut={{@onHoverOut}}
@model={{@model.children}}
@expandedIcon={{@expandedIcon}}
@collapsedIcon={{@collapsedIcon}}
as |node|
>
{{yield node}}
</XTreeBranch>
{{/if}}
{{else}}
<XTreeNode
@model={{@model}}
@checkable={{@checkable}}
@recursiveCheck={{@recursiveCheck}}
@updateCheckbox={{this.updateCheckbox}}
@chosenId={{@chosenId}}
@onCheck={{@onCheck}}
@onContextMenu={{@onContextMenu}}
@onSelect={{@onSelect}}
@onHover={{@onHover}}
@onHoverOut={{@onHoverOut}}
@expandedIcon={{@expandedIcon}}
@collapsedIcon={{@collapsedIcon}}
/>
{{#if @model.isExpanded}}
<XTreeBranch
@model={{@model.children}}
@checkable={{@checkable}}
@recursiveCheck={{@recursiveCheck}}
@updateCheckbox={{this.updateCheckbox}}
@chosenId={{@chosenId}}
@onCheck={{@onCheck}}
@onContextMenu={{@onContextMenu}}
@onSelect={{@onSelect}}
@onHover={{@onHover}}
@onHoverOut={{@onHoverOut}}
@expandedIcon={{@expandedIcon}}
@collapsedIcon={{@collapsedIcon}}
/>
{{/if}}
{{/if}}
</li>
46 changes: 20 additions & 26 deletions addon/components/x-tree-children.js
Original file line number Diff line number Diff line change
@@ -1,34 +1,28 @@
import Component from '@ember/component';
import layout from '../templates/components/x-tree-children';
import { setProperties } from '@ember/object';
import Component from '@glimmer/component';
import { action, setProperties } from '@ember/object';

export default Component.extend({
layout,
tagName: 'li',
classNames: ['tree-node'],
export default class TreeChildrenComponent extends Component {
@action
updateCheckbox() {
if (this.args.recursiveCheck) {
let { children } = this.args.model;

actions: {
updateCheckbox() {
if (this.recursiveCheck) {
let { children } = this.model;
if (children.length) {
let isChecked = false;
let isIndeterminate = false;

if (children.length) {
let isChecked = false;
let isIndeterminate = false;

if (children.every(x => x.isChecked)) {
isChecked = true;
} else if (children.some(x => x.isChecked || x.isIndeterminate)) {
isIndeterminate = true;
}

setProperties(this.model, { isChecked, isIndeterminate });
if (children.every(x => x.isChecked)) {
isChecked = true;
} else if (children.some(x => x.isChecked || x.isIndeterminate)) {
isIndeterminate = true;
}

if (this.updateCheckbox) {
this.updateCheckbox();
}
setProperties(this.args.model, { isChecked, isIndeterminate });
}

if (this.args.updateCheckbox) {
this.args.updateCheckbox();
}
}
}
});
}
File renamed without changes.
Loading

0 comments on commit c3450bc

Please sign in to comment.