diff --git a/src/components/searchbar/test/basic/pages/root-page/root-page.html b/src/components/searchbar/test/basic/pages/root-page/root-page.html index d05c1fce6e..19d9f2a6ad 100644 --- a/src/components/searchbar/test/basic/pages/root-page/root-page.html +++ b/src/components/searchbar/test/basic/pages/root-page/root-page.html @@ -3,7 +3,7 @@
Search - Animated
- +

defaultSearch: {{ defaultSearch }} diff --git a/src/components/segment/segment-button.ts b/src/components/segment/segment-button.ts index 161bf0b482..8efdf9341b 100644 --- a/src/components/segment/segment-button.ts +++ b/src/components/segment/segment-button.ts @@ -46,11 +46,16 @@ import { isPresent, isTrueProperty } from '../../util/util'; host: { 'tappable': '', 'class': 'segment-button', - 'role': 'button' + 'role': 'button', + '[class.segment-button-disabled]': '_disabled', + '[class.segment-activated]': 'isActive', + '[attr.aria-pressed]': 'isActive' }, encapsulation: ViewEncapsulation.None, }) export class SegmentButton { + + isActive: boolean = false; _disabled: boolean = false; /** @@ -63,8 +68,6 @@ export class SegmentButton { */ @Output() ionSelect: EventEmitter = new EventEmitter(); - constructor(private _renderer: Renderer, private _elementRef: ElementRef) {} - /** * @input {boolean} If true, the user cannot interact with this element. */ @@ -75,15 +78,9 @@ export class SegmentButton { set disabled(val: boolean) { this._disabled = isTrueProperty(val); - this._setElementClass('segment-button-disabled', this._disabled); } - /** - * @hidden - */ - _setElementClass(cssClass: string, shouldAdd: boolean) { - this._renderer.setElementClass(this._elementRef.nativeElement, cssClass, shouldAdd); - } + constructor(private _renderer: Renderer, private _elementRef: ElementRef) {} /** * @hidden @@ -104,12 +101,4 @@ export class SegmentButton { } } - /** - * @hidden - */ - set isActive(isActive: any) { - this._renderer.setElementClass(this._elementRef.nativeElement, 'segment-activated', isActive); - this._renderer.setElementAttribute(this._elementRef.nativeElement, 'aria-pressed', isActive); - } - } diff --git a/src/components/segment/segment.ios.scss b/src/components/segment/segment.ios.scss index 3f3e9e6f75..0d538c851c 100644 --- a/src/components/segment/segment.ios.scss +++ b/src/components/segment/segment.ios.scss @@ -129,6 +129,11 @@ $segment-button-ios-toolbar-icon-line-height: 2.4rem !default; border-radius: 0 $segment-button-ios-border-radius $segment-button-ios-border-radius 0; } } +.segment-ios.segment-disabled { + opacity: .4; + + pointer-events: none; +} .segment-ios .segment-button-disabled { color: rgba($segment-button-ios-background-color-activated, $segment-button-ios-opacity-disabled); diff --git a/src/components/segment/segment.md.scss b/src/components/segment/segment.md.scss index 7444bfcb65..94ca648d18 100644 --- a/src/components/segment/segment.md.scss +++ b/src/components/segment/segment.md.scss @@ -77,6 +77,7 @@ $segment-button-md-icon-line-height: $segment-button-md-line-height !d } } +.segment-md.segment-disabled, .segment-md .segment-button-disabled { opacity: $segment-button-md-opacity-disabled; diff --git a/src/components/segment/segment.ts b/src/components/segment/segment.ts index 0990f1bcb8..e0cd91c1f2 100644 --- a/src/components/segment/segment.ts +++ b/src/components/segment/segment.ts @@ -62,7 +62,10 @@ import { SegmentButton } from './segment-button'; * @see [Angular 2 Forms](http://learnangular2.com/forms/) */ @Directive({ - selector: 'ion-segment' + selector: 'ion-segment', + host: { + '[class.segment-disabled]': '_disabled' + } }) export class Segment extends BaseInput { diff --git a/src/components/segment/segment.wp.scss b/src/components/segment/segment.wp.scss index 9903e06dd7..9d4a8c4c44 100644 --- a/src/components/segment/segment.wp.scss +++ b/src/components/segment/segment.wp.scss @@ -75,6 +75,7 @@ $segment-button-wp-buttons-justify-content: flex-start !default; } } +.segment-wp.segment-disabled, .segment-wp .segment-button-disabled { opacity: $segment-button-wp-opacity-disabled; diff --git a/src/components/segment/test/basic/pages/home-page/home-page.html b/src/components/segment/test/basic/pages/home-page/home-page.html index fe333557ed..1e96fea577 100644 --- a/src/components/segment/test/basic/pages/home-page/home-page.html +++ b/src/components/segment/test/basic/pages/home-page/home-page.html @@ -33,7 +33,7 @@ Active - + Disabled @@ -44,20 +44,20 @@

Map mode: {{myForm.controls.mapStyle.value}} - - + Standard - + Hybrid - + Satellite


Model style: NgModel

- + Model A @@ -67,12 +67,12 @@ Model C - + Model D

Model Style: Model {{ modelStyle }}

- + @@ -80,7 +80,9 @@ - + + + @@ -112,7 +114,7 @@ - + Default diff --git a/src/components/segment/test/basic/pages/home-page/home-page.ts b/src/components/segment/test/basic/pages/home-page/home-page.ts index 6f6728025e..a1f102c2f3 100644 --- a/src/components/segment/test/basic/pages/home-page/home-page.ts +++ b/src/components/segment/test/basic/pages/home-page/home-page.ts @@ -11,7 +11,9 @@ export class HomePage { modelStyle: string = 'B'; appType: string = 'free'; icons: string = 'camera'; - isDisabled: boolean = true; + isDisabledB: boolean = true; + isDisabledS: boolean = false; + myForm: any; constructor(fb: FormBuilder) { @@ -20,8 +22,12 @@ export class HomePage { }); } - toggleDisabled() { - this.isDisabled = !this.isDisabled; + toggleBDisabled() { + this.isDisabledB = !this.isDisabledB; + } + + toggleSDisabled() { + this.isDisabledS = !this.isDisabledS; } onSegmentChanged(segmentButton: SegmentButton) {