From 8582d43c8e46e739f5437bf1b712586e82b3cec7 Mon Sep 17 00:00:00 2001 From: Axel Peter Date: Thu, 8 Nov 2018 17:07:48 +0100 Subject: [PATCH] fix(oui-select-picker): fix transclude with component instead of span --- packages/oui-select-picker/README.md | 22 ++++++- packages/oui-select-picker/src/index.js | 4 +- .../select-picker-section.component.js | 16 +++++ .../src/select-picker.component.js | 3 +- .../src/select-picker.controller.js | 3 +- .../oui-select-picker/src/select-picker.html | 59 ++++++++++--------- 6 files changed, 75 insertions(+), 32 deletions(-) create mode 100644 packages/oui-select-picker/src/section/select-picker-section.component.js diff --git a/packages/oui-select-picker/README.md b/packages/oui-select-picker/README.md index 217b1481..3ee7726b 100644 --- a/packages/oui-select-picker/README.md +++ b/packages/oui-select-picker/README.md @@ -39,7 +39,25 @@ disabled> ``` -### Sections +### Sections using `oui-select-picker-section` + +```html:preview + + Section 1 + Section 2 + + + Section 1 + Section 2 + +``` + +### Sections using `span` ```html:preview ``` +**Note**: This use is **deprecated** and will be removed in the next major version + ### On change ```html:preview diff --git a/packages/oui-select-picker/src/index.js b/packages/oui-select-picker/src/index.js index dd9bd26f..c9f59a13 100644 --- a/packages/oui-select-picker/src/index.js +++ b/packages/oui-select-picker/src/index.js @@ -1,6 +1,8 @@ -import SelectPicker from "./select-picker.component.js"; +import SelectPicker from "./select-picker.component"; +import SelectPickerSection from "./section/select-picker-section.component"; export default angular .module("oui.select-picker", []) .component("ouiSelectPicker", SelectPicker) + .component("ouiSelectPickerSection", SelectPickerSection) .name; diff --git a/packages/oui-select-picker/src/section/select-picker-section.component.js b/packages/oui-select-picker/src/section/select-picker-section.component.js new file mode 100644 index 00000000..de45425c --- /dev/null +++ b/packages/oui-select-picker/src/section/select-picker-section.component.js @@ -0,0 +1,16 @@ +export default { + controller: class { + constructor ($element, $timeout) { + "ngInject"; + + this.$element = $element; + this.$timeout = $timeout; + } + + $postLink () { + this.$timeout(() => + this.$element.addClass("oui-select-picker__section") + ); + } + } +}; diff --git a/packages/oui-select-picker/src/select-picker.component.js b/packages/oui-select-picker/src/select-picker.component.js index 0f83f1ed..35a0ce0e 100644 --- a/packages/oui-select-picker/src/select-picker.component.js +++ b/packages/oui-select-picker/src/select-picker.component.js @@ -5,7 +5,8 @@ export default { template, controller, transclude: { - sectionSlot: "?span" + sectionSlot: "?ouiSelectPickerSection", + deprecatedSlot: "?span" // Deprecated: Replaced by "oui-select-picker-section" }, bindings: { model: "=?", diff --git a/packages/oui-select-picker/src/select-picker.controller.js b/packages/oui-select-picker/src/select-picker.controller.js index c03ac343..8f05fea7 100644 --- a/packages/oui-select-picker/src/select-picker.controller.js +++ b/packages/oui-select-picker/src/select-picker.controller.js @@ -40,7 +40,8 @@ export default class SelectPickerController { } } - this.transcludeSection = this.$transclude.isSlotFilled("sectionSlot"); + this.sectionTransclude = this.$transclude.isSlotFilled("sectionSlot"); + this.deprecatedTransclude = this.$transclude.isSlotFilled("deprecatedSlot"); } $postLink () { diff --git a/packages/oui-select-picker/src/select-picker.html b/packages/oui-select-picker/src/select-picker.html index ceecbfd3..269670cc 100644 --- a/packages/oui-select-picker/src/select-picker.html +++ b/packages/oui-select-picker/src/select-picker.html @@ -1,22 +1,22 @@ + name="{{:: $ctrl.name }}" + ng-attr-aria-labelledby="{{:: $ctrl.id }}Label" + ng-attr-aria-describedby="{{:: $ctrl.description && $ctrl.id + 'Description' || undefined }}" + ng-attr-id="{{:: $ctrl.id }}" + ng-change="$ctrl.onRadioModelChange({ modelValue: $ctrl.model })" + ng-disabled="$ctrl.disabled" + ng-model="$ctrl.model" + ng-required="$ctrl.required" + ng-value="$ctrl.selectedValue">