@@ -47,7 +47,7 @@ angular.module( 'isteven-multi-select', ['ng'] ).directive( 'istevenMultiSelect'
47
47
// settings based on attribute
48
48
buttonLabel : '@' ,
49
49
directiveId : '@' ,
50
- helperElements : '@' ,
50
+ helperElements : '@' ,
51
51
isDisabled : '=' ,
52
52
itemLabel : '@' ,
53
53
maxLabels : '@' ,
@@ -75,80 +75,8 @@ angular.module( 'isteven-multi-select', ['ng'] ).directive( 'istevenMultiSelect'
75
75
// i18n
76
76
translation : '=' // 3.0.0 - OK
77
77
} ,
78
-
79
- template :
80
- '<span class="multiSelect inlineBlock" id={{directiveId}}>' +
81
- '<button type="button"' +
82
- 'ng-click="toggleCheckboxes( $event ); refreshSelectedItems(); refreshButton(); prepareGrouping; prepareIndex();"' +
83
- 'ng-bind-html="varButtonLabel">' +
84
- '</button>' +
85
- '<div class="checkboxLayer">' +
86
-
87
- '<div class="helperContainer" ng-if="displayHelper( \'filter\' ) || displayHelper( \'all\' ) || displayHelper( \'none\' ) || displayHelper( \'reset\' )">' +
88
- '<div class="line" ng-if="displayHelper( \'all\' ) || displayHelper( \'none\' ) || displayHelper( \'reset\' )">' +
89
-
90
- '<button type="button" class="helperButton"' +
91
- 'ng-if="!isDisabled && displayHelper( \'all\' )"' +
92
- 'ng-click="select( \'all\', $event );"' +
93
- 'ng-bind-html="lang.selectAll">' +
94
- '</button>' +
95
-
96
- '<button type="button" class="helperButton"' +
97
- 'ng-if="!isDisabled && displayHelper( \'none\' )"' +
98
- 'ng-click="select( \'none\', $event );"' +
99
- 'ng-bind-html="lang.selectNone">' +
100
- '</button>' +
101
-
102
- '<button type="button" class="helperButton reset"' +
103
- 'ng-if="!isDisabled && displayHelper( \'reset\' )"' +
104
- 'ng-click="select( \'reset\', $event );"' +
105
- 'ng-bind-html="lang.reset">' +
106
- '</button>' +
107
- '</div>' +
108
-
109
- '<div class="line" style="position:relative" ng-if="displayHelper( \'filter\' )">' +
110
-
111
- '<input placeholder="{{lang.search}}" type="text"' +
112
- 'ng-click="select( \'filter\', $event )" ' +
113
- 'ng-model="inputLabel.labelFilter" ' +
114
- 'ng-change="searchChanged()" class="inputFilter"' +
115
- '/>' +
116
-
117
- '<button type="button" class="clearButton" ng-click="clearClicked( $event )" >×</button> ' +
118
- '</div> ' +
119
- '</div> ' +
120
-
121
- '<div class="checkBoxContainer">' +
122
- '<div ' +
123
- 'ng-repeat="item in filteredModel | filter:removeGroupEndMarker" class="multiSelectItem"' +
124
- 'ng-class="{selected: item[ tickProperty ], horizontal: orientationH, vertical: orientationV, multiSelectGroup:item[ groupProperty ], disabled:itemIsDisabled( item )}"' +
125
- 'ng-click="syncItems( item, $event, $index );" ' +
126
- 'ng-mouseleave="removeFocusStyle( tabIndex );"> ' +
127
-
128
- '<div class="acol" ng-if="item[ spacingProperty ] > 0" ng-repeat="i in numberToArray( item[ spacingProperty ] ) track by $index">' +
78
+ templateUrl : 'isteven-multi-select.html' ,
129
79
130
- '</div> ' +
131
-
132
- '<div class="acol">' +
133
-
134
- '<label>' +
135
- '<input class="checkbox focusable" type="checkbox" ' +
136
- 'ng-disabled="itemIsDisabled( item )" ' +
137
- 'ng-checked="item[ tickProperty ]" ' +
138
- 'ng-click="syncItems( item, $event, $index )" />' +
139
-
140
- '<span ' +
141
- 'ng-class="{disabled:itemIsDisabled( item )}" ' +
142
- 'ng-bind-html="writeLabel( item, \'itemLabel\' )">' +
143
- '</span>' +
144
- '</label>' +
145
- '</div>' +
146
-
147
- '<span class="tickMark" ng-if="item[ groupProperty ] !== true && item[ tickProperty ] === true">✔</span>' +
148
- '</div>' +
149
- '</div>' +
150
- '</div>' +
151
- '</span>' ,
152
80
153
81
link : function ( $scope , element , attrs ) {
154
82
@@ -1042,5 +970,80 @@ angular.module( 'isteven-multi-select', ['ng'] ).directive( 'istevenMultiSelect'
1042
970
} ) ;
1043
971
}
1044
972
}
1045
- } ] ) ;
973
+ } ] ) . run ( [ '$templateCache' , function ( $templateCache ) {
974
+ var template =
975
+ '<span class="multiSelect inlineBlock" id={{directiveId}}>' +
976
+ '<button type="button"' +
977
+ 'ng-click="toggleCheckboxes( $event ); refreshSelectedItems(); refreshButton(); prepareGrouping; prepareIndex();"' +
978
+ 'ng-bind-html="varButtonLabel">' +
979
+ '</button>' +
980
+ '<div class="checkboxLayer">' +
981
+
982
+ '<div class="helperContainer" ng-if="displayHelper( \'filter\' ) || displayHelper( \'all\' ) || displayHelper( \'none\' ) || displayHelper( \'reset\' )">' +
983
+ '<div class="line" ng-if="displayHelper( \'all\' ) || displayHelper( \'none\' ) || displayHelper( \'reset\' )">' +
984
+
985
+ '<button type="button" class="helperButton"' +
986
+ 'ng-if="!isDisabled && displayHelper( \'all\' )"' +
987
+ 'ng-click="select( \'all\', $event );"' +
988
+ 'ng-bind-html="lang.selectAll">' +
989
+ '</button>' +
990
+
991
+ '<button type="button" class="helperButton"' +
992
+ 'ng-if="!isDisabled && displayHelper( \'none\' )"' +
993
+ 'ng-click="select( \'none\', $event );"' +
994
+ 'ng-bind-html="lang.selectNone">' +
995
+ '</button>' +
996
+
997
+ '<button type="button" class="helperButton reset"' +
998
+ 'ng-if="!isDisabled && displayHelper( \'reset\' )"' +
999
+ 'ng-click="select( \'reset\', $event );"' +
1000
+ 'ng-bind-html="lang.reset">' +
1001
+ '</button>' +
1002
+ '</div>' +
1003
+
1004
+ '<div class="line" style="position:relative" ng-if="displayHelper( \'filter\' )">' +
1005
+
1006
+ '<input placeholder="{{lang.search}}" type="text"' +
1007
+ 'ng-click="select( \'filter\', $event )" ' +
1008
+ 'ng-model="inputLabel.labelFilter" ' +
1009
+ 'ng-change="searchChanged()" class="inputFilter"' +
1010
+ '/>' +
1011
+
1012
+ '<button type="button" class="clearButton" ng-click="clearClicked( $event )" >×</button> ' +
1013
+ '</div> ' +
1014
+ '</div> ' +
1015
+
1016
+ '<div class="checkBoxContainer">' +
1017
+ '<div ' +
1018
+ 'ng-repeat="item in filteredModel | filter:removeGroupEndMarker" class="multiSelectItem"' +
1019
+ 'ng-class="{selected: item[ tickProperty ], horizontal: orientationH, vertical: orientationV, multiSelectGroup:item[ groupProperty ], disabled:itemIsDisabled( item )}"' +
1020
+ 'ng-click="syncItems( item, $event, $index );" ' +
1021
+ 'ng-mouseleave="removeFocusStyle( tabIndex );"> ' +
1022
+
1023
+ '<div class="acol" ng-if="item[ spacingProperty ] > 0" ng-repeat="i in numberToArray( item[ spacingProperty ] ) track by $index">' +
1024
+
1025
+ '</div> ' +
1026
+
1027
+ '<div class="acol">' +
1028
+
1029
+ '<label>' +
1030
+ '<input class="checkbox focusable" type="checkbox" ' +
1031
+ 'ng-disabled="itemIsDisabled( item )" ' +
1032
+ 'ng-checked="item[ tickProperty ]" ' +
1033
+ 'ng-click="syncItems( item, $event, $index )" />' +
1034
+
1035
+ '<span ' +
1036
+ 'ng-class="{disabled:itemIsDisabled( item )}" ' +
1037
+ 'ng-bind-html="writeLabel( item, \'itemLabel\' )">' +
1038
+ '</span>' +
1039
+ '</label>' +
1040
+ '</div>' +
1041
+
1042
+ '<span class="tickMark" ng-if="item[ groupProperty ] !== true && item[ tickProperty ] === true">✔</span>' +
1043
+ '</div>' +
1044
+ '</div>' +
1045
+ '</div>' +
1046
+ '</span>' ;
1047
+ $templateCache . put ( 'isteven-multi-select.html' , template ) ;
1048
+ } ] ) ; ;
1046
1049
0 commit comments