Sha256: 69d3e17aa6fabfdffa761623081a601a51c25d4d400217b2ea2291d935b02bb7

Contents?: true

Size: 1.65 KB

Versions: 69

Compression:

Stored size: 1.65 KB

Contents

App.directive('ngFocus',function($parse,$timeout){
    return function(scope,element,attrs){
        var ngFocusGet = $parse(attrs.ngFocus);
        var ngFocusSet = ngFocusGet.assign;
        if (!ngFocusSet) {
            throw Error("Non assignable expression");
        }

        var digesting = false;

        var abortFocusing = false;
        var unwatch = scope.$watch(attrs.ngFocus,function(newVal){
            if(newVal){
                $timeout(function(){
                    element[0].focus();
                },0)
            }
            else {
                $timeout(function(){
                    element[0].blur();
                },0);
            }
        });


        element.bind("blur",function(){

            if(abortFocusing) return;

            $timeout(function(){
                ngFocusSet(scope,false);
            },0);

        });


        var timerStarted = false;
        var focusCount = 0;

        function startTimer(){
            $timeout(function(){
                timerStarted = false;
                if(focusCount > 3){
                    unwatch();
                    abortFocusing = true;
                    throw new Error("Aborting : ngFocus cannot be assigned to the same variable with multiple elements");
                }
            },200);
        }

        element.bind("focus",function(){

            if(abortFocusing) return;

            if(!timerStarted){
                timerStarted = true;
                focusCount = 0;
                startTimer();
            }
            focusCount++;

            $timeout(function(){
                ngFocusSet(scope,true);
            },0);

        });
    };
});

Version data entries

69 entries across 69 versions & 2 rubygems

Version Path
fanforce-plugin-factory-2.0.0.rc29 lib/fanforce/plugin_factory/asset_framework/plugin_factory/lib/ng-focus-blur.js
fanforce-plugin-factory-2.0.0.rc28 lib/fanforce/plugin_factory/asset_framework/plugin_factory/lib/ng-focus-blur.js
fanforce-plugin-factory-2.0.0.rc27 lib/fanforce/plugin_factory/asset_framework/plugin_factory/lib/ng-focus-blur.js
fanforce-plugin-factory-2.0.0.rc26 lib/fanforce/plugin_factory/asset_framework/plugin_factory/lib/ng-focus-blur.js
fanforce-plugin-factory-2.0.0.rc25 lib/fanforce/plugin_factory/asset_framework/plugin_factory/lib/ng-focus-blur.js
fanforce-plugin-factory-2.0.0.rc24 lib/fanforce/plugin_factory/asset_framework/plugin_factory/lib/ng-focus-blur.js
fanforce-plugin-factory-2.0.0.rc23 lib/fanforce/plugin_factory/asset_framework/plugin_factory/lib/ng-focus-blur.js
fanforce-plugin-factory-2.0.0.rc22 lib/fanforce/plugin_factory/asset_framework/plugin_factory/lib/ng-focus-blur.js
fanforce-plugin-factory-2.0.0.rc21 lib/fanforce/plugin_factory/asset_framework/plugin_factory/lib/ng-focus-blur.js
fanforce-plugin-factory-2.0.0.rc19 lib/fanforce/plugin_factory/asset_framework/plugin_factory/lib/ng-focus-blur.js
fanforce-plugin-factory-2.0.0.rc18 lib/fanforce/plugin_factory/asset_framework/plugin_factory/lib/ng-focus-blur.js
fanforce-plugin-factory-2.0.0.rc17 lib/fanforce/plugin_factory/asset_framework/plugin_factory/lib/ng-focus-blur.js
fanforce-plugin-factory-2.0.0.rc16 lib/fanforce/plugin_factory/asset_framework/plugin_factory/lib/ng-focus-blur.js
fanforce-plugin-factory-2.0.0.rc15 lib/fanforce/plugin_factory/asset_framework/plugin_factory/lib/ng-focus-blur.js
fanforce-plugin-factory-2.0.0.rc13 lib/fanforce/plugin_factory/asset_framework/plugin_factory/lib/ng-focus-blur.js
fanforce-plugin-factory-2.0.0.rc12 lib/fanforce/plugin_factory/asset_framework/plugin_factory/lib/ng-focus-blur.js
fanforce-plugin-factory-2.0.0.rc11 lib/fanforce/plugin_factory/asset_framework/plugin_factory/lib/ng-focus-blur.js
fanforce-plugin-factory-2.0.0.rc10 lib/fanforce/plugin_factory/asset_framework/plugin_factory/lib/ng-focus-blur.js
fanforce-plugin-factory-2.0.0.rc9 lib/fanforce/plugin_factory/asset_framework/plugin_factory/lib/ng-focus-blur.js
fanforce-plugin-factory-2.0.0.rc8 lib/fanforce/plugin_factory/asset_framework/plugin_factory/lib/ng-focus-blur.js