11angular . module ( 'zeroclipboard' , [ ] )
22 . provider ( 'uiZeroclipConfig' , function ( ) {
3+
34 // default configs
45 var _zeroclipConfig = {
5- buttonClass : '' ,
6- swfPath : "ZeroClipboard.swf" ,
7- trustedDomains : [ window . location . host ] ,
8- cacheBust : true ,
9- forceHandCursor : false ,
10- zIndex : 999999999 ,
11- debug : true ,
12- title : null ,
13- autoActivate : true ,
14- flashLoadTimeout : 30000 ,
15- hoverClass : "zeroclipboard-is-hover" ,
16- activeClass : "zeroclipboard-is-active"
6+ buttonClass : '' ,
7+ swfPath : "ZeroClipboard.swf" ,
8+ trustedDomains : [ window . location . host ] ,
9+ cacheBust : true ,
10+ forceHandCursor : false ,
11+ zIndex : 999999999 ,
12+ debug : true ,
13+ title : null ,
14+ autoActivate : true ,
15+ flashLoadTimeout : 30000 ,
16+ hoverClass : "zeroclipboard-is-hover" ,
17+ activeClass : "zeroclipboard-is-active"
1718 } ;
1819 var _overrideConfig = true ;
1920
@@ -32,75 +33,75 @@ angular.module('zeroclipboard', [])
3233 } )
3334
3435 . directive ( 'uiZeroclip' , [ '$document' , '$window' , 'uiZeroclipConfig' ,
35- function ( $document , $window , uiZeroclipConfig ) {
36+ function ( $document , $window , uiZeroclipConfig ) {
3637
37- var zeroclipConfig = uiZeroclipConfig . zeroclipConfig || { } ;
38- var ZeroClipboard = $window . ZeroClipboard ;
38+ var zeroclipConfig = uiZeroclipConfig . zeroclipConfig || { } ;
39+ var ZeroClipboard = $window . ZeroClipboard ;
3940
40- return {
41- scope : {
42- onCopied : '&zeroclipCopied' ,
43- onError : '&?zeroclipOnError' ,
44- onBeforeCopy : '&?zeroclipOnBeforeCopy' ,
45- client : '=?uiZeroclip' ,
46- value : '=zeroclipModel' ,
47- text : '@zeroclipText'
48- } ,
49- link : function ( scope , element , attrs ) {
41+ return {
42+ scope : {
43+ onCopied : '&zeroclipCopied' ,
44+ onError : '&?zeroclipOnError' ,
45+ onBeforeCopy : '&?zeroclipOnBeforeCopy' ,
46+ client : '=?uiZeroclip' ,
47+ value : '=zeroclipModel' ,
48+ text : '@zeroclipText'
49+ } ,
50+ link : function ( scope , element , attrs ) {
5051
51- var btn = element [ 0 ] ;
52- var _completeHnd ;
52+ var btn = element [ 0 ] ;
53+ var _completeHnd ;
5354
54- // config
55- if ( uiZeroclipConfig . overrideConfig ) {
56- ZeroClipboard . config ( zeroclipConfig ) ;
57- }
55+ // config
56+ if ( uiZeroclipConfig . overrideConfig ) {
57+ ZeroClipboard . config ( zeroclipConfig ) ;
58+ }
5859
59- if ( angular . isFunction ( ZeroClipboard ) ) {
60- scope . client = new ZeroClipboard ( btn ) ;
60+ if ( angular . isFunction ( ZeroClipboard ) ) {
61+ scope . client = new ZeroClipboard ( btn ) ;
62+ }
63+
64+ scope . $watch ( 'value' , function ( v ) {
65+ if ( v === undefined ) {
66+ return ;
6167 }
68+ element . attr ( 'data-clipboard-text' , v ) ;
69+ } ) ;
6270
63- scope . $watch ( 'value' , function ( v ) {
64- if ( v === undefined ) {
65- return ;
66- }
67- element . attr ( 'data-clipboard-text' , v ) ;
68- } ) ;
71+ scope . $watch ( 'text' , function ( v ) {
72+ element . attr ( 'data-clipboard-text' , v ) ;
73+ } ) ;
6974
70- scope . $watch ( 'text' , function ( v ) {
71- element . attr ( 'data-clipboard-text' , v ) ;
75+ scope . client . on ( 'aftercopy' , _completeHnd = function ( e ) {
76+ scope . $apply ( function ( ) {
77+ scope . onCopied ( { $event : e } ) ;
7278 } ) ;
79+ } ) ;
7380
74- scope . client . on ( 'aftercopy' , _completeHnd = function ( e ) {
81+ scope . client . on ( 'error' , function ( e ) {
82+ if ( scope . onError ) {
7583 scope . $apply ( function ( ) {
76- scope . onCopied ( { $event : e } ) ;
84+ scope . onError ( { $event : e } ) ;
7785 } ) ;
78- } ) ;
79-
80- scope . client . on ( 'error' , function ( e ) {
81- if ( scope . onError ) {
82- scope . $apply ( function ( ) {
83- scope . onError ( { $event : e } ) ;
84- } ) ;
85- }
86- ZeroClipboard . destroy ( ) ;
87- } ) ;
86+ }
87+ ZeroClipboard . destroy ( ) ;
88+ } ) ;
8889
89- scope . client . on ( 'beforecopy' , function ( e ) {
90- if ( scope . onBeforeCopy ) {
91- scope . $apply ( function ( ) {
92- scope . onBeforeCopy ( { $event : e } ) ;
93- } ) ;
94- }
95- } ) ;
90+ scope . client . on ( 'beforecopy' , function ( e ) {
91+ if ( scope . onBeforeCopy ) {
92+ scope . $apply ( function ( ) {
93+ scope . onBeforeCopy ( { $event : e } ) ;
94+ } ) ;
95+ }
96+ } ) ;
9697
97- scope . $on ( '$destroy' , function ( ) {
98- scope . client . off ( 'complete' , _completeHnd ) ;
99- scope . client = null ;
100- element . off ( ) ;
101- ZeroClipboard . destroy ( ) ;
102- } ) ;
103- }
104- } ;
105- }
98+ scope . $on ( '$destroy' , function ( ) {
99+ scope . client . off ( 'complete' , _completeHnd ) ;
100+ scope . client = null ;
101+ element . off ( ) ;
102+ ZeroClipboard . destroy ( ) ;
103+ } ) ;
104+ }
105+ } ;
106+ }
106107 ] ) ;
0 commit comments