Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

paper menu, paper select and paper autocomplete #395

Merged
merged 136 commits into from
Oct 27, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
136 commits
Select commit Hold shift + click to select a range
6918f5d
first attempt WIP
miguelcobain Jun 15, 2016
918348a
customize positioning logic
miguelcobain Jun 15, 2016
f1f0c9d
added scale animation. added offset and position properties. cleanup.
miguelcobain Jun 16, 2016
e89c778
update docs
miguelcobain Jun 16, 2016
66c8061
add dense menus. some moew cleanup
miguelcobain Jun 16, 2016
803b123
Merge branch 'master' of https://github.com/miguelcobain/ember-paper …
miguelcobain Jun 20, 2016
599111c
extract parent/child logic into mixins
miguelcobain Jun 20, 2016
c7ec7f9
merge master
miguelcobain Jul 4, 2016
ba39846
Merge branch 'paper-menu' of https://github.com/miguelcobain/ember-pa…
miguelcobain Jul 4, 2016
1166dc2
keyboard support for new paper-menu, made menu-item contextual component
ibarrick Jul 6, 2016
955d48c
tests and undestructuring run.later
ibarrick Jul 7, 2016
f8225dd
dealt with the jscs pedantics
ibarrick Jul 7, 2016
07155cc
no longer yielding this
ibarrick Jul 8, 2016
1a72770
Added keyboard support for paper-menu (#416)
ibarrick Jul 8, 2016
d5355c6
added virtual-repeate and most of the demo
ibarrick Jul 9, 2016
a189257
finished implementing demos
ibarrick Jul 10, 2016
141d7d9
passes syntax checks
ibarrick Jul 11, 2016
c934f62
added tests
ibarrick Jul 11, 2016
8ea8881
e-p-s integration
ibarrick Jul 12, 2016
df961b3
jscs fix
ibarrick Jul 12, 2016
a518481
merge conflict resolved
ibarrick Jul 12, 2016
82992d8
eps wip
ibarrick Jul 14, 2016
4828c70
eps wip
ibarrick Jul 19, 2016
0715429
animation fixes and ENTER key support
ibarrick Jul 26, 2016
fb5cf38
all tests passing, autocomplete just missing virtual repeat
ibarrick Jul 28, 2016
bba32aa
merged
ibarrick Jul 28, 2016
cabde7f
resolved merge difficulties
ibarrick Jul 28, 2016
ab09c32
autocomplete integrated with virtual repeat
ibarrick Jul 29, 2016
f4049d3
added tests for paper-autocomplete
ibarrick Jul 29, 2016
ff76466
added clear functionality
ibarrick Jul 29, 2016
7ec6e93
cleaned up demo and removed cruft
ibarrick Jul 29, 2016
825d6b8
remove unused didOpen. rename components
miguelcobain Aug 2, 2016
d217074
Merge branch 'ibarrick-paper-menu-keys' into paper-menu
miguelcobain Aug 2, 2016
1d73ee3
merge master
miguelcobain Aug 2, 2016
0de7e6c
Merge branch 'master' of https://github.com/miguelcobain/ember-paper …
miguelcobain Aug 16, 2016
238280a
update eps and ebd
miguelcobain Aug 31, 2016
3f1a00d
merge css-transitions branch
miguelcobain Aug 31, 2016
425888c
update paper-menu (again)
miguelcobain Aug 31, 2016
ccf284a
update paper-select (again)
miguelcobain Aug 31, 2016
2460955
Fixed paper-autocomplete
xomaczar Sep 1, 2016
2c88c44
Fixed paper-autocomplete deprecations
xomaczar Sep 2, 2016
4f5ded3
Fix autocomplete fetch dummy app
xomaczar Sep 3, 2016
e1cceb4
Add animating paper-reset-button
xomaczar Sep 3, 2016
26496bf
Fix dummy autocomplete country selection
xomaczar Sep 3, 2016
d8750cd
fix jscs errors
miguelcobain Sep 3, 2016
287a97c
Merge branch 'xomaczar-paper-menu' into paper-menu
miguelcobain Sep 3, 2016
030fbd1
Merge branch 'master' into paper-menu
miguelcobain Sep 3, 2016
d2a53bd
remove test
miguelcobain Sep 4, 2016
f940367
disable scrolling when autocomplete open
miguelcobain Sep 6, 2016
3c1a56c
destructure computed
miguelcobain Sep 6, 2016
dde1efc
use class-based flex
miguelcobain Sep 6, 2016
8555a2a
add guard in case focusTarget undefined (#484)
ibarrick Sep 7, 2016
a7f4e89
Close menu on click (#485)
ibarrick Sep 7, 2016
e2cab45
make progress-linear component visible when querying autocomplete wit…
xomaczar Sep 7, 2016
5e14f9f
change autocomplete trigger target to .md-input
xomaczar Sep 7, 2016
9c2d589
extracted validation to a mixin and added the mixin to paper-select
ibarrick Sep 9, 2016
46287a5
changed growTextArea algorithm to follow more recent spec
ibarrick Sep 9, 2016
92e8eeb
asdf
ibarrick Sep 10, 2016
8df8315
Call power-select's contentFor hook for body-footer (#494)
pauln Sep 14, 2016
cb19ca1
Fixed ember-suave warnings
xomaczar Sep 15, 2016
ebad8d6
Clear autocomplete when dropdown is closed
xomaczar Sep 15, 2016
c1f9b2f
Remove debugging code
xomaczar Sep 15, 2016
ddcad3a
Set autocomplete input focus when selection is cleared
xomaczar Sep 15, 2016
e0cd5d0
Fixed jscs warnings
xomaczar Sep 15, 2016
b06d35c
added child mixin to select for use with forms
ibarrick Sep 15, 2016
41e0bec
Use String.htmlSafe in highlight
xomaczar Sep 15, 2016
71be2c0
feat(paper-autocomplete) paper-virtual-repeat
xomaczar Sep 17, 2016
920737a
Merge branch 'paper-menu' of https://github.com/miguelcobain/ember-pa…
ibarrick Sep 18, 2016
f71ed72
added yield of normal visible items
ibarrick Sep 19, 2016
a018cf1
fixed disabled for select
ibarrick Sep 19, 2016
6f9a7df
add label. make focusable a mixin
miguelcobain Sep 19, 2016
1b61342
fix typo
miguelcobain Sep 19, 2016
0d55db3
Merge branch 'select-disabled' of https://github.com/ibarrick/ember-p…
miguelcobain Sep 20, 2016
311fa4b
remove unecessary attribute bindings
miguelcobain Sep 20, 2016
c08cabf
Merge branch 'ibarrick-select-disabled' into paper-menu
miguelcobain Sep 20, 2016
d8f06de
add labels per #488
miguelcobain Sep 20, 2016
83789db
Merge branch 'textarea-fix' of https://github.com/ibarrick/ember-pape…
miguelcobain Sep 20, 2016
050d158
use || instead of ?
miguelcobain Sep 20, 2016
f002ec6
Merge branch 'ibarrick-textarea-fix' into paper-menu
miguelcobain Sep 20, 2016
aef7ebb
Merge branch 'master' into paper-menu
miguelcobain Sep 20, 2016
e6c8ad5
merged and added assertion to validation-mixin
ibarrick Sep 21, 2016
46aeb35
Add self jshint
xomaczar Sep 22, 2016
69e17ca
Added highlight to paper-autocomplete example
xomaczar Sep 22, 2016
b586727
integrated paper-virtual-repeat
xomaczar Sep 22, 2016
5f0d7a0
Merge remote-tracking branch 'upstream/paper-menu' into paper-menu
xomaczar Sep 22, 2016
89745d4
Merge branch 'paper-menu' into paper-autocomplete
xomaczar Sep 22, 2016
b06a564
Upgraded [email protected]
xomaczar Sep 23, 2016
c398335
Add onBlur support to paper-autocomplete
pauln Sep 27, 2016
397dec0
Upgrade paper-menu branch to ember-power-select 1.0.0-beta.19 (#503)
pauln Sep 27, 2016
a7564f7
Merge branch 'select-validation' of https://github.com/ibarrick/ember…
miguelcobain Sep 27, 2016
6e0226b
make paper-select show asterisk on required attribute present
miguelcobain Sep 27, 2016
a903ec5
set validationProperty to a falsy value
miguelcobain Sep 27, 2016
fdac77e
Merge branch 'ibarrick-select-validation' into paper-menu
miguelcobain Sep 27, 2016
763255e
merge update css-transitions
miguelcobain Sep 27, 2016
9c1512c
rename to transitionName
miguelcobain Sep 27, 2016
f19a6f2
clone still needs to be removed if the component has been destroyed (…
ibarrick Sep 27, 2016
1be9273
Reinstate deactivate action in paper-autocomplete onBlur
pauln Sep 28, 2016
3c7fcef
Fixed virtual-repeat
xomaczar Sep 30, 2016
47f1cab
Merge remote-tracking branch 'upstream/paper-menu' into paper-menu
xomaczar Sep 30, 2016
ef6dcb2
fixed jshint errors
xomaczar Sep 30, 2016
a370c5f
Fixed dummy app jscs warnings
xomaczar Oct 1, 2016
0c6ddc5
Fixed virtual-repeat tests
xomaczar Oct 1, 2016
63e2549
merge master
miguelcobain Oct 3, 2016
2f54e04
kludge to fix glimmer2 support pending interaction from ember team (#…
ibarrick Oct 3, 2016
db5b723
Remove unnecessary deactivate from paper-autocomplete template
pauln Oct 3, 2016
d10b4fb
Merge remote-tracking branch 'upstream/paper-menu' into paper-menu
xomaczar Oct 3, 2016
c646894
Add camel-case aliases for onFocus and onBlur in paper-autocomplete
pauln Oct 3, 2016
ba70a65
Merge branch 'paper-menu' into paper-menu-ac-blur
pauln Oct 3, 2016
f6bfed7
refactored computed properties with get hash to functions
xomaczar Oct 4, 2016
c059983
fix autocomplete w/ label disabled
xomaczar Oct 4, 2016
8d3a4dc
merge master
miguelcobain Oct 4, 2016
c90b7e2
Merge branch 'master' into paper-menu
miguelcobain Oct 4, 2016
616d520
fixed VR infinite scroll
xomaczar Oct 5, 2016
e70497f
Merge branch 'paper-menu' of https://github.com/xomaczar/ember-paper …
miguelcobain Oct 5, 2016
a93aea2
Merge branch 'xomaczar-paper-menu' into paper-menu
miguelcobain Oct 5, 2016
ea8e273
merge
miguelcobain Oct 5, 2016
2da3d9d
Merge branch 'pauln-paper-menu-ac-blur' into paper-menu
miguelcobain Oct 5, 2016
f0136ce
fix tests
miguelcobain Oct 5, 2016
019a1cb
dont use Array.from
miguelcobain Oct 5, 2016
46b4fc3
Fixed problem with paper-select-options in Ember 2.7+ (#510)
ibarrick Oct 6, 2016
702bb74
Merge branch 'master' into paper-menu
miguelcobain Oct 6, 2016
95f0cfc
Merge branch 'paper-menu' of https://github.com/miguelcobain/ember-pa…
miguelcobain Oct 6, 2016
f780b54
Merge branch 'master' into paper-menu
miguelcobain Oct 7, 2016
1d28ae6
paper-autocomplete: don't highlight options by default (#519)
pauln Oct 11, 2016
0a2fb3a
Merge branch 'master' into paper-menu
miguelcobain Oct 13, 2016
b38c452
Merge branch 'master' into paper-menu
miguelcobain Oct 13, 2016
f97c5d7
fix some changelog references
miguelcobain Oct 13, 2016
918ed70
Merge branch 'master' into paper-menu
miguelcobain Oct 13, 2016
8b78516
enable paper-menu animations
miguelcobain Oct 14, 2016
374c005
support for searchText binding (#524)
ibarrick Oct 17, 2016
cd1ae6e
Don't show dropdown if paper-autocomplete has a selected value and
xomaczar Oct 18, 2016
d726886
Show dropdown on searchText changes
xomaczar Oct 18, 2016
5f264a2
Require either onSearchTextChange or onSelectionChange or both
xomaczar Oct 26, 2016
42a5f9c
some doc cleanup
miguelcobain Oct 27, 2016
14e7ef8
Merge branch 'xomaczar-paper-autocomplete-fix-selected-focusin' into …
miguelcobain Oct 27, 2016
bcb0071
update CHANGELOG and remove warning signs
miguelcobain Oct 27, 2016
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .jshintrc
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"predef": [
"document",
"window",
"self",
"-Promise"
],
"browser": true,
Expand Down
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,13 @@ Contributions and pull requests are always welcome. Contributors may often be fo
- `paper-icon`'s `size` attribute now takes a size in pixels, and `lg` or `sm` values are no longer supported.
- renamed the `paper-radio-group` `paper-radio` to just `radio` -- usage would now be `group.radio` as opposed to `group.paper-radio`.

#### 1.0.0-alpha.6
- [#395](https://github.com/miguelcobain/ember-paper/pull/395) The Great Update of paper-menu et al:
- `paper-menu` was updated. It uses [ember-basic-dropdown](https://github.com/cibernox/ember-basic-dropdown) under the hood and the API is the same
- `paper-select` and `paper-autocomplete` were updated. They use [ember-power-select](https://github.com/cibernox/ember-power-select) under the hood and the API is the same
- See the referenced projects and ember-paper's documentation examples to understand the new API
- Special thanks to the champions of this update @xomaczar and @ibarrick

#### 1.0.0-alpha.5
- [#521](https://github.com/miguelcobain/ember-paper/pull/521) Update Angular SCSS import to work with yarn and npm3 flat node_modules
- [#520](https://github.com/miguelcobain/ember-paper/pull/520) fixes issues with people seeing `regeneratorRuntime is not defined`
Expand Down
3 changes: 3 additions & 0 deletions addon/components/paper-autocomplete-content.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import ContentComponent from 'ember-basic-dropdown/components/basic-dropdown/content';

export default ContentComponent;
94 changes: 94 additions & 0 deletions addon/components/paper-autocomplete-dropdown.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
import Ember from 'ember';
import BasicDropdown from 'ember-basic-dropdown/components/basic-dropdown';

const { $ } = Ember;

export default BasicDropdown.extend({
triggerComponent: 'paper-autocomplete-trigger-container',

reposition() {
if (!this.publicAPI.isOpen) {
return;
}

let dropdownElement = $(`.${this.dropdownId}`).get(0);
let triggerElement = document.getElementById(this.triggerId);

if (!dropdownElement || !triggerElement) {
return;
}

let renderInPlace = this.get('renderInPlace');
if (renderInPlace) {
this.performNaiveReposition(triggerElement, dropdownElement);
} else {
this.performFullReposition(triggerElement, dropdownElement);
}
},

performFullReposition(trigger, dropdown) {
let {
horizontalPosition, verticalPosition, matchTriggerWidth
} = this.getProperties('horizontalPosition', 'verticalPosition', 'matchTriggerWidth');
let $window = $(window);
let scroll = { left: $window.scrollLeft(), top: $window.scrollTop() };
let { left: triggerLeft, top: triggerTop, width: triggerWidth, height: triggerHeight } = trigger.getBoundingClientRect();
let { height: dropdownHeight, width: dropdownWidth } = dropdown.getBoundingClientRect();
let dropdownLeft = triggerLeft;
let dropdownTop;
dropdownWidth = matchTriggerWidth ? triggerWidth : dropdownWidth;

if (horizontalPosition === 'auto') {
let viewportRight = scroll.left + window.innerWidth;
let roomForRight = viewportRight - triggerLeft;
let roomForLeft = triggerLeft;
horizontalPosition = roomForRight > roomForLeft ? 'left' : 'right';
} else if (horizontalPosition === 'right') {
dropdownLeft = triggerLeft + triggerWidth - dropdownWidth;
} else if (horizontalPosition === 'center') {
dropdownLeft = triggerLeft + (triggerWidth - dropdownWidth) / 2;
}

let triggerTopWithScroll = triggerTop + scroll.top;
if (verticalPosition === 'above') {
dropdownTop = triggerTopWithScroll - dropdownHeight;
} else if (verticalPosition === 'below') {
dropdownTop = triggerTopWithScroll + triggerHeight;
} else {
let viewportBottom = scroll.top + window.innerHeight;
let enoughRoomBelow = triggerTopWithScroll + triggerHeight + dropdownHeight < viewportBottom;
let enoughRoomAbove = triggerTop > dropdownHeight;

if (this.previousVerticalPosition === 'below' && !enoughRoomBelow && enoughRoomAbove) {
verticalPosition = 'above';
} else if (this.previousVerticalPosition === 'above' && !enoughRoomAbove && enoughRoomBelow) {
verticalPosition = 'below';
} else if (!this.previousVerticalPosition) {
verticalPosition = enoughRoomBelow ? 'below' : 'above';
} else {
verticalPosition = this.previousVerticalPosition;
}

dropdownTop = triggerTopWithScroll + (verticalPosition === 'below' ? triggerHeight : -dropdownHeight) - (verticalPosition === 'below' ? getVerticalOffset() : 0);
}
function getVerticalOffset() {
let offset = 0;
let inputContainer = $(trigger).find('md-input-container');
if (inputContainer.length) {
let input = inputContainer.find('input');
offset = inputContainer.prop('offsetHeight');
offset -= input.prop('offsetTop');
offset -= input.prop('offsetHeight');
// add in the height left up top for the floating label text
offset += inputContainer.prop('offsetTop');
}
return offset;
}
let style = { top: `${dropdownTop}px`, left: `${dropdownLeft}px` };
if (matchTriggerWidth) {
style.width = `${dropdownWidth}px`;
}
this.applyReposition(trigger, dropdown, { horizontalPosition, verticalPosition, style });
}

});
1 change: 1 addition & 0 deletions addon/components/paper-autocomplete-highlight.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ export default Component.extend({
let text = this.get('label');
let flags = this.get('flags');
let regex = this.getRegExp(this.get('searchText'), flags);

let html = text.replace(regex, '<span class="highlight">$&</span>');
return htmlSafe(html);
}),
Expand Down
34 changes: 0 additions & 34 deletions addon/components/paper-autocomplete-item.js

This file was deleted.

122 changes: 0 additions & 122 deletions addon/components/paper-autocomplete-list.js

This file was deleted.

17 changes: 17 additions & 0 deletions addon/components/paper-autocomplete-options.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import Ember from 'ember';
import PowerOptions from 'ember-power-select/components/power-select/options';

const { get } = Ember;

export default PowerOptions.extend({

_optionFromIndex(index) {
let parts = index.split('.');
let options = this.get('options');
let option = options[parseInt(parts[0], 10)];
for (let i = 1; i < parts.length; i++) {
option = option.options[parseInt(parts[i], 10)];
}
return option !== undefined ? get(option, 'raw') : option;
}
});
34 changes: 34 additions & 0 deletions addon/components/paper-autocomplete-trigger-container.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import Ember from 'ember';
import BasicTrigger from 'ember-basic-dropdown/components/basic-dropdown/trigger';
const { computed } = Ember;

export default BasicTrigger.extend({
tagName: 'md-autocomplete',
attributeBindings: ['label:md-floating-label','disabled:disabled'],
disabled: computed('disabledProxy', function() {
return this.get('disabledProxy') ? this.get('disabledProxy') : undefined;
}),

// Chrome 51: setting tabindex=0 explicitly stops tab propogation to
// other elements. We need to verify that other browsers behave as expected.
tabIndex: computed('dropdown.disabled', 'tabindex', function() {
let tabindex = this.get('tabindex');

// tabindex = falsy - don't set tabindex attr
if (!tabindex || this.get('dropdown.disabled')) {
return null;
}
return tabindex;
}),

actions: {

handleMousedown() {
let dropdown = this.get('dropdown');
if (dropdown.disabled) {
return;
}
this.stopTextSelectionUntilMouseup();
}
}
});
Loading