|
1 | 1 | /**
|
2 | 2 | * angular-bootstrap-scrolling-tabs
|
3 |
| - * @version v1.1.0 |
| 3 | + * @version v1.2.0 |
4 | 4 | * @link https://github.com/mikejacobson/angular-bootstrap-scrolling-tabs
|
5 | 5 | * @author Mike Jacobson <[email protected]>
|
6 | 6 | * @license MIT License, http://www.opensource.org/licenses/MIT
|
|
113 | 113 | var ehd = this,
|
114 | 114 | stc = ehd.stc,
|
115 | 115 | $tabsContainer = stc.$tabsContainer,
|
116 |
| - tabContentCloneCssClass = 'scrtabs-tab-content-clone', |
117 |
| - $tabContentInMovableContainer = $tabsContainer.find('.scrtabs-tabs-movable-container .tab-content'), |
118 |
| - $currTcClone, |
119 |
| - $newTcClone; |
120 |
| - |
121 |
| - // if the tabs won't be changing, we can just move the |
122 |
| - // the .tab-content outside the scrolling container right now |
123 |
| - if (!options.isWatchingTabs) { |
124 |
| - $tabContentInMovableContainer.show().appendTo($tabsContainer); |
125 |
| - return; |
126 |
| - } |
| 116 | + $movableContainer = $tabsContainer.find('.scrtabs-tabs-movable-container'), |
| 117 | + $tabContentInMovableContainer = $movableContainer.find('.tab-content'), |
| 118 | + uibTabsetController = $movableContainer.find('> div').eq(0).data('$uibTabsetController'); |
127 | 119 |
|
128 |
| - /* if we're watching the tabs for changes, we can't just |
129 |
| - * move the .tab-content outside the scrolling container because |
130 |
| - * that will break the angular-ui directive dependencies, and |
131 |
| - * an error will be thrown as soon as the tabs change; |
132 |
| - * so we leave the .tab-content where it is but hide it, then |
133 |
| - * make a clone and move the clone outside the scroll container, |
134 |
| - * which will be the visible .tab-content. |
135 |
| - */ |
136 |
| - |
137 |
| - // create new clone |
138 |
| - $newTcClone = $tabContentInMovableContainer |
139 |
| - .clone() |
140 |
| - .addClass(tabContentCloneCssClass); |
141 |
| - |
142 |
| - // get the current clone, if it exists |
143 |
| - $currTcClone = $tabsContainer.find('.' + tabContentCloneCssClass); |
144 |
| - |
145 |
| - if ($currTcClone.length) { // already a clone there so replace it |
146 |
| - $currTcClone.replaceWith($newTcClone); |
147 |
| - } else { |
148 |
| - $tabsContainer.append($newTcClone); |
149 |
| - } |
| 120 | + $tabContentInMovableContainer.show().appendTo($tabsContainer); |
150 | 121 |
|
| 122 | + if (uibTabsetController) { |
| 123 | + $tabContentInMovableContainer.data('$uibTabsetController', uibTabsetController); |
| 124 | + } |
151 | 125 | };
|
152 | 126 |
|
153 | 127 | p.refreshAllElementSizes = function () {
|
|
195 | 169 | return actionsTaken;
|
196 | 170 | };
|
197 | 171 |
|
198 |
| - p.removeTranscludedTabContentOutsideMovableContainer = function () { |
199 |
| - var ehd = this, |
200 |
| - stc = ehd.stc, |
201 |
| - $tabsContainer = stc.$tabsContainer; |
202 |
| - |
203 |
| - $tabsContainer.find('.scrtabs-tab-content-outside-movable-container').remove(); |
204 |
| - }; |
205 |
| - |
206 | 172 | p.setElementReferences = function () {
|
207 | 173 | var ehd = this,
|
208 | 174 | stc = ehd.stc,
|
|
731 | 697 | isOnTabsRefresh: options.isWatchingTabs
|
732 | 698 | });
|
733 | 699 | }
|
734 |
| - |
735 |
| - |
736 | 700 | }, 100);
|
737 | 701 | };
|
738 | 702 |
|
739 |
| - p.removeTranscludedTabContentOutsideMovableContainer = function() { |
740 |
| - var stc = this, |
741 |
| - elementsHandler = stc.elementsHandler; |
742 |
| - |
743 |
| - elementsHandler.removeTranscludedTabContentOutsideMovableContainer(); |
744 |
| - }; |
745 |
| - |
746 | 703 | /**
|
747 | 704 | * Handles control arrows classnames
|
748 | 705 | *
|
|
928 | 885 | }
|
929 | 886 |
|
930 | 887 | if (!isWrappingAngularUITabset) {
|
931 |
| - scrollingTabsControl.removeTranscludedTabContentOutsideMovableContainer(); |
932 | 888 | scrtc.hasTabContentOutsideMovableContainer = false;
|
933 | 889 | }
|
934 | 890 |
|
|
962 | 918 | (attrs.watchTabs && attrs.watchTabs.toLowerCase() === 'true')) {
|
963 | 919 |
|
964 | 920 | if (isWrappingAngularUITabset) {
|
965 |
| - scrollingTabsControl.removeTranscludedTabContentOutsideMovableContainer(); |
966 | 921 | scrtc.hasTabContentOutsideMovableContainer = false;
|
967 | 922 | }
|
968 | 923 |
|
|
0 commit comments