11305 lines
2.5 MiB
11305 lines
2.5 MiB
|
|
|
|
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# githubog: http://ogp.me/ns/fb/githubog#">
|
|
<meta charset='utf-8'>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<title>jquery-handsontable/dist/jquery.handsontable.js at master · warpech/jquery-handsontable · GitHub</title>
|
|
<link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub" />
|
|
<link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub" />
|
|
<link rel="apple-touch-icon" sizes="57x57" href="/apple-touch-icon-114.png" />
|
|
<link rel="apple-touch-icon" sizes="114x114" href="/apple-touch-icon-114.png" />
|
|
<link rel="apple-touch-icon" sizes="72x72" href="/apple-touch-icon-144.png" />
|
|
<link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon-144.png" />
|
|
<link rel="logo" type="image/svg" href="https://github-media-downloads.s3.amazonaws.com/github-logo.svg" />
|
|
<meta property="og:image" content="https://github.global.ssl.fastly.net/images/modules/logos_page/Octocat.png">
|
|
<meta name="hostname" content="fe3.rs.github.com">
|
|
<link rel="assets" href="https://github.global.ssl.fastly.net/">
|
|
<link rel="xhr-socket" href="/_sockets" />
|
|
|
|
|
|
|
|
|
|
<meta name="msapplication-TileImage" content="/windows-tile.png" />
|
|
<meta name="msapplication-TileColor" content="#ffffff" />
|
|
<meta name="selected-link" value="repo_source" data-pjax-transient />
|
|
<meta content="collector.githubapp.com" name="octolytics-host" /><meta content="github" name="octolytics-app-id" />
|
|
|
|
|
|
|
|
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
|
|
|
|
<meta content="authenticity_token" name="csrf-param" />
|
|
<meta content="RQuE2IAZdfLEPobU8tgHjtQ6CggY5rQsKraAeFWAtvk=" name="csrf-token" />
|
|
|
|
<link href="https://github.global.ssl.fastly.net/assets/github-7fa78c4fe7b5df12714028525116e8696e587c1f.css" media="all" rel="stylesheet" type="text/css" />
|
|
<link href="https://github.global.ssl.fastly.net/assets/github2-27344f3be2108122f35c75101081563094420059.css" media="all" rel="stylesheet" type="text/css" />
|
|
|
|
|
|
|
|
<script src="https://github.global.ssl.fastly.net/assets/frameworks-e8054ad804a1cf9e9849130fee5a4a5487b663ed.js" type="text/javascript"></script>
|
|
<script src="https://github.global.ssl.fastly.net/assets/github-d3008e616d3b9f4112995c08deb6c468ad36fa91.js" type="text/javascript"></script>
|
|
|
|
<meta http-equiv="x-pjax-version" content="c5bb64024e20327545b4552c2f528741">
|
|
|
|
<link data-pjax-transient rel='permalink' href='/warpech/jquery-handsontable/blob/0e754e4a5c5ad50d7c695a0cccaf934a7944a3ae/dist/jquery.handsontable.js'>
|
|
<meta property="og:title" content="jquery-handsontable"/>
|
|
<meta property="og:type" content="githubog:gitrepository"/>
|
|
<meta property="og:url" content="https://github.com/warpech/jquery-handsontable"/>
|
|
<meta property="og:image" content="https://github.global.ssl.fastly.net/images/gravatars/gravatar-user-420.png"/>
|
|
<meta property="og:site_name" content="GitHub"/>
|
|
<meta property="og:description" content="jquery-handsontable - Handsontable is a minimalistic approach to Excel-like table editor in HTML & jQuery"/>
|
|
|
|
<meta name="description" content="jquery-handsontable - Handsontable is a minimalistic approach to Excel-like table editor in HTML & jQuery" />
|
|
|
|
<meta content="566463" name="octolytics-dimension-user_id" /><meta content="warpech" name="octolytics-dimension-user_login" /><meta content="1790564" name="octolytics-dimension-repository_id" /><meta content="warpech/jquery-handsontable" name="octolytics-dimension-repository_nwo" /><meta content="true" name="octolytics-dimension-repository_public" /><meta content="false" name="octolytics-dimension-repository_is_fork" /><meta content="1790564" name="octolytics-dimension-repository_network_root_id" /><meta content="warpech/jquery-handsontable" name="octolytics-dimension-repository_network_root_nwo" />
|
|
<link href="https://github.com/warpech/jquery-handsontable/commits/master.atom" rel="alternate" title="Recent Commits to jquery-handsontable:master" type="application/atom+xml" />
|
|
|
|
</head>
|
|
|
|
|
|
<body class="logged_out page-blob windows vis-public env-production ">
|
|
|
|
<div class="wrapper">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="header header-logged-out">
|
|
<div class="container clearfix">
|
|
|
|
<a class="header-logo-wordmark" href="https://github.com/">
|
|
<span class="mega-octicon octicon-logo-github"></span>
|
|
</a>
|
|
|
|
<div class="header-actions">
|
|
<a class="button primary" href="/signup">Sign up</a>
|
|
<a class="button" href="/login?return_to=%2Fwarpech%2Fjquery-handsontable%2Fblob%2Fmaster%2Fdist%2Fjquery.handsontable.js">Sign in</a>
|
|
</div>
|
|
|
|
<div class="command-bar js-command-bar in-repository">
|
|
|
|
|
|
<ul class="top-nav">
|
|
<li class="explore"><a href="/explore">Explore</a></li>
|
|
<li class="features"><a href="/features">Features</a></li>
|
|
<li class="enterprise"><a href="https://enterprise.github.com/">Enterprise</a></li>
|
|
<li class="blog"><a href="/blog">Blog</a></li>
|
|
</ul>
|
|
<form accept-charset="UTF-8" action="/search" class="command-bar-form" id="top_search_form" method="get">
|
|
|
|
<input type="text" data-hotkey="/ s" name="q" id="js-command-bar-field" placeholder="Search or type a command" tabindex="1" autocapitalize="off"
|
|
|
|
|
|
data-repo="warpech/jquery-handsontable"
|
|
data-branch="master"
|
|
data-sha="841f457307071624e1d985f74731b63cf260a820"
|
|
>
|
|
|
|
<input type="hidden" name="nwo" value="warpech/jquery-handsontable" />
|
|
|
|
<div class="select-menu js-menu-container js-select-menu search-context-select-menu">
|
|
<span class="minibutton select-menu-button js-menu-target">
|
|
<span class="js-select-button">This repository</span>
|
|
</span>
|
|
|
|
<div class="select-menu-modal-holder js-menu-content js-navigation-container">
|
|
<div class="select-menu-modal">
|
|
|
|
<div class="select-menu-item js-navigation-item js-this-repository-navigation-item selected">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<input type="radio" class="js-search-this-repository" name="search_target" value="repository" checked="checked" />
|
|
<div class="select-menu-item-text js-select-button-text">This repository</div>
|
|
</div> <!-- /.select-menu-item -->
|
|
|
|
<div class="select-menu-item js-navigation-item js-all-repositories-navigation-item">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<input type="radio" name="search_target" value="global" />
|
|
<div class="select-menu-item-text js-select-button-text">All repositories</div>
|
|
</div> <!-- /.select-menu-item -->
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<span class="octicon help tooltipped downwards" title="Show command bar help">
|
|
<span class="octicon octicon-question"></span>
|
|
</span>
|
|
|
|
|
|
<input type="hidden" name="ref" value="cmdform">
|
|
|
|
</form>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="site" itemscope itemtype="http://schema.org/WebPage">
|
|
|
|
<div class="pagehead repohead instapaper_ignore readability-menu">
|
|
<div class="container">
|
|
|
|
|
|
<ul class="pagehead-actions">
|
|
|
|
|
|
<li>
|
|
<a href="/login?return_to=%2Fwarpech%2Fjquery-handsontable"
|
|
class="minibutton with-count js-toggler-target star-button entice tooltipped upwards "
|
|
title="You must be signed in to use this feature" rel="nofollow">
|
|
<span class="octicon octicon-star"></span>Star
|
|
</a>
|
|
<a class="social-count js-social-count" href="/warpech/jquery-handsontable/stargazers">
|
|
2,119
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
<a href="/login?return_to=%2Fwarpech%2Fjquery-handsontable"
|
|
class="minibutton with-count js-toggler-target fork-button entice tooltipped upwards"
|
|
title="You must be signed in to fork a repository" rel="nofollow">
|
|
<span class="octicon octicon-git-branch"></span>Fork
|
|
</a>
|
|
<a href="/warpech/jquery-handsontable/network" class="social-count">
|
|
449
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
|
|
<h1 itemscope itemtype="http://data-vocabulary.org/Breadcrumb" class="entry-title public">
|
|
<span class="repo-label"><span>public</span></span>
|
|
<span class="mega-octicon octicon-repo"></span>
|
|
<span class="author">
|
|
<a href="/warpech" class="url fn" itemprop="url" rel="author"><span itemprop="title">warpech</span></a></span
|
|
><span class="repohead-name-divider">/</span><strong
|
|
><a href="/warpech/jquery-handsontable" class="js-current-repository js-repo-home-link">jquery-handsontable</a></strong>
|
|
|
|
<span class="page-context-loader">
|
|
<img alt="Octocat-spinner-32" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
|
|
</span>
|
|
|
|
</h1>
|
|
</div><!-- /.container -->
|
|
</div><!-- /.repohead -->
|
|
|
|
<div class="container">
|
|
|
|
<div class="repository-with-sidebar repo-container ">
|
|
|
|
<div class="repository-sidebar">
|
|
|
|
|
|
<div class="repo-nav repo-nav-full js-repository-container-pjax js-octicon-loaders">
|
|
<div class="repo-nav-contents">
|
|
<ul class="repo-menu">
|
|
<li class="tooltipped leftwards" title="Code">
|
|
<a href="/warpech/jquery-handsontable" aria-label="Code" class="js-selected-navigation-item selected" data-gotokey="c" data-pjax="true" data-selected-links="repo_source repo_downloads repo_commits repo_tags repo_branches /warpech/jquery-handsontable">
|
|
<span class="octicon octicon-code"></span> <span class="full-word">Code</span>
|
|
<img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
|
|
</a> </li>
|
|
|
|
<li class="tooltipped leftwards" title="Issues">
|
|
<a href="/warpech/jquery-handsontable/issues" aria-label="Issues" class="js-selected-navigation-item js-disable-pjax" data-gotokey="i" data-selected-links="repo_issues /warpech/jquery-handsontable/issues">
|
|
<span class="octicon octicon-issue-opened"></span> <span class="full-word">Issues</span>
|
|
<span class='counter'>244</span>
|
|
<img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
|
|
</a> </li>
|
|
|
|
<li class="tooltipped leftwards" title="Pull Requests"><a href="/warpech/jquery-handsontable/pulls" aria-label="Pull Requests" class="js-selected-navigation-item js-disable-pjax" data-gotokey="p" data-selected-links="repo_pulls /warpech/jquery-handsontable/pulls">
|
|
<span class="octicon octicon-git-pull-request"></span> <span class="full-word">Pull Requests</span>
|
|
<span class='counter'>12</span>
|
|
<img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
|
|
</a> </li>
|
|
|
|
|
|
<li class="tooltipped leftwards" title="Wiki">
|
|
<a href="/warpech/jquery-handsontable/wiki" aria-label="Wiki" class="js-selected-navigation-item " data-pjax="true" data-selected-links="repo_wiki /warpech/jquery-handsontable/wiki">
|
|
<span class="octicon octicon-book"></span> <span class="full-word">Wiki</span>
|
|
<img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
|
|
</a> </li>
|
|
</ul>
|
|
<div class="repo-menu-separator"></div>
|
|
<ul class="repo-menu">
|
|
|
|
<li class="tooltipped leftwards" title="Pulse">
|
|
<a href="/warpech/jquery-handsontable/pulse" aria-label="Pulse" class="js-selected-navigation-item " data-pjax="true" data-selected-links="pulse /warpech/jquery-handsontable/pulse">
|
|
<span class="octicon octicon-pulse"></span> <span class="full-word">Pulse</span>
|
|
<img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
|
|
</a> </li>
|
|
|
|
<li class="tooltipped leftwards" title="Graphs">
|
|
<a href="/warpech/jquery-handsontable/graphs" aria-label="Graphs" class="js-selected-navigation-item " data-pjax="true" data-selected-links="repo_graphs repo_contributors /warpech/jquery-handsontable/graphs">
|
|
<span class="octicon octicon-graph"></span> <span class="full-word">Graphs</span>
|
|
<img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
|
|
</a> </li>
|
|
|
|
<li class="tooltipped leftwards" title="Network">
|
|
<a href="/warpech/jquery-handsontable/network" aria-label="Network" class="js-selected-navigation-item js-disable-pjax" data-selected-links="repo_network /warpech/jquery-handsontable/network">
|
|
<span class="octicon octicon-git-branch"></span> <span class="full-word">Network</span>
|
|
<img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
|
|
</a> </li>
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="only-with-full-nav">
|
|
|
|
|
|
|
|
|
|
<div class="clone-url open"
|
|
data-protocol-type="http"
|
|
data-url="/users/set_protocol?protocol_selector=http&protocol_type=clone">
|
|
<h3><strong>HTTPS</strong> clone URL</h3>
|
|
|
|
<input type="text" class="clone js-url-field"
|
|
value="https://github.com/warpech/jquery-handsontable.git" readonly="readonly">
|
|
|
|
<span class="js-zeroclipboard url-box-clippy minibutton zeroclipboard-button" data-clipboard-text="https://github.com/warpech/jquery-handsontable.git" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="clone-url "
|
|
data-protocol-type="subversion"
|
|
data-url="/users/set_protocol?protocol_selector=subversion&protocol_type=clone">
|
|
<h3><strong>Subversion</strong> checkout URL</h3>
|
|
|
|
<input type="text" class="clone js-url-field"
|
|
value="https://github.com/warpech/jquery-handsontable" readonly="readonly">
|
|
|
|
<span class="js-zeroclipboard url-box-clippy minibutton zeroclipboard-button" data-clipboard-text="https://github.com/warpech/jquery-handsontable" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span>
|
|
</div>
|
|
|
|
|
|
|
|
<p class="clone-options">You can clone with
|
|
<a href="#" class="js-clone-selector" data-protocol="http">HTTPS</a>,
|
|
<a href="#" class="js-clone-selector" data-protocol="subversion">Subversion</a>,
|
|
and <a href="https://help.github.com/articles/which-remote-url-should-i-use">other methods.</a>
|
|
</p>
|
|
|
|
|
|
<a href="http://windows.github.com" class="minibutton sidebar-button">
|
|
<span class="octicon octicon-device-desktop"></span>
|
|
Clone in Desktop
|
|
</a>
|
|
|
|
<a href="/warpech/jquery-handsontable/archive/master.zip"
|
|
class="minibutton sidebar-button"
|
|
title="Download this repository as a zip file"
|
|
rel="nofollow">
|
|
<span class="octicon octicon-cloud-download"></span>
|
|
Download ZIP
|
|
</a>
|
|
</div>
|
|
</div><!-- /.repository-sidebar -->
|
|
|
|
<div id="js-repo-pjax-container" class="repository-content context-loader-container" data-pjax-container>
|
|
|
|
|
|
|
|
<!-- blob contrib key: blob_contributors:v21:cd541481f9993d4eca47956a3ae73187 -->
|
|
<!-- blob contrib frag key: views10/v8/blob_contributors:v21:cd541481f9993d4eca47956a3ae73187 -->
|
|
|
|
<p title="This is a placeholder element" class="js-history-link-replace hidden"></p>
|
|
|
|
<a href="/warpech/jquery-handsontable/find/master" data-pjax data-hotkey="t" style="display:none">Show File Finder</a>
|
|
|
|
<div class="file-navigation">
|
|
|
|
|
|
|
|
<div class="select-menu js-menu-container js-select-menu" >
|
|
<span class="minibutton select-menu-button js-menu-target" data-hotkey="w"
|
|
data-master-branch="master"
|
|
data-ref="master">
|
|
<span class="octicon octicon-git-branch"></span>
|
|
<i>branch:</i>
|
|
<span class="js-select-button">master</span>
|
|
</span>
|
|
|
|
<div class="select-menu-modal-holder js-menu-content js-navigation-container" data-pjax>
|
|
|
|
<div class="select-menu-modal">
|
|
<div class="select-menu-header">
|
|
<span class="select-menu-title">Switch branches/tags</span>
|
|
<span class="octicon octicon-remove-close js-menu-close"></span>
|
|
</div> <!-- /.select-menu-header -->
|
|
|
|
<div class="select-menu-filters">
|
|
<div class="select-menu-text-filter">
|
|
<input type="text" id="context-commitish-filter-field" class="js-filterable-field js-navigation-enable" placeholder="Filter branches/tags">
|
|
</div>
|
|
<div class="select-menu-tabs">
|
|
<ul>
|
|
<li class="select-menu-tab">
|
|
<a href="#" data-tab-filter="branches" class="js-select-menu-tab">Branches</a>
|
|
</li>
|
|
<li class="select-menu-tab">
|
|
<a href="#" data-tab-filter="tags" class="js-select-menu-tab">Tags</a>
|
|
</li>
|
|
</ul>
|
|
</div><!-- /.select-menu-tabs -->
|
|
</div><!-- /.select-menu-filters -->
|
|
|
|
<div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="branches">
|
|
|
|
<div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring">
|
|
|
|
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/develop/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="develop" data-skip-pjax="true" rel="nofollow" title="develop">develop</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/editorTemplate/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="editorTemplate" data-skip-pjax="true" rel="nofollow" title="editorTemplate">editorTemplate</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/feature/asyncTextEditor/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="feature/asyncTextEditor" data-skip-pjax="true" rel="nofollow" title="feature/asyncTextEditor">feature/asyncTextEditor</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/gh-pages/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="gh-pages" data-skip-pjax="true" rel="nofollow" title="gh-pages">gh-pages</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item selected">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/master/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="master" data-skip-pjax="true" rel="nofollow" title="master">master</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/move_cell/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="move_cell" data-skip-pjax="true" rel="nofollow" title="move_cell">move_cell</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
</div>
|
|
|
|
<div class="select-menu-no-results">Nothing to show</div>
|
|
</div> <!-- /.select-menu-list -->
|
|
|
|
<div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="tags">
|
|
<div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring">
|
|
|
|
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.9.10/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.9.10" data-skip-pjax="true" rel="nofollow" title="v0.9.10">v0.9.10</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.9.9/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.9.9" data-skip-pjax="true" rel="nofollow" title="v0.9.9">v0.9.9</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.9.8/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.9.8" data-skip-pjax="true" rel="nofollow" title="v0.9.8">v0.9.8</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.9.7/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.9.7" data-skip-pjax="true" rel="nofollow" title="v0.9.7">v0.9.7</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.9.6/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.9.6" data-skip-pjax="true" rel="nofollow" title="v0.9.6">v0.9.6</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.9.5/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.9.5" data-skip-pjax="true" rel="nofollow" title="v0.9.5">v0.9.5</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.9.4/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.9.4" data-skip-pjax="true" rel="nofollow" title="v0.9.4">v0.9.4</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.9.3/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.9.3" data-skip-pjax="true" rel="nofollow" title="v0.9.3">v0.9.3</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.9.2/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.9.2" data-skip-pjax="true" rel="nofollow" title="v0.9.2">v0.9.2</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.9.1/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.9.1" data-skip-pjax="true" rel="nofollow" title="v0.9.1">v0.9.1</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.9.0-beta2/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.9.0-beta2" data-skip-pjax="true" rel="nofollow" title="v0.9.0-beta2">v0.9.0-beta2</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.9.0-beta1/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.9.0-beta1" data-skip-pjax="true" rel="nofollow" title="v0.9.0-beta1">v0.9.0-beta1</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.9.0/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.9.0" data-skip-pjax="true" rel="nofollow" title="v0.9.0">v0.9.0</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.8.23/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.8.23" data-skip-pjax="true" rel="nofollow" title="v0.8.23">v0.8.23</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.8.22/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.8.22" data-skip-pjax="true" rel="nofollow" title="v0.8.22">v0.8.22</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.8.21/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.8.21" data-skip-pjax="true" rel="nofollow" title="v0.8.21">v0.8.21</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.8.20/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.8.20" data-skip-pjax="true" rel="nofollow" title="v0.8.20">v0.8.20</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.8.19/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.8.19" data-skip-pjax="true" rel="nofollow" title="v0.8.19">v0.8.19</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.8.18/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.8.18" data-skip-pjax="true" rel="nofollow" title="v0.8.18">v0.8.18</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.8.17/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.8.17" data-skip-pjax="true" rel="nofollow" title="v0.8.17">v0.8.17</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.8.16/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.8.16" data-skip-pjax="true" rel="nofollow" title="v0.8.16">v0.8.16</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.8.15/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.8.15" data-skip-pjax="true" rel="nofollow" title="v0.8.15">v0.8.15</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.8.14/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.8.14" data-skip-pjax="true" rel="nofollow" title="v0.8.14">v0.8.14</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.8.13/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.8.13" data-skip-pjax="true" rel="nofollow" title="v0.8.13">v0.8.13</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.8.12/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.8.12" data-skip-pjax="true" rel="nofollow" title="v0.8.12">v0.8.12</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.8.11/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.8.11" data-skip-pjax="true" rel="nofollow" title="v0.8.11">v0.8.11</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.8.10/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.8.10" data-skip-pjax="true" rel="nofollow" title="v0.8.10">v0.8.10</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.8.9/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.8.9" data-skip-pjax="true" rel="nofollow" title="v0.8.9">v0.8.9</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.8.8/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.8.8" data-skip-pjax="true" rel="nofollow" title="v0.8.8">v0.8.8</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.8.7/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.8.7" data-skip-pjax="true" rel="nofollow" title="v0.8.7">v0.8.7</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.8.6/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.8.6" data-skip-pjax="true" rel="nofollow" title="v0.8.6">v0.8.6</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.8.5/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.8.5" data-skip-pjax="true" rel="nofollow" title="v0.8.5">v0.8.5</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.8.4/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.8.4" data-skip-pjax="true" rel="nofollow" title="v0.8.4">v0.8.4</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.8.3/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.8.3" data-skip-pjax="true" rel="nofollow" title="v0.8.3">v0.8.3</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.8.2/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.8.2" data-skip-pjax="true" rel="nofollow" title="v0.8.2">v0.8.2</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.8.1/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.8.1" data-skip-pjax="true" rel="nofollow" title="v0.8.1">v0.8.1</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.8.0-beta3/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.8.0-beta3" data-skip-pjax="true" rel="nofollow" title="v0.8.0-beta3">v0.8.0-beta3</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.8.0-beta2/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.8.0-beta2" data-skip-pjax="true" rel="nofollow" title="v0.8.0-beta2">v0.8.0-beta2</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.8.0-beta1/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.8.0-beta1" data-skip-pjax="true" rel="nofollow" title="v0.8.0-beta1">v0.8.0-beta1</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.8.0/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.8.0" data-skip-pjax="true" rel="nofollow" title="v0.8.0">v0.8.0</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.7.5/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.7.5" data-skip-pjax="true" rel="nofollow" title="v0.7.5">v0.7.5</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.7.4/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.7.4" data-skip-pjax="true" rel="nofollow" title="v0.7.4">v0.7.4</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.7.3/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.7.3" data-skip-pjax="true" rel="nofollow" title="v0.7.3">v0.7.3</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.7.2/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.7.2" data-skip-pjax="true" rel="nofollow" title="v0.7.2">v0.7.2</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.7.1/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.7.1" data-skip-pjax="true" rel="nofollow" title="v0.7.1">v0.7.1</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.7.0/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.7.0" data-skip-pjax="true" rel="nofollow" title="v0.7.0">v0.7.0</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.6.0/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.6.0" data-skip-pjax="true" rel="nofollow" title="v0.6.0">v0.6.0</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.5.0/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.5.0" data-skip-pjax="true" rel="nofollow" title="v0.5.0">v0.5.0</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.4.2/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.4.2" data-skip-pjax="true" rel="nofollow" title="v0.4.2">v0.4.2</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.4.1/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.4.1" data-skip-pjax="true" rel="nofollow" title="v0.4.1">v0.4.1</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/v0.4.0/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="v0.4.0" data-skip-pjax="true" rel="nofollow" title="v0.4.0">v0.4.0</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/warpech/jquery-handsontable/blob/list/dist/jquery.handsontable.js" class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" data-name="list" data-skip-pjax="true" rel="nofollow" title="list">list</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
</div>
|
|
|
|
<div class="select-menu-no-results">Nothing to show</div>
|
|
</div> <!-- /.select-menu-list -->
|
|
|
|
</div> <!-- /.select-menu-modal -->
|
|
</div> <!-- /.select-menu-modal-holder -->
|
|
</div> <!-- /.select-menu -->
|
|
|
|
<div class="breadcrumb">
|
|
<span class='repo-root js-repo-root'><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/warpech/jquery-handsontable" data-branch="master" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">jquery-handsontable</span></a></span></span><span class="separator"> / </span><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/warpech/jquery-handsontable/tree/master/dist" data-branch="master" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">dist</span></a></span><span class="separator"> / </span><strong class="final-path">jquery.handsontable.js</strong> <span class="js-zeroclipboard minibutton zeroclipboard-button" data-clipboard-text="dist/jquery.handsontable.js" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="commit file-history-tease">
|
|
<img class="main-avatar" height="24" src="https://secure.gravatar.com/avatar/ead828751eb7cfe023e09798e5e27c50?s=140&d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png" width="24" />
|
|
<span class="author"><a href="/warpech" rel="author">warpech</a></span>
|
|
<time class="js-relative-date" datetime="2013-07-23T06:18:30-07:00" title="2013-07-23 06:18:30">July 23, 2013</time>
|
|
<div class="commit-title">
|
|
<a href="/warpech/jquery-handsontable/commit/43133a3e03a6ebb95a62146602aa62c0511ac21f" class="message" data-pjax="true" title="Handsontable 0.9.10">Handsontable 0.9.10</a>
|
|
</div>
|
|
|
|
<div class="participation">
|
|
<p class="quickstat"><a href="#blob_contributors_box" rel="facebox"><strong>1</strong> contributor</a></p>
|
|
|
|
</div>
|
|
<div id="blob_contributors_box" style="display:none">
|
|
<h2 class="facebox-header">Users who have contributed to this file</h2>
|
|
<ul class="facebox-user-list">
|
|
<li class="facebox-user-list-item">
|
|
<img height="24" src="https://secure.gravatar.com/avatar/ead828751eb7cfe023e09798e5e27c50?s=140&d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png" width="24" />
|
|
<a href="/warpech">warpech</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div id="files" class="bubble">
|
|
<div class="file">
|
|
<div class="meta">
|
|
<div class="info">
|
|
<span class="icon"><b class="octicon octicon-file-text"></b></span>
|
|
<span class="mode" title="File Mode">file</span>
|
|
<span>10542 lines (9201 sloc)</span>
|
|
<span>317.74 kb</span>
|
|
</div>
|
|
<div class="actions">
|
|
<div class="button-group">
|
|
<a class="minibutton js-entice" href=""
|
|
data-entice="You must be signed in to make or propose changes">Edit</a>
|
|
<a href="/warpech/jquery-handsontable/raw/master/dist/jquery.handsontable.js" class="button minibutton " id="raw-url">Raw</a>
|
|
<a href="/warpech/jquery-handsontable/blame/master/dist/jquery.handsontable.js" class="button minibutton ">Blame</a>
|
|
<a href="/warpech/jquery-handsontable/commits/master/dist/jquery.handsontable.js" class="button minibutton " rel="nofollow">History</a>
|
|
</div><!-- /.button-group -->
|
|
<a class="minibutton danger empty-icon js-entice" href=""
|
|
data-entice="You must be signed in and on a branch to make or propose changes">
|
|
Delete
|
|
</a>
|
|
</div><!-- /.actions -->
|
|
|
|
</div>
|
|
<div class="blob-wrapper data type-javascript js-blob-data">
|
|
<table class="file-code file-diff">
|
|
<tr class="file-code-line">
|
|
<td class="blob-line-nums">
|
|
<span id="L1" rel="#L1">1</span>
|
|
<span id="L2" rel="#L2">2</span>
|
|
<span id="L3" rel="#L3">3</span>
|
|
<span id="L4" rel="#L4">4</span>
|
|
<span id="L5" rel="#L5">5</span>
|
|
<span id="L6" rel="#L6">6</span>
|
|
<span id="L7" rel="#L7">7</span>
|
|
<span id="L8" rel="#L8">8</span>
|
|
<span id="L9" rel="#L9">9</span>
|
|
<span id="L10" rel="#L10">10</span>
|
|
<span id="L11" rel="#L11">11</span>
|
|
<span id="L12" rel="#L12">12</span>
|
|
<span id="L13" rel="#L13">13</span>
|
|
<span id="L14" rel="#L14">14</span>
|
|
<span id="L15" rel="#L15">15</span>
|
|
<span id="L16" rel="#L16">16</span>
|
|
<span id="L17" rel="#L17">17</span>
|
|
<span id="L18" rel="#L18">18</span>
|
|
<span id="L19" rel="#L19">19</span>
|
|
<span id="L20" rel="#L20">20</span>
|
|
<span id="L21" rel="#L21">21</span>
|
|
<span id="L22" rel="#L22">22</span>
|
|
<span id="L23" rel="#L23">23</span>
|
|
<span id="L24" rel="#L24">24</span>
|
|
<span id="L25" rel="#L25">25</span>
|
|
<span id="L26" rel="#L26">26</span>
|
|
<span id="L27" rel="#L27">27</span>
|
|
<span id="L28" rel="#L28">28</span>
|
|
<span id="L29" rel="#L29">29</span>
|
|
<span id="L30" rel="#L30">30</span>
|
|
<span id="L31" rel="#L31">31</span>
|
|
<span id="L32" rel="#L32">32</span>
|
|
<span id="L33" rel="#L33">33</span>
|
|
<span id="L34" rel="#L34">34</span>
|
|
<span id="L35" rel="#L35">35</span>
|
|
<span id="L36" rel="#L36">36</span>
|
|
<span id="L37" rel="#L37">37</span>
|
|
<span id="L38" rel="#L38">38</span>
|
|
<span id="L39" rel="#L39">39</span>
|
|
<span id="L40" rel="#L40">40</span>
|
|
<span id="L41" rel="#L41">41</span>
|
|
<span id="L42" rel="#L42">42</span>
|
|
<span id="L43" rel="#L43">43</span>
|
|
<span id="L44" rel="#L44">44</span>
|
|
<span id="L45" rel="#L45">45</span>
|
|
<span id="L46" rel="#L46">46</span>
|
|
<span id="L47" rel="#L47">47</span>
|
|
<span id="L48" rel="#L48">48</span>
|
|
<span id="L49" rel="#L49">49</span>
|
|
<span id="L50" rel="#L50">50</span>
|
|
<span id="L51" rel="#L51">51</span>
|
|
<span id="L52" rel="#L52">52</span>
|
|
<span id="L53" rel="#L53">53</span>
|
|
<span id="L54" rel="#L54">54</span>
|
|
<span id="L55" rel="#L55">55</span>
|
|
<span id="L56" rel="#L56">56</span>
|
|
<span id="L57" rel="#L57">57</span>
|
|
<span id="L58" rel="#L58">58</span>
|
|
<span id="L59" rel="#L59">59</span>
|
|
<span id="L60" rel="#L60">60</span>
|
|
<span id="L61" rel="#L61">61</span>
|
|
<span id="L62" rel="#L62">62</span>
|
|
<span id="L63" rel="#L63">63</span>
|
|
<span id="L64" rel="#L64">64</span>
|
|
<span id="L65" rel="#L65">65</span>
|
|
<span id="L66" rel="#L66">66</span>
|
|
<span id="L67" rel="#L67">67</span>
|
|
<span id="L68" rel="#L68">68</span>
|
|
<span id="L69" rel="#L69">69</span>
|
|
<span id="L70" rel="#L70">70</span>
|
|
<span id="L71" rel="#L71">71</span>
|
|
<span id="L72" rel="#L72">72</span>
|
|
<span id="L73" rel="#L73">73</span>
|
|
<span id="L74" rel="#L74">74</span>
|
|
<span id="L75" rel="#L75">75</span>
|
|
<span id="L76" rel="#L76">76</span>
|
|
<span id="L77" rel="#L77">77</span>
|
|
<span id="L78" rel="#L78">78</span>
|
|
<span id="L79" rel="#L79">79</span>
|
|
<span id="L80" rel="#L80">80</span>
|
|
<span id="L81" rel="#L81">81</span>
|
|
<span id="L82" rel="#L82">82</span>
|
|
<span id="L83" rel="#L83">83</span>
|
|
<span id="L84" rel="#L84">84</span>
|
|
<span id="L85" rel="#L85">85</span>
|
|
<span id="L86" rel="#L86">86</span>
|
|
<span id="L87" rel="#L87">87</span>
|
|
<span id="L88" rel="#L88">88</span>
|
|
<span id="L89" rel="#L89">89</span>
|
|
<span id="L90" rel="#L90">90</span>
|
|
<span id="L91" rel="#L91">91</span>
|
|
<span id="L92" rel="#L92">92</span>
|
|
<span id="L93" rel="#L93">93</span>
|
|
<span id="L94" rel="#L94">94</span>
|
|
<span id="L95" rel="#L95">95</span>
|
|
<span id="L96" rel="#L96">96</span>
|
|
<span id="L97" rel="#L97">97</span>
|
|
<span id="L98" rel="#L98">98</span>
|
|
<span id="L99" rel="#L99">99</span>
|
|
<span id="L100" rel="#L100">100</span>
|
|
<span id="L101" rel="#L101">101</span>
|
|
<span id="L102" rel="#L102">102</span>
|
|
<span id="L103" rel="#L103">103</span>
|
|
<span id="L104" rel="#L104">104</span>
|
|
<span id="L105" rel="#L105">105</span>
|
|
<span id="L106" rel="#L106">106</span>
|
|
<span id="L107" rel="#L107">107</span>
|
|
<span id="L108" rel="#L108">108</span>
|
|
<span id="L109" rel="#L109">109</span>
|
|
<span id="L110" rel="#L110">110</span>
|
|
<span id="L111" rel="#L111">111</span>
|
|
<span id="L112" rel="#L112">112</span>
|
|
<span id="L113" rel="#L113">113</span>
|
|
<span id="L114" rel="#L114">114</span>
|
|
<span id="L115" rel="#L115">115</span>
|
|
<span id="L116" rel="#L116">116</span>
|
|
<span id="L117" rel="#L117">117</span>
|
|
<span id="L118" rel="#L118">118</span>
|
|
<span id="L119" rel="#L119">119</span>
|
|
<span id="L120" rel="#L120">120</span>
|
|
<span id="L121" rel="#L121">121</span>
|
|
<span id="L122" rel="#L122">122</span>
|
|
<span id="L123" rel="#L123">123</span>
|
|
<span id="L124" rel="#L124">124</span>
|
|
<span id="L125" rel="#L125">125</span>
|
|
<span id="L126" rel="#L126">126</span>
|
|
<span id="L127" rel="#L127">127</span>
|
|
<span id="L128" rel="#L128">128</span>
|
|
<span id="L129" rel="#L129">129</span>
|
|
<span id="L130" rel="#L130">130</span>
|
|
<span id="L131" rel="#L131">131</span>
|
|
<span id="L132" rel="#L132">132</span>
|
|
<span id="L133" rel="#L133">133</span>
|
|
<span id="L134" rel="#L134">134</span>
|
|
<span id="L135" rel="#L135">135</span>
|
|
<span id="L136" rel="#L136">136</span>
|
|
<span id="L137" rel="#L137">137</span>
|
|
<span id="L138" rel="#L138">138</span>
|
|
<span id="L139" rel="#L139">139</span>
|
|
<span id="L140" rel="#L140">140</span>
|
|
<span id="L141" rel="#L141">141</span>
|
|
<span id="L142" rel="#L142">142</span>
|
|
<span id="L143" rel="#L143">143</span>
|
|
<span id="L144" rel="#L144">144</span>
|
|
<span id="L145" rel="#L145">145</span>
|
|
<span id="L146" rel="#L146">146</span>
|
|
<span id="L147" rel="#L147">147</span>
|
|
<span id="L148" rel="#L148">148</span>
|
|
<span id="L149" rel="#L149">149</span>
|
|
<span id="L150" rel="#L150">150</span>
|
|
<span id="L151" rel="#L151">151</span>
|
|
<span id="L152" rel="#L152">152</span>
|
|
<span id="L153" rel="#L153">153</span>
|
|
<span id="L154" rel="#L154">154</span>
|
|
<span id="L155" rel="#L155">155</span>
|
|
<span id="L156" rel="#L156">156</span>
|
|
<span id="L157" rel="#L157">157</span>
|
|
<span id="L158" rel="#L158">158</span>
|
|
<span id="L159" rel="#L159">159</span>
|
|
<span id="L160" rel="#L160">160</span>
|
|
<span id="L161" rel="#L161">161</span>
|
|
<span id="L162" rel="#L162">162</span>
|
|
<span id="L163" rel="#L163">163</span>
|
|
<span id="L164" rel="#L164">164</span>
|
|
<span id="L165" rel="#L165">165</span>
|
|
<span id="L166" rel="#L166">166</span>
|
|
<span id="L167" rel="#L167">167</span>
|
|
<span id="L168" rel="#L168">168</span>
|
|
<span id="L169" rel="#L169">169</span>
|
|
<span id="L170" rel="#L170">170</span>
|
|
<span id="L171" rel="#L171">171</span>
|
|
<span id="L172" rel="#L172">172</span>
|
|
<span id="L173" rel="#L173">173</span>
|
|
<span id="L174" rel="#L174">174</span>
|
|
<span id="L175" rel="#L175">175</span>
|
|
<span id="L176" rel="#L176">176</span>
|
|
<span id="L177" rel="#L177">177</span>
|
|
<span id="L178" rel="#L178">178</span>
|
|
<span id="L179" rel="#L179">179</span>
|
|
<span id="L180" rel="#L180">180</span>
|
|
<span id="L181" rel="#L181">181</span>
|
|
<span id="L182" rel="#L182">182</span>
|
|
<span id="L183" rel="#L183">183</span>
|
|
<span id="L184" rel="#L184">184</span>
|
|
<span id="L185" rel="#L185">185</span>
|
|
<span id="L186" rel="#L186">186</span>
|
|
<span id="L187" rel="#L187">187</span>
|
|
<span id="L188" rel="#L188">188</span>
|
|
<span id="L189" rel="#L189">189</span>
|
|
<span id="L190" rel="#L190">190</span>
|
|
<span id="L191" rel="#L191">191</span>
|
|
<span id="L192" rel="#L192">192</span>
|
|
<span id="L193" rel="#L193">193</span>
|
|
<span id="L194" rel="#L194">194</span>
|
|
<span id="L195" rel="#L195">195</span>
|
|
<span id="L196" rel="#L196">196</span>
|
|
<span id="L197" rel="#L197">197</span>
|
|
<span id="L198" rel="#L198">198</span>
|
|
<span id="L199" rel="#L199">199</span>
|
|
<span id="L200" rel="#L200">200</span>
|
|
<span id="L201" rel="#L201">201</span>
|
|
<span id="L202" rel="#L202">202</span>
|
|
<span id="L203" rel="#L203">203</span>
|
|
<span id="L204" rel="#L204">204</span>
|
|
<span id="L205" rel="#L205">205</span>
|
|
<span id="L206" rel="#L206">206</span>
|
|
<span id="L207" rel="#L207">207</span>
|
|
<span id="L208" rel="#L208">208</span>
|
|
<span id="L209" rel="#L209">209</span>
|
|
<span id="L210" rel="#L210">210</span>
|
|
<span id="L211" rel="#L211">211</span>
|
|
<span id="L212" rel="#L212">212</span>
|
|
<span id="L213" rel="#L213">213</span>
|
|
<span id="L214" rel="#L214">214</span>
|
|
<span id="L215" rel="#L215">215</span>
|
|
<span id="L216" rel="#L216">216</span>
|
|
<span id="L217" rel="#L217">217</span>
|
|
<span id="L218" rel="#L218">218</span>
|
|
<span id="L219" rel="#L219">219</span>
|
|
<span id="L220" rel="#L220">220</span>
|
|
<span id="L221" rel="#L221">221</span>
|
|
<span id="L222" rel="#L222">222</span>
|
|
<span id="L223" rel="#L223">223</span>
|
|
<span id="L224" rel="#L224">224</span>
|
|
<span id="L225" rel="#L225">225</span>
|
|
<span id="L226" rel="#L226">226</span>
|
|
<span id="L227" rel="#L227">227</span>
|
|
<span id="L228" rel="#L228">228</span>
|
|
<span id="L229" rel="#L229">229</span>
|
|
<span id="L230" rel="#L230">230</span>
|
|
<span id="L231" rel="#L231">231</span>
|
|
<span id="L232" rel="#L232">232</span>
|
|
<span id="L233" rel="#L233">233</span>
|
|
<span id="L234" rel="#L234">234</span>
|
|
<span id="L235" rel="#L235">235</span>
|
|
<span id="L236" rel="#L236">236</span>
|
|
<span id="L237" rel="#L237">237</span>
|
|
<span id="L238" rel="#L238">238</span>
|
|
<span id="L239" rel="#L239">239</span>
|
|
<span id="L240" rel="#L240">240</span>
|
|
<span id="L241" rel="#L241">241</span>
|
|
<span id="L242" rel="#L242">242</span>
|
|
<span id="L243" rel="#L243">243</span>
|
|
<span id="L244" rel="#L244">244</span>
|
|
<span id="L245" rel="#L245">245</span>
|
|
<span id="L246" rel="#L246">246</span>
|
|
<span id="L247" rel="#L247">247</span>
|
|
<span id="L248" rel="#L248">248</span>
|
|
<span id="L249" rel="#L249">249</span>
|
|
<span id="L250" rel="#L250">250</span>
|
|
<span id="L251" rel="#L251">251</span>
|
|
<span id="L252" rel="#L252">252</span>
|
|
<span id="L253" rel="#L253">253</span>
|
|
<span id="L254" rel="#L254">254</span>
|
|
<span id="L255" rel="#L255">255</span>
|
|
<span id="L256" rel="#L256">256</span>
|
|
<span id="L257" rel="#L257">257</span>
|
|
<span id="L258" rel="#L258">258</span>
|
|
<span id="L259" rel="#L259">259</span>
|
|
<span id="L260" rel="#L260">260</span>
|
|
<span id="L261" rel="#L261">261</span>
|
|
<span id="L262" rel="#L262">262</span>
|
|
<span id="L263" rel="#L263">263</span>
|
|
<span id="L264" rel="#L264">264</span>
|
|
<span id="L265" rel="#L265">265</span>
|
|
<span id="L266" rel="#L266">266</span>
|
|
<span id="L267" rel="#L267">267</span>
|
|
<span id="L268" rel="#L268">268</span>
|
|
<span id="L269" rel="#L269">269</span>
|
|
<span id="L270" rel="#L270">270</span>
|
|
<span id="L271" rel="#L271">271</span>
|
|
<span id="L272" rel="#L272">272</span>
|
|
<span id="L273" rel="#L273">273</span>
|
|
<span id="L274" rel="#L274">274</span>
|
|
<span id="L275" rel="#L275">275</span>
|
|
<span id="L276" rel="#L276">276</span>
|
|
<span id="L277" rel="#L277">277</span>
|
|
<span id="L278" rel="#L278">278</span>
|
|
<span id="L279" rel="#L279">279</span>
|
|
<span id="L280" rel="#L280">280</span>
|
|
<span id="L281" rel="#L281">281</span>
|
|
<span id="L282" rel="#L282">282</span>
|
|
<span id="L283" rel="#L283">283</span>
|
|
<span id="L284" rel="#L284">284</span>
|
|
<span id="L285" rel="#L285">285</span>
|
|
<span id="L286" rel="#L286">286</span>
|
|
<span id="L287" rel="#L287">287</span>
|
|
<span id="L288" rel="#L288">288</span>
|
|
<span id="L289" rel="#L289">289</span>
|
|
<span id="L290" rel="#L290">290</span>
|
|
<span id="L291" rel="#L291">291</span>
|
|
<span id="L292" rel="#L292">292</span>
|
|
<span id="L293" rel="#L293">293</span>
|
|
<span id="L294" rel="#L294">294</span>
|
|
<span id="L295" rel="#L295">295</span>
|
|
<span id="L296" rel="#L296">296</span>
|
|
<span id="L297" rel="#L297">297</span>
|
|
<span id="L298" rel="#L298">298</span>
|
|
<span id="L299" rel="#L299">299</span>
|
|
<span id="L300" rel="#L300">300</span>
|
|
<span id="L301" rel="#L301">301</span>
|
|
<span id="L302" rel="#L302">302</span>
|
|
<span id="L303" rel="#L303">303</span>
|
|
<span id="L304" rel="#L304">304</span>
|
|
<span id="L305" rel="#L305">305</span>
|
|
<span id="L306" rel="#L306">306</span>
|
|
<span id="L307" rel="#L307">307</span>
|
|
<span id="L308" rel="#L308">308</span>
|
|
<span id="L309" rel="#L309">309</span>
|
|
<span id="L310" rel="#L310">310</span>
|
|
<span id="L311" rel="#L311">311</span>
|
|
<span id="L312" rel="#L312">312</span>
|
|
<span id="L313" rel="#L313">313</span>
|
|
<span id="L314" rel="#L314">314</span>
|
|
<span id="L315" rel="#L315">315</span>
|
|
<span id="L316" rel="#L316">316</span>
|
|
<span id="L317" rel="#L317">317</span>
|
|
<span id="L318" rel="#L318">318</span>
|
|
<span id="L319" rel="#L319">319</span>
|
|
<span id="L320" rel="#L320">320</span>
|
|
<span id="L321" rel="#L321">321</span>
|
|
<span id="L322" rel="#L322">322</span>
|
|
<span id="L323" rel="#L323">323</span>
|
|
<span id="L324" rel="#L324">324</span>
|
|
<span id="L325" rel="#L325">325</span>
|
|
<span id="L326" rel="#L326">326</span>
|
|
<span id="L327" rel="#L327">327</span>
|
|
<span id="L328" rel="#L328">328</span>
|
|
<span id="L329" rel="#L329">329</span>
|
|
<span id="L330" rel="#L330">330</span>
|
|
<span id="L331" rel="#L331">331</span>
|
|
<span id="L332" rel="#L332">332</span>
|
|
<span id="L333" rel="#L333">333</span>
|
|
<span id="L334" rel="#L334">334</span>
|
|
<span id="L335" rel="#L335">335</span>
|
|
<span id="L336" rel="#L336">336</span>
|
|
<span id="L337" rel="#L337">337</span>
|
|
<span id="L338" rel="#L338">338</span>
|
|
<span id="L339" rel="#L339">339</span>
|
|
<span id="L340" rel="#L340">340</span>
|
|
<span id="L341" rel="#L341">341</span>
|
|
<span id="L342" rel="#L342">342</span>
|
|
<span id="L343" rel="#L343">343</span>
|
|
<span id="L344" rel="#L344">344</span>
|
|
<span id="L345" rel="#L345">345</span>
|
|
<span id="L346" rel="#L346">346</span>
|
|
<span id="L347" rel="#L347">347</span>
|
|
<span id="L348" rel="#L348">348</span>
|
|
<span id="L349" rel="#L349">349</span>
|
|
<span id="L350" rel="#L350">350</span>
|
|
<span id="L351" rel="#L351">351</span>
|
|
<span id="L352" rel="#L352">352</span>
|
|
<span id="L353" rel="#L353">353</span>
|
|
<span id="L354" rel="#L354">354</span>
|
|
<span id="L355" rel="#L355">355</span>
|
|
<span id="L356" rel="#L356">356</span>
|
|
<span id="L357" rel="#L357">357</span>
|
|
<span id="L358" rel="#L358">358</span>
|
|
<span id="L359" rel="#L359">359</span>
|
|
<span id="L360" rel="#L360">360</span>
|
|
<span id="L361" rel="#L361">361</span>
|
|
<span id="L362" rel="#L362">362</span>
|
|
<span id="L363" rel="#L363">363</span>
|
|
<span id="L364" rel="#L364">364</span>
|
|
<span id="L365" rel="#L365">365</span>
|
|
<span id="L366" rel="#L366">366</span>
|
|
<span id="L367" rel="#L367">367</span>
|
|
<span id="L368" rel="#L368">368</span>
|
|
<span id="L369" rel="#L369">369</span>
|
|
<span id="L370" rel="#L370">370</span>
|
|
<span id="L371" rel="#L371">371</span>
|
|
<span id="L372" rel="#L372">372</span>
|
|
<span id="L373" rel="#L373">373</span>
|
|
<span id="L374" rel="#L374">374</span>
|
|
<span id="L375" rel="#L375">375</span>
|
|
<span id="L376" rel="#L376">376</span>
|
|
<span id="L377" rel="#L377">377</span>
|
|
<span id="L378" rel="#L378">378</span>
|
|
<span id="L379" rel="#L379">379</span>
|
|
<span id="L380" rel="#L380">380</span>
|
|
<span id="L381" rel="#L381">381</span>
|
|
<span id="L382" rel="#L382">382</span>
|
|
<span id="L383" rel="#L383">383</span>
|
|
<span id="L384" rel="#L384">384</span>
|
|
<span id="L385" rel="#L385">385</span>
|
|
<span id="L386" rel="#L386">386</span>
|
|
<span id="L387" rel="#L387">387</span>
|
|
<span id="L388" rel="#L388">388</span>
|
|
<span id="L389" rel="#L389">389</span>
|
|
<span id="L390" rel="#L390">390</span>
|
|
<span id="L391" rel="#L391">391</span>
|
|
<span id="L392" rel="#L392">392</span>
|
|
<span id="L393" rel="#L393">393</span>
|
|
<span id="L394" rel="#L394">394</span>
|
|
<span id="L395" rel="#L395">395</span>
|
|
<span id="L396" rel="#L396">396</span>
|
|
<span id="L397" rel="#L397">397</span>
|
|
<span id="L398" rel="#L398">398</span>
|
|
<span id="L399" rel="#L399">399</span>
|
|
<span id="L400" rel="#L400">400</span>
|
|
<span id="L401" rel="#L401">401</span>
|
|
<span id="L402" rel="#L402">402</span>
|
|
<span id="L403" rel="#L403">403</span>
|
|
<span id="L404" rel="#L404">404</span>
|
|
<span id="L405" rel="#L405">405</span>
|
|
<span id="L406" rel="#L406">406</span>
|
|
<span id="L407" rel="#L407">407</span>
|
|
<span id="L408" rel="#L408">408</span>
|
|
<span id="L409" rel="#L409">409</span>
|
|
<span id="L410" rel="#L410">410</span>
|
|
<span id="L411" rel="#L411">411</span>
|
|
<span id="L412" rel="#L412">412</span>
|
|
<span id="L413" rel="#L413">413</span>
|
|
<span id="L414" rel="#L414">414</span>
|
|
<span id="L415" rel="#L415">415</span>
|
|
<span id="L416" rel="#L416">416</span>
|
|
<span id="L417" rel="#L417">417</span>
|
|
<span id="L418" rel="#L418">418</span>
|
|
<span id="L419" rel="#L419">419</span>
|
|
<span id="L420" rel="#L420">420</span>
|
|
<span id="L421" rel="#L421">421</span>
|
|
<span id="L422" rel="#L422">422</span>
|
|
<span id="L423" rel="#L423">423</span>
|
|
<span id="L424" rel="#L424">424</span>
|
|
<span id="L425" rel="#L425">425</span>
|
|
<span id="L426" rel="#L426">426</span>
|
|
<span id="L427" rel="#L427">427</span>
|
|
<span id="L428" rel="#L428">428</span>
|
|
<span id="L429" rel="#L429">429</span>
|
|
<span id="L430" rel="#L430">430</span>
|
|
<span id="L431" rel="#L431">431</span>
|
|
<span id="L432" rel="#L432">432</span>
|
|
<span id="L433" rel="#L433">433</span>
|
|
<span id="L434" rel="#L434">434</span>
|
|
<span id="L435" rel="#L435">435</span>
|
|
<span id="L436" rel="#L436">436</span>
|
|
<span id="L437" rel="#L437">437</span>
|
|
<span id="L438" rel="#L438">438</span>
|
|
<span id="L439" rel="#L439">439</span>
|
|
<span id="L440" rel="#L440">440</span>
|
|
<span id="L441" rel="#L441">441</span>
|
|
<span id="L442" rel="#L442">442</span>
|
|
<span id="L443" rel="#L443">443</span>
|
|
<span id="L444" rel="#L444">444</span>
|
|
<span id="L445" rel="#L445">445</span>
|
|
<span id="L446" rel="#L446">446</span>
|
|
<span id="L447" rel="#L447">447</span>
|
|
<span id="L448" rel="#L448">448</span>
|
|
<span id="L449" rel="#L449">449</span>
|
|
<span id="L450" rel="#L450">450</span>
|
|
<span id="L451" rel="#L451">451</span>
|
|
<span id="L452" rel="#L452">452</span>
|
|
<span id="L453" rel="#L453">453</span>
|
|
<span id="L454" rel="#L454">454</span>
|
|
<span id="L455" rel="#L455">455</span>
|
|
<span id="L456" rel="#L456">456</span>
|
|
<span id="L457" rel="#L457">457</span>
|
|
<span id="L458" rel="#L458">458</span>
|
|
<span id="L459" rel="#L459">459</span>
|
|
<span id="L460" rel="#L460">460</span>
|
|
<span id="L461" rel="#L461">461</span>
|
|
<span id="L462" rel="#L462">462</span>
|
|
<span id="L463" rel="#L463">463</span>
|
|
<span id="L464" rel="#L464">464</span>
|
|
<span id="L465" rel="#L465">465</span>
|
|
<span id="L466" rel="#L466">466</span>
|
|
<span id="L467" rel="#L467">467</span>
|
|
<span id="L468" rel="#L468">468</span>
|
|
<span id="L469" rel="#L469">469</span>
|
|
<span id="L470" rel="#L470">470</span>
|
|
<span id="L471" rel="#L471">471</span>
|
|
<span id="L472" rel="#L472">472</span>
|
|
<span id="L473" rel="#L473">473</span>
|
|
<span id="L474" rel="#L474">474</span>
|
|
<span id="L475" rel="#L475">475</span>
|
|
<span id="L476" rel="#L476">476</span>
|
|
<span id="L477" rel="#L477">477</span>
|
|
<span id="L478" rel="#L478">478</span>
|
|
<span id="L479" rel="#L479">479</span>
|
|
<span id="L480" rel="#L480">480</span>
|
|
<span id="L481" rel="#L481">481</span>
|
|
<span id="L482" rel="#L482">482</span>
|
|
<span id="L483" rel="#L483">483</span>
|
|
<span id="L484" rel="#L484">484</span>
|
|
<span id="L485" rel="#L485">485</span>
|
|
<span id="L486" rel="#L486">486</span>
|
|
<span id="L487" rel="#L487">487</span>
|
|
<span id="L488" rel="#L488">488</span>
|
|
<span id="L489" rel="#L489">489</span>
|
|
<span id="L490" rel="#L490">490</span>
|
|
<span id="L491" rel="#L491">491</span>
|
|
<span id="L492" rel="#L492">492</span>
|
|
<span id="L493" rel="#L493">493</span>
|
|
<span id="L494" rel="#L494">494</span>
|
|
<span id="L495" rel="#L495">495</span>
|
|
<span id="L496" rel="#L496">496</span>
|
|
<span id="L497" rel="#L497">497</span>
|
|
<span id="L498" rel="#L498">498</span>
|
|
<span id="L499" rel="#L499">499</span>
|
|
<span id="L500" rel="#L500">500</span>
|
|
<span id="L501" rel="#L501">501</span>
|
|
<span id="L502" rel="#L502">502</span>
|
|
<span id="L503" rel="#L503">503</span>
|
|
<span id="L504" rel="#L504">504</span>
|
|
<span id="L505" rel="#L505">505</span>
|
|
<span id="L506" rel="#L506">506</span>
|
|
<span id="L507" rel="#L507">507</span>
|
|
<span id="L508" rel="#L508">508</span>
|
|
<span id="L509" rel="#L509">509</span>
|
|
<span id="L510" rel="#L510">510</span>
|
|
<span id="L511" rel="#L511">511</span>
|
|
<span id="L512" rel="#L512">512</span>
|
|
<span id="L513" rel="#L513">513</span>
|
|
<span id="L514" rel="#L514">514</span>
|
|
<span id="L515" rel="#L515">515</span>
|
|
<span id="L516" rel="#L516">516</span>
|
|
<span id="L517" rel="#L517">517</span>
|
|
<span id="L518" rel="#L518">518</span>
|
|
<span id="L519" rel="#L519">519</span>
|
|
<span id="L520" rel="#L520">520</span>
|
|
<span id="L521" rel="#L521">521</span>
|
|
<span id="L522" rel="#L522">522</span>
|
|
<span id="L523" rel="#L523">523</span>
|
|
<span id="L524" rel="#L524">524</span>
|
|
<span id="L525" rel="#L525">525</span>
|
|
<span id="L526" rel="#L526">526</span>
|
|
<span id="L527" rel="#L527">527</span>
|
|
<span id="L528" rel="#L528">528</span>
|
|
<span id="L529" rel="#L529">529</span>
|
|
<span id="L530" rel="#L530">530</span>
|
|
<span id="L531" rel="#L531">531</span>
|
|
<span id="L532" rel="#L532">532</span>
|
|
<span id="L533" rel="#L533">533</span>
|
|
<span id="L534" rel="#L534">534</span>
|
|
<span id="L535" rel="#L535">535</span>
|
|
<span id="L536" rel="#L536">536</span>
|
|
<span id="L537" rel="#L537">537</span>
|
|
<span id="L538" rel="#L538">538</span>
|
|
<span id="L539" rel="#L539">539</span>
|
|
<span id="L540" rel="#L540">540</span>
|
|
<span id="L541" rel="#L541">541</span>
|
|
<span id="L542" rel="#L542">542</span>
|
|
<span id="L543" rel="#L543">543</span>
|
|
<span id="L544" rel="#L544">544</span>
|
|
<span id="L545" rel="#L545">545</span>
|
|
<span id="L546" rel="#L546">546</span>
|
|
<span id="L547" rel="#L547">547</span>
|
|
<span id="L548" rel="#L548">548</span>
|
|
<span id="L549" rel="#L549">549</span>
|
|
<span id="L550" rel="#L550">550</span>
|
|
<span id="L551" rel="#L551">551</span>
|
|
<span id="L552" rel="#L552">552</span>
|
|
<span id="L553" rel="#L553">553</span>
|
|
<span id="L554" rel="#L554">554</span>
|
|
<span id="L555" rel="#L555">555</span>
|
|
<span id="L556" rel="#L556">556</span>
|
|
<span id="L557" rel="#L557">557</span>
|
|
<span id="L558" rel="#L558">558</span>
|
|
<span id="L559" rel="#L559">559</span>
|
|
<span id="L560" rel="#L560">560</span>
|
|
<span id="L561" rel="#L561">561</span>
|
|
<span id="L562" rel="#L562">562</span>
|
|
<span id="L563" rel="#L563">563</span>
|
|
<span id="L564" rel="#L564">564</span>
|
|
<span id="L565" rel="#L565">565</span>
|
|
<span id="L566" rel="#L566">566</span>
|
|
<span id="L567" rel="#L567">567</span>
|
|
<span id="L568" rel="#L568">568</span>
|
|
<span id="L569" rel="#L569">569</span>
|
|
<span id="L570" rel="#L570">570</span>
|
|
<span id="L571" rel="#L571">571</span>
|
|
<span id="L572" rel="#L572">572</span>
|
|
<span id="L573" rel="#L573">573</span>
|
|
<span id="L574" rel="#L574">574</span>
|
|
<span id="L575" rel="#L575">575</span>
|
|
<span id="L576" rel="#L576">576</span>
|
|
<span id="L577" rel="#L577">577</span>
|
|
<span id="L578" rel="#L578">578</span>
|
|
<span id="L579" rel="#L579">579</span>
|
|
<span id="L580" rel="#L580">580</span>
|
|
<span id="L581" rel="#L581">581</span>
|
|
<span id="L582" rel="#L582">582</span>
|
|
<span id="L583" rel="#L583">583</span>
|
|
<span id="L584" rel="#L584">584</span>
|
|
<span id="L585" rel="#L585">585</span>
|
|
<span id="L586" rel="#L586">586</span>
|
|
<span id="L587" rel="#L587">587</span>
|
|
<span id="L588" rel="#L588">588</span>
|
|
<span id="L589" rel="#L589">589</span>
|
|
<span id="L590" rel="#L590">590</span>
|
|
<span id="L591" rel="#L591">591</span>
|
|
<span id="L592" rel="#L592">592</span>
|
|
<span id="L593" rel="#L593">593</span>
|
|
<span id="L594" rel="#L594">594</span>
|
|
<span id="L595" rel="#L595">595</span>
|
|
<span id="L596" rel="#L596">596</span>
|
|
<span id="L597" rel="#L597">597</span>
|
|
<span id="L598" rel="#L598">598</span>
|
|
<span id="L599" rel="#L599">599</span>
|
|
<span id="L600" rel="#L600">600</span>
|
|
<span id="L601" rel="#L601">601</span>
|
|
<span id="L602" rel="#L602">602</span>
|
|
<span id="L603" rel="#L603">603</span>
|
|
<span id="L604" rel="#L604">604</span>
|
|
<span id="L605" rel="#L605">605</span>
|
|
<span id="L606" rel="#L606">606</span>
|
|
<span id="L607" rel="#L607">607</span>
|
|
<span id="L608" rel="#L608">608</span>
|
|
<span id="L609" rel="#L609">609</span>
|
|
<span id="L610" rel="#L610">610</span>
|
|
<span id="L611" rel="#L611">611</span>
|
|
<span id="L612" rel="#L612">612</span>
|
|
<span id="L613" rel="#L613">613</span>
|
|
<span id="L614" rel="#L614">614</span>
|
|
<span id="L615" rel="#L615">615</span>
|
|
<span id="L616" rel="#L616">616</span>
|
|
<span id="L617" rel="#L617">617</span>
|
|
<span id="L618" rel="#L618">618</span>
|
|
<span id="L619" rel="#L619">619</span>
|
|
<span id="L620" rel="#L620">620</span>
|
|
<span id="L621" rel="#L621">621</span>
|
|
<span id="L622" rel="#L622">622</span>
|
|
<span id="L623" rel="#L623">623</span>
|
|
<span id="L624" rel="#L624">624</span>
|
|
<span id="L625" rel="#L625">625</span>
|
|
<span id="L626" rel="#L626">626</span>
|
|
<span id="L627" rel="#L627">627</span>
|
|
<span id="L628" rel="#L628">628</span>
|
|
<span id="L629" rel="#L629">629</span>
|
|
<span id="L630" rel="#L630">630</span>
|
|
<span id="L631" rel="#L631">631</span>
|
|
<span id="L632" rel="#L632">632</span>
|
|
<span id="L633" rel="#L633">633</span>
|
|
<span id="L634" rel="#L634">634</span>
|
|
<span id="L635" rel="#L635">635</span>
|
|
<span id="L636" rel="#L636">636</span>
|
|
<span id="L637" rel="#L637">637</span>
|
|
<span id="L638" rel="#L638">638</span>
|
|
<span id="L639" rel="#L639">639</span>
|
|
<span id="L640" rel="#L640">640</span>
|
|
<span id="L641" rel="#L641">641</span>
|
|
<span id="L642" rel="#L642">642</span>
|
|
<span id="L643" rel="#L643">643</span>
|
|
<span id="L644" rel="#L644">644</span>
|
|
<span id="L645" rel="#L645">645</span>
|
|
<span id="L646" rel="#L646">646</span>
|
|
<span id="L647" rel="#L647">647</span>
|
|
<span id="L648" rel="#L648">648</span>
|
|
<span id="L649" rel="#L649">649</span>
|
|
<span id="L650" rel="#L650">650</span>
|
|
<span id="L651" rel="#L651">651</span>
|
|
<span id="L652" rel="#L652">652</span>
|
|
<span id="L653" rel="#L653">653</span>
|
|
<span id="L654" rel="#L654">654</span>
|
|
<span id="L655" rel="#L655">655</span>
|
|
<span id="L656" rel="#L656">656</span>
|
|
<span id="L657" rel="#L657">657</span>
|
|
<span id="L658" rel="#L658">658</span>
|
|
<span id="L659" rel="#L659">659</span>
|
|
<span id="L660" rel="#L660">660</span>
|
|
<span id="L661" rel="#L661">661</span>
|
|
<span id="L662" rel="#L662">662</span>
|
|
<span id="L663" rel="#L663">663</span>
|
|
<span id="L664" rel="#L664">664</span>
|
|
<span id="L665" rel="#L665">665</span>
|
|
<span id="L666" rel="#L666">666</span>
|
|
<span id="L667" rel="#L667">667</span>
|
|
<span id="L668" rel="#L668">668</span>
|
|
<span id="L669" rel="#L669">669</span>
|
|
<span id="L670" rel="#L670">670</span>
|
|
<span id="L671" rel="#L671">671</span>
|
|
<span id="L672" rel="#L672">672</span>
|
|
<span id="L673" rel="#L673">673</span>
|
|
<span id="L674" rel="#L674">674</span>
|
|
<span id="L675" rel="#L675">675</span>
|
|
<span id="L676" rel="#L676">676</span>
|
|
<span id="L677" rel="#L677">677</span>
|
|
<span id="L678" rel="#L678">678</span>
|
|
<span id="L679" rel="#L679">679</span>
|
|
<span id="L680" rel="#L680">680</span>
|
|
<span id="L681" rel="#L681">681</span>
|
|
<span id="L682" rel="#L682">682</span>
|
|
<span id="L683" rel="#L683">683</span>
|
|
<span id="L684" rel="#L684">684</span>
|
|
<span id="L685" rel="#L685">685</span>
|
|
<span id="L686" rel="#L686">686</span>
|
|
<span id="L687" rel="#L687">687</span>
|
|
<span id="L688" rel="#L688">688</span>
|
|
<span id="L689" rel="#L689">689</span>
|
|
<span id="L690" rel="#L690">690</span>
|
|
<span id="L691" rel="#L691">691</span>
|
|
<span id="L692" rel="#L692">692</span>
|
|
<span id="L693" rel="#L693">693</span>
|
|
<span id="L694" rel="#L694">694</span>
|
|
<span id="L695" rel="#L695">695</span>
|
|
<span id="L696" rel="#L696">696</span>
|
|
<span id="L697" rel="#L697">697</span>
|
|
<span id="L698" rel="#L698">698</span>
|
|
<span id="L699" rel="#L699">699</span>
|
|
<span id="L700" rel="#L700">700</span>
|
|
<span id="L701" rel="#L701">701</span>
|
|
<span id="L702" rel="#L702">702</span>
|
|
<span id="L703" rel="#L703">703</span>
|
|
<span id="L704" rel="#L704">704</span>
|
|
<span id="L705" rel="#L705">705</span>
|
|
<span id="L706" rel="#L706">706</span>
|
|
<span id="L707" rel="#L707">707</span>
|
|
<span id="L708" rel="#L708">708</span>
|
|
<span id="L709" rel="#L709">709</span>
|
|
<span id="L710" rel="#L710">710</span>
|
|
<span id="L711" rel="#L711">711</span>
|
|
<span id="L712" rel="#L712">712</span>
|
|
<span id="L713" rel="#L713">713</span>
|
|
<span id="L714" rel="#L714">714</span>
|
|
<span id="L715" rel="#L715">715</span>
|
|
<span id="L716" rel="#L716">716</span>
|
|
<span id="L717" rel="#L717">717</span>
|
|
<span id="L718" rel="#L718">718</span>
|
|
<span id="L719" rel="#L719">719</span>
|
|
<span id="L720" rel="#L720">720</span>
|
|
<span id="L721" rel="#L721">721</span>
|
|
<span id="L722" rel="#L722">722</span>
|
|
<span id="L723" rel="#L723">723</span>
|
|
<span id="L724" rel="#L724">724</span>
|
|
<span id="L725" rel="#L725">725</span>
|
|
<span id="L726" rel="#L726">726</span>
|
|
<span id="L727" rel="#L727">727</span>
|
|
<span id="L728" rel="#L728">728</span>
|
|
<span id="L729" rel="#L729">729</span>
|
|
<span id="L730" rel="#L730">730</span>
|
|
<span id="L731" rel="#L731">731</span>
|
|
<span id="L732" rel="#L732">732</span>
|
|
<span id="L733" rel="#L733">733</span>
|
|
<span id="L734" rel="#L734">734</span>
|
|
<span id="L735" rel="#L735">735</span>
|
|
<span id="L736" rel="#L736">736</span>
|
|
<span id="L737" rel="#L737">737</span>
|
|
<span id="L738" rel="#L738">738</span>
|
|
<span id="L739" rel="#L739">739</span>
|
|
<span id="L740" rel="#L740">740</span>
|
|
<span id="L741" rel="#L741">741</span>
|
|
<span id="L742" rel="#L742">742</span>
|
|
<span id="L743" rel="#L743">743</span>
|
|
<span id="L744" rel="#L744">744</span>
|
|
<span id="L745" rel="#L745">745</span>
|
|
<span id="L746" rel="#L746">746</span>
|
|
<span id="L747" rel="#L747">747</span>
|
|
<span id="L748" rel="#L748">748</span>
|
|
<span id="L749" rel="#L749">749</span>
|
|
<span id="L750" rel="#L750">750</span>
|
|
<span id="L751" rel="#L751">751</span>
|
|
<span id="L752" rel="#L752">752</span>
|
|
<span id="L753" rel="#L753">753</span>
|
|
<span id="L754" rel="#L754">754</span>
|
|
<span id="L755" rel="#L755">755</span>
|
|
<span id="L756" rel="#L756">756</span>
|
|
<span id="L757" rel="#L757">757</span>
|
|
<span id="L758" rel="#L758">758</span>
|
|
<span id="L759" rel="#L759">759</span>
|
|
<span id="L760" rel="#L760">760</span>
|
|
<span id="L761" rel="#L761">761</span>
|
|
<span id="L762" rel="#L762">762</span>
|
|
<span id="L763" rel="#L763">763</span>
|
|
<span id="L764" rel="#L764">764</span>
|
|
<span id="L765" rel="#L765">765</span>
|
|
<span id="L766" rel="#L766">766</span>
|
|
<span id="L767" rel="#L767">767</span>
|
|
<span id="L768" rel="#L768">768</span>
|
|
<span id="L769" rel="#L769">769</span>
|
|
<span id="L770" rel="#L770">770</span>
|
|
<span id="L771" rel="#L771">771</span>
|
|
<span id="L772" rel="#L772">772</span>
|
|
<span id="L773" rel="#L773">773</span>
|
|
<span id="L774" rel="#L774">774</span>
|
|
<span id="L775" rel="#L775">775</span>
|
|
<span id="L776" rel="#L776">776</span>
|
|
<span id="L777" rel="#L777">777</span>
|
|
<span id="L778" rel="#L778">778</span>
|
|
<span id="L779" rel="#L779">779</span>
|
|
<span id="L780" rel="#L780">780</span>
|
|
<span id="L781" rel="#L781">781</span>
|
|
<span id="L782" rel="#L782">782</span>
|
|
<span id="L783" rel="#L783">783</span>
|
|
<span id="L784" rel="#L784">784</span>
|
|
<span id="L785" rel="#L785">785</span>
|
|
<span id="L786" rel="#L786">786</span>
|
|
<span id="L787" rel="#L787">787</span>
|
|
<span id="L788" rel="#L788">788</span>
|
|
<span id="L789" rel="#L789">789</span>
|
|
<span id="L790" rel="#L790">790</span>
|
|
<span id="L791" rel="#L791">791</span>
|
|
<span id="L792" rel="#L792">792</span>
|
|
<span id="L793" rel="#L793">793</span>
|
|
<span id="L794" rel="#L794">794</span>
|
|
<span id="L795" rel="#L795">795</span>
|
|
<span id="L796" rel="#L796">796</span>
|
|
<span id="L797" rel="#L797">797</span>
|
|
<span id="L798" rel="#L798">798</span>
|
|
<span id="L799" rel="#L799">799</span>
|
|
<span id="L800" rel="#L800">800</span>
|
|
<span id="L801" rel="#L801">801</span>
|
|
<span id="L802" rel="#L802">802</span>
|
|
<span id="L803" rel="#L803">803</span>
|
|
<span id="L804" rel="#L804">804</span>
|
|
<span id="L805" rel="#L805">805</span>
|
|
<span id="L806" rel="#L806">806</span>
|
|
<span id="L807" rel="#L807">807</span>
|
|
<span id="L808" rel="#L808">808</span>
|
|
<span id="L809" rel="#L809">809</span>
|
|
<span id="L810" rel="#L810">810</span>
|
|
<span id="L811" rel="#L811">811</span>
|
|
<span id="L812" rel="#L812">812</span>
|
|
<span id="L813" rel="#L813">813</span>
|
|
<span id="L814" rel="#L814">814</span>
|
|
<span id="L815" rel="#L815">815</span>
|
|
<span id="L816" rel="#L816">816</span>
|
|
<span id="L817" rel="#L817">817</span>
|
|
<span id="L818" rel="#L818">818</span>
|
|
<span id="L819" rel="#L819">819</span>
|
|
<span id="L820" rel="#L820">820</span>
|
|
<span id="L821" rel="#L821">821</span>
|
|
<span id="L822" rel="#L822">822</span>
|
|
<span id="L823" rel="#L823">823</span>
|
|
<span id="L824" rel="#L824">824</span>
|
|
<span id="L825" rel="#L825">825</span>
|
|
<span id="L826" rel="#L826">826</span>
|
|
<span id="L827" rel="#L827">827</span>
|
|
<span id="L828" rel="#L828">828</span>
|
|
<span id="L829" rel="#L829">829</span>
|
|
<span id="L830" rel="#L830">830</span>
|
|
<span id="L831" rel="#L831">831</span>
|
|
<span id="L832" rel="#L832">832</span>
|
|
<span id="L833" rel="#L833">833</span>
|
|
<span id="L834" rel="#L834">834</span>
|
|
<span id="L835" rel="#L835">835</span>
|
|
<span id="L836" rel="#L836">836</span>
|
|
<span id="L837" rel="#L837">837</span>
|
|
<span id="L838" rel="#L838">838</span>
|
|
<span id="L839" rel="#L839">839</span>
|
|
<span id="L840" rel="#L840">840</span>
|
|
<span id="L841" rel="#L841">841</span>
|
|
<span id="L842" rel="#L842">842</span>
|
|
<span id="L843" rel="#L843">843</span>
|
|
<span id="L844" rel="#L844">844</span>
|
|
<span id="L845" rel="#L845">845</span>
|
|
<span id="L846" rel="#L846">846</span>
|
|
<span id="L847" rel="#L847">847</span>
|
|
<span id="L848" rel="#L848">848</span>
|
|
<span id="L849" rel="#L849">849</span>
|
|
<span id="L850" rel="#L850">850</span>
|
|
<span id="L851" rel="#L851">851</span>
|
|
<span id="L852" rel="#L852">852</span>
|
|
<span id="L853" rel="#L853">853</span>
|
|
<span id="L854" rel="#L854">854</span>
|
|
<span id="L855" rel="#L855">855</span>
|
|
<span id="L856" rel="#L856">856</span>
|
|
<span id="L857" rel="#L857">857</span>
|
|
<span id="L858" rel="#L858">858</span>
|
|
<span id="L859" rel="#L859">859</span>
|
|
<span id="L860" rel="#L860">860</span>
|
|
<span id="L861" rel="#L861">861</span>
|
|
<span id="L862" rel="#L862">862</span>
|
|
<span id="L863" rel="#L863">863</span>
|
|
<span id="L864" rel="#L864">864</span>
|
|
<span id="L865" rel="#L865">865</span>
|
|
<span id="L866" rel="#L866">866</span>
|
|
<span id="L867" rel="#L867">867</span>
|
|
<span id="L868" rel="#L868">868</span>
|
|
<span id="L869" rel="#L869">869</span>
|
|
<span id="L870" rel="#L870">870</span>
|
|
<span id="L871" rel="#L871">871</span>
|
|
<span id="L872" rel="#L872">872</span>
|
|
<span id="L873" rel="#L873">873</span>
|
|
<span id="L874" rel="#L874">874</span>
|
|
<span id="L875" rel="#L875">875</span>
|
|
<span id="L876" rel="#L876">876</span>
|
|
<span id="L877" rel="#L877">877</span>
|
|
<span id="L878" rel="#L878">878</span>
|
|
<span id="L879" rel="#L879">879</span>
|
|
<span id="L880" rel="#L880">880</span>
|
|
<span id="L881" rel="#L881">881</span>
|
|
<span id="L882" rel="#L882">882</span>
|
|
<span id="L883" rel="#L883">883</span>
|
|
<span id="L884" rel="#L884">884</span>
|
|
<span id="L885" rel="#L885">885</span>
|
|
<span id="L886" rel="#L886">886</span>
|
|
<span id="L887" rel="#L887">887</span>
|
|
<span id="L888" rel="#L888">888</span>
|
|
<span id="L889" rel="#L889">889</span>
|
|
<span id="L890" rel="#L890">890</span>
|
|
<span id="L891" rel="#L891">891</span>
|
|
<span id="L892" rel="#L892">892</span>
|
|
<span id="L893" rel="#L893">893</span>
|
|
<span id="L894" rel="#L894">894</span>
|
|
<span id="L895" rel="#L895">895</span>
|
|
<span id="L896" rel="#L896">896</span>
|
|
<span id="L897" rel="#L897">897</span>
|
|
<span id="L898" rel="#L898">898</span>
|
|
<span id="L899" rel="#L899">899</span>
|
|
<span id="L900" rel="#L900">900</span>
|
|
<span id="L901" rel="#L901">901</span>
|
|
<span id="L902" rel="#L902">902</span>
|
|
<span id="L903" rel="#L903">903</span>
|
|
<span id="L904" rel="#L904">904</span>
|
|
<span id="L905" rel="#L905">905</span>
|
|
<span id="L906" rel="#L906">906</span>
|
|
<span id="L907" rel="#L907">907</span>
|
|
<span id="L908" rel="#L908">908</span>
|
|
<span id="L909" rel="#L909">909</span>
|
|
<span id="L910" rel="#L910">910</span>
|
|
<span id="L911" rel="#L911">911</span>
|
|
<span id="L912" rel="#L912">912</span>
|
|
<span id="L913" rel="#L913">913</span>
|
|
<span id="L914" rel="#L914">914</span>
|
|
<span id="L915" rel="#L915">915</span>
|
|
<span id="L916" rel="#L916">916</span>
|
|
<span id="L917" rel="#L917">917</span>
|
|
<span id="L918" rel="#L918">918</span>
|
|
<span id="L919" rel="#L919">919</span>
|
|
<span id="L920" rel="#L920">920</span>
|
|
<span id="L921" rel="#L921">921</span>
|
|
<span id="L922" rel="#L922">922</span>
|
|
<span id="L923" rel="#L923">923</span>
|
|
<span id="L924" rel="#L924">924</span>
|
|
<span id="L925" rel="#L925">925</span>
|
|
<span id="L926" rel="#L926">926</span>
|
|
<span id="L927" rel="#L927">927</span>
|
|
<span id="L928" rel="#L928">928</span>
|
|
<span id="L929" rel="#L929">929</span>
|
|
<span id="L930" rel="#L930">930</span>
|
|
<span id="L931" rel="#L931">931</span>
|
|
<span id="L932" rel="#L932">932</span>
|
|
<span id="L933" rel="#L933">933</span>
|
|
<span id="L934" rel="#L934">934</span>
|
|
<span id="L935" rel="#L935">935</span>
|
|
<span id="L936" rel="#L936">936</span>
|
|
<span id="L937" rel="#L937">937</span>
|
|
<span id="L938" rel="#L938">938</span>
|
|
<span id="L939" rel="#L939">939</span>
|
|
<span id="L940" rel="#L940">940</span>
|
|
<span id="L941" rel="#L941">941</span>
|
|
<span id="L942" rel="#L942">942</span>
|
|
<span id="L943" rel="#L943">943</span>
|
|
<span id="L944" rel="#L944">944</span>
|
|
<span id="L945" rel="#L945">945</span>
|
|
<span id="L946" rel="#L946">946</span>
|
|
<span id="L947" rel="#L947">947</span>
|
|
<span id="L948" rel="#L948">948</span>
|
|
<span id="L949" rel="#L949">949</span>
|
|
<span id="L950" rel="#L950">950</span>
|
|
<span id="L951" rel="#L951">951</span>
|
|
<span id="L952" rel="#L952">952</span>
|
|
<span id="L953" rel="#L953">953</span>
|
|
<span id="L954" rel="#L954">954</span>
|
|
<span id="L955" rel="#L955">955</span>
|
|
<span id="L956" rel="#L956">956</span>
|
|
<span id="L957" rel="#L957">957</span>
|
|
<span id="L958" rel="#L958">958</span>
|
|
<span id="L959" rel="#L959">959</span>
|
|
<span id="L960" rel="#L960">960</span>
|
|
<span id="L961" rel="#L961">961</span>
|
|
<span id="L962" rel="#L962">962</span>
|
|
<span id="L963" rel="#L963">963</span>
|
|
<span id="L964" rel="#L964">964</span>
|
|
<span id="L965" rel="#L965">965</span>
|
|
<span id="L966" rel="#L966">966</span>
|
|
<span id="L967" rel="#L967">967</span>
|
|
<span id="L968" rel="#L968">968</span>
|
|
<span id="L969" rel="#L969">969</span>
|
|
<span id="L970" rel="#L970">970</span>
|
|
<span id="L971" rel="#L971">971</span>
|
|
<span id="L972" rel="#L972">972</span>
|
|
<span id="L973" rel="#L973">973</span>
|
|
<span id="L974" rel="#L974">974</span>
|
|
<span id="L975" rel="#L975">975</span>
|
|
<span id="L976" rel="#L976">976</span>
|
|
<span id="L977" rel="#L977">977</span>
|
|
<span id="L978" rel="#L978">978</span>
|
|
<span id="L979" rel="#L979">979</span>
|
|
<span id="L980" rel="#L980">980</span>
|
|
<span id="L981" rel="#L981">981</span>
|
|
<span id="L982" rel="#L982">982</span>
|
|
<span id="L983" rel="#L983">983</span>
|
|
<span id="L984" rel="#L984">984</span>
|
|
<span id="L985" rel="#L985">985</span>
|
|
<span id="L986" rel="#L986">986</span>
|
|
<span id="L987" rel="#L987">987</span>
|
|
<span id="L988" rel="#L988">988</span>
|
|
<span id="L989" rel="#L989">989</span>
|
|
<span id="L990" rel="#L990">990</span>
|
|
<span id="L991" rel="#L991">991</span>
|
|
<span id="L992" rel="#L992">992</span>
|
|
<span id="L993" rel="#L993">993</span>
|
|
<span id="L994" rel="#L994">994</span>
|
|
<span id="L995" rel="#L995">995</span>
|
|
<span id="L996" rel="#L996">996</span>
|
|
<span id="L997" rel="#L997">997</span>
|
|
<span id="L998" rel="#L998">998</span>
|
|
<span id="L999" rel="#L999">999</span>
|
|
<span id="L1000" rel="#L1000">1000</span>
|
|
<span id="L1001" rel="#L1001">1001</span>
|
|
<span id="L1002" rel="#L1002">1002</span>
|
|
<span id="L1003" rel="#L1003">1003</span>
|
|
<span id="L1004" rel="#L1004">1004</span>
|
|
<span id="L1005" rel="#L1005">1005</span>
|
|
<span id="L1006" rel="#L1006">1006</span>
|
|
<span id="L1007" rel="#L1007">1007</span>
|
|
<span id="L1008" rel="#L1008">1008</span>
|
|
<span id="L1009" rel="#L1009">1009</span>
|
|
<span id="L1010" rel="#L1010">1010</span>
|
|
<span id="L1011" rel="#L1011">1011</span>
|
|
<span id="L1012" rel="#L1012">1012</span>
|
|
<span id="L1013" rel="#L1013">1013</span>
|
|
<span id="L1014" rel="#L1014">1014</span>
|
|
<span id="L1015" rel="#L1015">1015</span>
|
|
<span id="L1016" rel="#L1016">1016</span>
|
|
<span id="L1017" rel="#L1017">1017</span>
|
|
<span id="L1018" rel="#L1018">1018</span>
|
|
<span id="L1019" rel="#L1019">1019</span>
|
|
<span id="L1020" rel="#L1020">1020</span>
|
|
<span id="L1021" rel="#L1021">1021</span>
|
|
<span id="L1022" rel="#L1022">1022</span>
|
|
<span id="L1023" rel="#L1023">1023</span>
|
|
<span id="L1024" rel="#L1024">1024</span>
|
|
<span id="L1025" rel="#L1025">1025</span>
|
|
<span id="L1026" rel="#L1026">1026</span>
|
|
<span id="L1027" rel="#L1027">1027</span>
|
|
<span id="L1028" rel="#L1028">1028</span>
|
|
<span id="L1029" rel="#L1029">1029</span>
|
|
<span id="L1030" rel="#L1030">1030</span>
|
|
<span id="L1031" rel="#L1031">1031</span>
|
|
<span id="L1032" rel="#L1032">1032</span>
|
|
<span id="L1033" rel="#L1033">1033</span>
|
|
<span id="L1034" rel="#L1034">1034</span>
|
|
<span id="L1035" rel="#L1035">1035</span>
|
|
<span id="L1036" rel="#L1036">1036</span>
|
|
<span id="L1037" rel="#L1037">1037</span>
|
|
<span id="L1038" rel="#L1038">1038</span>
|
|
<span id="L1039" rel="#L1039">1039</span>
|
|
<span id="L1040" rel="#L1040">1040</span>
|
|
<span id="L1041" rel="#L1041">1041</span>
|
|
<span id="L1042" rel="#L1042">1042</span>
|
|
<span id="L1043" rel="#L1043">1043</span>
|
|
<span id="L1044" rel="#L1044">1044</span>
|
|
<span id="L1045" rel="#L1045">1045</span>
|
|
<span id="L1046" rel="#L1046">1046</span>
|
|
<span id="L1047" rel="#L1047">1047</span>
|
|
<span id="L1048" rel="#L1048">1048</span>
|
|
<span id="L1049" rel="#L1049">1049</span>
|
|
<span id="L1050" rel="#L1050">1050</span>
|
|
<span id="L1051" rel="#L1051">1051</span>
|
|
<span id="L1052" rel="#L1052">1052</span>
|
|
<span id="L1053" rel="#L1053">1053</span>
|
|
<span id="L1054" rel="#L1054">1054</span>
|
|
<span id="L1055" rel="#L1055">1055</span>
|
|
<span id="L1056" rel="#L1056">1056</span>
|
|
<span id="L1057" rel="#L1057">1057</span>
|
|
<span id="L1058" rel="#L1058">1058</span>
|
|
<span id="L1059" rel="#L1059">1059</span>
|
|
<span id="L1060" rel="#L1060">1060</span>
|
|
<span id="L1061" rel="#L1061">1061</span>
|
|
<span id="L1062" rel="#L1062">1062</span>
|
|
<span id="L1063" rel="#L1063">1063</span>
|
|
<span id="L1064" rel="#L1064">1064</span>
|
|
<span id="L1065" rel="#L1065">1065</span>
|
|
<span id="L1066" rel="#L1066">1066</span>
|
|
<span id="L1067" rel="#L1067">1067</span>
|
|
<span id="L1068" rel="#L1068">1068</span>
|
|
<span id="L1069" rel="#L1069">1069</span>
|
|
<span id="L1070" rel="#L1070">1070</span>
|
|
<span id="L1071" rel="#L1071">1071</span>
|
|
<span id="L1072" rel="#L1072">1072</span>
|
|
<span id="L1073" rel="#L1073">1073</span>
|
|
<span id="L1074" rel="#L1074">1074</span>
|
|
<span id="L1075" rel="#L1075">1075</span>
|
|
<span id="L1076" rel="#L1076">1076</span>
|
|
<span id="L1077" rel="#L1077">1077</span>
|
|
<span id="L1078" rel="#L1078">1078</span>
|
|
<span id="L1079" rel="#L1079">1079</span>
|
|
<span id="L1080" rel="#L1080">1080</span>
|
|
<span id="L1081" rel="#L1081">1081</span>
|
|
<span id="L1082" rel="#L1082">1082</span>
|
|
<span id="L1083" rel="#L1083">1083</span>
|
|
<span id="L1084" rel="#L1084">1084</span>
|
|
<span id="L1085" rel="#L1085">1085</span>
|
|
<span id="L1086" rel="#L1086">1086</span>
|
|
<span id="L1087" rel="#L1087">1087</span>
|
|
<span id="L1088" rel="#L1088">1088</span>
|
|
<span id="L1089" rel="#L1089">1089</span>
|
|
<span id="L1090" rel="#L1090">1090</span>
|
|
<span id="L1091" rel="#L1091">1091</span>
|
|
<span id="L1092" rel="#L1092">1092</span>
|
|
<span id="L1093" rel="#L1093">1093</span>
|
|
<span id="L1094" rel="#L1094">1094</span>
|
|
<span id="L1095" rel="#L1095">1095</span>
|
|
<span id="L1096" rel="#L1096">1096</span>
|
|
<span id="L1097" rel="#L1097">1097</span>
|
|
<span id="L1098" rel="#L1098">1098</span>
|
|
<span id="L1099" rel="#L1099">1099</span>
|
|
<span id="L1100" rel="#L1100">1100</span>
|
|
<span id="L1101" rel="#L1101">1101</span>
|
|
<span id="L1102" rel="#L1102">1102</span>
|
|
<span id="L1103" rel="#L1103">1103</span>
|
|
<span id="L1104" rel="#L1104">1104</span>
|
|
<span id="L1105" rel="#L1105">1105</span>
|
|
<span id="L1106" rel="#L1106">1106</span>
|
|
<span id="L1107" rel="#L1107">1107</span>
|
|
<span id="L1108" rel="#L1108">1108</span>
|
|
<span id="L1109" rel="#L1109">1109</span>
|
|
<span id="L1110" rel="#L1110">1110</span>
|
|
<span id="L1111" rel="#L1111">1111</span>
|
|
<span id="L1112" rel="#L1112">1112</span>
|
|
<span id="L1113" rel="#L1113">1113</span>
|
|
<span id="L1114" rel="#L1114">1114</span>
|
|
<span id="L1115" rel="#L1115">1115</span>
|
|
<span id="L1116" rel="#L1116">1116</span>
|
|
<span id="L1117" rel="#L1117">1117</span>
|
|
<span id="L1118" rel="#L1118">1118</span>
|
|
<span id="L1119" rel="#L1119">1119</span>
|
|
<span id="L1120" rel="#L1120">1120</span>
|
|
<span id="L1121" rel="#L1121">1121</span>
|
|
<span id="L1122" rel="#L1122">1122</span>
|
|
<span id="L1123" rel="#L1123">1123</span>
|
|
<span id="L1124" rel="#L1124">1124</span>
|
|
<span id="L1125" rel="#L1125">1125</span>
|
|
<span id="L1126" rel="#L1126">1126</span>
|
|
<span id="L1127" rel="#L1127">1127</span>
|
|
<span id="L1128" rel="#L1128">1128</span>
|
|
<span id="L1129" rel="#L1129">1129</span>
|
|
<span id="L1130" rel="#L1130">1130</span>
|
|
<span id="L1131" rel="#L1131">1131</span>
|
|
<span id="L1132" rel="#L1132">1132</span>
|
|
<span id="L1133" rel="#L1133">1133</span>
|
|
<span id="L1134" rel="#L1134">1134</span>
|
|
<span id="L1135" rel="#L1135">1135</span>
|
|
<span id="L1136" rel="#L1136">1136</span>
|
|
<span id="L1137" rel="#L1137">1137</span>
|
|
<span id="L1138" rel="#L1138">1138</span>
|
|
<span id="L1139" rel="#L1139">1139</span>
|
|
<span id="L1140" rel="#L1140">1140</span>
|
|
<span id="L1141" rel="#L1141">1141</span>
|
|
<span id="L1142" rel="#L1142">1142</span>
|
|
<span id="L1143" rel="#L1143">1143</span>
|
|
<span id="L1144" rel="#L1144">1144</span>
|
|
<span id="L1145" rel="#L1145">1145</span>
|
|
<span id="L1146" rel="#L1146">1146</span>
|
|
<span id="L1147" rel="#L1147">1147</span>
|
|
<span id="L1148" rel="#L1148">1148</span>
|
|
<span id="L1149" rel="#L1149">1149</span>
|
|
<span id="L1150" rel="#L1150">1150</span>
|
|
<span id="L1151" rel="#L1151">1151</span>
|
|
<span id="L1152" rel="#L1152">1152</span>
|
|
<span id="L1153" rel="#L1153">1153</span>
|
|
<span id="L1154" rel="#L1154">1154</span>
|
|
<span id="L1155" rel="#L1155">1155</span>
|
|
<span id="L1156" rel="#L1156">1156</span>
|
|
<span id="L1157" rel="#L1157">1157</span>
|
|
<span id="L1158" rel="#L1158">1158</span>
|
|
<span id="L1159" rel="#L1159">1159</span>
|
|
<span id="L1160" rel="#L1160">1160</span>
|
|
<span id="L1161" rel="#L1161">1161</span>
|
|
<span id="L1162" rel="#L1162">1162</span>
|
|
<span id="L1163" rel="#L1163">1163</span>
|
|
<span id="L1164" rel="#L1164">1164</span>
|
|
<span id="L1165" rel="#L1165">1165</span>
|
|
<span id="L1166" rel="#L1166">1166</span>
|
|
<span id="L1167" rel="#L1167">1167</span>
|
|
<span id="L1168" rel="#L1168">1168</span>
|
|
<span id="L1169" rel="#L1169">1169</span>
|
|
<span id="L1170" rel="#L1170">1170</span>
|
|
<span id="L1171" rel="#L1171">1171</span>
|
|
<span id="L1172" rel="#L1172">1172</span>
|
|
<span id="L1173" rel="#L1173">1173</span>
|
|
<span id="L1174" rel="#L1174">1174</span>
|
|
<span id="L1175" rel="#L1175">1175</span>
|
|
<span id="L1176" rel="#L1176">1176</span>
|
|
<span id="L1177" rel="#L1177">1177</span>
|
|
<span id="L1178" rel="#L1178">1178</span>
|
|
<span id="L1179" rel="#L1179">1179</span>
|
|
<span id="L1180" rel="#L1180">1180</span>
|
|
<span id="L1181" rel="#L1181">1181</span>
|
|
<span id="L1182" rel="#L1182">1182</span>
|
|
<span id="L1183" rel="#L1183">1183</span>
|
|
<span id="L1184" rel="#L1184">1184</span>
|
|
<span id="L1185" rel="#L1185">1185</span>
|
|
<span id="L1186" rel="#L1186">1186</span>
|
|
<span id="L1187" rel="#L1187">1187</span>
|
|
<span id="L1188" rel="#L1188">1188</span>
|
|
<span id="L1189" rel="#L1189">1189</span>
|
|
<span id="L1190" rel="#L1190">1190</span>
|
|
<span id="L1191" rel="#L1191">1191</span>
|
|
<span id="L1192" rel="#L1192">1192</span>
|
|
<span id="L1193" rel="#L1193">1193</span>
|
|
<span id="L1194" rel="#L1194">1194</span>
|
|
<span id="L1195" rel="#L1195">1195</span>
|
|
<span id="L1196" rel="#L1196">1196</span>
|
|
<span id="L1197" rel="#L1197">1197</span>
|
|
<span id="L1198" rel="#L1198">1198</span>
|
|
<span id="L1199" rel="#L1199">1199</span>
|
|
<span id="L1200" rel="#L1200">1200</span>
|
|
<span id="L1201" rel="#L1201">1201</span>
|
|
<span id="L1202" rel="#L1202">1202</span>
|
|
<span id="L1203" rel="#L1203">1203</span>
|
|
<span id="L1204" rel="#L1204">1204</span>
|
|
<span id="L1205" rel="#L1205">1205</span>
|
|
<span id="L1206" rel="#L1206">1206</span>
|
|
<span id="L1207" rel="#L1207">1207</span>
|
|
<span id="L1208" rel="#L1208">1208</span>
|
|
<span id="L1209" rel="#L1209">1209</span>
|
|
<span id="L1210" rel="#L1210">1210</span>
|
|
<span id="L1211" rel="#L1211">1211</span>
|
|
<span id="L1212" rel="#L1212">1212</span>
|
|
<span id="L1213" rel="#L1213">1213</span>
|
|
<span id="L1214" rel="#L1214">1214</span>
|
|
<span id="L1215" rel="#L1215">1215</span>
|
|
<span id="L1216" rel="#L1216">1216</span>
|
|
<span id="L1217" rel="#L1217">1217</span>
|
|
<span id="L1218" rel="#L1218">1218</span>
|
|
<span id="L1219" rel="#L1219">1219</span>
|
|
<span id="L1220" rel="#L1220">1220</span>
|
|
<span id="L1221" rel="#L1221">1221</span>
|
|
<span id="L1222" rel="#L1222">1222</span>
|
|
<span id="L1223" rel="#L1223">1223</span>
|
|
<span id="L1224" rel="#L1224">1224</span>
|
|
<span id="L1225" rel="#L1225">1225</span>
|
|
<span id="L1226" rel="#L1226">1226</span>
|
|
<span id="L1227" rel="#L1227">1227</span>
|
|
<span id="L1228" rel="#L1228">1228</span>
|
|
<span id="L1229" rel="#L1229">1229</span>
|
|
<span id="L1230" rel="#L1230">1230</span>
|
|
<span id="L1231" rel="#L1231">1231</span>
|
|
<span id="L1232" rel="#L1232">1232</span>
|
|
<span id="L1233" rel="#L1233">1233</span>
|
|
<span id="L1234" rel="#L1234">1234</span>
|
|
<span id="L1235" rel="#L1235">1235</span>
|
|
<span id="L1236" rel="#L1236">1236</span>
|
|
<span id="L1237" rel="#L1237">1237</span>
|
|
<span id="L1238" rel="#L1238">1238</span>
|
|
<span id="L1239" rel="#L1239">1239</span>
|
|
<span id="L1240" rel="#L1240">1240</span>
|
|
<span id="L1241" rel="#L1241">1241</span>
|
|
<span id="L1242" rel="#L1242">1242</span>
|
|
<span id="L1243" rel="#L1243">1243</span>
|
|
<span id="L1244" rel="#L1244">1244</span>
|
|
<span id="L1245" rel="#L1245">1245</span>
|
|
<span id="L1246" rel="#L1246">1246</span>
|
|
<span id="L1247" rel="#L1247">1247</span>
|
|
<span id="L1248" rel="#L1248">1248</span>
|
|
<span id="L1249" rel="#L1249">1249</span>
|
|
<span id="L1250" rel="#L1250">1250</span>
|
|
<span id="L1251" rel="#L1251">1251</span>
|
|
<span id="L1252" rel="#L1252">1252</span>
|
|
<span id="L1253" rel="#L1253">1253</span>
|
|
<span id="L1254" rel="#L1254">1254</span>
|
|
<span id="L1255" rel="#L1255">1255</span>
|
|
<span id="L1256" rel="#L1256">1256</span>
|
|
<span id="L1257" rel="#L1257">1257</span>
|
|
<span id="L1258" rel="#L1258">1258</span>
|
|
<span id="L1259" rel="#L1259">1259</span>
|
|
<span id="L1260" rel="#L1260">1260</span>
|
|
<span id="L1261" rel="#L1261">1261</span>
|
|
<span id="L1262" rel="#L1262">1262</span>
|
|
<span id="L1263" rel="#L1263">1263</span>
|
|
<span id="L1264" rel="#L1264">1264</span>
|
|
<span id="L1265" rel="#L1265">1265</span>
|
|
<span id="L1266" rel="#L1266">1266</span>
|
|
<span id="L1267" rel="#L1267">1267</span>
|
|
<span id="L1268" rel="#L1268">1268</span>
|
|
<span id="L1269" rel="#L1269">1269</span>
|
|
<span id="L1270" rel="#L1270">1270</span>
|
|
<span id="L1271" rel="#L1271">1271</span>
|
|
<span id="L1272" rel="#L1272">1272</span>
|
|
<span id="L1273" rel="#L1273">1273</span>
|
|
<span id="L1274" rel="#L1274">1274</span>
|
|
<span id="L1275" rel="#L1275">1275</span>
|
|
<span id="L1276" rel="#L1276">1276</span>
|
|
<span id="L1277" rel="#L1277">1277</span>
|
|
<span id="L1278" rel="#L1278">1278</span>
|
|
<span id="L1279" rel="#L1279">1279</span>
|
|
<span id="L1280" rel="#L1280">1280</span>
|
|
<span id="L1281" rel="#L1281">1281</span>
|
|
<span id="L1282" rel="#L1282">1282</span>
|
|
<span id="L1283" rel="#L1283">1283</span>
|
|
<span id="L1284" rel="#L1284">1284</span>
|
|
<span id="L1285" rel="#L1285">1285</span>
|
|
<span id="L1286" rel="#L1286">1286</span>
|
|
<span id="L1287" rel="#L1287">1287</span>
|
|
<span id="L1288" rel="#L1288">1288</span>
|
|
<span id="L1289" rel="#L1289">1289</span>
|
|
<span id="L1290" rel="#L1290">1290</span>
|
|
<span id="L1291" rel="#L1291">1291</span>
|
|
<span id="L1292" rel="#L1292">1292</span>
|
|
<span id="L1293" rel="#L1293">1293</span>
|
|
<span id="L1294" rel="#L1294">1294</span>
|
|
<span id="L1295" rel="#L1295">1295</span>
|
|
<span id="L1296" rel="#L1296">1296</span>
|
|
<span id="L1297" rel="#L1297">1297</span>
|
|
<span id="L1298" rel="#L1298">1298</span>
|
|
<span id="L1299" rel="#L1299">1299</span>
|
|
<span id="L1300" rel="#L1300">1300</span>
|
|
<span id="L1301" rel="#L1301">1301</span>
|
|
<span id="L1302" rel="#L1302">1302</span>
|
|
<span id="L1303" rel="#L1303">1303</span>
|
|
<span id="L1304" rel="#L1304">1304</span>
|
|
<span id="L1305" rel="#L1305">1305</span>
|
|
<span id="L1306" rel="#L1306">1306</span>
|
|
<span id="L1307" rel="#L1307">1307</span>
|
|
<span id="L1308" rel="#L1308">1308</span>
|
|
<span id="L1309" rel="#L1309">1309</span>
|
|
<span id="L1310" rel="#L1310">1310</span>
|
|
<span id="L1311" rel="#L1311">1311</span>
|
|
<span id="L1312" rel="#L1312">1312</span>
|
|
<span id="L1313" rel="#L1313">1313</span>
|
|
<span id="L1314" rel="#L1314">1314</span>
|
|
<span id="L1315" rel="#L1315">1315</span>
|
|
<span id="L1316" rel="#L1316">1316</span>
|
|
<span id="L1317" rel="#L1317">1317</span>
|
|
<span id="L1318" rel="#L1318">1318</span>
|
|
<span id="L1319" rel="#L1319">1319</span>
|
|
<span id="L1320" rel="#L1320">1320</span>
|
|
<span id="L1321" rel="#L1321">1321</span>
|
|
<span id="L1322" rel="#L1322">1322</span>
|
|
<span id="L1323" rel="#L1323">1323</span>
|
|
<span id="L1324" rel="#L1324">1324</span>
|
|
<span id="L1325" rel="#L1325">1325</span>
|
|
<span id="L1326" rel="#L1326">1326</span>
|
|
<span id="L1327" rel="#L1327">1327</span>
|
|
<span id="L1328" rel="#L1328">1328</span>
|
|
<span id="L1329" rel="#L1329">1329</span>
|
|
<span id="L1330" rel="#L1330">1330</span>
|
|
<span id="L1331" rel="#L1331">1331</span>
|
|
<span id="L1332" rel="#L1332">1332</span>
|
|
<span id="L1333" rel="#L1333">1333</span>
|
|
<span id="L1334" rel="#L1334">1334</span>
|
|
<span id="L1335" rel="#L1335">1335</span>
|
|
<span id="L1336" rel="#L1336">1336</span>
|
|
<span id="L1337" rel="#L1337">1337</span>
|
|
<span id="L1338" rel="#L1338">1338</span>
|
|
<span id="L1339" rel="#L1339">1339</span>
|
|
<span id="L1340" rel="#L1340">1340</span>
|
|
<span id="L1341" rel="#L1341">1341</span>
|
|
<span id="L1342" rel="#L1342">1342</span>
|
|
<span id="L1343" rel="#L1343">1343</span>
|
|
<span id="L1344" rel="#L1344">1344</span>
|
|
<span id="L1345" rel="#L1345">1345</span>
|
|
<span id="L1346" rel="#L1346">1346</span>
|
|
<span id="L1347" rel="#L1347">1347</span>
|
|
<span id="L1348" rel="#L1348">1348</span>
|
|
<span id="L1349" rel="#L1349">1349</span>
|
|
<span id="L1350" rel="#L1350">1350</span>
|
|
<span id="L1351" rel="#L1351">1351</span>
|
|
<span id="L1352" rel="#L1352">1352</span>
|
|
<span id="L1353" rel="#L1353">1353</span>
|
|
<span id="L1354" rel="#L1354">1354</span>
|
|
<span id="L1355" rel="#L1355">1355</span>
|
|
<span id="L1356" rel="#L1356">1356</span>
|
|
<span id="L1357" rel="#L1357">1357</span>
|
|
<span id="L1358" rel="#L1358">1358</span>
|
|
<span id="L1359" rel="#L1359">1359</span>
|
|
<span id="L1360" rel="#L1360">1360</span>
|
|
<span id="L1361" rel="#L1361">1361</span>
|
|
<span id="L1362" rel="#L1362">1362</span>
|
|
<span id="L1363" rel="#L1363">1363</span>
|
|
<span id="L1364" rel="#L1364">1364</span>
|
|
<span id="L1365" rel="#L1365">1365</span>
|
|
<span id="L1366" rel="#L1366">1366</span>
|
|
<span id="L1367" rel="#L1367">1367</span>
|
|
<span id="L1368" rel="#L1368">1368</span>
|
|
<span id="L1369" rel="#L1369">1369</span>
|
|
<span id="L1370" rel="#L1370">1370</span>
|
|
<span id="L1371" rel="#L1371">1371</span>
|
|
<span id="L1372" rel="#L1372">1372</span>
|
|
<span id="L1373" rel="#L1373">1373</span>
|
|
<span id="L1374" rel="#L1374">1374</span>
|
|
<span id="L1375" rel="#L1375">1375</span>
|
|
<span id="L1376" rel="#L1376">1376</span>
|
|
<span id="L1377" rel="#L1377">1377</span>
|
|
<span id="L1378" rel="#L1378">1378</span>
|
|
<span id="L1379" rel="#L1379">1379</span>
|
|
<span id="L1380" rel="#L1380">1380</span>
|
|
<span id="L1381" rel="#L1381">1381</span>
|
|
<span id="L1382" rel="#L1382">1382</span>
|
|
<span id="L1383" rel="#L1383">1383</span>
|
|
<span id="L1384" rel="#L1384">1384</span>
|
|
<span id="L1385" rel="#L1385">1385</span>
|
|
<span id="L1386" rel="#L1386">1386</span>
|
|
<span id="L1387" rel="#L1387">1387</span>
|
|
<span id="L1388" rel="#L1388">1388</span>
|
|
<span id="L1389" rel="#L1389">1389</span>
|
|
<span id="L1390" rel="#L1390">1390</span>
|
|
<span id="L1391" rel="#L1391">1391</span>
|
|
<span id="L1392" rel="#L1392">1392</span>
|
|
<span id="L1393" rel="#L1393">1393</span>
|
|
<span id="L1394" rel="#L1394">1394</span>
|
|
<span id="L1395" rel="#L1395">1395</span>
|
|
<span id="L1396" rel="#L1396">1396</span>
|
|
<span id="L1397" rel="#L1397">1397</span>
|
|
<span id="L1398" rel="#L1398">1398</span>
|
|
<span id="L1399" rel="#L1399">1399</span>
|
|
<span id="L1400" rel="#L1400">1400</span>
|
|
<span id="L1401" rel="#L1401">1401</span>
|
|
<span id="L1402" rel="#L1402">1402</span>
|
|
<span id="L1403" rel="#L1403">1403</span>
|
|
<span id="L1404" rel="#L1404">1404</span>
|
|
<span id="L1405" rel="#L1405">1405</span>
|
|
<span id="L1406" rel="#L1406">1406</span>
|
|
<span id="L1407" rel="#L1407">1407</span>
|
|
<span id="L1408" rel="#L1408">1408</span>
|
|
<span id="L1409" rel="#L1409">1409</span>
|
|
<span id="L1410" rel="#L1410">1410</span>
|
|
<span id="L1411" rel="#L1411">1411</span>
|
|
<span id="L1412" rel="#L1412">1412</span>
|
|
<span id="L1413" rel="#L1413">1413</span>
|
|
<span id="L1414" rel="#L1414">1414</span>
|
|
<span id="L1415" rel="#L1415">1415</span>
|
|
<span id="L1416" rel="#L1416">1416</span>
|
|
<span id="L1417" rel="#L1417">1417</span>
|
|
<span id="L1418" rel="#L1418">1418</span>
|
|
<span id="L1419" rel="#L1419">1419</span>
|
|
<span id="L1420" rel="#L1420">1420</span>
|
|
<span id="L1421" rel="#L1421">1421</span>
|
|
<span id="L1422" rel="#L1422">1422</span>
|
|
<span id="L1423" rel="#L1423">1423</span>
|
|
<span id="L1424" rel="#L1424">1424</span>
|
|
<span id="L1425" rel="#L1425">1425</span>
|
|
<span id="L1426" rel="#L1426">1426</span>
|
|
<span id="L1427" rel="#L1427">1427</span>
|
|
<span id="L1428" rel="#L1428">1428</span>
|
|
<span id="L1429" rel="#L1429">1429</span>
|
|
<span id="L1430" rel="#L1430">1430</span>
|
|
<span id="L1431" rel="#L1431">1431</span>
|
|
<span id="L1432" rel="#L1432">1432</span>
|
|
<span id="L1433" rel="#L1433">1433</span>
|
|
<span id="L1434" rel="#L1434">1434</span>
|
|
<span id="L1435" rel="#L1435">1435</span>
|
|
<span id="L1436" rel="#L1436">1436</span>
|
|
<span id="L1437" rel="#L1437">1437</span>
|
|
<span id="L1438" rel="#L1438">1438</span>
|
|
<span id="L1439" rel="#L1439">1439</span>
|
|
<span id="L1440" rel="#L1440">1440</span>
|
|
<span id="L1441" rel="#L1441">1441</span>
|
|
<span id="L1442" rel="#L1442">1442</span>
|
|
<span id="L1443" rel="#L1443">1443</span>
|
|
<span id="L1444" rel="#L1444">1444</span>
|
|
<span id="L1445" rel="#L1445">1445</span>
|
|
<span id="L1446" rel="#L1446">1446</span>
|
|
<span id="L1447" rel="#L1447">1447</span>
|
|
<span id="L1448" rel="#L1448">1448</span>
|
|
<span id="L1449" rel="#L1449">1449</span>
|
|
<span id="L1450" rel="#L1450">1450</span>
|
|
<span id="L1451" rel="#L1451">1451</span>
|
|
<span id="L1452" rel="#L1452">1452</span>
|
|
<span id="L1453" rel="#L1453">1453</span>
|
|
<span id="L1454" rel="#L1454">1454</span>
|
|
<span id="L1455" rel="#L1455">1455</span>
|
|
<span id="L1456" rel="#L1456">1456</span>
|
|
<span id="L1457" rel="#L1457">1457</span>
|
|
<span id="L1458" rel="#L1458">1458</span>
|
|
<span id="L1459" rel="#L1459">1459</span>
|
|
<span id="L1460" rel="#L1460">1460</span>
|
|
<span id="L1461" rel="#L1461">1461</span>
|
|
<span id="L1462" rel="#L1462">1462</span>
|
|
<span id="L1463" rel="#L1463">1463</span>
|
|
<span id="L1464" rel="#L1464">1464</span>
|
|
<span id="L1465" rel="#L1465">1465</span>
|
|
<span id="L1466" rel="#L1466">1466</span>
|
|
<span id="L1467" rel="#L1467">1467</span>
|
|
<span id="L1468" rel="#L1468">1468</span>
|
|
<span id="L1469" rel="#L1469">1469</span>
|
|
<span id="L1470" rel="#L1470">1470</span>
|
|
<span id="L1471" rel="#L1471">1471</span>
|
|
<span id="L1472" rel="#L1472">1472</span>
|
|
<span id="L1473" rel="#L1473">1473</span>
|
|
<span id="L1474" rel="#L1474">1474</span>
|
|
<span id="L1475" rel="#L1475">1475</span>
|
|
<span id="L1476" rel="#L1476">1476</span>
|
|
<span id="L1477" rel="#L1477">1477</span>
|
|
<span id="L1478" rel="#L1478">1478</span>
|
|
<span id="L1479" rel="#L1479">1479</span>
|
|
<span id="L1480" rel="#L1480">1480</span>
|
|
<span id="L1481" rel="#L1481">1481</span>
|
|
<span id="L1482" rel="#L1482">1482</span>
|
|
<span id="L1483" rel="#L1483">1483</span>
|
|
<span id="L1484" rel="#L1484">1484</span>
|
|
<span id="L1485" rel="#L1485">1485</span>
|
|
<span id="L1486" rel="#L1486">1486</span>
|
|
<span id="L1487" rel="#L1487">1487</span>
|
|
<span id="L1488" rel="#L1488">1488</span>
|
|
<span id="L1489" rel="#L1489">1489</span>
|
|
<span id="L1490" rel="#L1490">1490</span>
|
|
<span id="L1491" rel="#L1491">1491</span>
|
|
<span id="L1492" rel="#L1492">1492</span>
|
|
<span id="L1493" rel="#L1493">1493</span>
|
|
<span id="L1494" rel="#L1494">1494</span>
|
|
<span id="L1495" rel="#L1495">1495</span>
|
|
<span id="L1496" rel="#L1496">1496</span>
|
|
<span id="L1497" rel="#L1497">1497</span>
|
|
<span id="L1498" rel="#L1498">1498</span>
|
|
<span id="L1499" rel="#L1499">1499</span>
|
|
<span id="L1500" rel="#L1500">1500</span>
|
|
<span id="L1501" rel="#L1501">1501</span>
|
|
<span id="L1502" rel="#L1502">1502</span>
|
|
<span id="L1503" rel="#L1503">1503</span>
|
|
<span id="L1504" rel="#L1504">1504</span>
|
|
<span id="L1505" rel="#L1505">1505</span>
|
|
<span id="L1506" rel="#L1506">1506</span>
|
|
<span id="L1507" rel="#L1507">1507</span>
|
|
<span id="L1508" rel="#L1508">1508</span>
|
|
<span id="L1509" rel="#L1509">1509</span>
|
|
<span id="L1510" rel="#L1510">1510</span>
|
|
<span id="L1511" rel="#L1511">1511</span>
|
|
<span id="L1512" rel="#L1512">1512</span>
|
|
<span id="L1513" rel="#L1513">1513</span>
|
|
<span id="L1514" rel="#L1514">1514</span>
|
|
<span id="L1515" rel="#L1515">1515</span>
|
|
<span id="L1516" rel="#L1516">1516</span>
|
|
<span id="L1517" rel="#L1517">1517</span>
|
|
<span id="L1518" rel="#L1518">1518</span>
|
|
<span id="L1519" rel="#L1519">1519</span>
|
|
<span id="L1520" rel="#L1520">1520</span>
|
|
<span id="L1521" rel="#L1521">1521</span>
|
|
<span id="L1522" rel="#L1522">1522</span>
|
|
<span id="L1523" rel="#L1523">1523</span>
|
|
<span id="L1524" rel="#L1524">1524</span>
|
|
<span id="L1525" rel="#L1525">1525</span>
|
|
<span id="L1526" rel="#L1526">1526</span>
|
|
<span id="L1527" rel="#L1527">1527</span>
|
|
<span id="L1528" rel="#L1528">1528</span>
|
|
<span id="L1529" rel="#L1529">1529</span>
|
|
<span id="L1530" rel="#L1530">1530</span>
|
|
<span id="L1531" rel="#L1531">1531</span>
|
|
<span id="L1532" rel="#L1532">1532</span>
|
|
<span id="L1533" rel="#L1533">1533</span>
|
|
<span id="L1534" rel="#L1534">1534</span>
|
|
<span id="L1535" rel="#L1535">1535</span>
|
|
<span id="L1536" rel="#L1536">1536</span>
|
|
<span id="L1537" rel="#L1537">1537</span>
|
|
<span id="L1538" rel="#L1538">1538</span>
|
|
<span id="L1539" rel="#L1539">1539</span>
|
|
<span id="L1540" rel="#L1540">1540</span>
|
|
<span id="L1541" rel="#L1541">1541</span>
|
|
<span id="L1542" rel="#L1542">1542</span>
|
|
<span id="L1543" rel="#L1543">1543</span>
|
|
<span id="L1544" rel="#L1544">1544</span>
|
|
<span id="L1545" rel="#L1545">1545</span>
|
|
<span id="L1546" rel="#L1546">1546</span>
|
|
<span id="L1547" rel="#L1547">1547</span>
|
|
<span id="L1548" rel="#L1548">1548</span>
|
|
<span id="L1549" rel="#L1549">1549</span>
|
|
<span id="L1550" rel="#L1550">1550</span>
|
|
<span id="L1551" rel="#L1551">1551</span>
|
|
<span id="L1552" rel="#L1552">1552</span>
|
|
<span id="L1553" rel="#L1553">1553</span>
|
|
<span id="L1554" rel="#L1554">1554</span>
|
|
<span id="L1555" rel="#L1555">1555</span>
|
|
<span id="L1556" rel="#L1556">1556</span>
|
|
<span id="L1557" rel="#L1557">1557</span>
|
|
<span id="L1558" rel="#L1558">1558</span>
|
|
<span id="L1559" rel="#L1559">1559</span>
|
|
<span id="L1560" rel="#L1560">1560</span>
|
|
<span id="L1561" rel="#L1561">1561</span>
|
|
<span id="L1562" rel="#L1562">1562</span>
|
|
<span id="L1563" rel="#L1563">1563</span>
|
|
<span id="L1564" rel="#L1564">1564</span>
|
|
<span id="L1565" rel="#L1565">1565</span>
|
|
<span id="L1566" rel="#L1566">1566</span>
|
|
<span id="L1567" rel="#L1567">1567</span>
|
|
<span id="L1568" rel="#L1568">1568</span>
|
|
<span id="L1569" rel="#L1569">1569</span>
|
|
<span id="L1570" rel="#L1570">1570</span>
|
|
<span id="L1571" rel="#L1571">1571</span>
|
|
<span id="L1572" rel="#L1572">1572</span>
|
|
<span id="L1573" rel="#L1573">1573</span>
|
|
<span id="L1574" rel="#L1574">1574</span>
|
|
<span id="L1575" rel="#L1575">1575</span>
|
|
<span id="L1576" rel="#L1576">1576</span>
|
|
<span id="L1577" rel="#L1577">1577</span>
|
|
<span id="L1578" rel="#L1578">1578</span>
|
|
<span id="L1579" rel="#L1579">1579</span>
|
|
<span id="L1580" rel="#L1580">1580</span>
|
|
<span id="L1581" rel="#L1581">1581</span>
|
|
<span id="L1582" rel="#L1582">1582</span>
|
|
<span id="L1583" rel="#L1583">1583</span>
|
|
<span id="L1584" rel="#L1584">1584</span>
|
|
<span id="L1585" rel="#L1585">1585</span>
|
|
<span id="L1586" rel="#L1586">1586</span>
|
|
<span id="L1587" rel="#L1587">1587</span>
|
|
<span id="L1588" rel="#L1588">1588</span>
|
|
<span id="L1589" rel="#L1589">1589</span>
|
|
<span id="L1590" rel="#L1590">1590</span>
|
|
<span id="L1591" rel="#L1591">1591</span>
|
|
<span id="L1592" rel="#L1592">1592</span>
|
|
<span id="L1593" rel="#L1593">1593</span>
|
|
<span id="L1594" rel="#L1594">1594</span>
|
|
<span id="L1595" rel="#L1595">1595</span>
|
|
<span id="L1596" rel="#L1596">1596</span>
|
|
<span id="L1597" rel="#L1597">1597</span>
|
|
<span id="L1598" rel="#L1598">1598</span>
|
|
<span id="L1599" rel="#L1599">1599</span>
|
|
<span id="L1600" rel="#L1600">1600</span>
|
|
<span id="L1601" rel="#L1601">1601</span>
|
|
<span id="L1602" rel="#L1602">1602</span>
|
|
<span id="L1603" rel="#L1603">1603</span>
|
|
<span id="L1604" rel="#L1604">1604</span>
|
|
<span id="L1605" rel="#L1605">1605</span>
|
|
<span id="L1606" rel="#L1606">1606</span>
|
|
<span id="L1607" rel="#L1607">1607</span>
|
|
<span id="L1608" rel="#L1608">1608</span>
|
|
<span id="L1609" rel="#L1609">1609</span>
|
|
<span id="L1610" rel="#L1610">1610</span>
|
|
<span id="L1611" rel="#L1611">1611</span>
|
|
<span id="L1612" rel="#L1612">1612</span>
|
|
<span id="L1613" rel="#L1613">1613</span>
|
|
<span id="L1614" rel="#L1614">1614</span>
|
|
<span id="L1615" rel="#L1615">1615</span>
|
|
<span id="L1616" rel="#L1616">1616</span>
|
|
<span id="L1617" rel="#L1617">1617</span>
|
|
<span id="L1618" rel="#L1618">1618</span>
|
|
<span id="L1619" rel="#L1619">1619</span>
|
|
<span id="L1620" rel="#L1620">1620</span>
|
|
<span id="L1621" rel="#L1621">1621</span>
|
|
<span id="L1622" rel="#L1622">1622</span>
|
|
<span id="L1623" rel="#L1623">1623</span>
|
|
<span id="L1624" rel="#L1624">1624</span>
|
|
<span id="L1625" rel="#L1625">1625</span>
|
|
<span id="L1626" rel="#L1626">1626</span>
|
|
<span id="L1627" rel="#L1627">1627</span>
|
|
<span id="L1628" rel="#L1628">1628</span>
|
|
<span id="L1629" rel="#L1629">1629</span>
|
|
<span id="L1630" rel="#L1630">1630</span>
|
|
<span id="L1631" rel="#L1631">1631</span>
|
|
<span id="L1632" rel="#L1632">1632</span>
|
|
<span id="L1633" rel="#L1633">1633</span>
|
|
<span id="L1634" rel="#L1634">1634</span>
|
|
<span id="L1635" rel="#L1635">1635</span>
|
|
<span id="L1636" rel="#L1636">1636</span>
|
|
<span id="L1637" rel="#L1637">1637</span>
|
|
<span id="L1638" rel="#L1638">1638</span>
|
|
<span id="L1639" rel="#L1639">1639</span>
|
|
<span id="L1640" rel="#L1640">1640</span>
|
|
<span id="L1641" rel="#L1641">1641</span>
|
|
<span id="L1642" rel="#L1642">1642</span>
|
|
<span id="L1643" rel="#L1643">1643</span>
|
|
<span id="L1644" rel="#L1644">1644</span>
|
|
<span id="L1645" rel="#L1645">1645</span>
|
|
<span id="L1646" rel="#L1646">1646</span>
|
|
<span id="L1647" rel="#L1647">1647</span>
|
|
<span id="L1648" rel="#L1648">1648</span>
|
|
<span id="L1649" rel="#L1649">1649</span>
|
|
<span id="L1650" rel="#L1650">1650</span>
|
|
<span id="L1651" rel="#L1651">1651</span>
|
|
<span id="L1652" rel="#L1652">1652</span>
|
|
<span id="L1653" rel="#L1653">1653</span>
|
|
<span id="L1654" rel="#L1654">1654</span>
|
|
<span id="L1655" rel="#L1655">1655</span>
|
|
<span id="L1656" rel="#L1656">1656</span>
|
|
<span id="L1657" rel="#L1657">1657</span>
|
|
<span id="L1658" rel="#L1658">1658</span>
|
|
<span id="L1659" rel="#L1659">1659</span>
|
|
<span id="L1660" rel="#L1660">1660</span>
|
|
<span id="L1661" rel="#L1661">1661</span>
|
|
<span id="L1662" rel="#L1662">1662</span>
|
|
<span id="L1663" rel="#L1663">1663</span>
|
|
<span id="L1664" rel="#L1664">1664</span>
|
|
<span id="L1665" rel="#L1665">1665</span>
|
|
<span id="L1666" rel="#L1666">1666</span>
|
|
<span id="L1667" rel="#L1667">1667</span>
|
|
<span id="L1668" rel="#L1668">1668</span>
|
|
<span id="L1669" rel="#L1669">1669</span>
|
|
<span id="L1670" rel="#L1670">1670</span>
|
|
<span id="L1671" rel="#L1671">1671</span>
|
|
<span id="L1672" rel="#L1672">1672</span>
|
|
<span id="L1673" rel="#L1673">1673</span>
|
|
<span id="L1674" rel="#L1674">1674</span>
|
|
<span id="L1675" rel="#L1675">1675</span>
|
|
<span id="L1676" rel="#L1676">1676</span>
|
|
<span id="L1677" rel="#L1677">1677</span>
|
|
<span id="L1678" rel="#L1678">1678</span>
|
|
<span id="L1679" rel="#L1679">1679</span>
|
|
<span id="L1680" rel="#L1680">1680</span>
|
|
<span id="L1681" rel="#L1681">1681</span>
|
|
<span id="L1682" rel="#L1682">1682</span>
|
|
<span id="L1683" rel="#L1683">1683</span>
|
|
<span id="L1684" rel="#L1684">1684</span>
|
|
<span id="L1685" rel="#L1685">1685</span>
|
|
<span id="L1686" rel="#L1686">1686</span>
|
|
<span id="L1687" rel="#L1687">1687</span>
|
|
<span id="L1688" rel="#L1688">1688</span>
|
|
<span id="L1689" rel="#L1689">1689</span>
|
|
<span id="L1690" rel="#L1690">1690</span>
|
|
<span id="L1691" rel="#L1691">1691</span>
|
|
<span id="L1692" rel="#L1692">1692</span>
|
|
<span id="L1693" rel="#L1693">1693</span>
|
|
<span id="L1694" rel="#L1694">1694</span>
|
|
<span id="L1695" rel="#L1695">1695</span>
|
|
<span id="L1696" rel="#L1696">1696</span>
|
|
<span id="L1697" rel="#L1697">1697</span>
|
|
<span id="L1698" rel="#L1698">1698</span>
|
|
<span id="L1699" rel="#L1699">1699</span>
|
|
<span id="L1700" rel="#L1700">1700</span>
|
|
<span id="L1701" rel="#L1701">1701</span>
|
|
<span id="L1702" rel="#L1702">1702</span>
|
|
<span id="L1703" rel="#L1703">1703</span>
|
|
<span id="L1704" rel="#L1704">1704</span>
|
|
<span id="L1705" rel="#L1705">1705</span>
|
|
<span id="L1706" rel="#L1706">1706</span>
|
|
<span id="L1707" rel="#L1707">1707</span>
|
|
<span id="L1708" rel="#L1708">1708</span>
|
|
<span id="L1709" rel="#L1709">1709</span>
|
|
<span id="L1710" rel="#L1710">1710</span>
|
|
<span id="L1711" rel="#L1711">1711</span>
|
|
<span id="L1712" rel="#L1712">1712</span>
|
|
<span id="L1713" rel="#L1713">1713</span>
|
|
<span id="L1714" rel="#L1714">1714</span>
|
|
<span id="L1715" rel="#L1715">1715</span>
|
|
<span id="L1716" rel="#L1716">1716</span>
|
|
<span id="L1717" rel="#L1717">1717</span>
|
|
<span id="L1718" rel="#L1718">1718</span>
|
|
<span id="L1719" rel="#L1719">1719</span>
|
|
<span id="L1720" rel="#L1720">1720</span>
|
|
<span id="L1721" rel="#L1721">1721</span>
|
|
<span id="L1722" rel="#L1722">1722</span>
|
|
<span id="L1723" rel="#L1723">1723</span>
|
|
<span id="L1724" rel="#L1724">1724</span>
|
|
<span id="L1725" rel="#L1725">1725</span>
|
|
<span id="L1726" rel="#L1726">1726</span>
|
|
<span id="L1727" rel="#L1727">1727</span>
|
|
<span id="L1728" rel="#L1728">1728</span>
|
|
<span id="L1729" rel="#L1729">1729</span>
|
|
<span id="L1730" rel="#L1730">1730</span>
|
|
<span id="L1731" rel="#L1731">1731</span>
|
|
<span id="L1732" rel="#L1732">1732</span>
|
|
<span id="L1733" rel="#L1733">1733</span>
|
|
<span id="L1734" rel="#L1734">1734</span>
|
|
<span id="L1735" rel="#L1735">1735</span>
|
|
<span id="L1736" rel="#L1736">1736</span>
|
|
<span id="L1737" rel="#L1737">1737</span>
|
|
<span id="L1738" rel="#L1738">1738</span>
|
|
<span id="L1739" rel="#L1739">1739</span>
|
|
<span id="L1740" rel="#L1740">1740</span>
|
|
<span id="L1741" rel="#L1741">1741</span>
|
|
<span id="L1742" rel="#L1742">1742</span>
|
|
<span id="L1743" rel="#L1743">1743</span>
|
|
<span id="L1744" rel="#L1744">1744</span>
|
|
<span id="L1745" rel="#L1745">1745</span>
|
|
<span id="L1746" rel="#L1746">1746</span>
|
|
<span id="L1747" rel="#L1747">1747</span>
|
|
<span id="L1748" rel="#L1748">1748</span>
|
|
<span id="L1749" rel="#L1749">1749</span>
|
|
<span id="L1750" rel="#L1750">1750</span>
|
|
<span id="L1751" rel="#L1751">1751</span>
|
|
<span id="L1752" rel="#L1752">1752</span>
|
|
<span id="L1753" rel="#L1753">1753</span>
|
|
<span id="L1754" rel="#L1754">1754</span>
|
|
<span id="L1755" rel="#L1755">1755</span>
|
|
<span id="L1756" rel="#L1756">1756</span>
|
|
<span id="L1757" rel="#L1757">1757</span>
|
|
<span id="L1758" rel="#L1758">1758</span>
|
|
<span id="L1759" rel="#L1759">1759</span>
|
|
<span id="L1760" rel="#L1760">1760</span>
|
|
<span id="L1761" rel="#L1761">1761</span>
|
|
<span id="L1762" rel="#L1762">1762</span>
|
|
<span id="L1763" rel="#L1763">1763</span>
|
|
<span id="L1764" rel="#L1764">1764</span>
|
|
<span id="L1765" rel="#L1765">1765</span>
|
|
<span id="L1766" rel="#L1766">1766</span>
|
|
<span id="L1767" rel="#L1767">1767</span>
|
|
<span id="L1768" rel="#L1768">1768</span>
|
|
<span id="L1769" rel="#L1769">1769</span>
|
|
<span id="L1770" rel="#L1770">1770</span>
|
|
<span id="L1771" rel="#L1771">1771</span>
|
|
<span id="L1772" rel="#L1772">1772</span>
|
|
<span id="L1773" rel="#L1773">1773</span>
|
|
<span id="L1774" rel="#L1774">1774</span>
|
|
<span id="L1775" rel="#L1775">1775</span>
|
|
<span id="L1776" rel="#L1776">1776</span>
|
|
<span id="L1777" rel="#L1777">1777</span>
|
|
<span id="L1778" rel="#L1778">1778</span>
|
|
<span id="L1779" rel="#L1779">1779</span>
|
|
<span id="L1780" rel="#L1780">1780</span>
|
|
<span id="L1781" rel="#L1781">1781</span>
|
|
<span id="L1782" rel="#L1782">1782</span>
|
|
<span id="L1783" rel="#L1783">1783</span>
|
|
<span id="L1784" rel="#L1784">1784</span>
|
|
<span id="L1785" rel="#L1785">1785</span>
|
|
<span id="L1786" rel="#L1786">1786</span>
|
|
<span id="L1787" rel="#L1787">1787</span>
|
|
<span id="L1788" rel="#L1788">1788</span>
|
|
<span id="L1789" rel="#L1789">1789</span>
|
|
<span id="L1790" rel="#L1790">1790</span>
|
|
<span id="L1791" rel="#L1791">1791</span>
|
|
<span id="L1792" rel="#L1792">1792</span>
|
|
<span id="L1793" rel="#L1793">1793</span>
|
|
<span id="L1794" rel="#L1794">1794</span>
|
|
<span id="L1795" rel="#L1795">1795</span>
|
|
<span id="L1796" rel="#L1796">1796</span>
|
|
<span id="L1797" rel="#L1797">1797</span>
|
|
<span id="L1798" rel="#L1798">1798</span>
|
|
<span id="L1799" rel="#L1799">1799</span>
|
|
<span id="L1800" rel="#L1800">1800</span>
|
|
<span id="L1801" rel="#L1801">1801</span>
|
|
<span id="L1802" rel="#L1802">1802</span>
|
|
<span id="L1803" rel="#L1803">1803</span>
|
|
<span id="L1804" rel="#L1804">1804</span>
|
|
<span id="L1805" rel="#L1805">1805</span>
|
|
<span id="L1806" rel="#L1806">1806</span>
|
|
<span id="L1807" rel="#L1807">1807</span>
|
|
<span id="L1808" rel="#L1808">1808</span>
|
|
<span id="L1809" rel="#L1809">1809</span>
|
|
<span id="L1810" rel="#L1810">1810</span>
|
|
<span id="L1811" rel="#L1811">1811</span>
|
|
<span id="L1812" rel="#L1812">1812</span>
|
|
<span id="L1813" rel="#L1813">1813</span>
|
|
<span id="L1814" rel="#L1814">1814</span>
|
|
<span id="L1815" rel="#L1815">1815</span>
|
|
<span id="L1816" rel="#L1816">1816</span>
|
|
<span id="L1817" rel="#L1817">1817</span>
|
|
<span id="L1818" rel="#L1818">1818</span>
|
|
<span id="L1819" rel="#L1819">1819</span>
|
|
<span id="L1820" rel="#L1820">1820</span>
|
|
<span id="L1821" rel="#L1821">1821</span>
|
|
<span id="L1822" rel="#L1822">1822</span>
|
|
<span id="L1823" rel="#L1823">1823</span>
|
|
<span id="L1824" rel="#L1824">1824</span>
|
|
<span id="L1825" rel="#L1825">1825</span>
|
|
<span id="L1826" rel="#L1826">1826</span>
|
|
<span id="L1827" rel="#L1827">1827</span>
|
|
<span id="L1828" rel="#L1828">1828</span>
|
|
<span id="L1829" rel="#L1829">1829</span>
|
|
<span id="L1830" rel="#L1830">1830</span>
|
|
<span id="L1831" rel="#L1831">1831</span>
|
|
<span id="L1832" rel="#L1832">1832</span>
|
|
<span id="L1833" rel="#L1833">1833</span>
|
|
<span id="L1834" rel="#L1834">1834</span>
|
|
<span id="L1835" rel="#L1835">1835</span>
|
|
<span id="L1836" rel="#L1836">1836</span>
|
|
<span id="L1837" rel="#L1837">1837</span>
|
|
<span id="L1838" rel="#L1838">1838</span>
|
|
<span id="L1839" rel="#L1839">1839</span>
|
|
<span id="L1840" rel="#L1840">1840</span>
|
|
<span id="L1841" rel="#L1841">1841</span>
|
|
<span id="L1842" rel="#L1842">1842</span>
|
|
<span id="L1843" rel="#L1843">1843</span>
|
|
<span id="L1844" rel="#L1844">1844</span>
|
|
<span id="L1845" rel="#L1845">1845</span>
|
|
<span id="L1846" rel="#L1846">1846</span>
|
|
<span id="L1847" rel="#L1847">1847</span>
|
|
<span id="L1848" rel="#L1848">1848</span>
|
|
<span id="L1849" rel="#L1849">1849</span>
|
|
<span id="L1850" rel="#L1850">1850</span>
|
|
<span id="L1851" rel="#L1851">1851</span>
|
|
<span id="L1852" rel="#L1852">1852</span>
|
|
<span id="L1853" rel="#L1853">1853</span>
|
|
<span id="L1854" rel="#L1854">1854</span>
|
|
<span id="L1855" rel="#L1855">1855</span>
|
|
<span id="L1856" rel="#L1856">1856</span>
|
|
<span id="L1857" rel="#L1857">1857</span>
|
|
<span id="L1858" rel="#L1858">1858</span>
|
|
<span id="L1859" rel="#L1859">1859</span>
|
|
<span id="L1860" rel="#L1860">1860</span>
|
|
<span id="L1861" rel="#L1861">1861</span>
|
|
<span id="L1862" rel="#L1862">1862</span>
|
|
<span id="L1863" rel="#L1863">1863</span>
|
|
<span id="L1864" rel="#L1864">1864</span>
|
|
<span id="L1865" rel="#L1865">1865</span>
|
|
<span id="L1866" rel="#L1866">1866</span>
|
|
<span id="L1867" rel="#L1867">1867</span>
|
|
<span id="L1868" rel="#L1868">1868</span>
|
|
<span id="L1869" rel="#L1869">1869</span>
|
|
<span id="L1870" rel="#L1870">1870</span>
|
|
<span id="L1871" rel="#L1871">1871</span>
|
|
<span id="L1872" rel="#L1872">1872</span>
|
|
<span id="L1873" rel="#L1873">1873</span>
|
|
<span id="L1874" rel="#L1874">1874</span>
|
|
<span id="L1875" rel="#L1875">1875</span>
|
|
<span id="L1876" rel="#L1876">1876</span>
|
|
<span id="L1877" rel="#L1877">1877</span>
|
|
<span id="L1878" rel="#L1878">1878</span>
|
|
<span id="L1879" rel="#L1879">1879</span>
|
|
<span id="L1880" rel="#L1880">1880</span>
|
|
<span id="L1881" rel="#L1881">1881</span>
|
|
<span id="L1882" rel="#L1882">1882</span>
|
|
<span id="L1883" rel="#L1883">1883</span>
|
|
<span id="L1884" rel="#L1884">1884</span>
|
|
<span id="L1885" rel="#L1885">1885</span>
|
|
<span id="L1886" rel="#L1886">1886</span>
|
|
<span id="L1887" rel="#L1887">1887</span>
|
|
<span id="L1888" rel="#L1888">1888</span>
|
|
<span id="L1889" rel="#L1889">1889</span>
|
|
<span id="L1890" rel="#L1890">1890</span>
|
|
<span id="L1891" rel="#L1891">1891</span>
|
|
<span id="L1892" rel="#L1892">1892</span>
|
|
<span id="L1893" rel="#L1893">1893</span>
|
|
<span id="L1894" rel="#L1894">1894</span>
|
|
<span id="L1895" rel="#L1895">1895</span>
|
|
<span id="L1896" rel="#L1896">1896</span>
|
|
<span id="L1897" rel="#L1897">1897</span>
|
|
<span id="L1898" rel="#L1898">1898</span>
|
|
<span id="L1899" rel="#L1899">1899</span>
|
|
<span id="L1900" rel="#L1900">1900</span>
|
|
<span id="L1901" rel="#L1901">1901</span>
|
|
<span id="L1902" rel="#L1902">1902</span>
|
|
<span id="L1903" rel="#L1903">1903</span>
|
|
<span id="L1904" rel="#L1904">1904</span>
|
|
<span id="L1905" rel="#L1905">1905</span>
|
|
<span id="L1906" rel="#L1906">1906</span>
|
|
<span id="L1907" rel="#L1907">1907</span>
|
|
<span id="L1908" rel="#L1908">1908</span>
|
|
<span id="L1909" rel="#L1909">1909</span>
|
|
<span id="L1910" rel="#L1910">1910</span>
|
|
<span id="L1911" rel="#L1911">1911</span>
|
|
<span id="L1912" rel="#L1912">1912</span>
|
|
<span id="L1913" rel="#L1913">1913</span>
|
|
<span id="L1914" rel="#L1914">1914</span>
|
|
<span id="L1915" rel="#L1915">1915</span>
|
|
<span id="L1916" rel="#L1916">1916</span>
|
|
<span id="L1917" rel="#L1917">1917</span>
|
|
<span id="L1918" rel="#L1918">1918</span>
|
|
<span id="L1919" rel="#L1919">1919</span>
|
|
<span id="L1920" rel="#L1920">1920</span>
|
|
<span id="L1921" rel="#L1921">1921</span>
|
|
<span id="L1922" rel="#L1922">1922</span>
|
|
<span id="L1923" rel="#L1923">1923</span>
|
|
<span id="L1924" rel="#L1924">1924</span>
|
|
<span id="L1925" rel="#L1925">1925</span>
|
|
<span id="L1926" rel="#L1926">1926</span>
|
|
<span id="L1927" rel="#L1927">1927</span>
|
|
<span id="L1928" rel="#L1928">1928</span>
|
|
<span id="L1929" rel="#L1929">1929</span>
|
|
<span id="L1930" rel="#L1930">1930</span>
|
|
<span id="L1931" rel="#L1931">1931</span>
|
|
<span id="L1932" rel="#L1932">1932</span>
|
|
<span id="L1933" rel="#L1933">1933</span>
|
|
<span id="L1934" rel="#L1934">1934</span>
|
|
<span id="L1935" rel="#L1935">1935</span>
|
|
<span id="L1936" rel="#L1936">1936</span>
|
|
<span id="L1937" rel="#L1937">1937</span>
|
|
<span id="L1938" rel="#L1938">1938</span>
|
|
<span id="L1939" rel="#L1939">1939</span>
|
|
<span id="L1940" rel="#L1940">1940</span>
|
|
<span id="L1941" rel="#L1941">1941</span>
|
|
<span id="L1942" rel="#L1942">1942</span>
|
|
<span id="L1943" rel="#L1943">1943</span>
|
|
<span id="L1944" rel="#L1944">1944</span>
|
|
<span id="L1945" rel="#L1945">1945</span>
|
|
<span id="L1946" rel="#L1946">1946</span>
|
|
<span id="L1947" rel="#L1947">1947</span>
|
|
<span id="L1948" rel="#L1948">1948</span>
|
|
<span id="L1949" rel="#L1949">1949</span>
|
|
<span id="L1950" rel="#L1950">1950</span>
|
|
<span id="L1951" rel="#L1951">1951</span>
|
|
<span id="L1952" rel="#L1952">1952</span>
|
|
<span id="L1953" rel="#L1953">1953</span>
|
|
<span id="L1954" rel="#L1954">1954</span>
|
|
<span id="L1955" rel="#L1955">1955</span>
|
|
<span id="L1956" rel="#L1956">1956</span>
|
|
<span id="L1957" rel="#L1957">1957</span>
|
|
<span id="L1958" rel="#L1958">1958</span>
|
|
<span id="L1959" rel="#L1959">1959</span>
|
|
<span id="L1960" rel="#L1960">1960</span>
|
|
<span id="L1961" rel="#L1961">1961</span>
|
|
<span id="L1962" rel="#L1962">1962</span>
|
|
<span id="L1963" rel="#L1963">1963</span>
|
|
<span id="L1964" rel="#L1964">1964</span>
|
|
<span id="L1965" rel="#L1965">1965</span>
|
|
<span id="L1966" rel="#L1966">1966</span>
|
|
<span id="L1967" rel="#L1967">1967</span>
|
|
<span id="L1968" rel="#L1968">1968</span>
|
|
<span id="L1969" rel="#L1969">1969</span>
|
|
<span id="L1970" rel="#L1970">1970</span>
|
|
<span id="L1971" rel="#L1971">1971</span>
|
|
<span id="L1972" rel="#L1972">1972</span>
|
|
<span id="L1973" rel="#L1973">1973</span>
|
|
<span id="L1974" rel="#L1974">1974</span>
|
|
<span id="L1975" rel="#L1975">1975</span>
|
|
<span id="L1976" rel="#L1976">1976</span>
|
|
<span id="L1977" rel="#L1977">1977</span>
|
|
<span id="L1978" rel="#L1978">1978</span>
|
|
<span id="L1979" rel="#L1979">1979</span>
|
|
<span id="L1980" rel="#L1980">1980</span>
|
|
<span id="L1981" rel="#L1981">1981</span>
|
|
<span id="L1982" rel="#L1982">1982</span>
|
|
<span id="L1983" rel="#L1983">1983</span>
|
|
<span id="L1984" rel="#L1984">1984</span>
|
|
<span id="L1985" rel="#L1985">1985</span>
|
|
<span id="L1986" rel="#L1986">1986</span>
|
|
<span id="L1987" rel="#L1987">1987</span>
|
|
<span id="L1988" rel="#L1988">1988</span>
|
|
<span id="L1989" rel="#L1989">1989</span>
|
|
<span id="L1990" rel="#L1990">1990</span>
|
|
<span id="L1991" rel="#L1991">1991</span>
|
|
<span id="L1992" rel="#L1992">1992</span>
|
|
<span id="L1993" rel="#L1993">1993</span>
|
|
<span id="L1994" rel="#L1994">1994</span>
|
|
<span id="L1995" rel="#L1995">1995</span>
|
|
<span id="L1996" rel="#L1996">1996</span>
|
|
<span id="L1997" rel="#L1997">1997</span>
|
|
<span id="L1998" rel="#L1998">1998</span>
|
|
<span id="L1999" rel="#L1999">1999</span>
|
|
<span id="L2000" rel="#L2000">2000</span>
|
|
<span id="L2001" rel="#L2001">2001</span>
|
|
<span id="L2002" rel="#L2002">2002</span>
|
|
<span id="L2003" rel="#L2003">2003</span>
|
|
<span id="L2004" rel="#L2004">2004</span>
|
|
<span id="L2005" rel="#L2005">2005</span>
|
|
<span id="L2006" rel="#L2006">2006</span>
|
|
<span id="L2007" rel="#L2007">2007</span>
|
|
<span id="L2008" rel="#L2008">2008</span>
|
|
<span id="L2009" rel="#L2009">2009</span>
|
|
<span id="L2010" rel="#L2010">2010</span>
|
|
<span id="L2011" rel="#L2011">2011</span>
|
|
<span id="L2012" rel="#L2012">2012</span>
|
|
<span id="L2013" rel="#L2013">2013</span>
|
|
<span id="L2014" rel="#L2014">2014</span>
|
|
<span id="L2015" rel="#L2015">2015</span>
|
|
<span id="L2016" rel="#L2016">2016</span>
|
|
<span id="L2017" rel="#L2017">2017</span>
|
|
<span id="L2018" rel="#L2018">2018</span>
|
|
<span id="L2019" rel="#L2019">2019</span>
|
|
<span id="L2020" rel="#L2020">2020</span>
|
|
<span id="L2021" rel="#L2021">2021</span>
|
|
<span id="L2022" rel="#L2022">2022</span>
|
|
<span id="L2023" rel="#L2023">2023</span>
|
|
<span id="L2024" rel="#L2024">2024</span>
|
|
<span id="L2025" rel="#L2025">2025</span>
|
|
<span id="L2026" rel="#L2026">2026</span>
|
|
<span id="L2027" rel="#L2027">2027</span>
|
|
<span id="L2028" rel="#L2028">2028</span>
|
|
<span id="L2029" rel="#L2029">2029</span>
|
|
<span id="L2030" rel="#L2030">2030</span>
|
|
<span id="L2031" rel="#L2031">2031</span>
|
|
<span id="L2032" rel="#L2032">2032</span>
|
|
<span id="L2033" rel="#L2033">2033</span>
|
|
<span id="L2034" rel="#L2034">2034</span>
|
|
<span id="L2035" rel="#L2035">2035</span>
|
|
<span id="L2036" rel="#L2036">2036</span>
|
|
<span id="L2037" rel="#L2037">2037</span>
|
|
<span id="L2038" rel="#L2038">2038</span>
|
|
<span id="L2039" rel="#L2039">2039</span>
|
|
<span id="L2040" rel="#L2040">2040</span>
|
|
<span id="L2041" rel="#L2041">2041</span>
|
|
<span id="L2042" rel="#L2042">2042</span>
|
|
<span id="L2043" rel="#L2043">2043</span>
|
|
<span id="L2044" rel="#L2044">2044</span>
|
|
<span id="L2045" rel="#L2045">2045</span>
|
|
<span id="L2046" rel="#L2046">2046</span>
|
|
<span id="L2047" rel="#L2047">2047</span>
|
|
<span id="L2048" rel="#L2048">2048</span>
|
|
<span id="L2049" rel="#L2049">2049</span>
|
|
<span id="L2050" rel="#L2050">2050</span>
|
|
<span id="L2051" rel="#L2051">2051</span>
|
|
<span id="L2052" rel="#L2052">2052</span>
|
|
<span id="L2053" rel="#L2053">2053</span>
|
|
<span id="L2054" rel="#L2054">2054</span>
|
|
<span id="L2055" rel="#L2055">2055</span>
|
|
<span id="L2056" rel="#L2056">2056</span>
|
|
<span id="L2057" rel="#L2057">2057</span>
|
|
<span id="L2058" rel="#L2058">2058</span>
|
|
<span id="L2059" rel="#L2059">2059</span>
|
|
<span id="L2060" rel="#L2060">2060</span>
|
|
<span id="L2061" rel="#L2061">2061</span>
|
|
<span id="L2062" rel="#L2062">2062</span>
|
|
<span id="L2063" rel="#L2063">2063</span>
|
|
<span id="L2064" rel="#L2064">2064</span>
|
|
<span id="L2065" rel="#L2065">2065</span>
|
|
<span id="L2066" rel="#L2066">2066</span>
|
|
<span id="L2067" rel="#L2067">2067</span>
|
|
<span id="L2068" rel="#L2068">2068</span>
|
|
<span id="L2069" rel="#L2069">2069</span>
|
|
<span id="L2070" rel="#L2070">2070</span>
|
|
<span id="L2071" rel="#L2071">2071</span>
|
|
<span id="L2072" rel="#L2072">2072</span>
|
|
<span id="L2073" rel="#L2073">2073</span>
|
|
<span id="L2074" rel="#L2074">2074</span>
|
|
<span id="L2075" rel="#L2075">2075</span>
|
|
<span id="L2076" rel="#L2076">2076</span>
|
|
<span id="L2077" rel="#L2077">2077</span>
|
|
<span id="L2078" rel="#L2078">2078</span>
|
|
<span id="L2079" rel="#L2079">2079</span>
|
|
<span id="L2080" rel="#L2080">2080</span>
|
|
<span id="L2081" rel="#L2081">2081</span>
|
|
<span id="L2082" rel="#L2082">2082</span>
|
|
<span id="L2083" rel="#L2083">2083</span>
|
|
<span id="L2084" rel="#L2084">2084</span>
|
|
<span id="L2085" rel="#L2085">2085</span>
|
|
<span id="L2086" rel="#L2086">2086</span>
|
|
<span id="L2087" rel="#L2087">2087</span>
|
|
<span id="L2088" rel="#L2088">2088</span>
|
|
<span id="L2089" rel="#L2089">2089</span>
|
|
<span id="L2090" rel="#L2090">2090</span>
|
|
<span id="L2091" rel="#L2091">2091</span>
|
|
<span id="L2092" rel="#L2092">2092</span>
|
|
<span id="L2093" rel="#L2093">2093</span>
|
|
<span id="L2094" rel="#L2094">2094</span>
|
|
<span id="L2095" rel="#L2095">2095</span>
|
|
<span id="L2096" rel="#L2096">2096</span>
|
|
<span id="L2097" rel="#L2097">2097</span>
|
|
<span id="L2098" rel="#L2098">2098</span>
|
|
<span id="L2099" rel="#L2099">2099</span>
|
|
<span id="L2100" rel="#L2100">2100</span>
|
|
<span id="L2101" rel="#L2101">2101</span>
|
|
<span id="L2102" rel="#L2102">2102</span>
|
|
<span id="L2103" rel="#L2103">2103</span>
|
|
<span id="L2104" rel="#L2104">2104</span>
|
|
<span id="L2105" rel="#L2105">2105</span>
|
|
<span id="L2106" rel="#L2106">2106</span>
|
|
<span id="L2107" rel="#L2107">2107</span>
|
|
<span id="L2108" rel="#L2108">2108</span>
|
|
<span id="L2109" rel="#L2109">2109</span>
|
|
<span id="L2110" rel="#L2110">2110</span>
|
|
<span id="L2111" rel="#L2111">2111</span>
|
|
<span id="L2112" rel="#L2112">2112</span>
|
|
<span id="L2113" rel="#L2113">2113</span>
|
|
<span id="L2114" rel="#L2114">2114</span>
|
|
<span id="L2115" rel="#L2115">2115</span>
|
|
<span id="L2116" rel="#L2116">2116</span>
|
|
<span id="L2117" rel="#L2117">2117</span>
|
|
<span id="L2118" rel="#L2118">2118</span>
|
|
<span id="L2119" rel="#L2119">2119</span>
|
|
<span id="L2120" rel="#L2120">2120</span>
|
|
<span id="L2121" rel="#L2121">2121</span>
|
|
<span id="L2122" rel="#L2122">2122</span>
|
|
<span id="L2123" rel="#L2123">2123</span>
|
|
<span id="L2124" rel="#L2124">2124</span>
|
|
<span id="L2125" rel="#L2125">2125</span>
|
|
<span id="L2126" rel="#L2126">2126</span>
|
|
<span id="L2127" rel="#L2127">2127</span>
|
|
<span id="L2128" rel="#L2128">2128</span>
|
|
<span id="L2129" rel="#L2129">2129</span>
|
|
<span id="L2130" rel="#L2130">2130</span>
|
|
<span id="L2131" rel="#L2131">2131</span>
|
|
<span id="L2132" rel="#L2132">2132</span>
|
|
<span id="L2133" rel="#L2133">2133</span>
|
|
<span id="L2134" rel="#L2134">2134</span>
|
|
<span id="L2135" rel="#L2135">2135</span>
|
|
<span id="L2136" rel="#L2136">2136</span>
|
|
<span id="L2137" rel="#L2137">2137</span>
|
|
<span id="L2138" rel="#L2138">2138</span>
|
|
<span id="L2139" rel="#L2139">2139</span>
|
|
<span id="L2140" rel="#L2140">2140</span>
|
|
<span id="L2141" rel="#L2141">2141</span>
|
|
<span id="L2142" rel="#L2142">2142</span>
|
|
<span id="L2143" rel="#L2143">2143</span>
|
|
<span id="L2144" rel="#L2144">2144</span>
|
|
<span id="L2145" rel="#L2145">2145</span>
|
|
<span id="L2146" rel="#L2146">2146</span>
|
|
<span id="L2147" rel="#L2147">2147</span>
|
|
<span id="L2148" rel="#L2148">2148</span>
|
|
<span id="L2149" rel="#L2149">2149</span>
|
|
<span id="L2150" rel="#L2150">2150</span>
|
|
<span id="L2151" rel="#L2151">2151</span>
|
|
<span id="L2152" rel="#L2152">2152</span>
|
|
<span id="L2153" rel="#L2153">2153</span>
|
|
<span id="L2154" rel="#L2154">2154</span>
|
|
<span id="L2155" rel="#L2155">2155</span>
|
|
<span id="L2156" rel="#L2156">2156</span>
|
|
<span id="L2157" rel="#L2157">2157</span>
|
|
<span id="L2158" rel="#L2158">2158</span>
|
|
<span id="L2159" rel="#L2159">2159</span>
|
|
<span id="L2160" rel="#L2160">2160</span>
|
|
<span id="L2161" rel="#L2161">2161</span>
|
|
<span id="L2162" rel="#L2162">2162</span>
|
|
<span id="L2163" rel="#L2163">2163</span>
|
|
<span id="L2164" rel="#L2164">2164</span>
|
|
<span id="L2165" rel="#L2165">2165</span>
|
|
<span id="L2166" rel="#L2166">2166</span>
|
|
<span id="L2167" rel="#L2167">2167</span>
|
|
<span id="L2168" rel="#L2168">2168</span>
|
|
<span id="L2169" rel="#L2169">2169</span>
|
|
<span id="L2170" rel="#L2170">2170</span>
|
|
<span id="L2171" rel="#L2171">2171</span>
|
|
<span id="L2172" rel="#L2172">2172</span>
|
|
<span id="L2173" rel="#L2173">2173</span>
|
|
<span id="L2174" rel="#L2174">2174</span>
|
|
<span id="L2175" rel="#L2175">2175</span>
|
|
<span id="L2176" rel="#L2176">2176</span>
|
|
<span id="L2177" rel="#L2177">2177</span>
|
|
<span id="L2178" rel="#L2178">2178</span>
|
|
<span id="L2179" rel="#L2179">2179</span>
|
|
<span id="L2180" rel="#L2180">2180</span>
|
|
<span id="L2181" rel="#L2181">2181</span>
|
|
<span id="L2182" rel="#L2182">2182</span>
|
|
<span id="L2183" rel="#L2183">2183</span>
|
|
<span id="L2184" rel="#L2184">2184</span>
|
|
<span id="L2185" rel="#L2185">2185</span>
|
|
<span id="L2186" rel="#L2186">2186</span>
|
|
<span id="L2187" rel="#L2187">2187</span>
|
|
<span id="L2188" rel="#L2188">2188</span>
|
|
<span id="L2189" rel="#L2189">2189</span>
|
|
<span id="L2190" rel="#L2190">2190</span>
|
|
<span id="L2191" rel="#L2191">2191</span>
|
|
<span id="L2192" rel="#L2192">2192</span>
|
|
<span id="L2193" rel="#L2193">2193</span>
|
|
<span id="L2194" rel="#L2194">2194</span>
|
|
<span id="L2195" rel="#L2195">2195</span>
|
|
<span id="L2196" rel="#L2196">2196</span>
|
|
<span id="L2197" rel="#L2197">2197</span>
|
|
<span id="L2198" rel="#L2198">2198</span>
|
|
<span id="L2199" rel="#L2199">2199</span>
|
|
<span id="L2200" rel="#L2200">2200</span>
|
|
<span id="L2201" rel="#L2201">2201</span>
|
|
<span id="L2202" rel="#L2202">2202</span>
|
|
<span id="L2203" rel="#L2203">2203</span>
|
|
<span id="L2204" rel="#L2204">2204</span>
|
|
<span id="L2205" rel="#L2205">2205</span>
|
|
<span id="L2206" rel="#L2206">2206</span>
|
|
<span id="L2207" rel="#L2207">2207</span>
|
|
<span id="L2208" rel="#L2208">2208</span>
|
|
<span id="L2209" rel="#L2209">2209</span>
|
|
<span id="L2210" rel="#L2210">2210</span>
|
|
<span id="L2211" rel="#L2211">2211</span>
|
|
<span id="L2212" rel="#L2212">2212</span>
|
|
<span id="L2213" rel="#L2213">2213</span>
|
|
<span id="L2214" rel="#L2214">2214</span>
|
|
<span id="L2215" rel="#L2215">2215</span>
|
|
<span id="L2216" rel="#L2216">2216</span>
|
|
<span id="L2217" rel="#L2217">2217</span>
|
|
<span id="L2218" rel="#L2218">2218</span>
|
|
<span id="L2219" rel="#L2219">2219</span>
|
|
<span id="L2220" rel="#L2220">2220</span>
|
|
<span id="L2221" rel="#L2221">2221</span>
|
|
<span id="L2222" rel="#L2222">2222</span>
|
|
<span id="L2223" rel="#L2223">2223</span>
|
|
<span id="L2224" rel="#L2224">2224</span>
|
|
<span id="L2225" rel="#L2225">2225</span>
|
|
<span id="L2226" rel="#L2226">2226</span>
|
|
<span id="L2227" rel="#L2227">2227</span>
|
|
<span id="L2228" rel="#L2228">2228</span>
|
|
<span id="L2229" rel="#L2229">2229</span>
|
|
<span id="L2230" rel="#L2230">2230</span>
|
|
<span id="L2231" rel="#L2231">2231</span>
|
|
<span id="L2232" rel="#L2232">2232</span>
|
|
<span id="L2233" rel="#L2233">2233</span>
|
|
<span id="L2234" rel="#L2234">2234</span>
|
|
<span id="L2235" rel="#L2235">2235</span>
|
|
<span id="L2236" rel="#L2236">2236</span>
|
|
<span id="L2237" rel="#L2237">2237</span>
|
|
<span id="L2238" rel="#L2238">2238</span>
|
|
<span id="L2239" rel="#L2239">2239</span>
|
|
<span id="L2240" rel="#L2240">2240</span>
|
|
<span id="L2241" rel="#L2241">2241</span>
|
|
<span id="L2242" rel="#L2242">2242</span>
|
|
<span id="L2243" rel="#L2243">2243</span>
|
|
<span id="L2244" rel="#L2244">2244</span>
|
|
<span id="L2245" rel="#L2245">2245</span>
|
|
<span id="L2246" rel="#L2246">2246</span>
|
|
<span id="L2247" rel="#L2247">2247</span>
|
|
<span id="L2248" rel="#L2248">2248</span>
|
|
<span id="L2249" rel="#L2249">2249</span>
|
|
<span id="L2250" rel="#L2250">2250</span>
|
|
<span id="L2251" rel="#L2251">2251</span>
|
|
<span id="L2252" rel="#L2252">2252</span>
|
|
<span id="L2253" rel="#L2253">2253</span>
|
|
<span id="L2254" rel="#L2254">2254</span>
|
|
<span id="L2255" rel="#L2255">2255</span>
|
|
<span id="L2256" rel="#L2256">2256</span>
|
|
<span id="L2257" rel="#L2257">2257</span>
|
|
<span id="L2258" rel="#L2258">2258</span>
|
|
<span id="L2259" rel="#L2259">2259</span>
|
|
<span id="L2260" rel="#L2260">2260</span>
|
|
<span id="L2261" rel="#L2261">2261</span>
|
|
<span id="L2262" rel="#L2262">2262</span>
|
|
<span id="L2263" rel="#L2263">2263</span>
|
|
<span id="L2264" rel="#L2264">2264</span>
|
|
<span id="L2265" rel="#L2265">2265</span>
|
|
<span id="L2266" rel="#L2266">2266</span>
|
|
<span id="L2267" rel="#L2267">2267</span>
|
|
<span id="L2268" rel="#L2268">2268</span>
|
|
<span id="L2269" rel="#L2269">2269</span>
|
|
<span id="L2270" rel="#L2270">2270</span>
|
|
<span id="L2271" rel="#L2271">2271</span>
|
|
<span id="L2272" rel="#L2272">2272</span>
|
|
<span id="L2273" rel="#L2273">2273</span>
|
|
<span id="L2274" rel="#L2274">2274</span>
|
|
<span id="L2275" rel="#L2275">2275</span>
|
|
<span id="L2276" rel="#L2276">2276</span>
|
|
<span id="L2277" rel="#L2277">2277</span>
|
|
<span id="L2278" rel="#L2278">2278</span>
|
|
<span id="L2279" rel="#L2279">2279</span>
|
|
<span id="L2280" rel="#L2280">2280</span>
|
|
<span id="L2281" rel="#L2281">2281</span>
|
|
<span id="L2282" rel="#L2282">2282</span>
|
|
<span id="L2283" rel="#L2283">2283</span>
|
|
<span id="L2284" rel="#L2284">2284</span>
|
|
<span id="L2285" rel="#L2285">2285</span>
|
|
<span id="L2286" rel="#L2286">2286</span>
|
|
<span id="L2287" rel="#L2287">2287</span>
|
|
<span id="L2288" rel="#L2288">2288</span>
|
|
<span id="L2289" rel="#L2289">2289</span>
|
|
<span id="L2290" rel="#L2290">2290</span>
|
|
<span id="L2291" rel="#L2291">2291</span>
|
|
<span id="L2292" rel="#L2292">2292</span>
|
|
<span id="L2293" rel="#L2293">2293</span>
|
|
<span id="L2294" rel="#L2294">2294</span>
|
|
<span id="L2295" rel="#L2295">2295</span>
|
|
<span id="L2296" rel="#L2296">2296</span>
|
|
<span id="L2297" rel="#L2297">2297</span>
|
|
<span id="L2298" rel="#L2298">2298</span>
|
|
<span id="L2299" rel="#L2299">2299</span>
|
|
<span id="L2300" rel="#L2300">2300</span>
|
|
<span id="L2301" rel="#L2301">2301</span>
|
|
<span id="L2302" rel="#L2302">2302</span>
|
|
<span id="L2303" rel="#L2303">2303</span>
|
|
<span id="L2304" rel="#L2304">2304</span>
|
|
<span id="L2305" rel="#L2305">2305</span>
|
|
<span id="L2306" rel="#L2306">2306</span>
|
|
<span id="L2307" rel="#L2307">2307</span>
|
|
<span id="L2308" rel="#L2308">2308</span>
|
|
<span id="L2309" rel="#L2309">2309</span>
|
|
<span id="L2310" rel="#L2310">2310</span>
|
|
<span id="L2311" rel="#L2311">2311</span>
|
|
<span id="L2312" rel="#L2312">2312</span>
|
|
<span id="L2313" rel="#L2313">2313</span>
|
|
<span id="L2314" rel="#L2314">2314</span>
|
|
<span id="L2315" rel="#L2315">2315</span>
|
|
<span id="L2316" rel="#L2316">2316</span>
|
|
<span id="L2317" rel="#L2317">2317</span>
|
|
<span id="L2318" rel="#L2318">2318</span>
|
|
<span id="L2319" rel="#L2319">2319</span>
|
|
<span id="L2320" rel="#L2320">2320</span>
|
|
<span id="L2321" rel="#L2321">2321</span>
|
|
<span id="L2322" rel="#L2322">2322</span>
|
|
<span id="L2323" rel="#L2323">2323</span>
|
|
<span id="L2324" rel="#L2324">2324</span>
|
|
<span id="L2325" rel="#L2325">2325</span>
|
|
<span id="L2326" rel="#L2326">2326</span>
|
|
<span id="L2327" rel="#L2327">2327</span>
|
|
<span id="L2328" rel="#L2328">2328</span>
|
|
<span id="L2329" rel="#L2329">2329</span>
|
|
<span id="L2330" rel="#L2330">2330</span>
|
|
<span id="L2331" rel="#L2331">2331</span>
|
|
<span id="L2332" rel="#L2332">2332</span>
|
|
<span id="L2333" rel="#L2333">2333</span>
|
|
<span id="L2334" rel="#L2334">2334</span>
|
|
<span id="L2335" rel="#L2335">2335</span>
|
|
<span id="L2336" rel="#L2336">2336</span>
|
|
<span id="L2337" rel="#L2337">2337</span>
|
|
<span id="L2338" rel="#L2338">2338</span>
|
|
<span id="L2339" rel="#L2339">2339</span>
|
|
<span id="L2340" rel="#L2340">2340</span>
|
|
<span id="L2341" rel="#L2341">2341</span>
|
|
<span id="L2342" rel="#L2342">2342</span>
|
|
<span id="L2343" rel="#L2343">2343</span>
|
|
<span id="L2344" rel="#L2344">2344</span>
|
|
<span id="L2345" rel="#L2345">2345</span>
|
|
<span id="L2346" rel="#L2346">2346</span>
|
|
<span id="L2347" rel="#L2347">2347</span>
|
|
<span id="L2348" rel="#L2348">2348</span>
|
|
<span id="L2349" rel="#L2349">2349</span>
|
|
<span id="L2350" rel="#L2350">2350</span>
|
|
<span id="L2351" rel="#L2351">2351</span>
|
|
<span id="L2352" rel="#L2352">2352</span>
|
|
<span id="L2353" rel="#L2353">2353</span>
|
|
<span id="L2354" rel="#L2354">2354</span>
|
|
<span id="L2355" rel="#L2355">2355</span>
|
|
<span id="L2356" rel="#L2356">2356</span>
|
|
<span id="L2357" rel="#L2357">2357</span>
|
|
<span id="L2358" rel="#L2358">2358</span>
|
|
<span id="L2359" rel="#L2359">2359</span>
|
|
<span id="L2360" rel="#L2360">2360</span>
|
|
<span id="L2361" rel="#L2361">2361</span>
|
|
<span id="L2362" rel="#L2362">2362</span>
|
|
<span id="L2363" rel="#L2363">2363</span>
|
|
<span id="L2364" rel="#L2364">2364</span>
|
|
<span id="L2365" rel="#L2365">2365</span>
|
|
<span id="L2366" rel="#L2366">2366</span>
|
|
<span id="L2367" rel="#L2367">2367</span>
|
|
<span id="L2368" rel="#L2368">2368</span>
|
|
<span id="L2369" rel="#L2369">2369</span>
|
|
<span id="L2370" rel="#L2370">2370</span>
|
|
<span id="L2371" rel="#L2371">2371</span>
|
|
<span id="L2372" rel="#L2372">2372</span>
|
|
<span id="L2373" rel="#L2373">2373</span>
|
|
<span id="L2374" rel="#L2374">2374</span>
|
|
<span id="L2375" rel="#L2375">2375</span>
|
|
<span id="L2376" rel="#L2376">2376</span>
|
|
<span id="L2377" rel="#L2377">2377</span>
|
|
<span id="L2378" rel="#L2378">2378</span>
|
|
<span id="L2379" rel="#L2379">2379</span>
|
|
<span id="L2380" rel="#L2380">2380</span>
|
|
<span id="L2381" rel="#L2381">2381</span>
|
|
<span id="L2382" rel="#L2382">2382</span>
|
|
<span id="L2383" rel="#L2383">2383</span>
|
|
<span id="L2384" rel="#L2384">2384</span>
|
|
<span id="L2385" rel="#L2385">2385</span>
|
|
<span id="L2386" rel="#L2386">2386</span>
|
|
<span id="L2387" rel="#L2387">2387</span>
|
|
<span id="L2388" rel="#L2388">2388</span>
|
|
<span id="L2389" rel="#L2389">2389</span>
|
|
<span id="L2390" rel="#L2390">2390</span>
|
|
<span id="L2391" rel="#L2391">2391</span>
|
|
<span id="L2392" rel="#L2392">2392</span>
|
|
<span id="L2393" rel="#L2393">2393</span>
|
|
<span id="L2394" rel="#L2394">2394</span>
|
|
<span id="L2395" rel="#L2395">2395</span>
|
|
<span id="L2396" rel="#L2396">2396</span>
|
|
<span id="L2397" rel="#L2397">2397</span>
|
|
<span id="L2398" rel="#L2398">2398</span>
|
|
<span id="L2399" rel="#L2399">2399</span>
|
|
<span id="L2400" rel="#L2400">2400</span>
|
|
<span id="L2401" rel="#L2401">2401</span>
|
|
<span id="L2402" rel="#L2402">2402</span>
|
|
<span id="L2403" rel="#L2403">2403</span>
|
|
<span id="L2404" rel="#L2404">2404</span>
|
|
<span id="L2405" rel="#L2405">2405</span>
|
|
<span id="L2406" rel="#L2406">2406</span>
|
|
<span id="L2407" rel="#L2407">2407</span>
|
|
<span id="L2408" rel="#L2408">2408</span>
|
|
<span id="L2409" rel="#L2409">2409</span>
|
|
<span id="L2410" rel="#L2410">2410</span>
|
|
<span id="L2411" rel="#L2411">2411</span>
|
|
<span id="L2412" rel="#L2412">2412</span>
|
|
<span id="L2413" rel="#L2413">2413</span>
|
|
<span id="L2414" rel="#L2414">2414</span>
|
|
<span id="L2415" rel="#L2415">2415</span>
|
|
<span id="L2416" rel="#L2416">2416</span>
|
|
<span id="L2417" rel="#L2417">2417</span>
|
|
<span id="L2418" rel="#L2418">2418</span>
|
|
<span id="L2419" rel="#L2419">2419</span>
|
|
<span id="L2420" rel="#L2420">2420</span>
|
|
<span id="L2421" rel="#L2421">2421</span>
|
|
<span id="L2422" rel="#L2422">2422</span>
|
|
<span id="L2423" rel="#L2423">2423</span>
|
|
<span id="L2424" rel="#L2424">2424</span>
|
|
<span id="L2425" rel="#L2425">2425</span>
|
|
<span id="L2426" rel="#L2426">2426</span>
|
|
<span id="L2427" rel="#L2427">2427</span>
|
|
<span id="L2428" rel="#L2428">2428</span>
|
|
<span id="L2429" rel="#L2429">2429</span>
|
|
<span id="L2430" rel="#L2430">2430</span>
|
|
<span id="L2431" rel="#L2431">2431</span>
|
|
<span id="L2432" rel="#L2432">2432</span>
|
|
<span id="L2433" rel="#L2433">2433</span>
|
|
<span id="L2434" rel="#L2434">2434</span>
|
|
<span id="L2435" rel="#L2435">2435</span>
|
|
<span id="L2436" rel="#L2436">2436</span>
|
|
<span id="L2437" rel="#L2437">2437</span>
|
|
<span id="L2438" rel="#L2438">2438</span>
|
|
<span id="L2439" rel="#L2439">2439</span>
|
|
<span id="L2440" rel="#L2440">2440</span>
|
|
<span id="L2441" rel="#L2441">2441</span>
|
|
<span id="L2442" rel="#L2442">2442</span>
|
|
<span id="L2443" rel="#L2443">2443</span>
|
|
<span id="L2444" rel="#L2444">2444</span>
|
|
<span id="L2445" rel="#L2445">2445</span>
|
|
<span id="L2446" rel="#L2446">2446</span>
|
|
<span id="L2447" rel="#L2447">2447</span>
|
|
<span id="L2448" rel="#L2448">2448</span>
|
|
<span id="L2449" rel="#L2449">2449</span>
|
|
<span id="L2450" rel="#L2450">2450</span>
|
|
<span id="L2451" rel="#L2451">2451</span>
|
|
<span id="L2452" rel="#L2452">2452</span>
|
|
<span id="L2453" rel="#L2453">2453</span>
|
|
<span id="L2454" rel="#L2454">2454</span>
|
|
<span id="L2455" rel="#L2455">2455</span>
|
|
<span id="L2456" rel="#L2456">2456</span>
|
|
<span id="L2457" rel="#L2457">2457</span>
|
|
<span id="L2458" rel="#L2458">2458</span>
|
|
<span id="L2459" rel="#L2459">2459</span>
|
|
<span id="L2460" rel="#L2460">2460</span>
|
|
<span id="L2461" rel="#L2461">2461</span>
|
|
<span id="L2462" rel="#L2462">2462</span>
|
|
<span id="L2463" rel="#L2463">2463</span>
|
|
<span id="L2464" rel="#L2464">2464</span>
|
|
<span id="L2465" rel="#L2465">2465</span>
|
|
<span id="L2466" rel="#L2466">2466</span>
|
|
<span id="L2467" rel="#L2467">2467</span>
|
|
<span id="L2468" rel="#L2468">2468</span>
|
|
<span id="L2469" rel="#L2469">2469</span>
|
|
<span id="L2470" rel="#L2470">2470</span>
|
|
<span id="L2471" rel="#L2471">2471</span>
|
|
<span id="L2472" rel="#L2472">2472</span>
|
|
<span id="L2473" rel="#L2473">2473</span>
|
|
<span id="L2474" rel="#L2474">2474</span>
|
|
<span id="L2475" rel="#L2475">2475</span>
|
|
<span id="L2476" rel="#L2476">2476</span>
|
|
<span id="L2477" rel="#L2477">2477</span>
|
|
<span id="L2478" rel="#L2478">2478</span>
|
|
<span id="L2479" rel="#L2479">2479</span>
|
|
<span id="L2480" rel="#L2480">2480</span>
|
|
<span id="L2481" rel="#L2481">2481</span>
|
|
<span id="L2482" rel="#L2482">2482</span>
|
|
<span id="L2483" rel="#L2483">2483</span>
|
|
<span id="L2484" rel="#L2484">2484</span>
|
|
<span id="L2485" rel="#L2485">2485</span>
|
|
<span id="L2486" rel="#L2486">2486</span>
|
|
<span id="L2487" rel="#L2487">2487</span>
|
|
<span id="L2488" rel="#L2488">2488</span>
|
|
<span id="L2489" rel="#L2489">2489</span>
|
|
<span id="L2490" rel="#L2490">2490</span>
|
|
<span id="L2491" rel="#L2491">2491</span>
|
|
<span id="L2492" rel="#L2492">2492</span>
|
|
<span id="L2493" rel="#L2493">2493</span>
|
|
<span id="L2494" rel="#L2494">2494</span>
|
|
<span id="L2495" rel="#L2495">2495</span>
|
|
<span id="L2496" rel="#L2496">2496</span>
|
|
<span id="L2497" rel="#L2497">2497</span>
|
|
<span id="L2498" rel="#L2498">2498</span>
|
|
<span id="L2499" rel="#L2499">2499</span>
|
|
<span id="L2500" rel="#L2500">2500</span>
|
|
<span id="L2501" rel="#L2501">2501</span>
|
|
<span id="L2502" rel="#L2502">2502</span>
|
|
<span id="L2503" rel="#L2503">2503</span>
|
|
<span id="L2504" rel="#L2504">2504</span>
|
|
<span id="L2505" rel="#L2505">2505</span>
|
|
<span id="L2506" rel="#L2506">2506</span>
|
|
<span id="L2507" rel="#L2507">2507</span>
|
|
<span id="L2508" rel="#L2508">2508</span>
|
|
<span id="L2509" rel="#L2509">2509</span>
|
|
<span id="L2510" rel="#L2510">2510</span>
|
|
<span id="L2511" rel="#L2511">2511</span>
|
|
<span id="L2512" rel="#L2512">2512</span>
|
|
<span id="L2513" rel="#L2513">2513</span>
|
|
<span id="L2514" rel="#L2514">2514</span>
|
|
<span id="L2515" rel="#L2515">2515</span>
|
|
<span id="L2516" rel="#L2516">2516</span>
|
|
<span id="L2517" rel="#L2517">2517</span>
|
|
<span id="L2518" rel="#L2518">2518</span>
|
|
<span id="L2519" rel="#L2519">2519</span>
|
|
<span id="L2520" rel="#L2520">2520</span>
|
|
<span id="L2521" rel="#L2521">2521</span>
|
|
<span id="L2522" rel="#L2522">2522</span>
|
|
<span id="L2523" rel="#L2523">2523</span>
|
|
<span id="L2524" rel="#L2524">2524</span>
|
|
<span id="L2525" rel="#L2525">2525</span>
|
|
<span id="L2526" rel="#L2526">2526</span>
|
|
<span id="L2527" rel="#L2527">2527</span>
|
|
<span id="L2528" rel="#L2528">2528</span>
|
|
<span id="L2529" rel="#L2529">2529</span>
|
|
<span id="L2530" rel="#L2530">2530</span>
|
|
<span id="L2531" rel="#L2531">2531</span>
|
|
<span id="L2532" rel="#L2532">2532</span>
|
|
<span id="L2533" rel="#L2533">2533</span>
|
|
<span id="L2534" rel="#L2534">2534</span>
|
|
<span id="L2535" rel="#L2535">2535</span>
|
|
<span id="L2536" rel="#L2536">2536</span>
|
|
<span id="L2537" rel="#L2537">2537</span>
|
|
<span id="L2538" rel="#L2538">2538</span>
|
|
<span id="L2539" rel="#L2539">2539</span>
|
|
<span id="L2540" rel="#L2540">2540</span>
|
|
<span id="L2541" rel="#L2541">2541</span>
|
|
<span id="L2542" rel="#L2542">2542</span>
|
|
<span id="L2543" rel="#L2543">2543</span>
|
|
<span id="L2544" rel="#L2544">2544</span>
|
|
<span id="L2545" rel="#L2545">2545</span>
|
|
<span id="L2546" rel="#L2546">2546</span>
|
|
<span id="L2547" rel="#L2547">2547</span>
|
|
<span id="L2548" rel="#L2548">2548</span>
|
|
<span id="L2549" rel="#L2549">2549</span>
|
|
<span id="L2550" rel="#L2550">2550</span>
|
|
<span id="L2551" rel="#L2551">2551</span>
|
|
<span id="L2552" rel="#L2552">2552</span>
|
|
<span id="L2553" rel="#L2553">2553</span>
|
|
<span id="L2554" rel="#L2554">2554</span>
|
|
<span id="L2555" rel="#L2555">2555</span>
|
|
<span id="L2556" rel="#L2556">2556</span>
|
|
<span id="L2557" rel="#L2557">2557</span>
|
|
<span id="L2558" rel="#L2558">2558</span>
|
|
<span id="L2559" rel="#L2559">2559</span>
|
|
<span id="L2560" rel="#L2560">2560</span>
|
|
<span id="L2561" rel="#L2561">2561</span>
|
|
<span id="L2562" rel="#L2562">2562</span>
|
|
<span id="L2563" rel="#L2563">2563</span>
|
|
<span id="L2564" rel="#L2564">2564</span>
|
|
<span id="L2565" rel="#L2565">2565</span>
|
|
<span id="L2566" rel="#L2566">2566</span>
|
|
<span id="L2567" rel="#L2567">2567</span>
|
|
<span id="L2568" rel="#L2568">2568</span>
|
|
<span id="L2569" rel="#L2569">2569</span>
|
|
<span id="L2570" rel="#L2570">2570</span>
|
|
<span id="L2571" rel="#L2571">2571</span>
|
|
<span id="L2572" rel="#L2572">2572</span>
|
|
<span id="L2573" rel="#L2573">2573</span>
|
|
<span id="L2574" rel="#L2574">2574</span>
|
|
<span id="L2575" rel="#L2575">2575</span>
|
|
<span id="L2576" rel="#L2576">2576</span>
|
|
<span id="L2577" rel="#L2577">2577</span>
|
|
<span id="L2578" rel="#L2578">2578</span>
|
|
<span id="L2579" rel="#L2579">2579</span>
|
|
<span id="L2580" rel="#L2580">2580</span>
|
|
<span id="L2581" rel="#L2581">2581</span>
|
|
<span id="L2582" rel="#L2582">2582</span>
|
|
<span id="L2583" rel="#L2583">2583</span>
|
|
<span id="L2584" rel="#L2584">2584</span>
|
|
<span id="L2585" rel="#L2585">2585</span>
|
|
<span id="L2586" rel="#L2586">2586</span>
|
|
<span id="L2587" rel="#L2587">2587</span>
|
|
<span id="L2588" rel="#L2588">2588</span>
|
|
<span id="L2589" rel="#L2589">2589</span>
|
|
<span id="L2590" rel="#L2590">2590</span>
|
|
<span id="L2591" rel="#L2591">2591</span>
|
|
<span id="L2592" rel="#L2592">2592</span>
|
|
<span id="L2593" rel="#L2593">2593</span>
|
|
<span id="L2594" rel="#L2594">2594</span>
|
|
<span id="L2595" rel="#L2595">2595</span>
|
|
<span id="L2596" rel="#L2596">2596</span>
|
|
<span id="L2597" rel="#L2597">2597</span>
|
|
<span id="L2598" rel="#L2598">2598</span>
|
|
<span id="L2599" rel="#L2599">2599</span>
|
|
<span id="L2600" rel="#L2600">2600</span>
|
|
<span id="L2601" rel="#L2601">2601</span>
|
|
<span id="L2602" rel="#L2602">2602</span>
|
|
<span id="L2603" rel="#L2603">2603</span>
|
|
<span id="L2604" rel="#L2604">2604</span>
|
|
<span id="L2605" rel="#L2605">2605</span>
|
|
<span id="L2606" rel="#L2606">2606</span>
|
|
<span id="L2607" rel="#L2607">2607</span>
|
|
<span id="L2608" rel="#L2608">2608</span>
|
|
<span id="L2609" rel="#L2609">2609</span>
|
|
<span id="L2610" rel="#L2610">2610</span>
|
|
<span id="L2611" rel="#L2611">2611</span>
|
|
<span id="L2612" rel="#L2612">2612</span>
|
|
<span id="L2613" rel="#L2613">2613</span>
|
|
<span id="L2614" rel="#L2614">2614</span>
|
|
<span id="L2615" rel="#L2615">2615</span>
|
|
<span id="L2616" rel="#L2616">2616</span>
|
|
<span id="L2617" rel="#L2617">2617</span>
|
|
<span id="L2618" rel="#L2618">2618</span>
|
|
<span id="L2619" rel="#L2619">2619</span>
|
|
<span id="L2620" rel="#L2620">2620</span>
|
|
<span id="L2621" rel="#L2621">2621</span>
|
|
<span id="L2622" rel="#L2622">2622</span>
|
|
<span id="L2623" rel="#L2623">2623</span>
|
|
<span id="L2624" rel="#L2624">2624</span>
|
|
<span id="L2625" rel="#L2625">2625</span>
|
|
<span id="L2626" rel="#L2626">2626</span>
|
|
<span id="L2627" rel="#L2627">2627</span>
|
|
<span id="L2628" rel="#L2628">2628</span>
|
|
<span id="L2629" rel="#L2629">2629</span>
|
|
<span id="L2630" rel="#L2630">2630</span>
|
|
<span id="L2631" rel="#L2631">2631</span>
|
|
<span id="L2632" rel="#L2632">2632</span>
|
|
<span id="L2633" rel="#L2633">2633</span>
|
|
<span id="L2634" rel="#L2634">2634</span>
|
|
<span id="L2635" rel="#L2635">2635</span>
|
|
<span id="L2636" rel="#L2636">2636</span>
|
|
<span id="L2637" rel="#L2637">2637</span>
|
|
<span id="L2638" rel="#L2638">2638</span>
|
|
<span id="L2639" rel="#L2639">2639</span>
|
|
<span id="L2640" rel="#L2640">2640</span>
|
|
<span id="L2641" rel="#L2641">2641</span>
|
|
<span id="L2642" rel="#L2642">2642</span>
|
|
<span id="L2643" rel="#L2643">2643</span>
|
|
<span id="L2644" rel="#L2644">2644</span>
|
|
<span id="L2645" rel="#L2645">2645</span>
|
|
<span id="L2646" rel="#L2646">2646</span>
|
|
<span id="L2647" rel="#L2647">2647</span>
|
|
<span id="L2648" rel="#L2648">2648</span>
|
|
<span id="L2649" rel="#L2649">2649</span>
|
|
<span id="L2650" rel="#L2650">2650</span>
|
|
<span id="L2651" rel="#L2651">2651</span>
|
|
<span id="L2652" rel="#L2652">2652</span>
|
|
<span id="L2653" rel="#L2653">2653</span>
|
|
<span id="L2654" rel="#L2654">2654</span>
|
|
<span id="L2655" rel="#L2655">2655</span>
|
|
<span id="L2656" rel="#L2656">2656</span>
|
|
<span id="L2657" rel="#L2657">2657</span>
|
|
<span id="L2658" rel="#L2658">2658</span>
|
|
<span id="L2659" rel="#L2659">2659</span>
|
|
<span id="L2660" rel="#L2660">2660</span>
|
|
<span id="L2661" rel="#L2661">2661</span>
|
|
<span id="L2662" rel="#L2662">2662</span>
|
|
<span id="L2663" rel="#L2663">2663</span>
|
|
<span id="L2664" rel="#L2664">2664</span>
|
|
<span id="L2665" rel="#L2665">2665</span>
|
|
<span id="L2666" rel="#L2666">2666</span>
|
|
<span id="L2667" rel="#L2667">2667</span>
|
|
<span id="L2668" rel="#L2668">2668</span>
|
|
<span id="L2669" rel="#L2669">2669</span>
|
|
<span id="L2670" rel="#L2670">2670</span>
|
|
<span id="L2671" rel="#L2671">2671</span>
|
|
<span id="L2672" rel="#L2672">2672</span>
|
|
<span id="L2673" rel="#L2673">2673</span>
|
|
<span id="L2674" rel="#L2674">2674</span>
|
|
<span id="L2675" rel="#L2675">2675</span>
|
|
<span id="L2676" rel="#L2676">2676</span>
|
|
<span id="L2677" rel="#L2677">2677</span>
|
|
<span id="L2678" rel="#L2678">2678</span>
|
|
<span id="L2679" rel="#L2679">2679</span>
|
|
<span id="L2680" rel="#L2680">2680</span>
|
|
<span id="L2681" rel="#L2681">2681</span>
|
|
<span id="L2682" rel="#L2682">2682</span>
|
|
<span id="L2683" rel="#L2683">2683</span>
|
|
<span id="L2684" rel="#L2684">2684</span>
|
|
<span id="L2685" rel="#L2685">2685</span>
|
|
<span id="L2686" rel="#L2686">2686</span>
|
|
<span id="L2687" rel="#L2687">2687</span>
|
|
<span id="L2688" rel="#L2688">2688</span>
|
|
<span id="L2689" rel="#L2689">2689</span>
|
|
<span id="L2690" rel="#L2690">2690</span>
|
|
<span id="L2691" rel="#L2691">2691</span>
|
|
<span id="L2692" rel="#L2692">2692</span>
|
|
<span id="L2693" rel="#L2693">2693</span>
|
|
<span id="L2694" rel="#L2694">2694</span>
|
|
<span id="L2695" rel="#L2695">2695</span>
|
|
<span id="L2696" rel="#L2696">2696</span>
|
|
<span id="L2697" rel="#L2697">2697</span>
|
|
<span id="L2698" rel="#L2698">2698</span>
|
|
<span id="L2699" rel="#L2699">2699</span>
|
|
<span id="L2700" rel="#L2700">2700</span>
|
|
<span id="L2701" rel="#L2701">2701</span>
|
|
<span id="L2702" rel="#L2702">2702</span>
|
|
<span id="L2703" rel="#L2703">2703</span>
|
|
<span id="L2704" rel="#L2704">2704</span>
|
|
<span id="L2705" rel="#L2705">2705</span>
|
|
<span id="L2706" rel="#L2706">2706</span>
|
|
<span id="L2707" rel="#L2707">2707</span>
|
|
<span id="L2708" rel="#L2708">2708</span>
|
|
<span id="L2709" rel="#L2709">2709</span>
|
|
<span id="L2710" rel="#L2710">2710</span>
|
|
<span id="L2711" rel="#L2711">2711</span>
|
|
<span id="L2712" rel="#L2712">2712</span>
|
|
<span id="L2713" rel="#L2713">2713</span>
|
|
<span id="L2714" rel="#L2714">2714</span>
|
|
<span id="L2715" rel="#L2715">2715</span>
|
|
<span id="L2716" rel="#L2716">2716</span>
|
|
<span id="L2717" rel="#L2717">2717</span>
|
|
<span id="L2718" rel="#L2718">2718</span>
|
|
<span id="L2719" rel="#L2719">2719</span>
|
|
<span id="L2720" rel="#L2720">2720</span>
|
|
<span id="L2721" rel="#L2721">2721</span>
|
|
<span id="L2722" rel="#L2722">2722</span>
|
|
<span id="L2723" rel="#L2723">2723</span>
|
|
<span id="L2724" rel="#L2724">2724</span>
|
|
<span id="L2725" rel="#L2725">2725</span>
|
|
<span id="L2726" rel="#L2726">2726</span>
|
|
<span id="L2727" rel="#L2727">2727</span>
|
|
<span id="L2728" rel="#L2728">2728</span>
|
|
<span id="L2729" rel="#L2729">2729</span>
|
|
<span id="L2730" rel="#L2730">2730</span>
|
|
<span id="L2731" rel="#L2731">2731</span>
|
|
<span id="L2732" rel="#L2732">2732</span>
|
|
<span id="L2733" rel="#L2733">2733</span>
|
|
<span id="L2734" rel="#L2734">2734</span>
|
|
<span id="L2735" rel="#L2735">2735</span>
|
|
<span id="L2736" rel="#L2736">2736</span>
|
|
<span id="L2737" rel="#L2737">2737</span>
|
|
<span id="L2738" rel="#L2738">2738</span>
|
|
<span id="L2739" rel="#L2739">2739</span>
|
|
<span id="L2740" rel="#L2740">2740</span>
|
|
<span id="L2741" rel="#L2741">2741</span>
|
|
<span id="L2742" rel="#L2742">2742</span>
|
|
<span id="L2743" rel="#L2743">2743</span>
|
|
<span id="L2744" rel="#L2744">2744</span>
|
|
<span id="L2745" rel="#L2745">2745</span>
|
|
<span id="L2746" rel="#L2746">2746</span>
|
|
<span id="L2747" rel="#L2747">2747</span>
|
|
<span id="L2748" rel="#L2748">2748</span>
|
|
<span id="L2749" rel="#L2749">2749</span>
|
|
<span id="L2750" rel="#L2750">2750</span>
|
|
<span id="L2751" rel="#L2751">2751</span>
|
|
<span id="L2752" rel="#L2752">2752</span>
|
|
<span id="L2753" rel="#L2753">2753</span>
|
|
<span id="L2754" rel="#L2754">2754</span>
|
|
<span id="L2755" rel="#L2755">2755</span>
|
|
<span id="L2756" rel="#L2756">2756</span>
|
|
<span id="L2757" rel="#L2757">2757</span>
|
|
<span id="L2758" rel="#L2758">2758</span>
|
|
<span id="L2759" rel="#L2759">2759</span>
|
|
<span id="L2760" rel="#L2760">2760</span>
|
|
<span id="L2761" rel="#L2761">2761</span>
|
|
<span id="L2762" rel="#L2762">2762</span>
|
|
<span id="L2763" rel="#L2763">2763</span>
|
|
<span id="L2764" rel="#L2764">2764</span>
|
|
<span id="L2765" rel="#L2765">2765</span>
|
|
<span id="L2766" rel="#L2766">2766</span>
|
|
<span id="L2767" rel="#L2767">2767</span>
|
|
<span id="L2768" rel="#L2768">2768</span>
|
|
<span id="L2769" rel="#L2769">2769</span>
|
|
<span id="L2770" rel="#L2770">2770</span>
|
|
<span id="L2771" rel="#L2771">2771</span>
|
|
<span id="L2772" rel="#L2772">2772</span>
|
|
<span id="L2773" rel="#L2773">2773</span>
|
|
<span id="L2774" rel="#L2774">2774</span>
|
|
<span id="L2775" rel="#L2775">2775</span>
|
|
<span id="L2776" rel="#L2776">2776</span>
|
|
<span id="L2777" rel="#L2777">2777</span>
|
|
<span id="L2778" rel="#L2778">2778</span>
|
|
<span id="L2779" rel="#L2779">2779</span>
|
|
<span id="L2780" rel="#L2780">2780</span>
|
|
<span id="L2781" rel="#L2781">2781</span>
|
|
<span id="L2782" rel="#L2782">2782</span>
|
|
<span id="L2783" rel="#L2783">2783</span>
|
|
<span id="L2784" rel="#L2784">2784</span>
|
|
<span id="L2785" rel="#L2785">2785</span>
|
|
<span id="L2786" rel="#L2786">2786</span>
|
|
<span id="L2787" rel="#L2787">2787</span>
|
|
<span id="L2788" rel="#L2788">2788</span>
|
|
<span id="L2789" rel="#L2789">2789</span>
|
|
<span id="L2790" rel="#L2790">2790</span>
|
|
<span id="L2791" rel="#L2791">2791</span>
|
|
<span id="L2792" rel="#L2792">2792</span>
|
|
<span id="L2793" rel="#L2793">2793</span>
|
|
<span id="L2794" rel="#L2794">2794</span>
|
|
<span id="L2795" rel="#L2795">2795</span>
|
|
<span id="L2796" rel="#L2796">2796</span>
|
|
<span id="L2797" rel="#L2797">2797</span>
|
|
<span id="L2798" rel="#L2798">2798</span>
|
|
<span id="L2799" rel="#L2799">2799</span>
|
|
<span id="L2800" rel="#L2800">2800</span>
|
|
<span id="L2801" rel="#L2801">2801</span>
|
|
<span id="L2802" rel="#L2802">2802</span>
|
|
<span id="L2803" rel="#L2803">2803</span>
|
|
<span id="L2804" rel="#L2804">2804</span>
|
|
<span id="L2805" rel="#L2805">2805</span>
|
|
<span id="L2806" rel="#L2806">2806</span>
|
|
<span id="L2807" rel="#L2807">2807</span>
|
|
<span id="L2808" rel="#L2808">2808</span>
|
|
<span id="L2809" rel="#L2809">2809</span>
|
|
<span id="L2810" rel="#L2810">2810</span>
|
|
<span id="L2811" rel="#L2811">2811</span>
|
|
<span id="L2812" rel="#L2812">2812</span>
|
|
<span id="L2813" rel="#L2813">2813</span>
|
|
<span id="L2814" rel="#L2814">2814</span>
|
|
<span id="L2815" rel="#L2815">2815</span>
|
|
<span id="L2816" rel="#L2816">2816</span>
|
|
<span id="L2817" rel="#L2817">2817</span>
|
|
<span id="L2818" rel="#L2818">2818</span>
|
|
<span id="L2819" rel="#L2819">2819</span>
|
|
<span id="L2820" rel="#L2820">2820</span>
|
|
<span id="L2821" rel="#L2821">2821</span>
|
|
<span id="L2822" rel="#L2822">2822</span>
|
|
<span id="L2823" rel="#L2823">2823</span>
|
|
<span id="L2824" rel="#L2824">2824</span>
|
|
<span id="L2825" rel="#L2825">2825</span>
|
|
<span id="L2826" rel="#L2826">2826</span>
|
|
<span id="L2827" rel="#L2827">2827</span>
|
|
<span id="L2828" rel="#L2828">2828</span>
|
|
<span id="L2829" rel="#L2829">2829</span>
|
|
<span id="L2830" rel="#L2830">2830</span>
|
|
<span id="L2831" rel="#L2831">2831</span>
|
|
<span id="L2832" rel="#L2832">2832</span>
|
|
<span id="L2833" rel="#L2833">2833</span>
|
|
<span id="L2834" rel="#L2834">2834</span>
|
|
<span id="L2835" rel="#L2835">2835</span>
|
|
<span id="L2836" rel="#L2836">2836</span>
|
|
<span id="L2837" rel="#L2837">2837</span>
|
|
<span id="L2838" rel="#L2838">2838</span>
|
|
<span id="L2839" rel="#L2839">2839</span>
|
|
<span id="L2840" rel="#L2840">2840</span>
|
|
<span id="L2841" rel="#L2841">2841</span>
|
|
<span id="L2842" rel="#L2842">2842</span>
|
|
<span id="L2843" rel="#L2843">2843</span>
|
|
<span id="L2844" rel="#L2844">2844</span>
|
|
<span id="L2845" rel="#L2845">2845</span>
|
|
<span id="L2846" rel="#L2846">2846</span>
|
|
<span id="L2847" rel="#L2847">2847</span>
|
|
<span id="L2848" rel="#L2848">2848</span>
|
|
<span id="L2849" rel="#L2849">2849</span>
|
|
<span id="L2850" rel="#L2850">2850</span>
|
|
<span id="L2851" rel="#L2851">2851</span>
|
|
<span id="L2852" rel="#L2852">2852</span>
|
|
<span id="L2853" rel="#L2853">2853</span>
|
|
<span id="L2854" rel="#L2854">2854</span>
|
|
<span id="L2855" rel="#L2855">2855</span>
|
|
<span id="L2856" rel="#L2856">2856</span>
|
|
<span id="L2857" rel="#L2857">2857</span>
|
|
<span id="L2858" rel="#L2858">2858</span>
|
|
<span id="L2859" rel="#L2859">2859</span>
|
|
<span id="L2860" rel="#L2860">2860</span>
|
|
<span id="L2861" rel="#L2861">2861</span>
|
|
<span id="L2862" rel="#L2862">2862</span>
|
|
<span id="L2863" rel="#L2863">2863</span>
|
|
<span id="L2864" rel="#L2864">2864</span>
|
|
<span id="L2865" rel="#L2865">2865</span>
|
|
<span id="L2866" rel="#L2866">2866</span>
|
|
<span id="L2867" rel="#L2867">2867</span>
|
|
<span id="L2868" rel="#L2868">2868</span>
|
|
<span id="L2869" rel="#L2869">2869</span>
|
|
<span id="L2870" rel="#L2870">2870</span>
|
|
<span id="L2871" rel="#L2871">2871</span>
|
|
<span id="L2872" rel="#L2872">2872</span>
|
|
<span id="L2873" rel="#L2873">2873</span>
|
|
<span id="L2874" rel="#L2874">2874</span>
|
|
<span id="L2875" rel="#L2875">2875</span>
|
|
<span id="L2876" rel="#L2876">2876</span>
|
|
<span id="L2877" rel="#L2877">2877</span>
|
|
<span id="L2878" rel="#L2878">2878</span>
|
|
<span id="L2879" rel="#L2879">2879</span>
|
|
<span id="L2880" rel="#L2880">2880</span>
|
|
<span id="L2881" rel="#L2881">2881</span>
|
|
<span id="L2882" rel="#L2882">2882</span>
|
|
<span id="L2883" rel="#L2883">2883</span>
|
|
<span id="L2884" rel="#L2884">2884</span>
|
|
<span id="L2885" rel="#L2885">2885</span>
|
|
<span id="L2886" rel="#L2886">2886</span>
|
|
<span id="L2887" rel="#L2887">2887</span>
|
|
<span id="L2888" rel="#L2888">2888</span>
|
|
<span id="L2889" rel="#L2889">2889</span>
|
|
<span id="L2890" rel="#L2890">2890</span>
|
|
<span id="L2891" rel="#L2891">2891</span>
|
|
<span id="L2892" rel="#L2892">2892</span>
|
|
<span id="L2893" rel="#L2893">2893</span>
|
|
<span id="L2894" rel="#L2894">2894</span>
|
|
<span id="L2895" rel="#L2895">2895</span>
|
|
<span id="L2896" rel="#L2896">2896</span>
|
|
<span id="L2897" rel="#L2897">2897</span>
|
|
<span id="L2898" rel="#L2898">2898</span>
|
|
<span id="L2899" rel="#L2899">2899</span>
|
|
<span id="L2900" rel="#L2900">2900</span>
|
|
<span id="L2901" rel="#L2901">2901</span>
|
|
<span id="L2902" rel="#L2902">2902</span>
|
|
<span id="L2903" rel="#L2903">2903</span>
|
|
<span id="L2904" rel="#L2904">2904</span>
|
|
<span id="L2905" rel="#L2905">2905</span>
|
|
<span id="L2906" rel="#L2906">2906</span>
|
|
<span id="L2907" rel="#L2907">2907</span>
|
|
<span id="L2908" rel="#L2908">2908</span>
|
|
<span id="L2909" rel="#L2909">2909</span>
|
|
<span id="L2910" rel="#L2910">2910</span>
|
|
<span id="L2911" rel="#L2911">2911</span>
|
|
<span id="L2912" rel="#L2912">2912</span>
|
|
<span id="L2913" rel="#L2913">2913</span>
|
|
<span id="L2914" rel="#L2914">2914</span>
|
|
<span id="L2915" rel="#L2915">2915</span>
|
|
<span id="L2916" rel="#L2916">2916</span>
|
|
<span id="L2917" rel="#L2917">2917</span>
|
|
<span id="L2918" rel="#L2918">2918</span>
|
|
<span id="L2919" rel="#L2919">2919</span>
|
|
<span id="L2920" rel="#L2920">2920</span>
|
|
<span id="L2921" rel="#L2921">2921</span>
|
|
<span id="L2922" rel="#L2922">2922</span>
|
|
<span id="L2923" rel="#L2923">2923</span>
|
|
<span id="L2924" rel="#L2924">2924</span>
|
|
<span id="L2925" rel="#L2925">2925</span>
|
|
<span id="L2926" rel="#L2926">2926</span>
|
|
<span id="L2927" rel="#L2927">2927</span>
|
|
<span id="L2928" rel="#L2928">2928</span>
|
|
<span id="L2929" rel="#L2929">2929</span>
|
|
<span id="L2930" rel="#L2930">2930</span>
|
|
<span id="L2931" rel="#L2931">2931</span>
|
|
<span id="L2932" rel="#L2932">2932</span>
|
|
<span id="L2933" rel="#L2933">2933</span>
|
|
<span id="L2934" rel="#L2934">2934</span>
|
|
<span id="L2935" rel="#L2935">2935</span>
|
|
<span id="L2936" rel="#L2936">2936</span>
|
|
<span id="L2937" rel="#L2937">2937</span>
|
|
<span id="L2938" rel="#L2938">2938</span>
|
|
<span id="L2939" rel="#L2939">2939</span>
|
|
<span id="L2940" rel="#L2940">2940</span>
|
|
<span id="L2941" rel="#L2941">2941</span>
|
|
<span id="L2942" rel="#L2942">2942</span>
|
|
<span id="L2943" rel="#L2943">2943</span>
|
|
<span id="L2944" rel="#L2944">2944</span>
|
|
<span id="L2945" rel="#L2945">2945</span>
|
|
<span id="L2946" rel="#L2946">2946</span>
|
|
<span id="L2947" rel="#L2947">2947</span>
|
|
<span id="L2948" rel="#L2948">2948</span>
|
|
<span id="L2949" rel="#L2949">2949</span>
|
|
<span id="L2950" rel="#L2950">2950</span>
|
|
<span id="L2951" rel="#L2951">2951</span>
|
|
<span id="L2952" rel="#L2952">2952</span>
|
|
<span id="L2953" rel="#L2953">2953</span>
|
|
<span id="L2954" rel="#L2954">2954</span>
|
|
<span id="L2955" rel="#L2955">2955</span>
|
|
<span id="L2956" rel="#L2956">2956</span>
|
|
<span id="L2957" rel="#L2957">2957</span>
|
|
<span id="L2958" rel="#L2958">2958</span>
|
|
<span id="L2959" rel="#L2959">2959</span>
|
|
<span id="L2960" rel="#L2960">2960</span>
|
|
<span id="L2961" rel="#L2961">2961</span>
|
|
<span id="L2962" rel="#L2962">2962</span>
|
|
<span id="L2963" rel="#L2963">2963</span>
|
|
<span id="L2964" rel="#L2964">2964</span>
|
|
<span id="L2965" rel="#L2965">2965</span>
|
|
<span id="L2966" rel="#L2966">2966</span>
|
|
<span id="L2967" rel="#L2967">2967</span>
|
|
<span id="L2968" rel="#L2968">2968</span>
|
|
<span id="L2969" rel="#L2969">2969</span>
|
|
<span id="L2970" rel="#L2970">2970</span>
|
|
<span id="L2971" rel="#L2971">2971</span>
|
|
<span id="L2972" rel="#L2972">2972</span>
|
|
<span id="L2973" rel="#L2973">2973</span>
|
|
<span id="L2974" rel="#L2974">2974</span>
|
|
<span id="L2975" rel="#L2975">2975</span>
|
|
<span id="L2976" rel="#L2976">2976</span>
|
|
<span id="L2977" rel="#L2977">2977</span>
|
|
<span id="L2978" rel="#L2978">2978</span>
|
|
<span id="L2979" rel="#L2979">2979</span>
|
|
<span id="L2980" rel="#L2980">2980</span>
|
|
<span id="L2981" rel="#L2981">2981</span>
|
|
<span id="L2982" rel="#L2982">2982</span>
|
|
<span id="L2983" rel="#L2983">2983</span>
|
|
<span id="L2984" rel="#L2984">2984</span>
|
|
<span id="L2985" rel="#L2985">2985</span>
|
|
<span id="L2986" rel="#L2986">2986</span>
|
|
<span id="L2987" rel="#L2987">2987</span>
|
|
<span id="L2988" rel="#L2988">2988</span>
|
|
<span id="L2989" rel="#L2989">2989</span>
|
|
<span id="L2990" rel="#L2990">2990</span>
|
|
<span id="L2991" rel="#L2991">2991</span>
|
|
<span id="L2992" rel="#L2992">2992</span>
|
|
<span id="L2993" rel="#L2993">2993</span>
|
|
<span id="L2994" rel="#L2994">2994</span>
|
|
<span id="L2995" rel="#L2995">2995</span>
|
|
<span id="L2996" rel="#L2996">2996</span>
|
|
<span id="L2997" rel="#L2997">2997</span>
|
|
<span id="L2998" rel="#L2998">2998</span>
|
|
<span id="L2999" rel="#L2999">2999</span>
|
|
<span id="L3000" rel="#L3000">3000</span>
|
|
<span id="L3001" rel="#L3001">3001</span>
|
|
<span id="L3002" rel="#L3002">3002</span>
|
|
<span id="L3003" rel="#L3003">3003</span>
|
|
<span id="L3004" rel="#L3004">3004</span>
|
|
<span id="L3005" rel="#L3005">3005</span>
|
|
<span id="L3006" rel="#L3006">3006</span>
|
|
<span id="L3007" rel="#L3007">3007</span>
|
|
<span id="L3008" rel="#L3008">3008</span>
|
|
<span id="L3009" rel="#L3009">3009</span>
|
|
<span id="L3010" rel="#L3010">3010</span>
|
|
<span id="L3011" rel="#L3011">3011</span>
|
|
<span id="L3012" rel="#L3012">3012</span>
|
|
<span id="L3013" rel="#L3013">3013</span>
|
|
<span id="L3014" rel="#L3014">3014</span>
|
|
<span id="L3015" rel="#L3015">3015</span>
|
|
<span id="L3016" rel="#L3016">3016</span>
|
|
<span id="L3017" rel="#L3017">3017</span>
|
|
<span id="L3018" rel="#L3018">3018</span>
|
|
<span id="L3019" rel="#L3019">3019</span>
|
|
<span id="L3020" rel="#L3020">3020</span>
|
|
<span id="L3021" rel="#L3021">3021</span>
|
|
<span id="L3022" rel="#L3022">3022</span>
|
|
<span id="L3023" rel="#L3023">3023</span>
|
|
<span id="L3024" rel="#L3024">3024</span>
|
|
<span id="L3025" rel="#L3025">3025</span>
|
|
<span id="L3026" rel="#L3026">3026</span>
|
|
<span id="L3027" rel="#L3027">3027</span>
|
|
<span id="L3028" rel="#L3028">3028</span>
|
|
<span id="L3029" rel="#L3029">3029</span>
|
|
<span id="L3030" rel="#L3030">3030</span>
|
|
<span id="L3031" rel="#L3031">3031</span>
|
|
<span id="L3032" rel="#L3032">3032</span>
|
|
<span id="L3033" rel="#L3033">3033</span>
|
|
<span id="L3034" rel="#L3034">3034</span>
|
|
<span id="L3035" rel="#L3035">3035</span>
|
|
<span id="L3036" rel="#L3036">3036</span>
|
|
<span id="L3037" rel="#L3037">3037</span>
|
|
<span id="L3038" rel="#L3038">3038</span>
|
|
<span id="L3039" rel="#L3039">3039</span>
|
|
<span id="L3040" rel="#L3040">3040</span>
|
|
<span id="L3041" rel="#L3041">3041</span>
|
|
<span id="L3042" rel="#L3042">3042</span>
|
|
<span id="L3043" rel="#L3043">3043</span>
|
|
<span id="L3044" rel="#L3044">3044</span>
|
|
<span id="L3045" rel="#L3045">3045</span>
|
|
<span id="L3046" rel="#L3046">3046</span>
|
|
<span id="L3047" rel="#L3047">3047</span>
|
|
<span id="L3048" rel="#L3048">3048</span>
|
|
<span id="L3049" rel="#L3049">3049</span>
|
|
<span id="L3050" rel="#L3050">3050</span>
|
|
<span id="L3051" rel="#L3051">3051</span>
|
|
<span id="L3052" rel="#L3052">3052</span>
|
|
<span id="L3053" rel="#L3053">3053</span>
|
|
<span id="L3054" rel="#L3054">3054</span>
|
|
<span id="L3055" rel="#L3055">3055</span>
|
|
<span id="L3056" rel="#L3056">3056</span>
|
|
<span id="L3057" rel="#L3057">3057</span>
|
|
<span id="L3058" rel="#L3058">3058</span>
|
|
<span id="L3059" rel="#L3059">3059</span>
|
|
<span id="L3060" rel="#L3060">3060</span>
|
|
<span id="L3061" rel="#L3061">3061</span>
|
|
<span id="L3062" rel="#L3062">3062</span>
|
|
<span id="L3063" rel="#L3063">3063</span>
|
|
<span id="L3064" rel="#L3064">3064</span>
|
|
<span id="L3065" rel="#L3065">3065</span>
|
|
<span id="L3066" rel="#L3066">3066</span>
|
|
<span id="L3067" rel="#L3067">3067</span>
|
|
<span id="L3068" rel="#L3068">3068</span>
|
|
<span id="L3069" rel="#L3069">3069</span>
|
|
<span id="L3070" rel="#L3070">3070</span>
|
|
<span id="L3071" rel="#L3071">3071</span>
|
|
<span id="L3072" rel="#L3072">3072</span>
|
|
<span id="L3073" rel="#L3073">3073</span>
|
|
<span id="L3074" rel="#L3074">3074</span>
|
|
<span id="L3075" rel="#L3075">3075</span>
|
|
<span id="L3076" rel="#L3076">3076</span>
|
|
<span id="L3077" rel="#L3077">3077</span>
|
|
<span id="L3078" rel="#L3078">3078</span>
|
|
<span id="L3079" rel="#L3079">3079</span>
|
|
<span id="L3080" rel="#L3080">3080</span>
|
|
<span id="L3081" rel="#L3081">3081</span>
|
|
<span id="L3082" rel="#L3082">3082</span>
|
|
<span id="L3083" rel="#L3083">3083</span>
|
|
<span id="L3084" rel="#L3084">3084</span>
|
|
<span id="L3085" rel="#L3085">3085</span>
|
|
<span id="L3086" rel="#L3086">3086</span>
|
|
<span id="L3087" rel="#L3087">3087</span>
|
|
<span id="L3088" rel="#L3088">3088</span>
|
|
<span id="L3089" rel="#L3089">3089</span>
|
|
<span id="L3090" rel="#L3090">3090</span>
|
|
<span id="L3091" rel="#L3091">3091</span>
|
|
<span id="L3092" rel="#L3092">3092</span>
|
|
<span id="L3093" rel="#L3093">3093</span>
|
|
<span id="L3094" rel="#L3094">3094</span>
|
|
<span id="L3095" rel="#L3095">3095</span>
|
|
<span id="L3096" rel="#L3096">3096</span>
|
|
<span id="L3097" rel="#L3097">3097</span>
|
|
<span id="L3098" rel="#L3098">3098</span>
|
|
<span id="L3099" rel="#L3099">3099</span>
|
|
<span id="L3100" rel="#L3100">3100</span>
|
|
<span id="L3101" rel="#L3101">3101</span>
|
|
<span id="L3102" rel="#L3102">3102</span>
|
|
<span id="L3103" rel="#L3103">3103</span>
|
|
<span id="L3104" rel="#L3104">3104</span>
|
|
<span id="L3105" rel="#L3105">3105</span>
|
|
<span id="L3106" rel="#L3106">3106</span>
|
|
<span id="L3107" rel="#L3107">3107</span>
|
|
<span id="L3108" rel="#L3108">3108</span>
|
|
<span id="L3109" rel="#L3109">3109</span>
|
|
<span id="L3110" rel="#L3110">3110</span>
|
|
<span id="L3111" rel="#L3111">3111</span>
|
|
<span id="L3112" rel="#L3112">3112</span>
|
|
<span id="L3113" rel="#L3113">3113</span>
|
|
<span id="L3114" rel="#L3114">3114</span>
|
|
<span id="L3115" rel="#L3115">3115</span>
|
|
<span id="L3116" rel="#L3116">3116</span>
|
|
<span id="L3117" rel="#L3117">3117</span>
|
|
<span id="L3118" rel="#L3118">3118</span>
|
|
<span id="L3119" rel="#L3119">3119</span>
|
|
<span id="L3120" rel="#L3120">3120</span>
|
|
<span id="L3121" rel="#L3121">3121</span>
|
|
<span id="L3122" rel="#L3122">3122</span>
|
|
<span id="L3123" rel="#L3123">3123</span>
|
|
<span id="L3124" rel="#L3124">3124</span>
|
|
<span id="L3125" rel="#L3125">3125</span>
|
|
<span id="L3126" rel="#L3126">3126</span>
|
|
<span id="L3127" rel="#L3127">3127</span>
|
|
<span id="L3128" rel="#L3128">3128</span>
|
|
<span id="L3129" rel="#L3129">3129</span>
|
|
<span id="L3130" rel="#L3130">3130</span>
|
|
<span id="L3131" rel="#L3131">3131</span>
|
|
<span id="L3132" rel="#L3132">3132</span>
|
|
<span id="L3133" rel="#L3133">3133</span>
|
|
<span id="L3134" rel="#L3134">3134</span>
|
|
<span id="L3135" rel="#L3135">3135</span>
|
|
<span id="L3136" rel="#L3136">3136</span>
|
|
<span id="L3137" rel="#L3137">3137</span>
|
|
<span id="L3138" rel="#L3138">3138</span>
|
|
<span id="L3139" rel="#L3139">3139</span>
|
|
<span id="L3140" rel="#L3140">3140</span>
|
|
<span id="L3141" rel="#L3141">3141</span>
|
|
<span id="L3142" rel="#L3142">3142</span>
|
|
<span id="L3143" rel="#L3143">3143</span>
|
|
<span id="L3144" rel="#L3144">3144</span>
|
|
<span id="L3145" rel="#L3145">3145</span>
|
|
<span id="L3146" rel="#L3146">3146</span>
|
|
<span id="L3147" rel="#L3147">3147</span>
|
|
<span id="L3148" rel="#L3148">3148</span>
|
|
<span id="L3149" rel="#L3149">3149</span>
|
|
<span id="L3150" rel="#L3150">3150</span>
|
|
<span id="L3151" rel="#L3151">3151</span>
|
|
<span id="L3152" rel="#L3152">3152</span>
|
|
<span id="L3153" rel="#L3153">3153</span>
|
|
<span id="L3154" rel="#L3154">3154</span>
|
|
<span id="L3155" rel="#L3155">3155</span>
|
|
<span id="L3156" rel="#L3156">3156</span>
|
|
<span id="L3157" rel="#L3157">3157</span>
|
|
<span id="L3158" rel="#L3158">3158</span>
|
|
<span id="L3159" rel="#L3159">3159</span>
|
|
<span id="L3160" rel="#L3160">3160</span>
|
|
<span id="L3161" rel="#L3161">3161</span>
|
|
<span id="L3162" rel="#L3162">3162</span>
|
|
<span id="L3163" rel="#L3163">3163</span>
|
|
<span id="L3164" rel="#L3164">3164</span>
|
|
<span id="L3165" rel="#L3165">3165</span>
|
|
<span id="L3166" rel="#L3166">3166</span>
|
|
<span id="L3167" rel="#L3167">3167</span>
|
|
<span id="L3168" rel="#L3168">3168</span>
|
|
<span id="L3169" rel="#L3169">3169</span>
|
|
<span id="L3170" rel="#L3170">3170</span>
|
|
<span id="L3171" rel="#L3171">3171</span>
|
|
<span id="L3172" rel="#L3172">3172</span>
|
|
<span id="L3173" rel="#L3173">3173</span>
|
|
<span id="L3174" rel="#L3174">3174</span>
|
|
<span id="L3175" rel="#L3175">3175</span>
|
|
<span id="L3176" rel="#L3176">3176</span>
|
|
<span id="L3177" rel="#L3177">3177</span>
|
|
<span id="L3178" rel="#L3178">3178</span>
|
|
<span id="L3179" rel="#L3179">3179</span>
|
|
<span id="L3180" rel="#L3180">3180</span>
|
|
<span id="L3181" rel="#L3181">3181</span>
|
|
<span id="L3182" rel="#L3182">3182</span>
|
|
<span id="L3183" rel="#L3183">3183</span>
|
|
<span id="L3184" rel="#L3184">3184</span>
|
|
<span id="L3185" rel="#L3185">3185</span>
|
|
<span id="L3186" rel="#L3186">3186</span>
|
|
<span id="L3187" rel="#L3187">3187</span>
|
|
<span id="L3188" rel="#L3188">3188</span>
|
|
<span id="L3189" rel="#L3189">3189</span>
|
|
<span id="L3190" rel="#L3190">3190</span>
|
|
<span id="L3191" rel="#L3191">3191</span>
|
|
<span id="L3192" rel="#L3192">3192</span>
|
|
<span id="L3193" rel="#L3193">3193</span>
|
|
<span id="L3194" rel="#L3194">3194</span>
|
|
<span id="L3195" rel="#L3195">3195</span>
|
|
<span id="L3196" rel="#L3196">3196</span>
|
|
<span id="L3197" rel="#L3197">3197</span>
|
|
<span id="L3198" rel="#L3198">3198</span>
|
|
<span id="L3199" rel="#L3199">3199</span>
|
|
<span id="L3200" rel="#L3200">3200</span>
|
|
<span id="L3201" rel="#L3201">3201</span>
|
|
<span id="L3202" rel="#L3202">3202</span>
|
|
<span id="L3203" rel="#L3203">3203</span>
|
|
<span id="L3204" rel="#L3204">3204</span>
|
|
<span id="L3205" rel="#L3205">3205</span>
|
|
<span id="L3206" rel="#L3206">3206</span>
|
|
<span id="L3207" rel="#L3207">3207</span>
|
|
<span id="L3208" rel="#L3208">3208</span>
|
|
<span id="L3209" rel="#L3209">3209</span>
|
|
<span id="L3210" rel="#L3210">3210</span>
|
|
<span id="L3211" rel="#L3211">3211</span>
|
|
<span id="L3212" rel="#L3212">3212</span>
|
|
<span id="L3213" rel="#L3213">3213</span>
|
|
<span id="L3214" rel="#L3214">3214</span>
|
|
<span id="L3215" rel="#L3215">3215</span>
|
|
<span id="L3216" rel="#L3216">3216</span>
|
|
<span id="L3217" rel="#L3217">3217</span>
|
|
<span id="L3218" rel="#L3218">3218</span>
|
|
<span id="L3219" rel="#L3219">3219</span>
|
|
<span id="L3220" rel="#L3220">3220</span>
|
|
<span id="L3221" rel="#L3221">3221</span>
|
|
<span id="L3222" rel="#L3222">3222</span>
|
|
<span id="L3223" rel="#L3223">3223</span>
|
|
<span id="L3224" rel="#L3224">3224</span>
|
|
<span id="L3225" rel="#L3225">3225</span>
|
|
<span id="L3226" rel="#L3226">3226</span>
|
|
<span id="L3227" rel="#L3227">3227</span>
|
|
<span id="L3228" rel="#L3228">3228</span>
|
|
<span id="L3229" rel="#L3229">3229</span>
|
|
<span id="L3230" rel="#L3230">3230</span>
|
|
<span id="L3231" rel="#L3231">3231</span>
|
|
<span id="L3232" rel="#L3232">3232</span>
|
|
<span id="L3233" rel="#L3233">3233</span>
|
|
<span id="L3234" rel="#L3234">3234</span>
|
|
<span id="L3235" rel="#L3235">3235</span>
|
|
<span id="L3236" rel="#L3236">3236</span>
|
|
<span id="L3237" rel="#L3237">3237</span>
|
|
<span id="L3238" rel="#L3238">3238</span>
|
|
<span id="L3239" rel="#L3239">3239</span>
|
|
<span id="L3240" rel="#L3240">3240</span>
|
|
<span id="L3241" rel="#L3241">3241</span>
|
|
<span id="L3242" rel="#L3242">3242</span>
|
|
<span id="L3243" rel="#L3243">3243</span>
|
|
<span id="L3244" rel="#L3244">3244</span>
|
|
<span id="L3245" rel="#L3245">3245</span>
|
|
<span id="L3246" rel="#L3246">3246</span>
|
|
<span id="L3247" rel="#L3247">3247</span>
|
|
<span id="L3248" rel="#L3248">3248</span>
|
|
<span id="L3249" rel="#L3249">3249</span>
|
|
<span id="L3250" rel="#L3250">3250</span>
|
|
<span id="L3251" rel="#L3251">3251</span>
|
|
<span id="L3252" rel="#L3252">3252</span>
|
|
<span id="L3253" rel="#L3253">3253</span>
|
|
<span id="L3254" rel="#L3254">3254</span>
|
|
<span id="L3255" rel="#L3255">3255</span>
|
|
<span id="L3256" rel="#L3256">3256</span>
|
|
<span id="L3257" rel="#L3257">3257</span>
|
|
<span id="L3258" rel="#L3258">3258</span>
|
|
<span id="L3259" rel="#L3259">3259</span>
|
|
<span id="L3260" rel="#L3260">3260</span>
|
|
<span id="L3261" rel="#L3261">3261</span>
|
|
<span id="L3262" rel="#L3262">3262</span>
|
|
<span id="L3263" rel="#L3263">3263</span>
|
|
<span id="L3264" rel="#L3264">3264</span>
|
|
<span id="L3265" rel="#L3265">3265</span>
|
|
<span id="L3266" rel="#L3266">3266</span>
|
|
<span id="L3267" rel="#L3267">3267</span>
|
|
<span id="L3268" rel="#L3268">3268</span>
|
|
<span id="L3269" rel="#L3269">3269</span>
|
|
<span id="L3270" rel="#L3270">3270</span>
|
|
<span id="L3271" rel="#L3271">3271</span>
|
|
<span id="L3272" rel="#L3272">3272</span>
|
|
<span id="L3273" rel="#L3273">3273</span>
|
|
<span id="L3274" rel="#L3274">3274</span>
|
|
<span id="L3275" rel="#L3275">3275</span>
|
|
<span id="L3276" rel="#L3276">3276</span>
|
|
<span id="L3277" rel="#L3277">3277</span>
|
|
<span id="L3278" rel="#L3278">3278</span>
|
|
<span id="L3279" rel="#L3279">3279</span>
|
|
<span id="L3280" rel="#L3280">3280</span>
|
|
<span id="L3281" rel="#L3281">3281</span>
|
|
<span id="L3282" rel="#L3282">3282</span>
|
|
<span id="L3283" rel="#L3283">3283</span>
|
|
<span id="L3284" rel="#L3284">3284</span>
|
|
<span id="L3285" rel="#L3285">3285</span>
|
|
<span id="L3286" rel="#L3286">3286</span>
|
|
<span id="L3287" rel="#L3287">3287</span>
|
|
<span id="L3288" rel="#L3288">3288</span>
|
|
<span id="L3289" rel="#L3289">3289</span>
|
|
<span id="L3290" rel="#L3290">3290</span>
|
|
<span id="L3291" rel="#L3291">3291</span>
|
|
<span id="L3292" rel="#L3292">3292</span>
|
|
<span id="L3293" rel="#L3293">3293</span>
|
|
<span id="L3294" rel="#L3294">3294</span>
|
|
<span id="L3295" rel="#L3295">3295</span>
|
|
<span id="L3296" rel="#L3296">3296</span>
|
|
<span id="L3297" rel="#L3297">3297</span>
|
|
<span id="L3298" rel="#L3298">3298</span>
|
|
<span id="L3299" rel="#L3299">3299</span>
|
|
<span id="L3300" rel="#L3300">3300</span>
|
|
<span id="L3301" rel="#L3301">3301</span>
|
|
<span id="L3302" rel="#L3302">3302</span>
|
|
<span id="L3303" rel="#L3303">3303</span>
|
|
<span id="L3304" rel="#L3304">3304</span>
|
|
<span id="L3305" rel="#L3305">3305</span>
|
|
<span id="L3306" rel="#L3306">3306</span>
|
|
<span id="L3307" rel="#L3307">3307</span>
|
|
<span id="L3308" rel="#L3308">3308</span>
|
|
<span id="L3309" rel="#L3309">3309</span>
|
|
<span id="L3310" rel="#L3310">3310</span>
|
|
<span id="L3311" rel="#L3311">3311</span>
|
|
<span id="L3312" rel="#L3312">3312</span>
|
|
<span id="L3313" rel="#L3313">3313</span>
|
|
<span id="L3314" rel="#L3314">3314</span>
|
|
<span id="L3315" rel="#L3315">3315</span>
|
|
<span id="L3316" rel="#L3316">3316</span>
|
|
<span id="L3317" rel="#L3317">3317</span>
|
|
<span id="L3318" rel="#L3318">3318</span>
|
|
<span id="L3319" rel="#L3319">3319</span>
|
|
<span id="L3320" rel="#L3320">3320</span>
|
|
<span id="L3321" rel="#L3321">3321</span>
|
|
<span id="L3322" rel="#L3322">3322</span>
|
|
<span id="L3323" rel="#L3323">3323</span>
|
|
<span id="L3324" rel="#L3324">3324</span>
|
|
<span id="L3325" rel="#L3325">3325</span>
|
|
<span id="L3326" rel="#L3326">3326</span>
|
|
<span id="L3327" rel="#L3327">3327</span>
|
|
<span id="L3328" rel="#L3328">3328</span>
|
|
<span id="L3329" rel="#L3329">3329</span>
|
|
<span id="L3330" rel="#L3330">3330</span>
|
|
<span id="L3331" rel="#L3331">3331</span>
|
|
<span id="L3332" rel="#L3332">3332</span>
|
|
<span id="L3333" rel="#L3333">3333</span>
|
|
<span id="L3334" rel="#L3334">3334</span>
|
|
<span id="L3335" rel="#L3335">3335</span>
|
|
<span id="L3336" rel="#L3336">3336</span>
|
|
<span id="L3337" rel="#L3337">3337</span>
|
|
<span id="L3338" rel="#L3338">3338</span>
|
|
<span id="L3339" rel="#L3339">3339</span>
|
|
<span id="L3340" rel="#L3340">3340</span>
|
|
<span id="L3341" rel="#L3341">3341</span>
|
|
<span id="L3342" rel="#L3342">3342</span>
|
|
<span id="L3343" rel="#L3343">3343</span>
|
|
<span id="L3344" rel="#L3344">3344</span>
|
|
<span id="L3345" rel="#L3345">3345</span>
|
|
<span id="L3346" rel="#L3346">3346</span>
|
|
<span id="L3347" rel="#L3347">3347</span>
|
|
<span id="L3348" rel="#L3348">3348</span>
|
|
<span id="L3349" rel="#L3349">3349</span>
|
|
<span id="L3350" rel="#L3350">3350</span>
|
|
<span id="L3351" rel="#L3351">3351</span>
|
|
<span id="L3352" rel="#L3352">3352</span>
|
|
<span id="L3353" rel="#L3353">3353</span>
|
|
<span id="L3354" rel="#L3354">3354</span>
|
|
<span id="L3355" rel="#L3355">3355</span>
|
|
<span id="L3356" rel="#L3356">3356</span>
|
|
<span id="L3357" rel="#L3357">3357</span>
|
|
<span id="L3358" rel="#L3358">3358</span>
|
|
<span id="L3359" rel="#L3359">3359</span>
|
|
<span id="L3360" rel="#L3360">3360</span>
|
|
<span id="L3361" rel="#L3361">3361</span>
|
|
<span id="L3362" rel="#L3362">3362</span>
|
|
<span id="L3363" rel="#L3363">3363</span>
|
|
<span id="L3364" rel="#L3364">3364</span>
|
|
<span id="L3365" rel="#L3365">3365</span>
|
|
<span id="L3366" rel="#L3366">3366</span>
|
|
<span id="L3367" rel="#L3367">3367</span>
|
|
<span id="L3368" rel="#L3368">3368</span>
|
|
<span id="L3369" rel="#L3369">3369</span>
|
|
<span id="L3370" rel="#L3370">3370</span>
|
|
<span id="L3371" rel="#L3371">3371</span>
|
|
<span id="L3372" rel="#L3372">3372</span>
|
|
<span id="L3373" rel="#L3373">3373</span>
|
|
<span id="L3374" rel="#L3374">3374</span>
|
|
<span id="L3375" rel="#L3375">3375</span>
|
|
<span id="L3376" rel="#L3376">3376</span>
|
|
<span id="L3377" rel="#L3377">3377</span>
|
|
<span id="L3378" rel="#L3378">3378</span>
|
|
<span id="L3379" rel="#L3379">3379</span>
|
|
<span id="L3380" rel="#L3380">3380</span>
|
|
<span id="L3381" rel="#L3381">3381</span>
|
|
<span id="L3382" rel="#L3382">3382</span>
|
|
<span id="L3383" rel="#L3383">3383</span>
|
|
<span id="L3384" rel="#L3384">3384</span>
|
|
<span id="L3385" rel="#L3385">3385</span>
|
|
<span id="L3386" rel="#L3386">3386</span>
|
|
<span id="L3387" rel="#L3387">3387</span>
|
|
<span id="L3388" rel="#L3388">3388</span>
|
|
<span id="L3389" rel="#L3389">3389</span>
|
|
<span id="L3390" rel="#L3390">3390</span>
|
|
<span id="L3391" rel="#L3391">3391</span>
|
|
<span id="L3392" rel="#L3392">3392</span>
|
|
<span id="L3393" rel="#L3393">3393</span>
|
|
<span id="L3394" rel="#L3394">3394</span>
|
|
<span id="L3395" rel="#L3395">3395</span>
|
|
<span id="L3396" rel="#L3396">3396</span>
|
|
<span id="L3397" rel="#L3397">3397</span>
|
|
<span id="L3398" rel="#L3398">3398</span>
|
|
<span id="L3399" rel="#L3399">3399</span>
|
|
<span id="L3400" rel="#L3400">3400</span>
|
|
<span id="L3401" rel="#L3401">3401</span>
|
|
<span id="L3402" rel="#L3402">3402</span>
|
|
<span id="L3403" rel="#L3403">3403</span>
|
|
<span id="L3404" rel="#L3404">3404</span>
|
|
<span id="L3405" rel="#L3405">3405</span>
|
|
<span id="L3406" rel="#L3406">3406</span>
|
|
<span id="L3407" rel="#L3407">3407</span>
|
|
<span id="L3408" rel="#L3408">3408</span>
|
|
<span id="L3409" rel="#L3409">3409</span>
|
|
<span id="L3410" rel="#L3410">3410</span>
|
|
<span id="L3411" rel="#L3411">3411</span>
|
|
<span id="L3412" rel="#L3412">3412</span>
|
|
<span id="L3413" rel="#L3413">3413</span>
|
|
<span id="L3414" rel="#L3414">3414</span>
|
|
<span id="L3415" rel="#L3415">3415</span>
|
|
<span id="L3416" rel="#L3416">3416</span>
|
|
<span id="L3417" rel="#L3417">3417</span>
|
|
<span id="L3418" rel="#L3418">3418</span>
|
|
<span id="L3419" rel="#L3419">3419</span>
|
|
<span id="L3420" rel="#L3420">3420</span>
|
|
<span id="L3421" rel="#L3421">3421</span>
|
|
<span id="L3422" rel="#L3422">3422</span>
|
|
<span id="L3423" rel="#L3423">3423</span>
|
|
<span id="L3424" rel="#L3424">3424</span>
|
|
<span id="L3425" rel="#L3425">3425</span>
|
|
<span id="L3426" rel="#L3426">3426</span>
|
|
<span id="L3427" rel="#L3427">3427</span>
|
|
<span id="L3428" rel="#L3428">3428</span>
|
|
<span id="L3429" rel="#L3429">3429</span>
|
|
<span id="L3430" rel="#L3430">3430</span>
|
|
<span id="L3431" rel="#L3431">3431</span>
|
|
<span id="L3432" rel="#L3432">3432</span>
|
|
<span id="L3433" rel="#L3433">3433</span>
|
|
<span id="L3434" rel="#L3434">3434</span>
|
|
<span id="L3435" rel="#L3435">3435</span>
|
|
<span id="L3436" rel="#L3436">3436</span>
|
|
<span id="L3437" rel="#L3437">3437</span>
|
|
<span id="L3438" rel="#L3438">3438</span>
|
|
<span id="L3439" rel="#L3439">3439</span>
|
|
<span id="L3440" rel="#L3440">3440</span>
|
|
<span id="L3441" rel="#L3441">3441</span>
|
|
<span id="L3442" rel="#L3442">3442</span>
|
|
<span id="L3443" rel="#L3443">3443</span>
|
|
<span id="L3444" rel="#L3444">3444</span>
|
|
<span id="L3445" rel="#L3445">3445</span>
|
|
<span id="L3446" rel="#L3446">3446</span>
|
|
<span id="L3447" rel="#L3447">3447</span>
|
|
<span id="L3448" rel="#L3448">3448</span>
|
|
<span id="L3449" rel="#L3449">3449</span>
|
|
<span id="L3450" rel="#L3450">3450</span>
|
|
<span id="L3451" rel="#L3451">3451</span>
|
|
<span id="L3452" rel="#L3452">3452</span>
|
|
<span id="L3453" rel="#L3453">3453</span>
|
|
<span id="L3454" rel="#L3454">3454</span>
|
|
<span id="L3455" rel="#L3455">3455</span>
|
|
<span id="L3456" rel="#L3456">3456</span>
|
|
<span id="L3457" rel="#L3457">3457</span>
|
|
<span id="L3458" rel="#L3458">3458</span>
|
|
<span id="L3459" rel="#L3459">3459</span>
|
|
<span id="L3460" rel="#L3460">3460</span>
|
|
<span id="L3461" rel="#L3461">3461</span>
|
|
<span id="L3462" rel="#L3462">3462</span>
|
|
<span id="L3463" rel="#L3463">3463</span>
|
|
<span id="L3464" rel="#L3464">3464</span>
|
|
<span id="L3465" rel="#L3465">3465</span>
|
|
<span id="L3466" rel="#L3466">3466</span>
|
|
<span id="L3467" rel="#L3467">3467</span>
|
|
<span id="L3468" rel="#L3468">3468</span>
|
|
<span id="L3469" rel="#L3469">3469</span>
|
|
<span id="L3470" rel="#L3470">3470</span>
|
|
<span id="L3471" rel="#L3471">3471</span>
|
|
<span id="L3472" rel="#L3472">3472</span>
|
|
<span id="L3473" rel="#L3473">3473</span>
|
|
<span id="L3474" rel="#L3474">3474</span>
|
|
<span id="L3475" rel="#L3475">3475</span>
|
|
<span id="L3476" rel="#L3476">3476</span>
|
|
<span id="L3477" rel="#L3477">3477</span>
|
|
<span id="L3478" rel="#L3478">3478</span>
|
|
<span id="L3479" rel="#L3479">3479</span>
|
|
<span id="L3480" rel="#L3480">3480</span>
|
|
<span id="L3481" rel="#L3481">3481</span>
|
|
<span id="L3482" rel="#L3482">3482</span>
|
|
<span id="L3483" rel="#L3483">3483</span>
|
|
<span id="L3484" rel="#L3484">3484</span>
|
|
<span id="L3485" rel="#L3485">3485</span>
|
|
<span id="L3486" rel="#L3486">3486</span>
|
|
<span id="L3487" rel="#L3487">3487</span>
|
|
<span id="L3488" rel="#L3488">3488</span>
|
|
<span id="L3489" rel="#L3489">3489</span>
|
|
<span id="L3490" rel="#L3490">3490</span>
|
|
<span id="L3491" rel="#L3491">3491</span>
|
|
<span id="L3492" rel="#L3492">3492</span>
|
|
<span id="L3493" rel="#L3493">3493</span>
|
|
<span id="L3494" rel="#L3494">3494</span>
|
|
<span id="L3495" rel="#L3495">3495</span>
|
|
<span id="L3496" rel="#L3496">3496</span>
|
|
<span id="L3497" rel="#L3497">3497</span>
|
|
<span id="L3498" rel="#L3498">3498</span>
|
|
<span id="L3499" rel="#L3499">3499</span>
|
|
<span id="L3500" rel="#L3500">3500</span>
|
|
<span id="L3501" rel="#L3501">3501</span>
|
|
<span id="L3502" rel="#L3502">3502</span>
|
|
<span id="L3503" rel="#L3503">3503</span>
|
|
<span id="L3504" rel="#L3504">3504</span>
|
|
<span id="L3505" rel="#L3505">3505</span>
|
|
<span id="L3506" rel="#L3506">3506</span>
|
|
<span id="L3507" rel="#L3507">3507</span>
|
|
<span id="L3508" rel="#L3508">3508</span>
|
|
<span id="L3509" rel="#L3509">3509</span>
|
|
<span id="L3510" rel="#L3510">3510</span>
|
|
<span id="L3511" rel="#L3511">3511</span>
|
|
<span id="L3512" rel="#L3512">3512</span>
|
|
<span id="L3513" rel="#L3513">3513</span>
|
|
<span id="L3514" rel="#L3514">3514</span>
|
|
<span id="L3515" rel="#L3515">3515</span>
|
|
<span id="L3516" rel="#L3516">3516</span>
|
|
<span id="L3517" rel="#L3517">3517</span>
|
|
<span id="L3518" rel="#L3518">3518</span>
|
|
<span id="L3519" rel="#L3519">3519</span>
|
|
<span id="L3520" rel="#L3520">3520</span>
|
|
<span id="L3521" rel="#L3521">3521</span>
|
|
<span id="L3522" rel="#L3522">3522</span>
|
|
<span id="L3523" rel="#L3523">3523</span>
|
|
<span id="L3524" rel="#L3524">3524</span>
|
|
<span id="L3525" rel="#L3525">3525</span>
|
|
<span id="L3526" rel="#L3526">3526</span>
|
|
<span id="L3527" rel="#L3527">3527</span>
|
|
<span id="L3528" rel="#L3528">3528</span>
|
|
<span id="L3529" rel="#L3529">3529</span>
|
|
<span id="L3530" rel="#L3530">3530</span>
|
|
<span id="L3531" rel="#L3531">3531</span>
|
|
<span id="L3532" rel="#L3532">3532</span>
|
|
<span id="L3533" rel="#L3533">3533</span>
|
|
<span id="L3534" rel="#L3534">3534</span>
|
|
<span id="L3535" rel="#L3535">3535</span>
|
|
<span id="L3536" rel="#L3536">3536</span>
|
|
<span id="L3537" rel="#L3537">3537</span>
|
|
<span id="L3538" rel="#L3538">3538</span>
|
|
<span id="L3539" rel="#L3539">3539</span>
|
|
<span id="L3540" rel="#L3540">3540</span>
|
|
<span id="L3541" rel="#L3541">3541</span>
|
|
<span id="L3542" rel="#L3542">3542</span>
|
|
<span id="L3543" rel="#L3543">3543</span>
|
|
<span id="L3544" rel="#L3544">3544</span>
|
|
<span id="L3545" rel="#L3545">3545</span>
|
|
<span id="L3546" rel="#L3546">3546</span>
|
|
<span id="L3547" rel="#L3547">3547</span>
|
|
<span id="L3548" rel="#L3548">3548</span>
|
|
<span id="L3549" rel="#L3549">3549</span>
|
|
<span id="L3550" rel="#L3550">3550</span>
|
|
<span id="L3551" rel="#L3551">3551</span>
|
|
<span id="L3552" rel="#L3552">3552</span>
|
|
<span id="L3553" rel="#L3553">3553</span>
|
|
<span id="L3554" rel="#L3554">3554</span>
|
|
<span id="L3555" rel="#L3555">3555</span>
|
|
<span id="L3556" rel="#L3556">3556</span>
|
|
<span id="L3557" rel="#L3557">3557</span>
|
|
<span id="L3558" rel="#L3558">3558</span>
|
|
<span id="L3559" rel="#L3559">3559</span>
|
|
<span id="L3560" rel="#L3560">3560</span>
|
|
<span id="L3561" rel="#L3561">3561</span>
|
|
<span id="L3562" rel="#L3562">3562</span>
|
|
<span id="L3563" rel="#L3563">3563</span>
|
|
<span id="L3564" rel="#L3564">3564</span>
|
|
<span id="L3565" rel="#L3565">3565</span>
|
|
<span id="L3566" rel="#L3566">3566</span>
|
|
<span id="L3567" rel="#L3567">3567</span>
|
|
<span id="L3568" rel="#L3568">3568</span>
|
|
<span id="L3569" rel="#L3569">3569</span>
|
|
<span id="L3570" rel="#L3570">3570</span>
|
|
<span id="L3571" rel="#L3571">3571</span>
|
|
<span id="L3572" rel="#L3572">3572</span>
|
|
<span id="L3573" rel="#L3573">3573</span>
|
|
<span id="L3574" rel="#L3574">3574</span>
|
|
<span id="L3575" rel="#L3575">3575</span>
|
|
<span id="L3576" rel="#L3576">3576</span>
|
|
<span id="L3577" rel="#L3577">3577</span>
|
|
<span id="L3578" rel="#L3578">3578</span>
|
|
<span id="L3579" rel="#L3579">3579</span>
|
|
<span id="L3580" rel="#L3580">3580</span>
|
|
<span id="L3581" rel="#L3581">3581</span>
|
|
<span id="L3582" rel="#L3582">3582</span>
|
|
<span id="L3583" rel="#L3583">3583</span>
|
|
<span id="L3584" rel="#L3584">3584</span>
|
|
<span id="L3585" rel="#L3585">3585</span>
|
|
<span id="L3586" rel="#L3586">3586</span>
|
|
<span id="L3587" rel="#L3587">3587</span>
|
|
<span id="L3588" rel="#L3588">3588</span>
|
|
<span id="L3589" rel="#L3589">3589</span>
|
|
<span id="L3590" rel="#L3590">3590</span>
|
|
<span id="L3591" rel="#L3591">3591</span>
|
|
<span id="L3592" rel="#L3592">3592</span>
|
|
<span id="L3593" rel="#L3593">3593</span>
|
|
<span id="L3594" rel="#L3594">3594</span>
|
|
<span id="L3595" rel="#L3595">3595</span>
|
|
<span id="L3596" rel="#L3596">3596</span>
|
|
<span id="L3597" rel="#L3597">3597</span>
|
|
<span id="L3598" rel="#L3598">3598</span>
|
|
<span id="L3599" rel="#L3599">3599</span>
|
|
<span id="L3600" rel="#L3600">3600</span>
|
|
<span id="L3601" rel="#L3601">3601</span>
|
|
<span id="L3602" rel="#L3602">3602</span>
|
|
<span id="L3603" rel="#L3603">3603</span>
|
|
<span id="L3604" rel="#L3604">3604</span>
|
|
<span id="L3605" rel="#L3605">3605</span>
|
|
<span id="L3606" rel="#L3606">3606</span>
|
|
<span id="L3607" rel="#L3607">3607</span>
|
|
<span id="L3608" rel="#L3608">3608</span>
|
|
<span id="L3609" rel="#L3609">3609</span>
|
|
<span id="L3610" rel="#L3610">3610</span>
|
|
<span id="L3611" rel="#L3611">3611</span>
|
|
<span id="L3612" rel="#L3612">3612</span>
|
|
<span id="L3613" rel="#L3613">3613</span>
|
|
<span id="L3614" rel="#L3614">3614</span>
|
|
<span id="L3615" rel="#L3615">3615</span>
|
|
<span id="L3616" rel="#L3616">3616</span>
|
|
<span id="L3617" rel="#L3617">3617</span>
|
|
<span id="L3618" rel="#L3618">3618</span>
|
|
<span id="L3619" rel="#L3619">3619</span>
|
|
<span id="L3620" rel="#L3620">3620</span>
|
|
<span id="L3621" rel="#L3621">3621</span>
|
|
<span id="L3622" rel="#L3622">3622</span>
|
|
<span id="L3623" rel="#L3623">3623</span>
|
|
<span id="L3624" rel="#L3624">3624</span>
|
|
<span id="L3625" rel="#L3625">3625</span>
|
|
<span id="L3626" rel="#L3626">3626</span>
|
|
<span id="L3627" rel="#L3627">3627</span>
|
|
<span id="L3628" rel="#L3628">3628</span>
|
|
<span id="L3629" rel="#L3629">3629</span>
|
|
<span id="L3630" rel="#L3630">3630</span>
|
|
<span id="L3631" rel="#L3631">3631</span>
|
|
<span id="L3632" rel="#L3632">3632</span>
|
|
<span id="L3633" rel="#L3633">3633</span>
|
|
<span id="L3634" rel="#L3634">3634</span>
|
|
<span id="L3635" rel="#L3635">3635</span>
|
|
<span id="L3636" rel="#L3636">3636</span>
|
|
<span id="L3637" rel="#L3637">3637</span>
|
|
<span id="L3638" rel="#L3638">3638</span>
|
|
<span id="L3639" rel="#L3639">3639</span>
|
|
<span id="L3640" rel="#L3640">3640</span>
|
|
<span id="L3641" rel="#L3641">3641</span>
|
|
<span id="L3642" rel="#L3642">3642</span>
|
|
<span id="L3643" rel="#L3643">3643</span>
|
|
<span id="L3644" rel="#L3644">3644</span>
|
|
<span id="L3645" rel="#L3645">3645</span>
|
|
<span id="L3646" rel="#L3646">3646</span>
|
|
<span id="L3647" rel="#L3647">3647</span>
|
|
<span id="L3648" rel="#L3648">3648</span>
|
|
<span id="L3649" rel="#L3649">3649</span>
|
|
<span id="L3650" rel="#L3650">3650</span>
|
|
<span id="L3651" rel="#L3651">3651</span>
|
|
<span id="L3652" rel="#L3652">3652</span>
|
|
<span id="L3653" rel="#L3653">3653</span>
|
|
<span id="L3654" rel="#L3654">3654</span>
|
|
<span id="L3655" rel="#L3655">3655</span>
|
|
<span id="L3656" rel="#L3656">3656</span>
|
|
<span id="L3657" rel="#L3657">3657</span>
|
|
<span id="L3658" rel="#L3658">3658</span>
|
|
<span id="L3659" rel="#L3659">3659</span>
|
|
<span id="L3660" rel="#L3660">3660</span>
|
|
<span id="L3661" rel="#L3661">3661</span>
|
|
<span id="L3662" rel="#L3662">3662</span>
|
|
<span id="L3663" rel="#L3663">3663</span>
|
|
<span id="L3664" rel="#L3664">3664</span>
|
|
<span id="L3665" rel="#L3665">3665</span>
|
|
<span id="L3666" rel="#L3666">3666</span>
|
|
<span id="L3667" rel="#L3667">3667</span>
|
|
<span id="L3668" rel="#L3668">3668</span>
|
|
<span id="L3669" rel="#L3669">3669</span>
|
|
<span id="L3670" rel="#L3670">3670</span>
|
|
<span id="L3671" rel="#L3671">3671</span>
|
|
<span id="L3672" rel="#L3672">3672</span>
|
|
<span id="L3673" rel="#L3673">3673</span>
|
|
<span id="L3674" rel="#L3674">3674</span>
|
|
<span id="L3675" rel="#L3675">3675</span>
|
|
<span id="L3676" rel="#L3676">3676</span>
|
|
<span id="L3677" rel="#L3677">3677</span>
|
|
<span id="L3678" rel="#L3678">3678</span>
|
|
<span id="L3679" rel="#L3679">3679</span>
|
|
<span id="L3680" rel="#L3680">3680</span>
|
|
<span id="L3681" rel="#L3681">3681</span>
|
|
<span id="L3682" rel="#L3682">3682</span>
|
|
<span id="L3683" rel="#L3683">3683</span>
|
|
<span id="L3684" rel="#L3684">3684</span>
|
|
<span id="L3685" rel="#L3685">3685</span>
|
|
<span id="L3686" rel="#L3686">3686</span>
|
|
<span id="L3687" rel="#L3687">3687</span>
|
|
<span id="L3688" rel="#L3688">3688</span>
|
|
<span id="L3689" rel="#L3689">3689</span>
|
|
<span id="L3690" rel="#L3690">3690</span>
|
|
<span id="L3691" rel="#L3691">3691</span>
|
|
<span id="L3692" rel="#L3692">3692</span>
|
|
<span id="L3693" rel="#L3693">3693</span>
|
|
<span id="L3694" rel="#L3694">3694</span>
|
|
<span id="L3695" rel="#L3695">3695</span>
|
|
<span id="L3696" rel="#L3696">3696</span>
|
|
<span id="L3697" rel="#L3697">3697</span>
|
|
<span id="L3698" rel="#L3698">3698</span>
|
|
<span id="L3699" rel="#L3699">3699</span>
|
|
<span id="L3700" rel="#L3700">3700</span>
|
|
<span id="L3701" rel="#L3701">3701</span>
|
|
<span id="L3702" rel="#L3702">3702</span>
|
|
<span id="L3703" rel="#L3703">3703</span>
|
|
<span id="L3704" rel="#L3704">3704</span>
|
|
<span id="L3705" rel="#L3705">3705</span>
|
|
<span id="L3706" rel="#L3706">3706</span>
|
|
<span id="L3707" rel="#L3707">3707</span>
|
|
<span id="L3708" rel="#L3708">3708</span>
|
|
<span id="L3709" rel="#L3709">3709</span>
|
|
<span id="L3710" rel="#L3710">3710</span>
|
|
<span id="L3711" rel="#L3711">3711</span>
|
|
<span id="L3712" rel="#L3712">3712</span>
|
|
<span id="L3713" rel="#L3713">3713</span>
|
|
<span id="L3714" rel="#L3714">3714</span>
|
|
<span id="L3715" rel="#L3715">3715</span>
|
|
<span id="L3716" rel="#L3716">3716</span>
|
|
<span id="L3717" rel="#L3717">3717</span>
|
|
<span id="L3718" rel="#L3718">3718</span>
|
|
<span id="L3719" rel="#L3719">3719</span>
|
|
<span id="L3720" rel="#L3720">3720</span>
|
|
<span id="L3721" rel="#L3721">3721</span>
|
|
<span id="L3722" rel="#L3722">3722</span>
|
|
<span id="L3723" rel="#L3723">3723</span>
|
|
<span id="L3724" rel="#L3724">3724</span>
|
|
<span id="L3725" rel="#L3725">3725</span>
|
|
<span id="L3726" rel="#L3726">3726</span>
|
|
<span id="L3727" rel="#L3727">3727</span>
|
|
<span id="L3728" rel="#L3728">3728</span>
|
|
<span id="L3729" rel="#L3729">3729</span>
|
|
<span id="L3730" rel="#L3730">3730</span>
|
|
<span id="L3731" rel="#L3731">3731</span>
|
|
<span id="L3732" rel="#L3732">3732</span>
|
|
<span id="L3733" rel="#L3733">3733</span>
|
|
<span id="L3734" rel="#L3734">3734</span>
|
|
<span id="L3735" rel="#L3735">3735</span>
|
|
<span id="L3736" rel="#L3736">3736</span>
|
|
<span id="L3737" rel="#L3737">3737</span>
|
|
<span id="L3738" rel="#L3738">3738</span>
|
|
<span id="L3739" rel="#L3739">3739</span>
|
|
<span id="L3740" rel="#L3740">3740</span>
|
|
<span id="L3741" rel="#L3741">3741</span>
|
|
<span id="L3742" rel="#L3742">3742</span>
|
|
<span id="L3743" rel="#L3743">3743</span>
|
|
<span id="L3744" rel="#L3744">3744</span>
|
|
<span id="L3745" rel="#L3745">3745</span>
|
|
<span id="L3746" rel="#L3746">3746</span>
|
|
<span id="L3747" rel="#L3747">3747</span>
|
|
<span id="L3748" rel="#L3748">3748</span>
|
|
<span id="L3749" rel="#L3749">3749</span>
|
|
<span id="L3750" rel="#L3750">3750</span>
|
|
<span id="L3751" rel="#L3751">3751</span>
|
|
<span id="L3752" rel="#L3752">3752</span>
|
|
<span id="L3753" rel="#L3753">3753</span>
|
|
<span id="L3754" rel="#L3754">3754</span>
|
|
<span id="L3755" rel="#L3755">3755</span>
|
|
<span id="L3756" rel="#L3756">3756</span>
|
|
<span id="L3757" rel="#L3757">3757</span>
|
|
<span id="L3758" rel="#L3758">3758</span>
|
|
<span id="L3759" rel="#L3759">3759</span>
|
|
<span id="L3760" rel="#L3760">3760</span>
|
|
<span id="L3761" rel="#L3761">3761</span>
|
|
<span id="L3762" rel="#L3762">3762</span>
|
|
<span id="L3763" rel="#L3763">3763</span>
|
|
<span id="L3764" rel="#L3764">3764</span>
|
|
<span id="L3765" rel="#L3765">3765</span>
|
|
<span id="L3766" rel="#L3766">3766</span>
|
|
<span id="L3767" rel="#L3767">3767</span>
|
|
<span id="L3768" rel="#L3768">3768</span>
|
|
<span id="L3769" rel="#L3769">3769</span>
|
|
<span id="L3770" rel="#L3770">3770</span>
|
|
<span id="L3771" rel="#L3771">3771</span>
|
|
<span id="L3772" rel="#L3772">3772</span>
|
|
<span id="L3773" rel="#L3773">3773</span>
|
|
<span id="L3774" rel="#L3774">3774</span>
|
|
<span id="L3775" rel="#L3775">3775</span>
|
|
<span id="L3776" rel="#L3776">3776</span>
|
|
<span id="L3777" rel="#L3777">3777</span>
|
|
<span id="L3778" rel="#L3778">3778</span>
|
|
<span id="L3779" rel="#L3779">3779</span>
|
|
<span id="L3780" rel="#L3780">3780</span>
|
|
<span id="L3781" rel="#L3781">3781</span>
|
|
<span id="L3782" rel="#L3782">3782</span>
|
|
<span id="L3783" rel="#L3783">3783</span>
|
|
<span id="L3784" rel="#L3784">3784</span>
|
|
<span id="L3785" rel="#L3785">3785</span>
|
|
<span id="L3786" rel="#L3786">3786</span>
|
|
<span id="L3787" rel="#L3787">3787</span>
|
|
<span id="L3788" rel="#L3788">3788</span>
|
|
<span id="L3789" rel="#L3789">3789</span>
|
|
<span id="L3790" rel="#L3790">3790</span>
|
|
<span id="L3791" rel="#L3791">3791</span>
|
|
<span id="L3792" rel="#L3792">3792</span>
|
|
<span id="L3793" rel="#L3793">3793</span>
|
|
<span id="L3794" rel="#L3794">3794</span>
|
|
<span id="L3795" rel="#L3795">3795</span>
|
|
<span id="L3796" rel="#L3796">3796</span>
|
|
<span id="L3797" rel="#L3797">3797</span>
|
|
<span id="L3798" rel="#L3798">3798</span>
|
|
<span id="L3799" rel="#L3799">3799</span>
|
|
<span id="L3800" rel="#L3800">3800</span>
|
|
<span id="L3801" rel="#L3801">3801</span>
|
|
<span id="L3802" rel="#L3802">3802</span>
|
|
<span id="L3803" rel="#L3803">3803</span>
|
|
<span id="L3804" rel="#L3804">3804</span>
|
|
<span id="L3805" rel="#L3805">3805</span>
|
|
<span id="L3806" rel="#L3806">3806</span>
|
|
<span id="L3807" rel="#L3807">3807</span>
|
|
<span id="L3808" rel="#L3808">3808</span>
|
|
<span id="L3809" rel="#L3809">3809</span>
|
|
<span id="L3810" rel="#L3810">3810</span>
|
|
<span id="L3811" rel="#L3811">3811</span>
|
|
<span id="L3812" rel="#L3812">3812</span>
|
|
<span id="L3813" rel="#L3813">3813</span>
|
|
<span id="L3814" rel="#L3814">3814</span>
|
|
<span id="L3815" rel="#L3815">3815</span>
|
|
<span id="L3816" rel="#L3816">3816</span>
|
|
<span id="L3817" rel="#L3817">3817</span>
|
|
<span id="L3818" rel="#L3818">3818</span>
|
|
<span id="L3819" rel="#L3819">3819</span>
|
|
<span id="L3820" rel="#L3820">3820</span>
|
|
<span id="L3821" rel="#L3821">3821</span>
|
|
<span id="L3822" rel="#L3822">3822</span>
|
|
<span id="L3823" rel="#L3823">3823</span>
|
|
<span id="L3824" rel="#L3824">3824</span>
|
|
<span id="L3825" rel="#L3825">3825</span>
|
|
<span id="L3826" rel="#L3826">3826</span>
|
|
<span id="L3827" rel="#L3827">3827</span>
|
|
<span id="L3828" rel="#L3828">3828</span>
|
|
<span id="L3829" rel="#L3829">3829</span>
|
|
<span id="L3830" rel="#L3830">3830</span>
|
|
<span id="L3831" rel="#L3831">3831</span>
|
|
<span id="L3832" rel="#L3832">3832</span>
|
|
<span id="L3833" rel="#L3833">3833</span>
|
|
<span id="L3834" rel="#L3834">3834</span>
|
|
<span id="L3835" rel="#L3835">3835</span>
|
|
<span id="L3836" rel="#L3836">3836</span>
|
|
<span id="L3837" rel="#L3837">3837</span>
|
|
<span id="L3838" rel="#L3838">3838</span>
|
|
<span id="L3839" rel="#L3839">3839</span>
|
|
<span id="L3840" rel="#L3840">3840</span>
|
|
<span id="L3841" rel="#L3841">3841</span>
|
|
<span id="L3842" rel="#L3842">3842</span>
|
|
<span id="L3843" rel="#L3843">3843</span>
|
|
<span id="L3844" rel="#L3844">3844</span>
|
|
<span id="L3845" rel="#L3845">3845</span>
|
|
<span id="L3846" rel="#L3846">3846</span>
|
|
<span id="L3847" rel="#L3847">3847</span>
|
|
<span id="L3848" rel="#L3848">3848</span>
|
|
<span id="L3849" rel="#L3849">3849</span>
|
|
<span id="L3850" rel="#L3850">3850</span>
|
|
<span id="L3851" rel="#L3851">3851</span>
|
|
<span id="L3852" rel="#L3852">3852</span>
|
|
<span id="L3853" rel="#L3853">3853</span>
|
|
<span id="L3854" rel="#L3854">3854</span>
|
|
<span id="L3855" rel="#L3855">3855</span>
|
|
<span id="L3856" rel="#L3856">3856</span>
|
|
<span id="L3857" rel="#L3857">3857</span>
|
|
<span id="L3858" rel="#L3858">3858</span>
|
|
<span id="L3859" rel="#L3859">3859</span>
|
|
<span id="L3860" rel="#L3860">3860</span>
|
|
<span id="L3861" rel="#L3861">3861</span>
|
|
<span id="L3862" rel="#L3862">3862</span>
|
|
<span id="L3863" rel="#L3863">3863</span>
|
|
<span id="L3864" rel="#L3864">3864</span>
|
|
<span id="L3865" rel="#L3865">3865</span>
|
|
<span id="L3866" rel="#L3866">3866</span>
|
|
<span id="L3867" rel="#L3867">3867</span>
|
|
<span id="L3868" rel="#L3868">3868</span>
|
|
<span id="L3869" rel="#L3869">3869</span>
|
|
<span id="L3870" rel="#L3870">3870</span>
|
|
<span id="L3871" rel="#L3871">3871</span>
|
|
<span id="L3872" rel="#L3872">3872</span>
|
|
<span id="L3873" rel="#L3873">3873</span>
|
|
<span id="L3874" rel="#L3874">3874</span>
|
|
<span id="L3875" rel="#L3875">3875</span>
|
|
<span id="L3876" rel="#L3876">3876</span>
|
|
<span id="L3877" rel="#L3877">3877</span>
|
|
<span id="L3878" rel="#L3878">3878</span>
|
|
<span id="L3879" rel="#L3879">3879</span>
|
|
<span id="L3880" rel="#L3880">3880</span>
|
|
<span id="L3881" rel="#L3881">3881</span>
|
|
<span id="L3882" rel="#L3882">3882</span>
|
|
<span id="L3883" rel="#L3883">3883</span>
|
|
<span id="L3884" rel="#L3884">3884</span>
|
|
<span id="L3885" rel="#L3885">3885</span>
|
|
<span id="L3886" rel="#L3886">3886</span>
|
|
<span id="L3887" rel="#L3887">3887</span>
|
|
<span id="L3888" rel="#L3888">3888</span>
|
|
<span id="L3889" rel="#L3889">3889</span>
|
|
<span id="L3890" rel="#L3890">3890</span>
|
|
<span id="L3891" rel="#L3891">3891</span>
|
|
<span id="L3892" rel="#L3892">3892</span>
|
|
<span id="L3893" rel="#L3893">3893</span>
|
|
<span id="L3894" rel="#L3894">3894</span>
|
|
<span id="L3895" rel="#L3895">3895</span>
|
|
<span id="L3896" rel="#L3896">3896</span>
|
|
<span id="L3897" rel="#L3897">3897</span>
|
|
<span id="L3898" rel="#L3898">3898</span>
|
|
<span id="L3899" rel="#L3899">3899</span>
|
|
<span id="L3900" rel="#L3900">3900</span>
|
|
<span id="L3901" rel="#L3901">3901</span>
|
|
<span id="L3902" rel="#L3902">3902</span>
|
|
<span id="L3903" rel="#L3903">3903</span>
|
|
<span id="L3904" rel="#L3904">3904</span>
|
|
<span id="L3905" rel="#L3905">3905</span>
|
|
<span id="L3906" rel="#L3906">3906</span>
|
|
<span id="L3907" rel="#L3907">3907</span>
|
|
<span id="L3908" rel="#L3908">3908</span>
|
|
<span id="L3909" rel="#L3909">3909</span>
|
|
<span id="L3910" rel="#L3910">3910</span>
|
|
<span id="L3911" rel="#L3911">3911</span>
|
|
<span id="L3912" rel="#L3912">3912</span>
|
|
<span id="L3913" rel="#L3913">3913</span>
|
|
<span id="L3914" rel="#L3914">3914</span>
|
|
<span id="L3915" rel="#L3915">3915</span>
|
|
<span id="L3916" rel="#L3916">3916</span>
|
|
<span id="L3917" rel="#L3917">3917</span>
|
|
<span id="L3918" rel="#L3918">3918</span>
|
|
<span id="L3919" rel="#L3919">3919</span>
|
|
<span id="L3920" rel="#L3920">3920</span>
|
|
<span id="L3921" rel="#L3921">3921</span>
|
|
<span id="L3922" rel="#L3922">3922</span>
|
|
<span id="L3923" rel="#L3923">3923</span>
|
|
<span id="L3924" rel="#L3924">3924</span>
|
|
<span id="L3925" rel="#L3925">3925</span>
|
|
<span id="L3926" rel="#L3926">3926</span>
|
|
<span id="L3927" rel="#L3927">3927</span>
|
|
<span id="L3928" rel="#L3928">3928</span>
|
|
<span id="L3929" rel="#L3929">3929</span>
|
|
<span id="L3930" rel="#L3930">3930</span>
|
|
<span id="L3931" rel="#L3931">3931</span>
|
|
<span id="L3932" rel="#L3932">3932</span>
|
|
<span id="L3933" rel="#L3933">3933</span>
|
|
<span id="L3934" rel="#L3934">3934</span>
|
|
<span id="L3935" rel="#L3935">3935</span>
|
|
<span id="L3936" rel="#L3936">3936</span>
|
|
<span id="L3937" rel="#L3937">3937</span>
|
|
<span id="L3938" rel="#L3938">3938</span>
|
|
<span id="L3939" rel="#L3939">3939</span>
|
|
<span id="L3940" rel="#L3940">3940</span>
|
|
<span id="L3941" rel="#L3941">3941</span>
|
|
<span id="L3942" rel="#L3942">3942</span>
|
|
<span id="L3943" rel="#L3943">3943</span>
|
|
<span id="L3944" rel="#L3944">3944</span>
|
|
<span id="L3945" rel="#L3945">3945</span>
|
|
<span id="L3946" rel="#L3946">3946</span>
|
|
<span id="L3947" rel="#L3947">3947</span>
|
|
<span id="L3948" rel="#L3948">3948</span>
|
|
<span id="L3949" rel="#L3949">3949</span>
|
|
<span id="L3950" rel="#L3950">3950</span>
|
|
<span id="L3951" rel="#L3951">3951</span>
|
|
<span id="L3952" rel="#L3952">3952</span>
|
|
<span id="L3953" rel="#L3953">3953</span>
|
|
<span id="L3954" rel="#L3954">3954</span>
|
|
<span id="L3955" rel="#L3955">3955</span>
|
|
<span id="L3956" rel="#L3956">3956</span>
|
|
<span id="L3957" rel="#L3957">3957</span>
|
|
<span id="L3958" rel="#L3958">3958</span>
|
|
<span id="L3959" rel="#L3959">3959</span>
|
|
<span id="L3960" rel="#L3960">3960</span>
|
|
<span id="L3961" rel="#L3961">3961</span>
|
|
<span id="L3962" rel="#L3962">3962</span>
|
|
<span id="L3963" rel="#L3963">3963</span>
|
|
<span id="L3964" rel="#L3964">3964</span>
|
|
<span id="L3965" rel="#L3965">3965</span>
|
|
<span id="L3966" rel="#L3966">3966</span>
|
|
<span id="L3967" rel="#L3967">3967</span>
|
|
<span id="L3968" rel="#L3968">3968</span>
|
|
<span id="L3969" rel="#L3969">3969</span>
|
|
<span id="L3970" rel="#L3970">3970</span>
|
|
<span id="L3971" rel="#L3971">3971</span>
|
|
<span id="L3972" rel="#L3972">3972</span>
|
|
<span id="L3973" rel="#L3973">3973</span>
|
|
<span id="L3974" rel="#L3974">3974</span>
|
|
<span id="L3975" rel="#L3975">3975</span>
|
|
<span id="L3976" rel="#L3976">3976</span>
|
|
<span id="L3977" rel="#L3977">3977</span>
|
|
<span id="L3978" rel="#L3978">3978</span>
|
|
<span id="L3979" rel="#L3979">3979</span>
|
|
<span id="L3980" rel="#L3980">3980</span>
|
|
<span id="L3981" rel="#L3981">3981</span>
|
|
<span id="L3982" rel="#L3982">3982</span>
|
|
<span id="L3983" rel="#L3983">3983</span>
|
|
<span id="L3984" rel="#L3984">3984</span>
|
|
<span id="L3985" rel="#L3985">3985</span>
|
|
<span id="L3986" rel="#L3986">3986</span>
|
|
<span id="L3987" rel="#L3987">3987</span>
|
|
<span id="L3988" rel="#L3988">3988</span>
|
|
<span id="L3989" rel="#L3989">3989</span>
|
|
<span id="L3990" rel="#L3990">3990</span>
|
|
<span id="L3991" rel="#L3991">3991</span>
|
|
<span id="L3992" rel="#L3992">3992</span>
|
|
<span id="L3993" rel="#L3993">3993</span>
|
|
<span id="L3994" rel="#L3994">3994</span>
|
|
<span id="L3995" rel="#L3995">3995</span>
|
|
<span id="L3996" rel="#L3996">3996</span>
|
|
<span id="L3997" rel="#L3997">3997</span>
|
|
<span id="L3998" rel="#L3998">3998</span>
|
|
<span id="L3999" rel="#L3999">3999</span>
|
|
<span id="L4000" rel="#L4000">4000</span>
|
|
<span id="L4001" rel="#L4001">4001</span>
|
|
<span id="L4002" rel="#L4002">4002</span>
|
|
<span id="L4003" rel="#L4003">4003</span>
|
|
<span id="L4004" rel="#L4004">4004</span>
|
|
<span id="L4005" rel="#L4005">4005</span>
|
|
<span id="L4006" rel="#L4006">4006</span>
|
|
<span id="L4007" rel="#L4007">4007</span>
|
|
<span id="L4008" rel="#L4008">4008</span>
|
|
<span id="L4009" rel="#L4009">4009</span>
|
|
<span id="L4010" rel="#L4010">4010</span>
|
|
<span id="L4011" rel="#L4011">4011</span>
|
|
<span id="L4012" rel="#L4012">4012</span>
|
|
<span id="L4013" rel="#L4013">4013</span>
|
|
<span id="L4014" rel="#L4014">4014</span>
|
|
<span id="L4015" rel="#L4015">4015</span>
|
|
<span id="L4016" rel="#L4016">4016</span>
|
|
<span id="L4017" rel="#L4017">4017</span>
|
|
<span id="L4018" rel="#L4018">4018</span>
|
|
<span id="L4019" rel="#L4019">4019</span>
|
|
<span id="L4020" rel="#L4020">4020</span>
|
|
<span id="L4021" rel="#L4021">4021</span>
|
|
<span id="L4022" rel="#L4022">4022</span>
|
|
<span id="L4023" rel="#L4023">4023</span>
|
|
<span id="L4024" rel="#L4024">4024</span>
|
|
<span id="L4025" rel="#L4025">4025</span>
|
|
<span id="L4026" rel="#L4026">4026</span>
|
|
<span id="L4027" rel="#L4027">4027</span>
|
|
<span id="L4028" rel="#L4028">4028</span>
|
|
<span id="L4029" rel="#L4029">4029</span>
|
|
<span id="L4030" rel="#L4030">4030</span>
|
|
<span id="L4031" rel="#L4031">4031</span>
|
|
<span id="L4032" rel="#L4032">4032</span>
|
|
<span id="L4033" rel="#L4033">4033</span>
|
|
<span id="L4034" rel="#L4034">4034</span>
|
|
<span id="L4035" rel="#L4035">4035</span>
|
|
<span id="L4036" rel="#L4036">4036</span>
|
|
<span id="L4037" rel="#L4037">4037</span>
|
|
<span id="L4038" rel="#L4038">4038</span>
|
|
<span id="L4039" rel="#L4039">4039</span>
|
|
<span id="L4040" rel="#L4040">4040</span>
|
|
<span id="L4041" rel="#L4041">4041</span>
|
|
<span id="L4042" rel="#L4042">4042</span>
|
|
<span id="L4043" rel="#L4043">4043</span>
|
|
<span id="L4044" rel="#L4044">4044</span>
|
|
<span id="L4045" rel="#L4045">4045</span>
|
|
<span id="L4046" rel="#L4046">4046</span>
|
|
<span id="L4047" rel="#L4047">4047</span>
|
|
<span id="L4048" rel="#L4048">4048</span>
|
|
<span id="L4049" rel="#L4049">4049</span>
|
|
<span id="L4050" rel="#L4050">4050</span>
|
|
<span id="L4051" rel="#L4051">4051</span>
|
|
<span id="L4052" rel="#L4052">4052</span>
|
|
<span id="L4053" rel="#L4053">4053</span>
|
|
<span id="L4054" rel="#L4054">4054</span>
|
|
<span id="L4055" rel="#L4055">4055</span>
|
|
<span id="L4056" rel="#L4056">4056</span>
|
|
<span id="L4057" rel="#L4057">4057</span>
|
|
<span id="L4058" rel="#L4058">4058</span>
|
|
<span id="L4059" rel="#L4059">4059</span>
|
|
<span id="L4060" rel="#L4060">4060</span>
|
|
<span id="L4061" rel="#L4061">4061</span>
|
|
<span id="L4062" rel="#L4062">4062</span>
|
|
<span id="L4063" rel="#L4063">4063</span>
|
|
<span id="L4064" rel="#L4064">4064</span>
|
|
<span id="L4065" rel="#L4065">4065</span>
|
|
<span id="L4066" rel="#L4066">4066</span>
|
|
<span id="L4067" rel="#L4067">4067</span>
|
|
<span id="L4068" rel="#L4068">4068</span>
|
|
<span id="L4069" rel="#L4069">4069</span>
|
|
<span id="L4070" rel="#L4070">4070</span>
|
|
<span id="L4071" rel="#L4071">4071</span>
|
|
<span id="L4072" rel="#L4072">4072</span>
|
|
<span id="L4073" rel="#L4073">4073</span>
|
|
<span id="L4074" rel="#L4074">4074</span>
|
|
<span id="L4075" rel="#L4075">4075</span>
|
|
<span id="L4076" rel="#L4076">4076</span>
|
|
<span id="L4077" rel="#L4077">4077</span>
|
|
<span id="L4078" rel="#L4078">4078</span>
|
|
<span id="L4079" rel="#L4079">4079</span>
|
|
<span id="L4080" rel="#L4080">4080</span>
|
|
<span id="L4081" rel="#L4081">4081</span>
|
|
<span id="L4082" rel="#L4082">4082</span>
|
|
<span id="L4083" rel="#L4083">4083</span>
|
|
<span id="L4084" rel="#L4084">4084</span>
|
|
<span id="L4085" rel="#L4085">4085</span>
|
|
<span id="L4086" rel="#L4086">4086</span>
|
|
<span id="L4087" rel="#L4087">4087</span>
|
|
<span id="L4088" rel="#L4088">4088</span>
|
|
<span id="L4089" rel="#L4089">4089</span>
|
|
<span id="L4090" rel="#L4090">4090</span>
|
|
<span id="L4091" rel="#L4091">4091</span>
|
|
<span id="L4092" rel="#L4092">4092</span>
|
|
<span id="L4093" rel="#L4093">4093</span>
|
|
<span id="L4094" rel="#L4094">4094</span>
|
|
<span id="L4095" rel="#L4095">4095</span>
|
|
<span id="L4096" rel="#L4096">4096</span>
|
|
<span id="L4097" rel="#L4097">4097</span>
|
|
<span id="L4098" rel="#L4098">4098</span>
|
|
<span id="L4099" rel="#L4099">4099</span>
|
|
<span id="L4100" rel="#L4100">4100</span>
|
|
<span id="L4101" rel="#L4101">4101</span>
|
|
<span id="L4102" rel="#L4102">4102</span>
|
|
<span id="L4103" rel="#L4103">4103</span>
|
|
<span id="L4104" rel="#L4104">4104</span>
|
|
<span id="L4105" rel="#L4105">4105</span>
|
|
<span id="L4106" rel="#L4106">4106</span>
|
|
<span id="L4107" rel="#L4107">4107</span>
|
|
<span id="L4108" rel="#L4108">4108</span>
|
|
<span id="L4109" rel="#L4109">4109</span>
|
|
<span id="L4110" rel="#L4110">4110</span>
|
|
<span id="L4111" rel="#L4111">4111</span>
|
|
<span id="L4112" rel="#L4112">4112</span>
|
|
<span id="L4113" rel="#L4113">4113</span>
|
|
<span id="L4114" rel="#L4114">4114</span>
|
|
<span id="L4115" rel="#L4115">4115</span>
|
|
<span id="L4116" rel="#L4116">4116</span>
|
|
<span id="L4117" rel="#L4117">4117</span>
|
|
<span id="L4118" rel="#L4118">4118</span>
|
|
<span id="L4119" rel="#L4119">4119</span>
|
|
<span id="L4120" rel="#L4120">4120</span>
|
|
<span id="L4121" rel="#L4121">4121</span>
|
|
<span id="L4122" rel="#L4122">4122</span>
|
|
<span id="L4123" rel="#L4123">4123</span>
|
|
<span id="L4124" rel="#L4124">4124</span>
|
|
<span id="L4125" rel="#L4125">4125</span>
|
|
<span id="L4126" rel="#L4126">4126</span>
|
|
<span id="L4127" rel="#L4127">4127</span>
|
|
<span id="L4128" rel="#L4128">4128</span>
|
|
<span id="L4129" rel="#L4129">4129</span>
|
|
<span id="L4130" rel="#L4130">4130</span>
|
|
<span id="L4131" rel="#L4131">4131</span>
|
|
<span id="L4132" rel="#L4132">4132</span>
|
|
<span id="L4133" rel="#L4133">4133</span>
|
|
<span id="L4134" rel="#L4134">4134</span>
|
|
<span id="L4135" rel="#L4135">4135</span>
|
|
<span id="L4136" rel="#L4136">4136</span>
|
|
<span id="L4137" rel="#L4137">4137</span>
|
|
<span id="L4138" rel="#L4138">4138</span>
|
|
<span id="L4139" rel="#L4139">4139</span>
|
|
<span id="L4140" rel="#L4140">4140</span>
|
|
<span id="L4141" rel="#L4141">4141</span>
|
|
<span id="L4142" rel="#L4142">4142</span>
|
|
<span id="L4143" rel="#L4143">4143</span>
|
|
<span id="L4144" rel="#L4144">4144</span>
|
|
<span id="L4145" rel="#L4145">4145</span>
|
|
<span id="L4146" rel="#L4146">4146</span>
|
|
<span id="L4147" rel="#L4147">4147</span>
|
|
<span id="L4148" rel="#L4148">4148</span>
|
|
<span id="L4149" rel="#L4149">4149</span>
|
|
<span id="L4150" rel="#L4150">4150</span>
|
|
<span id="L4151" rel="#L4151">4151</span>
|
|
<span id="L4152" rel="#L4152">4152</span>
|
|
<span id="L4153" rel="#L4153">4153</span>
|
|
<span id="L4154" rel="#L4154">4154</span>
|
|
<span id="L4155" rel="#L4155">4155</span>
|
|
<span id="L4156" rel="#L4156">4156</span>
|
|
<span id="L4157" rel="#L4157">4157</span>
|
|
<span id="L4158" rel="#L4158">4158</span>
|
|
<span id="L4159" rel="#L4159">4159</span>
|
|
<span id="L4160" rel="#L4160">4160</span>
|
|
<span id="L4161" rel="#L4161">4161</span>
|
|
<span id="L4162" rel="#L4162">4162</span>
|
|
<span id="L4163" rel="#L4163">4163</span>
|
|
<span id="L4164" rel="#L4164">4164</span>
|
|
<span id="L4165" rel="#L4165">4165</span>
|
|
<span id="L4166" rel="#L4166">4166</span>
|
|
<span id="L4167" rel="#L4167">4167</span>
|
|
<span id="L4168" rel="#L4168">4168</span>
|
|
<span id="L4169" rel="#L4169">4169</span>
|
|
<span id="L4170" rel="#L4170">4170</span>
|
|
<span id="L4171" rel="#L4171">4171</span>
|
|
<span id="L4172" rel="#L4172">4172</span>
|
|
<span id="L4173" rel="#L4173">4173</span>
|
|
<span id="L4174" rel="#L4174">4174</span>
|
|
<span id="L4175" rel="#L4175">4175</span>
|
|
<span id="L4176" rel="#L4176">4176</span>
|
|
<span id="L4177" rel="#L4177">4177</span>
|
|
<span id="L4178" rel="#L4178">4178</span>
|
|
<span id="L4179" rel="#L4179">4179</span>
|
|
<span id="L4180" rel="#L4180">4180</span>
|
|
<span id="L4181" rel="#L4181">4181</span>
|
|
<span id="L4182" rel="#L4182">4182</span>
|
|
<span id="L4183" rel="#L4183">4183</span>
|
|
<span id="L4184" rel="#L4184">4184</span>
|
|
<span id="L4185" rel="#L4185">4185</span>
|
|
<span id="L4186" rel="#L4186">4186</span>
|
|
<span id="L4187" rel="#L4187">4187</span>
|
|
<span id="L4188" rel="#L4188">4188</span>
|
|
<span id="L4189" rel="#L4189">4189</span>
|
|
<span id="L4190" rel="#L4190">4190</span>
|
|
<span id="L4191" rel="#L4191">4191</span>
|
|
<span id="L4192" rel="#L4192">4192</span>
|
|
<span id="L4193" rel="#L4193">4193</span>
|
|
<span id="L4194" rel="#L4194">4194</span>
|
|
<span id="L4195" rel="#L4195">4195</span>
|
|
<span id="L4196" rel="#L4196">4196</span>
|
|
<span id="L4197" rel="#L4197">4197</span>
|
|
<span id="L4198" rel="#L4198">4198</span>
|
|
<span id="L4199" rel="#L4199">4199</span>
|
|
<span id="L4200" rel="#L4200">4200</span>
|
|
<span id="L4201" rel="#L4201">4201</span>
|
|
<span id="L4202" rel="#L4202">4202</span>
|
|
<span id="L4203" rel="#L4203">4203</span>
|
|
<span id="L4204" rel="#L4204">4204</span>
|
|
<span id="L4205" rel="#L4205">4205</span>
|
|
<span id="L4206" rel="#L4206">4206</span>
|
|
<span id="L4207" rel="#L4207">4207</span>
|
|
<span id="L4208" rel="#L4208">4208</span>
|
|
<span id="L4209" rel="#L4209">4209</span>
|
|
<span id="L4210" rel="#L4210">4210</span>
|
|
<span id="L4211" rel="#L4211">4211</span>
|
|
<span id="L4212" rel="#L4212">4212</span>
|
|
<span id="L4213" rel="#L4213">4213</span>
|
|
<span id="L4214" rel="#L4214">4214</span>
|
|
<span id="L4215" rel="#L4215">4215</span>
|
|
<span id="L4216" rel="#L4216">4216</span>
|
|
<span id="L4217" rel="#L4217">4217</span>
|
|
<span id="L4218" rel="#L4218">4218</span>
|
|
<span id="L4219" rel="#L4219">4219</span>
|
|
<span id="L4220" rel="#L4220">4220</span>
|
|
<span id="L4221" rel="#L4221">4221</span>
|
|
<span id="L4222" rel="#L4222">4222</span>
|
|
<span id="L4223" rel="#L4223">4223</span>
|
|
<span id="L4224" rel="#L4224">4224</span>
|
|
<span id="L4225" rel="#L4225">4225</span>
|
|
<span id="L4226" rel="#L4226">4226</span>
|
|
<span id="L4227" rel="#L4227">4227</span>
|
|
<span id="L4228" rel="#L4228">4228</span>
|
|
<span id="L4229" rel="#L4229">4229</span>
|
|
<span id="L4230" rel="#L4230">4230</span>
|
|
<span id="L4231" rel="#L4231">4231</span>
|
|
<span id="L4232" rel="#L4232">4232</span>
|
|
<span id="L4233" rel="#L4233">4233</span>
|
|
<span id="L4234" rel="#L4234">4234</span>
|
|
<span id="L4235" rel="#L4235">4235</span>
|
|
<span id="L4236" rel="#L4236">4236</span>
|
|
<span id="L4237" rel="#L4237">4237</span>
|
|
<span id="L4238" rel="#L4238">4238</span>
|
|
<span id="L4239" rel="#L4239">4239</span>
|
|
<span id="L4240" rel="#L4240">4240</span>
|
|
<span id="L4241" rel="#L4241">4241</span>
|
|
<span id="L4242" rel="#L4242">4242</span>
|
|
<span id="L4243" rel="#L4243">4243</span>
|
|
<span id="L4244" rel="#L4244">4244</span>
|
|
<span id="L4245" rel="#L4245">4245</span>
|
|
<span id="L4246" rel="#L4246">4246</span>
|
|
<span id="L4247" rel="#L4247">4247</span>
|
|
<span id="L4248" rel="#L4248">4248</span>
|
|
<span id="L4249" rel="#L4249">4249</span>
|
|
<span id="L4250" rel="#L4250">4250</span>
|
|
<span id="L4251" rel="#L4251">4251</span>
|
|
<span id="L4252" rel="#L4252">4252</span>
|
|
<span id="L4253" rel="#L4253">4253</span>
|
|
<span id="L4254" rel="#L4254">4254</span>
|
|
<span id="L4255" rel="#L4255">4255</span>
|
|
<span id="L4256" rel="#L4256">4256</span>
|
|
<span id="L4257" rel="#L4257">4257</span>
|
|
<span id="L4258" rel="#L4258">4258</span>
|
|
<span id="L4259" rel="#L4259">4259</span>
|
|
<span id="L4260" rel="#L4260">4260</span>
|
|
<span id="L4261" rel="#L4261">4261</span>
|
|
<span id="L4262" rel="#L4262">4262</span>
|
|
<span id="L4263" rel="#L4263">4263</span>
|
|
<span id="L4264" rel="#L4264">4264</span>
|
|
<span id="L4265" rel="#L4265">4265</span>
|
|
<span id="L4266" rel="#L4266">4266</span>
|
|
<span id="L4267" rel="#L4267">4267</span>
|
|
<span id="L4268" rel="#L4268">4268</span>
|
|
<span id="L4269" rel="#L4269">4269</span>
|
|
<span id="L4270" rel="#L4270">4270</span>
|
|
<span id="L4271" rel="#L4271">4271</span>
|
|
<span id="L4272" rel="#L4272">4272</span>
|
|
<span id="L4273" rel="#L4273">4273</span>
|
|
<span id="L4274" rel="#L4274">4274</span>
|
|
<span id="L4275" rel="#L4275">4275</span>
|
|
<span id="L4276" rel="#L4276">4276</span>
|
|
<span id="L4277" rel="#L4277">4277</span>
|
|
<span id="L4278" rel="#L4278">4278</span>
|
|
<span id="L4279" rel="#L4279">4279</span>
|
|
<span id="L4280" rel="#L4280">4280</span>
|
|
<span id="L4281" rel="#L4281">4281</span>
|
|
<span id="L4282" rel="#L4282">4282</span>
|
|
<span id="L4283" rel="#L4283">4283</span>
|
|
<span id="L4284" rel="#L4284">4284</span>
|
|
<span id="L4285" rel="#L4285">4285</span>
|
|
<span id="L4286" rel="#L4286">4286</span>
|
|
<span id="L4287" rel="#L4287">4287</span>
|
|
<span id="L4288" rel="#L4288">4288</span>
|
|
<span id="L4289" rel="#L4289">4289</span>
|
|
<span id="L4290" rel="#L4290">4290</span>
|
|
<span id="L4291" rel="#L4291">4291</span>
|
|
<span id="L4292" rel="#L4292">4292</span>
|
|
<span id="L4293" rel="#L4293">4293</span>
|
|
<span id="L4294" rel="#L4294">4294</span>
|
|
<span id="L4295" rel="#L4295">4295</span>
|
|
<span id="L4296" rel="#L4296">4296</span>
|
|
<span id="L4297" rel="#L4297">4297</span>
|
|
<span id="L4298" rel="#L4298">4298</span>
|
|
<span id="L4299" rel="#L4299">4299</span>
|
|
<span id="L4300" rel="#L4300">4300</span>
|
|
<span id="L4301" rel="#L4301">4301</span>
|
|
<span id="L4302" rel="#L4302">4302</span>
|
|
<span id="L4303" rel="#L4303">4303</span>
|
|
<span id="L4304" rel="#L4304">4304</span>
|
|
<span id="L4305" rel="#L4305">4305</span>
|
|
<span id="L4306" rel="#L4306">4306</span>
|
|
<span id="L4307" rel="#L4307">4307</span>
|
|
<span id="L4308" rel="#L4308">4308</span>
|
|
<span id="L4309" rel="#L4309">4309</span>
|
|
<span id="L4310" rel="#L4310">4310</span>
|
|
<span id="L4311" rel="#L4311">4311</span>
|
|
<span id="L4312" rel="#L4312">4312</span>
|
|
<span id="L4313" rel="#L4313">4313</span>
|
|
<span id="L4314" rel="#L4314">4314</span>
|
|
<span id="L4315" rel="#L4315">4315</span>
|
|
<span id="L4316" rel="#L4316">4316</span>
|
|
<span id="L4317" rel="#L4317">4317</span>
|
|
<span id="L4318" rel="#L4318">4318</span>
|
|
<span id="L4319" rel="#L4319">4319</span>
|
|
<span id="L4320" rel="#L4320">4320</span>
|
|
<span id="L4321" rel="#L4321">4321</span>
|
|
<span id="L4322" rel="#L4322">4322</span>
|
|
<span id="L4323" rel="#L4323">4323</span>
|
|
<span id="L4324" rel="#L4324">4324</span>
|
|
<span id="L4325" rel="#L4325">4325</span>
|
|
<span id="L4326" rel="#L4326">4326</span>
|
|
<span id="L4327" rel="#L4327">4327</span>
|
|
<span id="L4328" rel="#L4328">4328</span>
|
|
<span id="L4329" rel="#L4329">4329</span>
|
|
<span id="L4330" rel="#L4330">4330</span>
|
|
<span id="L4331" rel="#L4331">4331</span>
|
|
<span id="L4332" rel="#L4332">4332</span>
|
|
<span id="L4333" rel="#L4333">4333</span>
|
|
<span id="L4334" rel="#L4334">4334</span>
|
|
<span id="L4335" rel="#L4335">4335</span>
|
|
<span id="L4336" rel="#L4336">4336</span>
|
|
<span id="L4337" rel="#L4337">4337</span>
|
|
<span id="L4338" rel="#L4338">4338</span>
|
|
<span id="L4339" rel="#L4339">4339</span>
|
|
<span id="L4340" rel="#L4340">4340</span>
|
|
<span id="L4341" rel="#L4341">4341</span>
|
|
<span id="L4342" rel="#L4342">4342</span>
|
|
<span id="L4343" rel="#L4343">4343</span>
|
|
<span id="L4344" rel="#L4344">4344</span>
|
|
<span id="L4345" rel="#L4345">4345</span>
|
|
<span id="L4346" rel="#L4346">4346</span>
|
|
<span id="L4347" rel="#L4347">4347</span>
|
|
<span id="L4348" rel="#L4348">4348</span>
|
|
<span id="L4349" rel="#L4349">4349</span>
|
|
<span id="L4350" rel="#L4350">4350</span>
|
|
<span id="L4351" rel="#L4351">4351</span>
|
|
<span id="L4352" rel="#L4352">4352</span>
|
|
<span id="L4353" rel="#L4353">4353</span>
|
|
<span id="L4354" rel="#L4354">4354</span>
|
|
<span id="L4355" rel="#L4355">4355</span>
|
|
<span id="L4356" rel="#L4356">4356</span>
|
|
<span id="L4357" rel="#L4357">4357</span>
|
|
<span id="L4358" rel="#L4358">4358</span>
|
|
<span id="L4359" rel="#L4359">4359</span>
|
|
<span id="L4360" rel="#L4360">4360</span>
|
|
<span id="L4361" rel="#L4361">4361</span>
|
|
<span id="L4362" rel="#L4362">4362</span>
|
|
<span id="L4363" rel="#L4363">4363</span>
|
|
<span id="L4364" rel="#L4364">4364</span>
|
|
<span id="L4365" rel="#L4365">4365</span>
|
|
<span id="L4366" rel="#L4366">4366</span>
|
|
<span id="L4367" rel="#L4367">4367</span>
|
|
<span id="L4368" rel="#L4368">4368</span>
|
|
<span id="L4369" rel="#L4369">4369</span>
|
|
<span id="L4370" rel="#L4370">4370</span>
|
|
<span id="L4371" rel="#L4371">4371</span>
|
|
<span id="L4372" rel="#L4372">4372</span>
|
|
<span id="L4373" rel="#L4373">4373</span>
|
|
<span id="L4374" rel="#L4374">4374</span>
|
|
<span id="L4375" rel="#L4375">4375</span>
|
|
<span id="L4376" rel="#L4376">4376</span>
|
|
<span id="L4377" rel="#L4377">4377</span>
|
|
<span id="L4378" rel="#L4378">4378</span>
|
|
<span id="L4379" rel="#L4379">4379</span>
|
|
<span id="L4380" rel="#L4380">4380</span>
|
|
<span id="L4381" rel="#L4381">4381</span>
|
|
<span id="L4382" rel="#L4382">4382</span>
|
|
<span id="L4383" rel="#L4383">4383</span>
|
|
<span id="L4384" rel="#L4384">4384</span>
|
|
<span id="L4385" rel="#L4385">4385</span>
|
|
<span id="L4386" rel="#L4386">4386</span>
|
|
<span id="L4387" rel="#L4387">4387</span>
|
|
<span id="L4388" rel="#L4388">4388</span>
|
|
<span id="L4389" rel="#L4389">4389</span>
|
|
<span id="L4390" rel="#L4390">4390</span>
|
|
<span id="L4391" rel="#L4391">4391</span>
|
|
<span id="L4392" rel="#L4392">4392</span>
|
|
<span id="L4393" rel="#L4393">4393</span>
|
|
<span id="L4394" rel="#L4394">4394</span>
|
|
<span id="L4395" rel="#L4395">4395</span>
|
|
<span id="L4396" rel="#L4396">4396</span>
|
|
<span id="L4397" rel="#L4397">4397</span>
|
|
<span id="L4398" rel="#L4398">4398</span>
|
|
<span id="L4399" rel="#L4399">4399</span>
|
|
<span id="L4400" rel="#L4400">4400</span>
|
|
<span id="L4401" rel="#L4401">4401</span>
|
|
<span id="L4402" rel="#L4402">4402</span>
|
|
<span id="L4403" rel="#L4403">4403</span>
|
|
<span id="L4404" rel="#L4404">4404</span>
|
|
<span id="L4405" rel="#L4405">4405</span>
|
|
<span id="L4406" rel="#L4406">4406</span>
|
|
<span id="L4407" rel="#L4407">4407</span>
|
|
<span id="L4408" rel="#L4408">4408</span>
|
|
<span id="L4409" rel="#L4409">4409</span>
|
|
<span id="L4410" rel="#L4410">4410</span>
|
|
<span id="L4411" rel="#L4411">4411</span>
|
|
<span id="L4412" rel="#L4412">4412</span>
|
|
<span id="L4413" rel="#L4413">4413</span>
|
|
<span id="L4414" rel="#L4414">4414</span>
|
|
<span id="L4415" rel="#L4415">4415</span>
|
|
<span id="L4416" rel="#L4416">4416</span>
|
|
<span id="L4417" rel="#L4417">4417</span>
|
|
<span id="L4418" rel="#L4418">4418</span>
|
|
<span id="L4419" rel="#L4419">4419</span>
|
|
<span id="L4420" rel="#L4420">4420</span>
|
|
<span id="L4421" rel="#L4421">4421</span>
|
|
<span id="L4422" rel="#L4422">4422</span>
|
|
<span id="L4423" rel="#L4423">4423</span>
|
|
<span id="L4424" rel="#L4424">4424</span>
|
|
<span id="L4425" rel="#L4425">4425</span>
|
|
<span id="L4426" rel="#L4426">4426</span>
|
|
<span id="L4427" rel="#L4427">4427</span>
|
|
<span id="L4428" rel="#L4428">4428</span>
|
|
<span id="L4429" rel="#L4429">4429</span>
|
|
<span id="L4430" rel="#L4430">4430</span>
|
|
<span id="L4431" rel="#L4431">4431</span>
|
|
<span id="L4432" rel="#L4432">4432</span>
|
|
<span id="L4433" rel="#L4433">4433</span>
|
|
<span id="L4434" rel="#L4434">4434</span>
|
|
<span id="L4435" rel="#L4435">4435</span>
|
|
<span id="L4436" rel="#L4436">4436</span>
|
|
<span id="L4437" rel="#L4437">4437</span>
|
|
<span id="L4438" rel="#L4438">4438</span>
|
|
<span id="L4439" rel="#L4439">4439</span>
|
|
<span id="L4440" rel="#L4440">4440</span>
|
|
<span id="L4441" rel="#L4441">4441</span>
|
|
<span id="L4442" rel="#L4442">4442</span>
|
|
<span id="L4443" rel="#L4443">4443</span>
|
|
<span id="L4444" rel="#L4444">4444</span>
|
|
<span id="L4445" rel="#L4445">4445</span>
|
|
<span id="L4446" rel="#L4446">4446</span>
|
|
<span id="L4447" rel="#L4447">4447</span>
|
|
<span id="L4448" rel="#L4448">4448</span>
|
|
<span id="L4449" rel="#L4449">4449</span>
|
|
<span id="L4450" rel="#L4450">4450</span>
|
|
<span id="L4451" rel="#L4451">4451</span>
|
|
<span id="L4452" rel="#L4452">4452</span>
|
|
<span id="L4453" rel="#L4453">4453</span>
|
|
<span id="L4454" rel="#L4454">4454</span>
|
|
<span id="L4455" rel="#L4455">4455</span>
|
|
<span id="L4456" rel="#L4456">4456</span>
|
|
<span id="L4457" rel="#L4457">4457</span>
|
|
<span id="L4458" rel="#L4458">4458</span>
|
|
<span id="L4459" rel="#L4459">4459</span>
|
|
<span id="L4460" rel="#L4460">4460</span>
|
|
<span id="L4461" rel="#L4461">4461</span>
|
|
<span id="L4462" rel="#L4462">4462</span>
|
|
<span id="L4463" rel="#L4463">4463</span>
|
|
<span id="L4464" rel="#L4464">4464</span>
|
|
<span id="L4465" rel="#L4465">4465</span>
|
|
<span id="L4466" rel="#L4466">4466</span>
|
|
<span id="L4467" rel="#L4467">4467</span>
|
|
<span id="L4468" rel="#L4468">4468</span>
|
|
<span id="L4469" rel="#L4469">4469</span>
|
|
<span id="L4470" rel="#L4470">4470</span>
|
|
<span id="L4471" rel="#L4471">4471</span>
|
|
<span id="L4472" rel="#L4472">4472</span>
|
|
<span id="L4473" rel="#L4473">4473</span>
|
|
<span id="L4474" rel="#L4474">4474</span>
|
|
<span id="L4475" rel="#L4475">4475</span>
|
|
<span id="L4476" rel="#L4476">4476</span>
|
|
<span id="L4477" rel="#L4477">4477</span>
|
|
<span id="L4478" rel="#L4478">4478</span>
|
|
<span id="L4479" rel="#L4479">4479</span>
|
|
<span id="L4480" rel="#L4480">4480</span>
|
|
<span id="L4481" rel="#L4481">4481</span>
|
|
<span id="L4482" rel="#L4482">4482</span>
|
|
<span id="L4483" rel="#L4483">4483</span>
|
|
<span id="L4484" rel="#L4484">4484</span>
|
|
<span id="L4485" rel="#L4485">4485</span>
|
|
<span id="L4486" rel="#L4486">4486</span>
|
|
<span id="L4487" rel="#L4487">4487</span>
|
|
<span id="L4488" rel="#L4488">4488</span>
|
|
<span id="L4489" rel="#L4489">4489</span>
|
|
<span id="L4490" rel="#L4490">4490</span>
|
|
<span id="L4491" rel="#L4491">4491</span>
|
|
<span id="L4492" rel="#L4492">4492</span>
|
|
<span id="L4493" rel="#L4493">4493</span>
|
|
<span id="L4494" rel="#L4494">4494</span>
|
|
<span id="L4495" rel="#L4495">4495</span>
|
|
<span id="L4496" rel="#L4496">4496</span>
|
|
<span id="L4497" rel="#L4497">4497</span>
|
|
<span id="L4498" rel="#L4498">4498</span>
|
|
<span id="L4499" rel="#L4499">4499</span>
|
|
<span id="L4500" rel="#L4500">4500</span>
|
|
<span id="L4501" rel="#L4501">4501</span>
|
|
<span id="L4502" rel="#L4502">4502</span>
|
|
<span id="L4503" rel="#L4503">4503</span>
|
|
<span id="L4504" rel="#L4504">4504</span>
|
|
<span id="L4505" rel="#L4505">4505</span>
|
|
<span id="L4506" rel="#L4506">4506</span>
|
|
<span id="L4507" rel="#L4507">4507</span>
|
|
<span id="L4508" rel="#L4508">4508</span>
|
|
<span id="L4509" rel="#L4509">4509</span>
|
|
<span id="L4510" rel="#L4510">4510</span>
|
|
<span id="L4511" rel="#L4511">4511</span>
|
|
<span id="L4512" rel="#L4512">4512</span>
|
|
<span id="L4513" rel="#L4513">4513</span>
|
|
<span id="L4514" rel="#L4514">4514</span>
|
|
<span id="L4515" rel="#L4515">4515</span>
|
|
<span id="L4516" rel="#L4516">4516</span>
|
|
<span id="L4517" rel="#L4517">4517</span>
|
|
<span id="L4518" rel="#L4518">4518</span>
|
|
<span id="L4519" rel="#L4519">4519</span>
|
|
<span id="L4520" rel="#L4520">4520</span>
|
|
<span id="L4521" rel="#L4521">4521</span>
|
|
<span id="L4522" rel="#L4522">4522</span>
|
|
<span id="L4523" rel="#L4523">4523</span>
|
|
<span id="L4524" rel="#L4524">4524</span>
|
|
<span id="L4525" rel="#L4525">4525</span>
|
|
<span id="L4526" rel="#L4526">4526</span>
|
|
<span id="L4527" rel="#L4527">4527</span>
|
|
<span id="L4528" rel="#L4528">4528</span>
|
|
<span id="L4529" rel="#L4529">4529</span>
|
|
<span id="L4530" rel="#L4530">4530</span>
|
|
<span id="L4531" rel="#L4531">4531</span>
|
|
<span id="L4532" rel="#L4532">4532</span>
|
|
<span id="L4533" rel="#L4533">4533</span>
|
|
<span id="L4534" rel="#L4534">4534</span>
|
|
<span id="L4535" rel="#L4535">4535</span>
|
|
<span id="L4536" rel="#L4536">4536</span>
|
|
<span id="L4537" rel="#L4537">4537</span>
|
|
<span id="L4538" rel="#L4538">4538</span>
|
|
<span id="L4539" rel="#L4539">4539</span>
|
|
<span id="L4540" rel="#L4540">4540</span>
|
|
<span id="L4541" rel="#L4541">4541</span>
|
|
<span id="L4542" rel="#L4542">4542</span>
|
|
<span id="L4543" rel="#L4543">4543</span>
|
|
<span id="L4544" rel="#L4544">4544</span>
|
|
<span id="L4545" rel="#L4545">4545</span>
|
|
<span id="L4546" rel="#L4546">4546</span>
|
|
<span id="L4547" rel="#L4547">4547</span>
|
|
<span id="L4548" rel="#L4548">4548</span>
|
|
<span id="L4549" rel="#L4549">4549</span>
|
|
<span id="L4550" rel="#L4550">4550</span>
|
|
<span id="L4551" rel="#L4551">4551</span>
|
|
<span id="L4552" rel="#L4552">4552</span>
|
|
<span id="L4553" rel="#L4553">4553</span>
|
|
<span id="L4554" rel="#L4554">4554</span>
|
|
<span id="L4555" rel="#L4555">4555</span>
|
|
<span id="L4556" rel="#L4556">4556</span>
|
|
<span id="L4557" rel="#L4557">4557</span>
|
|
<span id="L4558" rel="#L4558">4558</span>
|
|
<span id="L4559" rel="#L4559">4559</span>
|
|
<span id="L4560" rel="#L4560">4560</span>
|
|
<span id="L4561" rel="#L4561">4561</span>
|
|
<span id="L4562" rel="#L4562">4562</span>
|
|
<span id="L4563" rel="#L4563">4563</span>
|
|
<span id="L4564" rel="#L4564">4564</span>
|
|
<span id="L4565" rel="#L4565">4565</span>
|
|
<span id="L4566" rel="#L4566">4566</span>
|
|
<span id="L4567" rel="#L4567">4567</span>
|
|
<span id="L4568" rel="#L4568">4568</span>
|
|
<span id="L4569" rel="#L4569">4569</span>
|
|
<span id="L4570" rel="#L4570">4570</span>
|
|
<span id="L4571" rel="#L4571">4571</span>
|
|
<span id="L4572" rel="#L4572">4572</span>
|
|
<span id="L4573" rel="#L4573">4573</span>
|
|
<span id="L4574" rel="#L4574">4574</span>
|
|
<span id="L4575" rel="#L4575">4575</span>
|
|
<span id="L4576" rel="#L4576">4576</span>
|
|
<span id="L4577" rel="#L4577">4577</span>
|
|
<span id="L4578" rel="#L4578">4578</span>
|
|
<span id="L4579" rel="#L4579">4579</span>
|
|
<span id="L4580" rel="#L4580">4580</span>
|
|
<span id="L4581" rel="#L4581">4581</span>
|
|
<span id="L4582" rel="#L4582">4582</span>
|
|
<span id="L4583" rel="#L4583">4583</span>
|
|
<span id="L4584" rel="#L4584">4584</span>
|
|
<span id="L4585" rel="#L4585">4585</span>
|
|
<span id="L4586" rel="#L4586">4586</span>
|
|
<span id="L4587" rel="#L4587">4587</span>
|
|
<span id="L4588" rel="#L4588">4588</span>
|
|
<span id="L4589" rel="#L4589">4589</span>
|
|
<span id="L4590" rel="#L4590">4590</span>
|
|
<span id="L4591" rel="#L4591">4591</span>
|
|
<span id="L4592" rel="#L4592">4592</span>
|
|
<span id="L4593" rel="#L4593">4593</span>
|
|
<span id="L4594" rel="#L4594">4594</span>
|
|
<span id="L4595" rel="#L4595">4595</span>
|
|
<span id="L4596" rel="#L4596">4596</span>
|
|
<span id="L4597" rel="#L4597">4597</span>
|
|
<span id="L4598" rel="#L4598">4598</span>
|
|
<span id="L4599" rel="#L4599">4599</span>
|
|
<span id="L4600" rel="#L4600">4600</span>
|
|
<span id="L4601" rel="#L4601">4601</span>
|
|
<span id="L4602" rel="#L4602">4602</span>
|
|
<span id="L4603" rel="#L4603">4603</span>
|
|
<span id="L4604" rel="#L4604">4604</span>
|
|
<span id="L4605" rel="#L4605">4605</span>
|
|
<span id="L4606" rel="#L4606">4606</span>
|
|
<span id="L4607" rel="#L4607">4607</span>
|
|
<span id="L4608" rel="#L4608">4608</span>
|
|
<span id="L4609" rel="#L4609">4609</span>
|
|
<span id="L4610" rel="#L4610">4610</span>
|
|
<span id="L4611" rel="#L4611">4611</span>
|
|
<span id="L4612" rel="#L4612">4612</span>
|
|
<span id="L4613" rel="#L4613">4613</span>
|
|
<span id="L4614" rel="#L4614">4614</span>
|
|
<span id="L4615" rel="#L4615">4615</span>
|
|
<span id="L4616" rel="#L4616">4616</span>
|
|
<span id="L4617" rel="#L4617">4617</span>
|
|
<span id="L4618" rel="#L4618">4618</span>
|
|
<span id="L4619" rel="#L4619">4619</span>
|
|
<span id="L4620" rel="#L4620">4620</span>
|
|
<span id="L4621" rel="#L4621">4621</span>
|
|
<span id="L4622" rel="#L4622">4622</span>
|
|
<span id="L4623" rel="#L4623">4623</span>
|
|
<span id="L4624" rel="#L4624">4624</span>
|
|
<span id="L4625" rel="#L4625">4625</span>
|
|
<span id="L4626" rel="#L4626">4626</span>
|
|
<span id="L4627" rel="#L4627">4627</span>
|
|
<span id="L4628" rel="#L4628">4628</span>
|
|
<span id="L4629" rel="#L4629">4629</span>
|
|
<span id="L4630" rel="#L4630">4630</span>
|
|
<span id="L4631" rel="#L4631">4631</span>
|
|
<span id="L4632" rel="#L4632">4632</span>
|
|
<span id="L4633" rel="#L4633">4633</span>
|
|
<span id="L4634" rel="#L4634">4634</span>
|
|
<span id="L4635" rel="#L4635">4635</span>
|
|
<span id="L4636" rel="#L4636">4636</span>
|
|
<span id="L4637" rel="#L4637">4637</span>
|
|
<span id="L4638" rel="#L4638">4638</span>
|
|
<span id="L4639" rel="#L4639">4639</span>
|
|
<span id="L4640" rel="#L4640">4640</span>
|
|
<span id="L4641" rel="#L4641">4641</span>
|
|
<span id="L4642" rel="#L4642">4642</span>
|
|
<span id="L4643" rel="#L4643">4643</span>
|
|
<span id="L4644" rel="#L4644">4644</span>
|
|
<span id="L4645" rel="#L4645">4645</span>
|
|
<span id="L4646" rel="#L4646">4646</span>
|
|
<span id="L4647" rel="#L4647">4647</span>
|
|
<span id="L4648" rel="#L4648">4648</span>
|
|
<span id="L4649" rel="#L4649">4649</span>
|
|
<span id="L4650" rel="#L4650">4650</span>
|
|
<span id="L4651" rel="#L4651">4651</span>
|
|
<span id="L4652" rel="#L4652">4652</span>
|
|
<span id="L4653" rel="#L4653">4653</span>
|
|
<span id="L4654" rel="#L4654">4654</span>
|
|
<span id="L4655" rel="#L4655">4655</span>
|
|
<span id="L4656" rel="#L4656">4656</span>
|
|
<span id="L4657" rel="#L4657">4657</span>
|
|
<span id="L4658" rel="#L4658">4658</span>
|
|
<span id="L4659" rel="#L4659">4659</span>
|
|
<span id="L4660" rel="#L4660">4660</span>
|
|
<span id="L4661" rel="#L4661">4661</span>
|
|
<span id="L4662" rel="#L4662">4662</span>
|
|
<span id="L4663" rel="#L4663">4663</span>
|
|
<span id="L4664" rel="#L4664">4664</span>
|
|
<span id="L4665" rel="#L4665">4665</span>
|
|
<span id="L4666" rel="#L4666">4666</span>
|
|
<span id="L4667" rel="#L4667">4667</span>
|
|
<span id="L4668" rel="#L4668">4668</span>
|
|
<span id="L4669" rel="#L4669">4669</span>
|
|
<span id="L4670" rel="#L4670">4670</span>
|
|
<span id="L4671" rel="#L4671">4671</span>
|
|
<span id="L4672" rel="#L4672">4672</span>
|
|
<span id="L4673" rel="#L4673">4673</span>
|
|
<span id="L4674" rel="#L4674">4674</span>
|
|
<span id="L4675" rel="#L4675">4675</span>
|
|
<span id="L4676" rel="#L4676">4676</span>
|
|
<span id="L4677" rel="#L4677">4677</span>
|
|
<span id="L4678" rel="#L4678">4678</span>
|
|
<span id="L4679" rel="#L4679">4679</span>
|
|
<span id="L4680" rel="#L4680">4680</span>
|
|
<span id="L4681" rel="#L4681">4681</span>
|
|
<span id="L4682" rel="#L4682">4682</span>
|
|
<span id="L4683" rel="#L4683">4683</span>
|
|
<span id="L4684" rel="#L4684">4684</span>
|
|
<span id="L4685" rel="#L4685">4685</span>
|
|
<span id="L4686" rel="#L4686">4686</span>
|
|
<span id="L4687" rel="#L4687">4687</span>
|
|
<span id="L4688" rel="#L4688">4688</span>
|
|
<span id="L4689" rel="#L4689">4689</span>
|
|
<span id="L4690" rel="#L4690">4690</span>
|
|
<span id="L4691" rel="#L4691">4691</span>
|
|
<span id="L4692" rel="#L4692">4692</span>
|
|
<span id="L4693" rel="#L4693">4693</span>
|
|
<span id="L4694" rel="#L4694">4694</span>
|
|
<span id="L4695" rel="#L4695">4695</span>
|
|
<span id="L4696" rel="#L4696">4696</span>
|
|
<span id="L4697" rel="#L4697">4697</span>
|
|
<span id="L4698" rel="#L4698">4698</span>
|
|
<span id="L4699" rel="#L4699">4699</span>
|
|
<span id="L4700" rel="#L4700">4700</span>
|
|
<span id="L4701" rel="#L4701">4701</span>
|
|
<span id="L4702" rel="#L4702">4702</span>
|
|
<span id="L4703" rel="#L4703">4703</span>
|
|
<span id="L4704" rel="#L4704">4704</span>
|
|
<span id="L4705" rel="#L4705">4705</span>
|
|
<span id="L4706" rel="#L4706">4706</span>
|
|
<span id="L4707" rel="#L4707">4707</span>
|
|
<span id="L4708" rel="#L4708">4708</span>
|
|
<span id="L4709" rel="#L4709">4709</span>
|
|
<span id="L4710" rel="#L4710">4710</span>
|
|
<span id="L4711" rel="#L4711">4711</span>
|
|
<span id="L4712" rel="#L4712">4712</span>
|
|
<span id="L4713" rel="#L4713">4713</span>
|
|
<span id="L4714" rel="#L4714">4714</span>
|
|
<span id="L4715" rel="#L4715">4715</span>
|
|
<span id="L4716" rel="#L4716">4716</span>
|
|
<span id="L4717" rel="#L4717">4717</span>
|
|
<span id="L4718" rel="#L4718">4718</span>
|
|
<span id="L4719" rel="#L4719">4719</span>
|
|
<span id="L4720" rel="#L4720">4720</span>
|
|
<span id="L4721" rel="#L4721">4721</span>
|
|
<span id="L4722" rel="#L4722">4722</span>
|
|
<span id="L4723" rel="#L4723">4723</span>
|
|
<span id="L4724" rel="#L4724">4724</span>
|
|
<span id="L4725" rel="#L4725">4725</span>
|
|
<span id="L4726" rel="#L4726">4726</span>
|
|
<span id="L4727" rel="#L4727">4727</span>
|
|
<span id="L4728" rel="#L4728">4728</span>
|
|
<span id="L4729" rel="#L4729">4729</span>
|
|
<span id="L4730" rel="#L4730">4730</span>
|
|
<span id="L4731" rel="#L4731">4731</span>
|
|
<span id="L4732" rel="#L4732">4732</span>
|
|
<span id="L4733" rel="#L4733">4733</span>
|
|
<span id="L4734" rel="#L4734">4734</span>
|
|
<span id="L4735" rel="#L4735">4735</span>
|
|
<span id="L4736" rel="#L4736">4736</span>
|
|
<span id="L4737" rel="#L4737">4737</span>
|
|
<span id="L4738" rel="#L4738">4738</span>
|
|
<span id="L4739" rel="#L4739">4739</span>
|
|
<span id="L4740" rel="#L4740">4740</span>
|
|
<span id="L4741" rel="#L4741">4741</span>
|
|
<span id="L4742" rel="#L4742">4742</span>
|
|
<span id="L4743" rel="#L4743">4743</span>
|
|
<span id="L4744" rel="#L4744">4744</span>
|
|
<span id="L4745" rel="#L4745">4745</span>
|
|
<span id="L4746" rel="#L4746">4746</span>
|
|
<span id="L4747" rel="#L4747">4747</span>
|
|
<span id="L4748" rel="#L4748">4748</span>
|
|
<span id="L4749" rel="#L4749">4749</span>
|
|
<span id="L4750" rel="#L4750">4750</span>
|
|
<span id="L4751" rel="#L4751">4751</span>
|
|
<span id="L4752" rel="#L4752">4752</span>
|
|
<span id="L4753" rel="#L4753">4753</span>
|
|
<span id="L4754" rel="#L4754">4754</span>
|
|
<span id="L4755" rel="#L4755">4755</span>
|
|
<span id="L4756" rel="#L4756">4756</span>
|
|
<span id="L4757" rel="#L4757">4757</span>
|
|
<span id="L4758" rel="#L4758">4758</span>
|
|
<span id="L4759" rel="#L4759">4759</span>
|
|
<span id="L4760" rel="#L4760">4760</span>
|
|
<span id="L4761" rel="#L4761">4761</span>
|
|
<span id="L4762" rel="#L4762">4762</span>
|
|
<span id="L4763" rel="#L4763">4763</span>
|
|
<span id="L4764" rel="#L4764">4764</span>
|
|
<span id="L4765" rel="#L4765">4765</span>
|
|
<span id="L4766" rel="#L4766">4766</span>
|
|
<span id="L4767" rel="#L4767">4767</span>
|
|
<span id="L4768" rel="#L4768">4768</span>
|
|
<span id="L4769" rel="#L4769">4769</span>
|
|
<span id="L4770" rel="#L4770">4770</span>
|
|
<span id="L4771" rel="#L4771">4771</span>
|
|
<span id="L4772" rel="#L4772">4772</span>
|
|
<span id="L4773" rel="#L4773">4773</span>
|
|
<span id="L4774" rel="#L4774">4774</span>
|
|
<span id="L4775" rel="#L4775">4775</span>
|
|
<span id="L4776" rel="#L4776">4776</span>
|
|
<span id="L4777" rel="#L4777">4777</span>
|
|
<span id="L4778" rel="#L4778">4778</span>
|
|
<span id="L4779" rel="#L4779">4779</span>
|
|
<span id="L4780" rel="#L4780">4780</span>
|
|
<span id="L4781" rel="#L4781">4781</span>
|
|
<span id="L4782" rel="#L4782">4782</span>
|
|
<span id="L4783" rel="#L4783">4783</span>
|
|
<span id="L4784" rel="#L4784">4784</span>
|
|
<span id="L4785" rel="#L4785">4785</span>
|
|
<span id="L4786" rel="#L4786">4786</span>
|
|
<span id="L4787" rel="#L4787">4787</span>
|
|
<span id="L4788" rel="#L4788">4788</span>
|
|
<span id="L4789" rel="#L4789">4789</span>
|
|
<span id="L4790" rel="#L4790">4790</span>
|
|
<span id="L4791" rel="#L4791">4791</span>
|
|
<span id="L4792" rel="#L4792">4792</span>
|
|
<span id="L4793" rel="#L4793">4793</span>
|
|
<span id="L4794" rel="#L4794">4794</span>
|
|
<span id="L4795" rel="#L4795">4795</span>
|
|
<span id="L4796" rel="#L4796">4796</span>
|
|
<span id="L4797" rel="#L4797">4797</span>
|
|
<span id="L4798" rel="#L4798">4798</span>
|
|
<span id="L4799" rel="#L4799">4799</span>
|
|
<span id="L4800" rel="#L4800">4800</span>
|
|
<span id="L4801" rel="#L4801">4801</span>
|
|
<span id="L4802" rel="#L4802">4802</span>
|
|
<span id="L4803" rel="#L4803">4803</span>
|
|
<span id="L4804" rel="#L4804">4804</span>
|
|
<span id="L4805" rel="#L4805">4805</span>
|
|
<span id="L4806" rel="#L4806">4806</span>
|
|
<span id="L4807" rel="#L4807">4807</span>
|
|
<span id="L4808" rel="#L4808">4808</span>
|
|
<span id="L4809" rel="#L4809">4809</span>
|
|
<span id="L4810" rel="#L4810">4810</span>
|
|
<span id="L4811" rel="#L4811">4811</span>
|
|
<span id="L4812" rel="#L4812">4812</span>
|
|
<span id="L4813" rel="#L4813">4813</span>
|
|
<span id="L4814" rel="#L4814">4814</span>
|
|
<span id="L4815" rel="#L4815">4815</span>
|
|
<span id="L4816" rel="#L4816">4816</span>
|
|
<span id="L4817" rel="#L4817">4817</span>
|
|
<span id="L4818" rel="#L4818">4818</span>
|
|
<span id="L4819" rel="#L4819">4819</span>
|
|
<span id="L4820" rel="#L4820">4820</span>
|
|
<span id="L4821" rel="#L4821">4821</span>
|
|
<span id="L4822" rel="#L4822">4822</span>
|
|
<span id="L4823" rel="#L4823">4823</span>
|
|
<span id="L4824" rel="#L4824">4824</span>
|
|
<span id="L4825" rel="#L4825">4825</span>
|
|
<span id="L4826" rel="#L4826">4826</span>
|
|
<span id="L4827" rel="#L4827">4827</span>
|
|
<span id="L4828" rel="#L4828">4828</span>
|
|
<span id="L4829" rel="#L4829">4829</span>
|
|
<span id="L4830" rel="#L4830">4830</span>
|
|
<span id="L4831" rel="#L4831">4831</span>
|
|
<span id="L4832" rel="#L4832">4832</span>
|
|
<span id="L4833" rel="#L4833">4833</span>
|
|
<span id="L4834" rel="#L4834">4834</span>
|
|
<span id="L4835" rel="#L4835">4835</span>
|
|
<span id="L4836" rel="#L4836">4836</span>
|
|
<span id="L4837" rel="#L4837">4837</span>
|
|
<span id="L4838" rel="#L4838">4838</span>
|
|
<span id="L4839" rel="#L4839">4839</span>
|
|
<span id="L4840" rel="#L4840">4840</span>
|
|
<span id="L4841" rel="#L4841">4841</span>
|
|
<span id="L4842" rel="#L4842">4842</span>
|
|
<span id="L4843" rel="#L4843">4843</span>
|
|
<span id="L4844" rel="#L4844">4844</span>
|
|
<span id="L4845" rel="#L4845">4845</span>
|
|
<span id="L4846" rel="#L4846">4846</span>
|
|
<span id="L4847" rel="#L4847">4847</span>
|
|
<span id="L4848" rel="#L4848">4848</span>
|
|
<span id="L4849" rel="#L4849">4849</span>
|
|
<span id="L4850" rel="#L4850">4850</span>
|
|
<span id="L4851" rel="#L4851">4851</span>
|
|
<span id="L4852" rel="#L4852">4852</span>
|
|
<span id="L4853" rel="#L4853">4853</span>
|
|
<span id="L4854" rel="#L4854">4854</span>
|
|
<span id="L4855" rel="#L4855">4855</span>
|
|
<span id="L4856" rel="#L4856">4856</span>
|
|
<span id="L4857" rel="#L4857">4857</span>
|
|
<span id="L4858" rel="#L4858">4858</span>
|
|
<span id="L4859" rel="#L4859">4859</span>
|
|
<span id="L4860" rel="#L4860">4860</span>
|
|
<span id="L4861" rel="#L4861">4861</span>
|
|
<span id="L4862" rel="#L4862">4862</span>
|
|
<span id="L4863" rel="#L4863">4863</span>
|
|
<span id="L4864" rel="#L4864">4864</span>
|
|
<span id="L4865" rel="#L4865">4865</span>
|
|
<span id="L4866" rel="#L4866">4866</span>
|
|
<span id="L4867" rel="#L4867">4867</span>
|
|
<span id="L4868" rel="#L4868">4868</span>
|
|
<span id="L4869" rel="#L4869">4869</span>
|
|
<span id="L4870" rel="#L4870">4870</span>
|
|
<span id="L4871" rel="#L4871">4871</span>
|
|
<span id="L4872" rel="#L4872">4872</span>
|
|
<span id="L4873" rel="#L4873">4873</span>
|
|
<span id="L4874" rel="#L4874">4874</span>
|
|
<span id="L4875" rel="#L4875">4875</span>
|
|
<span id="L4876" rel="#L4876">4876</span>
|
|
<span id="L4877" rel="#L4877">4877</span>
|
|
<span id="L4878" rel="#L4878">4878</span>
|
|
<span id="L4879" rel="#L4879">4879</span>
|
|
<span id="L4880" rel="#L4880">4880</span>
|
|
<span id="L4881" rel="#L4881">4881</span>
|
|
<span id="L4882" rel="#L4882">4882</span>
|
|
<span id="L4883" rel="#L4883">4883</span>
|
|
<span id="L4884" rel="#L4884">4884</span>
|
|
<span id="L4885" rel="#L4885">4885</span>
|
|
<span id="L4886" rel="#L4886">4886</span>
|
|
<span id="L4887" rel="#L4887">4887</span>
|
|
<span id="L4888" rel="#L4888">4888</span>
|
|
<span id="L4889" rel="#L4889">4889</span>
|
|
<span id="L4890" rel="#L4890">4890</span>
|
|
<span id="L4891" rel="#L4891">4891</span>
|
|
<span id="L4892" rel="#L4892">4892</span>
|
|
<span id="L4893" rel="#L4893">4893</span>
|
|
<span id="L4894" rel="#L4894">4894</span>
|
|
<span id="L4895" rel="#L4895">4895</span>
|
|
<span id="L4896" rel="#L4896">4896</span>
|
|
<span id="L4897" rel="#L4897">4897</span>
|
|
<span id="L4898" rel="#L4898">4898</span>
|
|
<span id="L4899" rel="#L4899">4899</span>
|
|
<span id="L4900" rel="#L4900">4900</span>
|
|
<span id="L4901" rel="#L4901">4901</span>
|
|
<span id="L4902" rel="#L4902">4902</span>
|
|
<span id="L4903" rel="#L4903">4903</span>
|
|
<span id="L4904" rel="#L4904">4904</span>
|
|
<span id="L4905" rel="#L4905">4905</span>
|
|
<span id="L4906" rel="#L4906">4906</span>
|
|
<span id="L4907" rel="#L4907">4907</span>
|
|
<span id="L4908" rel="#L4908">4908</span>
|
|
<span id="L4909" rel="#L4909">4909</span>
|
|
<span id="L4910" rel="#L4910">4910</span>
|
|
<span id="L4911" rel="#L4911">4911</span>
|
|
<span id="L4912" rel="#L4912">4912</span>
|
|
<span id="L4913" rel="#L4913">4913</span>
|
|
<span id="L4914" rel="#L4914">4914</span>
|
|
<span id="L4915" rel="#L4915">4915</span>
|
|
<span id="L4916" rel="#L4916">4916</span>
|
|
<span id="L4917" rel="#L4917">4917</span>
|
|
<span id="L4918" rel="#L4918">4918</span>
|
|
<span id="L4919" rel="#L4919">4919</span>
|
|
<span id="L4920" rel="#L4920">4920</span>
|
|
<span id="L4921" rel="#L4921">4921</span>
|
|
<span id="L4922" rel="#L4922">4922</span>
|
|
<span id="L4923" rel="#L4923">4923</span>
|
|
<span id="L4924" rel="#L4924">4924</span>
|
|
<span id="L4925" rel="#L4925">4925</span>
|
|
<span id="L4926" rel="#L4926">4926</span>
|
|
<span id="L4927" rel="#L4927">4927</span>
|
|
<span id="L4928" rel="#L4928">4928</span>
|
|
<span id="L4929" rel="#L4929">4929</span>
|
|
<span id="L4930" rel="#L4930">4930</span>
|
|
<span id="L4931" rel="#L4931">4931</span>
|
|
<span id="L4932" rel="#L4932">4932</span>
|
|
<span id="L4933" rel="#L4933">4933</span>
|
|
<span id="L4934" rel="#L4934">4934</span>
|
|
<span id="L4935" rel="#L4935">4935</span>
|
|
<span id="L4936" rel="#L4936">4936</span>
|
|
<span id="L4937" rel="#L4937">4937</span>
|
|
<span id="L4938" rel="#L4938">4938</span>
|
|
<span id="L4939" rel="#L4939">4939</span>
|
|
<span id="L4940" rel="#L4940">4940</span>
|
|
<span id="L4941" rel="#L4941">4941</span>
|
|
<span id="L4942" rel="#L4942">4942</span>
|
|
<span id="L4943" rel="#L4943">4943</span>
|
|
<span id="L4944" rel="#L4944">4944</span>
|
|
<span id="L4945" rel="#L4945">4945</span>
|
|
<span id="L4946" rel="#L4946">4946</span>
|
|
<span id="L4947" rel="#L4947">4947</span>
|
|
<span id="L4948" rel="#L4948">4948</span>
|
|
<span id="L4949" rel="#L4949">4949</span>
|
|
<span id="L4950" rel="#L4950">4950</span>
|
|
<span id="L4951" rel="#L4951">4951</span>
|
|
<span id="L4952" rel="#L4952">4952</span>
|
|
<span id="L4953" rel="#L4953">4953</span>
|
|
<span id="L4954" rel="#L4954">4954</span>
|
|
<span id="L4955" rel="#L4955">4955</span>
|
|
<span id="L4956" rel="#L4956">4956</span>
|
|
<span id="L4957" rel="#L4957">4957</span>
|
|
<span id="L4958" rel="#L4958">4958</span>
|
|
<span id="L4959" rel="#L4959">4959</span>
|
|
<span id="L4960" rel="#L4960">4960</span>
|
|
<span id="L4961" rel="#L4961">4961</span>
|
|
<span id="L4962" rel="#L4962">4962</span>
|
|
<span id="L4963" rel="#L4963">4963</span>
|
|
<span id="L4964" rel="#L4964">4964</span>
|
|
<span id="L4965" rel="#L4965">4965</span>
|
|
<span id="L4966" rel="#L4966">4966</span>
|
|
<span id="L4967" rel="#L4967">4967</span>
|
|
<span id="L4968" rel="#L4968">4968</span>
|
|
<span id="L4969" rel="#L4969">4969</span>
|
|
<span id="L4970" rel="#L4970">4970</span>
|
|
<span id="L4971" rel="#L4971">4971</span>
|
|
<span id="L4972" rel="#L4972">4972</span>
|
|
<span id="L4973" rel="#L4973">4973</span>
|
|
<span id="L4974" rel="#L4974">4974</span>
|
|
<span id="L4975" rel="#L4975">4975</span>
|
|
<span id="L4976" rel="#L4976">4976</span>
|
|
<span id="L4977" rel="#L4977">4977</span>
|
|
<span id="L4978" rel="#L4978">4978</span>
|
|
<span id="L4979" rel="#L4979">4979</span>
|
|
<span id="L4980" rel="#L4980">4980</span>
|
|
<span id="L4981" rel="#L4981">4981</span>
|
|
<span id="L4982" rel="#L4982">4982</span>
|
|
<span id="L4983" rel="#L4983">4983</span>
|
|
<span id="L4984" rel="#L4984">4984</span>
|
|
<span id="L4985" rel="#L4985">4985</span>
|
|
<span id="L4986" rel="#L4986">4986</span>
|
|
<span id="L4987" rel="#L4987">4987</span>
|
|
<span id="L4988" rel="#L4988">4988</span>
|
|
<span id="L4989" rel="#L4989">4989</span>
|
|
<span id="L4990" rel="#L4990">4990</span>
|
|
<span id="L4991" rel="#L4991">4991</span>
|
|
<span id="L4992" rel="#L4992">4992</span>
|
|
<span id="L4993" rel="#L4993">4993</span>
|
|
<span id="L4994" rel="#L4994">4994</span>
|
|
<span id="L4995" rel="#L4995">4995</span>
|
|
<span id="L4996" rel="#L4996">4996</span>
|
|
<span id="L4997" rel="#L4997">4997</span>
|
|
<span id="L4998" rel="#L4998">4998</span>
|
|
<span id="L4999" rel="#L4999">4999</span>
|
|
<span id="L5000" rel="#L5000">5000</span>
|
|
<span id="L5001" rel="#L5001">5001</span>
|
|
<span id="L5002" rel="#L5002">5002</span>
|
|
<span id="L5003" rel="#L5003">5003</span>
|
|
<span id="L5004" rel="#L5004">5004</span>
|
|
<span id="L5005" rel="#L5005">5005</span>
|
|
<span id="L5006" rel="#L5006">5006</span>
|
|
<span id="L5007" rel="#L5007">5007</span>
|
|
<span id="L5008" rel="#L5008">5008</span>
|
|
<span id="L5009" rel="#L5009">5009</span>
|
|
<span id="L5010" rel="#L5010">5010</span>
|
|
<span id="L5011" rel="#L5011">5011</span>
|
|
<span id="L5012" rel="#L5012">5012</span>
|
|
<span id="L5013" rel="#L5013">5013</span>
|
|
<span id="L5014" rel="#L5014">5014</span>
|
|
<span id="L5015" rel="#L5015">5015</span>
|
|
<span id="L5016" rel="#L5016">5016</span>
|
|
<span id="L5017" rel="#L5017">5017</span>
|
|
<span id="L5018" rel="#L5018">5018</span>
|
|
<span id="L5019" rel="#L5019">5019</span>
|
|
<span id="L5020" rel="#L5020">5020</span>
|
|
<span id="L5021" rel="#L5021">5021</span>
|
|
<span id="L5022" rel="#L5022">5022</span>
|
|
<span id="L5023" rel="#L5023">5023</span>
|
|
<span id="L5024" rel="#L5024">5024</span>
|
|
<span id="L5025" rel="#L5025">5025</span>
|
|
<span id="L5026" rel="#L5026">5026</span>
|
|
<span id="L5027" rel="#L5027">5027</span>
|
|
<span id="L5028" rel="#L5028">5028</span>
|
|
<span id="L5029" rel="#L5029">5029</span>
|
|
<span id="L5030" rel="#L5030">5030</span>
|
|
<span id="L5031" rel="#L5031">5031</span>
|
|
<span id="L5032" rel="#L5032">5032</span>
|
|
<span id="L5033" rel="#L5033">5033</span>
|
|
<span id="L5034" rel="#L5034">5034</span>
|
|
<span id="L5035" rel="#L5035">5035</span>
|
|
<span id="L5036" rel="#L5036">5036</span>
|
|
<span id="L5037" rel="#L5037">5037</span>
|
|
<span id="L5038" rel="#L5038">5038</span>
|
|
<span id="L5039" rel="#L5039">5039</span>
|
|
<span id="L5040" rel="#L5040">5040</span>
|
|
<span id="L5041" rel="#L5041">5041</span>
|
|
<span id="L5042" rel="#L5042">5042</span>
|
|
<span id="L5043" rel="#L5043">5043</span>
|
|
<span id="L5044" rel="#L5044">5044</span>
|
|
<span id="L5045" rel="#L5045">5045</span>
|
|
<span id="L5046" rel="#L5046">5046</span>
|
|
<span id="L5047" rel="#L5047">5047</span>
|
|
<span id="L5048" rel="#L5048">5048</span>
|
|
<span id="L5049" rel="#L5049">5049</span>
|
|
<span id="L5050" rel="#L5050">5050</span>
|
|
<span id="L5051" rel="#L5051">5051</span>
|
|
<span id="L5052" rel="#L5052">5052</span>
|
|
<span id="L5053" rel="#L5053">5053</span>
|
|
<span id="L5054" rel="#L5054">5054</span>
|
|
<span id="L5055" rel="#L5055">5055</span>
|
|
<span id="L5056" rel="#L5056">5056</span>
|
|
<span id="L5057" rel="#L5057">5057</span>
|
|
<span id="L5058" rel="#L5058">5058</span>
|
|
<span id="L5059" rel="#L5059">5059</span>
|
|
<span id="L5060" rel="#L5060">5060</span>
|
|
<span id="L5061" rel="#L5061">5061</span>
|
|
<span id="L5062" rel="#L5062">5062</span>
|
|
<span id="L5063" rel="#L5063">5063</span>
|
|
<span id="L5064" rel="#L5064">5064</span>
|
|
<span id="L5065" rel="#L5065">5065</span>
|
|
<span id="L5066" rel="#L5066">5066</span>
|
|
<span id="L5067" rel="#L5067">5067</span>
|
|
<span id="L5068" rel="#L5068">5068</span>
|
|
<span id="L5069" rel="#L5069">5069</span>
|
|
<span id="L5070" rel="#L5070">5070</span>
|
|
<span id="L5071" rel="#L5071">5071</span>
|
|
<span id="L5072" rel="#L5072">5072</span>
|
|
<span id="L5073" rel="#L5073">5073</span>
|
|
<span id="L5074" rel="#L5074">5074</span>
|
|
<span id="L5075" rel="#L5075">5075</span>
|
|
<span id="L5076" rel="#L5076">5076</span>
|
|
<span id="L5077" rel="#L5077">5077</span>
|
|
<span id="L5078" rel="#L5078">5078</span>
|
|
<span id="L5079" rel="#L5079">5079</span>
|
|
<span id="L5080" rel="#L5080">5080</span>
|
|
<span id="L5081" rel="#L5081">5081</span>
|
|
<span id="L5082" rel="#L5082">5082</span>
|
|
<span id="L5083" rel="#L5083">5083</span>
|
|
<span id="L5084" rel="#L5084">5084</span>
|
|
<span id="L5085" rel="#L5085">5085</span>
|
|
<span id="L5086" rel="#L5086">5086</span>
|
|
<span id="L5087" rel="#L5087">5087</span>
|
|
<span id="L5088" rel="#L5088">5088</span>
|
|
<span id="L5089" rel="#L5089">5089</span>
|
|
<span id="L5090" rel="#L5090">5090</span>
|
|
<span id="L5091" rel="#L5091">5091</span>
|
|
<span id="L5092" rel="#L5092">5092</span>
|
|
<span id="L5093" rel="#L5093">5093</span>
|
|
<span id="L5094" rel="#L5094">5094</span>
|
|
<span id="L5095" rel="#L5095">5095</span>
|
|
<span id="L5096" rel="#L5096">5096</span>
|
|
<span id="L5097" rel="#L5097">5097</span>
|
|
<span id="L5098" rel="#L5098">5098</span>
|
|
<span id="L5099" rel="#L5099">5099</span>
|
|
<span id="L5100" rel="#L5100">5100</span>
|
|
<span id="L5101" rel="#L5101">5101</span>
|
|
<span id="L5102" rel="#L5102">5102</span>
|
|
<span id="L5103" rel="#L5103">5103</span>
|
|
<span id="L5104" rel="#L5104">5104</span>
|
|
<span id="L5105" rel="#L5105">5105</span>
|
|
<span id="L5106" rel="#L5106">5106</span>
|
|
<span id="L5107" rel="#L5107">5107</span>
|
|
<span id="L5108" rel="#L5108">5108</span>
|
|
<span id="L5109" rel="#L5109">5109</span>
|
|
<span id="L5110" rel="#L5110">5110</span>
|
|
<span id="L5111" rel="#L5111">5111</span>
|
|
<span id="L5112" rel="#L5112">5112</span>
|
|
<span id="L5113" rel="#L5113">5113</span>
|
|
<span id="L5114" rel="#L5114">5114</span>
|
|
<span id="L5115" rel="#L5115">5115</span>
|
|
<span id="L5116" rel="#L5116">5116</span>
|
|
<span id="L5117" rel="#L5117">5117</span>
|
|
<span id="L5118" rel="#L5118">5118</span>
|
|
<span id="L5119" rel="#L5119">5119</span>
|
|
<span id="L5120" rel="#L5120">5120</span>
|
|
<span id="L5121" rel="#L5121">5121</span>
|
|
<span id="L5122" rel="#L5122">5122</span>
|
|
<span id="L5123" rel="#L5123">5123</span>
|
|
<span id="L5124" rel="#L5124">5124</span>
|
|
<span id="L5125" rel="#L5125">5125</span>
|
|
<span id="L5126" rel="#L5126">5126</span>
|
|
<span id="L5127" rel="#L5127">5127</span>
|
|
<span id="L5128" rel="#L5128">5128</span>
|
|
<span id="L5129" rel="#L5129">5129</span>
|
|
<span id="L5130" rel="#L5130">5130</span>
|
|
<span id="L5131" rel="#L5131">5131</span>
|
|
<span id="L5132" rel="#L5132">5132</span>
|
|
<span id="L5133" rel="#L5133">5133</span>
|
|
<span id="L5134" rel="#L5134">5134</span>
|
|
<span id="L5135" rel="#L5135">5135</span>
|
|
<span id="L5136" rel="#L5136">5136</span>
|
|
<span id="L5137" rel="#L5137">5137</span>
|
|
<span id="L5138" rel="#L5138">5138</span>
|
|
<span id="L5139" rel="#L5139">5139</span>
|
|
<span id="L5140" rel="#L5140">5140</span>
|
|
<span id="L5141" rel="#L5141">5141</span>
|
|
<span id="L5142" rel="#L5142">5142</span>
|
|
<span id="L5143" rel="#L5143">5143</span>
|
|
<span id="L5144" rel="#L5144">5144</span>
|
|
<span id="L5145" rel="#L5145">5145</span>
|
|
<span id="L5146" rel="#L5146">5146</span>
|
|
<span id="L5147" rel="#L5147">5147</span>
|
|
<span id="L5148" rel="#L5148">5148</span>
|
|
<span id="L5149" rel="#L5149">5149</span>
|
|
<span id="L5150" rel="#L5150">5150</span>
|
|
<span id="L5151" rel="#L5151">5151</span>
|
|
<span id="L5152" rel="#L5152">5152</span>
|
|
<span id="L5153" rel="#L5153">5153</span>
|
|
<span id="L5154" rel="#L5154">5154</span>
|
|
<span id="L5155" rel="#L5155">5155</span>
|
|
<span id="L5156" rel="#L5156">5156</span>
|
|
<span id="L5157" rel="#L5157">5157</span>
|
|
<span id="L5158" rel="#L5158">5158</span>
|
|
<span id="L5159" rel="#L5159">5159</span>
|
|
<span id="L5160" rel="#L5160">5160</span>
|
|
<span id="L5161" rel="#L5161">5161</span>
|
|
<span id="L5162" rel="#L5162">5162</span>
|
|
<span id="L5163" rel="#L5163">5163</span>
|
|
<span id="L5164" rel="#L5164">5164</span>
|
|
<span id="L5165" rel="#L5165">5165</span>
|
|
<span id="L5166" rel="#L5166">5166</span>
|
|
<span id="L5167" rel="#L5167">5167</span>
|
|
<span id="L5168" rel="#L5168">5168</span>
|
|
<span id="L5169" rel="#L5169">5169</span>
|
|
<span id="L5170" rel="#L5170">5170</span>
|
|
<span id="L5171" rel="#L5171">5171</span>
|
|
<span id="L5172" rel="#L5172">5172</span>
|
|
<span id="L5173" rel="#L5173">5173</span>
|
|
<span id="L5174" rel="#L5174">5174</span>
|
|
<span id="L5175" rel="#L5175">5175</span>
|
|
<span id="L5176" rel="#L5176">5176</span>
|
|
<span id="L5177" rel="#L5177">5177</span>
|
|
<span id="L5178" rel="#L5178">5178</span>
|
|
<span id="L5179" rel="#L5179">5179</span>
|
|
<span id="L5180" rel="#L5180">5180</span>
|
|
<span id="L5181" rel="#L5181">5181</span>
|
|
<span id="L5182" rel="#L5182">5182</span>
|
|
<span id="L5183" rel="#L5183">5183</span>
|
|
<span id="L5184" rel="#L5184">5184</span>
|
|
<span id="L5185" rel="#L5185">5185</span>
|
|
<span id="L5186" rel="#L5186">5186</span>
|
|
<span id="L5187" rel="#L5187">5187</span>
|
|
<span id="L5188" rel="#L5188">5188</span>
|
|
<span id="L5189" rel="#L5189">5189</span>
|
|
<span id="L5190" rel="#L5190">5190</span>
|
|
<span id="L5191" rel="#L5191">5191</span>
|
|
<span id="L5192" rel="#L5192">5192</span>
|
|
<span id="L5193" rel="#L5193">5193</span>
|
|
<span id="L5194" rel="#L5194">5194</span>
|
|
<span id="L5195" rel="#L5195">5195</span>
|
|
<span id="L5196" rel="#L5196">5196</span>
|
|
<span id="L5197" rel="#L5197">5197</span>
|
|
<span id="L5198" rel="#L5198">5198</span>
|
|
<span id="L5199" rel="#L5199">5199</span>
|
|
<span id="L5200" rel="#L5200">5200</span>
|
|
<span id="L5201" rel="#L5201">5201</span>
|
|
<span id="L5202" rel="#L5202">5202</span>
|
|
<span id="L5203" rel="#L5203">5203</span>
|
|
<span id="L5204" rel="#L5204">5204</span>
|
|
<span id="L5205" rel="#L5205">5205</span>
|
|
<span id="L5206" rel="#L5206">5206</span>
|
|
<span id="L5207" rel="#L5207">5207</span>
|
|
<span id="L5208" rel="#L5208">5208</span>
|
|
<span id="L5209" rel="#L5209">5209</span>
|
|
<span id="L5210" rel="#L5210">5210</span>
|
|
<span id="L5211" rel="#L5211">5211</span>
|
|
<span id="L5212" rel="#L5212">5212</span>
|
|
<span id="L5213" rel="#L5213">5213</span>
|
|
<span id="L5214" rel="#L5214">5214</span>
|
|
<span id="L5215" rel="#L5215">5215</span>
|
|
<span id="L5216" rel="#L5216">5216</span>
|
|
<span id="L5217" rel="#L5217">5217</span>
|
|
<span id="L5218" rel="#L5218">5218</span>
|
|
<span id="L5219" rel="#L5219">5219</span>
|
|
<span id="L5220" rel="#L5220">5220</span>
|
|
<span id="L5221" rel="#L5221">5221</span>
|
|
<span id="L5222" rel="#L5222">5222</span>
|
|
<span id="L5223" rel="#L5223">5223</span>
|
|
<span id="L5224" rel="#L5224">5224</span>
|
|
<span id="L5225" rel="#L5225">5225</span>
|
|
<span id="L5226" rel="#L5226">5226</span>
|
|
<span id="L5227" rel="#L5227">5227</span>
|
|
<span id="L5228" rel="#L5228">5228</span>
|
|
<span id="L5229" rel="#L5229">5229</span>
|
|
<span id="L5230" rel="#L5230">5230</span>
|
|
<span id="L5231" rel="#L5231">5231</span>
|
|
<span id="L5232" rel="#L5232">5232</span>
|
|
<span id="L5233" rel="#L5233">5233</span>
|
|
<span id="L5234" rel="#L5234">5234</span>
|
|
<span id="L5235" rel="#L5235">5235</span>
|
|
<span id="L5236" rel="#L5236">5236</span>
|
|
<span id="L5237" rel="#L5237">5237</span>
|
|
<span id="L5238" rel="#L5238">5238</span>
|
|
<span id="L5239" rel="#L5239">5239</span>
|
|
<span id="L5240" rel="#L5240">5240</span>
|
|
<span id="L5241" rel="#L5241">5241</span>
|
|
<span id="L5242" rel="#L5242">5242</span>
|
|
<span id="L5243" rel="#L5243">5243</span>
|
|
<span id="L5244" rel="#L5244">5244</span>
|
|
<span id="L5245" rel="#L5245">5245</span>
|
|
<span id="L5246" rel="#L5246">5246</span>
|
|
<span id="L5247" rel="#L5247">5247</span>
|
|
<span id="L5248" rel="#L5248">5248</span>
|
|
<span id="L5249" rel="#L5249">5249</span>
|
|
<span id="L5250" rel="#L5250">5250</span>
|
|
<span id="L5251" rel="#L5251">5251</span>
|
|
<span id="L5252" rel="#L5252">5252</span>
|
|
<span id="L5253" rel="#L5253">5253</span>
|
|
<span id="L5254" rel="#L5254">5254</span>
|
|
<span id="L5255" rel="#L5255">5255</span>
|
|
<span id="L5256" rel="#L5256">5256</span>
|
|
<span id="L5257" rel="#L5257">5257</span>
|
|
<span id="L5258" rel="#L5258">5258</span>
|
|
<span id="L5259" rel="#L5259">5259</span>
|
|
<span id="L5260" rel="#L5260">5260</span>
|
|
<span id="L5261" rel="#L5261">5261</span>
|
|
<span id="L5262" rel="#L5262">5262</span>
|
|
<span id="L5263" rel="#L5263">5263</span>
|
|
<span id="L5264" rel="#L5264">5264</span>
|
|
<span id="L5265" rel="#L5265">5265</span>
|
|
<span id="L5266" rel="#L5266">5266</span>
|
|
<span id="L5267" rel="#L5267">5267</span>
|
|
<span id="L5268" rel="#L5268">5268</span>
|
|
<span id="L5269" rel="#L5269">5269</span>
|
|
<span id="L5270" rel="#L5270">5270</span>
|
|
<span id="L5271" rel="#L5271">5271</span>
|
|
<span id="L5272" rel="#L5272">5272</span>
|
|
<span id="L5273" rel="#L5273">5273</span>
|
|
<span id="L5274" rel="#L5274">5274</span>
|
|
<span id="L5275" rel="#L5275">5275</span>
|
|
<span id="L5276" rel="#L5276">5276</span>
|
|
<span id="L5277" rel="#L5277">5277</span>
|
|
<span id="L5278" rel="#L5278">5278</span>
|
|
<span id="L5279" rel="#L5279">5279</span>
|
|
<span id="L5280" rel="#L5280">5280</span>
|
|
<span id="L5281" rel="#L5281">5281</span>
|
|
<span id="L5282" rel="#L5282">5282</span>
|
|
<span id="L5283" rel="#L5283">5283</span>
|
|
<span id="L5284" rel="#L5284">5284</span>
|
|
<span id="L5285" rel="#L5285">5285</span>
|
|
<span id="L5286" rel="#L5286">5286</span>
|
|
<span id="L5287" rel="#L5287">5287</span>
|
|
<span id="L5288" rel="#L5288">5288</span>
|
|
<span id="L5289" rel="#L5289">5289</span>
|
|
<span id="L5290" rel="#L5290">5290</span>
|
|
<span id="L5291" rel="#L5291">5291</span>
|
|
<span id="L5292" rel="#L5292">5292</span>
|
|
<span id="L5293" rel="#L5293">5293</span>
|
|
<span id="L5294" rel="#L5294">5294</span>
|
|
<span id="L5295" rel="#L5295">5295</span>
|
|
<span id="L5296" rel="#L5296">5296</span>
|
|
<span id="L5297" rel="#L5297">5297</span>
|
|
<span id="L5298" rel="#L5298">5298</span>
|
|
<span id="L5299" rel="#L5299">5299</span>
|
|
<span id="L5300" rel="#L5300">5300</span>
|
|
<span id="L5301" rel="#L5301">5301</span>
|
|
<span id="L5302" rel="#L5302">5302</span>
|
|
<span id="L5303" rel="#L5303">5303</span>
|
|
<span id="L5304" rel="#L5304">5304</span>
|
|
<span id="L5305" rel="#L5305">5305</span>
|
|
<span id="L5306" rel="#L5306">5306</span>
|
|
<span id="L5307" rel="#L5307">5307</span>
|
|
<span id="L5308" rel="#L5308">5308</span>
|
|
<span id="L5309" rel="#L5309">5309</span>
|
|
<span id="L5310" rel="#L5310">5310</span>
|
|
<span id="L5311" rel="#L5311">5311</span>
|
|
<span id="L5312" rel="#L5312">5312</span>
|
|
<span id="L5313" rel="#L5313">5313</span>
|
|
<span id="L5314" rel="#L5314">5314</span>
|
|
<span id="L5315" rel="#L5315">5315</span>
|
|
<span id="L5316" rel="#L5316">5316</span>
|
|
<span id="L5317" rel="#L5317">5317</span>
|
|
<span id="L5318" rel="#L5318">5318</span>
|
|
<span id="L5319" rel="#L5319">5319</span>
|
|
<span id="L5320" rel="#L5320">5320</span>
|
|
<span id="L5321" rel="#L5321">5321</span>
|
|
<span id="L5322" rel="#L5322">5322</span>
|
|
<span id="L5323" rel="#L5323">5323</span>
|
|
<span id="L5324" rel="#L5324">5324</span>
|
|
<span id="L5325" rel="#L5325">5325</span>
|
|
<span id="L5326" rel="#L5326">5326</span>
|
|
<span id="L5327" rel="#L5327">5327</span>
|
|
<span id="L5328" rel="#L5328">5328</span>
|
|
<span id="L5329" rel="#L5329">5329</span>
|
|
<span id="L5330" rel="#L5330">5330</span>
|
|
<span id="L5331" rel="#L5331">5331</span>
|
|
<span id="L5332" rel="#L5332">5332</span>
|
|
<span id="L5333" rel="#L5333">5333</span>
|
|
<span id="L5334" rel="#L5334">5334</span>
|
|
<span id="L5335" rel="#L5335">5335</span>
|
|
<span id="L5336" rel="#L5336">5336</span>
|
|
<span id="L5337" rel="#L5337">5337</span>
|
|
<span id="L5338" rel="#L5338">5338</span>
|
|
<span id="L5339" rel="#L5339">5339</span>
|
|
<span id="L5340" rel="#L5340">5340</span>
|
|
<span id="L5341" rel="#L5341">5341</span>
|
|
<span id="L5342" rel="#L5342">5342</span>
|
|
<span id="L5343" rel="#L5343">5343</span>
|
|
<span id="L5344" rel="#L5344">5344</span>
|
|
<span id="L5345" rel="#L5345">5345</span>
|
|
<span id="L5346" rel="#L5346">5346</span>
|
|
<span id="L5347" rel="#L5347">5347</span>
|
|
<span id="L5348" rel="#L5348">5348</span>
|
|
<span id="L5349" rel="#L5349">5349</span>
|
|
<span id="L5350" rel="#L5350">5350</span>
|
|
<span id="L5351" rel="#L5351">5351</span>
|
|
<span id="L5352" rel="#L5352">5352</span>
|
|
<span id="L5353" rel="#L5353">5353</span>
|
|
<span id="L5354" rel="#L5354">5354</span>
|
|
<span id="L5355" rel="#L5355">5355</span>
|
|
<span id="L5356" rel="#L5356">5356</span>
|
|
<span id="L5357" rel="#L5357">5357</span>
|
|
<span id="L5358" rel="#L5358">5358</span>
|
|
<span id="L5359" rel="#L5359">5359</span>
|
|
<span id="L5360" rel="#L5360">5360</span>
|
|
<span id="L5361" rel="#L5361">5361</span>
|
|
<span id="L5362" rel="#L5362">5362</span>
|
|
<span id="L5363" rel="#L5363">5363</span>
|
|
<span id="L5364" rel="#L5364">5364</span>
|
|
<span id="L5365" rel="#L5365">5365</span>
|
|
<span id="L5366" rel="#L5366">5366</span>
|
|
<span id="L5367" rel="#L5367">5367</span>
|
|
<span id="L5368" rel="#L5368">5368</span>
|
|
<span id="L5369" rel="#L5369">5369</span>
|
|
<span id="L5370" rel="#L5370">5370</span>
|
|
<span id="L5371" rel="#L5371">5371</span>
|
|
<span id="L5372" rel="#L5372">5372</span>
|
|
<span id="L5373" rel="#L5373">5373</span>
|
|
<span id="L5374" rel="#L5374">5374</span>
|
|
<span id="L5375" rel="#L5375">5375</span>
|
|
<span id="L5376" rel="#L5376">5376</span>
|
|
<span id="L5377" rel="#L5377">5377</span>
|
|
<span id="L5378" rel="#L5378">5378</span>
|
|
<span id="L5379" rel="#L5379">5379</span>
|
|
<span id="L5380" rel="#L5380">5380</span>
|
|
<span id="L5381" rel="#L5381">5381</span>
|
|
<span id="L5382" rel="#L5382">5382</span>
|
|
<span id="L5383" rel="#L5383">5383</span>
|
|
<span id="L5384" rel="#L5384">5384</span>
|
|
<span id="L5385" rel="#L5385">5385</span>
|
|
<span id="L5386" rel="#L5386">5386</span>
|
|
<span id="L5387" rel="#L5387">5387</span>
|
|
<span id="L5388" rel="#L5388">5388</span>
|
|
<span id="L5389" rel="#L5389">5389</span>
|
|
<span id="L5390" rel="#L5390">5390</span>
|
|
<span id="L5391" rel="#L5391">5391</span>
|
|
<span id="L5392" rel="#L5392">5392</span>
|
|
<span id="L5393" rel="#L5393">5393</span>
|
|
<span id="L5394" rel="#L5394">5394</span>
|
|
<span id="L5395" rel="#L5395">5395</span>
|
|
<span id="L5396" rel="#L5396">5396</span>
|
|
<span id="L5397" rel="#L5397">5397</span>
|
|
<span id="L5398" rel="#L5398">5398</span>
|
|
<span id="L5399" rel="#L5399">5399</span>
|
|
<span id="L5400" rel="#L5400">5400</span>
|
|
<span id="L5401" rel="#L5401">5401</span>
|
|
<span id="L5402" rel="#L5402">5402</span>
|
|
<span id="L5403" rel="#L5403">5403</span>
|
|
<span id="L5404" rel="#L5404">5404</span>
|
|
<span id="L5405" rel="#L5405">5405</span>
|
|
<span id="L5406" rel="#L5406">5406</span>
|
|
<span id="L5407" rel="#L5407">5407</span>
|
|
<span id="L5408" rel="#L5408">5408</span>
|
|
<span id="L5409" rel="#L5409">5409</span>
|
|
<span id="L5410" rel="#L5410">5410</span>
|
|
<span id="L5411" rel="#L5411">5411</span>
|
|
<span id="L5412" rel="#L5412">5412</span>
|
|
<span id="L5413" rel="#L5413">5413</span>
|
|
<span id="L5414" rel="#L5414">5414</span>
|
|
<span id="L5415" rel="#L5415">5415</span>
|
|
<span id="L5416" rel="#L5416">5416</span>
|
|
<span id="L5417" rel="#L5417">5417</span>
|
|
<span id="L5418" rel="#L5418">5418</span>
|
|
<span id="L5419" rel="#L5419">5419</span>
|
|
<span id="L5420" rel="#L5420">5420</span>
|
|
<span id="L5421" rel="#L5421">5421</span>
|
|
<span id="L5422" rel="#L5422">5422</span>
|
|
<span id="L5423" rel="#L5423">5423</span>
|
|
<span id="L5424" rel="#L5424">5424</span>
|
|
<span id="L5425" rel="#L5425">5425</span>
|
|
<span id="L5426" rel="#L5426">5426</span>
|
|
<span id="L5427" rel="#L5427">5427</span>
|
|
<span id="L5428" rel="#L5428">5428</span>
|
|
<span id="L5429" rel="#L5429">5429</span>
|
|
<span id="L5430" rel="#L5430">5430</span>
|
|
<span id="L5431" rel="#L5431">5431</span>
|
|
<span id="L5432" rel="#L5432">5432</span>
|
|
<span id="L5433" rel="#L5433">5433</span>
|
|
<span id="L5434" rel="#L5434">5434</span>
|
|
<span id="L5435" rel="#L5435">5435</span>
|
|
<span id="L5436" rel="#L5436">5436</span>
|
|
<span id="L5437" rel="#L5437">5437</span>
|
|
<span id="L5438" rel="#L5438">5438</span>
|
|
<span id="L5439" rel="#L5439">5439</span>
|
|
<span id="L5440" rel="#L5440">5440</span>
|
|
<span id="L5441" rel="#L5441">5441</span>
|
|
<span id="L5442" rel="#L5442">5442</span>
|
|
<span id="L5443" rel="#L5443">5443</span>
|
|
<span id="L5444" rel="#L5444">5444</span>
|
|
<span id="L5445" rel="#L5445">5445</span>
|
|
<span id="L5446" rel="#L5446">5446</span>
|
|
<span id="L5447" rel="#L5447">5447</span>
|
|
<span id="L5448" rel="#L5448">5448</span>
|
|
<span id="L5449" rel="#L5449">5449</span>
|
|
<span id="L5450" rel="#L5450">5450</span>
|
|
<span id="L5451" rel="#L5451">5451</span>
|
|
<span id="L5452" rel="#L5452">5452</span>
|
|
<span id="L5453" rel="#L5453">5453</span>
|
|
<span id="L5454" rel="#L5454">5454</span>
|
|
<span id="L5455" rel="#L5455">5455</span>
|
|
<span id="L5456" rel="#L5456">5456</span>
|
|
<span id="L5457" rel="#L5457">5457</span>
|
|
<span id="L5458" rel="#L5458">5458</span>
|
|
<span id="L5459" rel="#L5459">5459</span>
|
|
<span id="L5460" rel="#L5460">5460</span>
|
|
<span id="L5461" rel="#L5461">5461</span>
|
|
<span id="L5462" rel="#L5462">5462</span>
|
|
<span id="L5463" rel="#L5463">5463</span>
|
|
<span id="L5464" rel="#L5464">5464</span>
|
|
<span id="L5465" rel="#L5465">5465</span>
|
|
<span id="L5466" rel="#L5466">5466</span>
|
|
<span id="L5467" rel="#L5467">5467</span>
|
|
<span id="L5468" rel="#L5468">5468</span>
|
|
<span id="L5469" rel="#L5469">5469</span>
|
|
<span id="L5470" rel="#L5470">5470</span>
|
|
<span id="L5471" rel="#L5471">5471</span>
|
|
<span id="L5472" rel="#L5472">5472</span>
|
|
<span id="L5473" rel="#L5473">5473</span>
|
|
<span id="L5474" rel="#L5474">5474</span>
|
|
<span id="L5475" rel="#L5475">5475</span>
|
|
<span id="L5476" rel="#L5476">5476</span>
|
|
<span id="L5477" rel="#L5477">5477</span>
|
|
<span id="L5478" rel="#L5478">5478</span>
|
|
<span id="L5479" rel="#L5479">5479</span>
|
|
<span id="L5480" rel="#L5480">5480</span>
|
|
<span id="L5481" rel="#L5481">5481</span>
|
|
<span id="L5482" rel="#L5482">5482</span>
|
|
<span id="L5483" rel="#L5483">5483</span>
|
|
<span id="L5484" rel="#L5484">5484</span>
|
|
<span id="L5485" rel="#L5485">5485</span>
|
|
<span id="L5486" rel="#L5486">5486</span>
|
|
<span id="L5487" rel="#L5487">5487</span>
|
|
<span id="L5488" rel="#L5488">5488</span>
|
|
<span id="L5489" rel="#L5489">5489</span>
|
|
<span id="L5490" rel="#L5490">5490</span>
|
|
<span id="L5491" rel="#L5491">5491</span>
|
|
<span id="L5492" rel="#L5492">5492</span>
|
|
<span id="L5493" rel="#L5493">5493</span>
|
|
<span id="L5494" rel="#L5494">5494</span>
|
|
<span id="L5495" rel="#L5495">5495</span>
|
|
<span id="L5496" rel="#L5496">5496</span>
|
|
<span id="L5497" rel="#L5497">5497</span>
|
|
<span id="L5498" rel="#L5498">5498</span>
|
|
<span id="L5499" rel="#L5499">5499</span>
|
|
<span id="L5500" rel="#L5500">5500</span>
|
|
<span id="L5501" rel="#L5501">5501</span>
|
|
<span id="L5502" rel="#L5502">5502</span>
|
|
<span id="L5503" rel="#L5503">5503</span>
|
|
<span id="L5504" rel="#L5504">5504</span>
|
|
<span id="L5505" rel="#L5505">5505</span>
|
|
<span id="L5506" rel="#L5506">5506</span>
|
|
<span id="L5507" rel="#L5507">5507</span>
|
|
<span id="L5508" rel="#L5508">5508</span>
|
|
<span id="L5509" rel="#L5509">5509</span>
|
|
<span id="L5510" rel="#L5510">5510</span>
|
|
<span id="L5511" rel="#L5511">5511</span>
|
|
<span id="L5512" rel="#L5512">5512</span>
|
|
<span id="L5513" rel="#L5513">5513</span>
|
|
<span id="L5514" rel="#L5514">5514</span>
|
|
<span id="L5515" rel="#L5515">5515</span>
|
|
<span id="L5516" rel="#L5516">5516</span>
|
|
<span id="L5517" rel="#L5517">5517</span>
|
|
<span id="L5518" rel="#L5518">5518</span>
|
|
<span id="L5519" rel="#L5519">5519</span>
|
|
<span id="L5520" rel="#L5520">5520</span>
|
|
<span id="L5521" rel="#L5521">5521</span>
|
|
<span id="L5522" rel="#L5522">5522</span>
|
|
<span id="L5523" rel="#L5523">5523</span>
|
|
<span id="L5524" rel="#L5524">5524</span>
|
|
<span id="L5525" rel="#L5525">5525</span>
|
|
<span id="L5526" rel="#L5526">5526</span>
|
|
<span id="L5527" rel="#L5527">5527</span>
|
|
<span id="L5528" rel="#L5528">5528</span>
|
|
<span id="L5529" rel="#L5529">5529</span>
|
|
<span id="L5530" rel="#L5530">5530</span>
|
|
<span id="L5531" rel="#L5531">5531</span>
|
|
<span id="L5532" rel="#L5532">5532</span>
|
|
<span id="L5533" rel="#L5533">5533</span>
|
|
<span id="L5534" rel="#L5534">5534</span>
|
|
<span id="L5535" rel="#L5535">5535</span>
|
|
<span id="L5536" rel="#L5536">5536</span>
|
|
<span id="L5537" rel="#L5537">5537</span>
|
|
<span id="L5538" rel="#L5538">5538</span>
|
|
<span id="L5539" rel="#L5539">5539</span>
|
|
<span id="L5540" rel="#L5540">5540</span>
|
|
<span id="L5541" rel="#L5541">5541</span>
|
|
<span id="L5542" rel="#L5542">5542</span>
|
|
<span id="L5543" rel="#L5543">5543</span>
|
|
<span id="L5544" rel="#L5544">5544</span>
|
|
<span id="L5545" rel="#L5545">5545</span>
|
|
<span id="L5546" rel="#L5546">5546</span>
|
|
<span id="L5547" rel="#L5547">5547</span>
|
|
<span id="L5548" rel="#L5548">5548</span>
|
|
<span id="L5549" rel="#L5549">5549</span>
|
|
<span id="L5550" rel="#L5550">5550</span>
|
|
<span id="L5551" rel="#L5551">5551</span>
|
|
<span id="L5552" rel="#L5552">5552</span>
|
|
<span id="L5553" rel="#L5553">5553</span>
|
|
<span id="L5554" rel="#L5554">5554</span>
|
|
<span id="L5555" rel="#L5555">5555</span>
|
|
<span id="L5556" rel="#L5556">5556</span>
|
|
<span id="L5557" rel="#L5557">5557</span>
|
|
<span id="L5558" rel="#L5558">5558</span>
|
|
<span id="L5559" rel="#L5559">5559</span>
|
|
<span id="L5560" rel="#L5560">5560</span>
|
|
<span id="L5561" rel="#L5561">5561</span>
|
|
<span id="L5562" rel="#L5562">5562</span>
|
|
<span id="L5563" rel="#L5563">5563</span>
|
|
<span id="L5564" rel="#L5564">5564</span>
|
|
<span id="L5565" rel="#L5565">5565</span>
|
|
<span id="L5566" rel="#L5566">5566</span>
|
|
<span id="L5567" rel="#L5567">5567</span>
|
|
<span id="L5568" rel="#L5568">5568</span>
|
|
<span id="L5569" rel="#L5569">5569</span>
|
|
<span id="L5570" rel="#L5570">5570</span>
|
|
<span id="L5571" rel="#L5571">5571</span>
|
|
<span id="L5572" rel="#L5572">5572</span>
|
|
<span id="L5573" rel="#L5573">5573</span>
|
|
<span id="L5574" rel="#L5574">5574</span>
|
|
<span id="L5575" rel="#L5575">5575</span>
|
|
<span id="L5576" rel="#L5576">5576</span>
|
|
<span id="L5577" rel="#L5577">5577</span>
|
|
<span id="L5578" rel="#L5578">5578</span>
|
|
<span id="L5579" rel="#L5579">5579</span>
|
|
<span id="L5580" rel="#L5580">5580</span>
|
|
<span id="L5581" rel="#L5581">5581</span>
|
|
<span id="L5582" rel="#L5582">5582</span>
|
|
<span id="L5583" rel="#L5583">5583</span>
|
|
<span id="L5584" rel="#L5584">5584</span>
|
|
<span id="L5585" rel="#L5585">5585</span>
|
|
<span id="L5586" rel="#L5586">5586</span>
|
|
<span id="L5587" rel="#L5587">5587</span>
|
|
<span id="L5588" rel="#L5588">5588</span>
|
|
<span id="L5589" rel="#L5589">5589</span>
|
|
<span id="L5590" rel="#L5590">5590</span>
|
|
<span id="L5591" rel="#L5591">5591</span>
|
|
<span id="L5592" rel="#L5592">5592</span>
|
|
<span id="L5593" rel="#L5593">5593</span>
|
|
<span id="L5594" rel="#L5594">5594</span>
|
|
<span id="L5595" rel="#L5595">5595</span>
|
|
<span id="L5596" rel="#L5596">5596</span>
|
|
<span id="L5597" rel="#L5597">5597</span>
|
|
<span id="L5598" rel="#L5598">5598</span>
|
|
<span id="L5599" rel="#L5599">5599</span>
|
|
<span id="L5600" rel="#L5600">5600</span>
|
|
<span id="L5601" rel="#L5601">5601</span>
|
|
<span id="L5602" rel="#L5602">5602</span>
|
|
<span id="L5603" rel="#L5603">5603</span>
|
|
<span id="L5604" rel="#L5604">5604</span>
|
|
<span id="L5605" rel="#L5605">5605</span>
|
|
<span id="L5606" rel="#L5606">5606</span>
|
|
<span id="L5607" rel="#L5607">5607</span>
|
|
<span id="L5608" rel="#L5608">5608</span>
|
|
<span id="L5609" rel="#L5609">5609</span>
|
|
<span id="L5610" rel="#L5610">5610</span>
|
|
<span id="L5611" rel="#L5611">5611</span>
|
|
<span id="L5612" rel="#L5612">5612</span>
|
|
<span id="L5613" rel="#L5613">5613</span>
|
|
<span id="L5614" rel="#L5614">5614</span>
|
|
<span id="L5615" rel="#L5615">5615</span>
|
|
<span id="L5616" rel="#L5616">5616</span>
|
|
<span id="L5617" rel="#L5617">5617</span>
|
|
<span id="L5618" rel="#L5618">5618</span>
|
|
<span id="L5619" rel="#L5619">5619</span>
|
|
<span id="L5620" rel="#L5620">5620</span>
|
|
<span id="L5621" rel="#L5621">5621</span>
|
|
<span id="L5622" rel="#L5622">5622</span>
|
|
<span id="L5623" rel="#L5623">5623</span>
|
|
<span id="L5624" rel="#L5624">5624</span>
|
|
<span id="L5625" rel="#L5625">5625</span>
|
|
<span id="L5626" rel="#L5626">5626</span>
|
|
<span id="L5627" rel="#L5627">5627</span>
|
|
<span id="L5628" rel="#L5628">5628</span>
|
|
<span id="L5629" rel="#L5629">5629</span>
|
|
<span id="L5630" rel="#L5630">5630</span>
|
|
<span id="L5631" rel="#L5631">5631</span>
|
|
<span id="L5632" rel="#L5632">5632</span>
|
|
<span id="L5633" rel="#L5633">5633</span>
|
|
<span id="L5634" rel="#L5634">5634</span>
|
|
<span id="L5635" rel="#L5635">5635</span>
|
|
<span id="L5636" rel="#L5636">5636</span>
|
|
<span id="L5637" rel="#L5637">5637</span>
|
|
<span id="L5638" rel="#L5638">5638</span>
|
|
<span id="L5639" rel="#L5639">5639</span>
|
|
<span id="L5640" rel="#L5640">5640</span>
|
|
<span id="L5641" rel="#L5641">5641</span>
|
|
<span id="L5642" rel="#L5642">5642</span>
|
|
<span id="L5643" rel="#L5643">5643</span>
|
|
<span id="L5644" rel="#L5644">5644</span>
|
|
<span id="L5645" rel="#L5645">5645</span>
|
|
<span id="L5646" rel="#L5646">5646</span>
|
|
<span id="L5647" rel="#L5647">5647</span>
|
|
<span id="L5648" rel="#L5648">5648</span>
|
|
<span id="L5649" rel="#L5649">5649</span>
|
|
<span id="L5650" rel="#L5650">5650</span>
|
|
<span id="L5651" rel="#L5651">5651</span>
|
|
<span id="L5652" rel="#L5652">5652</span>
|
|
<span id="L5653" rel="#L5653">5653</span>
|
|
<span id="L5654" rel="#L5654">5654</span>
|
|
<span id="L5655" rel="#L5655">5655</span>
|
|
<span id="L5656" rel="#L5656">5656</span>
|
|
<span id="L5657" rel="#L5657">5657</span>
|
|
<span id="L5658" rel="#L5658">5658</span>
|
|
<span id="L5659" rel="#L5659">5659</span>
|
|
<span id="L5660" rel="#L5660">5660</span>
|
|
<span id="L5661" rel="#L5661">5661</span>
|
|
<span id="L5662" rel="#L5662">5662</span>
|
|
<span id="L5663" rel="#L5663">5663</span>
|
|
<span id="L5664" rel="#L5664">5664</span>
|
|
<span id="L5665" rel="#L5665">5665</span>
|
|
<span id="L5666" rel="#L5666">5666</span>
|
|
<span id="L5667" rel="#L5667">5667</span>
|
|
<span id="L5668" rel="#L5668">5668</span>
|
|
<span id="L5669" rel="#L5669">5669</span>
|
|
<span id="L5670" rel="#L5670">5670</span>
|
|
<span id="L5671" rel="#L5671">5671</span>
|
|
<span id="L5672" rel="#L5672">5672</span>
|
|
<span id="L5673" rel="#L5673">5673</span>
|
|
<span id="L5674" rel="#L5674">5674</span>
|
|
<span id="L5675" rel="#L5675">5675</span>
|
|
<span id="L5676" rel="#L5676">5676</span>
|
|
<span id="L5677" rel="#L5677">5677</span>
|
|
<span id="L5678" rel="#L5678">5678</span>
|
|
<span id="L5679" rel="#L5679">5679</span>
|
|
<span id="L5680" rel="#L5680">5680</span>
|
|
<span id="L5681" rel="#L5681">5681</span>
|
|
<span id="L5682" rel="#L5682">5682</span>
|
|
<span id="L5683" rel="#L5683">5683</span>
|
|
<span id="L5684" rel="#L5684">5684</span>
|
|
<span id="L5685" rel="#L5685">5685</span>
|
|
<span id="L5686" rel="#L5686">5686</span>
|
|
<span id="L5687" rel="#L5687">5687</span>
|
|
<span id="L5688" rel="#L5688">5688</span>
|
|
<span id="L5689" rel="#L5689">5689</span>
|
|
<span id="L5690" rel="#L5690">5690</span>
|
|
<span id="L5691" rel="#L5691">5691</span>
|
|
<span id="L5692" rel="#L5692">5692</span>
|
|
<span id="L5693" rel="#L5693">5693</span>
|
|
<span id="L5694" rel="#L5694">5694</span>
|
|
<span id="L5695" rel="#L5695">5695</span>
|
|
<span id="L5696" rel="#L5696">5696</span>
|
|
<span id="L5697" rel="#L5697">5697</span>
|
|
<span id="L5698" rel="#L5698">5698</span>
|
|
<span id="L5699" rel="#L5699">5699</span>
|
|
<span id="L5700" rel="#L5700">5700</span>
|
|
<span id="L5701" rel="#L5701">5701</span>
|
|
<span id="L5702" rel="#L5702">5702</span>
|
|
<span id="L5703" rel="#L5703">5703</span>
|
|
<span id="L5704" rel="#L5704">5704</span>
|
|
<span id="L5705" rel="#L5705">5705</span>
|
|
<span id="L5706" rel="#L5706">5706</span>
|
|
<span id="L5707" rel="#L5707">5707</span>
|
|
<span id="L5708" rel="#L5708">5708</span>
|
|
<span id="L5709" rel="#L5709">5709</span>
|
|
<span id="L5710" rel="#L5710">5710</span>
|
|
<span id="L5711" rel="#L5711">5711</span>
|
|
<span id="L5712" rel="#L5712">5712</span>
|
|
<span id="L5713" rel="#L5713">5713</span>
|
|
<span id="L5714" rel="#L5714">5714</span>
|
|
<span id="L5715" rel="#L5715">5715</span>
|
|
<span id="L5716" rel="#L5716">5716</span>
|
|
<span id="L5717" rel="#L5717">5717</span>
|
|
<span id="L5718" rel="#L5718">5718</span>
|
|
<span id="L5719" rel="#L5719">5719</span>
|
|
<span id="L5720" rel="#L5720">5720</span>
|
|
<span id="L5721" rel="#L5721">5721</span>
|
|
<span id="L5722" rel="#L5722">5722</span>
|
|
<span id="L5723" rel="#L5723">5723</span>
|
|
<span id="L5724" rel="#L5724">5724</span>
|
|
<span id="L5725" rel="#L5725">5725</span>
|
|
<span id="L5726" rel="#L5726">5726</span>
|
|
<span id="L5727" rel="#L5727">5727</span>
|
|
<span id="L5728" rel="#L5728">5728</span>
|
|
<span id="L5729" rel="#L5729">5729</span>
|
|
<span id="L5730" rel="#L5730">5730</span>
|
|
<span id="L5731" rel="#L5731">5731</span>
|
|
<span id="L5732" rel="#L5732">5732</span>
|
|
<span id="L5733" rel="#L5733">5733</span>
|
|
<span id="L5734" rel="#L5734">5734</span>
|
|
<span id="L5735" rel="#L5735">5735</span>
|
|
<span id="L5736" rel="#L5736">5736</span>
|
|
<span id="L5737" rel="#L5737">5737</span>
|
|
<span id="L5738" rel="#L5738">5738</span>
|
|
<span id="L5739" rel="#L5739">5739</span>
|
|
<span id="L5740" rel="#L5740">5740</span>
|
|
<span id="L5741" rel="#L5741">5741</span>
|
|
<span id="L5742" rel="#L5742">5742</span>
|
|
<span id="L5743" rel="#L5743">5743</span>
|
|
<span id="L5744" rel="#L5744">5744</span>
|
|
<span id="L5745" rel="#L5745">5745</span>
|
|
<span id="L5746" rel="#L5746">5746</span>
|
|
<span id="L5747" rel="#L5747">5747</span>
|
|
<span id="L5748" rel="#L5748">5748</span>
|
|
<span id="L5749" rel="#L5749">5749</span>
|
|
<span id="L5750" rel="#L5750">5750</span>
|
|
<span id="L5751" rel="#L5751">5751</span>
|
|
<span id="L5752" rel="#L5752">5752</span>
|
|
<span id="L5753" rel="#L5753">5753</span>
|
|
<span id="L5754" rel="#L5754">5754</span>
|
|
<span id="L5755" rel="#L5755">5755</span>
|
|
<span id="L5756" rel="#L5756">5756</span>
|
|
<span id="L5757" rel="#L5757">5757</span>
|
|
<span id="L5758" rel="#L5758">5758</span>
|
|
<span id="L5759" rel="#L5759">5759</span>
|
|
<span id="L5760" rel="#L5760">5760</span>
|
|
<span id="L5761" rel="#L5761">5761</span>
|
|
<span id="L5762" rel="#L5762">5762</span>
|
|
<span id="L5763" rel="#L5763">5763</span>
|
|
<span id="L5764" rel="#L5764">5764</span>
|
|
<span id="L5765" rel="#L5765">5765</span>
|
|
<span id="L5766" rel="#L5766">5766</span>
|
|
<span id="L5767" rel="#L5767">5767</span>
|
|
<span id="L5768" rel="#L5768">5768</span>
|
|
<span id="L5769" rel="#L5769">5769</span>
|
|
<span id="L5770" rel="#L5770">5770</span>
|
|
<span id="L5771" rel="#L5771">5771</span>
|
|
<span id="L5772" rel="#L5772">5772</span>
|
|
<span id="L5773" rel="#L5773">5773</span>
|
|
<span id="L5774" rel="#L5774">5774</span>
|
|
<span id="L5775" rel="#L5775">5775</span>
|
|
<span id="L5776" rel="#L5776">5776</span>
|
|
<span id="L5777" rel="#L5777">5777</span>
|
|
<span id="L5778" rel="#L5778">5778</span>
|
|
<span id="L5779" rel="#L5779">5779</span>
|
|
<span id="L5780" rel="#L5780">5780</span>
|
|
<span id="L5781" rel="#L5781">5781</span>
|
|
<span id="L5782" rel="#L5782">5782</span>
|
|
<span id="L5783" rel="#L5783">5783</span>
|
|
<span id="L5784" rel="#L5784">5784</span>
|
|
<span id="L5785" rel="#L5785">5785</span>
|
|
<span id="L5786" rel="#L5786">5786</span>
|
|
<span id="L5787" rel="#L5787">5787</span>
|
|
<span id="L5788" rel="#L5788">5788</span>
|
|
<span id="L5789" rel="#L5789">5789</span>
|
|
<span id="L5790" rel="#L5790">5790</span>
|
|
<span id="L5791" rel="#L5791">5791</span>
|
|
<span id="L5792" rel="#L5792">5792</span>
|
|
<span id="L5793" rel="#L5793">5793</span>
|
|
<span id="L5794" rel="#L5794">5794</span>
|
|
<span id="L5795" rel="#L5795">5795</span>
|
|
<span id="L5796" rel="#L5796">5796</span>
|
|
<span id="L5797" rel="#L5797">5797</span>
|
|
<span id="L5798" rel="#L5798">5798</span>
|
|
<span id="L5799" rel="#L5799">5799</span>
|
|
<span id="L5800" rel="#L5800">5800</span>
|
|
<span id="L5801" rel="#L5801">5801</span>
|
|
<span id="L5802" rel="#L5802">5802</span>
|
|
<span id="L5803" rel="#L5803">5803</span>
|
|
<span id="L5804" rel="#L5804">5804</span>
|
|
<span id="L5805" rel="#L5805">5805</span>
|
|
<span id="L5806" rel="#L5806">5806</span>
|
|
<span id="L5807" rel="#L5807">5807</span>
|
|
<span id="L5808" rel="#L5808">5808</span>
|
|
<span id="L5809" rel="#L5809">5809</span>
|
|
<span id="L5810" rel="#L5810">5810</span>
|
|
<span id="L5811" rel="#L5811">5811</span>
|
|
<span id="L5812" rel="#L5812">5812</span>
|
|
<span id="L5813" rel="#L5813">5813</span>
|
|
<span id="L5814" rel="#L5814">5814</span>
|
|
<span id="L5815" rel="#L5815">5815</span>
|
|
<span id="L5816" rel="#L5816">5816</span>
|
|
<span id="L5817" rel="#L5817">5817</span>
|
|
<span id="L5818" rel="#L5818">5818</span>
|
|
<span id="L5819" rel="#L5819">5819</span>
|
|
<span id="L5820" rel="#L5820">5820</span>
|
|
<span id="L5821" rel="#L5821">5821</span>
|
|
<span id="L5822" rel="#L5822">5822</span>
|
|
<span id="L5823" rel="#L5823">5823</span>
|
|
<span id="L5824" rel="#L5824">5824</span>
|
|
<span id="L5825" rel="#L5825">5825</span>
|
|
<span id="L5826" rel="#L5826">5826</span>
|
|
<span id="L5827" rel="#L5827">5827</span>
|
|
<span id="L5828" rel="#L5828">5828</span>
|
|
<span id="L5829" rel="#L5829">5829</span>
|
|
<span id="L5830" rel="#L5830">5830</span>
|
|
<span id="L5831" rel="#L5831">5831</span>
|
|
<span id="L5832" rel="#L5832">5832</span>
|
|
<span id="L5833" rel="#L5833">5833</span>
|
|
<span id="L5834" rel="#L5834">5834</span>
|
|
<span id="L5835" rel="#L5835">5835</span>
|
|
<span id="L5836" rel="#L5836">5836</span>
|
|
<span id="L5837" rel="#L5837">5837</span>
|
|
<span id="L5838" rel="#L5838">5838</span>
|
|
<span id="L5839" rel="#L5839">5839</span>
|
|
<span id="L5840" rel="#L5840">5840</span>
|
|
<span id="L5841" rel="#L5841">5841</span>
|
|
<span id="L5842" rel="#L5842">5842</span>
|
|
<span id="L5843" rel="#L5843">5843</span>
|
|
<span id="L5844" rel="#L5844">5844</span>
|
|
<span id="L5845" rel="#L5845">5845</span>
|
|
<span id="L5846" rel="#L5846">5846</span>
|
|
<span id="L5847" rel="#L5847">5847</span>
|
|
<span id="L5848" rel="#L5848">5848</span>
|
|
<span id="L5849" rel="#L5849">5849</span>
|
|
<span id="L5850" rel="#L5850">5850</span>
|
|
<span id="L5851" rel="#L5851">5851</span>
|
|
<span id="L5852" rel="#L5852">5852</span>
|
|
<span id="L5853" rel="#L5853">5853</span>
|
|
<span id="L5854" rel="#L5854">5854</span>
|
|
<span id="L5855" rel="#L5855">5855</span>
|
|
<span id="L5856" rel="#L5856">5856</span>
|
|
<span id="L5857" rel="#L5857">5857</span>
|
|
<span id="L5858" rel="#L5858">5858</span>
|
|
<span id="L5859" rel="#L5859">5859</span>
|
|
<span id="L5860" rel="#L5860">5860</span>
|
|
<span id="L5861" rel="#L5861">5861</span>
|
|
<span id="L5862" rel="#L5862">5862</span>
|
|
<span id="L5863" rel="#L5863">5863</span>
|
|
<span id="L5864" rel="#L5864">5864</span>
|
|
<span id="L5865" rel="#L5865">5865</span>
|
|
<span id="L5866" rel="#L5866">5866</span>
|
|
<span id="L5867" rel="#L5867">5867</span>
|
|
<span id="L5868" rel="#L5868">5868</span>
|
|
<span id="L5869" rel="#L5869">5869</span>
|
|
<span id="L5870" rel="#L5870">5870</span>
|
|
<span id="L5871" rel="#L5871">5871</span>
|
|
<span id="L5872" rel="#L5872">5872</span>
|
|
<span id="L5873" rel="#L5873">5873</span>
|
|
<span id="L5874" rel="#L5874">5874</span>
|
|
<span id="L5875" rel="#L5875">5875</span>
|
|
<span id="L5876" rel="#L5876">5876</span>
|
|
<span id="L5877" rel="#L5877">5877</span>
|
|
<span id="L5878" rel="#L5878">5878</span>
|
|
<span id="L5879" rel="#L5879">5879</span>
|
|
<span id="L5880" rel="#L5880">5880</span>
|
|
<span id="L5881" rel="#L5881">5881</span>
|
|
<span id="L5882" rel="#L5882">5882</span>
|
|
<span id="L5883" rel="#L5883">5883</span>
|
|
<span id="L5884" rel="#L5884">5884</span>
|
|
<span id="L5885" rel="#L5885">5885</span>
|
|
<span id="L5886" rel="#L5886">5886</span>
|
|
<span id="L5887" rel="#L5887">5887</span>
|
|
<span id="L5888" rel="#L5888">5888</span>
|
|
<span id="L5889" rel="#L5889">5889</span>
|
|
<span id="L5890" rel="#L5890">5890</span>
|
|
<span id="L5891" rel="#L5891">5891</span>
|
|
<span id="L5892" rel="#L5892">5892</span>
|
|
<span id="L5893" rel="#L5893">5893</span>
|
|
<span id="L5894" rel="#L5894">5894</span>
|
|
<span id="L5895" rel="#L5895">5895</span>
|
|
<span id="L5896" rel="#L5896">5896</span>
|
|
<span id="L5897" rel="#L5897">5897</span>
|
|
<span id="L5898" rel="#L5898">5898</span>
|
|
<span id="L5899" rel="#L5899">5899</span>
|
|
<span id="L5900" rel="#L5900">5900</span>
|
|
<span id="L5901" rel="#L5901">5901</span>
|
|
<span id="L5902" rel="#L5902">5902</span>
|
|
<span id="L5903" rel="#L5903">5903</span>
|
|
<span id="L5904" rel="#L5904">5904</span>
|
|
<span id="L5905" rel="#L5905">5905</span>
|
|
<span id="L5906" rel="#L5906">5906</span>
|
|
<span id="L5907" rel="#L5907">5907</span>
|
|
<span id="L5908" rel="#L5908">5908</span>
|
|
<span id="L5909" rel="#L5909">5909</span>
|
|
<span id="L5910" rel="#L5910">5910</span>
|
|
<span id="L5911" rel="#L5911">5911</span>
|
|
<span id="L5912" rel="#L5912">5912</span>
|
|
<span id="L5913" rel="#L5913">5913</span>
|
|
<span id="L5914" rel="#L5914">5914</span>
|
|
<span id="L5915" rel="#L5915">5915</span>
|
|
<span id="L5916" rel="#L5916">5916</span>
|
|
<span id="L5917" rel="#L5917">5917</span>
|
|
<span id="L5918" rel="#L5918">5918</span>
|
|
<span id="L5919" rel="#L5919">5919</span>
|
|
<span id="L5920" rel="#L5920">5920</span>
|
|
<span id="L5921" rel="#L5921">5921</span>
|
|
<span id="L5922" rel="#L5922">5922</span>
|
|
<span id="L5923" rel="#L5923">5923</span>
|
|
<span id="L5924" rel="#L5924">5924</span>
|
|
<span id="L5925" rel="#L5925">5925</span>
|
|
<span id="L5926" rel="#L5926">5926</span>
|
|
<span id="L5927" rel="#L5927">5927</span>
|
|
<span id="L5928" rel="#L5928">5928</span>
|
|
<span id="L5929" rel="#L5929">5929</span>
|
|
<span id="L5930" rel="#L5930">5930</span>
|
|
<span id="L5931" rel="#L5931">5931</span>
|
|
<span id="L5932" rel="#L5932">5932</span>
|
|
<span id="L5933" rel="#L5933">5933</span>
|
|
<span id="L5934" rel="#L5934">5934</span>
|
|
<span id="L5935" rel="#L5935">5935</span>
|
|
<span id="L5936" rel="#L5936">5936</span>
|
|
<span id="L5937" rel="#L5937">5937</span>
|
|
<span id="L5938" rel="#L5938">5938</span>
|
|
<span id="L5939" rel="#L5939">5939</span>
|
|
<span id="L5940" rel="#L5940">5940</span>
|
|
<span id="L5941" rel="#L5941">5941</span>
|
|
<span id="L5942" rel="#L5942">5942</span>
|
|
<span id="L5943" rel="#L5943">5943</span>
|
|
<span id="L5944" rel="#L5944">5944</span>
|
|
<span id="L5945" rel="#L5945">5945</span>
|
|
<span id="L5946" rel="#L5946">5946</span>
|
|
<span id="L5947" rel="#L5947">5947</span>
|
|
<span id="L5948" rel="#L5948">5948</span>
|
|
<span id="L5949" rel="#L5949">5949</span>
|
|
<span id="L5950" rel="#L5950">5950</span>
|
|
<span id="L5951" rel="#L5951">5951</span>
|
|
<span id="L5952" rel="#L5952">5952</span>
|
|
<span id="L5953" rel="#L5953">5953</span>
|
|
<span id="L5954" rel="#L5954">5954</span>
|
|
<span id="L5955" rel="#L5955">5955</span>
|
|
<span id="L5956" rel="#L5956">5956</span>
|
|
<span id="L5957" rel="#L5957">5957</span>
|
|
<span id="L5958" rel="#L5958">5958</span>
|
|
<span id="L5959" rel="#L5959">5959</span>
|
|
<span id="L5960" rel="#L5960">5960</span>
|
|
<span id="L5961" rel="#L5961">5961</span>
|
|
<span id="L5962" rel="#L5962">5962</span>
|
|
<span id="L5963" rel="#L5963">5963</span>
|
|
<span id="L5964" rel="#L5964">5964</span>
|
|
<span id="L5965" rel="#L5965">5965</span>
|
|
<span id="L5966" rel="#L5966">5966</span>
|
|
<span id="L5967" rel="#L5967">5967</span>
|
|
<span id="L5968" rel="#L5968">5968</span>
|
|
<span id="L5969" rel="#L5969">5969</span>
|
|
<span id="L5970" rel="#L5970">5970</span>
|
|
<span id="L5971" rel="#L5971">5971</span>
|
|
<span id="L5972" rel="#L5972">5972</span>
|
|
<span id="L5973" rel="#L5973">5973</span>
|
|
<span id="L5974" rel="#L5974">5974</span>
|
|
<span id="L5975" rel="#L5975">5975</span>
|
|
<span id="L5976" rel="#L5976">5976</span>
|
|
<span id="L5977" rel="#L5977">5977</span>
|
|
<span id="L5978" rel="#L5978">5978</span>
|
|
<span id="L5979" rel="#L5979">5979</span>
|
|
<span id="L5980" rel="#L5980">5980</span>
|
|
<span id="L5981" rel="#L5981">5981</span>
|
|
<span id="L5982" rel="#L5982">5982</span>
|
|
<span id="L5983" rel="#L5983">5983</span>
|
|
<span id="L5984" rel="#L5984">5984</span>
|
|
<span id="L5985" rel="#L5985">5985</span>
|
|
<span id="L5986" rel="#L5986">5986</span>
|
|
<span id="L5987" rel="#L5987">5987</span>
|
|
<span id="L5988" rel="#L5988">5988</span>
|
|
<span id="L5989" rel="#L5989">5989</span>
|
|
<span id="L5990" rel="#L5990">5990</span>
|
|
<span id="L5991" rel="#L5991">5991</span>
|
|
<span id="L5992" rel="#L5992">5992</span>
|
|
<span id="L5993" rel="#L5993">5993</span>
|
|
<span id="L5994" rel="#L5994">5994</span>
|
|
<span id="L5995" rel="#L5995">5995</span>
|
|
<span id="L5996" rel="#L5996">5996</span>
|
|
<span id="L5997" rel="#L5997">5997</span>
|
|
<span id="L5998" rel="#L5998">5998</span>
|
|
<span id="L5999" rel="#L5999">5999</span>
|
|
<span id="L6000" rel="#L6000">6000</span>
|
|
<span id="L6001" rel="#L6001">6001</span>
|
|
<span id="L6002" rel="#L6002">6002</span>
|
|
<span id="L6003" rel="#L6003">6003</span>
|
|
<span id="L6004" rel="#L6004">6004</span>
|
|
<span id="L6005" rel="#L6005">6005</span>
|
|
<span id="L6006" rel="#L6006">6006</span>
|
|
<span id="L6007" rel="#L6007">6007</span>
|
|
<span id="L6008" rel="#L6008">6008</span>
|
|
<span id="L6009" rel="#L6009">6009</span>
|
|
<span id="L6010" rel="#L6010">6010</span>
|
|
<span id="L6011" rel="#L6011">6011</span>
|
|
<span id="L6012" rel="#L6012">6012</span>
|
|
<span id="L6013" rel="#L6013">6013</span>
|
|
<span id="L6014" rel="#L6014">6014</span>
|
|
<span id="L6015" rel="#L6015">6015</span>
|
|
<span id="L6016" rel="#L6016">6016</span>
|
|
<span id="L6017" rel="#L6017">6017</span>
|
|
<span id="L6018" rel="#L6018">6018</span>
|
|
<span id="L6019" rel="#L6019">6019</span>
|
|
<span id="L6020" rel="#L6020">6020</span>
|
|
<span id="L6021" rel="#L6021">6021</span>
|
|
<span id="L6022" rel="#L6022">6022</span>
|
|
<span id="L6023" rel="#L6023">6023</span>
|
|
<span id="L6024" rel="#L6024">6024</span>
|
|
<span id="L6025" rel="#L6025">6025</span>
|
|
<span id="L6026" rel="#L6026">6026</span>
|
|
<span id="L6027" rel="#L6027">6027</span>
|
|
<span id="L6028" rel="#L6028">6028</span>
|
|
<span id="L6029" rel="#L6029">6029</span>
|
|
<span id="L6030" rel="#L6030">6030</span>
|
|
<span id="L6031" rel="#L6031">6031</span>
|
|
<span id="L6032" rel="#L6032">6032</span>
|
|
<span id="L6033" rel="#L6033">6033</span>
|
|
<span id="L6034" rel="#L6034">6034</span>
|
|
<span id="L6035" rel="#L6035">6035</span>
|
|
<span id="L6036" rel="#L6036">6036</span>
|
|
<span id="L6037" rel="#L6037">6037</span>
|
|
<span id="L6038" rel="#L6038">6038</span>
|
|
<span id="L6039" rel="#L6039">6039</span>
|
|
<span id="L6040" rel="#L6040">6040</span>
|
|
<span id="L6041" rel="#L6041">6041</span>
|
|
<span id="L6042" rel="#L6042">6042</span>
|
|
<span id="L6043" rel="#L6043">6043</span>
|
|
<span id="L6044" rel="#L6044">6044</span>
|
|
<span id="L6045" rel="#L6045">6045</span>
|
|
<span id="L6046" rel="#L6046">6046</span>
|
|
<span id="L6047" rel="#L6047">6047</span>
|
|
<span id="L6048" rel="#L6048">6048</span>
|
|
<span id="L6049" rel="#L6049">6049</span>
|
|
<span id="L6050" rel="#L6050">6050</span>
|
|
<span id="L6051" rel="#L6051">6051</span>
|
|
<span id="L6052" rel="#L6052">6052</span>
|
|
<span id="L6053" rel="#L6053">6053</span>
|
|
<span id="L6054" rel="#L6054">6054</span>
|
|
<span id="L6055" rel="#L6055">6055</span>
|
|
<span id="L6056" rel="#L6056">6056</span>
|
|
<span id="L6057" rel="#L6057">6057</span>
|
|
<span id="L6058" rel="#L6058">6058</span>
|
|
<span id="L6059" rel="#L6059">6059</span>
|
|
<span id="L6060" rel="#L6060">6060</span>
|
|
<span id="L6061" rel="#L6061">6061</span>
|
|
<span id="L6062" rel="#L6062">6062</span>
|
|
<span id="L6063" rel="#L6063">6063</span>
|
|
<span id="L6064" rel="#L6064">6064</span>
|
|
<span id="L6065" rel="#L6065">6065</span>
|
|
<span id="L6066" rel="#L6066">6066</span>
|
|
<span id="L6067" rel="#L6067">6067</span>
|
|
<span id="L6068" rel="#L6068">6068</span>
|
|
<span id="L6069" rel="#L6069">6069</span>
|
|
<span id="L6070" rel="#L6070">6070</span>
|
|
<span id="L6071" rel="#L6071">6071</span>
|
|
<span id="L6072" rel="#L6072">6072</span>
|
|
<span id="L6073" rel="#L6073">6073</span>
|
|
<span id="L6074" rel="#L6074">6074</span>
|
|
<span id="L6075" rel="#L6075">6075</span>
|
|
<span id="L6076" rel="#L6076">6076</span>
|
|
<span id="L6077" rel="#L6077">6077</span>
|
|
<span id="L6078" rel="#L6078">6078</span>
|
|
<span id="L6079" rel="#L6079">6079</span>
|
|
<span id="L6080" rel="#L6080">6080</span>
|
|
<span id="L6081" rel="#L6081">6081</span>
|
|
<span id="L6082" rel="#L6082">6082</span>
|
|
<span id="L6083" rel="#L6083">6083</span>
|
|
<span id="L6084" rel="#L6084">6084</span>
|
|
<span id="L6085" rel="#L6085">6085</span>
|
|
<span id="L6086" rel="#L6086">6086</span>
|
|
<span id="L6087" rel="#L6087">6087</span>
|
|
<span id="L6088" rel="#L6088">6088</span>
|
|
<span id="L6089" rel="#L6089">6089</span>
|
|
<span id="L6090" rel="#L6090">6090</span>
|
|
<span id="L6091" rel="#L6091">6091</span>
|
|
<span id="L6092" rel="#L6092">6092</span>
|
|
<span id="L6093" rel="#L6093">6093</span>
|
|
<span id="L6094" rel="#L6094">6094</span>
|
|
<span id="L6095" rel="#L6095">6095</span>
|
|
<span id="L6096" rel="#L6096">6096</span>
|
|
<span id="L6097" rel="#L6097">6097</span>
|
|
<span id="L6098" rel="#L6098">6098</span>
|
|
<span id="L6099" rel="#L6099">6099</span>
|
|
<span id="L6100" rel="#L6100">6100</span>
|
|
<span id="L6101" rel="#L6101">6101</span>
|
|
<span id="L6102" rel="#L6102">6102</span>
|
|
<span id="L6103" rel="#L6103">6103</span>
|
|
<span id="L6104" rel="#L6104">6104</span>
|
|
<span id="L6105" rel="#L6105">6105</span>
|
|
<span id="L6106" rel="#L6106">6106</span>
|
|
<span id="L6107" rel="#L6107">6107</span>
|
|
<span id="L6108" rel="#L6108">6108</span>
|
|
<span id="L6109" rel="#L6109">6109</span>
|
|
<span id="L6110" rel="#L6110">6110</span>
|
|
<span id="L6111" rel="#L6111">6111</span>
|
|
<span id="L6112" rel="#L6112">6112</span>
|
|
<span id="L6113" rel="#L6113">6113</span>
|
|
<span id="L6114" rel="#L6114">6114</span>
|
|
<span id="L6115" rel="#L6115">6115</span>
|
|
<span id="L6116" rel="#L6116">6116</span>
|
|
<span id="L6117" rel="#L6117">6117</span>
|
|
<span id="L6118" rel="#L6118">6118</span>
|
|
<span id="L6119" rel="#L6119">6119</span>
|
|
<span id="L6120" rel="#L6120">6120</span>
|
|
<span id="L6121" rel="#L6121">6121</span>
|
|
<span id="L6122" rel="#L6122">6122</span>
|
|
<span id="L6123" rel="#L6123">6123</span>
|
|
<span id="L6124" rel="#L6124">6124</span>
|
|
<span id="L6125" rel="#L6125">6125</span>
|
|
<span id="L6126" rel="#L6126">6126</span>
|
|
<span id="L6127" rel="#L6127">6127</span>
|
|
<span id="L6128" rel="#L6128">6128</span>
|
|
<span id="L6129" rel="#L6129">6129</span>
|
|
<span id="L6130" rel="#L6130">6130</span>
|
|
<span id="L6131" rel="#L6131">6131</span>
|
|
<span id="L6132" rel="#L6132">6132</span>
|
|
<span id="L6133" rel="#L6133">6133</span>
|
|
<span id="L6134" rel="#L6134">6134</span>
|
|
<span id="L6135" rel="#L6135">6135</span>
|
|
<span id="L6136" rel="#L6136">6136</span>
|
|
<span id="L6137" rel="#L6137">6137</span>
|
|
<span id="L6138" rel="#L6138">6138</span>
|
|
<span id="L6139" rel="#L6139">6139</span>
|
|
<span id="L6140" rel="#L6140">6140</span>
|
|
<span id="L6141" rel="#L6141">6141</span>
|
|
<span id="L6142" rel="#L6142">6142</span>
|
|
<span id="L6143" rel="#L6143">6143</span>
|
|
<span id="L6144" rel="#L6144">6144</span>
|
|
<span id="L6145" rel="#L6145">6145</span>
|
|
<span id="L6146" rel="#L6146">6146</span>
|
|
<span id="L6147" rel="#L6147">6147</span>
|
|
<span id="L6148" rel="#L6148">6148</span>
|
|
<span id="L6149" rel="#L6149">6149</span>
|
|
<span id="L6150" rel="#L6150">6150</span>
|
|
<span id="L6151" rel="#L6151">6151</span>
|
|
<span id="L6152" rel="#L6152">6152</span>
|
|
<span id="L6153" rel="#L6153">6153</span>
|
|
<span id="L6154" rel="#L6154">6154</span>
|
|
<span id="L6155" rel="#L6155">6155</span>
|
|
<span id="L6156" rel="#L6156">6156</span>
|
|
<span id="L6157" rel="#L6157">6157</span>
|
|
<span id="L6158" rel="#L6158">6158</span>
|
|
<span id="L6159" rel="#L6159">6159</span>
|
|
<span id="L6160" rel="#L6160">6160</span>
|
|
<span id="L6161" rel="#L6161">6161</span>
|
|
<span id="L6162" rel="#L6162">6162</span>
|
|
<span id="L6163" rel="#L6163">6163</span>
|
|
<span id="L6164" rel="#L6164">6164</span>
|
|
<span id="L6165" rel="#L6165">6165</span>
|
|
<span id="L6166" rel="#L6166">6166</span>
|
|
<span id="L6167" rel="#L6167">6167</span>
|
|
<span id="L6168" rel="#L6168">6168</span>
|
|
<span id="L6169" rel="#L6169">6169</span>
|
|
<span id="L6170" rel="#L6170">6170</span>
|
|
<span id="L6171" rel="#L6171">6171</span>
|
|
<span id="L6172" rel="#L6172">6172</span>
|
|
<span id="L6173" rel="#L6173">6173</span>
|
|
<span id="L6174" rel="#L6174">6174</span>
|
|
<span id="L6175" rel="#L6175">6175</span>
|
|
<span id="L6176" rel="#L6176">6176</span>
|
|
<span id="L6177" rel="#L6177">6177</span>
|
|
<span id="L6178" rel="#L6178">6178</span>
|
|
<span id="L6179" rel="#L6179">6179</span>
|
|
<span id="L6180" rel="#L6180">6180</span>
|
|
<span id="L6181" rel="#L6181">6181</span>
|
|
<span id="L6182" rel="#L6182">6182</span>
|
|
<span id="L6183" rel="#L6183">6183</span>
|
|
<span id="L6184" rel="#L6184">6184</span>
|
|
<span id="L6185" rel="#L6185">6185</span>
|
|
<span id="L6186" rel="#L6186">6186</span>
|
|
<span id="L6187" rel="#L6187">6187</span>
|
|
<span id="L6188" rel="#L6188">6188</span>
|
|
<span id="L6189" rel="#L6189">6189</span>
|
|
<span id="L6190" rel="#L6190">6190</span>
|
|
<span id="L6191" rel="#L6191">6191</span>
|
|
<span id="L6192" rel="#L6192">6192</span>
|
|
<span id="L6193" rel="#L6193">6193</span>
|
|
<span id="L6194" rel="#L6194">6194</span>
|
|
<span id="L6195" rel="#L6195">6195</span>
|
|
<span id="L6196" rel="#L6196">6196</span>
|
|
<span id="L6197" rel="#L6197">6197</span>
|
|
<span id="L6198" rel="#L6198">6198</span>
|
|
<span id="L6199" rel="#L6199">6199</span>
|
|
<span id="L6200" rel="#L6200">6200</span>
|
|
<span id="L6201" rel="#L6201">6201</span>
|
|
<span id="L6202" rel="#L6202">6202</span>
|
|
<span id="L6203" rel="#L6203">6203</span>
|
|
<span id="L6204" rel="#L6204">6204</span>
|
|
<span id="L6205" rel="#L6205">6205</span>
|
|
<span id="L6206" rel="#L6206">6206</span>
|
|
<span id="L6207" rel="#L6207">6207</span>
|
|
<span id="L6208" rel="#L6208">6208</span>
|
|
<span id="L6209" rel="#L6209">6209</span>
|
|
<span id="L6210" rel="#L6210">6210</span>
|
|
<span id="L6211" rel="#L6211">6211</span>
|
|
<span id="L6212" rel="#L6212">6212</span>
|
|
<span id="L6213" rel="#L6213">6213</span>
|
|
<span id="L6214" rel="#L6214">6214</span>
|
|
<span id="L6215" rel="#L6215">6215</span>
|
|
<span id="L6216" rel="#L6216">6216</span>
|
|
<span id="L6217" rel="#L6217">6217</span>
|
|
<span id="L6218" rel="#L6218">6218</span>
|
|
<span id="L6219" rel="#L6219">6219</span>
|
|
<span id="L6220" rel="#L6220">6220</span>
|
|
<span id="L6221" rel="#L6221">6221</span>
|
|
<span id="L6222" rel="#L6222">6222</span>
|
|
<span id="L6223" rel="#L6223">6223</span>
|
|
<span id="L6224" rel="#L6224">6224</span>
|
|
<span id="L6225" rel="#L6225">6225</span>
|
|
<span id="L6226" rel="#L6226">6226</span>
|
|
<span id="L6227" rel="#L6227">6227</span>
|
|
<span id="L6228" rel="#L6228">6228</span>
|
|
<span id="L6229" rel="#L6229">6229</span>
|
|
<span id="L6230" rel="#L6230">6230</span>
|
|
<span id="L6231" rel="#L6231">6231</span>
|
|
<span id="L6232" rel="#L6232">6232</span>
|
|
<span id="L6233" rel="#L6233">6233</span>
|
|
<span id="L6234" rel="#L6234">6234</span>
|
|
<span id="L6235" rel="#L6235">6235</span>
|
|
<span id="L6236" rel="#L6236">6236</span>
|
|
<span id="L6237" rel="#L6237">6237</span>
|
|
<span id="L6238" rel="#L6238">6238</span>
|
|
<span id="L6239" rel="#L6239">6239</span>
|
|
<span id="L6240" rel="#L6240">6240</span>
|
|
<span id="L6241" rel="#L6241">6241</span>
|
|
<span id="L6242" rel="#L6242">6242</span>
|
|
<span id="L6243" rel="#L6243">6243</span>
|
|
<span id="L6244" rel="#L6244">6244</span>
|
|
<span id="L6245" rel="#L6245">6245</span>
|
|
<span id="L6246" rel="#L6246">6246</span>
|
|
<span id="L6247" rel="#L6247">6247</span>
|
|
<span id="L6248" rel="#L6248">6248</span>
|
|
<span id="L6249" rel="#L6249">6249</span>
|
|
<span id="L6250" rel="#L6250">6250</span>
|
|
<span id="L6251" rel="#L6251">6251</span>
|
|
<span id="L6252" rel="#L6252">6252</span>
|
|
<span id="L6253" rel="#L6253">6253</span>
|
|
<span id="L6254" rel="#L6254">6254</span>
|
|
<span id="L6255" rel="#L6255">6255</span>
|
|
<span id="L6256" rel="#L6256">6256</span>
|
|
<span id="L6257" rel="#L6257">6257</span>
|
|
<span id="L6258" rel="#L6258">6258</span>
|
|
<span id="L6259" rel="#L6259">6259</span>
|
|
<span id="L6260" rel="#L6260">6260</span>
|
|
<span id="L6261" rel="#L6261">6261</span>
|
|
<span id="L6262" rel="#L6262">6262</span>
|
|
<span id="L6263" rel="#L6263">6263</span>
|
|
<span id="L6264" rel="#L6264">6264</span>
|
|
<span id="L6265" rel="#L6265">6265</span>
|
|
<span id="L6266" rel="#L6266">6266</span>
|
|
<span id="L6267" rel="#L6267">6267</span>
|
|
<span id="L6268" rel="#L6268">6268</span>
|
|
<span id="L6269" rel="#L6269">6269</span>
|
|
<span id="L6270" rel="#L6270">6270</span>
|
|
<span id="L6271" rel="#L6271">6271</span>
|
|
<span id="L6272" rel="#L6272">6272</span>
|
|
<span id="L6273" rel="#L6273">6273</span>
|
|
<span id="L6274" rel="#L6274">6274</span>
|
|
<span id="L6275" rel="#L6275">6275</span>
|
|
<span id="L6276" rel="#L6276">6276</span>
|
|
<span id="L6277" rel="#L6277">6277</span>
|
|
<span id="L6278" rel="#L6278">6278</span>
|
|
<span id="L6279" rel="#L6279">6279</span>
|
|
<span id="L6280" rel="#L6280">6280</span>
|
|
<span id="L6281" rel="#L6281">6281</span>
|
|
<span id="L6282" rel="#L6282">6282</span>
|
|
<span id="L6283" rel="#L6283">6283</span>
|
|
<span id="L6284" rel="#L6284">6284</span>
|
|
<span id="L6285" rel="#L6285">6285</span>
|
|
<span id="L6286" rel="#L6286">6286</span>
|
|
<span id="L6287" rel="#L6287">6287</span>
|
|
<span id="L6288" rel="#L6288">6288</span>
|
|
<span id="L6289" rel="#L6289">6289</span>
|
|
<span id="L6290" rel="#L6290">6290</span>
|
|
<span id="L6291" rel="#L6291">6291</span>
|
|
<span id="L6292" rel="#L6292">6292</span>
|
|
<span id="L6293" rel="#L6293">6293</span>
|
|
<span id="L6294" rel="#L6294">6294</span>
|
|
<span id="L6295" rel="#L6295">6295</span>
|
|
<span id="L6296" rel="#L6296">6296</span>
|
|
<span id="L6297" rel="#L6297">6297</span>
|
|
<span id="L6298" rel="#L6298">6298</span>
|
|
<span id="L6299" rel="#L6299">6299</span>
|
|
<span id="L6300" rel="#L6300">6300</span>
|
|
<span id="L6301" rel="#L6301">6301</span>
|
|
<span id="L6302" rel="#L6302">6302</span>
|
|
<span id="L6303" rel="#L6303">6303</span>
|
|
<span id="L6304" rel="#L6304">6304</span>
|
|
<span id="L6305" rel="#L6305">6305</span>
|
|
<span id="L6306" rel="#L6306">6306</span>
|
|
<span id="L6307" rel="#L6307">6307</span>
|
|
<span id="L6308" rel="#L6308">6308</span>
|
|
<span id="L6309" rel="#L6309">6309</span>
|
|
<span id="L6310" rel="#L6310">6310</span>
|
|
<span id="L6311" rel="#L6311">6311</span>
|
|
<span id="L6312" rel="#L6312">6312</span>
|
|
<span id="L6313" rel="#L6313">6313</span>
|
|
<span id="L6314" rel="#L6314">6314</span>
|
|
<span id="L6315" rel="#L6315">6315</span>
|
|
<span id="L6316" rel="#L6316">6316</span>
|
|
<span id="L6317" rel="#L6317">6317</span>
|
|
<span id="L6318" rel="#L6318">6318</span>
|
|
<span id="L6319" rel="#L6319">6319</span>
|
|
<span id="L6320" rel="#L6320">6320</span>
|
|
<span id="L6321" rel="#L6321">6321</span>
|
|
<span id="L6322" rel="#L6322">6322</span>
|
|
<span id="L6323" rel="#L6323">6323</span>
|
|
<span id="L6324" rel="#L6324">6324</span>
|
|
<span id="L6325" rel="#L6325">6325</span>
|
|
<span id="L6326" rel="#L6326">6326</span>
|
|
<span id="L6327" rel="#L6327">6327</span>
|
|
<span id="L6328" rel="#L6328">6328</span>
|
|
<span id="L6329" rel="#L6329">6329</span>
|
|
<span id="L6330" rel="#L6330">6330</span>
|
|
<span id="L6331" rel="#L6331">6331</span>
|
|
<span id="L6332" rel="#L6332">6332</span>
|
|
<span id="L6333" rel="#L6333">6333</span>
|
|
<span id="L6334" rel="#L6334">6334</span>
|
|
<span id="L6335" rel="#L6335">6335</span>
|
|
<span id="L6336" rel="#L6336">6336</span>
|
|
<span id="L6337" rel="#L6337">6337</span>
|
|
<span id="L6338" rel="#L6338">6338</span>
|
|
<span id="L6339" rel="#L6339">6339</span>
|
|
<span id="L6340" rel="#L6340">6340</span>
|
|
<span id="L6341" rel="#L6341">6341</span>
|
|
<span id="L6342" rel="#L6342">6342</span>
|
|
<span id="L6343" rel="#L6343">6343</span>
|
|
<span id="L6344" rel="#L6344">6344</span>
|
|
<span id="L6345" rel="#L6345">6345</span>
|
|
<span id="L6346" rel="#L6346">6346</span>
|
|
<span id="L6347" rel="#L6347">6347</span>
|
|
<span id="L6348" rel="#L6348">6348</span>
|
|
<span id="L6349" rel="#L6349">6349</span>
|
|
<span id="L6350" rel="#L6350">6350</span>
|
|
<span id="L6351" rel="#L6351">6351</span>
|
|
<span id="L6352" rel="#L6352">6352</span>
|
|
<span id="L6353" rel="#L6353">6353</span>
|
|
<span id="L6354" rel="#L6354">6354</span>
|
|
<span id="L6355" rel="#L6355">6355</span>
|
|
<span id="L6356" rel="#L6356">6356</span>
|
|
<span id="L6357" rel="#L6357">6357</span>
|
|
<span id="L6358" rel="#L6358">6358</span>
|
|
<span id="L6359" rel="#L6359">6359</span>
|
|
<span id="L6360" rel="#L6360">6360</span>
|
|
<span id="L6361" rel="#L6361">6361</span>
|
|
<span id="L6362" rel="#L6362">6362</span>
|
|
<span id="L6363" rel="#L6363">6363</span>
|
|
<span id="L6364" rel="#L6364">6364</span>
|
|
<span id="L6365" rel="#L6365">6365</span>
|
|
<span id="L6366" rel="#L6366">6366</span>
|
|
<span id="L6367" rel="#L6367">6367</span>
|
|
<span id="L6368" rel="#L6368">6368</span>
|
|
<span id="L6369" rel="#L6369">6369</span>
|
|
<span id="L6370" rel="#L6370">6370</span>
|
|
<span id="L6371" rel="#L6371">6371</span>
|
|
<span id="L6372" rel="#L6372">6372</span>
|
|
<span id="L6373" rel="#L6373">6373</span>
|
|
<span id="L6374" rel="#L6374">6374</span>
|
|
<span id="L6375" rel="#L6375">6375</span>
|
|
<span id="L6376" rel="#L6376">6376</span>
|
|
<span id="L6377" rel="#L6377">6377</span>
|
|
<span id="L6378" rel="#L6378">6378</span>
|
|
<span id="L6379" rel="#L6379">6379</span>
|
|
<span id="L6380" rel="#L6380">6380</span>
|
|
<span id="L6381" rel="#L6381">6381</span>
|
|
<span id="L6382" rel="#L6382">6382</span>
|
|
<span id="L6383" rel="#L6383">6383</span>
|
|
<span id="L6384" rel="#L6384">6384</span>
|
|
<span id="L6385" rel="#L6385">6385</span>
|
|
<span id="L6386" rel="#L6386">6386</span>
|
|
<span id="L6387" rel="#L6387">6387</span>
|
|
<span id="L6388" rel="#L6388">6388</span>
|
|
<span id="L6389" rel="#L6389">6389</span>
|
|
<span id="L6390" rel="#L6390">6390</span>
|
|
<span id="L6391" rel="#L6391">6391</span>
|
|
<span id="L6392" rel="#L6392">6392</span>
|
|
<span id="L6393" rel="#L6393">6393</span>
|
|
<span id="L6394" rel="#L6394">6394</span>
|
|
<span id="L6395" rel="#L6395">6395</span>
|
|
<span id="L6396" rel="#L6396">6396</span>
|
|
<span id="L6397" rel="#L6397">6397</span>
|
|
<span id="L6398" rel="#L6398">6398</span>
|
|
<span id="L6399" rel="#L6399">6399</span>
|
|
<span id="L6400" rel="#L6400">6400</span>
|
|
<span id="L6401" rel="#L6401">6401</span>
|
|
<span id="L6402" rel="#L6402">6402</span>
|
|
<span id="L6403" rel="#L6403">6403</span>
|
|
<span id="L6404" rel="#L6404">6404</span>
|
|
<span id="L6405" rel="#L6405">6405</span>
|
|
<span id="L6406" rel="#L6406">6406</span>
|
|
<span id="L6407" rel="#L6407">6407</span>
|
|
<span id="L6408" rel="#L6408">6408</span>
|
|
<span id="L6409" rel="#L6409">6409</span>
|
|
<span id="L6410" rel="#L6410">6410</span>
|
|
<span id="L6411" rel="#L6411">6411</span>
|
|
<span id="L6412" rel="#L6412">6412</span>
|
|
<span id="L6413" rel="#L6413">6413</span>
|
|
<span id="L6414" rel="#L6414">6414</span>
|
|
<span id="L6415" rel="#L6415">6415</span>
|
|
<span id="L6416" rel="#L6416">6416</span>
|
|
<span id="L6417" rel="#L6417">6417</span>
|
|
<span id="L6418" rel="#L6418">6418</span>
|
|
<span id="L6419" rel="#L6419">6419</span>
|
|
<span id="L6420" rel="#L6420">6420</span>
|
|
<span id="L6421" rel="#L6421">6421</span>
|
|
<span id="L6422" rel="#L6422">6422</span>
|
|
<span id="L6423" rel="#L6423">6423</span>
|
|
<span id="L6424" rel="#L6424">6424</span>
|
|
<span id="L6425" rel="#L6425">6425</span>
|
|
<span id="L6426" rel="#L6426">6426</span>
|
|
<span id="L6427" rel="#L6427">6427</span>
|
|
<span id="L6428" rel="#L6428">6428</span>
|
|
<span id="L6429" rel="#L6429">6429</span>
|
|
<span id="L6430" rel="#L6430">6430</span>
|
|
<span id="L6431" rel="#L6431">6431</span>
|
|
<span id="L6432" rel="#L6432">6432</span>
|
|
<span id="L6433" rel="#L6433">6433</span>
|
|
<span id="L6434" rel="#L6434">6434</span>
|
|
<span id="L6435" rel="#L6435">6435</span>
|
|
<span id="L6436" rel="#L6436">6436</span>
|
|
<span id="L6437" rel="#L6437">6437</span>
|
|
<span id="L6438" rel="#L6438">6438</span>
|
|
<span id="L6439" rel="#L6439">6439</span>
|
|
<span id="L6440" rel="#L6440">6440</span>
|
|
<span id="L6441" rel="#L6441">6441</span>
|
|
<span id="L6442" rel="#L6442">6442</span>
|
|
<span id="L6443" rel="#L6443">6443</span>
|
|
<span id="L6444" rel="#L6444">6444</span>
|
|
<span id="L6445" rel="#L6445">6445</span>
|
|
<span id="L6446" rel="#L6446">6446</span>
|
|
<span id="L6447" rel="#L6447">6447</span>
|
|
<span id="L6448" rel="#L6448">6448</span>
|
|
<span id="L6449" rel="#L6449">6449</span>
|
|
<span id="L6450" rel="#L6450">6450</span>
|
|
<span id="L6451" rel="#L6451">6451</span>
|
|
<span id="L6452" rel="#L6452">6452</span>
|
|
<span id="L6453" rel="#L6453">6453</span>
|
|
<span id="L6454" rel="#L6454">6454</span>
|
|
<span id="L6455" rel="#L6455">6455</span>
|
|
<span id="L6456" rel="#L6456">6456</span>
|
|
<span id="L6457" rel="#L6457">6457</span>
|
|
<span id="L6458" rel="#L6458">6458</span>
|
|
<span id="L6459" rel="#L6459">6459</span>
|
|
<span id="L6460" rel="#L6460">6460</span>
|
|
<span id="L6461" rel="#L6461">6461</span>
|
|
<span id="L6462" rel="#L6462">6462</span>
|
|
<span id="L6463" rel="#L6463">6463</span>
|
|
<span id="L6464" rel="#L6464">6464</span>
|
|
<span id="L6465" rel="#L6465">6465</span>
|
|
<span id="L6466" rel="#L6466">6466</span>
|
|
<span id="L6467" rel="#L6467">6467</span>
|
|
<span id="L6468" rel="#L6468">6468</span>
|
|
<span id="L6469" rel="#L6469">6469</span>
|
|
<span id="L6470" rel="#L6470">6470</span>
|
|
<span id="L6471" rel="#L6471">6471</span>
|
|
<span id="L6472" rel="#L6472">6472</span>
|
|
<span id="L6473" rel="#L6473">6473</span>
|
|
<span id="L6474" rel="#L6474">6474</span>
|
|
<span id="L6475" rel="#L6475">6475</span>
|
|
<span id="L6476" rel="#L6476">6476</span>
|
|
<span id="L6477" rel="#L6477">6477</span>
|
|
<span id="L6478" rel="#L6478">6478</span>
|
|
<span id="L6479" rel="#L6479">6479</span>
|
|
<span id="L6480" rel="#L6480">6480</span>
|
|
<span id="L6481" rel="#L6481">6481</span>
|
|
<span id="L6482" rel="#L6482">6482</span>
|
|
<span id="L6483" rel="#L6483">6483</span>
|
|
<span id="L6484" rel="#L6484">6484</span>
|
|
<span id="L6485" rel="#L6485">6485</span>
|
|
<span id="L6486" rel="#L6486">6486</span>
|
|
<span id="L6487" rel="#L6487">6487</span>
|
|
<span id="L6488" rel="#L6488">6488</span>
|
|
<span id="L6489" rel="#L6489">6489</span>
|
|
<span id="L6490" rel="#L6490">6490</span>
|
|
<span id="L6491" rel="#L6491">6491</span>
|
|
<span id="L6492" rel="#L6492">6492</span>
|
|
<span id="L6493" rel="#L6493">6493</span>
|
|
<span id="L6494" rel="#L6494">6494</span>
|
|
<span id="L6495" rel="#L6495">6495</span>
|
|
<span id="L6496" rel="#L6496">6496</span>
|
|
<span id="L6497" rel="#L6497">6497</span>
|
|
<span id="L6498" rel="#L6498">6498</span>
|
|
<span id="L6499" rel="#L6499">6499</span>
|
|
<span id="L6500" rel="#L6500">6500</span>
|
|
<span id="L6501" rel="#L6501">6501</span>
|
|
<span id="L6502" rel="#L6502">6502</span>
|
|
<span id="L6503" rel="#L6503">6503</span>
|
|
<span id="L6504" rel="#L6504">6504</span>
|
|
<span id="L6505" rel="#L6505">6505</span>
|
|
<span id="L6506" rel="#L6506">6506</span>
|
|
<span id="L6507" rel="#L6507">6507</span>
|
|
<span id="L6508" rel="#L6508">6508</span>
|
|
<span id="L6509" rel="#L6509">6509</span>
|
|
<span id="L6510" rel="#L6510">6510</span>
|
|
<span id="L6511" rel="#L6511">6511</span>
|
|
<span id="L6512" rel="#L6512">6512</span>
|
|
<span id="L6513" rel="#L6513">6513</span>
|
|
<span id="L6514" rel="#L6514">6514</span>
|
|
<span id="L6515" rel="#L6515">6515</span>
|
|
<span id="L6516" rel="#L6516">6516</span>
|
|
<span id="L6517" rel="#L6517">6517</span>
|
|
<span id="L6518" rel="#L6518">6518</span>
|
|
<span id="L6519" rel="#L6519">6519</span>
|
|
<span id="L6520" rel="#L6520">6520</span>
|
|
<span id="L6521" rel="#L6521">6521</span>
|
|
<span id="L6522" rel="#L6522">6522</span>
|
|
<span id="L6523" rel="#L6523">6523</span>
|
|
<span id="L6524" rel="#L6524">6524</span>
|
|
<span id="L6525" rel="#L6525">6525</span>
|
|
<span id="L6526" rel="#L6526">6526</span>
|
|
<span id="L6527" rel="#L6527">6527</span>
|
|
<span id="L6528" rel="#L6528">6528</span>
|
|
<span id="L6529" rel="#L6529">6529</span>
|
|
<span id="L6530" rel="#L6530">6530</span>
|
|
<span id="L6531" rel="#L6531">6531</span>
|
|
<span id="L6532" rel="#L6532">6532</span>
|
|
<span id="L6533" rel="#L6533">6533</span>
|
|
<span id="L6534" rel="#L6534">6534</span>
|
|
<span id="L6535" rel="#L6535">6535</span>
|
|
<span id="L6536" rel="#L6536">6536</span>
|
|
<span id="L6537" rel="#L6537">6537</span>
|
|
<span id="L6538" rel="#L6538">6538</span>
|
|
<span id="L6539" rel="#L6539">6539</span>
|
|
<span id="L6540" rel="#L6540">6540</span>
|
|
<span id="L6541" rel="#L6541">6541</span>
|
|
<span id="L6542" rel="#L6542">6542</span>
|
|
<span id="L6543" rel="#L6543">6543</span>
|
|
<span id="L6544" rel="#L6544">6544</span>
|
|
<span id="L6545" rel="#L6545">6545</span>
|
|
<span id="L6546" rel="#L6546">6546</span>
|
|
<span id="L6547" rel="#L6547">6547</span>
|
|
<span id="L6548" rel="#L6548">6548</span>
|
|
<span id="L6549" rel="#L6549">6549</span>
|
|
<span id="L6550" rel="#L6550">6550</span>
|
|
<span id="L6551" rel="#L6551">6551</span>
|
|
<span id="L6552" rel="#L6552">6552</span>
|
|
<span id="L6553" rel="#L6553">6553</span>
|
|
<span id="L6554" rel="#L6554">6554</span>
|
|
<span id="L6555" rel="#L6555">6555</span>
|
|
<span id="L6556" rel="#L6556">6556</span>
|
|
<span id="L6557" rel="#L6557">6557</span>
|
|
<span id="L6558" rel="#L6558">6558</span>
|
|
<span id="L6559" rel="#L6559">6559</span>
|
|
<span id="L6560" rel="#L6560">6560</span>
|
|
<span id="L6561" rel="#L6561">6561</span>
|
|
<span id="L6562" rel="#L6562">6562</span>
|
|
<span id="L6563" rel="#L6563">6563</span>
|
|
<span id="L6564" rel="#L6564">6564</span>
|
|
<span id="L6565" rel="#L6565">6565</span>
|
|
<span id="L6566" rel="#L6566">6566</span>
|
|
<span id="L6567" rel="#L6567">6567</span>
|
|
<span id="L6568" rel="#L6568">6568</span>
|
|
<span id="L6569" rel="#L6569">6569</span>
|
|
<span id="L6570" rel="#L6570">6570</span>
|
|
<span id="L6571" rel="#L6571">6571</span>
|
|
<span id="L6572" rel="#L6572">6572</span>
|
|
<span id="L6573" rel="#L6573">6573</span>
|
|
<span id="L6574" rel="#L6574">6574</span>
|
|
<span id="L6575" rel="#L6575">6575</span>
|
|
<span id="L6576" rel="#L6576">6576</span>
|
|
<span id="L6577" rel="#L6577">6577</span>
|
|
<span id="L6578" rel="#L6578">6578</span>
|
|
<span id="L6579" rel="#L6579">6579</span>
|
|
<span id="L6580" rel="#L6580">6580</span>
|
|
<span id="L6581" rel="#L6581">6581</span>
|
|
<span id="L6582" rel="#L6582">6582</span>
|
|
<span id="L6583" rel="#L6583">6583</span>
|
|
<span id="L6584" rel="#L6584">6584</span>
|
|
<span id="L6585" rel="#L6585">6585</span>
|
|
<span id="L6586" rel="#L6586">6586</span>
|
|
<span id="L6587" rel="#L6587">6587</span>
|
|
<span id="L6588" rel="#L6588">6588</span>
|
|
<span id="L6589" rel="#L6589">6589</span>
|
|
<span id="L6590" rel="#L6590">6590</span>
|
|
<span id="L6591" rel="#L6591">6591</span>
|
|
<span id="L6592" rel="#L6592">6592</span>
|
|
<span id="L6593" rel="#L6593">6593</span>
|
|
<span id="L6594" rel="#L6594">6594</span>
|
|
<span id="L6595" rel="#L6595">6595</span>
|
|
<span id="L6596" rel="#L6596">6596</span>
|
|
<span id="L6597" rel="#L6597">6597</span>
|
|
<span id="L6598" rel="#L6598">6598</span>
|
|
<span id="L6599" rel="#L6599">6599</span>
|
|
<span id="L6600" rel="#L6600">6600</span>
|
|
<span id="L6601" rel="#L6601">6601</span>
|
|
<span id="L6602" rel="#L6602">6602</span>
|
|
<span id="L6603" rel="#L6603">6603</span>
|
|
<span id="L6604" rel="#L6604">6604</span>
|
|
<span id="L6605" rel="#L6605">6605</span>
|
|
<span id="L6606" rel="#L6606">6606</span>
|
|
<span id="L6607" rel="#L6607">6607</span>
|
|
<span id="L6608" rel="#L6608">6608</span>
|
|
<span id="L6609" rel="#L6609">6609</span>
|
|
<span id="L6610" rel="#L6610">6610</span>
|
|
<span id="L6611" rel="#L6611">6611</span>
|
|
<span id="L6612" rel="#L6612">6612</span>
|
|
<span id="L6613" rel="#L6613">6613</span>
|
|
<span id="L6614" rel="#L6614">6614</span>
|
|
<span id="L6615" rel="#L6615">6615</span>
|
|
<span id="L6616" rel="#L6616">6616</span>
|
|
<span id="L6617" rel="#L6617">6617</span>
|
|
<span id="L6618" rel="#L6618">6618</span>
|
|
<span id="L6619" rel="#L6619">6619</span>
|
|
<span id="L6620" rel="#L6620">6620</span>
|
|
<span id="L6621" rel="#L6621">6621</span>
|
|
<span id="L6622" rel="#L6622">6622</span>
|
|
<span id="L6623" rel="#L6623">6623</span>
|
|
<span id="L6624" rel="#L6624">6624</span>
|
|
<span id="L6625" rel="#L6625">6625</span>
|
|
<span id="L6626" rel="#L6626">6626</span>
|
|
<span id="L6627" rel="#L6627">6627</span>
|
|
<span id="L6628" rel="#L6628">6628</span>
|
|
<span id="L6629" rel="#L6629">6629</span>
|
|
<span id="L6630" rel="#L6630">6630</span>
|
|
<span id="L6631" rel="#L6631">6631</span>
|
|
<span id="L6632" rel="#L6632">6632</span>
|
|
<span id="L6633" rel="#L6633">6633</span>
|
|
<span id="L6634" rel="#L6634">6634</span>
|
|
<span id="L6635" rel="#L6635">6635</span>
|
|
<span id="L6636" rel="#L6636">6636</span>
|
|
<span id="L6637" rel="#L6637">6637</span>
|
|
<span id="L6638" rel="#L6638">6638</span>
|
|
<span id="L6639" rel="#L6639">6639</span>
|
|
<span id="L6640" rel="#L6640">6640</span>
|
|
<span id="L6641" rel="#L6641">6641</span>
|
|
<span id="L6642" rel="#L6642">6642</span>
|
|
<span id="L6643" rel="#L6643">6643</span>
|
|
<span id="L6644" rel="#L6644">6644</span>
|
|
<span id="L6645" rel="#L6645">6645</span>
|
|
<span id="L6646" rel="#L6646">6646</span>
|
|
<span id="L6647" rel="#L6647">6647</span>
|
|
<span id="L6648" rel="#L6648">6648</span>
|
|
<span id="L6649" rel="#L6649">6649</span>
|
|
<span id="L6650" rel="#L6650">6650</span>
|
|
<span id="L6651" rel="#L6651">6651</span>
|
|
<span id="L6652" rel="#L6652">6652</span>
|
|
<span id="L6653" rel="#L6653">6653</span>
|
|
<span id="L6654" rel="#L6654">6654</span>
|
|
<span id="L6655" rel="#L6655">6655</span>
|
|
<span id="L6656" rel="#L6656">6656</span>
|
|
<span id="L6657" rel="#L6657">6657</span>
|
|
<span id="L6658" rel="#L6658">6658</span>
|
|
<span id="L6659" rel="#L6659">6659</span>
|
|
<span id="L6660" rel="#L6660">6660</span>
|
|
<span id="L6661" rel="#L6661">6661</span>
|
|
<span id="L6662" rel="#L6662">6662</span>
|
|
<span id="L6663" rel="#L6663">6663</span>
|
|
<span id="L6664" rel="#L6664">6664</span>
|
|
<span id="L6665" rel="#L6665">6665</span>
|
|
<span id="L6666" rel="#L6666">6666</span>
|
|
<span id="L6667" rel="#L6667">6667</span>
|
|
<span id="L6668" rel="#L6668">6668</span>
|
|
<span id="L6669" rel="#L6669">6669</span>
|
|
<span id="L6670" rel="#L6670">6670</span>
|
|
<span id="L6671" rel="#L6671">6671</span>
|
|
<span id="L6672" rel="#L6672">6672</span>
|
|
<span id="L6673" rel="#L6673">6673</span>
|
|
<span id="L6674" rel="#L6674">6674</span>
|
|
<span id="L6675" rel="#L6675">6675</span>
|
|
<span id="L6676" rel="#L6676">6676</span>
|
|
<span id="L6677" rel="#L6677">6677</span>
|
|
<span id="L6678" rel="#L6678">6678</span>
|
|
<span id="L6679" rel="#L6679">6679</span>
|
|
<span id="L6680" rel="#L6680">6680</span>
|
|
<span id="L6681" rel="#L6681">6681</span>
|
|
<span id="L6682" rel="#L6682">6682</span>
|
|
<span id="L6683" rel="#L6683">6683</span>
|
|
<span id="L6684" rel="#L6684">6684</span>
|
|
<span id="L6685" rel="#L6685">6685</span>
|
|
<span id="L6686" rel="#L6686">6686</span>
|
|
<span id="L6687" rel="#L6687">6687</span>
|
|
<span id="L6688" rel="#L6688">6688</span>
|
|
<span id="L6689" rel="#L6689">6689</span>
|
|
<span id="L6690" rel="#L6690">6690</span>
|
|
<span id="L6691" rel="#L6691">6691</span>
|
|
<span id="L6692" rel="#L6692">6692</span>
|
|
<span id="L6693" rel="#L6693">6693</span>
|
|
<span id="L6694" rel="#L6694">6694</span>
|
|
<span id="L6695" rel="#L6695">6695</span>
|
|
<span id="L6696" rel="#L6696">6696</span>
|
|
<span id="L6697" rel="#L6697">6697</span>
|
|
<span id="L6698" rel="#L6698">6698</span>
|
|
<span id="L6699" rel="#L6699">6699</span>
|
|
<span id="L6700" rel="#L6700">6700</span>
|
|
<span id="L6701" rel="#L6701">6701</span>
|
|
<span id="L6702" rel="#L6702">6702</span>
|
|
<span id="L6703" rel="#L6703">6703</span>
|
|
<span id="L6704" rel="#L6704">6704</span>
|
|
<span id="L6705" rel="#L6705">6705</span>
|
|
<span id="L6706" rel="#L6706">6706</span>
|
|
<span id="L6707" rel="#L6707">6707</span>
|
|
<span id="L6708" rel="#L6708">6708</span>
|
|
<span id="L6709" rel="#L6709">6709</span>
|
|
<span id="L6710" rel="#L6710">6710</span>
|
|
<span id="L6711" rel="#L6711">6711</span>
|
|
<span id="L6712" rel="#L6712">6712</span>
|
|
<span id="L6713" rel="#L6713">6713</span>
|
|
<span id="L6714" rel="#L6714">6714</span>
|
|
<span id="L6715" rel="#L6715">6715</span>
|
|
<span id="L6716" rel="#L6716">6716</span>
|
|
<span id="L6717" rel="#L6717">6717</span>
|
|
<span id="L6718" rel="#L6718">6718</span>
|
|
<span id="L6719" rel="#L6719">6719</span>
|
|
<span id="L6720" rel="#L6720">6720</span>
|
|
<span id="L6721" rel="#L6721">6721</span>
|
|
<span id="L6722" rel="#L6722">6722</span>
|
|
<span id="L6723" rel="#L6723">6723</span>
|
|
<span id="L6724" rel="#L6724">6724</span>
|
|
<span id="L6725" rel="#L6725">6725</span>
|
|
<span id="L6726" rel="#L6726">6726</span>
|
|
<span id="L6727" rel="#L6727">6727</span>
|
|
<span id="L6728" rel="#L6728">6728</span>
|
|
<span id="L6729" rel="#L6729">6729</span>
|
|
<span id="L6730" rel="#L6730">6730</span>
|
|
<span id="L6731" rel="#L6731">6731</span>
|
|
<span id="L6732" rel="#L6732">6732</span>
|
|
<span id="L6733" rel="#L6733">6733</span>
|
|
<span id="L6734" rel="#L6734">6734</span>
|
|
<span id="L6735" rel="#L6735">6735</span>
|
|
<span id="L6736" rel="#L6736">6736</span>
|
|
<span id="L6737" rel="#L6737">6737</span>
|
|
<span id="L6738" rel="#L6738">6738</span>
|
|
<span id="L6739" rel="#L6739">6739</span>
|
|
<span id="L6740" rel="#L6740">6740</span>
|
|
<span id="L6741" rel="#L6741">6741</span>
|
|
<span id="L6742" rel="#L6742">6742</span>
|
|
<span id="L6743" rel="#L6743">6743</span>
|
|
<span id="L6744" rel="#L6744">6744</span>
|
|
<span id="L6745" rel="#L6745">6745</span>
|
|
<span id="L6746" rel="#L6746">6746</span>
|
|
<span id="L6747" rel="#L6747">6747</span>
|
|
<span id="L6748" rel="#L6748">6748</span>
|
|
<span id="L6749" rel="#L6749">6749</span>
|
|
<span id="L6750" rel="#L6750">6750</span>
|
|
<span id="L6751" rel="#L6751">6751</span>
|
|
<span id="L6752" rel="#L6752">6752</span>
|
|
<span id="L6753" rel="#L6753">6753</span>
|
|
<span id="L6754" rel="#L6754">6754</span>
|
|
<span id="L6755" rel="#L6755">6755</span>
|
|
<span id="L6756" rel="#L6756">6756</span>
|
|
<span id="L6757" rel="#L6757">6757</span>
|
|
<span id="L6758" rel="#L6758">6758</span>
|
|
<span id="L6759" rel="#L6759">6759</span>
|
|
<span id="L6760" rel="#L6760">6760</span>
|
|
<span id="L6761" rel="#L6761">6761</span>
|
|
<span id="L6762" rel="#L6762">6762</span>
|
|
<span id="L6763" rel="#L6763">6763</span>
|
|
<span id="L6764" rel="#L6764">6764</span>
|
|
<span id="L6765" rel="#L6765">6765</span>
|
|
<span id="L6766" rel="#L6766">6766</span>
|
|
<span id="L6767" rel="#L6767">6767</span>
|
|
<span id="L6768" rel="#L6768">6768</span>
|
|
<span id="L6769" rel="#L6769">6769</span>
|
|
<span id="L6770" rel="#L6770">6770</span>
|
|
<span id="L6771" rel="#L6771">6771</span>
|
|
<span id="L6772" rel="#L6772">6772</span>
|
|
<span id="L6773" rel="#L6773">6773</span>
|
|
<span id="L6774" rel="#L6774">6774</span>
|
|
<span id="L6775" rel="#L6775">6775</span>
|
|
<span id="L6776" rel="#L6776">6776</span>
|
|
<span id="L6777" rel="#L6777">6777</span>
|
|
<span id="L6778" rel="#L6778">6778</span>
|
|
<span id="L6779" rel="#L6779">6779</span>
|
|
<span id="L6780" rel="#L6780">6780</span>
|
|
<span id="L6781" rel="#L6781">6781</span>
|
|
<span id="L6782" rel="#L6782">6782</span>
|
|
<span id="L6783" rel="#L6783">6783</span>
|
|
<span id="L6784" rel="#L6784">6784</span>
|
|
<span id="L6785" rel="#L6785">6785</span>
|
|
<span id="L6786" rel="#L6786">6786</span>
|
|
<span id="L6787" rel="#L6787">6787</span>
|
|
<span id="L6788" rel="#L6788">6788</span>
|
|
<span id="L6789" rel="#L6789">6789</span>
|
|
<span id="L6790" rel="#L6790">6790</span>
|
|
<span id="L6791" rel="#L6791">6791</span>
|
|
<span id="L6792" rel="#L6792">6792</span>
|
|
<span id="L6793" rel="#L6793">6793</span>
|
|
<span id="L6794" rel="#L6794">6794</span>
|
|
<span id="L6795" rel="#L6795">6795</span>
|
|
<span id="L6796" rel="#L6796">6796</span>
|
|
<span id="L6797" rel="#L6797">6797</span>
|
|
<span id="L6798" rel="#L6798">6798</span>
|
|
<span id="L6799" rel="#L6799">6799</span>
|
|
<span id="L6800" rel="#L6800">6800</span>
|
|
<span id="L6801" rel="#L6801">6801</span>
|
|
<span id="L6802" rel="#L6802">6802</span>
|
|
<span id="L6803" rel="#L6803">6803</span>
|
|
<span id="L6804" rel="#L6804">6804</span>
|
|
<span id="L6805" rel="#L6805">6805</span>
|
|
<span id="L6806" rel="#L6806">6806</span>
|
|
<span id="L6807" rel="#L6807">6807</span>
|
|
<span id="L6808" rel="#L6808">6808</span>
|
|
<span id="L6809" rel="#L6809">6809</span>
|
|
<span id="L6810" rel="#L6810">6810</span>
|
|
<span id="L6811" rel="#L6811">6811</span>
|
|
<span id="L6812" rel="#L6812">6812</span>
|
|
<span id="L6813" rel="#L6813">6813</span>
|
|
<span id="L6814" rel="#L6814">6814</span>
|
|
<span id="L6815" rel="#L6815">6815</span>
|
|
<span id="L6816" rel="#L6816">6816</span>
|
|
<span id="L6817" rel="#L6817">6817</span>
|
|
<span id="L6818" rel="#L6818">6818</span>
|
|
<span id="L6819" rel="#L6819">6819</span>
|
|
<span id="L6820" rel="#L6820">6820</span>
|
|
<span id="L6821" rel="#L6821">6821</span>
|
|
<span id="L6822" rel="#L6822">6822</span>
|
|
<span id="L6823" rel="#L6823">6823</span>
|
|
<span id="L6824" rel="#L6824">6824</span>
|
|
<span id="L6825" rel="#L6825">6825</span>
|
|
<span id="L6826" rel="#L6826">6826</span>
|
|
<span id="L6827" rel="#L6827">6827</span>
|
|
<span id="L6828" rel="#L6828">6828</span>
|
|
<span id="L6829" rel="#L6829">6829</span>
|
|
<span id="L6830" rel="#L6830">6830</span>
|
|
<span id="L6831" rel="#L6831">6831</span>
|
|
<span id="L6832" rel="#L6832">6832</span>
|
|
<span id="L6833" rel="#L6833">6833</span>
|
|
<span id="L6834" rel="#L6834">6834</span>
|
|
<span id="L6835" rel="#L6835">6835</span>
|
|
<span id="L6836" rel="#L6836">6836</span>
|
|
<span id="L6837" rel="#L6837">6837</span>
|
|
<span id="L6838" rel="#L6838">6838</span>
|
|
<span id="L6839" rel="#L6839">6839</span>
|
|
<span id="L6840" rel="#L6840">6840</span>
|
|
<span id="L6841" rel="#L6841">6841</span>
|
|
<span id="L6842" rel="#L6842">6842</span>
|
|
<span id="L6843" rel="#L6843">6843</span>
|
|
<span id="L6844" rel="#L6844">6844</span>
|
|
<span id="L6845" rel="#L6845">6845</span>
|
|
<span id="L6846" rel="#L6846">6846</span>
|
|
<span id="L6847" rel="#L6847">6847</span>
|
|
<span id="L6848" rel="#L6848">6848</span>
|
|
<span id="L6849" rel="#L6849">6849</span>
|
|
<span id="L6850" rel="#L6850">6850</span>
|
|
<span id="L6851" rel="#L6851">6851</span>
|
|
<span id="L6852" rel="#L6852">6852</span>
|
|
<span id="L6853" rel="#L6853">6853</span>
|
|
<span id="L6854" rel="#L6854">6854</span>
|
|
<span id="L6855" rel="#L6855">6855</span>
|
|
<span id="L6856" rel="#L6856">6856</span>
|
|
<span id="L6857" rel="#L6857">6857</span>
|
|
<span id="L6858" rel="#L6858">6858</span>
|
|
<span id="L6859" rel="#L6859">6859</span>
|
|
<span id="L6860" rel="#L6860">6860</span>
|
|
<span id="L6861" rel="#L6861">6861</span>
|
|
<span id="L6862" rel="#L6862">6862</span>
|
|
<span id="L6863" rel="#L6863">6863</span>
|
|
<span id="L6864" rel="#L6864">6864</span>
|
|
<span id="L6865" rel="#L6865">6865</span>
|
|
<span id="L6866" rel="#L6866">6866</span>
|
|
<span id="L6867" rel="#L6867">6867</span>
|
|
<span id="L6868" rel="#L6868">6868</span>
|
|
<span id="L6869" rel="#L6869">6869</span>
|
|
<span id="L6870" rel="#L6870">6870</span>
|
|
<span id="L6871" rel="#L6871">6871</span>
|
|
<span id="L6872" rel="#L6872">6872</span>
|
|
<span id="L6873" rel="#L6873">6873</span>
|
|
<span id="L6874" rel="#L6874">6874</span>
|
|
<span id="L6875" rel="#L6875">6875</span>
|
|
<span id="L6876" rel="#L6876">6876</span>
|
|
<span id="L6877" rel="#L6877">6877</span>
|
|
<span id="L6878" rel="#L6878">6878</span>
|
|
<span id="L6879" rel="#L6879">6879</span>
|
|
<span id="L6880" rel="#L6880">6880</span>
|
|
<span id="L6881" rel="#L6881">6881</span>
|
|
<span id="L6882" rel="#L6882">6882</span>
|
|
<span id="L6883" rel="#L6883">6883</span>
|
|
<span id="L6884" rel="#L6884">6884</span>
|
|
<span id="L6885" rel="#L6885">6885</span>
|
|
<span id="L6886" rel="#L6886">6886</span>
|
|
<span id="L6887" rel="#L6887">6887</span>
|
|
<span id="L6888" rel="#L6888">6888</span>
|
|
<span id="L6889" rel="#L6889">6889</span>
|
|
<span id="L6890" rel="#L6890">6890</span>
|
|
<span id="L6891" rel="#L6891">6891</span>
|
|
<span id="L6892" rel="#L6892">6892</span>
|
|
<span id="L6893" rel="#L6893">6893</span>
|
|
<span id="L6894" rel="#L6894">6894</span>
|
|
<span id="L6895" rel="#L6895">6895</span>
|
|
<span id="L6896" rel="#L6896">6896</span>
|
|
<span id="L6897" rel="#L6897">6897</span>
|
|
<span id="L6898" rel="#L6898">6898</span>
|
|
<span id="L6899" rel="#L6899">6899</span>
|
|
<span id="L6900" rel="#L6900">6900</span>
|
|
<span id="L6901" rel="#L6901">6901</span>
|
|
<span id="L6902" rel="#L6902">6902</span>
|
|
<span id="L6903" rel="#L6903">6903</span>
|
|
<span id="L6904" rel="#L6904">6904</span>
|
|
<span id="L6905" rel="#L6905">6905</span>
|
|
<span id="L6906" rel="#L6906">6906</span>
|
|
<span id="L6907" rel="#L6907">6907</span>
|
|
<span id="L6908" rel="#L6908">6908</span>
|
|
<span id="L6909" rel="#L6909">6909</span>
|
|
<span id="L6910" rel="#L6910">6910</span>
|
|
<span id="L6911" rel="#L6911">6911</span>
|
|
<span id="L6912" rel="#L6912">6912</span>
|
|
<span id="L6913" rel="#L6913">6913</span>
|
|
<span id="L6914" rel="#L6914">6914</span>
|
|
<span id="L6915" rel="#L6915">6915</span>
|
|
<span id="L6916" rel="#L6916">6916</span>
|
|
<span id="L6917" rel="#L6917">6917</span>
|
|
<span id="L6918" rel="#L6918">6918</span>
|
|
<span id="L6919" rel="#L6919">6919</span>
|
|
<span id="L6920" rel="#L6920">6920</span>
|
|
<span id="L6921" rel="#L6921">6921</span>
|
|
<span id="L6922" rel="#L6922">6922</span>
|
|
<span id="L6923" rel="#L6923">6923</span>
|
|
<span id="L6924" rel="#L6924">6924</span>
|
|
<span id="L6925" rel="#L6925">6925</span>
|
|
<span id="L6926" rel="#L6926">6926</span>
|
|
<span id="L6927" rel="#L6927">6927</span>
|
|
<span id="L6928" rel="#L6928">6928</span>
|
|
<span id="L6929" rel="#L6929">6929</span>
|
|
<span id="L6930" rel="#L6930">6930</span>
|
|
<span id="L6931" rel="#L6931">6931</span>
|
|
<span id="L6932" rel="#L6932">6932</span>
|
|
<span id="L6933" rel="#L6933">6933</span>
|
|
<span id="L6934" rel="#L6934">6934</span>
|
|
<span id="L6935" rel="#L6935">6935</span>
|
|
<span id="L6936" rel="#L6936">6936</span>
|
|
<span id="L6937" rel="#L6937">6937</span>
|
|
<span id="L6938" rel="#L6938">6938</span>
|
|
<span id="L6939" rel="#L6939">6939</span>
|
|
<span id="L6940" rel="#L6940">6940</span>
|
|
<span id="L6941" rel="#L6941">6941</span>
|
|
<span id="L6942" rel="#L6942">6942</span>
|
|
<span id="L6943" rel="#L6943">6943</span>
|
|
<span id="L6944" rel="#L6944">6944</span>
|
|
<span id="L6945" rel="#L6945">6945</span>
|
|
<span id="L6946" rel="#L6946">6946</span>
|
|
<span id="L6947" rel="#L6947">6947</span>
|
|
<span id="L6948" rel="#L6948">6948</span>
|
|
<span id="L6949" rel="#L6949">6949</span>
|
|
<span id="L6950" rel="#L6950">6950</span>
|
|
<span id="L6951" rel="#L6951">6951</span>
|
|
<span id="L6952" rel="#L6952">6952</span>
|
|
<span id="L6953" rel="#L6953">6953</span>
|
|
<span id="L6954" rel="#L6954">6954</span>
|
|
<span id="L6955" rel="#L6955">6955</span>
|
|
<span id="L6956" rel="#L6956">6956</span>
|
|
<span id="L6957" rel="#L6957">6957</span>
|
|
<span id="L6958" rel="#L6958">6958</span>
|
|
<span id="L6959" rel="#L6959">6959</span>
|
|
<span id="L6960" rel="#L6960">6960</span>
|
|
<span id="L6961" rel="#L6961">6961</span>
|
|
<span id="L6962" rel="#L6962">6962</span>
|
|
<span id="L6963" rel="#L6963">6963</span>
|
|
<span id="L6964" rel="#L6964">6964</span>
|
|
<span id="L6965" rel="#L6965">6965</span>
|
|
<span id="L6966" rel="#L6966">6966</span>
|
|
<span id="L6967" rel="#L6967">6967</span>
|
|
<span id="L6968" rel="#L6968">6968</span>
|
|
<span id="L6969" rel="#L6969">6969</span>
|
|
<span id="L6970" rel="#L6970">6970</span>
|
|
<span id="L6971" rel="#L6971">6971</span>
|
|
<span id="L6972" rel="#L6972">6972</span>
|
|
<span id="L6973" rel="#L6973">6973</span>
|
|
<span id="L6974" rel="#L6974">6974</span>
|
|
<span id="L6975" rel="#L6975">6975</span>
|
|
<span id="L6976" rel="#L6976">6976</span>
|
|
<span id="L6977" rel="#L6977">6977</span>
|
|
<span id="L6978" rel="#L6978">6978</span>
|
|
<span id="L6979" rel="#L6979">6979</span>
|
|
<span id="L6980" rel="#L6980">6980</span>
|
|
<span id="L6981" rel="#L6981">6981</span>
|
|
<span id="L6982" rel="#L6982">6982</span>
|
|
<span id="L6983" rel="#L6983">6983</span>
|
|
<span id="L6984" rel="#L6984">6984</span>
|
|
<span id="L6985" rel="#L6985">6985</span>
|
|
<span id="L6986" rel="#L6986">6986</span>
|
|
<span id="L6987" rel="#L6987">6987</span>
|
|
<span id="L6988" rel="#L6988">6988</span>
|
|
<span id="L6989" rel="#L6989">6989</span>
|
|
<span id="L6990" rel="#L6990">6990</span>
|
|
<span id="L6991" rel="#L6991">6991</span>
|
|
<span id="L6992" rel="#L6992">6992</span>
|
|
<span id="L6993" rel="#L6993">6993</span>
|
|
<span id="L6994" rel="#L6994">6994</span>
|
|
<span id="L6995" rel="#L6995">6995</span>
|
|
<span id="L6996" rel="#L6996">6996</span>
|
|
<span id="L6997" rel="#L6997">6997</span>
|
|
<span id="L6998" rel="#L6998">6998</span>
|
|
<span id="L6999" rel="#L6999">6999</span>
|
|
<span id="L7000" rel="#L7000">7000</span>
|
|
<span id="L7001" rel="#L7001">7001</span>
|
|
<span id="L7002" rel="#L7002">7002</span>
|
|
<span id="L7003" rel="#L7003">7003</span>
|
|
<span id="L7004" rel="#L7004">7004</span>
|
|
<span id="L7005" rel="#L7005">7005</span>
|
|
<span id="L7006" rel="#L7006">7006</span>
|
|
<span id="L7007" rel="#L7007">7007</span>
|
|
<span id="L7008" rel="#L7008">7008</span>
|
|
<span id="L7009" rel="#L7009">7009</span>
|
|
<span id="L7010" rel="#L7010">7010</span>
|
|
<span id="L7011" rel="#L7011">7011</span>
|
|
<span id="L7012" rel="#L7012">7012</span>
|
|
<span id="L7013" rel="#L7013">7013</span>
|
|
<span id="L7014" rel="#L7014">7014</span>
|
|
<span id="L7015" rel="#L7015">7015</span>
|
|
<span id="L7016" rel="#L7016">7016</span>
|
|
<span id="L7017" rel="#L7017">7017</span>
|
|
<span id="L7018" rel="#L7018">7018</span>
|
|
<span id="L7019" rel="#L7019">7019</span>
|
|
<span id="L7020" rel="#L7020">7020</span>
|
|
<span id="L7021" rel="#L7021">7021</span>
|
|
<span id="L7022" rel="#L7022">7022</span>
|
|
<span id="L7023" rel="#L7023">7023</span>
|
|
<span id="L7024" rel="#L7024">7024</span>
|
|
<span id="L7025" rel="#L7025">7025</span>
|
|
<span id="L7026" rel="#L7026">7026</span>
|
|
<span id="L7027" rel="#L7027">7027</span>
|
|
<span id="L7028" rel="#L7028">7028</span>
|
|
<span id="L7029" rel="#L7029">7029</span>
|
|
<span id="L7030" rel="#L7030">7030</span>
|
|
<span id="L7031" rel="#L7031">7031</span>
|
|
<span id="L7032" rel="#L7032">7032</span>
|
|
<span id="L7033" rel="#L7033">7033</span>
|
|
<span id="L7034" rel="#L7034">7034</span>
|
|
<span id="L7035" rel="#L7035">7035</span>
|
|
<span id="L7036" rel="#L7036">7036</span>
|
|
<span id="L7037" rel="#L7037">7037</span>
|
|
<span id="L7038" rel="#L7038">7038</span>
|
|
<span id="L7039" rel="#L7039">7039</span>
|
|
<span id="L7040" rel="#L7040">7040</span>
|
|
<span id="L7041" rel="#L7041">7041</span>
|
|
<span id="L7042" rel="#L7042">7042</span>
|
|
<span id="L7043" rel="#L7043">7043</span>
|
|
<span id="L7044" rel="#L7044">7044</span>
|
|
<span id="L7045" rel="#L7045">7045</span>
|
|
<span id="L7046" rel="#L7046">7046</span>
|
|
<span id="L7047" rel="#L7047">7047</span>
|
|
<span id="L7048" rel="#L7048">7048</span>
|
|
<span id="L7049" rel="#L7049">7049</span>
|
|
<span id="L7050" rel="#L7050">7050</span>
|
|
<span id="L7051" rel="#L7051">7051</span>
|
|
<span id="L7052" rel="#L7052">7052</span>
|
|
<span id="L7053" rel="#L7053">7053</span>
|
|
<span id="L7054" rel="#L7054">7054</span>
|
|
<span id="L7055" rel="#L7055">7055</span>
|
|
<span id="L7056" rel="#L7056">7056</span>
|
|
<span id="L7057" rel="#L7057">7057</span>
|
|
<span id="L7058" rel="#L7058">7058</span>
|
|
<span id="L7059" rel="#L7059">7059</span>
|
|
<span id="L7060" rel="#L7060">7060</span>
|
|
<span id="L7061" rel="#L7061">7061</span>
|
|
<span id="L7062" rel="#L7062">7062</span>
|
|
<span id="L7063" rel="#L7063">7063</span>
|
|
<span id="L7064" rel="#L7064">7064</span>
|
|
<span id="L7065" rel="#L7065">7065</span>
|
|
<span id="L7066" rel="#L7066">7066</span>
|
|
<span id="L7067" rel="#L7067">7067</span>
|
|
<span id="L7068" rel="#L7068">7068</span>
|
|
<span id="L7069" rel="#L7069">7069</span>
|
|
<span id="L7070" rel="#L7070">7070</span>
|
|
<span id="L7071" rel="#L7071">7071</span>
|
|
<span id="L7072" rel="#L7072">7072</span>
|
|
<span id="L7073" rel="#L7073">7073</span>
|
|
<span id="L7074" rel="#L7074">7074</span>
|
|
<span id="L7075" rel="#L7075">7075</span>
|
|
<span id="L7076" rel="#L7076">7076</span>
|
|
<span id="L7077" rel="#L7077">7077</span>
|
|
<span id="L7078" rel="#L7078">7078</span>
|
|
<span id="L7079" rel="#L7079">7079</span>
|
|
<span id="L7080" rel="#L7080">7080</span>
|
|
<span id="L7081" rel="#L7081">7081</span>
|
|
<span id="L7082" rel="#L7082">7082</span>
|
|
<span id="L7083" rel="#L7083">7083</span>
|
|
<span id="L7084" rel="#L7084">7084</span>
|
|
<span id="L7085" rel="#L7085">7085</span>
|
|
<span id="L7086" rel="#L7086">7086</span>
|
|
<span id="L7087" rel="#L7087">7087</span>
|
|
<span id="L7088" rel="#L7088">7088</span>
|
|
<span id="L7089" rel="#L7089">7089</span>
|
|
<span id="L7090" rel="#L7090">7090</span>
|
|
<span id="L7091" rel="#L7091">7091</span>
|
|
<span id="L7092" rel="#L7092">7092</span>
|
|
<span id="L7093" rel="#L7093">7093</span>
|
|
<span id="L7094" rel="#L7094">7094</span>
|
|
<span id="L7095" rel="#L7095">7095</span>
|
|
<span id="L7096" rel="#L7096">7096</span>
|
|
<span id="L7097" rel="#L7097">7097</span>
|
|
<span id="L7098" rel="#L7098">7098</span>
|
|
<span id="L7099" rel="#L7099">7099</span>
|
|
<span id="L7100" rel="#L7100">7100</span>
|
|
<span id="L7101" rel="#L7101">7101</span>
|
|
<span id="L7102" rel="#L7102">7102</span>
|
|
<span id="L7103" rel="#L7103">7103</span>
|
|
<span id="L7104" rel="#L7104">7104</span>
|
|
<span id="L7105" rel="#L7105">7105</span>
|
|
<span id="L7106" rel="#L7106">7106</span>
|
|
<span id="L7107" rel="#L7107">7107</span>
|
|
<span id="L7108" rel="#L7108">7108</span>
|
|
<span id="L7109" rel="#L7109">7109</span>
|
|
<span id="L7110" rel="#L7110">7110</span>
|
|
<span id="L7111" rel="#L7111">7111</span>
|
|
<span id="L7112" rel="#L7112">7112</span>
|
|
<span id="L7113" rel="#L7113">7113</span>
|
|
<span id="L7114" rel="#L7114">7114</span>
|
|
<span id="L7115" rel="#L7115">7115</span>
|
|
<span id="L7116" rel="#L7116">7116</span>
|
|
<span id="L7117" rel="#L7117">7117</span>
|
|
<span id="L7118" rel="#L7118">7118</span>
|
|
<span id="L7119" rel="#L7119">7119</span>
|
|
<span id="L7120" rel="#L7120">7120</span>
|
|
<span id="L7121" rel="#L7121">7121</span>
|
|
<span id="L7122" rel="#L7122">7122</span>
|
|
<span id="L7123" rel="#L7123">7123</span>
|
|
<span id="L7124" rel="#L7124">7124</span>
|
|
<span id="L7125" rel="#L7125">7125</span>
|
|
<span id="L7126" rel="#L7126">7126</span>
|
|
<span id="L7127" rel="#L7127">7127</span>
|
|
<span id="L7128" rel="#L7128">7128</span>
|
|
<span id="L7129" rel="#L7129">7129</span>
|
|
<span id="L7130" rel="#L7130">7130</span>
|
|
<span id="L7131" rel="#L7131">7131</span>
|
|
<span id="L7132" rel="#L7132">7132</span>
|
|
<span id="L7133" rel="#L7133">7133</span>
|
|
<span id="L7134" rel="#L7134">7134</span>
|
|
<span id="L7135" rel="#L7135">7135</span>
|
|
<span id="L7136" rel="#L7136">7136</span>
|
|
<span id="L7137" rel="#L7137">7137</span>
|
|
<span id="L7138" rel="#L7138">7138</span>
|
|
<span id="L7139" rel="#L7139">7139</span>
|
|
<span id="L7140" rel="#L7140">7140</span>
|
|
<span id="L7141" rel="#L7141">7141</span>
|
|
<span id="L7142" rel="#L7142">7142</span>
|
|
<span id="L7143" rel="#L7143">7143</span>
|
|
<span id="L7144" rel="#L7144">7144</span>
|
|
<span id="L7145" rel="#L7145">7145</span>
|
|
<span id="L7146" rel="#L7146">7146</span>
|
|
<span id="L7147" rel="#L7147">7147</span>
|
|
<span id="L7148" rel="#L7148">7148</span>
|
|
<span id="L7149" rel="#L7149">7149</span>
|
|
<span id="L7150" rel="#L7150">7150</span>
|
|
<span id="L7151" rel="#L7151">7151</span>
|
|
<span id="L7152" rel="#L7152">7152</span>
|
|
<span id="L7153" rel="#L7153">7153</span>
|
|
<span id="L7154" rel="#L7154">7154</span>
|
|
<span id="L7155" rel="#L7155">7155</span>
|
|
<span id="L7156" rel="#L7156">7156</span>
|
|
<span id="L7157" rel="#L7157">7157</span>
|
|
<span id="L7158" rel="#L7158">7158</span>
|
|
<span id="L7159" rel="#L7159">7159</span>
|
|
<span id="L7160" rel="#L7160">7160</span>
|
|
<span id="L7161" rel="#L7161">7161</span>
|
|
<span id="L7162" rel="#L7162">7162</span>
|
|
<span id="L7163" rel="#L7163">7163</span>
|
|
<span id="L7164" rel="#L7164">7164</span>
|
|
<span id="L7165" rel="#L7165">7165</span>
|
|
<span id="L7166" rel="#L7166">7166</span>
|
|
<span id="L7167" rel="#L7167">7167</span>
|
|
<span id="L7168" rel="#L7168">7168</span>
|
|
<span id="L7169" rel="#L7169">7169</span>
|
|
<span id="L7170" rel="#L7170">7170</span>
|
|
<span id="L7171" rel="#L7171">7171</span>
|
|
<span id="L7172" rel="#L7172">7172</span>
|
|
<span id="L7173" rel="#L7173">7173</span>
|
|
<span id="L7174" rel="#L7174">7174</span>
|
|
<span id="L7175" rel="#L7175">7175</span>
|
|
<span id="L7176" rel="#L7176">7176</span>
|
|
<span id="L7177" rel="#L7177">7177</span>
|
|
<span id="L7178" rel="#L7178">7178</span>
|
|
<span id="L7179" rel="#L7179">7179</span>
|
|
<span id="L7180" rel="#L7180">7180</span>
|
|
<span id="L7181" rel="#L7181">7181</span>
|
|
<span id="L7182" rel="#L7182">7182</span>
|
|
<span id="L7183" rel="#L7183">7183</span>
|
|
<span id="L7184" rel="#L7184">7184</span>
|
|
<span id="L7185" rel="#L7185">7185</span>
|
|
<span id="L7186" rel="#L7186">7186</span>
|
|
<span id="L7187" rel="#L7187">7187</span>
|
|
<span id="L7188" rel="#L7188">7188</span>
|
|
<span id="L7189" rel="#L7189">7189</span>
|
|
<span id="L7190" rel="#L7190">7190</span>
|
|
<span id="L7191" rel="#L7191">7191</span>
|
|
<span id="L7192" rel="#L7192">7192</span>
|
|
<span id="L7193" rel="#L7193">7193</span>
|
|
<span id="L7194" rel="#L7194">7194</span>
|
|
<span id="L7195" rel="#L7195">7195</span>
|
|
<span id="L7196" rel="#L7196">7196</span>
|
|
<span id="L7197" rel="#L7197">7197</span>
|
|
<span id="L7198" rel="#L7198">7198</span>
|
|
<span id="L7199" rel="#L7199">7199</span>
|
|
<span id="L7200" rel="#L7200">7200</span>
|
|
<span id="L7201" rel="#L7201">7201</span>
|
|
<span id="L7202" rel="#L7202">7202</span>
|
|
<span id="L7203" rel="#L7203">7203</span>
|
|
<span id="L7204" rel="#L7204">7204</span>
|
|
<span id="L7205" rel="#L7205">7205</span>
|
|
<span id="L7206" rel="#L7206">7206</span>
|
|
<span id="L7207" rel="#L7207">7207</span>
|
|
<span id="L7208" rel="#L7208">7208</span>
|
|
<span id="L7209" rel="#L7209">7209</span>
|
|
<span id="L7210" rel="#L7210">7210</span>
|
|
<span id="L7211" rel="#L7211">7211</span>
|
|
<span id="L7212" rel="#L7212">7212</span>
|
|
<span id="L7213" rel="#L7213">7213</span>
|
|
<span id="L7214" rel="#L7214">7214</span>
|
|
<span id="L7215" rel="#L7215">7215</span>
|
|
<span id="L7216" rel="#L7216">7216</span>
|
|
<span id="L7217" rel="#L7217">7217</span>
|
|
<span id="L7218" rel="#L7218">7218</span>
|
|
<span id="L7219" rel="#L7219">7219</span>
|
|
<span id="L7220" rel="#L7220">7220</span>
|
|
<span id="L7221" rel="#L7221">7221</span>
|
|
<span id="L7222" rel="#L7222">7222</span>
|
|
<span id="L7223" rel="#L7223">7223</span>
|
|
<span id="L7224" rel="#L7224">7224</span>
|
|
<span id="L7225" rel="#L7225">7225</span>
|
|
<span id="L7226" rel="#L7226">7226</span>
|
|
<span id="L7227" rel="#L7227">7227</span>
|
|
<span id="L7228" rel="#L7228">7228</span>
|
|
<span id="L7229" rel="#L7229">7229</span>
|
|
<span id="L7230" rel="#L7230">7230</span>
|
|
<span id="L7231" rel="#L7231">7231</span>
|
|
<span id="L7232" rel="#L7232">7232</span>
|
|
<span id="L7233" rel="#L7233">7233</span>
|
|
<span id="L7234" rel="#L7234">7234</span>
|
|
<span id="L7235" rel="#L7235">7235</span>
|
|
<span id="L7236" rel="#L7236">7236</span>
|
|
<span id="L7237" rel="#L7237">7237</span>
|
|
<span id="L7238" rel="#L7238">7238</span>
|
|
<span id="L7239" rel="#L7239">7239</span>
|
|
<span id="L7240" rel="#L7240">7240</span>
|
|
<span id="L7241" rel="#L7241">7241</span>
|
|
<span id="L7242" rel="#L7242">7242</span>
|
|
<span id="L7243" rel="#L7243">7243</span>
|
|
<span id="L7244" rel="#L7244">7244</span>
|
|
<span id="L7245" rel="#L7245">7245</span>
|
|
<span id="L7246" rel="#L7246">7246</span>
|
|
<span id="L7247" rel="#L7247">7247</span>
|
|
<span id="L7248" rel="#L7248">7248</span>
|
|
<span id="L7249" rel="#L7249">7249</span>
|
|
<span id="L7250" rel="#L7250">7250</span>
|
|
<span id="L7251" rel="#L7251">7251</span>
|
|
<span id="L7252" rel="#L7252">7252</span>
|
|
<span id="L7253" rel="#L7253">7253</span>
|
|
<span id="L7254" rel="#L7254">7254</span>
|
|
<span id="L7255" rel="#L7255">7255</span>
|
|
<span id="L7256" rel="#L7256">7256</span>
|
|
<span id="L7257" rel="#L7257">7257</span>
|
|
<span id="L7258" rel="#L7258">7258</span>
|
|
<span id="L7259" rel="#L7259">7259</span>
|
|
<span id="L7260" rel="#L7260">7260</span>
|
|
<span id="L7261" rel="#L7261">7261</span>
|
|
<span id="L7262" rel="#L7262">7262</span>
|
|
<span id="L7263" rel="#L7263">7263</span>
|
|
<span id="L7264" rel="#L7264">7264</span>
|
|
<span id="L7265" rel="#L7265">7265</span>
|
|
<span id="L7266" rel="#L7266">7266</span>
|
|
<span id="L7267" rel="#L7267">7267</span>
|
|
<span id="L7268" rel="#L7268">7268</span>
|
|
<span id="L7269" rel="#L7269">7269</span>
|
|
<span id="L7270" rel="#L7270">7270</span>
|
|
<span id="L7271" rel="#L7271">7271</span>
|
|
<span id="L7272" rel="#L7272">7272</span>
|
|
<span id="L7273" rel="#L7273">7273</span>
|
|
<span id="L7274" rel="#L7274">7274</span>
|
|
<span id="L7275" rel="#L7275">7275</span>
|
|
<span id="L7276" rel="#L7276">7276</span>
|
|
<span id="L7277" rel="#L7277">7277</span>
|
|
<span id="L7278" rel="#L7278">7278</span>
|
|
<span id="L7279" rel="#L7279">7279</span>
|
|
<span id="L7280" rel="#L7280">7280</span>
|
|
<span id="L7281" rel="#L7281">7281</span>
|
|
<span id="L7282" rel="#L7282">7282</span>
|
|
<span id="L7283" rel="#L7283">7283</span>
|
|
<span id="L7284" rel="#L7284">7284</span>
|
|
<span id="L7285" rel="#L7285">7285</span>
|
|
<span id="L7286" rel="#L7286">7286</span>
|
|
<span id="L7287" rel="#L7287">7287</span>
|
|
<span id="L7288" rel="#L7288">7288</span>
|
|
<span id="L7289" rel="#L7289">7289</span>
|
|
<span id="L7290" rel="#L7290">7290</span>
|
|
<span id="L7291" rel="#L7291">7291</span>
|
|
<span id="L7292" rel="#L7292">7292</span>
|
|
<span id="L7293" rel="#L7293">7293</span>
|
|
<span id="L7294" rel="#L7294">7294</span>
|
|
<span id="L7295" rel="#L7295">7295</span>
|
|
<span id="L7296" rel="#L7296">7296</span>
|
|
<span id="L7297" rel="#L7297">7297</span>
|
|
<span id="L7298" rel="#L7298">7298</span>
|
|
<span id="L7299" rel="#L7299">7299</span>
|
|
<span id="L7300" rel="#L7300">7300</span>
|
|
<span id="L7301" rel="#L7301">7301</span>
|
|
<span id="L7302" rel="#L7302">7302</span>
|
|
<span id="L7303" rel="#L7303">7303</span>
|
|
<span id="L7304" rel="#L7304">7304</span>
|
|
<span id="L7305" rel="#L7305">7305</span>
|
|
<span id="L7306" rel="#L7306">7306</span>
|
|
<span id="L7307" rel="#L7307">7307</span>
|
|
<span id="L7308" rel="#L7308">7308</span>
|
|
<span id="L7309" rel="#L7309">7309</span>
|
|
<span id="L7310" rel="#L7310">7310</span>
|
|
<span id="L7311" rel="#L7311">7311</span>
|
|
<span id="L7312" rel="#L7312">7312</span>
|
|
<span id="L7313" rel="#L7313">7313</span>
|
|
<span id="L7314" rel="#L7314">7314</span>
|
|
<span id="L7315" rel="#L7315">7315</span>
|
|
<span id="L7316" rel="#L7316">7316</span>
|
|
<span id="L7317" rel="#L7317">7317</span>
|
|
<span id="L7318" rel="#L7318">7318</span>
|
|
<span id="L7319" rel="#L7319">7319</span>
|
|
<span id="L7320" rel="#L7320">7320</span>
|
|
<span id="L7321" rel="#L7321">7321</span>
|
|
<span id="L7322" rel="#L7322">7322</span>
|
|
<span id="L7323" rel="#L7323">7323</span>
|
|
<span id="L7324" rel="#L7324">7324</span>
|
|
<span id="L7325" rel="#L7325">7325</span>
|
|
<span id="L7326" rel="#L7326">7326</span>
|
|
<span id="L7327" rel="#L7327">7327</span>
|
|
<span id="L7328" rel="#L7328">7328</span>
|
|
<span id="L7329" rel="#L7329">7329</span>
|
|
<span id="L7330" rel="#L7330">7330</span>
|
|
<span id="L7331" rel="#L7331">7331</span>
|
|
<span id="L7332" rel="#L7332">7332</span>
|
|
<span id="L7333" rel="#L7333">7333</span>
|
|
<span id="L7334" rel="#L7334">7334</span>
|
|
<span id="L7335" rel="#L7335">7335</span>
|
|
<span id="L7336" rel="#L7336">7336</span>
|
|
<span id="L7337" rel="#L7337">7337</span>
|
|
<span id="L7338" rel="#L7338">7338</span>
|
|
<span id="L7339" rel="#L7339">7339</span>
|
|
<span id="L7340" rel="#L7340">7340</span>
|
|
<span id="L7341" rel="#L7341">7341</span>
|
|
<span id="L7342" rel="#L7342">7342</span>
|
|
<span id="L7343" rel="#L7343">7343</span>
|
|
<span id="L7344" rel="#L7344">7344</span>
|
|
<span id="L7345" rel="#L7345">7345</span>
|
|
<span id="L7346" rel="#L7346">7346</span>
|
|
<span id="L7347" rel="#L7347">7347</span>
|
|
<span id="L7348" rel="#L7348">7348</span>
|
|
<span id="L7349" rel="#L7349">7349</span>
|
|
<span id="L7350" rel="#L7350">7350</span>
|
|
<span id="L7351" rel="#L7351">7351</span>
|
|
<span id="L7352" rel="#L7352">7352</span>
|
|
<span id="L7353" rel="#L7353">7353</span>
|
|
<span id="L7354" rel="#L7354">7354</span>
|
|
<span id="L7355" rel="#L7355">7355</span>
|
|
<span id="L7356" rel="#L7356">7356</span>
|
|
<span id="L7357" rel="#L7357">7357</span>
|
|
<span id="L7358" rel="#L7358">7358</span>
|
|
<span id="L7359" rel="#L7359">7359</span>
|
|
<span id="L7360" rel="#L7360">7360</span>
|
|
<span id="L7361" rel="#L7361">7361</span>
|
|
<span id="L7362" rel="#L7362">7362</span>
|
|
<span id="L7363" rel="#L7363">7363</span>
|
|
<span id="L7364" rel="#L7364">7364</span>
|
|
<span id="L7365" rel="#L7365">7365</span>
|
|
<span id="L7366" rel="#L7366">7366</span>
|
|
<span id="L7367" rel="#L7367">7367</span>
|
|
<span id="L7368" rel="#L7368">7368</span>
|
|
<span id="L7369" rel="#L7369">7369</span>
|
|
<span id="L7370" rel="#L7370">7370</span>
|
|
<span id="L7371" rel="#L7371">7371</span>
|
|
<span id="L7372" rel="#L7372">7372</span>
|
|
<span id="L7373" rel="#L7373">7373</span>
|
|
<span id="L7374" rel="#L7374">7374</span>
|
|
<span id="L7375" rel="#L7375">7375</span>
|
|
<span id="L7376" rel="#L7376">7376</span>
|
|
<span id="L7377" rel="#L7377">7377</span>
|
|
<span id="L7378" rel="#L7378">7378</span>
|
|
<span id="L7379" rel="#L7379">7379</span>
|
|
<span id="L7380" rel="#L7380">7380</span>
|
|
<span id="L7381" rel="#L7381">7381</span>
|
|
<span id="L7382" rel="#L7382">7382</span>
|
|
<span id="L7383" rel="#L7383">7383</span>
|
|
<span id="L7384" rel="#L7384">7384</span>
|
|
<span id="L7385" rel="#L7385">7385</span>
|
|
<span id="L7386" rel="#L7386">7386</span>
|
|
<span id="L7387" rel="#L7387">7387</span>
|
|
<span id="L7388" rel="#L7388">7388</span>
|
|
<span id="L7389" rel="#L7389">7389</span>
|
|
<span id="L7390" rel="#L7390">7390</span>
|
|
<span id="L7391" rel="#L7391">7391</span>
|
|
<span id="L7392" rel="#L7392">7392</span>
|
|
<span id="L7393" rel="#L7393">7393</span>
|
|
<span id="L7394" rel="#L7394">7394</span>
|
|
<span id="L7395" rel="#L7395">7395</span>
|
|
<span id="L7396" rel="#L7396">7396</span>
|
|
<span id="L7397" rel="#L7397">7397</span>
|
|
<span id="L7398" rel="#L7398">7398</span>
|
|
<span id="L7399" rel="#L7399">7399</span>
|
|
<span id="L7400" rel="#L7400">7400</span>
|
|
<span id="L7401" rel="#L7401">7401</span>
|
|
<span id="L7402" rel="#L7402">7402</span>
|
|
<span id="L7403" rel="#L7403">7403</span>
|
|
<span id="L7404" rel="#L7404">7404</span>
|
|
<span id="L7405" rel="#L7405">7405</span>
|
|
<span id="L7406" rel="#L7406">7406</span>
|
|
<span id="L7407" rel="#L7407">7407</span>
|
|
<span id="L7408" rel="#L7408">7408</span>
|
|
<span id="L7409" rel="#L7409">7409</span>
|
|
<span id="L7410" rel="#L7410">7410</span>
|
|
<span id="L7411" rel="#L7411">7411</span>
|
|
<span id="L7412" rel="#L7412">7412</span>
|
|
<span id="L7413" rel="#L7413">7413</span>
|
|
<span id="L7414" rel="#L7414">7414</span>
|
|
<span id="L7415" rel="#L7415">7415</span>
|
|
<span id="L7416" rel="#L7416">7416</span>
|
|
<span id="L7417" rel="#L7417">7417</span>
|
|
<span id="L7418" rel="#L7418">7418</span>
|
|
<span id="L7419" rel="#L7419">7419</span>
|
|
<span id="L7420" rel="#L7420">7420</span>
|
|
<span id="L7421" rel="#L7421">7421</span>
|
|
<span id="L7422" rel="#L7422">7422</span>
|
|
<span id="L7423" rel="#L7423">7423</span>
|
|
<span id="L7424" rel="#L7424">7424</span>
|
|
<span id="L7425" rel="#L7425">7425</span>
|
|
<span id="L7426" rel="#L7426">7426</span>
|
|
<span id="L7427" rel="#L7427">7427</span>
|
|
<span id="L7428" rel="#L7428">7428</span>
|
|
<span id="L7429" rel="#L7429">7429</span>
|
|
<span id="L7430" rel="#L7430">7430</span>
|
|
<span id="L7431" rel="#L7431">7431</span>
|
|
<span id="L7432" rel="#L7432">7432</span>
|
|
<span id="L7433" rel="#L7433">7433</span>
|
|
<span id="L7434" rel="#L7434">7434</span>
|
|
<span id="L7435" rel="#L7435">7435</span>
|
|
<span id="L7436" rel="#L7436">7436</span>
|
|
<span id="L7437" rel="#L7437">7437</span>
|
|
<span id="L7438" rel="#L7438">7438</span>
|
|
<span id="L7439" rel="#L7439">7439</span>
|
|
<span id="L7440" rel="#L7440">7440</span>
|
|
<span id="L7441" rel="#L7441">7441</span>
|
|
<span id="L7442" rel="#L7442">7442</span>
|
|
<span id="L7443" rel="#L7443">7443</span>
|
|
<span id="L7444" rel="#L7444">7444</span>
|
|
<span id="L7445" rel="#L7445">7445</span>
|
|
<span id="L7446" rel="#L7446">7446</span>
|
|
<span id="L7447" rel="#L7447">7447</span>
|
|
<span id="L7448" rel="#L7448">7448</span>
|
|
<span id="L7449" rel="#L7449">7449</span>
|
|
<span id="L7450" rel="#L7450">7450</span>
|
|
<span id="L7451" rel="#L7451">7451</span>
|
|
<span id="L7452" rel="#L7452">7452</span>
|
|
<span id="L7453" rel="#L7453">7453</span>
|
|
<span id="L7454" rel="#L7454">7454</span>
|
|
<span id="L7455" rel="#L7455">7455</span>
|
|
<span id="L7456" rel="#L7456">7456</span>
|
|
<span id="L7457" rel="#L7457">7457</span>
|
|
<span id="L7458" rel="#L7458">7458</span>
|
|
<span id="L7459" rel="#L7459">7459</span>
|
|
<span id="L7460" rel="#L7460">7460</span>
|
|
<span id="L7461" rel="#L7461">7461</span>
|
|
<span id="L7462" rel="#L7462">7462</span>
|
|
<span id="L7463" rel="#L7463">7463</span>
|
|
<span id="L7464" rel="#L7464">7464</span>
|
|
<span id="L7465" rel="#L7465">7465</span>
|
|
<span id="L7466" rel="#L7466">7466</span>
|
|
<span id="L7467" rel="#L7467">7467</span>
|
|
<span id="L7468" rel="#L7468">7468</span>
|
|
<span id="L7469" rel="#L7469">7469</span>
|
|
<span id="L7470" rel="#L7470">7470</span>
|
|
<span id="L7471" rel="#L7471">7471</span>
|
|
<span id="L7472" rel="#L7472">7472</span>
|
|
<span id="L7473" rel="#L7473">7473</span>
|
|
<span id="L7474" rel="#L7474">7474</span>
|
|
<span id="L7475" rel="#L7475">7475</span>
|
|
<span id="L7476" rel="#L7476">7476</span>
|
|
<span id="L7477" rel="#L7477">7477</span>
|
|
<span id="L7478" rel="#L7478">7478</span>
|
|
<span id="L7479" rel="#L7479">7479</span>
|
|
<span id="L7480" rel="#L7480">7480</span>
|
|
<span id="L7481" rel="#L7481">7481</span>
|
|
<span id="L7482" rel="#L7482">7482</span>
|
|
<span id="L7483" rel="#L7483">7483</span>
|
|
<span id="L7484" rel="#L7484">7484</span>
|
|
<span id="L7485" rel="#L7485">7485</span>
|
|
<span id="L7486" rel="#L7486">7486</span>
|
|
<span id="L7487" rel="#L7487">7487</span>
|
|
<span id="L7488" rel="#L7488">7488</span>
|
|
<span id="L7489" rel="#L7489">7489</span>
|
|
<span id="L7490" rel="#L7490">7490</span>
|
|
<span id="L7491" rel="#L7491">7491</span>
|
|
<span id="L7492" rel="#L7492">7492</span>
|
|
<span id="L7493" rel="#L7493">7493</span>
|
|
<span id="L7494" rel="#L7494">7494</span>
|
|
<span id="L7495" rel="#L7495">7495</span>
|
|
<span id="L7496" rel="#L7496">7496</span>
|
|
<span id="L7497" rel="#L7497">7497</span>
|
|
<span id="L7498" rel="#L7498">7498</span>
|
|
<span id="L7499" rel="#L7499">7499</span>
|
|
<span id="L7500" rel="#L7500">7500</span>
|
|
<span id="L7501" rel="#L7501">7501</span>
|
|
<span id="L7502" rel="#L7502">7502</span>
|
|
<span id="L7503" rel="#L7503">7503</span>
|
|
<span id="L7504" rel="#L7504">7504</span>
|
|
<span id="L7505" rel="#L7505">7505</span>
|
|
<span id="L7506" rel="#L7506">7506</span>
|
|
<span id="L7507" rel="#L7507">7507</span>
|
|
<span id="L7508" rel="#L7508">7508</span>
|
|
<span id="L7509" rel="#L7509">7509</span>
|
|
<span id="L7510" rel="#L7510">7510</span>
|
|
<span id="L7511" rel="#L7511">7511</span>
|
|
<span id="L7512" rel="#L7512">7512</span>
|
|
<span id="L7513" rel="#L7513">7513</span>
|
|
<span id="L7514" rel="#L7514">7514</span>
|
|
<span id="L7515" rel="#L7515">7515</span>
|
|
<span id="L7516" rel="#L7516">7516</span>
|
|
<span id="L7517" rel="#L7517">7517</span>
|
|
<span id="L7518" rel="#L7518">7518</span>
|
|
<span id="L7519" rel="#L7519">7519</span>
|
|
<span id="L7520" rel="#L7520">7520</span>
|
|
<span id="L7521" rel="#L7521">7521</span>
|
|
<span id="L7522" rel="#L7522">7522</span>
|
|
<span id="L7523" rel="#L7523">7523</span>
|
|
<span id="L7524" rel="#L7524">7524</span>
|
|
<span id="L7525" rel="#L7525">7525</span>
|
|
<span id="L7526" rel="#L7526">7526</span>
|
|
<span id="L7527" rel="#L7527">7527</span>
|
|
<span id="L7528" rel="#L7528">7528</span>
|
|
<span id="L7529" rel="#L7529">7529</span>
|
|
<span id="L7530" rel="#L7530">7530</span>
|
|
<span id="L7531" rel="#L7531">7531</span>
|
|
<span id="L7532" rel="#L7532">7532</span>
|
|
<span id="L7533" rel="#L7533">7533</span>
|
|
<span id="L7534" rel="#L7534">7534</span>
|
|
<span id="L7535" rel="#L7535">7535</span>
|
|
<span id="L7536" rel="#L7536">7536</span>
|
|
<span id="L7537" rel="#L7537">7537</span>
|
|
<span id="L7538" rel="#L7538">7538</span>
|
|
<span id="L7539" rel="#L7539">7539</span>
|
|
<span id="L7540" rel="#L7540">7540</span>
|
|
<span id="L7541" rel="#L7541">7541</span>
|
|
<span id="L7542" rel="#L7542">7542</span>
|
|
<span id="L7543" rel="#L7543">7543</span>
|
|
<span id="L7544" rel="#L7544">7544</span>
|
|
<span id="L7545" rel="#L7545">7545</span>
|
|
<span id="L7546" rel="#L7546">7546</span>
|
|
<span id="L7547" rel="#L7547">7547</span>
|
|
<span id="L7548" rel="#L7548">7548</span>
|
|
<span id="L7549" rel="#L7549">7549</span>
|
|
<span id="L7550" rel="#L7550">7550</span>
|
|
<span id="L7551" rel="#L7551">7551</span>
|
|
<span id="L7552" rel="#L7552">7552</span>
|
|
<span id="L7553" rel="#L7553">7553</span>
|
|
<span id="L7554" rel="#L7554">7554</span>
|
|
<span id="L7555" rel="#L7555">7555</span>
|
|
<span id="L7556" rel="#L7556">7556</span>
|
|
<span id="L7557" rel="#L7557">7557</span>
|
|
<span id="L7558" rel="#L7558">7558</span>
|
|
<span id="L7559" rel="#L7559">7559</span>
|
|
<span id="L7560" rel="#L7560">7560</span>
|
|
<span id="L7561" rel="#L7561">7561</span>
|
|
<span id="L7562" rel="#L7562">7562</span>
|
|
<span id="L7563" rel="#L7563">7563</span>
|
|
<span id="L7564" rel="#L7564">7564</span>
|
|
<span id="L7565" rel="#L7565">7565</span>
|
|
<span id="L7566" rel="#L7566">7566</span>
|
|
<span id="L7567" rel="#L7567">7567</span>
|
|
<span id="L7568" rel="#L7568">7568</span>
|
|
<span id="L7569" rel="#L7569">7569</span>
|
|
<span id="L7570" rel="#L7570">7570</span>
|
|
<span id="L7571" rel="#L7571">7571</span>
|
|
<span id="L7572" rel="#L7572">7572</span>
|
|
<span id="L7573" rel="#L7573">7573</span>
|
|
<span id="L7574" rel="#L7574">7574</span>
|
|
<span id="L7575" rel="#L7575">7575</span>
|
|
<span id="L7576" rel="#L7576">7576</span>
|
|
<span id="L7577" rel="#L7577">7577</span>
|
|
<span id="L7578" rel="#L7578">7578</span>
|
|
<span id="L7579" rel="#L7579">7579</span>
|
|
<span id="L7580" rel="#L7580">7580</span>
|
|
<span id="L7581" rel="#L7581">7581</span>
|
|
<span id="L7582" rel="#L7582">7582</span>
|
|
<span id="L7583" rel="#L7583">7583</span>
|
|
<span id="L7584" rel="#L7584">7584</span>
|
|
<span id="L7585" rel="#L7585">7585</span>
|
|
<span id="L7586" rel="#L7586">7586</span>
|
|
<span id="L7587" rel="#L7587">7587</span>
|
|
<span id="L7588" rel="#L7588">7588</span>
|
|
<span id="L7589" rel="#L7589">7589</span>
|
|
<span id="L7590" rel="#L7590">7590</span>
|
|
<span id="L7591" rel="#L7591">7591</span>
|
|
<span id="L7592" rel="#L7592">7592</span>
|
|
<span id="L7593" rel="#L7593">7593</span>
|
|
<span id="L7594" rel="#L7594">7594</span>
|
|
<span id="L7595" rel="#L7595">7595</span>
|
|
<span id="L7596" rel="#L7596">7596</span>
|
|
<span id="L7597" rel="#L7597">7597</span>
|
|
<span id="L7598" rel="#L7598">7598</span>
|
|
<span id="L7599" rel="#L7599">7599</span>
|
|
<span id="L7600" rel="#L7600">7600</span>
|
|
<span id="L7601" rel="#L7601">7601</span>
|
|
<span id="L7602" rel="#L7602">7602</span>
|
|
<span id="L7603" rel="#L7603">7603</span>
|
|
<span id="L7604" rel="#L7604">7604</span>
|
|
<span id="L7605" rel="#L7605">7605</span>
|
|
<span id="L7606" rel="#L7606">7606</span>
|
|
<span id="L7607" rel="#L7607">7607</span>
|
|
<span id="L7608" rel="#L7608">7608</span>
|
|
<span id="L7609" rel="#L7609">7609</span>
|
|
<span id="L7610" rel="#L7610">7610</span>
|
|
<span id="L7611" rel="#L7611">7611</span>
|
|
<span id="L7612" rel="#L7612">7612</span>
|
|
<span id="L7613" rel="#L7613">7613</span>
|
|
<span id="L7614" rel="#L7614">7614</span>
|
|
<span id="L7615" rel="#L7615">7615</span>
|
|
<span id="L7616" rel="#L7616">7616</span>
|
|
<span id="L7617" rel="#L7617">7617</span>
|
|
<span id="L7618" rel="#L7618">7618</span>
|
|
<span id="L7619" rel="#L7619">7619</span>
|
|
<span id="L7620" rel="#L7620">7620</span>
|
|
<span id="L7621" rel="#L7621">7621</span>
|
|
<span id="L7622" rel="#L7622">7622</span>
|
|
<span id="L7623" rel="#L7623">7623</span>
|
|
<span id="L7624" rel="#L7624">7624</span>
|
|
<span id="L7625" rel="#L7625">7625</span>
|
|
<span id="L7626" rel="#L7626">7626</span>
|
|
<span id="L7627" rel="#L7627">7627</span>
|
|
<span id="L7628" rel="#L7628">7628</span>
|
|
<span id="L7629" rel="#L7629">7629</span>
|
|
<span id="L7630" rel="#L7630">7630</span>
|
|
<span id="L7631" rel="#L7631">7631</span>
|
|
<span id="L7632" rel="#L7632">7632</span>
|
|
<span id="L7633" rel="#L7633">7633</span>
|
|
<span id="L7634" rel="#L7634">7634</span>
|
|
<span id="L7635" rel="#L7635">7635</span>
|
|
<span id="L7636" rel="#L7636">7636</span>
|
|
<span id="L7637" rel="#L7637">7637</span>
|
|
<span id="L7638" rel="#L7638">7638</span>
|
|
<span id="L7639" rel="#L7639">7639</span>
|
|
<span id="L7640" rel="#L7640">7640</span>
|
|
<span id="L7641" rel="#L7641">7641</span>
|
|
<span id="L7642" rel="#L7642">7642</span>
|
|
<span id="L7643" rel="#L7643">7643</span>
|
|
<span id="L7644" rel="#L7644">7644</span>
|
|
<span id="L7645" rel="#L7645">7645</span>
|
|
<span id="L7646" rel="#L7646">7646</span>
|
|
<span id="L7647" rel="#L7647">7647</span>
|
|
<span id="L7648" rel="#L7648">7648</span>
|
|
<span id="L7649" rel="#L7649">7649</span>
|
|
<span id="L7650" rel="#L7650">7650</span>
|
|
<span id="L7651" rel="#L7651">7651</span>
|
|
<span id="L7652" rel="#L7652">7652</span>
|
|
<span id="L7653" rel="#L7653">7653</span>
|
|
<span id="L7654" rel="#L7654">7654</span>
|
|
<span id="L7655" rel="#L7655">7655</span>
|
|
<span id="L7656" rel="#L7656">7656</span>
|
|
<span id="L7657" rel="#L7657">7657</span>
|
|
<span id="L7658" rel="#L7658">7658</span>
|
|
<span id="L7659" rel="#L7659">7659</span>
|
|
<span id="L7660" rel="#L7660">7660</span>
|
|
<span id="L7661" rel="#L7661">7661</span>
|
|
<span id="L7662" rel="#L7662">7662</span>
|
|
<span id="L7663" rel="#L7663">7663</span>
|
|
<span id="L7664" rel="#L7664">7664</span>
|
|
<span id="L7665" rel="#L7665">7665</span>
|
|
<span id="L7666" rel="#L7666">7666</span>
|
|
<span id="L7667" rel="#L7667">7667</span>
|
|
<span id="L7668" rel="#L7668">7668</span>
|
|
<span id="L7669" rel="#L7669">7669</span>
|
|
<span id="L7670" rel="#L7670">7670</span>
|
|
<span id="L7671" rel="#L7671">7671</span>
|
|
<span id="L7672" rel="#L7672">7672</span>
|
|
<span id="L7673" rel="#L7673">7673</span>
|
|
<span id="L7674" rel="#L7674">7674</span>
|
|
<span id="L7675" rel="#L7675">7675</span>
|
|
<span id="L7676" rel="#L7676">7676</span>
|
|
<span id="L7677" rel="#L7677">7677</span>
|
|
<span id="L7678" rel="#L7678">7678</span>
|
|
<span id="L7679" rel="#L7679">7679</span>
|
|
<span id="L7680" rel="#L7680">7680</span>
|
|
<span id="L7681" rel="#L7681">7681</span>
|
|
<span id="L7682" rel="#L7682">7682</span>
|
|
<span id="L7683" rel="#L7683">7683</span>
|
|
<span id="L7684" rel="#L7684">7684</span>
|
|
<span id="L7685" rel="#L7685">7685</span>
|
|
<span id="L7686" rel="#L7686">7686</span>
|
|
<span id="L7687" rel="#L7687">7687</span>
|
|
<span id="L7688" rel="#L7688">7688</span>
|
|
<span id="L7689" rel="#L7689">7689</span>
|
|
<span id="L7690" rel="#L7690">7690</span>
|
|
<span id="L7691" rel="#L7691">7691</span>
|
|
<span id="L7692" rel="#L7692">7692</span>
|
|
<span id="L7693" rel="#L7693">7693</span>
|
|
<span id="L7694" rel="#L7694">7694</span>
|
|
<span id="L7695" rel="#L7695">7695</span>
|
|
<span id="L7696" rel="#L7696">7696</span>
|
|
<span id="L7697" rel="#L7697">7697</span>
|
|
<span id="L7698" rel="#L7698">7698</span>
|
|
<span id="L7699" rel="#L7699">7699</span>
|
|
<span id="L7700" rel="#L7700">7700</span>
|
|
<span id="L7701" rel="#L7701">7701</span>
|
|
<span id="L7702" rel="#L7702">7702</span>
|
|
<span id="L7703" rel="#L7703">7703</span>
|
|
<span id="L7704" rel="#L7704">7704</span>
|
|
<span id="L7705" rel="#L7705">7705</span>
|
|
<span id="L7706" rel="#L7706">7706</span>
|
|
<span id="L7707" rel="#L7707">7707</span>
|
|
<span id="L7708" rel="#L7708">7708</span>
|
|
<span id="L7709" rel="#L7709">7709</span>
|
|
<span id="L7710" rel="#L7710">7710</span>
|
|
<span id="L7711" rel="#L7711">7711</span>
|
|
<span id="L7712" rel="#L7712">7712</span>
|
|
<span id="L7713" rel="#L7713">7713</span>
|
|
<span id="L7714" rel="#L7714">7714</span>
|
|
<span id="L7715" rel="#L7715">7715</span>
|
|
<span id="L7716" rel="#L7716">7716</span>
|
|
<span id="L7717" rel="#L7717">7717</span>
|
|
<span id="L7718" rel="#L7718">7718</span>
|
|
<span id="L7719" rel="#L7719">7719</span>
|
|
<span id="L7720" rel="#L7720">7720</span>
|
|
<span id="L7721" rel="#L7721">7721</span>
|
|
<span id="L7722" rel="#L7722">7722</span>
|
|
<span id="L7723" rel="#L7723">7723</span>
|
|
<span id="L7724" rel="#L7724">7724</span>
|
|
<span id="L7725" rel="#L7725">7725</span>
|
|
<span id="L7726" rel="#L7726">7726</span>
|
|
<span id="L7727" rel="#L7727">7727</span>
|
|
<span id="L7728" rel="#L7728">7728</span>
|
|
<span id="L7729" rel="#L7729">7729</span>
|
|
<span id="L7730" rel="#L7730">7730</span>
|
|
<span id="L7731" rel="#L7731">7731</span>
|
|
<span id="L7732" rel="#L7732">7732</span>
|
|
<span id="L7733" rel="#L7733">7733</span>
|
|
<span id="L7734" rel="#L7734">7734</span>
|
|
<span id="L7735" rel="#L7735">7735</span>
|
|
<span id="L7736" rel="#L7736">7736</span>
|
|
<span id="L7737" rel="#L7737">7737</span>
|
|
<span id="L7738" rel="#L7738">7738</span>
|
|
<span id="L7739" rel="#L7739">7739</span>
|
|
<span id="L7740" rel="#L7740">7740</span>
|
|
<span id="L7741" rel="#L7741">7741</span>
|
|
<span id="L7742" rel="#L7742">7742</span>
|
|
<span id="L7743" rel="#L7743">7743</span>
|
|
<span id="L7744" rel="#L7744">7744</span>
|
|
<span id="L7745" rel="#L7745">7745</span>
|
|
<span id="L7746" rel="#L7746">7746</span>
|
|
<span id="L7747" rel="#L7747">7747</span>
|
|
<span id="L7748" rel="#L7748">7748</span>
|
|
<span id="L7749" rel="#L7749">7749</span>
|
|
<span id="L7750" rel="#L7750">7750</span>
|
|
<span id="L7751" rel="#L7751">7751</span>
|
|
<span id="L7752" rel="#L7752">7752</span>
|
|
<span id="L7753" rel="#L7753">7753</span>
|
|
<span id="L7754" rel="#L7754">7754</span>
|
|
<span id="L7755" rel="#L7755">7755</span>
|
|
<span id="L7756" rel="#L7756">7756</span>
|
|
<span id="L7757" rel="#L7757">7757</span>
|
|
<span id="L7758" rel="#L7758">7758</span>
|
|
<span id="L7759" rel="#L7759">7759</span>
|
|
<span id="L7760" rel="#L7760">7760</span>
|
|
<span id="L7761" rel="#L7761">7761</span>
|
|
<span id="L7762" rel="#L7762">7762</span>
|
|
<span id="L7763" rel="#L7763">7763</span>
|
|
<span id="L7764" rel="#L7764">7764</span>
|
|
<span id="L7765" rel="#L7765">7765</span>
|
|
<span id="L7766" rel="#L7766">7766</span>
|
|
<span id="L7767" rel="#L7767">7767</span>
|
|
<span id="L7768" rel="#L7768">7768</span>
|
|
<span id="L7769" rel="#L7769">7769</span>
|
|
<span id="L7770" rel="#L7770">7770</span>
|
|
<span id="L7771" rel="#L7771">7771</span>
|
|
<span id="L7772" rel="#L7772">7772</span>
|
|
<span id="L7773" rel="#L7773">7773</span>
|
|
<span id="L7774" rel="#L7774">7774</span>
|
|
<span id="L7775" rel="#L7775">7775</span>
|
|
<span id="L7776" rel="#L7776">7776</span>
|
|
<span id="L7777" rel="#L7777">7777</span>
|
|
<span id="L7778" rel="#L7778">7778</span>
|
|
<span id="L7779" rel="#L7779">7779</span>
|
|
<span id="L7780" rel="#L7780">7780</span>
|
|
<span id="L7781" rel="#L7781">7781</span>
|
|
<span id="L7782" rel="#L7782">7782</span>
|
|
<span id="L7783" rel="#L7783">7783</span>
|
|
<span id="L7784" rel="#L7784">7784</span>
|
|
<span id="L7785" rel="#L7785">7785</span>
|
|
<span id="L7786" rel="#L7786">7786</span>
|
|
<span id="L7787" rel="#L7787">7787</span>
|
|
<span id="L7788" rel="#L7788">7788</span>
|
|
<span id="L7789" rel="#L7789">7789</span>
|
|
<span id="L7790" rel="#L7790">7790</span>
|
|
<span id="L7791" rel="#L7791">7791</span>
|
|
<span id="L7792" rel="#L7792">7792</span>
|
|
<span id="L7793" rel="#L7793">7793</span>
|
|
<span id="L7794" rel="#L7794">7794</span>
|
|
<span id="L7795" rel="#L7795">7795</span>
|
|
<span id="L7796" rel="#L7796">7796</span>
|
|
<span id="L7797" rel="#L7797">7797</span>
|
|
<span id="L7798" rel="#L7798">7798</span>
|
|
<span id="L7799" rel="#L7799">7799</span>
|
|
<span id="L7800" rel="#L7800">7800</span>
|
|
<span id="L7801" rel="#L7801">7801</span>
|
|
<span id="L7802" rel="#L7802">7802</span>
|
|
<span id="L7803" rel="#L7803">7803</span>
|
|
<span id="L7804" rel="#L7804">7804</span>
|
|
<span id="L7805" rel="#L7805">7805</span>
|
|
<span id="L7806" rel="#L7806">7806</span>
|
|
<span id="L7807" rel="#L7807">7807</span>
|
|
<span id="L7808" rel="#L7808">7808</span>
|
|
<span id="L7809" rel="#L7809">7809</span>
|
|
<span id="L7810" rel="#L7810">7810</span>
|
|
<span id="L7811" rel="#L7811">7811</span>
|
|
<span id="L7812" rel="#L7812">7812</span>
|
|
<span id="L7813" rel="#L7813">7813</span>
|
|
<span id="L7814" rel="#L7814">7814</span>
|
|
<span id="L7815" rel="#L7815">7815</span>
|
|
<span id="L7816" rel="#L7816">7816</span>
|
|
<span id="L7817" rel="#L7817">7817</span>
|
|
<span id="L7818" rel="#L7818">7818</span>
|
|
<span id="L7819" rel="#L7819">7819</span>
|
|
<span id="L7820" rel="#L7820">7820</span>
|
|
<span id="L7821" rel="#L7821">7821</span>
|
|
<span id="L7822" rel="#L7822">7822</span>
|
|
<span id="L7823" rel="#L7823">7823</span>
|
|
<span id="L7824" rel="#L7824">7824</span>
|
|
<span id="L7825" rel="#L7825">7825</span>
|
|
<span id="L7826" rel="#L7826">7826</span>
|
|
<span id="L7827" rel="#L7827">7827</span>
|
|
<span id="L7828" rel="#L7828">7828</span>
|
|
<span id="L7829" rel="#L7829">7829</span>
|
|
<span id="L7830" rel="#L7830">7830</span>
|
|
<span id="L7831" rel="#L7831">7831</span>
|
|
<span id="L7832" rel="#L7832">7832</span>
|
|
<span id="L7833" rel="#L7833">7833</span>
|
|
<span id="L7834" rel="#L7834">7834</span>
|
|
<span id="L7835" rel="#L7835">7835</span>
|
|
<span id="L7836" rel="#L7836">7836</span>
|
|
<span id="L7837" rel="#L7837">7837</span>
|
|
<span id="L7838" rel="#L7838">7838</span>
|
|
<span id="L7839" rel="#L7839">7839</span>
|
|
<span id="L7840" rel="#L7840">7840</span>
|
|
<span id="L7841" rel="#L7841">7841</span>
|
|
<span id="L7842" rel="#L7842">7842</span>
|
|
<span id="L7843" rel="#L7843">7843</span>
|
|
<span id="L7844" rel="#L7844">7844</span>
|
|
<span id="L7845" rel="#L7845">7845</span>
|
|
<span id="L7846" rel="#L7846">7846</span>
|
|
<span id="L7847" rel="#L7847">7847</span>
|
|
<span id="L7848" rel="#L7848">7848</span>
|
|
<span id="L7849" rel="#L7849">7849</span>
|
|
<span id="L7850" rel="#L7850">7850</span>
|
|
<span id="L7851" rel="#L7851">7851</span>
|
|
<span id="L7852" rel="#L7852">7852</span>
|
|
<span id="L7853" rel="#L7853">7853</span>
|
|
<span id="L7854" rel="#L7854">7854</span>
|
|
<span id="L7855" rel="#L7855">7855</span>
|
|
<span id="L7856" rel="#L7856">7856</span>
|
|
<span id="L7857" rel="#L7857">7857</span>
|
|
<span id="L7858" rel="#L7858">7858</span>
|
|
<span id="L7859" rel="#L7859">7859</span>
|
|
<span id="L7860" rel="#L7860">7860</span>
|
|
<span id="L7861" rel="#L7861">7861</span>
|
|
<span id="L7862" rel="#L7862">7862</span>
|
|
<span id="L7863" rel="#L7863">7863</span>
|
|
<span id="L7864" rel="#L7864">7864</span>
|
|
<span id="L7865" rel="#L7865">7865</span>
|
|
<span id="L7866" rel="#L7866">7866</span>
|
|
<span id="L7867" rel="#L7867">7867</span>
|
|
<span id="L7868" rel="#L7868">7868</span>
|
|
<span id="L7869" rel="#L7869">7869</span>
|
|
<span id="L7870" rel="#L7870">7870</span>
|
|
<span id="L7871" rel="#L7871">7871</span>
|
|
<span id="L7872" rel="#L7872">7872</span>
|
|
<span id="L7873" rel="#L7873">7873</span>
|
|
<span id="L7874" rel="#L7874">7874</span>
|
|
<span id="L7875" rel="#L7875">7875</span>
|
|
<span id="L7876" rel="#L7876">7876</span>
|
|
<span id="L7877" rel="#L7877">7877</span>
|
|
<span id="L7878" rel="#L7878">7878</span>
|
|
<span id="L7879" rel="#L7879">7879</span>
|
|
<span id="L7880" rel="#L7880">7880</span>
|
|
<span id="L7881" rel="#L7881">7881</span>
|
|
<span id="L7882" rel="#L7882">7882</span>
|
|
<span id="L7883" rel="#L7883">7883</span>
|
|
<span id="L7884" rel="#L7884">7884</span>
|
|
<span id="L7885" rel="#L7885">7885</span>
|
|
<span id="L7886" rel="#L7886">7886</span>
|
|
<span id="L7887" rel="#L7887">7887</span>
|
|
<span id="L7888" rel="#L7888">7888</span>
|
|
<span id="L7889" rel="#L7889">7889</span>
|
|
<span id="L7890" rel="#L7890">7890</span>
|
|
<span id="L7891" rel="#L7891">7891</span>
|
|
<span id="L7892" rel="#L7892">7892</span>
|
|
<span id="L7893" rel="#L7893">7893</span>
|
|
<span id="L7894" rel="#L7894">7894</span>
|
|
<span id="L7895" rel="#L7895">7895</span>
|
|
<span id="L7896" rel="#L7896">7896</span>
|
|
<span id="L7897" rel="#L7897">7897</span>
|
|
<span id="L7898" rel="#L7898">7898</span>
|
|
<span id="L7899" rel="#L7899">7899</span>
|
|
<span id="L7900" rel="#L7900">7900</span>
|
|
<span id="L7901" rel="#L7901">7901</span>
|
|
<span id="L7902" rel="#L7902">7902</span>
|
|
<span id="L7903" rel="#L7903">7903</span>
|
|
<span id="L7904" rel="#L7904">7904</span>
|
|
<span id="L7905" rel="#L7905">7905</span>
|
|
<span id="L7906" rel="#L7906">7906</span>
|
|
<span id="L7907" rel="#L7907">7907</span>
|
|
<span id="L7908" rel="#L7908">7908</span>
|
|
<span id="L7909" rel="#L7909">7909</span>
|
|
<span id="L7910" rel="#L7910">7910</span>
|
|
<span id="L7911" rel="#L7911">7911</span>
|
|
<span id="L7912" rel="#L7912">7912</span>
|
|
<span id="L7913" rel="#L7913">7913</span>
|
|
<span id="L7914" rel="#L7914">7914</span>
|
|
<span id="L7915" rel="#L7915">7915</span>
|
|
<span id="L7916" rel="#L7916">7916</span>
|
|
<span id="L7917" rel="#L7917">7917</span>
|
|
<span id="L7918" rel="#L7918">7918</span>
|
|
<span id="L7919" rel="#L7919">7919</span>
|
|
<span id="L7920" rel="#L7920">7920</span>
|
|
<span id="L7921" rel="#L7921">7921</span>
|
|
<span id="L7922" rel="#L7922">7922</span>
|
|
<span id="L7923" rel="#L7923">7923</span>
|
|
<span id="L7924" rel="#L7924">7924</span>
|
|
<span id="L7925" rel="#L7925">7925</span>
|
|
<span id="L7926" rel="#L7926">7926</span>
|
|
<span id="L7927" rel="#L7927">7927</span>
|
|
<span id="L7928" rel="#L7928">7928</span>
|
|
<span id="L7929" rel="#L7929">7929</span>
|
|
<span id="L7930" rel="#L7930">7930</span>
|
|
<span id="L7931" rel="#L7931">7931</span>
|
|
<span id="L7932" rel="#L7932">7932</span>
|
|
<span id="L7933" rel="#L7933">7933</span>
|
|
<span id="L7934" rel="#L7934">7934</span>
|
|
<span id="L7935" rel="#L7935">7935</span>
|
|
<span id="L7936" rel="#L7936">7936</span>
|
|
<span id="L7937" rel="#L7937">7937</span>
|
|
<span id="L7938" rel="#L7938">7938</span>
|
|
<span id="L7939" rel="#L7939">7939</span>
|
|
<span id="L7940" rel="#L7940">7940</span>
|
|
<span id="L7941" rel="#L7941">7941</span>
|
|
<span id="L7942" rel="#L7942">7942</span>
|
|
<span id="L7943" rel="#L7943">7943</span>
|
|
<span id="L7944" rel="#L7944">7944</span>
|
|
<span id="L7945" rel="#L7945">7945</span>
|
|
<span id="L7946" rel="#L7946">7946</span>
|
|
<span id="L7947" rel="#L7947">7947</span>
|
|
<span id="L7948" rel="#L7948">7948</span>
|
|
<span id="L7949" rel="#L7949">7949</span>
|
|
<span id="L7950" rel="#L7950">7950</span>
|
|
<span id="L7951" rel="#L7951">7951</span>
|
|
<span id="L7952" rel="#L7952">7952</span>
|
|
<span id="L7953" rel="#L7953">7953</span>
|
|
<span id="L7954" rel="#L7954">7954</span>
|
|
<span id="L7955" rel="#L7955">7955</span>
|
|
<span id="L7956" rel="#L7956">7956</span>
|
|
<span id="L7957" rel="#L7957">7957</span>
|
|
<span id="L7958" rel="#L7958">7958</span>
|
|
<span id="L7959" rel="#L7959">7959</span>
|
|
<span id="L7960" rel="#L7960">7960</span>
|
|
<span id="L7961" rel="#L7961">7961</span>
|
|
<span id="L7962" rel="#L7962">7962</span>
|
|
<span id="L7963" rel="#L7963">7963</span>
|
|
<span id="L7964" rel="#L7964">7964</span>
|
|
<span id="L7965" rel="#L7965">7965</span>
|
|
<span id="L7966" rel="#L7966">7966</span>
|
|
<span id="L7967" rel="#L7967">7967</span>
|
|
<span id="L7968" rel="#L7968">7968</span>
|
|
<span id="L7969" rel="#L7969">7969</span>
|
|
<span id="L7970" rel="#L7970">7970</span>
|
|
<span id="L7971" rel="#L7971">7971</span>
|
|
<span id="L7972" rel="#L7972">7972</span>
|
|
<span id="L7973" rel="#L7973">7973</span>
|
|
<span id="L7974" rel="#L7974">7974</span>
|
|
<span id="L7975" rel="#L7975">7975</span>
|
|
<span id="L7976" rel="#L7976">7976</span>
|
|
<span id="L7977" rel="#L7977">7977</span>
|
|
<span id="L7978" rel="#L7978">7978</span>
|
|
<span id="L7979" rel="#L7979">7979</span>
|
|
<span id="L7980" rel="#L7980">7980</span>
|
|
<span id="L7981" rel="#L7981">7981</span>
|
|
<span id="L7982" rel="#L7982">7982</span>
|
|
<span id="L7983" rel="#L7983">7983</span>
|
|
<span id="L7984" rel="#L7984">7984</span>
|
|
<span id="L7985" rel="#L7985">7985</span>
|
|
<span id="L7986" rel="#L7986">7986</span>
|
|
<span id="L7987" rel="#L7987">7987</span>
|
|
<span id="L7988" rel="#L7988">7988</span>
|
|
<span id="L7989" rel="#L7989">7989</span>
|
|
<span id="L7990" rel="#L7990">7990</span>
|
|
<span id="L7991" rel="#L7991">7991</span>
|
|
<span id="L7992" rel="#L7992">7992</span>
|
|
<span id="L7993" rel="#L7993">7993</span>
|
|
<span id="L7994" rel="#L7994">7994</span>
|
|
<span id="L7995" rel="#L7995">7995</span>
|
|
<span id="L7996" rel="#L7996">7996</span>
|
|
<span id="L7997" rel="#L7997">7997</span>
|
|
<span id="L7998" rel="#L7998">7998</span>
|
|
<span id="L7999" rel="#L7999">7999</span>
|
|
<span id="L8000" rel="#L8000">8000</span>
|
|
<span id="L8001" rel="#L8001">8001</span>
|
|
<span id="L8002" rel="#L8002">8002</span>
|
|
<span id="L8003" rel="#L8003">8003</span>
|
|
<span id="L8004" rel="#L8004">8004</span>
|
|
<span id="L8005" rel="#L8005">8005</span>
|
|
<span id="L8006" rel="#L8006">8006</span>
|
|
<span id="L8007" rel="#L8007">8007</span>
|
|
<span id="L8008" rel="#L8008">8008</span>
|
|
<span id="L8009" rel="#L8009">8009</span>
|
|
<span id="L8010" rel="#L8010">8010</span>
|
|
<span id="L8011" rel="#L8011">8011</span>
|
|
<span id="L8012" rel="#L8012">8012</span>
|
|
<span id="L8013" rel="#L8013">8013</span>
|
|
<span id="L8014" rel="#L8014">8014</span>
|
|
<span id="L8015" rel="#L8015">8015</span>
|
|
<span id="L8016" rel="#L8016">8016</span>
|
|
<span id="L8017" rel="#L8017">8017</span>
|
|
<span id="L8018" rel="#L8018">8018</span>
|
|
<span id="L8019" rel="#L8019">8019</span>
|
|
<span id="L8020" rel="#L8020">8020</span>
|
|
<span id="L8021" rel="#L8021">8021</span>
|
|
<span id="L8022" rel="#L8022">8022</span>
|
|
<span id="L8023" rel="#L8023">8023</span>
|
|
<span id="L8024" rel="#L8024">8024</span>
|
|
<span id="L8025" rel="#L8025">8025</span>
|
|
<span id="L8026" rel="#L8026">8026</span>
|
|
<span id="L8027" rel="#L8027">8027</span>
|
|
<span id="L8028" rel="#L8028">8028</span>
|
|
<span id="L8029" rel="#L8029">8029</span>
|
|
<span id="L8030" rel="#L8030">8030</span>
|
|
<span id="L8031" rel="#L8031">8031</span>
|
|
<span id="L8032" rel="#L8032">8032</span>
|
|
<span id="L8033" rel="#L8033">8033</span>
|
|
<span id="L8034" rel="#L8034">8034</span>
|
|
<span id="L8035" rel="#L8035">8035</span>
|
|
<span id="L8036" rel="#L8036">8036</span>
|
|
<span id="L8037" rel="#L8037">8037</span>
|
|
<span id="L8038" rel="#L8038">8038</span>
|
|
<span id="L8039" rel="#L8039">8039</span>
|
|
<span id="L8040" rel="#L8040">8040</span>
|
|
<span id="L8041" rel="#L8041">8041</span>
|
|
<span id="L8042" rel="#L8042">8042</span>
|
|
<span id="L8043" rel="#L8043">8043</span>
|
|
<span id="L8044" rel="#L8044">8044</span>
|
|
<span id="L8045" rel="#L8045">8045</span>
|
|
<span id="L8046" rel="#L8046">8046</span>
|
|
<span id="L8047" rel="#L8047">8047</span>
|
|
<span id="L8048" rel="#L8048">8048</span>
|
|
<span id="L8049" rel="#L8049">8049</span>
|
|
<span id="L8050" rel="#L8050">8050</span>
|
|
<span id="L8051" rel="#L8051">8051</span>
|
|
<span id="L8052" rel="#L8052">8052</span>
|
|
<span id="L8053" rel="#L8053">8053</span>
|
|
<span id="L8054" rel="#L8054">8054</span>
|
|
<span id="L8055" rel="#L8055">8055</span>
|
|
<span id="L8056" rel="#L8056">8056</span>
|
|
<span id="L8057" rel="#L8057">8057</span>
|
|
<span id="L8058" rel="#L8058">8058</span>
|
|
<span id="L8059" rel="#L8059">8059</span>
|
|
<span id="L8060" rel="#L8060">8060</span>
|
|
<span id="L8061" rel="#L8061">8061</span>
|
|
<span id="L8062" rel="#L8062">8062</span>
|
|
<span id="L8063" rel="#L8063">8063</span>
|
|
<span id="L8064" rel="#L8064">8064</span>
|
|
<span id="L8065" rel="#L8065">8065</span>
|
|
<span id="L8066" rel="#L8066">8066</span>
|
|
<span id="L8067" rel="#L8067">8067</span>
|
|
<span id="L8068" rel="#L8068">8068</span>
|
|
<span id="L8069" rel="#L8069">8069</span>
|
|
<span id="L8070" rel="#L8070">8070</span>
|
|
<span id="L8071" rel="#L8071">8071</span>
|
|
<span id="L8072" rel="#L8072">8072</span>
|
|
<span id="L8073" rel="#L8073">8073</span>
|
|
<span id="L8074" rel="#L8074">8074</span>
|
|
<span id="L8075" rel="#L8075">8075</span>
|
|
<span id="L8076" rel="#L8076">8076</span>
|
|
<span id="L8077" rel="#L8077">8077</span>
|
|
<span id="L8078" rel="#L8078">8078</span>
|
|
<span id="L8079" rel="#L8079">8079</span>
|
|
<span id="L8080" rel="#L8080">8080</span>
|
|
<span id="L8081" rel="#L8081">8081</span>
|
|
<span id="L8082" rel="#L8082">8082</span>
|
|
<span id="L8083" rel="#L8083">8083</span>
|
|
<span id="L8084" rel="#L8084">8084</span>
|
|
<span id="L8085" rel="#L8085">8085</span>
|
|
<span id="L8086" rel="#L8086">8086</span>
|
|
<span id="L8087" rel="#L8087">8087</span>
|
|
<span id="L8088" rel="#L8088">8088</span>
|
|
<span id="L8089" rel="#L8089">8089</span>
|
|
<span id="L8090" rel="#L8090">8090</span>
|
|
<span id="L8091" rel="#L8091">8091</span>
|
|
<span id="L8092" rel="#L8092">8092</span>
|
|
<span id="L8093" rel="#L8093">8093</span>
|
|
<span id="L8094" rel="#L8094">8094</span>
|
|
<span id="L8095" rel="#L8095">8095</span>
|
|
<span id="L8096" rel="#L8096">8096</span>
|
|
<span id="L8097" rel="#L8097">8097</span>
|
|
<span id="L8098" rel="#L8098">8098</span>
|
|
<span id="L8099" rel="#L8099">8099</span>
|
|
<span id="L8100" rel="#L8100">8100</span>
|
|
<span id="L8101" rel="#L8101">8101</span>
|
|
<span id="L8102" rel="#L8102">8102</span>
|
|
<span id="L8103" rel="#L8103">8103</span>
|
|
<span id="L8104" rel="#L8104">8104</span>
|
|
<span id="L8105" rel="#L8105">8105</span>
|
|
<span id="L8106" rel="#L8106">8106</span>
|
|
<span id="L8107" rel="#L8107">8107</span>
|
|
<span id="L8108" rel="#L8108">8108</span>
|
|
<span id="L8109" rel="#L8109">8109</span>
|
|
<span id="L8110" rel="#L8110">8110</span>
|
|
<span id="L8111" rel="#L8111">8111</span>
|
|
<span id="L8112" rel="#L8112">8112</span>
|
|
<span id="L8113" rel="#L8113">8113</span>
|
|
<span id="L8114" rel="#L8114">8114</span>
|
|
<span id="L8115" rel="#L8115">8115</span>
|
|
<span id="L8116" rel="#L8116">8116</span>
|
|
<span id="L8117" rel="#L8117">8117</span>
|
|
<span id="L8118" rel="#L8118">8118</span>
|
|
<span id="L8119" rel="#L8119">8119</span>
|
|
<span id="L8120" rel="#L8120">8120</span>
|
|
<span id="L8121" rel="#L8121">8121</span>
|
|
<span id="L8122" rel="#L8122">8122</span>
|
|
<span id="L8123" rel="#L8123">8123</span>
|
|
<span id="L8124" rel="#L8124">8124</span>
|
|
<span id="L8125" rel="#L8125">8125</span>
|
|
<span id="L8126" rel="#L8126">8126</span>
|
|
<span id="L8127" rel="#L8127">8127</span>
|
|
<span id="L8128" rel="#L8128">8128</span>
|
|
<span id="L8129" rel="#L8129">8129</span>
|
|
<span id="L8130" rel="#L8130">8130</span>
|
|
<span id="L8131" rel="#L8131">8131</span>
|
|
<span id="L8132" rel="#L8132">8132</span>
|
|
<span id="L8133" rel="#L8133">8133</span>
|
|
<span id="L8134" rel="#L8134">8134</span>
|
|
<span id="L8135" rel="#L8135">8135</span>
|
|
<span id="L8136" rel="#L8136">8136</span>
|
|
<span id="L8137" rel="#L8137">8137</span>
|
|
<span id="L8138" rel="#L8138">8138</span>
|
|
<span id="L8139" rel="#L8139">8139</span>
|
|
<span id="L8140" rel="#L8140">8140</span>
|
|
<span id="L8141" rel="#L8141">8141</span>
|
|
<span id="L8142" rel="#L8142">8142</span>
|
|
<span id="L8143" rel="#L8143">8143</span>
|
|
<span id="L8144" rel="#L8144">8144</span>
|
|
<span id="L8145" rel="#L8145">8145</span>
|
|
<span id="L8146" rel="#L8146">8146</span>
|
|
<span id="L8147" rel="#L8147">8147</span>
|
|
<span id="L8148" rel="#L8148">8148</span>
|
|
<span id="L8149" rel="#L8149">8149</span>
|
|
<span id="L8150" rel="#L8150">8150</span>
|
|
<span id="L8151" rel="#L8151">8151</span>
|
|
<span id="L8152" rel="#L8152">8152</span>
|
|
<span id="L8153" rel="#L8153">8153</span>
|
|
<span id="L8154" rel="#L8154">8154</span>
|
|
<span id="L8155" rel="#L8155">8155</span>
|
|
<span id="L8156" rel="#L8156">8156</span>
|
|
<span id="L8157" rel="#L8157">8157</span>
|
|
<span id="L8158" rel="#L8158">8158</span>
|
|
<span id="L8159" rel="#L8159">8159</span>
|
|
<span id="L8160" rel="#L8160">8160</span>
|
|
<span id="L8161" rel="#L8161">8161</span>
|
|
<span id="L8162" rel="#L8162">8162</span>
|
|
<span id="L8163" rel="#L8163">8163</span>
|
|
<span id="L8164" rel="#L8164">8164</span>
|
|
<span id="L8165" rel="#L8165">8165</span>
|
|
<span id="L8166" rel="#L8166">8166</span>
|
|
<span id="L8167" rel="#L8167">8167</span>
|
|
<span id="L8168" rel="#L8168">8168</span>
|
|
<span id="L8169" rel="#L8169">8169</span>
|
|
<span id="L8170" rel="#L8170">8170</span>
|
|
<span id="L8171" rel="#L8171">8171</span>
|
|
<span id="L8172" rel="#L8172">8172</span>
|
|
<span id="L8173" rel="#L8173">8173</span>
|
|
<span id="L8174" rel="#L8174">8174</span>
|
|
<span id="L8175" rel="#L8175">8175</span>
|
|
<span id="L8176" rel="#L8176">8176</span>
|
|
<span id="L8177" rel="#L8177">8177</span>
|
|
<span id="L8178" rel="#L8178">8178</span>
|
|
<span id="L8179" rel="#L8179">8179</span>
|
|
<span id="L8180" rel="#L8180">8180</span>
|
|
<span id="L8181" rel="#L8181">8181</span>
|
|
<span id="L8182" rel="#L8182">8182</span>
|
|
<span id="L8183" rel="#L8183">8183</span>
|
|
<span id="L8184" rel="#L8184">8184</span>
|
|
<span id="L8185" rel="#L8185">8185</span>
|
|
<span id="L8186" rel="#L8186">8186</span>
|
|
<span id="L8187" rel="#L8187">8187</span>
|
|
<span id="L8188" rel="#L8188">8188</span>
|
|
<span id="L8189" rel="#L8189">8189</span>
|
|
<span id="L8190" rel="#L8190">8190</span>
|
|
<span id="L8191" rel="#L8191">8191</span>
|
|
<span id="L8192" rel="#L8192">8192</span>
|
|
<span id="L8193" rel="#L8193">8193</span>
|
|
<span id="L8194" rel="#L8194">8194</span>
|
|
<span id="L8195" rel="#L8195">8195</span>
|
|
<span id="L8196" rel="#L8196">8196</span>
|
|
<span id="L8197" rel="#L8197">8197</span>
|
|
<span id="L8198" rel="#L8198">8198</span>
|
|
<span id="L8199" rel="#L8199">8199</span>
|
|
<span id="L8200" rel="#L8200">8200</span>
|
|
<span id="L8201" rel="#L8201">8201</span>
|
|
<span id="L8202" rel="#L8202">8202</span>
|
|
<span id="L8203" rel="#L8203">8203</span>
|
|
<span id="L8204" rel="#L8204">8204</span>
|
|
<span id="L8205" rel="#L8205">8205</span>
|
|
<span id="L8206" rel="#L8206">8206</span>
|
|
<span id="L8207" rel="#L8207">8207</span>
|
|
<span id="L8208" rel="#L8208">8208</span>
|
|
<span id="L8209" rel="#L8209">8209</span>
|
|
<span id="L8210" rel="#L8210">8210</span>
|
|
<span id="L8211" rel="#L8211">8211</span>
|
|
<span id="L8212" rel="#L8212">8212</span>
|
|
<span id="L8213" rel="#L8213">8213</span>
|
|
<span id="L8214" rel="#L8214">8214</span>
|
|
<span id="L8215" rel="#L8215">8215</span>
|
|
<span id="L8216" rel="#L8216">8216</span>
|
|
<span id="L8217" rel="#L8217">8217</span>
|
|
<span id="L8218" rel="#L8218">8218</span>
|
|
<span id="L8219" rel="#L8219">8219</span>
|
|
<span id="L8220" rel="#L8220">8220</span>
|
|
<span id="L8221" rel="#L8221">8221</span>
|
|
<span id="L8222" rel="#L8222">8222</span>
|
|
<span id="L8223" rel="#L8223">8223</span>
|
|
<span id="L8224" rel="#L8224">8224</span>
|
|
<span id="L8225" rel="#L8225">8225</span>
|
|
<span id="L8226" rel="#L8226">8226</span>
|
|
<span id="L8227" rel="#L8227">8227</span>
|
|
<span id="L8228" rel="#L8228">8228</span>
|
|
<span id="L8229" rel="#L8229">8229</span>
|
|
<span id="L8230" rel="#L8230">8230</span>
|
|
<span id="L8231" rel="#L8231">8231</span>
|
|
<span id="L8232" rel="#L8232">8232</span>
|
|
<span id="L8233" rel="#L8233">8233</span>
|
|
<span id="L8234" rel="#L8234">8234</span>
|
|
<span id="L8235" rel="#L8235">8235</span>
|
|
<span id="L8236" rel="#L8236">8236</span>
|
|
<span id="L8237" rel="#L8237">8237</span>
|
|
<span id="L8238" rel="#L8238">8238</span>
|
|
<span id="L8239" rel="#L8239">8239</span>
|
|
<span id="L8240" rel="#L8240">8240</span>
|
|
<span id="L8241" rel="#L8241">8241</span>
|
|
<span id="L8242" rel="#L8242">8242</span>
|
|
<span id="L8243" rel="#L8243">8243</span>
|
|
<span id="L8244" rel="#L8244">8244</span>
|
|
<span id="L8245" rel="#L8245">8245</span>
|
|
<span id="L8246" rel="#L8246">8246</span>
|
|
<span id="L8247" rel="#L8247">8247</span>
|
|
<span id="L8248" rel="#L8248">8248</span>
|
|
<span id="L8249" rel="#L8249">8249</span>
|
|
<span id="L8250" rel="#L8250">8250</span>
|
|
<span id="L8251" rel="#L8251">8251</span>
|
|
<span id="L8252" rel="#L8252">8252</span>
|
|
<span id="L8253" rel="#L8253">8253</span>
|
|
<span id="L8254" rel="#L8254">8254</span>
|
|
<span id="L8255" rel="#L8255">8255</span>
|
|
<span id="L8256" rel="#L8256">8256</span>
|
|
<span id="L8257" rel="#L8257">8257</span>
|
|
<span id="L8258" rel="#L8258">8258</span>
|
|
<span id="L8259" rel="#L8259">8259</span>
|
|
<span id="L8260" rel="#L8260">8260</span>
|
|
<span id="L8261" rel="#L8261">8261</span>
|
|
<span id="L8262" rel="#L8262">8262</span>
|
|
<span id="L8263" rel="#L8263">8263</span>
|
|
<span id="L8264" rel="#L8264">8264</span>
|
|
<span id="L8265" rel="#L8265">8265</span>
|
|
<span id="L8266" rel="#L8266">8266</span>
|
|
<span id="L8267" rel="#L8267">8267</span>
|
|
<span id="L8268" rel="#L8268">8268</span>
|
|
<span id="L8269" rel="#L8269">8269</span>
|
|
<span id="L8270" rel="#L8270">8270</span>
|
|
<span id="L8271" rel="#L8271">8271</span>
|
|
<span id="L8272" rel="#L8272">8272</span>
|
|
<span id="L8273" rel="#L8273">8273</span>
|
|
<span id="L8274" rel="#L8274">8274</span>
|
|
<span id="L8275" rel="#L8275">8275</span>
|
|
<span id="L8276" rel="#L8276">8276</span>
|
|
<span id="L8277" rel="#L8277">8277</span>
|
|
<span id="L8278" rel="#L8278">8278</span>
|
|
<span id="L8279" rel="#L8279">8279</span>
|
|
<span id="L8280" rel="#L8280">8280</span>
|
|
<span id="L8281" rel="#L8281">8281</span>
|
|
<span id="L8282" rel="#L8282">8282</span>
|
|
<span id="L8283" rel="#L8283">8283</span>
|
|
<span id="L8284" rel="#L8284">8284</span>
|
|
<span id="L8285" rel="#L8285">8285</span>
|
|
<span id="L8286" rel="#L8286">8286</span>
|
|
<span id="L8287" rel="#L8287">8287</span>
|
|
<span id="L8288" rel="#L8288">8288</span>
|
|
<span id="L8289" rel="#L8289">8289</span>
|
|
<span id="L8290" rel="#L8290">8290</span>
|
|
<span id="L8291" rel="#L8291">8291</span>
|
|
<span id="L8292" rel="#L8292">8292</span>
|
|
<span id="L8293" rel="#L8293">8293</span>
|
|
<span id="L8294" rel="#L8294">8294</span>
|
|
<span id="L8295" rel="#L8295">8295</span>
|
|
<span id="L8296" rel="#L8296">8296</span>
|
|
<span id="L8297" rel="#L8297">8297</span>
|
|
<span id="L8298" rel="#L8298">8298</span>
|
|
<span id="L8299" rel="#L8299">8299</span>
|
|
<span id="L8300" rel="#L8300">8300</span>
|
|
<span id="L8301" rel="#L8301">8301</span>
|
|
<span id="L8302" rel="#L8302">8302</span>
|
|
<span id="L8303" rel="#L8303">8303</span>
|
|
<span id="L8304" rel="#L8304">8304</span>
|
|
<span id="L8305" rel="#L8305">8305</span>
|
|
<span id="L8306" rel="#L8306">8306</span>
|
|
<span id="L8307" rel="#L8307">8307</span>
|
|
<span id="L8308" rel="#L8308">8308</span>
|
|
<span id="L8309" rel="#L8309">8309</span>
|
|
<span id="L8310" rel="#L8310">8310</span>
|
|
<span id="L8311" rel="#L8311">8311</span>
|
|
<span id="L8312" rel="#L8312">8312</span>
|
|
<span id="L8313" rel="#L8313">8313</span>
|
|
<span id="L8314" rel="#L8314">8314</span>
|
|
<span id="L8315" rel="#L8315">8315</span>
|
|
<span id="L8316" rel="#L8316">8316</span>
|
|
<span id="L8317" rel="#L8317">8317</span>
|
|
<span id="L8318" rel="#L8318">8318</span>
|
|
<span id="L8319" rel="#L8319">8319</span>
|
|
<span id="L8320" rel="#L8320">8320</span>
|
|
<span id="L8321" rel="#L8321">8321</span>
|
|
<span id="L8322" rel="#L8322">8322</span>
|
|
<span id="L8323" rel="#L8323">8323</span>
|
|
<span id="L8324" rel="#L8324">8324</span>
|
|
<span id="L8325" rel="#L8325">8325</span>
|
|
<span id="L8326" rel="#L8326">8326</span>
|
|
<span id="L8327" rel="#L8327">8327</span>
|
|
<span id="L8328" rel="#L8328">8328</span>
|
|
<span id="L8329" rel="#L8329">8329</span>
|
|
<span id="L8330" rel="#L8330">8330</span>
|
|
<span id="L8331" rel="#L8331">8331</span>
|
|
<span id="L8332" rel="#L8332">8332</span>
|
|
<span id="L8333" rel="#L8333">8333</span>
|
|
<span id="L8334" rel="#L8334">8334</span>
|
|
<span id="L8335" rel="#L8335">8335</span>
|
|
<span id="L8336" rel="#L8336">8336</span>
|
|
<span id="L8337" rel="#L8337">8337</span>
|
|
<span id="L8338" rel="#L8338">8338</span>
|
|
<span id="L8339" rel="#L8339">8339</span>
|
|
<span id="L8340" rel="#L8340">8340</span>
|
|
<span id="L8341" rel="#L8341">8341</span>
|
|
<span id="L8342" rel="#L8342">8342</span>
|
|
<span id="L8343" rel="#L8343">8343</span>
|
|
<span id="L8344" rel="#L8344">8344</span>
|
|
<span id="L8345" rel="#L8345">8345</span>
|
|
<span id="L8346" rel="#L8346">8346</span>
|
|
<span id="L8347" rel="#L8347">8347</span>
|
|
<span id="L8348" rel="#L8348">8348</span>
|
|
<span id="L8349" rel="#L8349">8349</span>
|
|
<span id="L8350" rel="#L8350">8350</span>
|
|
<span id="L8351" rel="#L8351">8351</span>
|
|
<span id="L8352" rel="#L8352">8352</span>
|
|
<span id="L8353" rel="#L8353">8353</span>
|
|
<span id="L8354" rel="#L8354">8354</span>
|
|
<span id="L8355" rel="#L8355">8355</span>
|
|
<span id="L8356" rel="#L8356">8356</span>
|
|
<span id="L8357" rel="#L8357">8357</span>
|
|
<span id="L8358" rel="#L8358">8358</span>
|
|
<span id="L8359" rel="#L8359">8359</span>
|
|
<span id="L8360" rel="#L8360">8360</span>
|
|
<span id="L8361" rel="#L8361">8361</span>
|
|
<span id="L8362" rel="#L8362">8362</span>
|
|
<span id="L8363" rel="#L8363">8363</span>
|
|
<span id="L8364" rel="#L8364">8364</span>
|
|
<span id="L8365" rel="#L8365">8365</span>
|
|
<span id="L8366" rel="#L8366">8366</span>
|
|
<span id="L8367" rel="#L8367">8367</span>
|
|
<span id="L8368" rel="#L8368">8368</span>
|
|
<span id="L8369" rel="#L8369">8369</span>
|
|
<span id="L8370" rel="#L8370">8370</span>
|
|
<span id="L8371" rel="#L8371">8371</span>
|
|
<span id="L8372" rel="#L8372">8372</span>
|
|
<span id="L8373" rel="#L8373">8373</span>
|
|
<span id="L8374" rel="#L8374">8374</span>
|
|
<span id="L8375" rel="#L8375">8375</span>
|
|
<span id="L8376" rel="#L8376">8376</span>
|
|
<span id="L8377" rel="#L8377">8377</span>
|
|
<span id="L8378" rel="#L8378">8378</span>
|
|
<span id="L8379" rel="#L8379">8379</span>
|
|
<span id="L8380" rel="#L8380">8380</span>
|
|
<span id="L8381" rel="#L8381">8381</span>
|
|
<span id="L8382" rel="#L8382">8382</span>
|
|
<span id="L8383" rel="#L8383">8383</span>
|
|
<span id="L8384" rel="#L8384">8384</span>
|
|
<span id="L8385" rel="#L8385">8385</span>
|
|
<span id="L8386" rel="#L8386">8386</span>
|
|
<span id="L8387" rel="#L8387">8387</span>
|
|
<span id="L8388" rel="#L8388">8388</span>
|
|
<span id="L8389" rel="#L8389">8389</span>
|
|
<span id="L8390" rel="#L8390">8390</span>
|
|
<span id="L8391" rel="#L8391">8391</span>
|
|
<span id="L8392" rel="#L8392">8392</span>
|
|
<span id="L8393" rel="#L8393">8393</span>
|
|
<span id="L8394" rel="#L8394">8394</span>
|
|
<span id="L8395" rel="#L8395">8395</span>
|
|
<span id="L8396" rel="#L8396">8396</span>
|
|
<span id="L8397" rel="#L8397">8397</span>
|
|
<span id="L8398" rel="#L8398">8398</span>
|
|
<span id="L8399" rel="#L8399">8399</span>
|
|
<span id="L8400" rel="#L8400">8400</span>
|
|
<span id="L8401" rel="#L8401">8401</span>
|
|
<span id="L8402" rel="#L8402">8402</span>
|
|
<span id="L8403" rel="#L8403">8403</span>
|
|
<span id="L8404" rel="#L8404">8404</span>
|
|
<span id="L8405" rel="#L8405">8405</span>
|
|
<span id="L8406" rel="#L8406">8406</span>
|
|
<span id="L8407" rel="#L8407">8407</span>
|
|
<span id="L8408" rel="#L8408">8408</span>
|
|
<span id="L8409" rel="#L8409">8409</span>
|
|
<span id="L8410" rel="#L8410">8410</span>
|
|
<span id="L8411" rel="#L8411">8411</span>
|
|
<span id="L8412" rel="#L8412">8412</span>
|
|
<span id="L8413" rel="#L8413">8413</span>
|
|
<span id="L8414" rel="#L8414">8414</span>
|
|
<span id="L8415" rel="#L8415">8415</span>
|
|
<span id="L8416" rel="#L8416">8416</span>
|
|
<span id="L8417" rel="#L8417">8417</span>
|
|
<span id="L8418" rel="#L8418">8418</span>
|
|
<span id="L8419" rel="#L8419">8419</span>
|
|
<span id="L8420" rel="#L8420">8420</span>
|
|
<span id="L8421" rel="#L8421">8421</span>
|
|
<span id="L8422" rel="#L8422">8422</span>
|
|
<span id="L8423" rel="#L8423">8423</span>
|
|
<span id="L8424" rel="#L8424">8424</span>
|
|
<span id="L8425" rel="#L8425">8425</span>
|
|
<span id="L8426" rel="#L8426">8426</span>
|
|
<span id="L8427" rel="#L8427">8427</span>
|
|
<span id="L8428" rel="#L8428">8428</span>
|
|
<span id="L8429" rel="#L8429">8429</span>
|
|
<span id="L8430" rel="#L8430">8430</span>
|
|
<span id="L8431" rel="#L8431">8431</span>
|
|
<span id="L8432" rel="#L8432">8432</span>
|
|
<span id="L8433" rel="#L8433">8433</span>
|
|
<span id="L8434" rel="#L8434">8434</span>
|
|
<span id="L8435" rel="#L8435">8435</span>
|
|
<span id="L8436" rel="#L8436">8436</span>
|
|
<span id="L8437" rel="#L8437">8437</span>
|
|
<span id="L8438" rel="#L8438">8438</span>
|
|
<span id="L8439" rel="#L8439">8439</span>
|
|
<span id="L8440" rel="#L8440">8440</span>
|
|
<span id="L8441" rel="#L8441">8441</span>
|
|
<span id="L8442" rel="#L8442">8442</span>
|
|
<span id="L8443" rel="#L8443">8443</span>
|
|
<span id="L8444" rel="#L8444">8444</span>
|
|
<span id="L8445" rel="#L8445">8445</span>
|
|
<span id="L8446" rel="#L8446">8446</span>
|
|
<span id="L8447" rel="#L8447">8447</span>
|
|
<span id="L8448" rel="#L8448">8448</span>
|
|
<span id="L8449" rel="#L8449">8449</span>
|
|
<span id="L8450" rel="#L8450">8450</span>
|
|
<span id="L8451" rel="#L8451">8451</span>
|
|
<span id="L8452" rel="#L8452">8452</span>
|
|
<span id="L8453" rel="#L8453">8453</span>
|
|
<span id="L8454" rel="#L8454">8454</span>
|
|
<span id="L8455" rel="#L8455">8455</span>
|
|
<span id="L8456" rel="#L8456">8456</span>
|
|
<span id="L8457" rel="#L8457">8457</span>
|
|
<span id="L8458" rel="#L8458">8458</span>
|
|
<span id="L8459" rel="#L8459">8459</span>
|
|
<span id="L8460" rel="#L8460">8460</span>
|
|
<span id="L8461" rel="#L8461">8461</span>
|
|
<span id="L8462" rel="#L8462">8462</span>
|
|
<span id="L8463" rel="#L8463">8463</span>
|
|
<span id="L8464" rel="#L8464">8464</span>
|
|
<span id="L8465" rel="#L8465">8465</span>
|
|
<span id="L8466" rel="#L8466">8466</span>
|
|
<span id="L8467" rel="#L8467">8467</span>
|
|
<span id="L8468" rel="#L8468">8468</span>
|
|
<span id="L8469" rel="#L8469">8469</span>
|
|
<span id="L8470" rel="#L8470">8470</span>
|
|
<span id="L8471" rel="#L8471">8471</span>
|
|
<span id="L8472" rel="#L8472">8472</span>
|
|
<span id="L8473" rel="#L8473">8473</span>
|
|
<span id="L8474" rel="#L8474">8474</span>
|
|
<span id="L8475" rel="#L8475">8475</span>
|
|
<span id="L8476" rel="#L8476">8476</span>
|
|
<span id="L8477" rel="#L8477">8477</span>
|
|
<span id="L8478" rel="#L8478">8478</span>
|
|
<span id="L8479" rel="#L8479">8479</span>
|
|
<span id="L8480" rel="#L8480">8480</span>
|
|
<span id="L8481" rel="#L8481">8481</span>
|
|
<span id="L8482" rel="#L8482">8482</span>
|
|
<span id="L8483" rel="#L8483">8483</span>
|
|
<span id="L8484" rel="#L8484">8484</span>
|
|
<span id="L8485" rel="#L8485">8485</span>
|
|
<span id="L8486" rel="#L8486">8486</span>
|
|
<span id="L8487" rel="#L8487">8487</span>
|
|
<span id="L8488" rel="#L8488">8488</span>
|
|
<span id="L8489" rel="#L8489">8489</span>
|
|
<span id="L8490" rel="#L8490">8490</span>
|
|
<span id="L8491" rel="#L8491">8491</span>
|
|
<span id="L8492" rel="#L8492">8492</span>
|
|
<span id="L8493" rel="#L8493">8493</span>
|
|
<span id="L8494" rel="#L8494">8494</span>
|
|
<span id="L8495" rel="#L8495">8495</span>
|
|
<span id="L8496" rel="#L8496">8496</span>
|
|
<span id="L8497" rel="#L8497">8497</span>
|
|
<span id="L8498" rel="#L8498">8498</span>
|
|
<span id="L8499" rel="#L8499">8499</span>
|
|
<span id="L8500" rel="#L8500">8500</span>
|
|
<span id="L8501" rel="#L8501">8501</span>
|
|
<span id="L8502" rel="#L8502">8502</span>
|
|
<span id="L8503" rel="#L8503">8503</span>
|
|
<span id="L8504" rel="#L8504">8504</span>
|
|
<span id="L8505" rel="#L8505">8505</span>
|
|
<span id="L8506" rel="#L8506">8506</span>
|
|
<span id="L8507" rel="#L8507">8507</span>
|
|
<span id="L8508" rel="#L8508">8508</span>
|
|
<span id="L8509" rel="#L8509">8509</span>
|
|
<span id="L8510" rel="#L8510">8510</span>
|
|
<span id="L8511" rel="#L8511">8511</span>
|
|
<span id="L8512" rel="#L8512">8512</span>
|
|
<span id="L8513" rel="#L8513">8513</span>
|
|
<span id="L8514" rel="#L8514">8514</span>
|
|
<span id="L8515" rel="#L8515">8515</span>
|
|
<span id="L8516" rel="#L8516">8516</span>
|
|
<span id="L8517" rel="#L8517">8517</span>
|
|
<span id="L8518" rel="#L8518">8518</span>
|
|
<span id="L8519" rel="#L8519">8519</span>
|
|
<span id="L8520" rel="#L8520">8520</span>
|
|
<span id="L8521" rel="#L8521">8521</span>
|
|
<span id="L8522" rel="#L8522">8522</span>
|
|
<span id="L8523" rel="#L8523">8523</span>
|
|
<span id="L8524" rel="#L8524">8524</span>
|
|
<span id="L8525" rel="#L8525">8525</span>
|
|
<span id="L8526" rel="#L8526">8526</span>
|
|
<span id="L8527" rel="#L8527">8527</span>
|
|
<span id="L8528" rel="#L8528">8528</span>
|
|
<span id="L8529" rel="#L8529">8529</span>
|
|
<span id="L8530" rel="#L8530">8530</span>
|
|
<span id="L8531" rel="#L8531">8531</span>
|
|
<span id="L8532" rel="#L8532">8532</span>
|
|
<span id="L8533" rel="#L8533">8533</span>
|
|
<span id="L8534" rel="#L8534">8534</span>
|
|
<span id="L8535" rel="#L8535">8535</span>
|
|
<span id="L8536" rel="#L8536">8536</span>
|
|
<span id="L8537" rel="#L8537">8537</span>
|
|
<span id="L8538" rel="#L8538">8538</span>
|
|
<span id="L8539" rel="#L8539">8539</span>
|
|
<span id="L8540" rel="#L8540">8540</span>
|
|
<span id="L8541" rel="#L8541">8541</span>
|
|
<span id="L8542" rel="#L8542">8542</span>
|
|
<span id="L8543" rel="#L8543">8543</span>
|
|
<span id="L8544" rel="#L8544">8544</span>
|
|
<span id="L8545" rel="#L8545">8545</span>
|
|
<span id="L8546" rel="#L8546">8546</span>
|
|
<span id="L8547" rel="#L8547">8547</span>
|
|
<span id="L8548" rel="#L8548">8548</span>
|
|
<span id="L8549" rel="#L8549">8549</span>
|
|
<span id="L8550" rel="#L8550">8550</span>
|
|
<span id="L8551" rel="#L8551">8551</span>
|
|
<span id="L8552" rel="#L8552">8552</span>
|
|
<span id="L8553" rel="#L8553">8553</span>
|
|
<span id="L8554" rel="#L8554">8554</span>
|
|
<span id="L8555" rel="#L8555">8555</span>
|
|
<span id="L8556" rel="#L8556">8556</span>
|
|
<span id="L8557" rel="#L8557">8557</span>
|
|
<span id="L8558" rel="#L8558">8558</span>
|
|
<span id="L8559" rel="#L8559">8559</span>
|
|
<span id="L8560" rel="#L8560">8560</span>
|
|
<span id="L8561" rel="#L8561">8561</span>
|
|
<span id="L8562" rel="#L8562">8562</span>
|
|
<span id="L8563" rel="#L8563">8563</span>
|
|
<span id="L8564" rel="#L8564">8564</span>
|
|
<span id="L8565" rel="#L8565">8565</span>
|
|
<span id="L8566" rel="#L8566">8566</span>
|
|
<span id="L8567" rel="#L8567">8567</span>
|
|
<span id="L8568" rel="#L8568">8568</span>
|
|
<span id="L8569" rel="#L8569">8569</span>
|
|
<span id="L8570" rel="#L8570">8570</span>
|
|
<span id="L8571" rel="#L8571">8571</span>
|
|
<span id="L8572" rel="#L8572">8572</span>
|
|
<span id="L8573" rel="#L8573">8573</span>
|
|
<span id="L8574" rel="#L8574">8574</span>
|
|
<span id="L8575" rel="#L8575">8575</span>
|
|
<span id="L8576" rel="#L8576">8576</span>
|
|
<span id="L8577" rel="#L8577">8577</span>
|
|
<span id="L8578" rel="#L8578">8578</span>
|
|
<span id="L8579" rel="#L8579">8579</span>
|
|
<span id="L8580" rel="#L8580">8580</span>
|
|
<span id="L8581" rel="#L8581">8581</span>
|
|
<span id="L8582" rel="#L8582">8582</span>
|
|
<span id="L8583" rel="#L8583">8583</span>
|
|
<span id="L8584" rel="#L8584">8584</span>
|
|
<span id="L8585" rel="#L8585">8585</span>
|
|
<span id="L8586" rel="#L8586">8586</span>
|
|
<span id="L8587" rel="#L8587">8587</span>
|
|
<span id="L8588" rel="#L8588">8588</span>
|
|
<span id="L8589" rel="#L8589">8589</span>
|
|
<span id="L8590" rel="#L8590">8590</span>
|
|
<span id="L8591" rel="#L8591">8591</span>
|
|
<span id="L8592" rel="#L8592">8592</span>
|
|
<span id="L8593" rel="#L8593">8593</span>
|
|
<span id="L8594" rel="#L8594">8594</span>
|
|
<span id="L8595" rel="#L8595">8595</span>
|
|
<span id="L8596" rel="#L8596">8596</span>
|
|
<span id="L8597" rel="#L8597">8597</span>
|
|
<span id="L8598" rel="#L8598">8598</span>
|
|
<span id="L8599" rel="#L8599">8599</span>
|
|
<span id="L8600" rel="#L8600">8600</span>
|
|
<span id="L8601" rel="#L8601">8601</span>
|
|
<span id="L8602" rel="#L8602">8602</span>
|
|
<span id="L8603" rel="#L8603">8603</span>
|
|
<span id="L8604" rel="#L8604">8604</span>
|
|
<span id="L8605" rel="#L8605">8605</span>
|
|
<span id="L8606" rel="#L8606">8606</span>
|
|
<span id="L8607" rel="#L8607">8607</span>
|
|
<span id="L8608" rel="#L8608">8608</span>
|
|
<span id="L8609" rel="#L8609">8609</span>
|
|
<span id="L8610" rel="#L8610">8610</span>
|
|
<span id="L8611" rel="#L8611">8611</span>
|
|
<span id="L8612" rel="#L8612">8612</span>
|
|
<span id="L8613" rel="#L8613">8613</span>
|
|
<span id="L8614" rel="#L8614">8614</span>
|
|
<span id="L8615" rel="#L8615">8615</span>
|
|
<span id="L8616" rel="#L8616">8616</span>
|
|
<span id="L8617" rel="#L8617">8617</span>
|
|
<span id="L8618" rel="#L8618">8618</span>
|
|
<span id="L8619" rel="#L8619">8619</span>
|
|
<span id="L8620" rel="#L8620">8620</span>
|
|
<span id="L8621" rel="#L8621">8621</span>
|
|
<span id="L8622" rel="#L8622">8622</span>
|
|
<span id="L8623" rel="#L8623">8623</span>
|
|
<span id="L8624" rel="#L8624">8624</span>
|
|
<span id="L8625" rel="#L8625">8625</span>
|
|
<span id="L8626" rel="#L8626">8626</span>
|
|
<span id="L8627" rel="#L8627">8627</span>
|
|
<span id="L8628" rel="#L8628">8628</span>
|
|
<span id="L8629" rel="#L8629">8629</span>
|
|
<span id="L8630" rel="#L8630">8630</span>
|
|
<span id="L8631" rel="#L8631">8631</span>
|
|
<span id="L8632" rel="#L8632">8632</span>
|
|
<span id="L8633" rel="#L8633">8633</span>
|
|
<span id="L8634" rel="#L8634">8634</span>
|
|
<span id="L8635" rel="#L8635">8635</span>
|
|
<span id="L8636" rel="#L8636">8636</span>
|
|
<span id="L8637" rel="#L8637">8637</span>
|
|
<span id="L8638" rel="#L8638">8638</span>
|
|
<span id="L8639" rel="#L8639">8639</span>
|
|
<span id="L8640" rel="#L8640">8640</span>
|
|
<span id="L8641" rel="#L8641">8641</span>
|
|
<span id="L8642" rel="#L8642">8642</span>
|
|
<span id="L8643" rel="#L8643">8643</span>
|
|
<span id="L8644" rel="#L8644">8644</span>
|
|
<span id="L8645" rel="#L8645">8645</span>
|
|
<span id="L8646" rel="#L8646">8646</span>
|
|
<span id="L8647" rel="#L8647">8647</span>
|
|
<span id="L8648" rel="#L8648">8648</span>
|
|
<span id="L8649" rel="#L8649">8649</span>
|
|
<span id="L8650" rel="#L8650">8650</span>
|
|
<span id="L8651" rel="#L8651">8651</span>
|
|
<span id="L8652" rel="#L8652">8652</span>
|
|
<span id="L8653" rel="#L8653">8653</span>
|
|
<span id="L8654" rel="#L8654">8654</span>
|
|
<span id="L8655" rel="#L8655">8655</span>
|
|
<span id="L8656" rel="#L8656">8656</span>
|
|
<span id="L8657" rel="#L8657">8657</span>
|
|
<span id="L8658" rel="#L8658">8658</span>
|
|
<span id="L8659" rel="#L8659">8659</span>
|
|
<span id="L8660" rel="#L8660">8660</span>
|
|
<span id="L8661" rel="#L8661">8661</span>
|
|
<span id="L8662" rel="#L8662">8662</span>
|
|
<span id="L8663" rel="#L8663">8663</span>
|
|
<span id="L8664" rel="#L8664">8664</span>
|
|
<span id="L8665" rel="#L8665">8665</span>
|
|
<span id="L8666" rel="#L8666">8666</span>
|
|
<span id="L8667" rel="#L8667">8667</span>
|
|
<span id="L8668" rel="#L8668">8668</span>
|
|
<span id="L8669" rel="#L8669">8669</span>
|
|
<span id="L8670" rel="#L8670">8670</span>
|
|
<span id="L8671" rel="#L8671">8671</span>
|
|
<span id="L8672" rel="#L8672">8672</span>
|
|
<span id="L8673" rel="#L8673">8673</span>
|
|
<span id="L8674" rel="#L8674">8674</span>
|
|
<span id="L8675" rel="#L8675">8675</span>
|
|
<span id="L8676" rel="#L8676">8676</span>
|
|
<span id="L8677" rel="#L8677">8677</span>
|
|
<span id="L8678" rel="#L8678">8678</span>
|
|
<span id="L8679" rel="#L8679">8679</span>
|
|
<span id="L8680" rel="#L8680">8680</span>
|
|
<span id="L8681" rel="#L8681">8681</span>
|
|
<span id="L8682" rel="#L8682">8682</span>
|
|
<span id="L8683" rel="#L8683">8683</span>
|
|
<span id="L8684" rel="#L8684">8684</span>
|
|
<span id="L8685" rel="#L8685">8685</span>
|
|
<span id="L8686" rel="#L8686">8686</span>
|
|
<span id="L8687" rel="#L8687">8687</span>
|
|
<span id="L8688" rel="#L8688">8688</span>
|
|
<span id="L8689" rel="#L8689">8689</span>
|
|
<span id="L8690" rel="#L8690">8690</span>
|
|
<span id="L8691" rel="#L8691">8691</span>
|
|
<span id="L8692" rel="#L8692">8692</span>
|
|
<span id="L8693" rel="#L8693">8693</span>
|
|
<span id="L8694" rel="#L8694">8694</span>
|
|
<span id="L8695" rel="#L8695">8695</span>
|
|
<span id="L8696" rel="#L8696">8696</span>
|
|
<span id="L8697" rel="#L8697">8697</span>
|
|
<span id="L8698" rel="#L8698">8698</span>
|
|
<span id="L8699" rel="#L8699">8699</span>
|
|
<span id="L8700" rel="#L8700">8700</span>
|
|
<span id="L8701" rel="#L8701">8701</span>
|
|
<span id="L8702" rel="#L8702">8702</span>
|
|
<span id="L8703" rel="#L8703">8703</span>
|
|
<span id="L8704" rel="#L8704">8704</span>
|
|
<span id="L8705" rel="#L8705">8705</span>
|
|
<span id="L8706" rel="#L8706">8706</span>
|
|
<span id="L8707" rel="#L8707">8707</span>
|
|
<span id="L8708" rel="#L8708">8708</span>
|
|
<span id="L8709" rel="#L8709">8709</span>
|
|
<span id="L8710" rel="#L8710">8710</span>
|
|
<span id="L8711" rel="#L8711">8711</span>
|
|
<span id="L8712" rel="#L8712">8712</span>
|
|
<span id="L8713" rel="#L8713">8713</span>
|
|
<span id="L8714" rel="#L8714">8714</span>
|
|
<span id="L8715" rel="#L8715">8715</span>
|
|
<span id="L8716" rel="#L8716">8716</span>
|
|
<span id="L8717" rel="#L8717">8717</span>
|
|
<span id="L8718" rel="#L8718">8718</span>
|
|
<span id="L8719" rel="#L8719">8719</span>
|
|
<span id="L8720" rel="#L8720">8720</span>
|
|
<span id="L8721" rel="#L8721">8721</span>
|
|
<span id="L8722" rel="#L8722">8722</span>
|
|
<span id="L8723" rel="#L8723">8723</span>
|
|
<span id="L8724" rel="#L8724">8724</span>
|
|
<span id="L8725" rel="#L8725">8725</span>
|
|
<span id="L8726" rel="#L8726">8726</span>
|
|
<span id="L8727" rel="#L8727">8727</span>
|
|
<span id="L8728" rel="#L8728">8728</span>
|
|
<span id="L8729" rel="#L8729">8729</span>
|
|
<span id="L8730" rel="#L8730">8730</span>
|
|
<span id="L8731" rel="#L8731">8731</span>
|
|
<span id="L8732" rel="#L8732">8732</span>
|
|
<span id="L8733" rel="#L8733">8733</span>
|
|
<span id="L8734" rel="#L8734">8734</span>
|
|
<span id="L8735" rel="#L8735">8735</span>
|
|
<span id="L8736" rel="#L8736">8736</span>
|
|
<span id="L8737" rel="#L8737">8737</span>
|
|
<span id="L8738" rel="#L8738">8738</span>
|
|
<span id="L8739" rel="#L8739">8739</span>
|
|
<span id="L8740" rel="#L8740">8740</span>
|
|
<span id="L8741" rel="#L8741">8741</span>
|
|
<span id="L8742" rel="#L8742">8742</span>
|
|
<span id="L8743" rel="#L8743">8743</span>
|
|
<span id="L8744" rel="#L8744">8744</span>
|
|
<span id="L8745" rel="#L8745">8745</span>
|
|
<span id="L8746" rel="#L8746">8746</span>
|
|
<span id="L8747" rel="#L8747">8747</span>
|
|
<span id="L8748" rel="#L8748">8748</span>
|
|
<span id="L8749" rel="#L8749">8749</span>
|
|
<span id="L8750" rel="#L8750">8750</span>
|
|
<span id="L8751" rel="#L8751">8751</span>
|
|
<span id="L8752" rel="#L8752">8752</span>
|
|
<span id="L8753" rel="#L8753">8753</span>
|
|
<span id="L8754" rel="#L8754">8754</span>
|
|
<span id="L8755" rel="#L8755">8755</span>
|
|
<span id="L8756" rel="#L8756">8756</span>
|
|
<span id="L8757" rel="#L8757">8757</span>
|
|
<span id="L8758" rel="#L8758">8758</span>
|
|
<span id="L8759" rel="#L8759">8759</span>
|
|
<span id="L8760" rel="#L8760">8760</span>
|
|
<span id="L8761" rel="#L8761">8761</span>
|
|
<span id="L8762" rel="#L8762">8762</span>
|
|
<span id="L8763" rel="#L8763">8763</span>
|
|
<span id="L8764" rel="#L8764">8764</span>
|
|
<span id="L8765" rel="#L8765">8765</span>
|
|
<span id="L8766" rel="#L8766">8766</span>
|
|
<span id="L8767" rel="#L8767">8767</span>
|
|
<span id="L8768" rel="#L8768">8768</span>
|
|
<span id="L8769" rel="#L8769">8769</span>
|
|
<span id="L8770" rel="#L8770">8770</span>
|
|
<span id="L8771" rel="#L8771">8771</span>
|
|
<span id="L8772" rel="#L8772">8772</span>
|
|
<span id="L8773" rel="#L8773">8773</span>
|
|
<span id="L8774" rel="#L8774">8774</span>
|
|
<span id="L8775" rel="#L8775">8775</span>
|
|
<span id="L8776" rel="#L8776">8776</span>
|
|
<span id="L8777" rel="#L8777">8777</span>
|
|
<span id="L8778" rel="#L8778">8778</span>
|
|
<span id="L8779" rel="#L8779">8779</span>
|
|
<span id="L8780" rel="#L8780">8780</span>
|
|
<span id="L8781" rel="#L8781">8781</span>
|
|
<span id="L8782" rel="#L8782">8782</span>
|
|
<span id="L8783" rel="#L8783">8783</span>
|
|
<span id="L8784" rel="#L8784">8784</span>
|
|
<span id="L8785" rel="#L8785">8785</span>
|
|
<span id="L8786" rel="#L8786">8786</span>
|
|
<span id="L8787" rel="#L8787">8787</span>
|
|
<span id="L8788" rel="#L8788">8788</span>
|
|
<span id="L8789" rel="#L8789">8789</span>
|
|
<span id="L8790" rel="#L8790">8790</span>
|
|
<span id="L8791" rel="#L8791">8791</span>
|
|
<span id="L8792" rel="#L8792">8792</span>
|
|
<span id="L8793" rel="#L8793">8793</span>
|
|
<span id="L8794" rel="#L8794">8794</span>
|
|
<span id="L8795" rel="#L8795">8795</span>
|
|
<span id="L8796" rel="#L8796">8796</span>
|
|
<span id="L8797" rel="#L8797">8797</span>
|
|
<span id="L8798" rel="#L8798">8798</span>
|
|
<span id="L8799" rel="#L8799">8799</span>
|
|
<span id="L8800" rel="#L8800">8800</span>
|
|
<span id="L8801" rel="#L8801">8801</span>
|
|
<span id="L8802" rel="#L8802">8802</span>
|
|
<span id="L8803" rel="#L8803">8803</span>
|
|
<span id="L8804" rel="#L8804">8804</span>
|
|
<span id="L8805" rel="#L8805">8805</span>
|
|
<span id="L8806" rel="#L8806">8806</span>
|
|
<span id="L8807" rel="#L8807">8807</span>
|
|
<span id="L8808" rel="#L8808">8808</span>
|
|
<span id="L8809" rel="#L8809">8809</span>
|
|
<span id="L8810" rel="#L8810">8810</span>
|
|
<span id="L8811" rel="#L8811">8811</span>
|
|
<span id="L8812" rel="#L8812">8812</span>
|
|
<span id="L8813" rel="#L8813">8813</span>
|
|
<span id="L8814" rel="#L8814">8814</span>
|
|
<span id="L8815" rel="#L8815">8815</span>
|
|
<span id="L8816" rel="#L8816">8816</span>
|
|
<span id="L8817" rel="#L8817">8817</span>
|
|
<span id="L8818" rel="#L8818">8818</span>
|
|
<span id="L8819" rel="#L8819">8819</span>
|
|
<span id="L8820" rel="#L8820">8820</span>
|
|
<span id="L8821" rel="#L8821">8821</span>
|
|
<span id="L8822" rel="#L8822">8822</span>
|
|
<span id="L8823" rel="#L8823">8823</span>
|
|
<span id="L8824" rel="#L8824">8824</span>
|
|
<span id="L8825" rel="#L8825">8825</span>
|
|
<span id="L8826" rel="#L8826">8826</span>
|
|
<span id="L8827" rel="#L8827">8827</span>
|
|
<span id="L8828" rel="#L8828">8828</span>
|
|
<span id="L8829" rel="#L8829">8829</span>
|
|
<span id="L8830" rel="#L8830">8830</span>
|
|
<span id="L8831" rel="#L8831">8831</span>
|
|
<span id="L8832" rel="#L8832">8832</span>
|
|
<span id="L8833" rel="#L8833">8833</span>
|
|
<span id="L8834" rel="#L8834">8834</span>
|
|
<span id="L8835" rel="#L8835">8835</span>
|
|
<span id="L8836" rel="#L8836">8836</span>
|
|
<span id="L8837" rel="#L8837">8837</span>
|
|
<span id="L8838" rel="#L8838">8838</span>
|
|
<span id="L8839" rel="#L8839">8839</span>
|
|
<span id="L8840" rel="#L8840">8840</span>
|
|
<span id="L8841" rel="#L8841">8841</span>
|
|
<span id="L8842" rel="#L8842">8842</span>
|
|
<span id="L8843" rel="#L8843">8843</span>
|
|
<span id="L8844" rel="#L8844">8844</span>
|
|
<span id="L8845" rel="#L8845">8845</span>
|
|
<span id="L8846" rel="#L8846">8846</span>
|
|
<span id="L8847" rel="#L8847">8847</span>
|
|
<span id="L8848" rel="#L8848">8848</span>
|
|
<span id="L8849" rel="#L8849">8849</span>
|
|
<span id="L8850" rel="#L8850">8850</span>
|
|
<span id="L8851" rel="#L8851">8851</span>
|
|
<span id="L8852" rel="#L8852">8852</span>
|
|
<span id="L8853" rel="#L8853">8853</span>
|
|
<span id="L8854" rel="#L8854">8854</span>
|
|
<span id="L8855" rel="#L8855">8855</span>
|
|
<span id="L8856" rel="#L8856">8856</span>
|
|
<span id="L8857" rel="#L8857">8857</span>
|
|
<span id="L8858" rel="#L8858">8858</span>
|
|
<span id="L8859" rel="#L8859">8859</span>
|
|
<span id="L8860" rel="#L8860">8860</span>
|
|
<span id="L8861" rel="#L8861">8861</span>
|
|
<span id="L8862" rel="#L8862">8862</span>
|
|
<span id="L8863" rel="#L8863">8863</span>
|
|
<span id="L8864" rel="#L8864">8864</span>
|
|
<span id="L8865" rel="#L8865">8865</span>
|
|
<span id="L8866" rel="#L8866">8866</span>
|
|
<span id="L8867" rel="#L8867">8867</span>
|
|
<span id="L8868" rel="#L8868">8868</span>
|
|
<span id="L8869" rel="#L8869">8869</span>
|
|
<span id="L8870" rel="#L8870">8870</span>
|
|
<span id="L8871" rel="#L8871">8871</span>
|
|
<span id="L8872" rel="#L8872">8872</span>
|
|
<span id="L8873" rel="#L8873">8873</span>
|
|
<span id="L8874" rel="#L8874">8874</span>
|
|
<span id="L8875" rel="#L8875">8875</span>
|
|
<span id="L8876" rel="#L8876">8876</span>
|
|
<span id="L8877" rel="#L8877">8877</span>
|
|
<span id="L8878" rel="#L8878">8878</span>
|
|
<span id="L8879" rel="#L8879">8879</span>
|
|
<span id="L8880" rel="#L8880">8880</span>
|
|
<span id="L8881" rel="#L8881">8881</span>
|
|
<span id="L8882" rel="#L8882">8882</span>
|
|
<span id="L8883" rel="#L8883">8883</span>
|
|
<span id="L8884" rel="#L8884">8884</span>
|
|
<span id="L8885" rel="#L8885">8885</span>
|
|
<span id="L8886" rel="#L8886">8886</span>
|
|
<span id="L8887" rel="#L8887">8887</span>
|
|
<span id="L8888" rel="#L8888">8888</span>
|
|
<span id="L8889" rel="#L8889">8889</span>
|
|
<span id="L8890" rel="#L8890">8890</span>
|
|
<span id="L8891" rel="#L8891">8891</span>
|
|
<span id="L8892" rel="#L8892">8892</span>
|
|
<span id="L8893" rel="#L8893">8893</span>
|
|
<span id="L8894" rel="#L8894">8894</span>
|
|
<span id="L8895" rel="#L8895">8895</span>
|
|
<span id="L8896" rel="#L8896">8896</span>
|
|
<span id="L8897" rel="#L8897">8897</span>
|
|
<span id="L8898" rel="#L8898">8898</span>
|
|
<span id="L8899" rel="#L8899">8899</span>
|
|
<span id="L8900" rel="#L8900">8900</span>
|
|
<span id="L8901" rel="#L8901">8901</span>
|
|
<span id="L8902" rel="#L8902">8902</span>
|
|
<span id="L8903" rel="#L8903">8903</span>
|
|
<span id="L8904" rel="#L8904">8904</span>
|
|
<span id="L8905" rel="#L8905">8905</span>
|
|
<span id="L8906" rel="#L8906">8906</span>
|
|
<span id="L8907" rel="#L8907">8907</span>
|
|
<span id="L8908" rel="#L8908">8908</span>
|
|
<span id="L8909" rel="#L8909">8909</span>
|
|
<span id="L8910" rel="#L8910">8910</span>
|
|
<span id="L8911" rel="#L8911">8911</span>
|
|
<span id="L8912" rel="#L8912">8912</span>
|
|
<span id="L8913" rel="#L8913">8913</span>
|
|
<span id="L8914" rel="#L8914">8914</span>
|
|
<span id="L8915" rel="#L8915">8915</span>
|
|
<span id="L8916" rel="#L8916">8916</span>
|
|
<span id="L8917" rel="#L8917">8917</span>
|
|
<span id="L8918" rel="#L8918">8918</span>
|
|
<span id="L8919" rel="#L8919">8919</span>
|
|
<span id="L8920" rel="#L8920">8920</span>
|
|
<span id="L8921" rel="#L8921">8921</span>
|
|
<span id="L8922" rel="#L8922">8922</span>
|
|
<span id="L8923" rel="#L8923">8923</span>
|
|
<span id="L8924" rel="#L8924">8924</span>
|
|
<span id="L8925" rel="#L8925">8925</span>
|
|
<span id="L8926" rel="#L8926">8926</span>
|
|
<span id="L8927" rel="#L8927">8927</span>
|
|
<span id="L8928" rel="#L8928">8928</span>
|
|
<span id="L8929" rel="#L8929">8929</span>
|
|
<span id="L8930" rel="#L8930">8930</span>
|
|
<span id="L8931" rel="#L8931">8931</span>
|
|
<span id="L8932" rel="#L8932">8932</span>
|
|
<span id="L8933" rel="#L8933">8933</span>
|
|
<span id="L8934" rel="#L8934">8934</span>
|
|
<span id="L8935" rel="#L8935">8935</span>
|
|
<span id="L8936" rel="#L8936">8936</span>
|
|
<span id="L8937" rel="#L8937">8937</span>
|
|
<span id="L8938" rel="#L8938">8938</span>
|
|
<span id="L8939" rel="#L8939">8939</span>
|
|
<span id="L8940" rel="#L8940">8940</span>
|
|
<span id="L8941" rel="#L8941">8941</span>
|
|
<span id="L8942" rel="#L8942">8942</span>
|
|
<span id="L8943" rel="#L8943">8943</span>
|
|
<span id="L8944" rel="#L8944">8944</span>
|
|
<span id="L8945" rel="#L8945">8945</span>
|
|
<span id="L8946" rel="#L8946">8946</span>
|
|
<span id="L8947" rel="#L8947">8947</span>
|
|
<span id="L8948" rel="#L8948">8948</span>
|
|
<span id="L8949" rel="#L8949">8949</span>
|
|
<span id="L8950" rel="#L8950">8950</span>
|
|
<span id="L8951" rel="#L8951">8951</span>
|
|
<span id="L8952" rel="#L8952">8952</span>
|
|
<span id="L8953" rel="#L8953">8953</span>
|
|
<span id="L8954" rel="#L8954">8954</span>
|
|
<span id="L8955" rel="#L8955">8955</span>
|
|
<span id="L8956" rel="#L8956">8956</span>
|
|
<span id="L8957" rel="#L8957">8957</span>
|
|
<span id="L8958" rel="#L8958">8958</span>
|
|
<span id="L8959" rel="#L8959">8959</span>
|
|
<span id="L8960" rel="#L8960">8960</span>
|
|
<span id="L8961" rel="#L8961">8961</span>
|
|
<span id="L8962" rel="#L8962">8962</span>
|
|
<span id="L8963" rel="#L8963">8963</span>
|
|
<span id="L8964" rel="#L8964">8964</span>
|
|
<span id="L8965" rel="#L8965">8965</span>
|
|
<span id="L8966" rel="#L8966">8966</span>
|
|
<span id="L8967" rel="#L8967">8967</span>
|
|
<span id="L8968" rel="#L8968">8968</span>
|
|
<span id="L8969" rel="#L8969">8969</span>
|
|
<span id="L8970" rel="#L8970">8970</span>
|
|
<span id="L8971" rel="#L8971">8971</span>
|
|
<span id="L8972" rel="#L8972">8972</span>
|
|
<span id="L8973" rel="#L8973">8973</span>
|
|
<span id="L8974" rel="#L8974">8974</span>
|
|
<span id="L8975" rel="#L8975">8975</span>
|
|
<span id="L8976" rel="#L8976">8976</span>
|
|
<span id="L8977" rel="#L8977">8977</span>
|
|
<span id="L8978" rel="#L8978">8978</span>
|
|
<span id="L8979" rel="#L8979">8979</span>
|
|
<span id="L8980" rel="#L8980">8980</span>
|
|
<span id="L8981" rel="#L8981">8981</span>
|
|
<span id="L8982" rel="#L8982">8982</span>
|
|
<span id="L8983" rel="#L8983">8983</span>
|
|
<span id="L8984" rel="#L8984">8984</span>
|
|
<span id="L8985" rel="#L8985">8985</span>
|
|
<span id="L8986" rel="#L8986">8986</span>
|
|
<span id="L8987" rel="#L8987">8987</span>
|
|
<span id="L8988" rel="#L8988">8988</span>
|
|
<span id="L8989" rel="#L8989">8989</span>
|
|
<span id="L8990" rel="#L8990">8990</span>
|
|
<span id="L8991" rel="#L8991">8991</span>
|
|
<span id="L8992" rel="#L8992">8992</span>
|
|
<span id="L8993" rel="#L8993">8993</span>
|
|
<span id="L8994" rel="#L8994">8994</span>
|
|
<span id="L8995" rel="#L8995">8995</span>
|
|
<span id="L8996" rel="#L8996">8996</span>
|
|
<span id="L8997" rel="#L8997">8997</span>
|
|
<span id="L8998" rel="#L8998">8998</span>
|
|
<span id="L8999" rel="#L8999">8999</span>
|
|
<span id="L9000" rel="#L9000">9000</span>
|
|
<span id="L9001" rel="#L9001">9001</span>
|
|
<span id="L9002" rel="#L9002">9002</span>
|
|
<span id="L9003" rel="#L9003">9003</span>
|
|
<span id="L9004" rel="#L9004">9004</span>
|
|
<span id="L9005" rel="#L9005">9005</span>
|
|
<span id="L9006" rel="#L9006">9006</span>
|
|
<span id="L9007" rel="#L9007">9007</span>
|
|
<span id="L9008" rel="#L9008">9008</span>
|
|
<span id="L9009" rel="#L9009">9009</span>
|
|
<span id="L9010" rel="#L9010">9010</span>
|
|
<span id="L9011" rel="#L9011">9011</span>
|
|
<span id="L9012" rel="#L9012">9012</span>
|
|
<span id="L9013" rel="#L9013">9013</span>
|
|
<span id="L9014" rel="#L9014">9014</span>
|
|
<span id="L9015" rel="#L9015">9015</span>
|
|
<span id="L9016" rel="#L9016">9016</span>
|
|
<span id="L9017" rel="#L9017">9017</span>
|
|
<span id="L9018" rel="#L9018">9018</span>
|
|
<span id="L9019" rel="#L9019">9019</span>
|
|
<span id="L9020" rel="#L9020">9020</span>
|
|
<span id="L9021" rel="#L9021">9021</span>
|
|
<span id="L9022" rel="#L9022">9022</span>
|
|
<span id="L9023" rel="#L9023">9023</span>
|
|
<span id="L9024" rel="#L9024">9024</span>
|
|
<span id="L9025" rel="#L9025">9025</span>
|
|
<span id="L9026" rel="#L9026">9026</span>
|
|
<span id="L9027" rel="#L9027">9027</span>
|
|
<span id="L9028" rel="#L9028">9028</span>
|
|
<span id="L9029" rel="#L9029">9029</span>
|
|
<span id="L9030" rel="#L9030">9030</span>
|
|
<span id="L9031" rel="#L9031">9031</span>
|
|
<span id="L9032" rel="#L9032">9032</span>
|
|
<span id="L9033" rel="#L9033">9033</span>
|
|
<span id="L9034" rel="#L9034">9034</span>
|
|
<span id="L9035" rel="#L9035">9035</span>
|
|
<span id="L9036" rel="#L9036">9036</span>
|
|
<span id="L9037" rel="#L9037">9037</span>
|
|
<span id="L9038" rel="#L9038">9038</span>
|
|
<span id="L9039" rel="#L9039">9039</span>
|
|
<span id="L9040" rel="#L9040">9040</span>
|
|
<span id="L9041" rel="#L9041">9041</span>
|
|
<span id="L9042" rel="#L9042">9042</span>
|
|
<span id="L9043" rel="#L9043">9043</span>
|
|
<span id="L9044" rel="#L9044">9044</span>
|
|
<span id="L9045" rel="#L9045">9045</span>
|
|
<span id="L9046" rel="#L9046">9046</span>
|
|
<span id="L9047" rel="#L9047">9047</span>
|
|
<span id="L9048" rel="#L9048">9048</span>
|
|
<span id="L9049" rel="#L9049">9049</span>
|
|
<span id="L9050" rel="#L9050">9050</span>
|
|
<span id="L9051" rel="#L9051">9051</span>
|
|
<span id="L9052" rel="#L9052">9052</span>
|
|
<span id="L9053" rel="#L9053">9053</span>
|
|
<span id="L9054" rel="#L9054">9054</span>
|
|
<span id="L9055" rel="#L9055">9055</span>
|
|
<span id="L9056" rel="#L9056">9056</span>
|
|
<span id="L9057" rel="#L9057">9057</span>
|
|
<span id="L9058" rel="#L9058">9058</span>
|
|
<span id="L9059" rel="#L9059">9059</span>
|
|
<span id="L9060" rel="#L9060">9060</span>
|
|
<span id="L9061" rel="#L9061">9061</span>
|
|
<span id="L9062" rel="#L9062">9062</span>
|
|
<span id="L9063" rel="#L9063">9063</span>
|
|
<span id="L9064" rel="#L9064">9064</span>
|
|
<span id="L9065" rel="#L9065">9065</span>
|
|
<span id="L9066" rel="#L9066">9066</span>
|
|
<span id="L9067" rel="#L9067">9067</span>
|
|
<span id="L9068" rel="#L9068">9068</span>
|
|
<span id="L9069" rel="#L9069">9069</span>
|
|
<span id="L9070" rel="#L9070">9070</span>
|
|
<span id="L9071" rel="#L9071">9071</span>
|
|
<span id="L9072" rel="#L9072">9072</span>
|
|
<span id="L9073" rel="#L9073">9073</span>
|
|
<span id="L9074" rel="#L9074">9074</span>
|
|
<span id="L9075" rel="#L9075">9075</span>
|
|
<span id="L9076" rel="#L9076">9076</span>
|
|
<span id="L9077" rel="#L9077">9077</span>
|
|
<span id="L9078" rel="#L9078">9078</span>
|
|
<span id="L9079" rel="#L9079">9079</span>
|
|
<span id="L9080" rel="#L9080">9080</span>
|
|
<span id="L9081" rel="#L9081">9081</span>
|
|
<span id="L9082" rel="#L9082">9082</span>
|
|
<span id="L9083" rel="#L9083">9083</span>
|
|
<span id="L9084" rel="#L9084">9084</span>
|
|
<span id="L9085" rel="#L9085">9085</span>
|
|
<span id="L9086" rel="#L9086">9086</span>
|
|
<span id="L9087" rel="#L9087">9087</span>
|
|
<span id="L9088" rel="#L9088">9088</span>
|
|
<span id="L9089" rel="#L9089">9089</span>
|
|
<span id="L9090" rel="#L9090">9090</span>
|
|
<span id="L9091" rel="#L9091">9091</span>
|
|
<span id="L9092" rel="#L9092">9092</span>
|
|
<span id="L9093" rel="#L9093">9093</span>
|
|
<span id="L9094" rel="#L9094">9094</span>
|
|
<span id="L9095" rel="#L9095">9095</span>
|
|
<span id="L9096" rel="#L9096">9096</span>
|
|
<span id="L9097" rel="#L9097">9097</span>
|
|
<span id="L9098" rel="#L9098">9098</span>
|
|
<span id="L9099" rel="#L9099">9099</span>
|
|
<span id="L9100" rel="#L9100">9100</span>
|
|
<span id="L9101" rel="#L9101">9101</span>
|
|
<span id="L9102" rel="#L9102">9102</span>
|
|
<span id="L9103" rel="#L9103">9103</span>
|
|
<span id="L9104" rel="#L9104">9104</span>
|
|
<span id="L9105" rel="#L9105">9105</span>
|
|
<span id="L9106" rel="#L9106">9106</span>
|
|
<span id="L9107" rel="#L9107">9107</span>
|
|
<span id="L9108" rel="#L9108">9108</span>
|
|
<span id="L9109" rel="#L9109">9109</span>
|
|
<span id="L9110" rel="#L9110">9110</span>
|
|
<span id="L9111" rel="#L9111">9111</span>
|
|
<span id="L9112" rel="#L9112">9112</span>
|
|
<span id="L9113" rel="#L9113">9113</span>
|
|
<span id="L9114" rel="#L9114">9114</span>
|
|
<span id="L9115" rel="#L9115">9115</span>
|
|
<span id="L9116" rel="#L9116">9116</span>
|
|
<span id="L9117" rel="#L9117">9117</span>
|
|
<span id="L9118" rel="#L9118">9118</span>
|
|
<span id="L9119" rel="#L9119">9119</span>
|
|
<span id="L9120" rel="#L9120">9120</span>
|
|
<span id="L9121" rel="#L9121">9121</span>
|
|
<span id="L9122" rel="#L9122">9122</span>
|
|
<span id="L9123" rel="#L9123">9123</span>
|
|
<span id="L9124" rel="#L9124">9124</span>
|
|
<span id="L9125" rel="#L9125">9125</span>
|
|
<span id="L9126" rel="#L9126">9126</span>
|
|
<span id="L9127" rel="#L9127">9127</span>
|
|
<span id="L9128" rel="#L9128">9128</span>
|
|
<span id="L9129" rel="#L9129">9129</span>
|
|
<span id="L9130" rel="#L9130">9130</span>
|
|
<span id="L9131" rel="#L9131">9131</span>
|
|
<span id="L9132" rel="#L9132">9132</span>
|
|
<span id="L9133" rel="#L9133">9133</span>
|
|
<span id="L9134" rel="#L9134">9134</span>
|
|
<span id="L9135" rel="#L9135">9135</span>
|
|
<span id="L9136" rel="#L9136">9136</span>
|
|
<span id="L9137" rel="#L9137">9137</span>
|
|
<span id="L9138" rel="#L9138">9138</span>
|
|
<span id="L9139" rel="#L9139">9139</span>
|
|
<span id="L9140" rel="#L9140">9140</span>
|
|
<span id="L9141" rel="#L9141">9141</span>
|
|
<span id="L9142" rel="#L9142">9142</span>
|
|
<span id="L9143" rel="#L9143">9143</span>
|
|
<span id="L9144" rel="#L9144">9144</span>
|
|
<span id="L9145" rel="#L9145">9145</span>
|
|
<span id="L9146" rel="#L9146">9146</span>
|
|
<span id="L9147" rel="#L9147">9147</span>
|
|
<span id="L9148" rel="#L9148">9148</span>
|
|
<span id="L9149" rel="#L9149">9149</span>
|
|
<span id="L9150" rel="#L9150">9150</span>
|
|
<span id="L9151" rel="#L9151">9151</span>
|
|
<span id="L9152" rel="#L9152">9152</span>
|
|
<span id="L9153" rel="#L9153">9153</span>
|
|
<span id="L9154" rel="#L9154">9154</span>
|
|
<span id="L9155" rel="#L9155">9155</span>
|
|
<span id="L9156" rel="#L9156">9156</span>
|
|
<span id="L9157" rel="#L9157">9157</span>
|
|
<span id="L9158" rel="#L9158">9158</span>
|
|
<span id="L9159" rel="#L9159">9159</span>
|
|
<span id="L9160" rel="#L9160">9160</span>
|
|
<span id="L9161" rel="#L9161">9161</span>
|
|
<span id="L9162" rel="#L9162">9162</span>
|
|
<span id="L9163" rel="#L9163">9163</span>
|
|
<span id="L9164" rel="#L9164">9164</span>
|
|
<span id="L9165" rel="#L9165">9165</span>
|
|
<span id="L9166" rel="#L9166">9166</span>
|
|
<span id="L9167" rel="#L9167">9167</span>
|
|
<span id="L9168" rel="#L9168">9168</span>
|
|
<span id="L9169" rel="#L9169">9169</span>
|
|
<span id="L9170" rel="#L9170">9170</span>
|
|
<span id="L9171" rel="#L9171">9171</span>
|
|
<span id="L9172" rel="#L9172">9172</span>
|
|
<span id="L9173" rel="#L9173">9173</span>
|
|
<span id="L9174" rel="#L9174">9174</span>
|
|
<span id="L9175" rel="#L9175">9175</span>
|
|
<span id="L9176" rel="#L9176">9176</span>
|
|
<span id="L9177" rel="#L9177">9177</span>
|
|
<span id="L9178" rel="#L9178">9178</span>
|
|
<span id="L9179" rel="#L9179">9179</span>
|
|
<span id="L9180" rel="#L9180">9180</span>
|
|
<span id="L9181" rel="#L9181">9181</span>
|
|
<span id="L9182" rel="#L9182">9182</span>
|
|
<span id="L9183" rel="#L9183">9183</span>
|
|
<span id="L9184" rel="#L9184">9184</span>
|
|
<span id="L9185" rel="#L9185">9185</span>
|
|
<span id="L9186" rel="#L9186">9186</span>
|
|
<span id="L9187" rel="#L9187">9187</span>
|
|
<span id="L9188" rel="#L9188">9188</span>
|
|
<span id="L9189" rel="#L9189">9189</span>
|
|
<span id="L9190" rel="#L9190">9190</span>
|
|
<span id="L9191" rel="#L9191">9191</span>
|
|
<span id="L9192" rel="#L9192">9192</span>
|
|
<span id="L9193" rel="#L9193">9193</span>
|
|
<span id="L9194" rel="#L9194">9194</span>
|
|
<span id="L9195" rel="#L9195">9195</span>
|
|
<span id="L9196" rel="#L9196">9196</span>
|
|
<span id="L9197" rel="#L9197">9197</span>
|
|
<span id="L9198" rel="#L9198">9198</span>
|
|
<span id="L9199" rel="#L9199">9199</span>
|
|
<span id="L9200" rel="#L9200">9200</span>
|
|
<span id="L9201" rel="#L9201">9201</span>
|
|
<span id="L9202" rel="#L9202">9202</span>
|
|
<span id="L9203" rel="#L9203">9203</span>
|
|
<span id="L9204" rel="#L9204">9204</span>
|
|
<span id="L9205" rel="#L9205">9205</span>
|
|
<span id="L9206" rel="#L9206">9206</span>
|
|
<span id="L9207" rel="#L9207">9207</span>
|
|
<span id="L9208" rel="#L9208">9208</span>
|
|
<span id="L9209" rel="#L9209">9209</span>
|
|
<span id="L9210" rel="#L9210">9210</span>
|
|
<span id="L9211" rel="#L9211">9211</span>
|
|
<span id="L9212" rel="#L9212">9212</span>
|
|
<span id="L9213" rel="#L9213">9213</span>
|
|
<span id="L9214" rel="#L9214">9214</span>
|
|
<span id="L9215" rel="#L9215">9215</span>
|
|
<span id="L9216" rel="#L9216">9216</span>
|
|
<span id="L9217" rel="#L9217">9217</span>
|
|
<span id="L9218" rel="#L9218">9218</span>
|
|
<span id="L9219" rel="#L9219">9219</span>
|
|
<span id="L9220" rel="#L9220">9220</span>
|
|
<span id="L9221" rel="#L9221">9221</span>
|
|
<span id="L9222" rel="#L9222">9222</span>
|
|
<span id="L9223" rel="#L9223">9223</span>
|
|
<span id="L9224" rel="#L9224">9224</span>
|
|
<span id="L9225" rel="#L9225">9225</span>
|
|
<span id="L9226" rel="#L9226">9226</span>
|
|
<span id="L9227" rel="#L9227">9227</span>
|
|
<span id="L9228" rel="#L9228">9228</span>
|
|
<span id="L9229" rel="#L9229">9229</span>
|
|
<span id="L9230" rel="#L9230">9230</span>
|
|
<span id="L9231" rel="#L9231">9231</span>
|
|
<span id="L9232" rel="#L9232">9232</span>
|
|
<span id="L9233" rel="#L9233">9233</span>
|
|
<span id="L9234" rel="#L9234">9234</span>
|
|
<span id="L9235" rel="#L9235">9235</span>
|
|
<span id="L9236" rel="#L9236">9236</span>
|
|
<span id="L9237" rel="#L9237">9237</span>
|
|
<span id="L9238" rel="#L9238">9238</span>
|
|
<span id="L9239" rel="#L9239">9239</span>
|
|
<span id="L9240" rel="#L9240">9240</span>
|
|
<span id="L9241" rel="#L9241">9241</span>
|
|
<span id="L9242" rel="#L9242">9242</span>
|
|
<span id="L9243" rel="#L9243">9243</span>
|
|
<span id="L9244" rel="#L9244">9244</span>
|
|
<span id="L9245" rel="#L9245">9245</span>
|
|
<span id="L9246" rel="#L9246">9246</span>
|
|
<span id="L9247" rel="#L9247">9247</span>
|
|
<span id="L9248" rel="#L9248">9248</span>
|
|
<span id="L9249" rel="#L9249">9249</span>
|
|
<span id="L9250" rel="#L9250">9250</span>
|
|
<span id="L9251" rel="#L9251">9251</span>
|
|
<span id="L9252" rel="#L9252">9252</span>
|
|
<span id="L9253" rel="#L9253">9253</span>
|
|
<span id="L9254" rel="#L9254">9254</span>
|
|
<span id="L9255" rel="#L9255">9255</span>
|
|
<span id="L9256" rel="#L9256">9256</span>
|
|
<span id="L9257" rel="#L9257">9257</span>
|
|
<span id="L9258" rel="#L9258">9258</span>
|
|
<span id="L9259" rel="#L9259">9259</span>
|
|
<span id="L9260" rel="#L9260">9260</span>
|
|
<span id="L9261" rel="#L9261">9261</span>
|
|
<span id="L9262" rel="#L9262">9262</span>
|
|
<span id="L9263" rel="#L9263">9263</span>
|
|
<span id="L9264" rel="#L9264">9264</span>
|
|
<span id="L9265" rel="#L9265">9265</span>
|
|
<span id="L9266" rel="#L9266">9266</span>
|
|
<span id="L9267" rel="#L9267">9267</span>
|
|
<span id="L9268" rel="#L9268">9268</span>
|
|
<span id="L9269" rel="#L9269">9269</span>
|
|
<span id="L9270" rel="#L9270">9270</span>
|
|
<span id="L9271" rel="#L9271">9271</span>
|
|
<span id="L9272" rel="#L9272">9272</span>
|
|
<span id="L9273" rel="#L9273">9273</span>
|
|
<span id="L9274" rel="#L9274">9274</span>
|
|
<span id="L9275" rel="#L9275">9275</span>
|
|
<span id="L9276" rel="#L9276">9276</span>
|
|
<span id="L9277" rel="#L9277">9277</span>
|
|
<span id="L9278" rel="#L9278">9278</span>
|
|
<span id="L9279" rel="#L9279">9279</span>
|
|
<span id="L9280" rel="#L9280">9280</span>
|
|
<span id="L9281" rel="#L9281">9281</span>
|
|
<span id="L9282" rel="#L9282">9282</span>
|
|
<span id="L9283" rel="#L9283">9283</span>
|
|
<span id="L9284" rel="#L9284">9284</span>
|
|
<span id="L9285" rel="#L9285">9285</span>
|
|
<span id="L9286" rel="#L9286">9286</span>
|
|
<span id="L9287" rel="#L9287">9287</span>
|
|
<span id="L9288" rel="#L9288">9288</span>
|
|
<span id="L9289" rel="#L9289">9289</span>
|
|
<span id="L9290" rel="#L9290">9290</span>
|
|
<span id="L9291" rel="#L9291">9291</span>
|
|
<span id="L9292" rel="#L9292">9292</span>
|
|
<span id="L9293" rel="#L9293">9293</span>
|
|
<span id="L9294" rel="#L9294">9294</span>
|
|
<span id="L9295" rel="#L9295">9295</span>
|
|
<span id="L9296" rel="#L9296">9296</span>
|
|
<span id="L9297" rel="#L9297">9297</span>
|
|
<span id="L9298" rel="#L9298">9298</span>
|
|
<span id="L9299" rel="#L9299">9299</span>
|
|
<span id="L9300" rel="#L9300">9300</span>
|
|
<span id="L9301" rel="#L9301">9301</span>
|
|
<span id="L9302" rel="#L9302">9302</span>
|
|
<span id="L9303" rel="#L9303">9303</span>
|
|
<span id="L9304" rel="#L9304">9304</span>
|
|
<span id="L9305" rel="#L9305">9305</span>
|
|
<span id="L9306" rel="#L9306">9306</span>
|
|
<span id="L9307" rel="#L9307">9307</span>
|
|
<span id="L9308" rel="#L9308">9308</span>
|
|
<span id="L9309" rel="#L9309">9309</span>
|
|
<span id="L9310" rel="#L9310">9310</span>
|
|
<span id="L9311" rel="#L9311">9311</span>
|
|
<span id="L9312" rel="#L9312">9312</span>
|
|
<span id="L9313" rel="#L9313">9313</span>
|
|
<span id="L9314" rel="#L9314">9314</span>
|
|
<span id="L9315" rel="#L9315">9315</span>
|
|
<span id="L9316" rel="#L9316">9316</span>
|
|
<span id="L9317" rel="#L9317">9317</span>
|
|
<span id="L9318" rel="#L9318">9318</span>
|
|
<span id="L9319" rel="#L9319">9319</span>
|
|
<span id="L9320" rel="#L9320">9320</span>
|
|
<span id="L9321" rel="#L9321">9321</span>
|
|
<span id="L9322" rel="#L9322">9322</span>
|
|
<span id="L9323" rel="#L9323">9323</span>
|
|
<span id="L9324" rel="#L9324">9324</span>
|
|
<span id="L9325" rel="#L9325">9325</span>
|
|
<span id="L9326" rel="#L9326">9326</span>
|
|
<span id="L9327" rel="#L9327">9327</span>
|
|
<span id="L9328" rel="#L9328">9328</span>
|
|
<span id="L9329" rel="#L9329">9329</span>
|
|
<span id="L9330" rel="#L9330">9330</span>
|
|
<span id="L9331" rel="#L9331">9331</span>
|
|
<span id="L9332" rel="#L9332">9332</span>
|
|
<span id="L9333" rel="#L9333">9333</span>
|
|
<span id="L9334" rel="#L9334">9334</span>
|
|
<span id="L9335" rel="#L9335">9335</span>
|
|
<span id="L9336" rel="#L9336">9336</span>
|
|
<span id="L9337" rel="#L9337">9337</span>
|
|
<span id="L9338" rel="#L9338">9338</span>
|
|
<span id="L9339" rel="#L9339">9339</span>
|
|
<span id="L9340" rel="#L9340">9340</span>
|
|
<span id="L9341" rel="#L9341">9341</span>
|
|
<span id="L9342" rel="#L9342">9342</span>
|
|
<span id="L9343" rel="#L9343">9343</span>
|
|
<span id="L9344" rel="#L9344">9344</span>
|
|
<span id="L9345" rel="#L9345">9345</span>
|
|
<span id="L9346" rel="#L9346">9346</span>
|
|
<span id="L9347" rel="#L9347">9347</span>
|
|
<span id="L9348" rel="#L9348">9348</span>
|
|
<span id="L9349" rel="#L9349">9349</span>
|
|
<span id="L9350" rel="#L9350">9350</span>
|
|
<span id="L9351" rel="#L9351">9351</span>
|
|
<span id="L9352" rel="#L9352">9352</span>
|
|
<span id="L9353" rel="#L9353">9353</span>
|
|
<span id="L9354" rel="#L9354">9354</span>
|
|
<span id="L9355" rel="#L9355">9355</span>
|
|
<span id="L9356" rel="#L9356">9356</span>
|
|
<span id="L9357" rel="#L9357">9357</span>
|
|
<span id="L9358" rel="#L9358">9358</span>
|
|
<span id="L9359" rel="#L9359">9359</span>
|
|
<span id="L9360" rel="#L9360">9360</span>
|
|
<span id="L9361" rel="#L9361">9361</span>
|
|
<span id="L9362" rel="#L9362">9362</span>
|
|
<span id="L9363" rel="#L9363">9363</span>
|
|
<span id="L9364" rel="#L9364">9364</span>
|
|
<span id="L9365" rel="#L9365">9365</span>
|
|
<span id="L9366" rel="#L9366">9366</span>
|
|
<span id="L9367" rel="#L9367">9367</span>
|
|
<span id="L9368" rel="#L9368">9368</span>
|
|
<span id="L9369" rel="#L9369">9369</span>
|
|
<span id="L9370" rel="#L9370">9370</span>
|
|
<span id="L9371" rel="#L9371">9371</span>
|
|
<span id="L9372" rel="#L9372">9372</span>
|
|
<span id="L9373" rel="#L9373">9373</span>
|
|
<span id="L9374" rel="#L9374">9374</span>
|
|
<span id="L9375" rel="#L9375">9375</span>
|
|
<span id="L9376" rel="#L9376">9376</span>
|
|
<span id="L9377" rel="#L9377">9377</span>
|
|
<span id="L9378" rel="#L9378">9378</span>
|
|
<span id="L9379" rel="#L9379">9379</span>
|
|
<span id="L9380" rel="#L9380">9380</span>
|
|
<span id="L9381" rel="#L9381">9381</span>
|
|
<span id="L9382" rel="#L9382">9382</span>
|
|
<span id="L9383" rel="#L9383">9383</span>
|
|
<span id="L9384" rel="#L9384">9384</span>
|
|
<span id="L9385" rel="#L9385">9385</span>
|
|
<span id="L9386" rel="#L9386">9386</span>
|
|
<span id="L9387" rel="#L9387">9387</span>
|
|
<span id="L9388" rel="#L9388">9388</span>
|
|
<span id="L9389" rel="#L9389">9389</span>
|
|
<span id="L9390" rel="#L9390">9390</span>
|
|
<span id="L9391" rel="#L9391">9391</span>
|
|
<span id="L9392" rel="#L9392">9392</span>
|
|
<span id="L9393" rel="#L9393">9393</span>
|
|
<span id="L9394" rel="#L9394">9394</span>
|
|
<span id="L9395" rel="#L9395">9395</span>
|
|
<span id="L9396" rel="#L9396">9396</span>
|
|
<span id="L9397" rel="#L9397">9397</span>
|
|
<span id="L9398" rel="#L9398">9398</span>
|
|
<span id="L9399" rel="#L9399">9399</span>
|
|
<span id="L9400" rel="#L9400">9400</span>
|
|
<span id="L9401" rel="#L9401">9401</span>
|
|
<span id="L9402" rel="#L9402">9402</span>
|
|
<span id="L9403" rel="#L9403">9403</span>
|
|
<span id="L9404" rel="#L9404">9404</span>
|
|
<span id="L9405" rel="#L9405">9405</span>
|
|
<span id="L9406" rel="#L9406">9406</span>
|
|
<span id="L9407" rel="#L9407">9407</span>
|
|
<span id="L9408" rel="#L9408">9408</span>
|
|
<span id="L9409" rel="#L9409">9409</span>
|
|
<span id="L9410" rel="#L9410">9410</span>
|
|
<span id="L9411" rel="#L9411">9411</span>
|
|
<span id="L9412" rel="#L9412">9412</span>
|
|
<span id="L9413" rel="#L9413">9413</span>
|
|
<span id="L9414" rel="#L9414">9414</span>
|
|
<span id="L9415" rel="#L9415">9415</span>
|
|
<span id="L9416" rel="#L9416">9416</span>
|
|
<span id="L9417" rel="#L9417">9417</span>
|
|
<span id="L9418" rel="#L9418">9418</span>
|
|
<span id="L9419" rel="#L9419">9419</span>
|
|
<span id="L9420" rel="#L9420">9420</span>
|
|
<span id="L9421" rel="#L9421">9421</span>
|
|
<span id="L9422" rel="#L9422">9422</span>
|
|
<span id="L9423" rel="#L9423">9423</span>
|
|
<span id="L9424" rel="#L9424">9424</span>
|
|
<span id="L9425" rel="#L9425">9425</span>
|
|
<span id="L9426" rel="#L9426">9426</span>
|
|
<span id="L9427" rel="#L9427">9427</span>
|
|
<span id="L9428" rel="#L9428">9428</span>
|
|
<span id="L9429" rel="#L9429">9429</span>
|
|
<span id="L9430" rel="#L9430">9430</span>
|
|
<span id="L9431" rel="#L9431">9431</span>
|
|
<span id="L9432" rel="#L9432">9432</span>
|
|
<span id="L9433" rel="#L9433">9433</span>
|
|
<span id="L9434" rel="#L9434">9434</span>
|
|
<span id="L9435" rel="#L9435">9435</span>
|
|
<span id="L9436" rel="#L9436">9436</span>
|
|
<span id="L9437" rel="#L9437">9437</span>
|
|
<span id="L9438" rel="#L9438">9438</span>
|
|
<span id="L9439" rel="#L9439">9439</span>
|
|
<span id="L9440" rel="#L9440">9440</span>
|
|
<span id="L9441" rel="#L9441">9441</span>
|
|
<span id="L9442" rel="#L9442">9442</span>
|
|
<span id="L9443" rel="#L9443">9443</span>
|
|
<span id="L9444" rel="#L9444">9444</span>
|
|
<span id="L9445" rel="#L9445">9445</span>
|
|
<span id="L9446" rel="#L9446">9446</span>
|
|
<span id="L9447" rel="#L9447">9447</span>
|
|
<span id="L9448" rel="#L9448">9448</span>
|
|
<span id="L9449" rel="#L9449">9449</span>
|
|
<span id="L9450" rel="#L9450">9450</span>
|
|
<span id="L9451" rel="#L9451">9451</span>
|
|
<span id="L9452" rel="#L9452">9452</span>
|
|
<span id="L9453" rel="#L9453">9453</span>
|
|
<span id="L9454" rel="#L9454">9454</span>
|
|
<span id="L9455" rel="#L9455">9455</span>
|
|
<span id="L9456" rel="#L9456">9456</span>
|
|
<span id="L9457" rel="#L9457">9457</span>
|
|
<span id="L9458" rel="#L9458">9458</span>
|
|
<span id="L9459" rel="#L9459">9459</span>
|
|
<span id="L9460" rel="#L9460">9460</span>
|
|
<span id="L9461" rel="#L9461">9461</span>
|
|
<span id="L9462" rel="#L9462">9462</span>
|
|
<span id="L9463" rel="#L9463">9463</span>
|
|
<span id="L9464" rel="#L9464">9464</span>
|
|
<span id="L9465" rel="#L9465">9465</span>
|
|
<span id="L9466" rel="#L9466">9466</span>
|
|
<span id="L9467" rel="#L9467">9467</span>
|
|
<span id="L9468" rel="#L9468">9468</span>
|
|
<span id="L9469" rel="#L9469">9469</span>
|
|
<span id="L9470" rel="#L9470">9470</span>
|
|
<span id="L9471" rel="#L9471">9471</span>
|
|
<span id="L9472" rel="#L9472">9472</span>
|
|
<span id="L9473" rel="#L9473">9473</span>
|
|
<span id="L9474" rel="#L9474">9474</span>
|
|
<span id="L9475" rel="#L9475">9475</span>
|
|
<span id="L9476" rel="#L9476">9476</span>
|
|
<span id="L9477" rel="#L9477">9477</span>
|
|
<span id="L9478" rel="#L9478">9478</span>
|
|
<span id="L9479" rel="#L9479">9479</span>
|
|
<span id="L9480" rel="#L9480">9480</span>
|
|
<span id="L9481" rel="#L9481">9481</span>
|
|
<span id="L9482" rel="#L9482">9482</span>
|
|
<span id="L9483" rel="#L9483">9483</span>
|
|
<span id="L9484" rel="#L9484">9484</span>
|
|
<span id="L9485" rel="#L9485">9485</span>
|
|
<span id="L9486" rel="#L9486">9486</span>
|
|
<span id="L9487" rel="#L9487">9487</span>
|
|
<span id="L9488" rel="#L9488">9488</span>
|
|
<span id="L9489" rel="#L9489">9489</span>
|
|
<span id="L9490" rel="#L9490">9490</span>
|
|
<span id="L9491" rel="#L9491">9491</span>
|
|
<span id="L9492" rel="#L9492">9492</span>
|
|
<span id="L9493" rel="#L9493">9493</span>
|
|
<span id="L9494" rel="#L9494">9494</span>
|
|
<span id="L9495" rel="#L9495">9495</span>
|
|
<span id="L9496" rel="#L9496">9496</span>
|
|
<span id="L9497" rel="#L9497">9497</span>
|
|
<span id="L9498" rel="#L9498">9498</span>
|
|
<span id="L9499" rel="#L9499">9499</span>
|
|
<span id="L9500" rel="#L9500">9500</span>
|
|
<span id="L9501" rel="#L9501">9501</span>
|
|
<span id="L9502" rel="#L9502">9502</span>
|
|
<span id="L9503" rel="#L9503">9503</span>
|
|
<span id="L9504" rel="#L9504">9504</span>
|
|
<span id="L9505" rel="#L9505">9505</span>
|
|
<span id="L9506" rel="#L9506">9506</span>
|
|
<span id="L9507" rel="#L9507">9507</span>
|
|
<span id="L9508" rel="#L9508">9508</span>
|
|
<span id="L9509" rel="#L9509">9509</span>
|
|
<span id="L9510" rel="#L9510">9510</span>
|
|
<span id="L9511" rel="#L9511">9511</span>
|
|
<span id="L9512" rel="#L9512">9512</span>
|
|
<span id="L9513" rel="#L9513">9513</span>
|
|
<span id="L9514" rel="#L9514">9514</span>
|
|
<span id="L9515" rel="#L9515">9515</span>
|
|
<span id="L9516" rel="#L9516">9516</span>
|
|
<span id="L9517" rel="#L9517">9517</span>
|
|
<span id="L9518" rel="#L9518">9518</span>
|
|
<span id="L9519" rel="#L9519">9519</span>
|
|
<span id="L9520" rel="#L9520">9520</span>
|
|
<span id="L9521" rel="#L9521">9521</span>
|
|
<span id="L9522" rel="#L9522">9522</span>
|
|
<span id="L9523" rel="#L9523">9523</span>
|
|
<span id="L9524" rel="#L9524">9524</span>
|
|
<span id="L9525" rel="#L9525">9525</span>
|
|
<span id="L9526" rel="#L9526">9526</span>
|
|
<span id="L9527" rel="#L9527">9527</span>
|
|
<span id="L9528" rel="#L9528">9528</span>
|
|
<span id="L9529" rel="#L9529">9529</span>
|
|
<span id="L9530" rel="#L9530">9530</span>
|
|
<span id="L9531" rel="#L9531">9531</span>
|
|
<span id="L9532" rel="#L9532">9532</span>
|
|
<span id="L9533" rel="#L9533">9533</span>
|
|
<span id="L9534" rel="#L9534">9534</span>
|
|
<span id="L9535" rel="#L9535">9535</span>
|
|
<span id="L9536" rel="#L9536">9536</span>
|
|
<span id="L9537" rel="#L9537">9537</span>
|
|
<span id="L9538" rel="#L9538">9538</span>
|
|
<span id="L9539" rel="#L9539">9539</span>
|
|
<span id="L9540" rel="#L9540">9540</span>
|
|
<span id="L9541" rel="#L9541">9541</span>
|
|
<span id="L9542" rel="#L9542">9542</span>
|
|
<span id="L9543" rel="#L9543">9543</span>
|
|
<span id="L9544" rel="#L9544">9544</span>
|
|
<span id="L9545" rel="#L9545">9545</span>
|
|
<span id="L9546" rel="#L9546">9546</span>
|
|
<span id="L9547" rel="#L9547">9547</span>
|
|
<span id="L9548" rel="#L9548">9548</span>
|
|
<span id="L9549" rel="#L9549">9549</span>
|
|
<span id="L9550" rel="#L9550">9550</span>
|
|
<span id="L9551" rel="#L9551">9551</span>
|
|
<span id="L9552" rel="#L9552">9552</span>
|
|
<span id="L9553" rel="#L9553">9553</span>
|
|
<span id="L9554" rel="#L9554">9554</span>
|
|
<span id="L9555" rel="#L9555">9555</span>
|
|
<span id="L9556" rel="#L9556">9556</span>
|
|
<span id="L9557" rel="#L9557">9557</span>
|
|
<span id="L9558" rel="#L9558">9558</span>
|
|
<span id="L9559" rel="#L9559">9559</span>
|
|
<span id="L9560" rel="#L9560">9560</span>
|
|
<span id="L9561" rel="#L9561">9561</span>
|
|
<span id="L9562" rel="#L9562">9562</span>
|
|
<span id="L9563" rel="#L9563">9563</span>
|
|
<span id="L9564" rel="#L9564">9564</span>
|
|
<span id="L9565" rel="#L9565">9565</span>
|
|
<span id="L9566" rel="#L9566">9566</span>
|
|
<span id="L9567" rel="#L9567">9567</span>
|
|
<span id="L9568" rel="#L9568">9568</span>
|
|
<span id="L9569" rel="#L9569">9569</span>
|
|
<span id="L9570" rel="#L9570">9570</span>
|
|
<span id="L9571" rel="#L9571">9571</span>
|
|
<span id="L9572" rel="#L9572">9572</span>
|
|
<span id="L9573" rel="#L9573">9573</span>
|
|
<span id="L9574" rel="#L9574">9574</span>
|
|
<span id="L9575" rel="#L9575">9575</span>
|
|
<span id="L9576" rel="#L9576">9576</span>
|
|
<span id="L9577" rel="#L9577">9577</span>
|
|
<span id="L9578" rel="#L9578">9578</span>
|
|
<span id="L9579" rel="#L9579">9579</span>
|
|
<span id="L9580" rel="#L9580">9580</span>
|
|
<span id="L9581" rel="#L9581">9581</span>
|
|
<span id="L9582" rel="#L9582">9582</span>
|
|
<span id="L9583" rel="#L9583">9583</span>
|
|
<span id="L9584" rel="#L9584">9584</span>
|
|
<span id="L9585" rel="#L9585">9585</span>
|
|
<span id="L9586" rel="#L9586">9586</span>
|
|
<span id="L9587" rel="#L9587">9587</span>
|
|
<span id="L9588" rel="#L9588">9588</span>
|
|
<span id="L9589" rel="#L9589">9589</span>
|
|
<span id="L9590" rel="#L9590">9590</span>
|
|
<span id="L9591" rel="#L9591">9591</span>
|
|
<span id="L9592" rel="#L9592">9592</span>
|
|
<span id="L9593" rel="#L9593">9593</span>
|
|
<span id="L9594" rel="#L9594">9594</span>
|
|
<span id="L9595" rel="#L9595">9595</span>
|
|
<span id="L9596" rel="#L9596">9596</span>
|
|
<span id="L9597" rel="#L9597">9597</span>
|
|
<span id="L9598" rel="#L9598">9598</span>
|
|
<span id="L9599" rel="#L9599">9599</span>
|
|
<span id="L9600" rel="#L9600">9600</span>
|
|
<span id="L9601" rel="#L9601">9601</span>
|
|
<span id="L9602" rel="#L9602">9602</span>
|
|
<span id="L9603" rel="#L9603">9603</span>
|
|
<span id="L9604" rel="#L9604">9604</span>
|
|
<span id="L9605" rel="#L9605">9605</span>
|
|
<span id="L9606" rel="#L9606">9606</span>
|
|
<span id="L9607" rel="#L9607">9607</span>
|
|
<span id="L9608" rel="#L9608">9608</span>
|
|
<span id="L9609" rel="#L9609">9609</span>
|
|
<span id="L9610" rel="#L9610">9610</span>
|
|
<span id="L9611" rel="#L9611">9611</span>
|
|
<span id="L9612" rel="#L9612">9612</span>
|
|
<span id="L9613" rel="#L9613">9613</span>
|
|
<span id="L9614" rel="#L9614">9614</span>
|
|
<span id="L9615" rel="#L9615">9615</span>
|
|
<span id="L9616" rel="#L9616">9616</span>
|
|
<span id="L9617" rel="#L9617">9617</span>
|
|
<span id="L9618" rel="#L9618">9618</span>
|
|
<span id="L9619" rel="#L9619">9619</span>
|
|
<span id="L9620" rel="#L9620">9620</span>
|
|
<span id="L9621" rel="#L9621">9621</span>
|
|
<span id="L9622" rel="#L9622">9622</span>
|
|
<span id="L9623" rel="#L9623">9623</span>
|
|
<span id="L9624" rel="#L9624">9624</span>
|
|
<span id="L9625" rel="#L9625">9625</span>
|
|
<span id="L9626" rel="#L9626">9626</span>
|
|
<span id="L9627" rel="#L9627">9627</span>
|
|
<span id="L9628" rel="#L9628">9628</span>
|
|
<span id="L9629" rel="#L9629">9629</span>
|
|
<span id="L9630" rel="#L9630">9630</span>
|
|
<span id="L9631" rel="#L9631">9631</span>
|
|
<span id="L9632" rel="#L9632">9632</span>
|
|
<span id="L9633" rel="#L9633">9633</span>
|
|
<span id="L9634" rel="#L9634">9634</span>
|
|
<span id="L9635" rel="#L9635">9635</span>
|
|
<span id="L9636" rel="#L9636">9636</span>
|
|
<span id="L9637" rel="#L9637">9637</span>
|
|
<span id="L9638" rel="#L9638">9638</span>
|
|
<span id="L9639" rel="#L9639">9639</span>
|
|
<span id="L9640" rel="#L9640">9640</span>
|
|
<span id="L9641" rel="#L9641">9641</span>
|
|
<span id="L9642" rel="#L9642">9642</span>
|
|
<span id="L9643" rel="#L9643">9643</span>
|
|
<span id="L9644" rel="#L9644">9644</span>
|
|
<span id="L9645" rel="#L9645">9645</span>
|
|
<span id="L9646" rel="#L9646">9646</span>
|
|
<span id="L9647" rel="#L9647">9647</span>
|
|
<span id="L9648" rel="#L9648">9648</span>
|
|
<span id="L9649" rel="#L9649">9649</span>
|
|
<span id="L9650" rel="#L9650">9650</span>
|
|
<span id="L9651" rel="#L9651">9651</span>
|
|
<span id="L9652" rel="#L9652">9652</span>
|
|
<span id="L9653" rel="#L9653">9653</span>
|
|
<span id="L9654" rel="#L9654">9654</span>
|
|
<span id="L9655" rel="#L9655">9655</span>
|
|
<span id="L9656" rel="#L9656">9656</span>
|
|
<span id="L9657" rel="#L9657">9657</span>
|
|
<span id="L9658" rel="#L9658">9658</span>
|
|
<span id="L9659" rel="#L9659">9659</span>
|
|
<span id="L9660" rel="#L9660">9660</span>
|
|
<span id="L9661" rel="#L9661">9661</span>
|
|
<span id="L9662" rel="#L9662">9662</span>
|
|
<span id="L9663" rel="#L9663">9663</span>
|
|
<span id="L9664" rel="#L9664">9664</span>
|
|
<span id="L9665" rel="#L9665">9665</span>
|
|
<span id="L9666" rel="#L9666">9666</span>
|
|
<span id="L9667" rel="#L9667">9667</span>
|
|
<span id="L9668" rel="#L9668">9668</span>
|
|
<span id="L9669" rel="#L9669">9669</span>
|
|
<span id="L9670" rel="#L9670">9670</span>
|
|
<span id="L9671" rel="#L9671">9671</span>
|
|
<span id="L9672" rel="#L9672">9672</span>
|
|
<span id="L9673" rel="#L9673">9673</span>
|
|
<span id="L9674" rel="#L9674">9674</span>
|
|
<span id="L9675" rel="#L9675">9675</span>
|
|
<span id="L9676" rel="#L9676">9676</span>
|
|
<span id="L9677" rel="#L9677">9677</span>
|
|
<span id="L9678" rel="#L9678">9678</span>
|
|
<span id="L9679" rel="#L9679">9679</span>
|
|
<span id="L9680" rel="#L9680">9680</span>
|
|
<span id="L9681" rel="#L9681">9681</span>
|
|
<span id="L9682" rel="#L9682">9682</span>
|
|
<span id="L9683" rel="#L9683">9683</span>
|
|
<span id="L9684" rel="#L9684">9684</span>
|
|
<span id="L9685" rel="#L9685">9685</span>
|
|
<span id="L9686" rel="#L9686">9686</span>
|
|
<span id="L9687" rel="#L9687">9687</span>
|
|
<span id="L9688" rel="#L9688">9688</span>
|
|
<span id="L9689" rel="#L9689">9689</span>
|
|
<span id="L9690" rel="#L9690">9690</span>
|
|
<span id="L9691" rel="#L9691">9691</span>
|
|
<span id="L9692" rel="#L9692">9692</span>
|
|
<span id="L9693" rel="#L9693">9693</span>
|
|
<span id="L9694" rel="#L9694">9694</span>
|
|
<span id="L9695" rel="#L9695">9695</span>
|
|
<span id="L9696" rel="#L9696">9696</span>
|
|
<span id="L9697" rel="#L9697">9697</span>
|
|
<span id="L9698" rel="#L9698">9698</span>
|
|
<span id="L9699" rel="#L9699">9699</span>
|
|
<span id="L9700" rel="#L9700">9700</span>
|
|
<span id="L9701" rel="#L9701">9701</span>
|
|
<span id="L9702" rel="#L9702">9702</span>
|
|
<span id="L9703" rel="#L9703">9703</span>
|
|
<span id="L9704" rel="#L9704">9704</span>
|
|
<span id="L9705" rel="#L9705">9705</span>
|
|
<span id="L9706" rel="#L9706">9706</span>
|
|
<span id="L9707" rel="#L9707">9707</span>
|
|
<span id="L9708" rel="#L9708">9708</span>
|
|
<span id="L9709" rel="#L9709">9709</span>
|
|
<span id="L9710" rel="#L9710">9710</span>
|
|
<span id="L9711" rel="#L9711">9711</span>
|
|
<span id="L9712" rel="#L9712">9712</span>
|
|
<span id="L9713" rel="#L9713">9713</span>
|
|
<span id="L9714" rel="#L9714">9714</span>
|
|
<span id="L9715" rel="#L9715">9715</span>
|
|
<span id="L9716" rel="#L9716">9716</span>
|
|
<span id="L9717" rel="#L9717">9717</span>
|
|
<span id="L9718" rel="#L9718">9718</span>
|
|
<span id="L9719" rel="#L9719">9719</span>
|
|
<span id="L9720" rel="#L9720">9720</span>
|
|
<span id="L9721" rel="#L9721">9721</span>
|
|
<span id="L9722" rel="#L9722">9722</span>
|
|
<span id="L9723" rel="#L9723">9723</span>
|
|
<span id="L9724" rel="#L9724">9724</span>
|
|
<span id="L9725" rel="#L9725">9725</span>
|
|
<span id="L9726" rel="#L9726">9726</span>
|
|
<span id="L9727" rel="#L9727">9727</span>
|
|
<span id="L9728" rel="#L9728">9728</span>
|
|
<span id="L9729" rel="#L9729">9729</span>
|
|
<span id="L9730" rel="#L9730">9730</span>
|
|
<span id="L9731" rel="#L9731">9731</span>
|
|
<span id="L9732" rel="#L9732">9732</span>
|
|
<span id="L9733" rel="#L9733">9733</span>
|
|
<span id="L9734" rel="#L9734">9734</span>
|
|
<span id="L9735" rel="#L9735">9735</span>
|
|
<span id="L9736" rel="#L9736">9736</span>
|
|
<span id="L9737" rel="#L9737">9737</span>
|
|
<span id="L9738" rel="#L9738">9738</span>
|
|
<span id="L9739" rel="#L9739">9739</span>
|
|
<span id="L9740" rel="#L9740">9740</span>
|
|
<span id="L9741" rel="#L9741">9741</span>
|
|
<span id="L9742" rel="#L9742">9742</span>
|
|
<span id="L9743" rel="#L9743">9743</span>
|
|
<span id="L9744" rel="#L9744">9744</span>
|
|
<span id="L9745" rel="#L9745">9745</span>
|
|
<span id="L9746" rel="#L9746">9746</span>
|
|
<span id="L9747" rel="#L9747">9747</span>
|
|
<span id="L9748" rel="#L9748">9748</span>
|
|
<span id="L9749" rel="#L9749">9749</span>
|
|
<span id="L9750" rel="#L9750">9750</span>
|
|
<span id="L9751" rel="#L9751">9751</span>
|
|
<span id="L9752" rel="#L9752">9752</span>
|
|
<span id="L9753" rel="#L9753">9753</span>
|
|
<span id="L9754" rel="#L9754">9754</span>
|
|
<span id="L9755" rel="#L9755">9755</span>
|
|
<span id="L9756" rel="#L9756">9756</span>
|
|
<span id="L9757" rel="#L9757">9757</span>
|
|
<span id="L9758" rel="#L9758">9758</span>
|
|
<span id="L9759" rel="#L9759">9759</span>
|
|
<span id="L9760" rel="#L9760">9760</span>
|
|
<span id="L9761" rel="#L9761">9761</span>
|
|
<span id="L9762" rel="#L9762">9762</span>
|
|
<span id="L9763" rel="#L9763">9763</span>
|
|
<span id="L9764" rel="#L9764">9764</span>
|
|
<span id="L9765" rel="#L9765">9765</span>
|
|
<span id="L9766" rel="#L9766">9766</span>
|
|
<span id="L9767" rel="#L9767">9767</span>
|
|
<span id="L9768" rel="#L9768">9768</span>
|
|
<span id="L9769" rel="#L9769">9769</span>
|
|
<span id="L9770" rel="#L9770">9770</span>
|
|
<span id="L9771" rel="#L9771">9771</span>
|
|
<span id="L9772" rel="#L9772">9772</span>
|
|
<span id="L9773" rel="#L9773">9773</span>
|
|
<span id="L9774" rel="#L9774">9774</span>
|
|
<span id="L9775" rel="#L9775">9775</span>
|
|
<span id="L9776" rel="#L9776">9776</span>
|
|
<span id="L9777" rel="#L9777">9777</span>
|
|
<span id="L9778" rel="#L9778">9778</span>
|
|
<span id="L9779" rel="#L9779">9779</span>
|
|
<span id="L9780" rel="#L9780">9780</span>
|
|
<span id="L9781" rel="#L9781">9781</span>
|
|
<span id="L9782" rel="#L9782">9782</span>
|
|
<span id="L9783" rel="#L9783">9783</span>
|
|
<span id="L9784" rel="#L9784">9784</span>
|
|
<span id="L9785" rel="#L9785">9785</span>
|
|
<span id="L9786" rel="#L9786">9786</span>
|
|
<span id="L9787" rel="#L9787">9787</span>
|
|
<span id="L9788" rel="#L9788">9788</span>
|
|
<span id="L9789" rel="#L9789">9789</span>
|
|
<span id="L9790" rel="#L9790">9790</span>
|
|
<span id="L9791" rel="#L9791">9791</span>
|
|
<span id="L9792" rel="#L9792">9792</span>
|
|
<span id="L9793" rel="#L9793">9793</span>
|
|
<span id="L9794" rel="#L9794">9794</span>
|
|
<span id="L9795" rel="#L9795">9795</span>
|
|
<span id="L9796" rel="#L9796">9796</span>
|
|
<span id="L9797" rel="#L9797">9797</span>
|
|
<span id="L9798" rel="#L9798">9798</span>
|
|
<span id="L9799" rel="#L9799">9799</span>
|
|
<span id="L9800" rel="#L9800">9800</span>
|
|
<span id="L9801" rel="#L9801">9801</span>
|
|
<span id="L9802" rel="#L9802">9802</span>
|
|
<span id="L9803" rel="#L9803">9803</span>
|
|
<span id="L9804" rel="#L9804">9804</span>
|
|
<span id="L9805" rel="#L9805">9805</span>
|
|
<span id="L9806" rel="#L9806">9806</span>
|
|
<span id="L9807" rel="#L9807">9807</span>
|
|
<span id="L9808" rel="#L9808">9808</span>
|
|
<span id="L9809" rel="#L9809">9809</span>
|
|
<span id="L9810" rel="#L9810">9810</span>
|
|
<span id="L9811" rel="#L9811">9811</span>
|
|
<span id="L9812" rel="#L9812">9812</span>
|
|
<span id="L9813" rel="#L9813">9813</span>
|
|
<span id="L9814" rel="#L9814">9814</span>
|
|
<span id="L9815" rel="#L9815">9815</span>
|
|
<span id="L9816" rel="#L9816">9816</span>
|
|
<span id="L9817" rel="#L9817">9817</span>
|
|
<span id="L9818" rel="#L9818">9818</span>
|
|
<span id="L9819" rel="#L9819">9819</span>
|
|
<span id="L9820" rel="#L9820">9820</span>
|
|
<span id="L9821" rel="#L9821">9821</span>
|
|
<span id="L9822" rel="#L9822">9822</span>
|
|
<span id="L9823" rel="#L9823">9823</span>
|
|
<span id="L9824" rel="#L9824">9824</span>
|
|
<span id="L9825" rel="#L9825">9825</span>
|
|
<span id="L9826" rel="#L9826">9826</span>
|
|
<span id="L9827" rel="#L9827">9827</span>
|
|
<span id="L9828" rel="#L9828">9828</span>
|
|
<span id="L9829" rel="#L9829">9829</span>
|
|
<span id="L9830" rel="#L9830">9830</span>
|
|
<span id="L9831" rel="#L9831">9831</span>
|
|
<span id="L9832" rel="#L9832">9832</span>
|
|
<span id="L9833" rel="#L9833">9833</span>
|
|
<span id="L9834" rel="#L9834">9834</span>
|
|
<span id="L9835" rel="#L9835">9835</span>
|
|
<span id="L9836" rel="#L9836">9836</span>
|
|
<span id="L9837" rel="#L9837">9837</span>
|
|
<span id="L9838" rel="#L9838">9838</span>
|
|
<span id="L9839" rel="#L9839">9839</span>
|
|
<span id="L9840" rel="#L9840">9840</span>
|
|
<span id="L9841" rel="#L9841">9841</span>
|
|
<span id="L9842" rel="#L9842">9842</span>
|
|
<span id="L9843" rel="#L9843">9843</span>
|
|
<span id="L9844" rel="#L9844">9844</span>
|
|
<span id="L9845" rel="#L9845">9845</span>
|
|
<span id="L9846" rel="#L9846">9846</span>
|
|
<span id="L9847" rel="#L9847">9847</span>
|
|
<span id="L9848" rel="#L9848">9848</span>
|
|
<span id="L9849" rel="#L9849">9849</span>
|
|
<span id="L9850" rel="#L9850">9850</span>
|
|
<span id="L9851" rel="#L9851">9851</span>
|
|
<span id="L9852" rel="#L9852">9852</span>
|
|
<span id="L9853" rel="#L9853">9853</span>
|
|
<span id="L9854" rel="#L9854">9854</span>
|
|
<span id="L9855" rel="#L9855">9855</span>
|
|
<span id="L9856" rel="#L9856">9856</span>
|
|
<span id="L9857" rel="#L9857">9857</span>
|
|
<span id="L9858" rel="#L9858">9858</span>
|
|
<span id="L9859" rel="#L9859">9859</span>
|
|
<span id="L9860" rel="#L9860">9860</span>
|
|
<span id="L9861" rel="#L9861">9861</span>
|
|
<span id="L9862" rel="#L9862">9862</span>
|
|
<span id="L9863" rel="#L9863">9863</span>
|
|
<span id="L9864" rel="#L9864">9864</span>
|
|
<span id="L9865" rel="#L9865">9865</span>
|
|
<span id="L9866" rel="#L9866">9866</span>
|
|
<span id="L9867" rel="#L9867">9867</span>
|
|
<span id="L9868" rel="#L9868">9868</span>
|
|
<span id="L9869" rel="#L9869">9869</span>
|
|
<span id="L9870" rel="#L9870">9870</span>
|
|
<span id="L9871" rel="#L9871">9871</span>
|
|
<span id="L9872" rel="#L9872">9872</span>
|
|
<span id="L9873" rel="#L9873">9873</span>
|
|
<span id="L9874" rel="#L9874">9874</span>
|
|
<span id="L9875" rel="#L9875">9875</span>
|
|
<span id="L9876" rel="#L9876">9876</span>
|
|
<span id="L9877" rel="#L9877">9877</span>
|
|
<span id="L9878" rel="#L9878">9878</span>
|
|
<span id="L9879" rel="#L9879">9879</span>
|
|
<span id="L9880" rel="#L9880">9880</span>
|
|
<span id="L9881" rel="#L9881">9881</span>
|
|
<span id="L9882" rel="#L9882">9882</span>
|
|
<span id="L9883" rel="#L9883">9883</span>
|
|
<span id="L9884" rel="#L9884">9884</span>
|
|
<span id="L9885" rel="#L9885">9885</span>
|
|
<span id="L9886" rel="#L9886">9886</span>
|
|
<span id="L9887" rel="#L9887">9887</span>
|
|
<span id="L9888" rel="#L9888">9888</span>
|
|
<span id="L9889" rel="#L9889">9889</span>
|
|
<span id="L9890" rel="#L9890">9890</span>
|
|
<span id="L9891" rel="#L9891">9891</span>
|
|
<span id="L9892" rel="#L9892">9892</span>
|
|
<span id="L9893" rel="#L9893">9893</span>
|
|
<span id="L9894" rel="#L9894">9894</span>
|
|
<span id="L9895" rel="#L9895">9895</span>
|
|
<span id="L9896" rel="#L9896">9896</span>
|
|
<span id="L9897" rel="#L9897">9897</span>
|
|
<span id="L9898" rel="#L9898">9898</span>
|
|
<span id="L9899" rel="#L9899">9899</span>
|
|
<span id="L9900" rel="#L9900">9900</span>
|
|
<span id="L9901" rel="#L9901">9901</span>
|
|
<span id="L9902" rel="#L9902">9902</span>
|
|
<span id="L9903" rel="#L9903">9903</span>
|
|
<span id="L9904" rel="#L9904">9904</span>
|
|
<span id="L9905" rel="#L9905">9905</span>
|
|
<span id="L9906" rel="#L9906">9906</span>
|
|
<span id="L9907" rel="#L9907">9907</span>
|
|
<span id="L9908" rel="#L9908">9908</span>
|
|
<span id="L9909" rel="#L9909">9909</span>
|
|
<span id="L9910" rel="#L9910">9910</span>
|
|
<span id="L9911" rel="#L9911">9911</span>
|
|
<span id="L9912" rel="#L9912">9912</span>
|
|
<span id="L9913" rel="#L9913">9913</span>
|
|
<span id="L9914" rel="#L9914">9914</span>
|
|
<span id="L9915" rel="#L9915">9915</span>
|
|
<span id="L9916" rel="#L9916">9916</span>
|
|
<span id="L9917" rel="#L9917">9917</span>
|
|
<span id="L9918" rel="#L9918">9918</span>
|
|
<span id="L9919" rel="#L9919">9919</span>
|
|
<span id="L9920" rel="#L9920">9920</span>
|
|
<span id="L9921" rel="#L9921">9921</span>
|
|
<span id="L9922" rel="#L9922">9922</span>
|
|
<span id="L9923" rel="#L9923">9923</span>
|
|
<span id="L9924" rel="#L9924">9924</span>
|
|
<span id="L9925" rel="#L9925">9925</span>
|
|
<span id="L9926" rel="#L9926">9926</span>
|
|
<span id="L9927" rel="#L9927">9927</span>
|
|
<span id="L9928" rel="#L9928">9928</span>
|
|
<span id="L9929" rel="#L9929">9929</span>
|
|
<span id="L9930" rel="#L9930">9930</span>
|
|
<span id="L9931" rel="#L9931">9931</span>
|
|
<span id="L9932" rel="#L9932">9932</span>
|
|
<span id="L9933" rel="#L9933">9933</span>
|
|
<span id="L9934" rel="#L9934">9934</span>
|
|
<span id="L9935" rel="#L9935">9935</span>
|
|
<span id="L9936" rel="#L9936">9936</span>
|
|
<span id="L9937" rel="#L9937">9937</span>
|
|
<span id="L9938" rel="#L9938">9938</span>
|
|
<span id="L9939" rel="#L9939">9939</span>
|
|
<span id="L9940" rel="#L9940">9940</span>
|
|
<span id="L9941" rel="#L9941">9941</span>
|
|
<span id="L9942" rel="#L9942">9942</span>
|
|
<span id="L9943" rel="#L9943">9943</span>
|
|
<span id="L9944" rel="#L9944">9944</span>
|
|
<span id="L9945" rel="#L9945">9945</span>
|
|
<span id="L9946" rel="#L9946">9946</span>
|
|
<span id="L9947" rel="#L9947">9947</span>
|
|
<span id="L9948" rel="#L9948">9948</span>
|
|
<span id="L9949" rel="#L9949">9949</span>
|
|
<span id="L9950" rel="#L9950">9950</span>
|
|
<span id="L9951" rel="#L9951">9951</span>
|
|
<span id="L9952" rel="#L9952">9952</span>
|
|
<span id="L9953" rel="#L9953">9953</span>
|
|
<span id="L9954" rel="#L9954">9954</span>
|
|
<span id="L9955" rel="#L9955">9955</span>
|
|
<span id="L9956" rel="#L9956">9956</span>
|
|
<span id="L9957" rel="#L9957">9957</span>
|
|
<span id="L9958" rel="#L9958">9958</span>
|
|
<span id="L9959" rel="#L9959">9959</span>
|
|
<span id="L9960" rel="#L9960">9960</span>
|
|
<span id="L9961" rel="#L9961">9961</span>
|
|
<span id="L9962" rel="#L9962">9962</span>
|
|
<span id="L9963" rel="#L9963">9963</span>
|
|
<span id="L9964" rel="#L9964">9964</span>
|
|
<span id="L9965" rel="#L9965">9965</span>
|
|
<span id="L9966" rel="#L9966">9966</span>
|
|
<span id="L9967" rel="#L9967">9967</span>
|
|
<span id="L9968" rel="#L9968">9968</span>
|
|
<span id="L9969" rel="#L9969">9969</span>
|
|
<span id="L9970" rel="#L9970">9970</span>
|
|
<span id="L9971" rel="#L9971">9971</span>
|
|
<span id="L9972" rel="#L9972">9972</span>
|
|
<span id="L9973" rel="#L9973">9973</span>
|
|
<span id="L9974" rel="#L9974">9974</span>
|
|
<span id="L9975" rel="#L9975">9975</span>
|
|
<span id="L9976" rel="#L9976">9976</span>
|
|
<span id="L9977" rel="#L9977">9977</span>
|
|
<span id="L9978" rel="#L9978">9978</span>
|
|
<span id="L9979" rel="#L9979">9979</span>
|
|
<span id="L9980" rel="#L9980">9980</span>
|
|
<span id="L9981" rel="#L9981">9981</span>
|
|
<span id="L9982" rel="#L9982">9982</span>
|
|
<span id="L9983" rel="#L9983">9983</span>
|
|
<span id="L9984" rel="#L9984">9984</span>
|
|
<span id="L9985" rel="#L9985">9985</span>
|
|
<span id="L9986" rel="#L9986">9986</span>
|
|
<span id="L9987" rel="#L9987">9987</span>
|
|
<span id="L9988" rel="#L9988">9988</span>
|
|
<span id="L9989" rel="#L9989">9989</span>
|
|
<span id="L9990" rel="#L9990">9990</span>
|
|
<span id="L9991" rel="#L9991">9991</span>
|
|
<span id="L9992" rel="#L9992">9992</span>
|
|
<span id="L9993" rel="#L9993">9993</span>
|
|
<span id="L9994" rel="#L9994">9994</span>
|
|
<span id="L9995" rel="#L9995">9995</span>
|
|
<span id="L9996" rel="#L9996">9996</span>
|
|
<span id="L9997" rel="#L9997">9997</span>
|
|
<span id="L9998" rel="#L9998">9998</span>
|
|
<span id="L9999" rel="#L9999">9999</span>
|
|
<span id="L10000" rel="#L10000">10000</span>
|
|
<span id="L10001" rel="#L10001">10001</span>
|
|
<span id="L10002" rel="#L10002">10002</span>
|
|
<span id="L10003" rel="#L10003">10003</span>
|
|
<span id="L10004" rel="#L10004">10004</span>
|
|
<span id="L10005" rel="#L10005">10005</span>
|
|
<span id="L10006" rel="#L10006">10006</span>
|
|
<span id="L10007" rel="#L10007">10007</span>
|
|
<span id="L10008" rel="#L10008">10008</span>
|
|
<span id="L10009" rel="#L10009">10009</span>
|
|
<span id="L10010" rel="#L10010">10010</span>
|
|
<span id="L10011" rel="#L10011">10011</span>
|
|
<span id="L10012" rel="#L10012">10012</span>
|
|
<span id="L10013" rel="#L10013">10013</span>
|
|
<span id="L10014" rel="#L10014">10014</span>
|
|
<span id="L10015" rel="#L10015">10015</span>
|
|
<span id="L10016" rel="#L10016">10016</span>
|
|
<span id="L10017" rel="#L10017">10017</span>
|
|
<span id="L10018" rel="#L10018">10018</span>
|
|
<span id="L10019" rel="#L10019">10019</span>
|
|
<span id="L10020" rel="#L10020">10020</span>
|
|
<span id="L10021" rel="#L10021">10021</span>
|
|
<span id="L10022" rel="#L10022">10022</span>
|
|
<span id="L10023" rel="#L10023">10023</span>
|
|
<span id="L10024" rel="#L10024">10024</span>
|
|
<span id="L10025" rel="#L10025">10025</span>
|
|
<span id="L10026" rel="#L10026">10026</span>
|
|
<span id="L10027" rel="#L10027">10027</span>
|
|
<span id="L10028" rel="#L10028">10028</span>
|
|
<span id="L10029" rel="#L10029">10029</span>
|
|
<span id="L10030" rel="#L10030">10030</span>
|
|
<span id="L10031" rel="#L10031">10031</span>
|
|
<span id="L10032" rel="#L10032">10032</span>
|
|
<span id="L10033" rel="#L10033">10033</span>
|
|
<span id="L10034" rel="#L10034">10034</span>
|
|
<span id="L10035" rel="#L10035">10035</span>
|
|
<span id="L10036" rel="#L10036">10036</span>
|
|
<span id="L10037" rel="#L10037">10037</span>
|
|
<span id="L10038" rel="#L10038">10038</span>
|
|
<span id="L10039" rel="#L10039">10039</span>
|
|
<span id="L10040" rel="#L10040">10040</span>
|
|
<span id="L10041" rel="#L10041">10041</span>
|
|
<span id="L10042" rel="#L10042">10042</span>
|
|
<span id="L10043" rel="#L10043">10043</span>
|
|
<span id="L10044" rel="#L10044">10044</span>
|
|
<span id="L10045" rel="#L10045">10045</span>
|
|
<span id="L10046" rel="#L10046">10046</span>
|
|
<span id="L10047" rel="#L10047">10047</span>
|
|
<span id="L10048" rel="#L10048">10048</span>
|
|
<span id="L10049" rel="#L10049">10049</span>
|
|
<span id="L10050" rel="#L10050">10050</span>
|
|
<span id="L10051" rel="#L10051">10051</span>
|
|
<span id="L10052" rel="#L10052">10052</span>
|
|
<span id="L10053" rel="#L10053">10053</span>
|
|
<span id="L10054" rel="#L10054">10054</span>
|
|
<span id="L10055" rel="#L10055">10055</span>
|
|
<span id="L10056" rel="#L10056">10056</span>
|
|
<span id="L10057" rel="#L10057">10057</span>
|
|
<span id="L10058" rel="#L10058">10058</span>
|
|
<span id="L10059" rel="#L10059">10059</span>
|
|
<span id="L10060" rel="#L10060">10060</span>
|
|
<span id="L10061" rel="#L10061">10061</span>
|
|
<span id="L10062" rel="#L10062">10062</span>
|
|
<span id="L10063" rel="#L10063">10063</span>
|
|
<span id="L10064" rel="#L10064">10064</span>
|
|
<span id="L10065" rel="#L10065">10065</span>
|
|
<span id="L10066" rel="#L10066">10066</span>
|
|
<span id="L10067" rel="#L10067">10067</span>
|
|
<span id="L10068" rel="#L10068">10068</span>
|
|
<span id="L10069" rel="#L10069">10069</span>
|
|
<span id="L10070" rel="#L10070">10070</span>
|
|
<span id="L10071" rel="#L10071">10071</span>
|
|
<span id="L10072" rel="#L10072">10072</span>
|
|
<span id="L10073" rel="#L10073">10073</span>
|
|
<span id="L10074" rel="#L10074">10074</span>
|
|
<span id="L10075" rel="#L10075">10075</span>
|
|
<span id="L10076" rel="#L10076">10076</span>
|
|
<span id="L10077" rel="#L10077">10077</span>
|
|
<span id="L10078" rel="#L10078">10078</span>
|
|
<span id="L10079" rel="#L10079">10079</span>
|
|
<span id="L10080" rel="#L10080">10080</span>
|
|
<span id="L10081" rel="#L10081">10081</span>
|
|
<span id="L10082" rel="#L10082">10082</span>
|
|
<span id="L10083" rel="#L10083">10083</span>
|
|
<span id="L10084" rel="#L10084">10084</span>
|
|
<span id="L10085" rel="#L10085">10085</span>
|
|
<span id="L10086" rel="#L10086">10086</span>
|
|
<span id="L10087" rel="#L10087">10087</span>
|
|
<span id="L10088" rel="#L10088">10088</span>
|
|
<span id="L10089" rel="#L10089">10089</span>
|
|
<span id="L10090" rel="#L10090">10090</span>
|
|
<span id="L10091" rel="#L10091">10091</span>
|
|
<span id="L10092" rel="#L10092">10092</span>
|
|
<span id="L10093" rel="#L10093">10093</span>
|
|
<span id="L10094" rel="#L10094">10094</span>
|
|
<span id="L10095" rel="#L10095">10095</span>
|
|
<span id="L10096" rel="#L10096">10096</span>
|
|
<span id="L10097" rel="#L10097">10097</span>
|
|
<span id="L10098" rel="#L10098">10098</span>
|
|
<span id="L10099" rel="#L10099">10099</span>
|
|
<span id="L10100" rel="#L10100">10100</span>
|
|
<span id="L10101" rel="#L10101">10101</span>
|
|
<span id="L10102" rel="#L10102">10102</span>
|
|
<span id="L10103" rel="#L10103">10103</span>
|
|
<span id="L10104" rel="#L10104">10104</span>
|
|
<span id="L10105" rel="#L10105">10105</span>
|
|
<span id="L10106" rel="#L10106">10106</span>
|
|
<span id="L10107" rel="#L10107">10107</span>
|
|
<span id="L10108" rel="#L10108">10108</span>
|
|
<span id="L10109" rel="#L10109">10109</span>
|
|
<span id="L10110" rel="#L10110">10110</span>
|
|
<span id="L10111" rel="#L10111">10111</span>
|
|
<span id="L10112" rel="#L10112">10112</span>
|
|
<span id="L10113" rel="#L10113">10113</span>
|
|
<span id="L10114" rel="#L10114">10114</span>
|
|
<span id="L10115" rel="#L10115">10115</span>
|
|
<span id="L10116" rel="#L10116">10116</span>
|
|
<span id="L10117" rel="#L10117">10117</span>
|
|
<span id="L10118" rel="#L10118">10118</span>
|
|
<span id="L10119" rel="#L10119">10119</span>
|
|
<span id="L10120" rel="#L10120">10120</span>
|
|
<span id="L10121" rel="#L10121">10121</span>
|
|
<span id="L10122" rel="#L10122">10122</span>
|
|
<span id="L10123" rel="#L10123">10123</span>
|
|
<span id="L10124" rel="#L10124">10124</span>
|
|
<span id="L10125" rel="#L10125">10125</span>
|
|
<span id="L10126" rel="#L10126">10126</span>
|
|
<span id="L10127" rel="#L10127">10127</span>
|
|
<span id="L10128" rel="#L10128">10128</span>
|
|
<span id="L10129" rel="#L10129">10129</span>
|
|
<span id="L10130" rel="#L10130">10130</span>
|
|
<span id="L10131" rel="#L10131">10131</span>
|
|
<span id="L10132" rel="#L10132">10132</span>
|
|
<span id="L10133" rel="#L10133">10133</span>
|
|
<span id="L10134" rel="#L10134">10134</span>
|
|
<span id="L10135" rel="#L10135">10135</span>
|
|
<span id="L10136" rel="#L10136">10136</span>
|
|
<span id="L10137" rel="#L10137">10137</span>
|
|
<span id="L10138" rel="#L10138">10138</span>
|
|
<span id="L10139" rel="#L10139">10139</span>
|
|
<span id="L10140" rel="#L10140">10140</span>
|
|
<span id="L10141" rel="#L10141">10141</span>
|
|
<span id="L10142" rel="#L10142">10142</span>
|
|
<span id="L10143" rel="#L10143">10143</span>
|
|
<span id="L10144" rel="#L10144">10144</span>
|
|
<span id="L10145" rel="#L10145">10145</span>
|
|
<span id="L10146" rel="#L10146">10146</span>
|
|
<span id="L10147" rel="#L10147">10147</span>
|
|
<span id="L10148" rel="#L10148">10148</span>
|
|
<span id="L10149" rel="#L10149">10149</span>
|
|
<span id="L10150" rel="#L10150">10150</span>
|
|
<span id="L10151" rel="#L10151">10151</span>
|
|
<span id="L10152" rel="#L10152">10152</span>
|
|
<span id="L10153" rel="#L10153">10153</span>
|
|
<span id="L10154" rel="#L10154">10154</span>
|
|
<span id="L10155" rel="#L10155">10155</span>
|
|
<span id="L10156" rel="#L10156">10156</span>
|
|
<span id="L10157" rel="#L10157">10157</span>
|
|
<span id="L10158" rel="#L10158">10158</span>
|
|
<span id="L10159" rel="#L10159">10159</span>
|
|
<span id="L10160" rel="#L10160">10160</span>
|
|
<span id="L10161" rel="#L10161">10161</span>
|
|
<span id="L10162" rel="#L10162">10162</span>
|
|
<span id="L10163" rel="#L10163">10163</span>
|
|
<span id="L10164" rel="#L10164">10164</span>
|
|
<span id="L10165" rel="#L10165">10165</span>
|
|
<span id="L10166" rel="#L10166">10166</span>
|
|
<span id="L10167" rel="#L10167">10167</span>
|
|
<span id="L10168" rel="#L10168">10168</span>
|
|
<span id="L10169" rel="#L10169">10169</span>
|
|
<span id="L10170" rel="#L10170">10170</span>
|
|
<span id="L10171" rel="#L10171">10171</span>
|
|
<span id="L10172" rel="#L10172">10172</span>
|
|
<span id="L10173" rel="#L10173">10173</span>
|
|
<span id="L10174" rel="#L10174">10174</span>
|
|
<span id="L10175" rel="#L10175">10175</span>
|
|
<span id="L10176" rel="#L10176">10176</span>
|
|
<span id="L10177" rel="#L10177">10177</span>
|
|
<span id="L10178" rel="#L10178">10178</span>
|
|
<span id="L10179" rel="#L10179">10179</span>
|
|
<span id="L10180" rel="#L10180">10180</span>
|
|
<span id="L10181" rel="#L10181">10181</span>
|
|
<span id="L10182" rel="#L10182">10182</span>
|
|
<span id="L10183" rel="#L10183">10183</span>
|
|
<span id="L10184" rel="#L10184">10184</span>
|
|
<span id="L10185" rel="#L10185">10185</span>
|
|
<span id="L10186" rel="#L10186">10186</span>
|
|
<span id="L10187" rel="#L10187">10187</span>
|
|
<span id="L10188" rel="#L10188">10188</span>
|
|
<span id="L10189" rel="#L10189">10189</span>
|
|
<span id="L10190" rel="#L10190">10190</span>
|
|
<span id="L10191" rel="#L10191">10191</span>
|
|
<span id="L10192" rel="#L10192">10192</span>
|
|
<span id="L10193" rel="#L10193">10193</span>
|
|
<span id="L10194" rel="#L10194">10194</span>
|
|
<span id="L10195" rel="#L10195">10195</span>
|
|
<span id="L10196" rel="#L10196">10196</span>
|
|
<span id="L10197" rel="#L10197">10197</span>
|
|
<span id="L10198" rel="#L10198">10198</span>
|
|
<span id="L10199" rel="#L10199">10199</span>
|
|
<span id="L10200" rel="#L10200">10200</span>
|
|
<span id="L10201" rel="#L10201">10201</span>
|
|
<span id="L10202" rel="#L10202">10202</span>
|
|
<span id="L10203" rel="#L10203">10203</span>
|
|
<span id="L10204" rel="#L10204">10204</span>
|
|
<span id="L10205" rel="#L10205">10205</span>
|
|
<span id="L10206" rel="#L10206">10206</span>
|
|
<span id="L10207" rel="#L10207">10207</span>
|
|
<span id="L10208" rel="#L10208">10208</span>
|
|
<span id="L10209" rel="#L10209">10209</span>
|
|
<span id="L10210" rel="#L10210">10210</span>
|
|
<span id="L10211" rel="#L10211">10211</span>
|
|
<span id="L10212" rel="#L10212">10212</span>
|
|
<span id="L10213" rel="#L10213">10213</span>
|
|
<span id="L10214" rel="#L10214">10214</span>
|
|
<span id="L10215" rel="#L10215">10215</span>
|
|
<span id="L10216" rel="#L10216">10216</span>
|
|
<span id="L10217" rel="#L10217">10217</span>
|
|
<span id="L10218" rel="#L10218">10218</span>
|
|
<span id="L10219" rel="#L10219">10219</span>
|
|
<span id="L10220" rel="#L10220">10220</span>
|
|
<span id="L10221" rel="#L10221">10221</span>
|
|
<span id="L10222" rel="#L10222">10222</span>
|
|
<span id="L10223" rel="#L10223">10223</span>
|
|
<span id="L10224" rel="#L10224">10224</span>
|
|
<span id="L10225" rel="#L10225">10225</span>
|
|
<span id="L10226" rel="#L10226">10226</span>
|
|
<span id="L10227" rel="#L10227">10227</span>
|
|
<span id="L10228" rel="#L10228">10228</span>
|
|
<span id="L10229" rel="#L10229">10229</span>
|
|
<span id="L10230" rel="#L10230">10230</span>
|
|
<span id="L10231" rel="#L10231">10231</span>
|
|
<span id="L10232" rel="#L10232">10232</span>
|
|
<span id="L10233" rel="#L10233">10233</span>
|
|
<span id="L10234" rel="#L10234">10234</span>
|
|
<span id="L10235" rel="#L10235">10235</span>
|
|
<span id="L10236" rel="#L10236">10236</span>
|
|
<span id="L10237" rel="#L10237">10237</span>
|
|
<span id="L10238" rel="#L10238">10238</span>
|
|
<span id="L10239" rel="#L10239">10239</span>
|
|
<span id="L10240" rel="#L10240">10240</span>
|
|
<span id="L10241" rel="#L10241">10241</span>
|
|
<span id="L10242" rel="#L10242">10242</span>
|
|
<span id="L10243" rel="#L10243">10243</span>
|
|
<span id="L10244" rel="#L10244">10244</span>
|
|
<span id="L10245" rel="#L10245">10245</span>
|
|
<span id="L10246" rel="#L10246">10246</span>
|
|
<span id="L10247" rel="#L10247">10247</span>
|
|
<span id="L10248" rel="#L10248">10248</span>
|
|
<span id="L10249" rel="#L10249">10249</span>
|
|
<span id="L10250" rel="#L10250">10250</span>
|
|
<span id="L10251" rel="#L10251">10251</span>
|
|
<span id="L10252" rel="#L10252">10252</span>
|
|
<span id="L10253" rel="#L10253">10253</span>
|
|
<span id="L10254" rel="#L10254">10254</span>
|
|
<span id="L10255" rel="#L10255">10255</span>
|
|
<span id="L10256" rel="#L10256">10256</span>
|
|
<span id="L10257" rel="#L10257">10257</span>
|
|
<span id="L10258" rel="#L10258">10258</span>
|
|
<span id="L10259" rel="#L10259">10259</span>
|
|
<span id="L10260" rel="#L10260">10260</span>
|
|
<span id="L10261" rel="#L10261">10261</span>
|
|
<span id="L10262" rel="#L10262">10262</span>
|
|
<span id="L10263" rel="#L10263">10263</span>
|
|
<span id="L10264" rel="#L10264">10264</span>
|
|
<span id="L10265" rel="#L10265">10265</span>
|
|
<span id="L10266" rel="#L10266">10266</span>
|
|
<span id="L10267" rel="#L10267">10267</span>
|
|
<span id="L10268" rel="#L10268">10268</span>
|
|
<span id="L10269" rel="#L10269">10269</span>
|
|
<span id="L10270" rel="#L10270">10270</span>
|
|
<span id="L10271" rel="#L10271">10271</span>
|
|
<span id="L10272" rel="#L10272">10272</span>
|
|
<span id="L10273" rel="#L10273">10273</span>
|
|
<span id="L10274" rel="#L10274">10274</span>
|
|
<span id="L10275" rel="#L10275">10275</span>
|
|
<span id="L10276" rel="#L10276">10276</span>
|
|
<span id="L10277" rel="#L10277">10277</span>
|
|
<span id="L10278" rel="#L10278">10278</span>
|
|
<span id="L10279" rel="#L10279">10279</span>
|
|
<span id="L10280" rel="#L10280">10280</span>
|
|
<span id="L10281" rel="#L10281">10281</span>
|
|
<span id="L10282" rel="#L10282">10282</span>
|
|
<span id="L10283" rel="#L10283">10283</span>
|
|
<span id="L10284" rel="#L10284">10284</span>
|
|
<span id="L10285" rel="#L10285">10285</span>
|
|
<span id="L10286" rel="#L10286">10286</span>
|
|
<span id="L10287" rel="#L10287">10287</span>
|
|
<span id="L10288" rel="#L10288">10288</span>
|
|
<span id="L10289" rel="#L10289">10289</span>
|
|
<span id="L10290" rel="#L10290">10290</span>
|
|
<span id="L10291" rel="#L10291">10291</span>
|
|
<span id="L10292" rel="#L10292">10292</span>
|
|
<span id="L10293" rel="#L10293">10293</span>
|
|
<span id="L10294" rel="#L10294">10294</span>
|
|
<span id="L10295" rel="#L10295">10295</span>
|
|
<span id="L10296" rel="#L10296">10296</span>
|
|
<span id="L10297" rel="#L10297">10297</span>
|
|
<span id="L10298" rel="#L10298">10298</span>
|
|
<span id="L10299" rel="#L10299">10299</span>
|
|
<span id="L10300" rel="#L10300">10300</span>
|
|
<span id="L10301" rel="#L10301">10301</span>
|
|
<span id="L10302" rel="#L10302">10302</span>
|
|
<span id="L10303" rel="#L10303">10303</span>
|
|
<span id="L10304" rel="#L10304">10304</span>
|
|
<span id="L10305" rel="#L10305">10305</span>
|
|
<span id="L10306" rel="#L10306">10306</span>
|
|
<span id="L10307" rel="#L10307">10307</span>
|
|
<span id="L10308" rel="#L10308">10308</span>
|
|
<span id="L10309" rel="#L10309">10309</span>
|
|
<span id="L10310" rel="#L10310">10310</span>
|
|
<span id="L10311" rel="#L10311">10311</span>
|
|
<span id="L10312" rel="#L10312">10312</span>
|
|
<span id="L10313" rel="#L10313">10313</span>
|
|
<span id="L10314" rel="#L10314">10314</span>
|
|
<span id="L10315" rel="#L10315">10315</span>
|
|
<span id="L10316" rel="#L10316">10316</span>
|
|
<span id="L10317" rel="#L10317">10317</span>
|
|
<span id="L10318" rel="#L10318">10318</span>
|
|
<span id="L10319" rel="#L10319">10319</span>
|
|
<span id="L10320" rel="#L10320">10320</span>
|
|
<span id="L10321" rel="#L10321">10321</span>
|
|
<span id="L10322" rel="#L10322">10322</span>
|
|
<span id="L10323" rel="#L10323">10323</span>
|
|
<span id="L10324" rel="#L10324">10324</span>
|
|
<span id="L10325" rel="#L10325">10325</span>
|
|
<span id="L10326" rel="#L10326">10326</span>
|
|
<span id="L10327" rel="#L10327">10327</span>
|
|
<span id="L10328" rel="#L10328">10328</span>
|
|
<span id="L10329" rel="#L10329">10329</span>
|
|
<span id="L10330" rel="#L10330">10330</span>
|
|
<span id="L10331" rel="#L10331">10331</span>
|
|
<span id="L10332" rel="#L10332">10332</span>
|
|
<span id="L10333" rel="#L10333">10333</span>
|
|
<span id="L10334" rel="#L10334">10334</span>
|
|
<span id="L10335" rel="#L10335">10335</span>
|
|
<span id="L10336" rel="#L10336">10336</span>
|
|
<span id="L10337" rel="#L10337">10337</span>
|
|
<span id="L10338" rel="#L10338">10338</span>
|
|
<span id="L10339" rel="#L10339">10339</span>
|
|
<span id="L10340" rel="#L10340">10340</span>
|
|
<span id="L10341" rel="#L10341">10341</span>
|
|
<span id="L10342" rel="#L10342">10342</span>
|
|
<span id="L10343" rel="#L10343">10343</span>
|
|
<span id="L10344" rel="#L10344">10344</span>
|
|
<span id="L10345" rel="#L10345">10345</span>
|
|
<span id="L10346" rel="#L10346">10346</span>
|
|
<span id="L10347" rel="#L10347">10347</span>
|
|
<span id="L10348" rel="#L10348">10348</span>
|
|
<span id="L10349" rel="#L10349">10349</span>
|
|
<span id="L10350" rel="#L10350">10350</span>
|
|
<span id="L10351" rel="#L10351">10351</span>
|
|
<span id="L10352" rel="#L10352">10352</span>
|
|
<span id="L10353" rel="#L10353">10353</span>
|
|
<span id="L10354" rel="#L10354">10354</span>
|
|
<span id="L10355" rel="#L10355">10355</span>
|
|
<span id="L10356" rel="#L10356">10356</span>
|
|
<span id="L10357" rel="#L10357">10357</span>
|
|
<span id="L10358" rel="#L10358">10358</span>
|
|
<span id="L10359" rel="#L10359">10359</span>
|
|
<span id="L10360" rel="#L10360">10360</span>
|
|
<span id="L10361" rel="#L10361">10361</span>
|
|
<span id="L10362" rel="#L10362">10362</span>
|
|
<span id="L10363" rel="#L10363">10363</span>
|
|
<span id="L10364" rel="#L10364">10364</span>
|
|
<span id="L10365" rel="#L10365">10365</span>
|
|
<span id="L10366" rel="#L10366">10366</span>
|
|
<span id="L10367" rel="#L10367">10367</span>
|
|
<span id="L10368" rel="#L10368">10368</span>
|
|
<span id="L10369" rel="#L10369">10369</span>
|
|
<span id="L10370" rel="#L10370">10370</span>
|
|
<span id="L10371" rel="#L10371">10371</span>
|
|
<span id="L10372" rel="#L10372">10372</span>
|
|
<span id="L10373" rel="#L10373">10373</span>
|
|
<span id="L10374" rel="#L10374">10374</span>
|
|
<span id="L10375" rel="#L10375">10375</span>
|
|
<span id="L10376" rel="#L10376">10376</span>
|
|
<span id="L10377" rel="#L10377">10377</span>
|
|
<span id="L10378" rel="#L10378">10378</span>
|
|
<span id="L10379" rel="#L10379">10379</span>
|
|
<span id="L10380" rel="#L10380">10380</span>
|
|
<span id="L10381" rel="#L10381">10381</span>
|
|
<span id="L10382" rel="#L10382">10382</span>
|
|
<span id="L10383" rel="#L10383">10383</span>
|
|
<span id="L10384" rel="#L10384">10384</span>
|
|
<span id="L10385" rel="#L10385">10385</span>
|
|
<span id="L10386" rel="#L10386">10386</span>
|
|
<span id="L10387" rel="#L10387">10387</span>
|
|
<span id="L10388" rel="#L10388">10388</span>
|
|
<span id="L10389" rel="#L10389">10389</span>
|
|
<span id="L10390" rel="#L10390">10390</span>
|
|
<span id="L10391" rel="#L10391">10391</span>
|
|
<span id="L10392" rel="#L10392">10392</span>
|
|
<span id="L10393" rel="#L10393">10393</span>
|
|
<span id="L10394" rel="#L10394">10394</span>
|
|
<span id="L10395" rel="#L10395">10395</span>
|
|
<span id="L10396" rel="#L10396">10396</span>
|
|
<span id="L10397" rel="#L10397">10397</span>
|
|
<span id="L10398" rel="#L10398">10398</span>
|
|
<span id="L10399" rel="#L10399">10399</span>
|
|
<span id="L10400" rel="#L10400">10400</span>
|
|
<span id="L10401" rel="#L10401">10401</span>
|
|
<span id="L10402" rel="#L10402">10402</span>
|
|
<span id="L10403" rel="#L10403">10403</span>
|
|
<span id="L10404" rel="#L10404">10404</span>
|
|
<span id="L10405" rel="#L10405">10405</span>
|
|
<span id="L10406" rel="#L10406">10406</span>
|
|
<span id="L10407" rel="#L10407">10407</span>
|
|
<span id="L10408" rel="#L10408">10408</span>
|
|
<span id="L10409" rel="#L10409">10409</span>
|
|
<span id="L10410" rel="#L10410">10410</span>
|
|
<span id="L10411" rel="#L10411">10411</span>
|
|
<span id="L10412" rel="#L10412">10412</span>
|
|
<span id="L10413" rel="#L10413">10413</span>
|
|
<span id="L10414" rel="#L10414">10414</span>
|
|
<span id="L10415" rel="#L10415">10415</span>
|
|
<span id="L10416" rel="#L10416">10416</span>
|
|
<span id="L10417" rel="#L10417">10417</span>
|
|
<span id="L10418" rel="#L10418">10418</span>
|
|
<span id="L10419" rel="#L10419">10419</span>
|
|
<span id="L10420" rel="#L10420">10420</span>
|
|
<span id="L10421" rel="#L10421">10421</span>
|
|
<span id="L10422" rel="#L10422">10422</span>
|
|
<span id="L10423" rel="#L10423">10423</span>
|
|
<span id="L10424" rel="#L10424">10424</span>
|
|
<span id="L10425" rel="#L10425">10425</span>
|
|
<span id="L10426" rel="#L10426">10426</span>
|
|
<span id="L10427" rel="#L10427">10427</span>
|
|
<span id="L10428" rel="#L10428">10428</span>
|
|
<span id="L10429" rel="#L10429">10429</span>
|
|
<span id="L10430" rel="#L10430">10430</span>
|
|
<span id="L10431" rel="#L10431">10431</span>
|
|
<span id="L10432" rel="#L10432">10432</span>
|
|
<span id="L10433" rel="#L10433">10433</span>
|
|
<span id="L10434" rel="#L10434">10434</span>
|
|
<span id="L10435" rel="#L10435">10435</span>
|
|
<span id="L10436" rel="#L10436">10436</span>
|
|
<span id="L10437" rel="#L10437">10437</span>
|
|
<span id="L10438" rel="#L10438">10438</span>
|
|
<span id="L10439" rel="#L10439">10439</span>
|
|
<span id="L10440" rel="#L10440">10440</span>
|
|
<span id="L10441" rel="#L10441">10441</span>
|
|
<span id="L10442" rel="#L10442">10442</span>
|
|
<span id="L10443" rel="#L10443">10443</span>
|
|
<span id="L10444" rel="#L10444">10444</span>
|
|
<span id="L10445" rel="#L10445">10445</span>
|
|
<span id="L10446" rel="#L10446">10446</span>
|
|
<span id="L10447" rel="#L10447">10447</span>
|
|
<span id="L10448" rel="#L10448">10448</span>
|
|
<span id="L10449" rel="#L10449">10449</span>
|
|
<span id="L10450" rel="#L10450">10450</span>
|
|
<span id="L10451" rel="#L10451">10451</span>
|
|
<span id="L10452" rel="#L10452">10452</span>
|
|
<span id="L10453" rel="#L10453">10453</span>
|
|
<span id="L10454" rel="#L10454">10454</span>
|
|
<span id="L10455" rel="#L10455">10455</span>
|
|
<span id="L10456" rel="#L10456">10456</span>
|
|
<span id="L10457" rel="#L10457">10457</span>
|
|
<span id="L10458" rel="#L10458">10458</span>
|
|
<span id="L10459" rel="#L10459">10459</span>
|
|
<span id="L10460" rel="#L10460">10460</span>
|
|
<span id="L10461" rel="#L10461">10461</span>
|
|
<span id="L10462" rel="#L10462">10462</span>
|
|
<span id="L10463" rel="#L10463">10463</span>
|
|
<span id="L10464" rel="#L10464">10464</span>
|
|
<span id="L10465" rel="#L10465">10465</span>
|
|
<span id="L10466" rel="#L10466">10466</span>
|
|
<span id="L10467" rel="#L10467">10467</span>
|
|
<span id="L10468" rel="#L10468">10468</span>
|
|
<span id="L10469" rel="#L10469">10469</span>
|
|
<span id="L10470" rel="#L10470">10470</span>
|
|
<span id="L10471" rel="#L10471">10471</span>
|
|
<span id="L10472" rel="#L10472">10472</span>
|
|
<span id="L10473" rel="#L10473">10473</span>
|
|
<span id="L10474" rel="#L10474">10474</span>
|
|
<span id="L10475" rel="#L10475">10475</span>
|
|
<span id="L10476" rel="#L10476">10476</span>
|
|
<span id="L10477" rel="#L10477">10477</span>
|
|
<span id="L10478" rel="#L10478">10478</span>
|
|
<span id="L10479" rel="#L10479">10479</span>
|
|
<span id="L10480" rel="#L10480">10480</span>
|
|
<span id="L10481" rel="#L10481">10481</span>
|
|
<span id="L10482" rel="#L10482">10482</span>
|
|
<span id="L10483" rel="#L10483">10483</span>
|
|
<span id="L10484" rel="#L10484">10484</span>
|
|
<span id="L10485" rel="#L10485">10485</span>
|
|
<span id="L10486" rel="#L10486">10486</span>
|
|
<span id="L10487" rel="#L10487">10487</span>
|
|
<span id="L10488" rel="#L10488">10488</span>
|
|
<span id="L10489" rel="#L10489">10489</span>
|
|
<span id="L10490" rel="#L10490">10490</span>
|
|
<span id="L10491" rel="#L10491">10491</span>
|
|
<span id="L10492" rel="#L10492">10492</span>
|
|
<span id="L10493" rel="#L10493">10493</span>
|
|
<span id="L10494" rel="#L10494">10494</span>
|
|
<span id="L10495" rel="#L10495">10495</span>
|
|
<span id="L10496" rel="#L10496">10496</span>
|
|
<span id="L10497" rel="#L10497">10497</span>
|
|
<span id="L10498" rel="#L10498">10498</span>
|
|
<span id="L10499" rel="#L10499">10499</span>
|
|
<span id="L10500" rel="#L10500">10500</span>
|
|
<span id="L10501" rel="#L10501">10501</span>
|
|
<span id="L10502" rel="#L10502">10502</span>
|
|
<span id="L10503" rel="#L10503">10503</span>
|
|
<span id="L10504" rel="#L10504">10504</span>
|
|
<span id="L10505" rel="#L10505">10505</span>
|
|
<span id="L10506" rel="#L10506">10506</span>
|
|
<span id="L10507" rel="#L10507">10507</span>
|
|
<span id="L10508" rel="#L10508">10508</span>
|
|
<span id="L10509" rel="#L10509">10509</span>
|
|
<span id="L10510" rel="#L10510">10510</span>
|
|
<span id="L10511" rel="#L10511">10511</span>
|
|
<span id="L10512" rel="#L10512">10512</span>
|
|
<span id="L10513" rel="#L10513">10513</span>
|
|
<span id="L10514" rel="#L10514">10514</span>
|
|
<span id="L10515" rel="#L10515">10515</span>
|
|
<span id="L10516" rel="#L10516">10516</span>
|
|
<span id="L10517" rel="#L10517">10517</span>
|
|
<span id="L10518" rel="#L10518">10518</span>
|
|
<span id="L10519" rel="#L10519">10519</span>
|
|
<span id="L10520" rel="#L10520">10520</span>
|
|
<span id="L10521" rel="#L10521">10521</span>
|
|
<span id="L10522" rel="#L10522">10522</span>
|
|
<span id="L10523" rel="#L10523">10523</span>
|
|
<span id="L10524" rel="#L10524">10524</span>
|
|
<span id="L10525" rel="#L10525">10525</span>
|
|
<span id="L10526" rel="#L10526">10526</span>
|
|
<span id="L10527" rel="#L10527">10527</span>
|
|
<span id="L10528" rel="#L10528">10528</span>
|
|
<span id="L10529" rel="#L10529">10529</span>
|
|
<span id="L10530" rel="#L10530">10530</span>
|
|
<span id="L10531" rel="#L10531">10531</span>
|
|
<span id="L10532" rel="#L10532">10532</span>
|
|
<span id="L10533" rel="#L10533">10533</span>
|
|
<span id="L10534" rel="#L10534">10534</span>
|
|
<span id="L10535" rel="#L10535">10535</span>
|
|
<span id="L10536" rel="#L10536">10536</span>
|
|
<span id="L10537" rel="#L10537">10537</span>
|
|
<span id="L10538" rel="#L10538">10538</span>
|
|
<span id="L10539" rel="#L10539">10539</span>
|
|
<span id="L10540" rel="#L10540">10540</span>
|
|
<span id="L10541" rel="#L10541">10541</span>
|
|
<span id="L10542" rel="#L10542">10542</span>
|
|
|
|
</td>
|
|
<td class="blob-line-code">
|
|
<div class="highlight"><pre><div class='line' id='LC1'><span class="cm">/**</span></div><div class='line' id='LC2'><span class="cm"> * Array.filter() shim by Trevor Menagh (https://github.com/trevmex) with some modifications</span></div><div class='line' id='LC3'><span class="cm"> */</span></div><div class='line' id='LC4'><br/></div><div class='line' id='LC5'><span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">filter</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6'> <span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">filter</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">fun</span><span class="p">,</span> <span class="nx">thisp</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7'> <span class="s2">"use strict"</span><span class="p">;</span></div><div class='line' id='LC8'><br/></div><div class='line' id='LC9'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="k">this</span> <span class="o">===</span> <span class="s2">"undefined"</span> <span class="o">||</span> <span class="k">this</span> <span class="o">===</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC10'> <span class="k">throw</span> <span class="k">new</span> <span class="nx">TypeError</span><span class="p">();</span></div><div class='line' id='LC11'> <span class="p">}</span></div><div class='line' id='LC12'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">fun</span> <span class="o">!==</span> <span class="s2">"function"</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC13'> <span class="k">throw</span> <span class="k">new</span> <span class="nx">TypeError</span><span class="p">();</span></div><div class='line' id='LC14'> <span class="p">}</span></div><div class='line' id='LC15'><br/></div><div class='line' id='LC16'> <span class="nx">thisp</span> <span class="o">=</span> <span class="nx">thisp</span> <span class="o">||</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC17'><br/></div><div class='line' id='LC18'> <span class="kd">var</span> <span class="nx">len</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">length</span><span class="p">,</span></div><div class='line' id='LC19'> <span class="nx">res</span> <span class="o">=</span> <span class="p">[],</span></div><div class='line' id='LC20'> <span class="nx">i</span><span class="p">,</span></div><div class='line' id='LC21'> <span class="nx">val</span><span class="p">;</span></div><div class='line' id='LC22'><br/></div><div class='line' id='LC23'> <span class="k">for</span> <span class="p">(</span><span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">len</span><span class="p">;</span> <span class="nx">i</span> <span class="o">+=</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC24'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">i</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC25'> <span class="nx">val</span> <span class="o">=</span> <span class="k">this</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span> <span class="c1">// in case fun mutates this</span></div><div class='line' id='LC26'> <span class="k">if</span> <span class="p">(</span><span class="nx">fun</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">thisp</span><span class="p">,</span> <span class="nx">val</span><span class="p">,</span> <span class="nx">i</span><span class="p">,</span> <span class="k">this</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC27'> <span class="nx">res</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">val</span><span class="p">);</span></div><div class='line' id='LC28'> <span class="p">}</span></div><div class='line' id='LC29'> <span class="p">}</span></div><div class='line' id='LC30'> <span class="p">}</span></div><div class='line' id='LC31'><br/></div><div class='line' id='LC32'> <span class="k">return</span> <span class="nx">res</span><span class="p">;</span></div><div class='line' id='LC33'> <span class="p">};</span></div><div class='line' id='LC34'><span class="p">}</span></div><div class='line' id='LC35'><br/></div><div class='line' id='LC36'><span class="cm">/**</span></div><div class='line' id='LC37'><span class="cm"> * Handsontable 0.9.10</span></div><div class='line' id='LC38'><span class="cm"> * Handsontable is a simple jQuery plugin for editable tables with basic copy-paste compatibility with Excel and Google Docs</span></div><div class='line' id='LC39'><span class="cm"> *</span></div><div class='line' id='LC40'><span class="cm"> * Copyright 2012, Marcin Warpechowski</span></div><div class='line' id='LC41'><span class="cm"> * Licensed under the MIT license.</span></div><div class='line' id='LC42'><span class="cm"> * http://handsontable.com/</span></div><div class='line' id='LC43'><span class="cm"> *</span></div><div class='line' id='LC44'><span class="cm"> * Date: Tue Jul 23 2013 15:18:14 GMT+0200 (Central European Daylight Time)</span></div><div class='line' id='LC45'><span class="cm"> */</span></div><div class='line' id='LC46'><span class="cm">/*jslint white: true, browser: true, plusplus: true, indent: 4, maxerr: 50 */</span></div><div class='line' id='LC47'><br/></div><div class='line' id='LC48'><span class="kd">var</span> <span class="nx">Handsontable</span> <span class="o">=</span> <span class="p">{</span> <span class="c1">//class namespace</span></div><div class='line' id='LC49'> <span class="nx">extension</span><span class="o">:</span> <span class="p">{},</span> <span class="c1">//extenstion namespace</span></div><div class='line' id='LC50'> <span class="nx">helper</span><span class="o">:</span> <span class="p">{}</span> <span class="c1">//helper namespace</span></div><div class='line' id='LC51'><span class="p">};</span></div><div class='line' id='LC52'><br/></div><div class='line' id='LC53'><span class="p">(</span><span class="kd">function</span> <span class="p">(</span><span class="nx">$</span><span class="p">,</span> <span class="nb">window</span><span class="p">,</span> <span class="nx">Handsontable</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC54'> <span class="s2">"use strict"</span><span class="p">;</span></div><div class='line' id='LC55'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">activeGuid</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span></div><div class='line' id='LC56'><br/></div><div class='line' id='LC57'><span class="cm">/**</span></div><div class='line' id='LC58'><span class="cm"> * Handsontable constructor</span></div><div class='line' id='LC59'><span class="cm"> * @param rootElement The jQuery element in which Handsontable DOM will be inserted</span></div><div class='line' id='LC60'><span class="cm"> * @param userSettings</span></div><div class='line' id='LC61'><span class="cm"> * @constructor</span></div><div class='line' id='LC62'><span class="cm"> */</span></div><div class='line' id='LC63'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">Core</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">rootElement</span><span class="p">,</span> <span class="nx">userSettings</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC64'> <span class="kd">var</span> <span class="nx">priv</span></div><div class='line' id='LC65'> <span class="p">,</span> <span class="nx">datamap</span></div><div class='line' id='LC66'> <span class="p">,</span> <span class="nx">grid</span></div><div class='line' id='LC67'> <span class="p">,</span> <span class="nx">selection</span></div><div class='line' id='LC68'> <span class="p">,</span> <span class="nx">editproxy</span></div><div class='line' id='LC69'> <span class="p">,</span> <span class="nx">autofill</span></div><div class='line' id='LC70'> <span class="p">,</span> <span class="nx">instance</span> <span class="o">=</span> <span class="k">this</span></div><div class='line' id='LC71'> <span class="p">,</span> <span class="nx">GridSettings</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC72'> <span class="p">};</span></div><div class='line' id='LC73'><br/></div><div class='line' id='LC74'> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">inherit</span><span class="p">(</span><span class="nx">GridSettings</span><span class="p">,</span> <span class="nx">DefaultSettings</span><span class="p">);</span> <span class="c1">//create grid settings as a copy of default settings</span></div><div class='line' id='LC75'> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">extend</span><span class="p">(</span><span class="nx">GridSettings</span><span class="p">.</span><span class="nx">prototype</span><span class="p">,</span> <span class="nx">userSettings</span><span class="p">);</span> <span class="c1">//overwrite defaults with user settings</span></div><div class='line' id='LC76'><br/></div><div class='line' id='LC77'> <span class="k">this</span><span class="p">.</span><span class="nx">rootElement</span> <span class="o">=</span> <span class="nx">rootElement</span><span class="p">;</span></div><div class='line' id='LC78'> <span class="kd">var</span> <span class="nx">$document</span> <span class="o">=</span> <span class="nx">$</span><span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">documentElement</span><span class="p">);</span></div><div class='line' id='LC79'> <span class="kd">var</span> <span class="nx">$body</span> <span class="o">=</span> <span class="nx">$</span><span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">body</span><span class="p">);</span></div><div class='line' id='LC80'> <span class="k">this</span><span class="p">.</span><span class="nx">guid</span> <span class="o">=</span> <span class="s1">'ht_'</span> <span class="o">+</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">randomString</span><span class="p">();</span> <span class="c1">//this is the namespace for global events</span></div><div class='line' id='LC81'><br/></div><div class='line' id='LC82'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">id</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC83'> <span class="k">this</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">id</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">guid</span><span class="p">;</span> <span class="c1">//if root element does not have an id, assign a random id</span></div><div class='line' id='LC84'> <span class="p">}</span></div><div class='line' id='LC85'><br/></div><div class='line' id='LC86'> <span class="nx">priv</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC87'> <span class="nx">cellSettings</span><span class="o">:</span> <span class="p">[],</span></div><div class='line' id='LC88'> <span class="nx">columnSettings</span><span class="o">:</span> <span class="p">[],</span></div><div class='line' id='LC89'> <span class="nx">columnsSettingConflicts</span><span class="o">:</span> <span class="p">[</span><span class="s1">'data'</span><span class="p">,</span> <span class="s1">'width'</span><span class="p">],</span></div><div class='line' id='LC90'> <span class="nx">settings</span><span class="o">:</span> <span class="k">new</span> <span class="nx">GridSettings</span><span class="p">(),</span> <span class="c1">// current settings instance</span></div><div class='line' id='LC91'> <span class="nx">settingsFromDOM</span><span class="o">:</span> <span class="p">{},</span></div><div class='line' id='LC92'> <span class="nx">selStart</span><span class="o">:</span> <span class="k">new</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">SelectionPoint</span><span class="p">(),</span></div><div class='line' id='LC93'> <span class="nx">selEnd</span><span class="o">:</span> <span class="k">new</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">SelectionPoint</span><span class="p">(),</span></div><div class='line' id='LC94'> <span class="nx">editProxy</span><span class="o">:</span> <span class="kc">false</span><span class="p">,</span></div><div class='line' id='LC95'> <span class="nx">isPopulated</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span></div><div class='line' id='LC96'> <span class="nx">scrollable</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span></div><div class='line' id='LC97'> <span class="nx">undoRedo</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span></div><div class='line' id='LC98'> <span class="nx">extensions</span><span class="o">:</span> <span class="p">{},</span></div><div class='line' id='LC99'> <span class="nx">colToProp</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span></div><div class='line' id='LC100'> <span class="nx">propToCol</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span></div><div class='line' id='LC101'> <span class="nx">dataSchema</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span></div><div class='line' id='LC102'> <span class="nx">dataType</span><span class="o">:</span> <span class="s1">'array'</span><span class="p">,</span></div><div class='line' id='LC103'> <span class="nx">firstRun</span><span class="o">:</span> <span class="kc">true</span></div><div class='line' id='LC104'> <span class="p">};</span></div><div class='line' id='LC105'><br/></div><div class='line' id='LC106'> <span class="nx">datamap</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC107'> <span class="nx">recursiveDuckSchema</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">obj</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC108'> <span class="kd">var</span> <span class="nx">schema</span><span class="p">;</span></div><div class='line' id='LC109'> <span class="k">if</span> <span class="p">(</span><span class="nx">$</span><span class="p">.</span><span class="nx">isPlainObject</span><span class="p">(</span><span class="nx">obj</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC110'> <span class="nx">schema</span> <span class="o">=</span> <span class="p">{};</span></div><div class='line' id='LC111'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="k">in</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC112'> <span class="k">if</span> <span class="p">(</span><span class="nx">obj</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">i</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC113'> <span class="k">if</span> <span class="p">(</span><span class="nx">$</span><span class="p">.</span><span class="nx">isPlainObject</span><span class="p">(</span><span class="nx">obj</span><span class="p">[</span><span class="nx">i</span><span class="p">]))</span> <span class="p">{</span></div><div class='line' id='LC114'> <span class="nx">schema</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">=</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">recursiveDuckSchema</span><span class="p">(</span><span class="nx">obj</span><span class="p">[</span><span class="nx">i</span><span class="p">]);</span></div><div class='line' id='LC115'> <span class="p">}</span></div><div class='line' id='LC116'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC117'> <span class="nx">schema</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span></div><div class='line' id='LC118'> <span class="p">}</span></div><div class='line' id='LC119'> <span class="p">}</span></div><div class='line' id='LC120'> <span class="p">}</span></div><div class='line' id='LC121'> <span class="p">}</span></div><div class='line' id='LC122'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC123'> <span class="nx">schema</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC124'> <span class="p">}</span></div><div class='line' id='LC125'> <span class="k">return</span> <span class="nx">schema</span><span class="p">;</span></div><div class='line' id='LC126'> <span class="p">},</span></div><div class='line' id='LC127'><br/></div><div class='line' id='LC128'> <span class="nx">recursiveDuckColumns</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">schema</span><span class="p">,</span> <span class="nx">lastCol</span><span class="p">,</span> <span class="nx">parent</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC129'> <span class="kd">var</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">i</span><span class="p">;</span></div><div class='line' id='LC130'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">lastCol</span> <span class="o">===</span> <span class="s1">'undefined'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC131'> <span class="nx">lastCol</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC132'> <span class="nx">parent</span> <span class="o">=</span> <span class="s1">''</span><span class="p">;</span></div><div class='line' id='LC133'> <span class="p">}</span></div><div class='line' id='LC134'> <span class="k">if</span> <span class="p">(</span><span class="nx">$</span><span class="p">.</span><span class="nx">isPlainObject</span><span class="p">(</span><span class="nx">schema</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC135'> <span class="k">for</span> <span class="p">(</span><span class="nx">i</span> <span class="k">in</span> <span class="nx">schema</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC136'> <span class="k">if</span> <span class="p">(</span><span class="nx">schema</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">i</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC137'> <span class="k">if</span> <span class="p">(</span><span class="nx">schema</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">===</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC138'> <span class="nx">prop</span> <span class="o">=</span> <span class="nx">parent</span> <span class="o">+</span> <span class="nx">i</span><span class="p">;</span></div><div class='line' id='LC139'> <span class="nx">priv</span><span class="p">.</span><span class="nx">colToProp</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">prop</span><span class="p">);</span></div><div class='line' id='LC140'> <span class="nx">priv</span><span class="p">.</span><span class="nx">propToCol</span><span class="p">[</span><span class="nx">prop</span><span class="p">]</span> <span class="o">=</span> <span class="nx">lastCol</span><span class="p">;</span></div><div class='line' id='LC141'> <span class="nx">lastCol</span><span class="o">++</span><span class="p">;</span></div><div class='line' id='LC142'> <span class="p">}</span></div><div class='line' id='LC143'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC144'> <span class="nx">lastCol</span> <span class="o">=</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">recursiveDuckColumns</span><span class="p">(</span><span class="nx">schema</span><span class="p">[</span><span class="nx">i</span><span class="p">],</span> <span class="nx">lastCol</span><span class="p">,</span> <span class="nx">i</span> <span class="o">+</span> <span class="s1">'.'</span><span class="p">);</span></div><div class='line' id='LC145'> <span class="p">}</span></div><div class='line' id='LC146'> <span class="p">}</span></div><div class='line' id='LC147'> <span class="p">}</span></div><div class='line' id='LC148'> <span class="p">}</span></div><div class='line' id='LC149'> <span class="k">return</span> <span class="nx">lastCol</span><span class="p">;</span></div><div class='line' id='LC150'> <span class="p">},</span></div><div class='line' id='LC151'><br/></div><div class='line' id='LC152'> <span class="nx">createMap</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC153'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">getSchema</span><span class="p">()</span> <span class="o">===</span> <span class="s2">"undefined"</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC154'> <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s2">"trying to create `columns` definition but you didnt' provide `schema` nor `data`"</span><span class="p">);</span></div><div class='line' id='LC155'> <span class="p">}</span></div><div class='line' id='LC156'> <span class="kd">var</span> <span class="nx">i</span><span class="p">,</span> <span class="nx">ilen</span><span class="p">,</span> <span class="nx">schema</span> <span class="o">=</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">getSchema</span><span class="p">();</span></div><div class='line' id='LC157'> <span class="nx">priv</span><span class="p">.</span><span class="nx">colToProp</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC158'> <span class="nx">priv</span><span class="p">.</span><span class="nx">propToCol</span> <span class="o">=</span> <span class="p">{};</span></div><div class='line' id='LC159'> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">columns</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC160'> <span class="k">for</span> <span class="p">(</span><span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">ilen</span> <span class="o">=</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">columns</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">ilen</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC161'> <span class="nx">priv</span><span class="p">.</span><span class="nx">colToProp</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">=</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">columns</span><span class="p">[</span><span class="nx">i</span><span class="p">].</span><span class="nx">data</span><span class="p">;</span></div><div class='line' id='LC162'> <span class="nx">priv</span><span class="p">.</span><span class="nx">propToCol</span><span class="p">[</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">columns</span><span class="p">[</span><span class="nx">i</span><span class="p">].</span><span class="nx">data</span><span class="p">]</span> <span class="o">=</span> <span class="nx">i</span><span class="p">;</span></div><div class='line' id='LC163'> <span class="p">}</span></div><div class='line' id='LC164'> <span class="p">}</span></div><div class='line' id='LC165'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC166'> <span class="nx">datamap</span><span class="p">.</span><span class="nx">recursiveDuckColumns</span><span class="p">(</span><span class="nx">schema</span><span class="p">);</span></div><div class='line' id='LC167'> <span class="p">}</span></div><div class='line' id='LC168'> <span class="p">},</span></div><div class='line' id='LC169'><br/></div><div class='line' id='LC170'> <span class="nx">colToProp</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">col</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC171'> <span class="nx">col</span> <span class="o">=</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="s1">'modifyCol'</span><span class="p">,</span> <span class="nx">col</span><span class="p">);</span></div><div class='line' id='LC172'> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">colToProp</span> <span class="o">&&</span> <span class="k">typeof</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">colToProp</span><span class="p">[</span><span class="nx">col</span><span class="p">]</span> <span class="o">!==</span> <span class="s1">'undefined'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC173'> <span class="k">return</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">colToProp</span><span class="p">[</span><span class="nx">col</span><span class="p">];</span></div><div class='line' id='LC174'> <span class="p">}</span></div><div class='line' id='LC175'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC176'> <span class="k">return</span> <span class="nx">col</span><span class="p">;</span></div><div class='line' id='LC177'> <span class="p">}</span></div><div class='line' id='LC178'> <span class="p">},</span></div><div class='line' id='LC179'><br/></div><div class='line' id='LC180'> <span class="nx">propToCol</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">prop</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC181'> <span class="kd">var</span> <span class="nx">col</span><span class="p">;</span></div><div class='line' id='LC182'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">propToCol</span><span class="p">[</span><span class="nx">prop</span><span class="p">]</span> <span class="o">!==</span> <span class="s1">'undefined'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC183'> <span class="nx">col</span> <span class="o">=</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">propToCol</span><span class="p">[</span><span class="nx">prop</span><span class="p">];</span></div><div class='line' id='LC184'> <span class="p">}</span></div><div class='line' id='LC185'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC186'> <span class="nx">col</span> <span class="o">=</span> <span class="nx">prop</span><span class="p">;</span></div><div class='line' id='LC187'> <span class="p">}</span></div><div class='line' id='LC188'> <span class="nx">col</span> <span class="o">=</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="s1">'modifyCol'</span><span class="p">,</span> <span class="nx">col</span><span class="p">);</span></div><div class='line' id='LC189'> <span class="k">return</span> <span class="nx">col</span><span class="p">;</span></div><div class='line' id='LC190'> <span class="p">},</span></div><div class='line' id='LC191'><br/></div><div class='line' id='LC192'> <span class="nx">getSchema</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC193'> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">dataSchema</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC194'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">dataSchema</span> <span class="o">===</span> <span class="s1">'function'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC195'> <span class="k">return</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">dataSchema</span><span class="p">();</span></div><div class='line' id='LC196'> <span class="p">}</span></div><div class='line' id='LC197'> <span class="k">return</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">dataSchema</span><span class="p">;</span></div><div class='line' id='LC198'> <span class="p">}</span></div><div class='line' id='LC199'> <span class="k">return</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">duckDataSchema</span><span class="p">;</span></div><div class='line' id='LC200'> <span class="p">},</span></div><div class='line' id='LC201'><br/></div><div class='line' id='LC202'> <span class="cm">/**</span></div><div class='line' id='LC203'><span class="cm"> * Creates row at the bottom of the data array</span></div><div class='line' id='LC204'><span class="cm"> * @param {Number} [index] Optional. Index of the row before which the new row will be inserted</span></div><div class='line' id='LC205'><span class="cm"> */</span></div><div class='line' id='LC206'> <span class="nx">createRow</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">index</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC207'> <span class="kd">var</span> <span class="nx">row</span></div><div class='line' id='LC208'> <span class="p">,</span> <span class="nx">rowCount</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countRows</span><span class="p">();</span></div><div class='line' id='LC209'><br/></div><div class='line' id='LC210'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">index</span> <span class="o">!==</span> <span class="s1">'number'</span> <span class="o">||</span> <span class="nx">index</span> <span class="o">>=</span> <span class="nx">rowCount</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC211'> <span class="nx">index</span> <span class="o">=</span> <span class="nx">rowCount</span><span class="p">;</span></div><div class='line' id='LC212'> <span class="p">}</span></div><div class='line' id='LC213'><br/></div><div class='line' id='LC214'> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">dataType</span> <span class="o">===</span> <span class="s1">'array'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC215'> <span class="nx">row</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC216'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">c</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">clen</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countCols</span><span class="p">();</span> <span class="nx">c</span> <span class="o"><</span> <span class="nx">clen</span><span class="p">;</span> <span class="nx">c</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC217'> <span class="nx">row</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="kc">null</span><span class="p">);</span></div><div class='line' id='LC218'> <span class="p">}</span></div><div class='line' id='LC219'> <span class="p">}</span></div><div class='line' id='LC220'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">dataType</span> <span class="o">===</span> <span class="s1">'function'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC221'> <span class="nx">row</span> <span class="o">=</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">dataSchema</span><span class="p">(</span><span class="nx">index</span><span class="p">);</span></div><div class='line' id='LC222'> <span class="p">}</span></div><div class='line' id='LC223'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC224'> <span class="nx">row</span> <span class="o">=</span> <span class="nx">$</span><span class="p">.</span><span class="nx">extend</span><span class="p">(</span><span class="kc">true</span><span class="p">,</span> <span class="p">{},</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">getSchema</span><span class="p">());</span></div><div class='line' id='LC225'> <span class="p">}</span></div><div class='line' id='LC226'><br/></div><div class='line' id='LC227'> <span class="k">if</span> <span class="p">(</span><span class="nx">index</span> <span class="o">===</span> <span class="nx">rowCount</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC228'> <span class="nx">GridSettings</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">data</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">row</span><span class="p">);</span></div><div class='line' id='LC229'> <span class="p">}</span></div><div class='line' id='LC230'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC231'> <span class="nx">GridSettings</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">data</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="nx">index</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">row</span><span class="p">);</span></div><div class='line' id='LC232'> <span class="p">}</span></div><div class='line' id='LC233'><br/></div><div class='line' id='LC234'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'afterCreateRow'</span><span class="p">,</span> <span class="nx">index</span><span class="p">);</span></div><div class='line' id='LC235'> <span class="nx">instance</span><span class="p">.</span><span class="nx">forceFullRender</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span> <span class="c1">//used when data was changed</span></div><div class='line' id='LC236'> <span class="p">},</span></div><div class='line' id='LC237'><br/></div><div class='line' id='LC238'> <span class="cm">/**</span></div><div class='line' id='LC239'><span class="cm"> * Creates col at the right of the data array</span></div><div class='line' id='LC240'><span class="cm"> * @param {Object} [index] Optional. Index of the column before which the new column will be inserted</span></div><div class='line' id='LC241'><span class="cm"> */</span></div><div class='line' id='LC242'> <span class="nx">createCol</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">index</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC243'> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">dataType</span> <span class="o">===</span> <span class="s1">'object'</span> <span class="o">||</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">columns</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC244'> <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s2">"Cannot create new column. When data source in an object, you can only have as much columns as defined in first data row, data schema or in the 'columns' setting"</span><span class="p">);</span></div><div class='line' id='LC245'> <span class="p">}</span></div><div class='line' id='LC246'> <span class="kd">var</span> <span class="nx">r</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">rlen</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countRows</span><span class="p">()</span></div><div class='line' id='LC247'> <span class="p">,</span> <span class="nx">data</span> <span class="o">=</span> <span class="nx">GridSettings</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">data</span></div><div class='line' id='LC248'> <span class="p">,</span> <span class="nx">constructor</span> <span class="o">=</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">columnFactory</span><span class="p">(</span><span class="nx">GridSettings</span><span class="p">,</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">columnsSettingConflicts</span><span class="p">,</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">TextCell</span><span class="p">);</span></div><div class='line' id='LC249'><br/></div><div class='line' id='LC250'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">index</span> <span class="o">!==</span> <span class="s1">'number'</span> <span class="o">||</span> <span class="nx">index</span> <span class="o">>=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countCols</span><span class="p">())</span> <span class="p">{</span></div><div class='line' id='LC251'> <span class="k">for</span> <span class="p">(;</span> <span class="nx">r</span> <span class="o"><</span> <span class="nx">rlen</span><span class="p">;</span> <span class="nx">r</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC252'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">data</span><span class="p">[</span><span class="nx">r</span><span class="p">]</span> <span class="o">===</span> <span class="s1">'undefined'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC253'> <span class="nx">data</span><span class="p">[</span><span class="nx">r</span><span class="p">]</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC254'> <span class="p">}</span></div><div class='line' id='LC255'> <span class="nx">data</span><span class="p">[</span><span class="nx">r</span><span class="p">].</span><span class="nx">push</span><span class="p">(</span><span class="kc">null</span><span class="p">);</span></div><div class='line' id='LC256'> <span class="p">}</span></div><div class='line' id='LC257'> <span class="c1">// Add new column constructor</span></div><div class='line' id='LC258'> <span class="nx">priv</span><span class="p">.</span><span class="nx">columnSettings</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">constructor</span><span class="p">);</span></div><div class='line' id='LC259'> <span class="p">}</span></div><div class='line' id='LC260'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC261'> <span class="k">for</span> <span class="p">(;</span> <span class="nx">r</span> <span class="o"><</span> <span class="nx">rlen</span><span class="p">;</span> <span class="nx">r</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC262'> <span class="nx">data</span><span class="p">[</span><span class="nx">r</span><span class="p">].</span><span class="nx">splice</span><span class="p">(</span><span class="nx">index</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="kc">null</span><span class="p">);</span></div><div class='line' id='LC263'> <span class="p">}</span></div><div class='line' id='LC264'> <span class="c1">// Add new column constructor at given index</span></div><div class='line' id='LC265'> <span class="nx">priv</span><span class="p">.</span><span class="nx">columnSettings</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="nx">index</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">constructor</span><span class="p">);</span></div><div class='line' id='LC266'> <span class="p">}</span></div><div class='line' id='LC267'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'afterCreateCol'</span><span class="p">,</span> <span class="nx">index</span><span class="p">);</span></div><div class='line' id='LC268'> <span class="nx">instance</span><span class="p">.</span><span class="nx">forceFullRender</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span> <span class="c1">//used when data was changed</span></div><div class='line' id='LC269'> <span class="p">},</span></div><div class='line' id='LC270'><br/></div><div class='line' id='LC271'> <span class="cm">/**</span></div><div class='line' id='LC272'><span class="cm"> * Removes row from the data array</span></div><div class='line' id='LC273'><span class="cm"> * @param {Number} [index] Optional. Index of the row to be removed. If not provided, the last row will be removed</span></div><div class='line' id='LC274'><span class="cm"> * @param {Number} [amount] Optional. Amount of the rows to be removed. If not provided, one row will be removed</span></div><div class='line' id='LC275'><span class="cm"> */</span></div><div class='line' id='LC276'> <span class="nx">removeRow</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">index</span><span class="p">,</span> <span class="nx">amount</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC277'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">amount</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC278'> <span class="nx">amount</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC279'> <span class="p">}</span></div><div class='line' id='LC280'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">index</span> <span class="o">!==</span> <span class="s1">'number'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC281'> <span class="nx">index</span> <span class="o">=</span> <span class="o">-</span><span class="nx">amount</span><span class="p">;</span></div><div class='line' id='LC282'> <span class="p">}</span></div><div class='line' id='LC283'><br/></div><div class='line' id='LC284'> <span class="c1">// We have to map the physical row ids to logical and than perform removing with (possibly) new row id</span></div><div class='line' id='LC285'> <span class="kd">var</span> <span class="nx">logicRows</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">physicalRowsToLogical</span><span class="p">(</span><span class="nx">index</span><span class="p">,</span> <span class="nx">amount</span><span class="p">);</span></div><div class='line' id='LC286'><br/></div><div class='line' id='LC287'> <span class="nx">GridSettings</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">data</span> <span class="o">=</span> <span class="nx">GridSettings</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">data</span><span class="p">.</span><span class="nx">filter</span><span class="p">(</span><span class="kd">function</span> <span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">index</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC288'> <span class="k">return</span> <span class="nx">logicRows</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="nx">index</span><span class="p">)</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC289'> <span class="p">});</span></div><div class='line' id='LC290'><br/></div><div class='line' id='LC291'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'afterRemoveRow'</span><span class="p">,</span> <span class="nx">index</span><span class="p">,</span> <span class="nx">amount</span><span class="p">);</span></div><div class='line' id='LC292'><br/></div><div class='line' id='LC293'> <span class="nx">instance</span><span class="p">.</span><span class="nx">forceFullRender</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span> <span class="c1">//used when data was changed</span></div><div class='line' id='LC294'> <span class="p">},</span></div><div class='line' id='LC295'><br/></div><div class='line' id='LC296'> <span class="cm">/**</span></div><div class='line' id='LC297'><span class="cm"> * Removes column from the data array</span></div><div class='line' id='LC298'><span class="cm"> * @param {Number} [index] Optional. Index of the column to be removed. If not provided, the last column will be removed</span></div><div class='line' id='LC299'><span class="cm"> * @param {Number} [amount] Optional. Amount of the columns to be removed. If not provided, one column will be removed</span></div><div class='line' id='LC300'><span class="cm"> */</span></div><div class='line' id='LC301'> <span class="nx">removeCol</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">index</span><span class="p">,</span> <span class="nx">amount</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC302'> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">dataType</span> <span class="o">===</span> <span class="s1">'object'</span> <span class="o">||</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">columns</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC303'> <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s2">"cannot remove column with object data source or columns option specified"</span><span class="p">);</span></div><div class='line' id='LC304'> <span class="p">}</span></div><div class='line' id='LC305'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">amount</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC306'> <span class="nx">amount</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC307'> <span class="p">}</span></div><div class='line' id='LC308'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">index</span> <span class="o">!==</span> <span class="s1">'number'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC309'> <span class="nx">index</span> <span class="o">=</span> <span class="o">-</span><span class="nx">amount</span><span class="p">;</span></div><div class='line' id='LC310'> <span class="p">}</span></div><div class='line' id='LC311'> <span class="kd">var</span> <span class="nx">data</span> <span class="o">=</span> <span class="nx">GridSettings</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">data</span><span class="p">;</span></div><div class='line' id='LC312'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">r</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">rlen</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countRows</span><span class="p">();</span> <span class="nx">r</span> <span class="o"><</span> <span class="nx">rlen</span><span class="p">;</span> <span class="nx">r</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC313'> <span class="nx">data</span><span class="p">[</span><span class="nx">r</span><span class="p">].</span><span class="nx">splice</span><span class="p">(</span><span class="nx">index</span><span class="p">,</span> <span class="nx">amount</span><span class="p">);</span></div><div class='line' id='LC314'> <span class="p">}</span></div><div class='line' id='LC315'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'afterRemoveCol'</span><span class="p">,</span> <span class="nx">index</span><span class="p">,</span> <span class="nx">amount</span><span class="p">);</span></div><div class='line' id='LC316'> <span class="nx">priv</span><span class="p">.</span><span class="nx">columnSettings</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="nx">index</span><span class="p">,</span> <span class="nx">amount</span><span class="p">);</span></div><div class='line' id='LC317'> <span class="nx">instance</span><span class="p">.</span><span class="nx">forceFullRender</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span> <span class="c1">//used when data was changed</span></div><div class='line' id='LC318'> <span class="p">},</span></div><div class='line' id='LC319'><br/></div><div class='line' id='LC320'> <span class="cm">/**</span></div><div class='line' id='LC321'><span class="cm"> * Add / removes data from the column</span></div><div class='line' id='LC322'><span class="cm"> * @param {Number} col Index of column in which do you want to do splice.</span></div><div class='line' id='LC323'><span class="cm"> * @param {Number} index Index at which to start changing the array. If negative, will begin that many elements from the end</span></div><div class='line' id='LC324'><span class="cm"> * @param {Number} amount An integer indicating the number of old array elements to remove. If amount is 0, no elements are removed</span></div><div class='line' id='LC325'><span class="cm"> * param {...*} elements Optional. The elements to add to the array. If you don't specify any elements, spliceCol simply removes elements from the array</span></div><div class='line' id='LC326'><span class="cm"> */</span></div><div class='line' id='LC327'> <span class="nx">spliceCol</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">col</span><span class="p">,</span> <span class="nx">index</span><span class="p">,</span> <span class="nx">amount</span><span class="cm">/*, elements...*/</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC328'> <span class="kd">var</span> <span class="nx">elements</span> <span class="o">=</span> <span class="mi">4</span> <span class="o"><=</span> <span class="nx">arguments</span><span class="p">.</span><span class="nx">length</span> <span class="o">?</span> <span class="p">[].</span><span class="nx">slice</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">arguments</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span> <span class="o">:</span> <span class="p">[];</span></div><div class='line' id='LC329'><br/></div><div class='line' id='LC330'> <span class="kd">var</span> <span class="nx">colData</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getDataAtCol</span><span class="p">(</span><span class="nx">col</span><span class="p">);</span></div><div class='line' id='LC331'> <span class="kd">var</span> <span class="nx">removed</span> <span class="o">=</span> <span class="nx">colData</span><span class="p">.</span><span class="nx">slice</span><span class="p">(</span><span class="nx">index</span><span class="p">,</span> <span class="nx">index</span> <span class="o">+</span> <span class="nx">amount</span><span class="p">);</span></div><div class='line' id='LC332'> <span class="kd">var</span> <span class="nx">after</span> <span class="o">=</span> <span class="nx">colData</span><span class="p">.</span><span class="nx">slice</span><span class="p">(</span><span class="nx">index</span> <span class="o">+</span> <span class="nx">amount</span><span class="p">);</span></div><div class='line' id='LC333'><br/></div><div class='line' id='LC334'> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">extendArray</span><span class="p">(</span><span class="nx">elements</span><span class="p">,</span> <span class="nx">after</span><span class="p">);</span></div><div class='line' id='LC335'> <span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC336'> <span class="k">while</span> <span class="p">(</span><span class="nx">i</span> <span class="o"><</span> <span class="nx">amount</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC337'> <span class="nx">elements</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="kc">null</span><span class="p">);</span> <span class="c1">//add null in place of removed elements</span></div><div class='line' id='LC338'> <span class="nx">i</span><span class="o">++</span><span class="p">;</span></div><div class='line' id='LC339'> <span class="p">}</span></div><div class='line' id='LC340'> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">to2dArray</span><span class="p">(</span><span class="nx">elements</span><span class="p">);</span></div><div class='line' id='LC341'> <span class="nx">instance</span><span class="p">.</span><span class="nx">populateFromArray</span><span class="p">(</span><span class="nx">index</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">elements</span><span class="p">,</span> <span class="kc">null</span><span class="p">,</span> <span class="kc">null</span><span class="p">,</span> <span class="s1">'spliceCol'</span><span class="p">);</span></div><div class='line' id='LC342'><br/></div><div class='line' id='LC343'> <span class="k">return</span> <span class="nx">removed</span><span class="p">;</span></div><div class='line' id='LC344'> <span class="p">},</span></div><div class='line' id='LC345'><br/></div><div class='line' id='LC346'> <span class="cm">/**</span></div><div class='line' id='LC347'><span class="cm"> * Add / removes data from the row</span></div><div class='line' id='LC348'><span class="cm"> * @param {Number} row Index of row in which do you want to do splice.</span></div><div class='line' id='LC349'><span class="cm"> * @param {Number} index Index at which to start changing the array. If negative, will begin that many elements from the end</span></div><div class='line' id='LC350'><span class="cm"> * @param {Number} amount An integer indicating the number of old array elements to remove. If amount is 0, no elements are removed</span></div><div class='line' id='LC351'><span class="cm"> * param {...*} elements Optional. The elements to add to the array. If you don't specify any elements, spliceCol simply removes elements from the array</span></div><div class='line' id='LC352'><span class="cm"> */</span></div><div class='line' id='LC353'> <span class="nx">spliceRow</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">index</span><span class="p">,</span> <span class="nx">amount</span><span class="cm">/*, elements...*/</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC354'> <span class="kd">var</span> <span class="nx">elements</span> <span class="o">=</span> <span class="mi">4</span> <span class="o"><=</span> <span class="nx">arguments</span><span class="p">.</span><span class="nx">length</span> <span class="o">?</span> <span class="p">[].</span><span class="nx">slice</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">arguments</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span> <span class="o">:</span> <span class="p">[];</span></div><div class='line' id='LC355'><br/></div><div class='line' id='LC356'> <span class="kd">var</span> <span class="nx">rowData</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getDataAtRow</span><span class="p">(</span><span class="nx">row</span><span class="p">);</span></div><div class='line' id='LC357'> <span class="kd">var</span> <span class="nx">removed</span> <span class="o">=</span> <span class="nx">rowData</span><span class="p">.</span><span class="nx">slice</span><span class="p">(</span><span class="nx">index</span><span class="p">,</span> <span class="nx">index</span> <span class="o">+</span> <span class="nx">amount</span><span class="p">);</span></div><div class='line' id='LC358'> <span class="kd">var</span> <span class="nx">after</span> <span class="o">=</span> <span class="nx">rowData</span><span class="p">.</span><span class="nx">slice</span><span class="p">(</span><span class="nx">index</span> <span class="o">+</span> <span class="nx">amount</span><span class="p">);</span></div><div class='line' id='LC359'><br/></div><div class='line' id='LC360'> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">extendArray</span><span class="p">(</span><span class="nx">elements</span><span class="p">,</span> <span class="nx">after</span><span class="p">);</span></div><div class='line' id='LC361'> <span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC362'> <span class="k">while</span> <span class="p">(</span><span class="nx">i</span> <span class="o"><</span> <span class="nx">amount</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC363'> <span class="nx">elements</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="kc">null</span><span class="p">);</span> <span class="c1">//add null in place of removed elements</span></div><div class='line' id='LC364'> <span class="nx">i</span><span class="o">++</span><span class="p">;</span></div><div class='line' id='LC365'> <span class="p">}</span></div><div class='line' id='LC366'> <span class="nx">instance</span><span class="p">.</span><span class="nx">populateFromArray</span><span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">index</span><span class="p">,</span> <span class="p">[</span><span class="nx">elements</span><span class="p">],</span> <span class="kc">null</span><span class="p">,</span> <span class="kc">null</span><span class="p">,</span> <span class="s1">'spliceRow'</span><span class="p">);</span></div><div class='line' id='LC367'><br/></div><div class='line' id='LC368'> <span class="k">return</span> <span class="nx">removed</span><span class="p">;</span></div><div class='line' id='LC369'> <span class="p">},</span></div><div class='line' id='LC370'><br/></div><div class='line' id='LC371'> <span class="cm">/**</span></div><div class='line' id='LC372'><span class="cm"> * Returns single value from the data array</span></div><div class='line' id='LC373'><span class="cm"> * @param {Number} row</span></div><div class='line' id='LC374'><span class="cm"> * @param {Number} prop</span></div><div class='line' id='LC375'><span class="cm"> */</span></div><div class='line' id='LC376'> <span class="nx">getVars</span><span class="o">:</span> <span class="p">{},</span></div><div class='line' id='LC377'> <span class="nx">get</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">prop</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC378'> <span class="nx">datamap</span><span class="p">.</span><span class="nx">getVars</span><span class="p">.</span><span class="nx">row</span> <span class="o">=</span> <span class="nx">row</span><span class="p">;</span></div><div class='line' id='LC379'> <span class="nx">datamap</span><span class="p">.</span><span class="nx">getVars</span><span class="p">.</span><span class="nx">prop</span> <span class="o">=</span> <span class="nx">prop</span><span class="p">;</span></div><div class='line' id='LC380'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'beforeGet'</span><span class="p">,</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">getVars</span><span class="p">);</span></div><div class='line' id='LC381'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">getVars</span><span class="p">.</span><span class="nx">prop</span> <span class="o">===</span> <span class="s1">'string'</span> <span class="o">&&</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">getVars</span><span class="p">.</span><span class="nx">prop</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="s1">'.'</span><span class="p">)</span> <span class="o">></span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC382'> <span class="kd">var</span> <span class="nx">sliced</span> <span class="o">=</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">getVars</span><span class="p">.</span><span class="nx">prop</span><span class="p">.</span><span class="nx">split</span><span class="p">(</span><span class="s2">"."</span><span class="p">);</span></div><div class='line' id='LC383'> <span class="kd">var</span> <span class="nx">out</span> <span class="o">=</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">data</span><span class="p">[</span><span class="nx">datamap</span><span class="p">.</span><span class="nx">getVars</span><span class="p">.</span><span class="nx">row</span><span class="p">];</span></div><div class='line' id='LC384'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">out</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC385'> <span class="k">return</span> <span class="kc">null</span><span class="p">;</span></div><div class='line' id='LC386'> <span class="p">}</span></div><div class='line' id='LC387'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">ilen</span> <span class="o">=</span> <span class="nx">sliced</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">ilen</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC388'> <span class="nx">out</span> <span class="o">=</span> <span class="nx">out</span><span class="p">[</span><span class="nx">sliced</span><span class="p">[</span><span class="nx">i</span><span class="p">]];</span></div><div class='line' id='LC389'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">out</span> <span class="o">===</span> <span class="s1">'undefined'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC390'> <span class="k">return</span> <span class="kc">null</span><span class="p">;</span></div><div class='line' id='LC391'> <span class="p">}</span></div><div class='line' id='LC392'> <span class="p">}</span></div><div class='line' id='LC393'> <span class="k">return</span> <span class="nx">out</span><span class="p">;</span></div><div class='line' id='LC394'> <span class="p">}</span></div><div class='line' id='LC395'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">getVars</span><span class="p">.</span><span class="nx">prop</span> <span class="o">===</span> <span class="s1">'function'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC396'> <span class="cm">/**</span></div><div class='line' id='LC397'><span class="cm"> * allows for interacting with complex structures, for example</span></div><div class='line' id='LC398'><span class="cm"> * d3/jQuery getter/setter properties:</span></div><div class='line' id='LC399'><span class="cm"> *</span></div><div class='line' id='LC400'><span class="cm"> * {columns: [{</span></div><div class='line' id='LC401'><span class="cm"> * data: function(row, value){</span></div><div class='line' id='LC402'><span class="cm"> * if(arguments.length === 1){</span></div><div class='line' id='LC403'><span class="cm"> * return row.property();</span></div><div class='line' id='LC404'><span class="cm"> * }</span></div><div class='line' id='LC405'><span class="cm"> * row.property(value);</span></div><div class='line' id='LC406'><span class="cm"> * }</span></div><div class='line' id='LC407'><span class="cm"> * }]}</span></div><div class='line' id='LC408'><span class="cm"> */</span></div><div class='line' id='LC409'> <span class="k">return</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">getVars</span><span class="p">.</span><span class="nx">prop</span><span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">data</span><span class="p">.</span><span class="nx">slice</span><span class="p">(</span></div><div class='line' id='LC410'> <span class="nx">datamap</span><span class="p">.</span><span class="nx">getVars</span><span class="p">.</span><span class="nx">row</span><span class="p">,</span></div><div class='line' id='LC411'> <span class="nx">datamap</span><span class="p">.</span><span class="nx">getVars</span><span class="p">.</span><span class="nx">row</span> <span class="o">+</span> <span class="mi">1</span></div><div class='line' id='LC412'> <span class="p">)[</span><span class="mi">0</span><span class="p">]);</span></div><div class='line' id='LC413'> <span class="p">}</span></div><div class='line' id='LC414'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC415'> <span class="k">return</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">data</span><span class="p">[</span><span class="nx">datamap</span><span class="p">.</span><span class="nx">getVars</span><span class="p">.</span><span class="nx">row</span><span class="p">]</span> <span class="o">?</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">data</span><span class="p">[</span><span class="nx">datamap</span><span class="p">.</span><span class="nx">getVars</span><span class="p">.</span><span class="nx">row</span><span class="p">][</span><span class="nx">datamap</span><span class="p">.</span><span class="nx">getVars</span><span class="p">.</span><span class="nx">prop</span><span class="p">]</span> <span class="o">:</span> <span class="kc">null</span><span class="p">;</span></div><div class='line' id='LC416'> <span class="p">}</span></div><div class='line' id='LC417'> <span class="p">},</span></div><div class='line' id='LC418'><br/></div><div class='line' id='LC419'> <span class="cm">/**</span></div><div class='line' id='LC420'><span class="cm"> * Saves single value to the data array</span></div><div class='line' id='LC421'><span class="cm"> * @param {Number} row</span></div><div class='line' id='LC422'><span class="cm"> * @param {Number} prop</span></div><div class='line' id='LC423'><span class="cm"> * @param {String} value</span></div><div class='line' id='LC424'><span class="cm"> * @param {String} [source] Optional. Source of hook runner.</span></div><div class='line' id='LC425'><span class="cm"> */</span></div><div class='line' id='LC426'> <span class="nx">setVars</span><span class="o">:</span> <span class="p">{},</span></div><div class='line' id='LC427'> <span class="nx">set</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="nx">source</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC428'> <span class="nx">datamap</span><span class="p">.</span><span class="nx">setVars</span><span class="p">.</span><span class="nx">row</span> <span class="o">=</span> <span class="nx">row</span><span class="p">;</span></div><div class='line' id='LC429'> <span class="nx">datamap</span><span class="p">.</span><span class="nx">setVars</span><span class="p">.</span><span class="nx">prop</span> <span class="o">=</span> <span class="nx">prop</span><span class="p">;</span></div><div class='line' id='LC430'> <span class="nx">datamap</span><span class="p">.</span><span class="nx">setVars</span><span class="p">.</span><span class="nx">value</span> <span class="o">=</span> <span class="nx">value</span><span class="p">;</span></div><div class='line' id='LC431'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'beforeSet'</span><span class="p">,</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">setVars</span><span class="p">,</span> <span class="nx">source</span> <span class="o">||</span> <span class="s2">"datamapGet"</span><span class="p">);</span></div><div class='line' id='LC432'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">setVars</span><span class="p">.</span><span class="nx">prop</span> <span class="o">===</span> <span class="s1">'string'</span> <span class="o">&&</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">setVars</span><span class="p">.</span><span class="nx">prop</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="s1">'.'</span><span class="p">)</span> <span class="o">></span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC433'> <span class="kd">var</span> <span class="nx">sliced</span> <span class="o">=</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">setVars</span><span class="p">.</span><span class="nx">prop</span><span class="p">.</span><span class="nx">split</span><span class="p">(</span><span class="s2">"."</span><span class="p">);</span></div><div class='line' id='LC434'> <span class="kd">var</span> <span class="nx">out</span> <span class="o">=</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">data</span><span class="p">[</span><span class="nx">datamap</span><span class="p">.</span><span class="nx">setVars</span><span class="p">.</span><span class="nx">row</span><span class="p">];</span></div><div class='line' id='LC435'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">ilen</span> <span class="o">=</span> <span class="nx">sliced</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">ilen</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC436'> <span class="nx">out</span> <span class="o">=</span> <span class="nx">out</span><span class="p">[</span><span class="nx">sliced</span><span class="p">[</span><span class="nx">i</span><span class="p">]];</span></div><div class='line' id='LC437'> <span class="p">}</span></div><div class='line' id='LC438'> <span class="nx">out</span><span class="p">[</span><span class="nx">sliced</span><span class="p">[</span><span class="nx">i</span><span class="p">]]</span> <span class="o">=</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">setVars</span><span class="p">.</span><span class="nx">value</span><span class="p">;</span></div><div class='line' id='LC439'> <span class="p">}</span></div><div class='line' id='LC440'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">setVars</span><span class="p">.</span><span class="nx">prop</span> <span class="o">===</span> <span class="s1">'function'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC441'> <span class="cm">/* see the `function` handler in `get` */</span></div><div class='line' id='LC442'> <span class="nx">datamap</span><span class="p">.</span><span class="nx">setVars</span><span class="p">.</span><span class="nx">prop</span><span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">data</span><span class="p">.</span><span class="nx">slice</span><span class="p">(</span></div><div class='line' id='LC443'> <span class="nx">datamap</span><span class="p">.</span><span class="nx">setVars</span><span class="p">.</span><span class="nx">row</span><span class="p">,</span></div><div class='line' id='LC444'> <span class="nx">datamap</span><span class="p">.</span><span class="nx">setVars</span><span class="p">.</span><span class="nx">row</span> <span class="o">+</span> <span class="mi">1</span></div><div class='line' id='LC445'> <span class="p">)[</span><span class="mi">0</span><span class="p">],</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">setVars</span><span class="p">.</span><span class="nx">value</span><span class="p">);</span></div><div class='line' id='LC446'> <span class="p">}</span></div><div class='line' id='LC447'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC448'> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">data</span><span class="p">[</span><span class="nx">datamap</span><span class="p">.</span><span class="nx">setVars</span><span class="p">.</span><span class="nx">row</span><span class="p">][</span><span class="nx">datamap</span><span class="p">.</span><span class="nx">setVars</span><span class="p">.</span><span class="nx">prop</span><span class="p">]</span> <span class="o">=</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">setVars</span><span class="p">.</span><span class="nx">value</span><span class="p">;</span></div><div class='line' id='LC449'> <span class="p">}</span></div><div class='line' id='LC450'> <span class="p">},</span></div><div class='line' id='LC451'> <span class="cm">/**</span></div><div class='line' id='LC452'><span class="cm"> * This ridiculous piece of code maps rows Id that are present in table data to those displayed for user.</span></div><div class='line' id='LC453'><span class="cm"> * The trick is, the physical row id (stored in settings.data) is not necessary the same</span></div><div class='line' id='LC454'><span class="cm"> * as the logical (displayed) row id (e.g. when sorting is applied).</span></div><div class='line' id='LC455'><span class="cm"> */</span></div><div class='line' id='LC456'> <span class="nx">physicalRowsToLogical</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">index</span><span class="p">,</span> <span class="nx">amount</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC457'> <span class="kd">var</span> <span class="nx">physicRow</span> <span class="o">=</span> <span class="p">(</span><span class="nx">GridSettings</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">data</span><span class="p">.</span><span class="nx">length</span> <span class="o">+</span> <span class="nx">index</span><span class="p">)</span> <span class="o">%</span> <span class="nx">GridSettings</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">data</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span></div><div class='line' id='LC458'> <span class="kd">var</span> <span class="nx">logicRows</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC459'> <span class="kd">var</span> <span class="nx">rowsToRemove</span> <span class="o">=</span> <span class="nx">amount</span><span class="p">;</span></div><div class='line' id='LC460'><br/></div><div class='line' id='LC461'> <span class="k">while</span> <span class="p">(</span><span class="nx">physicRow</span> <span class="o"><</span> <span class="nx">GridSettings</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">data</span><span class="p">.</span><span class="nx">length</span> <span class="o">&&</span> <span class="nx">rowsToRemove</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC462'> <span class="k">this</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">physicRow</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span> <span class="c1">//this performs an actual mapping and saves the result to getVars</span></div><div class='line' id='LC463'> <span class="nx">logicRows</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">getVars</span><span class="p">.</span><span class="nx">row</span><span class="p">);</span></div><div class='line' id='LC464'><br/></div><div class='line' id='LC465'> <span class="nx">rowsToRemove</span><span class="o">--</span><span class="p">;</span></div><div class='line' id='LC466'> <span class="nx">physicRow</span><span class="o">++</span><span class="p">;</span></div><div class='line' id='LC467'> <span class="p">}</span></div><div class='line' id='LC468'><br/></div><div class='line' id='LC469'> <span class="k">return</span> <span class="nx">logicRows</span><span class="p">;</span></div><div class='line' id='LC470'> <span class="p">},</span></div><div class='line' id='LC471'><br/></div><div class='line' id='LC472'> <span class="cm">/**</span></div><div class='line' id='LC473'><span class="cm"> * Clears the data array</span></div><div class='line' id='LC474'><span class="cm"> */</span></div><div class='line' id='LC475'> <span class="nx">clear</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC476'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">r</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">r</span> <span class="o"><</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countRows</span><span class="p">();</span> <span class="nx">r</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC477'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">c</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">c</span> <span class="o"><</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countCols</span><span class="p">();</span> <span class="nx">c</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC478'> <span class="nx">datamap</span><span class="p">.</span><span class="nx">set</span><span class="p">(</span><span class="nx">r</span><span class="p">,</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">colToProp</span><span class="p">(</span><span class="nx">c</span><span class="p">),</span> <span class="s1">''</span><span class="p">);</span></div><div class='line' id='LC479'> <span class="p">}</span></div><div class='line' id='LC480'> <span class="p">}</span></div><div class='line' id='LC481'> <span class="p">},</span></div><div class='line' id='LC482'><br/></div><div class='line' id='LC483'> <span class="cm">/**</span></div><div class='line' id='LC484'><span class="cm"> * Returns the data array</span></div><div class='line' id='LC485'><span class="cm"> * @return {Array}</span></div><div class='line' id='LC486'><span class="cm"> */</span></div><div class='line' id='LC487'> <span class="nx">getAll</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC488'> <span class="k">return</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">data</span><span class="p">;</span></div><div class='line' id='LC489'> <span class="p">},</span></div><div class='line' id='LC490'><br/></div><div class='line' id='LC491'> <span class="cm">/**</span></div><div class='line' id='LC492'><span class="cm"> * Returns data range as array</span></div><div class='line' id='LC493'><span class="cm"> * @param {Object} start Start selection position</span></div><div class='line' id='LC494'><span class="cm"> * @param {Object} end End selection position</span></div><div class='line' id='LC495'><span class="cm"> * @return {Array}</span></div><div class='line' id='LC496'><span class="cm"> */</span></div><div class='line' id='LC497'> <span class="nx">getRange</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">start</span><span class="p">,</span> <span class="nx">end</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC498'> <span class="kd">var</span> <span class="nx">r</span><span class="p">,</span> <span class="nx">rlen</span><span class="p">,</span> <span class="nx">c</span><span class="p">,</span> <span class="nx">clen</span><span class="p">,</span> <span class="nx">output</span> <span class="o">=</span> <span class="p">[],</span> <span class="nx">row</span><span class="p">;</span></div><div class='line' id='LC499'> <span class="nx">rlen</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="nx">start</span><span class="p">.</span><span class="nx">row</span><span class="p">,</span> <span class="nx">end</span><span class="p">.</span><span class="nx">row</span><span class="p">);</span></div><div class='line' id='LC500'> <span class="nx">clen</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="nx">start</span><span class="p">.</span><span class="nx">col</span><span class="p">,</span> <span class="nx">end</span><span class="p">.</span><span class="nx">col</span><span class="p">);</span></div><div class='line' id='LC501'> <span class="k">for</span> <span class="p">(</span><span class="nx">r</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">min</span><span class="p">(</span><span class="nx">start</span><span class="p">.</span><span class="nx">row</span><span class="p">,</span> <span class="nx">end</span><span class="p">.</span><span class="nx">row</span><span class="p">);</span> <span class="nx">r</span> <span class="o"><=</span> <span class="nx">rlen</span><span class="p">;</span> <span class="nx">r</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC502'> <span class="nx">row</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC503'> <span class="k">for</span> <span class="p">(</span><span class="nx">c</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">min</span><span class="p">(</span><span class="nx">start</span><span class="p">.</span><span class="nx">col</span><span class="p">,</span> <span class="nx">end</span><span class="p">.</span><span class="nx">col</span><span class="p">);</span> <span class="nx">c</span> <span class="o"><=</span> <span class="nx">clen</span><span class="p">;</span> <span class="nx">c</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC504'> <span class="nx">row</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">datamap</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">r</span><span class="p">,</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">colToProp</span><span class="p">(</span><span class="nx">c</span><span class="p">)));</span></div><div class='line' id='LC505'> <span class="p">}</span></div><div class='line' id='LC506'> <span class="nx">output</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">row</span><span class="p">);</span></div><div class='line' id='LC507'> <span class="p">}</span></div><div class='line' id='LC508'> <span class="k">return</span> <span class="nx">output</span><span class="p">;</span></div><div class='line' id='LC509'> <span class="p">},</span></div><div class='line' id='LC510'><br/></div><div class='line' id='LC511'> <span class="cm">/**</span></div><div class='line' id='LC512'><span class="cm"> * Return data as text (tab separated columns)</span></div><div class='line' id='LC513'><span class="cm"> * @param {Object} start (Optional) Start selection position</span></div><div class='line' id='LC514'><span class="cm"> * @param {Object} end (Optional) End selection position</span></div><div class='line' id='LC515'><span class="cm"> * @return {String}</span></div><div class='line' id='LC516'><span class="cm"> */</span></div><div class='line' id='LC517'> <span class="nx">getText</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">start</span><span class="p">,</span> <span class="nx">end</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC518'> <span class="k">return</span> <span class="nx">SheetClip</span><span class="p">.</span><span class="nx">stringify</span><span class="p">(</span><span class="nx">datamap</span><span class="p">.</span><span class="nx">getRange</span><span class="p">(</span><span class="nx">start</span><span class="p">,</span> <span class="nx">end</span><span class="p">));</span></div><div class='line' id='LC519'> <span class="p">}</span></div><div class='line' id='LC520'> <span class="p">};</span></div><div class='line' id='LC521'><br/></div><div class='line' id='LC522'> <span class="nx">grid</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC523'> <span class="cm">/**</span></div><div class='line' id='LC524'><span class="cm"> * Inserts or removes rows and columns</span></div><div class='line' id='LC525'><span class="cm"> * @param {String} action Possible values: "insert_row", "insert_col", "remove_row", "remove_col"</span></div><div class='line' id='LC526'><span class="cm"> * @param {Number} index</span></div><div class='line' id='LC527'><span class="cm"> * @param {Number} amount</span></div><div class='line' id='LC528'><span class="cm"> * @param {String} [source] Optional. Source of hook runner.</span></div><div class='line' id='LC529'><span class="cm"> * @param {Boolean} [keepEmptyRows] Optional. Flag for preventing deletion of empty rows.</span></div><div class='line' id='LC530'><span class="cm"> */</span></div><div class='line' id='LC531'> <span class="nx">alter</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">action</span><span class="p">,</span> <span class="nx">index</span><span class="p">,</span> <span class="nx">amount</span><span class="p">,</span> <span class="nx">source</span><span class="p">,</span> <span class="nx">keepEmptyRows</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC532'> <span class="kd">var</span> <span class="nx">oldData</span><span class="p">,</span> <span class="nx">newData</span><span class="p">,</span> <span class="nx">changes</span><span class="p">,</span> <span class="nx">r</span><span class="p">,</span> <span class="nx">rlen</span><span class="p">,</span> <span class="nx">c</span><span class="p">,</span> <span class="nx">clen</span><span class="p">,</span> <span class="nx">delta</span><span class="p">;</span></div><div class='line' id='LC533'> <span class="nx">oldData</span> <span class="o">=</span> <span class="nx">$</span><span class="p">.</span><span class="nx">extend</span><span class="p">(</span><span class="kc">true</span><span class="p">,</span> <span class="p">[],</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">getAll</span><span class="p">());</span></div><div class='line' id='LC534'><br/></div><div class='line' id='LC535'> <span class="k">switch</span> <span class="p">(</span><span class="nx">action</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC536'> <span class="k">case</span> <span class="s2">"insert_row"</span><span class="o">:</span></div><div class='line' id='LC537'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">amount</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC538'> <span class="nx">amount</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC539'> <span class="p">}</span></div><div class='line' id='LC540'> <span class="nx">delta</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC541'> <span class="k">while</span> <span class="p">(</span><span class="nx">delta</span> <span class="o"><</span> <span class="nx">amount</span> <span class="o">&&</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countRows</span><span class="p">()</span> <span class="o"><</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">maxRows</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC542'> <span class="nx">datamap</span><span class="p">.</span><span class="nx">createRow</span><span class="p">(</span><span class="nx">index</span><span class="p">);</span></div><div class='line' id='LC543'> <span class="nx">delta</span><span class="o">++</span><span class="p">;</span></div><div class='line' id='LC544'> <span class="p">}</span></div><div class='line' id='LC545'> <span class="k">if</span> <span class="p">(</span><span class="nx">delta</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC546'> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">exists</span><span class="p">()</span> <span class="o">&&</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">row</span><span class="p">()</span> <span class="o">>=</span> <span class="nx">index</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC547'> <span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">row</span><span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">row</span><span class="p">()</span> <span class="o">+</span> <span class="nx">delta</span><span class="p">);</span></div><div class='line' id='LC548'> <span class="nx">selection</span><span class="p">.</span><span class="nx">transformEnd</span><span class="p">(</span><span class="nx">delta</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span> <span class="c1">//will call render() internally</span></div><div class='line' id='LC549'> <span class="p">}</span></div><div class='line' id='LC550'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC551'> <span class="nx">selection</span><span class="p">.</span><span class="nx">refreshBorders</span><span class="p">();</span> <span class="c1">//it will call render and prepare methods</span></div><div class='line' id='LC552'> <span class="p">}</span></div><div class='line' id='LC553'> <span class="p">}</span></div><div class='line' id='LC554'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC555'><br/></div><div class='line' id='LC556'> <span class="k">case</span> <span class="s2">"insert_col"</span><span class="o">:</span></div><div class='line' id='LC557'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">amount</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC558'> <span class="nx">amount</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC559'> <span class="p">}</span></div><div class='line' id='LC560'> <span class="nx">delta</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC561'> <span class="k">while</span> <span class="p">(</span><span class="nx">delta</span> <span class="o"><</span> <span class="nx">amount</span> <span class="o">&&</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countCols</span><span class="p">()</span> <span class="o"><</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">maxCols</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC562'> <span class="nx">datamap</span><span class="p">.</span><span class="nx">createCol</span><span class="p">(</span><span class="nx">index</span><span class="p">);</span></div><div class='line' id='LC563'> <span class="nx">delta</span><span class="o">++</span><span class="p">;</span></div><div class='line' id='LC564'> <span class="p">}</span></div><div class='line' id='LC565'> <span class="k">if</span> <span class="p">(</span><span class="nx">delta</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC566'> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">exists</span><span class="p">()</span> <span class="o">&&</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">col</span><span class="p">()</span> <span class="o">>=</span> <span class="nx">index</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC567'> <span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">col</span><span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">col</span><span class="p">()</span> <span class="o">+</span> <span class="nx">delta</span><span class="p">);</span></div><div class='line' id='LC568'> <span class="nx">selection</span><span class="p">.</span><span class="nx">transformEnd</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="nx">delta</span><span class="p">);</span> <span class="c1">//will call render() internally</span></div><div class='line' id='LC569'> <span class="p">}</span></div><div class='line' id='LC570'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC571'> <span class="nx">selection</span><span class="p">.</span><span class="nx">refreshBorders</span><span class="p">();</span> <span class="c1">//it will call render and prepare methods</span></div><div class='line' id='LC572'> <span class="p">}</span></div><div class='line' id='LC573'> <span class="p">}</span></div><div class='line' id='LC574'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC575'><br/></div><div class='line' id='LC576'> <span class="k">case</span> <span class="s2">"remove_row"</span><span class="o">:</span></div><div class='line' id='LC577'> <span class="nx">datamap</span><span class="p">.</span><span class="nx">removeRow</span><span class="p">(</span><span class="nx">index</span><span class="p">,</span> <span class="nx">amount</span><span class="p">);</span></div><div class='line' id='LC578'> <span class="nx">grid</span><span class="p">.</span><span class="nx">adjustRowsAndCols</span><span class="p">();</span></div><div class='line' id='LC579'> <span class="nx">selection</span><span class="p">.</span><span class="nx">refreshBorders</span><span class="p">();</span> <span class="c1">//it will call render and prepare methods</span></div><div class='line' id='LC580'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC581'><br/></div><div class='line' id='LC582'> <span class="k">case</span> <span class="s2">"remove_col"</span><span class="o">:</span></div><div class='line' id='LC583'> <span class="nx">datamap</span><span class="p">.</span><span class="nx">removeCol</span><span class="p">(</span><span class="nx">index</span><span class="p">,</span> <span class="nx">amount</span><span class="p">);</span></div><div class='line' id='LC584'> <span class="nx">grid</span><span class="p">.</span><span class="nx">adjustRowsAndCols</span><span class="p">();</span></div><div class='line' id='LC585'> <span class="nx">selection</span><span class="p">.</span><span class="nx">refreshBorders</span><span class="p">();</span> <span class="c1">//it will call render and prepare methods</span></div><div class='line' id='LC586'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC587'><br/></div><div class='line' id='LC588'> <span class="k">default</span><span class="o">:</span></div><div class='line' id='LC589'> <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s1">'There is no such action "'</span> <span class="o">+</span> <span class="nx">action</span> <span class="o">+</span> <span class="s1">'"'</span><span class="p">);</span></div><div class='line' id='LC590'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC591'> <span class="p">}</span></div><div class='line' id='LC592'><br/></div><div class='line' id='LC593'> <span class="nx">changes</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC594'> <span class="nx">newData</span> <span class="o">=</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">getAll</span><span class="p">();</span></div><div class='line' id='LC595'> <span class="k">for</span> <span class="p">(</span><span class="nx">r</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">rlen</span> <span class="o">=</span> <span class="nx">newData</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">r</span> <span class="o"><</span> <span class="nx">rlen</span><span class="p">;</span> <span class="nx">r</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC596'> <span class="k">for</span> <span class="p">(</span><span class="nx">c</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">clen</span> <span class="o">=</span> <span class="nx">newData</span><span class="p">[</span><span class="nx">r</span><span class="p">].</span><span class="nx">length</span><span class="p">;</span> <span class="nx">c</span> <span class="o"><</span> <span class="nx">clen</span><span class="p">;</span> <span class="nx">c</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC597'> <span class="nx">changes</span><span class="p">.</span><span class="nx">push</span><span class="p">([</span><span class="nx">r</span><span class="p">,</span> <span class="nx">c</span><span class="p">,</span> <span class="nx">oldData</span><span class="p">[</span><span class="nx">r</span><span class="p">]</span> <span class="o">?</span> <span class="nx">oldData</span><span class="p">[</span><span class="nx">r</span><span class="p">][</span><span class="nx">c</span><span class="p">]</span> <span class="o">:</span> <span class="kc">null</span><span class="p">,</span> <span class="nx">newData</span><span class="p">[</span><span class="nx">r</span><span class="p">][</span><span class="nx">c</span><span class="p">]]);</span></div><div class='line' id='LC598'> <span class="p">}</span></div><div class='line' id='LC599'> <span class="p">}</span></div><div class='line' id='LC600'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'afterChange'</span><span class="p">,</span> <span class="nx">changes</span><span class="p">,</span> <span class="nx">source</span> <span class="o">||</span> <span class="nx">action</span><span class="p">);</span></div><div class='line' id='LC601'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">keepEmptyRows</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC602'> <span class="nx">grid</span><span class="p">.</span><span class="nx">adjustRowsAndCols</span><span class="p">();</span> <span class="c1">//makes sure that we did not add rows that will be removed in next refresh</span></div><div class='line' id='LC603'> <span class="p">}</span></div><div class='line' id='LC604'> <span class="p">},</span></div><div class='line' id='LC605'><br/></div><div class='line' id='LC606'> <span class="cm">/**</span></div><div class='line' id='LC607'><span class="cm"> * Makes sure there are empty rows at the bottom of the table</span></div><div class='line' id='LC608'><span class="cm"> */</span></div><div class='line' id='LC609'> <span class="nx">adjustRowsAndCols</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC610'> <span class="kd">var</span> <span class="nx">r</span><span class="p">,</span> <span class="nx">rlen</span><span class="p">,</span> <span class="nx">emptyRows</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countEmptyRows</span><span class="p">(</span><span class="kc">true</span><span class="p">),</span> <span class="nx">emptyCols</span><span class="p">;</span></div><div class='line' id='LC611'><br/></div><div class='line' id='LC612'> <span class="c1">//should I add empty rows to data source to meet minRows?</span></div><div class='line' id='LC613'> <span class="nx">rlen</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countRows</span><span class="p">();</span></div><div class='line' id='LC614'> <span class="k">if</span> <span class="p">(</span><span class="nx">rlen</span> <span class="o"><</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">minRows</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC615'> <span class="k">for</span> <span class="p">(</span><span class="nx">r</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">r</span> <span class="o"><</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">minRows</span> <span class="o">-</span> <span class="nx">rlen</span><span class="p">;</span> <span class="nx">r</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC616'> <span class="nx">datamap</span><span class="p">.</span><span class="nx">createRow</span><span class="p">();</span></div><div class='line' id='LC617'> <span class="p">}</span></div><div class='line' id='LC618'> <span class="p">}</span></div><div class='line' id='LC619'><br/></div><div class='line' id='LC620'> <span class="c1">//should I add empty rows to meet minSpareRows?</span></div><div class='line' id='LC621'> <span class="k">if</span> <span class="p">(</span><span class="nx">emptyRows</span> <span class="o"><</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">minSpareRows</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC622'> <span class="k">for</span> <span class="p">(;</span> <span class="nx">emptyRows</span> <span class="o"><</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">minSpareRows</span> <span class="o">&&</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countRows</span><span class="p">()</span> <span class="o"><</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">maxRows</span><span class="p">;</span> <span class="nx">emptyRows</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC623'> <span class="nx">datamap</span><span class="p">.</span><span class="nx">createRow</span><span class="p">();</span></div><div class='line' id='LC624'> <span class="p">}</span></div><div class='line' id='LC625'> <span class="p">}</span></div><div class='line' id='LC626'><br/></div><div class='line' id='LC627'> <span class="c1">//count currently empty cols</span></div><div class='line' id='LC628'> <span class="nx">emptyCols</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countEmptyCols</span><span class="p">(</span><span class="kc">true</span><span class="p">);</span></div><div class='line' id='LC629'><br/></div><div class='line' id='LC630'> <span class="c1">//should I add empty cols to meet minCols?</span></div><div class='line' id='LC631'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">columns</span> <span class="o">&&</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countCols</span><span class="p">()</span> <span class="o"><</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">minCols</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC632'> <span class="k">for</span> <span class="p">(;</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countCols</span><span class="p">()</span> <span class="o"><</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">minCols</span><span class="p">;</span> <span class="nx">emptyCols</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC633'> <span class="nx">datamap</span><span class="p">.</span><span class="nx">createCol</span><span class="p">();</span></div><div class='line' id='LC634'> <span class="p">}</span></div><div class='line' id='LC635'> <span class="p">}</span></div><div class='line' id='LC636'><br/></div><div class='line' id='LC637'> <span class="c1">//should I add empty cols to meet minSpareCols?</span></div><div class='line' id='LC638'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">columns</span> <span class="o">&&</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">dataType</span> <span class="o">===</span> <span class="s1">'array'</span> <span class="o">&&</span> <span class="nx">emptyCols</span> <span class="o"><</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">minSpareCols</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC639'> <span class="k">for</span> <span class="p">(;</span> <span class="nx">emptyCols</span> <span class="o"><</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">minSpareCols</span> <span class="o">&&</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countCols</span><span class="p">()</span> <span class="o"><</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">maxCols</span><span class="p">;</span> <span class="nx">emptyCols</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC640'> <span class="nx">datamap</span><span class="p">.</span><span class="nx">createCol</span><span class="p">();</span></div><div class='line' id='LC641'> <span class="p">}</span></div><div class='line' id='LC642'> <span class="p">}</span></div><div class='line' id='LC643'><br/></div><div class='line' id='LC644'> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">enterBeginsEditing</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC645'> <span class="k">for</span> <span class="p">(;</span> <span class="p">(((</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">minRows</span> <span class="o">||</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">minSpareRows</span><span class="p">)</span> <span class="o">&&</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countRows</span><span class="p">()</span> <span class="o">></span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">minRows</span><span class="p">)</span> <span class="o">&&</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">minSpareRows</span> <span class="o">&&</span> <span class="nx">emptyRows</span> <span class="o">></span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">minSpareRows</span><span class="p">));</span> <span class="nx">emptyRows</span><span class="o">--</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC646'> <span class="nx">datamap</span><span class="p">.</span><span class="nx">removeRow</span><span class="p">();</span></div><div class='line' id='LC647'> <span class="p">}</span></div><div class='line' id='LC648'> <span class="p">}</span></div><div class='line' id='LC649'><br/></div><div class='line' id='LC650'> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">enterBeginsEditing</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">columns</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC651'> <span class="k">for</span> <span class="p">(;</span> <span class="p">(((</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">minCols</span> <span class="o">||</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">minSpareCols</span><span class="p">)</span> <span class="o">&&</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countCols</span><span class="p">()</span> <span class="o">></span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">minCols</span><span class="p">)</span> <span class="o">&&</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">minSpareCols</span> <span class="o">&&</span> <span class="nx">emptyCols</span> <span class="o">></span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">minSpareCols</span><span class="p">));</span> <span class="nx">emptyCols</span><span class="o">--</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC652'> <span class="nx">datamap</span><span class="p">.</span><span class="nx">removeCol</span><span class="p">();</span></div><div class='line' id='LC653'> <span class="p">}</span></div><div class='line' id='LC654'> <span class="p">}</span></div><div class='line' id='LC655'><br/></div><div class='line' id='LC656'> <span class="kd">var</span> <span class="nx">rowCount</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countRows</span><span class="p">();</span></div><div class='line' id='LC657'> <span class="kd">var</span> <span class="nx">colCount</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countCols</span><span class="p">();</span></div><div class='line' id='LC658'><br/></div><div class='line' id='LC659'> <span class="k">if</span> <span class="p">(</span><span class="nx">rowCount</span> <span class="o">===</span> <span class="mi">0</span> <span class="o">||</span> <span class="nx">colCount</span> <span class="o">===</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC660'> <span class="nx">selection</span><span class="p">.</span><span class="nx">deselect</span><span class="p">();</span></div><div class='line' id='LC661'> <span class="p">}</span></div><div class='line' id='LC662'><br/></div><div class='line' id='LC663'> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">exists</span><span class="p">())</span> <span class="p">{</span></div><div class='line' id='LC664'> <span class="kd">var</span> <span class="nx">selectionChanged</span><span class="p">;</span></div><div class='line' id='LC665'> <span class="kd">var</span> <span class="nx">fromRow</span> <span class="o">=</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">row</span><span class="p">();</span></div><div class='line' id='LC666'> <span class="kd">var</span> <span class="nx">fromCol</span> <span class="o">=</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">col</span><span class="p">();</span></div><div class='line' id='LC667'> <span class="kd">var</span> <span class="nx">toRow</span> <span class="o">=</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selEnd</span><span class="p">.</span><span class="nx">row</span><span class="p">();</span></div><div class='line' id='LC668'> <span class="kd">var</span> <span class="nx">toCol</span> <span class="o">=</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selEnd</span><span class="p">.</span><span class="nx">col</span><span class="p">();</span></div><div class='line' id='LC669'><br/></div><div class='line' id='LC670'> <span class="c1">//if selection is outside, move selection to last row</span></div><div class='line' id='LC671'> <span class="k">if</span> <span class="p">(</span><span class="nx">fromRow</span> <span class="o">></span> <span class="nx">rowCount</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC672'> <span class="nx">fromRow</span> <span class="o">=</span> <span class="nx">rowCount</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC673'> <span class="nx">selectionChanged</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC674'> <span class="k">if</span> <span class="p">(</span><span class="nx">toRow</span> <span class="o">></span> <span class="nx">fromRow</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC675'> <span class="nx">toRow</span> <span class="o">=</span> <span class="nx">fromRow</span><span class="p">;</span></div><div class='line' id='LC676'> <span class="p">}</span></div><div class='line' id='LC677'> <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">toRow</span> <span class="o">></span> <span class="nx">rowCount</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC678'> <span class="nx">toRow</span> <span class="o">=</span> <span class="nx">rowCount</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC679'> <span class="nx">selectionChanged</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC680'> <span class="k">if</span> <span class="p">(</span><span class="nx">fromRow</span> <span class="o">></span> <span class="nx">toRow</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC681'> <span class="nx">fromRow</span> <span class="o">=</span> <span class="nx">toRow</span><span class="p">;</span></div><div class='line' id='LC682'> <span class="p">}</span></div><div class='line' id='LC683'> <span class="p">}</span></div><div class='line' id='LC684'><br/></div><div class='line' id='LC685'> <span class="c1">//if selection is outside, move selection to last row</span></div><div class='line' id='LC686'> <span class="k">if</span> <span class="p">(</span><span class="nx">fromCol</span> <span class="o">></span> <span class="nx">colCount</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC687'> <span class="nx">fromCol</span> <span class="o">=</span> <span class="nx">colCount</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC688'> <span class="nx">selectionChanged</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC689'> <span class="k">if</span> <span class="p">(</span><span class="nx">toCol</span> <span class="o">></span> <span class="nx">fromCol</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC690'> <span class="nx">toCol</span> <span class="o">=</span> <span class="nx">fromCol</span><span class="p">;</span></div><div class='line' id='LC691'> <span class="p">}</span></div><div class='line' id='LC692'> <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">toCol</span> <span class="o">></span> <span class="nx">colCount</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC693'> <span class="nx">toCol</span> <span class="o">=</span> <span class="nx">colCount</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC694'> <span class="nx">selectionChanged</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC695'> <span class="k">if</span> <span class="p">(</span><span class="nx">fromCol</span> <span class="o">></span> <span class="nx">toCol</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC696'> <span class="nx">fromCol</span> <span class="o">=</span> <span class="nx">toCol</span><span class="p">;</span></div><div class='line' id='LC697'> <span class="p">}</span></div><div class='line' id='LC698'> <span class="p">}</span></div><div class='line' id='LC699'><br/></div><div class='line' id='LC700'> <span class="k">if</span> <span class="p">(</span><span class="nx">selectionChanged</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC701'> <span class="nx">instance</span><span class="p">.</span><span class="nx">selectCell</span><span class="p">(</span><span class="nx">fromRow</span><span class="p">,</span> <span class="nx">fromCol</span><span class="p">,</span> <span class="nx">toRow</span><span class="p">,</span> <span class="nx">toCol</span><span class="p">);</span></div><div class='line' id='LC702'> <span class="p">}</span></div><div class='line' id='LC703'> <span class="p">}</span></div><div class='line' id='LC704'> <span class="p">},</span></div><div class='line' id='LC705'><br/></div><div class='line' id='LC706'> <span class="cm">/**</span></div><div class='line' id='LC707'><span class="cm"> * Populate cells at position with 2d array</span></div><div class='line' id='LC708'><span class="cm"> * @param {Object} start Start selection position</span></div><div class='line' id='LC709'><span class="cm"> * @param {Array} input 2d array</span></div><div class='line' id='LC710'><span class="cm"> * @param {Object} [end] End selection position (only for drag-down mode)</span></div><div class='line' id='LC711'><span class="cm"> * @param {String} [source="populateFromArray"]</span></div><div class='line' id='LC712'><span class="cm"> * @param {String} [method="overwrite"]</span></div><div class='line' id='LC713'><span class="cm"> * @return {Object|undefined} ending td in pasted area (only if any cell was changed)</span></div><div class='line' id='LC714'><span class="cm"> */</span></div><div class='line' id='LC715'> <span class="nx">populateFromArray</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">start</span><span class="p">,</span> <span class="nx">input</span><span class="p">,</span> <span class="nx">end</span><span class="p">,</span> <span class="nx">source</span><span class="p">,</span> <span class="nx">method</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC716'> <span class="kd">var</span> <span class="nx">r</span><span class="p">,</span> <span class="nx">rlen</span><span class="p">,</span> <span class="nx">c</span><span class="p">,</span> <span class="nx">clen</span><span class="p">,</span> <span class="nx">setData</span> <span class="o">=</span> <span class="p">[],</span> <span class="nx">current</span> <span class="o">=</span> <span class="p">{};</span></div><div class='line' id='LC717'> <span class="nx">rlen</span> <span class="o">=</span> <span class="nx">input</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span></div><div class='line' id='LC718'> <span class="k">if</span> <span class="p">(</span><span class="nx">rlen</span> <span class="o">===</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC719'> <span class="k">return</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC720'> <span class="p">}</span></div><div class='line' id='LC721'><br/></div><div class='line' id='LC722'> <span class="kd">var</span> <span class="nx">repeatCol</span></div><div class='line' id='LC723'> <span class="p">,</span> <span class="nx">repeatRow</span></div><div class='line' id='LC724'> <span class="p">,</span> <span class="nx">cmax</span></div><div class='line' id='LC725'> <span class="p">,</span> <span class="nx">rmax</span><span class="p">;</span></div><div class='line' id='LC726'><br/></div><div class='line' id='LC727'> <span class="c1">// insert data with specified pasteMode method</span></div><div class='line' id='LC728'> <span class="k">switch</span> <span class="p">(</span><span class="nx">method</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC729'> <span class="k">case</span> <span class="s1">'shift_down'</span> <span class="o">:</span></div><div class='line' id='LC730'> <span class="nx">repeatCol</span> <span class="o">=</span> <span class="nx">end</span> <span class="o">?</span> <span class="nx">end</span><span class="p">.</span><span class="nx">col</span> <span class="o">-</span> <span class="nx">start</span><span class="p">.</span><span class="nx">col</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">:</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC731'> <span class="nx">repeatRow</span> <span class="o">=</span> <span class="nx">end</span> <span class="o">?</span> <span class="nx">end</span><span class="p">.</span><span class="nx">row</span> <span class="o">-</span> <span class="nx">start</span><span class="p">.</span><span class="nx">row</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">:</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC732'> <span class="nx">input</span> <span class="o">=</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">translateRowsToColumns</span><span class="p">(</span><span class="nx">input</span><span class="p">);</span></div><div class='line' id='LC733'> <span class="k">for</span> <span class="p">(</span><span class="nx">c</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">clen</span> <span class="o">=</span> <span class="nx">input</span><span class="p">.</span><span class="nx">length</span><span class="p">,</span> <span class="nx">cmax</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="nx">clen</span><span class="p">,</span> <span class="nx">repeatCol</span><span class="p">);</span> <span class="nx">c</span> <span class="o"><</span> <span class="nx">cmax</span><span class="p">;</span> <span class="nx">c</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC734'> <span class="k">if</span> <span class="p">(</span><span class="nx">c</span> <span class="o"><</span> <span class="nx">clen</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC735'> <span class="k">for</span> <span class="p">(</span><span class="nx">r</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">rlen</span> <span class="o">=</span> <span class="nx">input</span><span class="p">[</span><span class="nx">c</span><span class="p">].</span><span class="nx">length</span><span class="p">;</span> <span class="nx">r</span> <span class="o"><</span> <span class="nx">repeatRow</span> <span class="o">-</span> <span class="nx">rlen</span><span class="p">;</span> <span class="nx">r</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC736'> <span class="nx">input</span><span class="p">[</span><span class="nx">c</span><span class="p">].</span><span class="nx">push</span><span class="p">(</span><span class="nx">input</span><span class="p">[</span><span class="nx">c</span><span class="p">][</span><span class="nx">r</span> <span class="o">%</span> <span class="nx">rlen</span><span class="p">]);</span></div><div class='line' id='LC737'> <span class="p">}</span></div><div class='line' id='LC738'> <span class="nx">input</span><span class="p">[</span><span class="nx">c</span><span class="p">].</span><span class="nx">unshift</span><span class="p">(</span><span class="nx">start</span><span class="p">.</span><span class="nx">col</span> <span class="o">+</span> <span class="nx">c</span><span class="p">,</span> <span class="nx">start</span><span class="p">.</span><span class="nx">row</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span></div><div class='line' id='LC739'> <span class="nx">instance</span><span class="p">.</span><span class="nx">spliceCol</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">input</span><span class="p">[</span><span class="nx">c</span><span class="p">]);</span></div><div class='line' id='LC740'> <span class="p">}</span></div><div class='line' id='LC741'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC742'> <span class="nx">input</span><span class="p">[</span><span class="nx">c</span> <span class="o">%</span> <span class="nx">clen</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="nx">start</span><span class="p">.</span><span class="nx">col</span> <span class="o">+</span> <span class="nx">c</span><span class="p">;</span></div><div class='line' id='LC743'> <span class="nx">instance</span><span class="p">.</span><span class="nx">spliceCol</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">input</span><span class="p">[</span><span class="nx">c</span> <span class="o">%</span> <span class="nx">clen</span><span class="p">]);</span></div><div class='line' id='LC744'> <span class="p">}</span></div><div class='line' id='LC745'> <span class="p">}</span></div><div class='line' id='LC746'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC747'><br/></div><div class='line' id='LC748'> <span class="k">case</span> <span class="s1">'shift_right'</span> <span class="o">:</span></div><div class='line' id='LC749'> <span class="nx">repeatCol</span> <span class="o">=</span> <span class="nx">end</span> <span class="o">?</span> <span class="nx">end</span><span class="p">.</span><span class="nx">col</span> <span class="o">-</span> <span class="nx">start</span><span class="p">.</span><span class="nx">col</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">:</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC750'> <span class="nx">repeatRow</span> <span class="o">=</span> <span class="nx">end</span> <span class="o">?</span> <span class="nx">end</span><span class="p">.</span><span class="nx">row</span> <span class="o">-</span> <span class="nx">start</span><span class="p">.</span><span class="nx">row</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">:</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC751'> <span class="k">for</span> <span class="p">(</span><span class="nx">r</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">rlen</span> <span class="o">=</span> <span class="nx">input</span><span class="p">.</span><span class="nx">length</span><span class="p">,</span> <span class="nx">rmax</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="nx">rlen</span><span class="p">,</span> <span class="nx">repeatRow</span><span class="p">);</span> <span class="nx">r</span> <span class="o"><</span> <span class="nx">rmax</span><span class="p">;</span> <span class="nx">r</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC752'> <span class="k">if</span> <span class="p">(</span><span class="nx">r</span> <span class="o"><</span> <span class="nx">rlen</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC753'> <span class="k">for</span> <span class="p">(</span><span class="nx">c</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">clen</span> <span class="o">=</span> <span class="nx">input</span><span class="p">[</span><span class="nx">r</span><span class="p">].</span><span class="nx">length</span><span class="p">;</span> <span class="nx">c</span> <span class="o"><</span> <span class="nx">repeatCol</span> <span class="o">-</span> <span class="nx">clen</span><span class="p">;</span> <span class="nx">c</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC754'> <span class="nx">input</span><span class="p">[</span><span class="nx">r</span><span class="p">].</span><span class="nx">push</span><span class="p">(</span><span class="nx">input</span><span class="p">[</span><span class="nx">r</span><span class="p">][</span><span class="nx">c</span> <span class="o">%</span> <span class="nx">clen</span><span class="p">]);</span></div><div class='line' id='LC755'> <span class="p">}</span></div><div class='line' id='LC756'> <span class="nx">input</span><span class="p">[</span><span class="nx">r</span><span class="p">].</span><span class="nx">unshift</span><span class="p">(</span><span class="nx">start</span><span class="p">.</span><span class="nx">row</span> <span class="o">+</span> <span class="nx">r</span><span class="p">,</span> <span class="nx">start</span><span class="p">.</span><span class="nx">col</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span></div><div class='line' id='LC757'> <span class="nx">instance</span><span class="p">.</span><span class="nx">spliceRow</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">input</span><span class="p">[</span><span class="nx">r</span><span class="p">]);</span></div><div class='line' id='LC758'> <span class="p">}</span></div><div class='line' id='LC759'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC760'> <span class="nx">input</span><span class="p">[</span><span class="nx">r</span> <span class="o">%</span> <span class="nx">rlen</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="nx">start</span><span class="p">.</span><span class="nx">row</span> <span class="o">+</span> <span class="nx">r</span><span class="p">;</span></div><div class='line' id='LC761'> <span class="nx">instance</span><span class="p">.</span><span class="nx">spliceRow</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">input</span><span class="p">[</span><span class="nx">r</span> <span class="o">%</span> <span class="nx">rlen</span><span class="p">]);</span></div><div class='line' id='LC762'> <span class="p">}</span></div><div class='line' id='LC763'> <span class="p">}</span></div><div class='line' id='LC764'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC765'><br/></div><div class='line' id='LC766'> <span class="k">case</span> <span class="s1">'overwrite'</span> <span class="o">:</span></div><div class='line' id='LC767'> <span class="k">default</span><span class="o">:</span></div><div class='line' id='LC768'> <span class="c1">// overwrite and other not specified options</span></div><div class='line' id='LC769'> <span class="nx">current</span><span class="p">.</span><span class="nx">row</span> <span class="o">=</span> <span class="nx">start</span><span class="p">.</span><span class="nx">row</span><span class="p">;</span></div><div class='line' id='LC770'> <span class="nx">current</span><span class="p">.</span><span class="nx">col</span> <span class="o">=</span> <span class="nx">start</span><span class="p">.</span><span class="nx">col</span><span class="p">;</span></div><div class='line' id='LC771'> <span class="k">for</span> <span class="p">(</span><span class="nx">r</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">r</span> <span class="o"><</span> <span class="nx">rlen</span><span class="p">;</span> <span class="nx">r</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC772'> <span class="k">if</span> <span class="p">((</span><span class="nx">end</span> <span class="o">&&</span> <span class="nx">current</span><span class="p">.</span><span class="nx">row</span> <span class="o">></span> <span class="nx">end</span><span class="p">.</span><span class="nx">row</span><span class="p">)</span> <span class="o">||</span> <span class="p">(</span><span class="o">!</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">minSpareRows</span> <span class="o">&&</span> <span class="nx">current</span><span class="p">.</span><span class="nx">row</span> <span class="o">></span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countRows</span><span class="p">()</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="o">||</span> <span class="p">(</span><span class="nx">current</span><span class="p">.</span><span class="nx">row</span> <span class="o">>=</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">maxRows</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC773'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC774'> <span class="p">}</span></div><div class='line' id='LC775'> <span class="nx">current</span><span class="p">.</span><span class="nx">col</span> <span class="o">=</span> <span class="nx">start</span><span class="p">.</span><span class="nx">col</span><span class="p">;</span></div><div class='line' id='LC776'> <span class="nx">clen</span> <span class="o">=</span> <span class="nx">input</span><span class="p">[</span><span class="nx">r</span><span class="p">]</span> <span class="o">?</span> <span class="nx">input</span><span class="p">[</span><span class="nx">r</span><span class="p">].</span><span class="nx">length</span> <span class="o">:</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC777'> <span class="k">for</span> <span class="p">(</span><span class="nx">c</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">c</span> <span class="o"><</span> <span class="nx">clen</span><span class="p">;</span> <span class="nx">c</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC778'> <span class="k">if</span> <span class="p">((</span><span class="nx">end</span> <span class="o">&&</span> <span class="nx">current</span><span class="p">.</span><span class="nx">col</span> <span class="o">></span> <span class="nx">end</span><span class="p">.</span><span class="nx">col</span><span class="p">)</span> <span class="o">||</span> <span class="p">(</span><span class="o">!</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">minSpareCols</span> <span class="o">&&</span> <span class="nx">current</span><span class="p">.</span><span class="nx">col</span> <span class="o">></span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countCols</span><span class="p">()</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="o">||</span> <span class="p">(</span><span class="nx">current</span><span class="p">.</span><span class="nx">col</span> <span class="o">>=</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">maxCols</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC779'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC780'> <span class="p">}</span></div><div class='line' id='LC781'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getCellMeta</span><span class="p">(</span><span class="nx">current</span><span class="p">.</span><span class="nx">row</span><span class="p">,</span> <span class="nx">current</span><span class="p">.</span><span class="nx">col</span><span class="p">).</span><span class="nx">readOnly</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC782'> <span class="nx">setData</span><span class="p">.</span><span class="nx">push</span><span class="p">([</span><span class="nx">current</span><span class="p">.</span><span class="nx">row</span><span class="p">,</span> <span class="nx">current</span><span class="p">.</span><span class="nx">col</span><span class="p">,</span> <span class="nx">input</span><span class="p">[</span><span class="nx">r</span><span class="p">][</span><span class="nx">c</span><span class="p">]]);</span></div><div class='line' id='LC783'> <span class="p">}</span></div><div class='line' id='LC784'> <span class="nx">current</span><span class="p">.</span><span class="nx">col</span><span class="o">++</span><span class="p">;</span></div><div class='line' id='LC785'> <span class="k">if</span> <span class="p">(</span><span class="nx">end</span> <span class="o">&&</span> <span class="nx">c</span> <span class="o">===</span> <span class="nx">clen</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC786'> <span class="nx">c</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC787'> <span class="p">}</span></div><div class='line' id='LC788'> <span class="p">}</span></div><div class='line' id='LC789'> <span class="nx">current</span><span class="p">.</span><span class="nx">row</span><span class="o">++</span><span class="p">;</span></div><div class='line' id='LC790'> <span class="k">if</span> <span class="p">(</span><span class="nx">end</span> <span class="o">&&</span> <span class="nx">r</span> <span class="o">===</span> <span class="nx">rlen</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC791'> <span class="nx">r</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC792'> <span class="p">}</span></div><div class='line' id='LC793'> <span class="p">}</span></div><div class='line' id='LC794'> <span class="nx">instance</span><span class="p">.</span><span class="nx">setDataAtCell</span><span class="p">(</span><span class="nx">setData</span><span class="p">,</span> <span class="kc">null</span><span class="p">,</span> <span class="kc">null</span><span class="p">,</span> <span class="nx">source</span> <span class="o">||</span> <span class="s1">'populateFromArray'</span><span class="p">);</span></div><div class='line' id='LC795'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC796'> <span class="p">}</span></div><div class='line' id='LC797'> <span class="p">},</span></div><div class='line' id='LC798'><br/></div><div class='line' id='LC799'> <span class="cm">/**</span></div><div class='line' id='LC800'><span class="cm"> * Returns the top left (TL) and bottom right (BR) selection coordinates</span></div><div class='line' id='LC801'><span class="cm"> * @param {Object[]} coordsArr</span></div><div class='line' id='LC802'><span class="cm"> * @returns {Object}</span></div><div class='line' id='LC803'><span class="cm"> */</span></div><div class='line' id='LC804'> <span class="nx">getCornerCoords</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">coordsArr</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC805'> <span class="kd">function</span> <span class="nx">mapProp</span><span class="p">(</span><span class="nx">func</span><span class="p">,</span> <span class="nx">array</span><span class="p">,</span> <span class="nx">prop</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC806'> <span class="kd">function</span> <span class="nx">getProp</span><span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC807'> <span class="k">return</span> <span class="nx">el</span><span class="p">[</span><span class="nx">prop</span><span class="p">];</span></div><div class='line' id='LC808'> <span class="p">}</span></div><div class='line' id='LC809'><br/></div><div class='line' id='LC810'> <span class="k">if</span> <span class="p">(</span><span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">map</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC811'> <span class="k">return</span> <span class="nx">func</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nb">Math</span><span class="p">,</span> <span class="nx">array</span><span class="p">.</span><span class="nx">map</span><span class="p">(</span><span class="nx">getProp</span><span class="p">));</span></div><div class='line' id='LC812'> <span class="p">}</span></div><div class='line' id='LC813'> <span class="k">return</span> <span class="nx">func</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nb">Math</span><span class="p">,</span> <span class="nx">$</span><span class="p">.</span><span class="nx">map</span><span class="p">(</span><span class="nx">array</span><span class="p">,</span> <span class="nx">getProp</span><span class="p">));</span></div><div class='line' id='LC814'> <span class="p">}</span></div><div class='line' id='LC815'><br/></div><div class='line' id='LC816'> <span class="k">return</span> <span class="p">{</span></div><div class='line' id='LC817'> <span class="nx">TL</span><span class="o">:</span> <span class="p">{</span></div><div class='line' id='LC818'> <span class="nx">row</span><span class="o">:</span> <span class="nx">mapProp</span><span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">min</span><span class="p">,</span> <span class="nx">coordsArr</span><span class="p">,</span> <span class="s2">"row"</span><span class="p">),</span></div><div class='line' id='LC819'> <span class="nx">col</span><span class="o">:</span> <span class="nx">mapProp</span><span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">min</span><span class="p">,</span> <span class="nx">coordsArr</span><span class="p">,</span> <span class="s2">"col"</span><span class="p">)</span></div><div class='line' id='LC820'> <span class="p">},</span></div><div class='line' id='LC821'> <span class="nx">BR</span><span class="o">:</span> <span class="p">{</span></div><div class='line' id='LC822'> <span class="nx">row</span><span class="o">:</span> <span class="nx">mapProp</span><span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">,</span> <span class="nx">coordsArr</span><span class="p">,</span> <span class="s2">"row"</span><span class="p">),</span></div><div class='line' id='LC823'> <span class="nx">col</span><span class="o">:</span> <span class="nx">mapProp</span><span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">,</span> <span class="nx">coordsArr</span><span class="p">,</span> <span class="s2">"col"</span><span class="p">)</span></div><div class='line' id='LC824'> <span class="p">}</span></div><div class='line' id='LC825'> <span class="p">};</span></div><div class='line' id='LC826'> <span class="p">},</span></div><div class='line' id='LC827'><br/></div><div class='line' id='LC828'> <span class="cm">/**</span></div><div class='line' id='LC829'><span class="cm"> * Returns array of td objects given start and end coordinates</span></div><div class='line' id='LC830'><span class="cm"> */</span></div><div class='line' id='LC831'> <span class="nx">getCellsAtCoords</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">start</span><span class="p">,</span> <span class="nx">end</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC832'> <span class="kd">var</span> <span class="nx">corners</span> <span class="o">=</span> <span class="nx">grid</span><span class="p">.</span><span class="nx">getCornerCoords</span><span class="p">([</span><span class="nx">start</span><span class="p">,</span> <span class="nx">end</span><span class="p">]);</span></div><div class='line' id='LC833'> <span class="kd">var</span> <span class="nx">r</span><span class="p">,</span> <span class="nx">c</span><span class="p">,</span> <span class="nx">output</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC834'> <span class="k">for</span> <span class="p">(</span><span class="nx">r</span> <span class="o">=</span> <span class="nx">corners</span><span class="p">.</span><span class="nx">TL</span><span class="p">.</span><span class="nx">row</span><span class="p">;</span> <span class="nx">r</span> <span class="o"><=</span> <span class="nx">corners</span><span class="p">.</span><span class="nx">BR</span><span class="p">.</span><span class="nx">row</span><span class="p">;</span> <span class="nx">r</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC835'> <span class="k">for</span> <span class="p">(</span><span class="nx">c</span> <span class="o">=</span> <span class="nx">corners</span><span class="p">.</span><span class="nx">TL</span><span class="p">.</span><span class="nx">col</span><span class="p">;</span> <span class="nx">c</span> <span class="o"><=</span> <span class="nx">corners</span><span class="p">.</span><span class="nx">BR</span><span class="p">.</span><span class="nx">col</span><span class="p">;</span> <span class="nx">c</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC836'> <span class="nx">output</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">getCellAtCoords</span><span class="p">({</span></div><div class='line' id='LC837'> <span class="nx">row</span><span class="o">:</span> <span class="nx">r</span><span class="p">,</span></div><div class='line' id='LC838'> <span class="nx">col</span><span class="o">:</span> <span class="nx">c</span></div><div class='line' id='LC839'> <span class="p">}));</span></div><div class='line' id='LC840'> <span class="p">}</span></div><div class='line' id='LC841'> <span class="p">}</span></div><div class='line' id='LC842'> <span class="k">return</span> <span class="nx">output</span><span class="p">;</span></div><div class='line' id='LC843'> <span class="p">}</span></div><div class='line' id='LC844'> <span class="p">};</span></div><div class='line' id='LC845'><br/></div><div class='line' id='LC846'> <span class="k">this</span><span class="p">.</span><span class="nx">selection</span> <span class="o">=</span> <span class="nx">selection</span> <span class="o">=</span> <span class="p">{</span> <span class="c1">//this public assignment is only temporary</span></div><div class='line' id='LC847'> <span class="nx">inProgress</span><span class="o">:</span> <span class="kc">false</span><span class="p">,</span></div><div class='line' id='LC848'><br/></div><div class='line' id='LC849'> <span class="cm">/**</span></div><div class='line' id='LC850'><span class="cm"> * Sets inProgress to true. This enables onSelectionEnd and onSelectionEndByProp to function as desired</span></div><div class='line' id='LC851'><span class="cm"> */</span></div><div class='line' id='LC852'> <span class="nx">begin</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC853'> <span class="nx">instance</span><span class="p">.</span><span class="nx">selection</span><span class="p">.</span><span class="nx">inProgress</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC854'> <span class="p">},</span></div><div class='line' id='LC855'><br/></div><div class='line' id='LC856'> <span class="cm">/**</span></div><div class='line' id='LC857'><span class="cm"> * Sets inProgress to false. Triggers onSelectionEnd and onSelectionEndByProp</span></div><div class='line' id='LC858'><span class="cm"> */</span></div><div class='line' id='LC859'> <span class="nx">finish</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC860'> <span class="kd">var</span> <span class="nx">sel</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getSelected</span><span class="p">();</span></div><div class='line' id='LC861'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s2">"afterSelectionEnd"</span><span class="p">,</span> <span class="nx">sel</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="nx">sel</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="nx">sel</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span> <span class="nx">sel</span><span class="p">[</span><span class="mi">3</span><span class="p">]);</span></div><div class='line' id='LC862'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s2">"afterSelectionEndByProp"</span><span class="p">,</span> <span class="nx">sel</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">colToProp</span><span class="p">(</span><span class="nx">sel</span><span class="p">[</span><span class="mi">1</span><span class="p">]),</span> <span class="nx">sel</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">colToProp</span><span class="p">(</span><span class="nx">sel</span><span class="p">[</span><span class="mi">3</span><span class="p">]));</span></div><div class='line' id='LC863'> <span class="nx">instance</span><span class="p">.</span><span class="nx">selection</span><span class="p">.</span><span class="nx">inProgress</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC864'> <span class="p">},</span></div><div class='line' id='LC865'><br/></div><div class='line' id='LC866'> <span class="nx">isInProgress</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC867'> <span class="k">return</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">selection</span><span class="p">.</span><span class="nx">inProgress</span><span class="p">;</span></div><div class='line' id='LC868'> <span class="p">},</span></div><div class='line' id='LC869'><br/></div><div class='line' id='LC870'> <span class="cm">/**</span></div><div class='line' id='LC871'><span class="cm"> * Starts selection range on given td object</span></div><div class='line' id='LC872'><span class="cm"> * @param {Object} coords</span></div><div class='line' id='LC873'><span class="cm"> */</span></div><div class='line' id='LC874'> <span class="nx">setRangeStart</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">coords</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC875'> <span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">coords</span><span class="p">(</span><span class="nx">coords</span><span class="p">);</span></div><div class='line' id='LC876'> <span class="nx">selection</span><span class="p">.</span><span class="nx">setRangeEnd</span><span class="p">(</span><span class="nx">coords</span><span class="p">);</span></div><div class='line' id='LC877'> <span class="p">},</span></div><div class='line' id='LC878'><br/></div><div class='line' id='LC879'> <span class="cm">/**</span></div><div class='line' id='LC880'><span class="cm"> * Ends selection range on given td object</span></div><div class='line' id='LC881'><span class="cm"> * @param {Object} coords</span></div><div class='line' id='LC882'><span class="cm"> * @param {Boolean} [scrollToCell=true] If true, viewport will be scrolled to range end</span></div><div class='line' id='LC883'><span class="cm"> */</span></div><div class='line' id='LC884'> <span class="nx">setRangeEnd</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">coords</span><span class="p">,</span> <span class="nx">scrollToCell</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC885'> <span class="nx">instance</span><span class="p">.</span><span class="nx">selection</span><span class="p">.</span><span class="nx">begin</span><span class="p">();</span></div><div class='line' id='LC886'><br/></div><div class='line' id='LC887'> <span class="nx">priv</span><span class="p">.</span><span class="nx">selEnd</span><span class="p">.</span><span class="nx">coords</span><span class="p">(</span><span class="nx">coords</span><span class="p">);</span></div><div class='line' id='LC888'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">multiSelect</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC889'> <span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">coords</span><span class="p">(</span><span class="nx">coords</span><span class="p">);</span></div><div class='line' id='LC890'> <span class="p">}</span></div><div class='line' id='LC891'><br/></div><div class='line' id='LC892'> <span class="c1">//set up current selection</span></div><div class='line' id='LC893'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">selections</span><span class="p">.</span><span class="nx">current</span><span class="p">.</span><span class="nx">clear</span><span class="p">();</span></div><div class='line' id='LC894'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">selections</span><span class="p">.</span><span class="nx">current</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">arr</span><span class="p">());</span></div><div class='line' id='LC895'><br/></div><div class='line' id='LC896'> <span class="c1">//set up area selection</span></div><div class='line' id='LC897'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">selections</span><span class="p">.</span><span class="nx">area</span><span class="p">.</span><span class="nx">clear</span><span class="p">();</span></div><div class='line' id='LC898'> <span class="k">if</span> <span class="p">(</span><span class="nx">selection</span><span class="p">.</span><span class="nx">isMultiple</span><span class="p">())</span> <span class="p">{</span></div><div class='line' id='LC899'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">selections</span><span class="p">.</span><span class="nx">area</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">arr</span><span class="p">());</span></div><div class='line' id='LC900'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">selections</span><span class="p">.</span><span class="nx">area</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">selEnd</span><span class="p">.</span><span class="nx">arr</span><span class="p">());</span></div><div class='line' id='LC901'> <span class="p">}</span></div><div class='line' id='LC902'><br/></div><div class='line' id='LC903'> <span class="c1">//set up highlight</span></div><div class='line' id='LC904'> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">currentRowClassName</span> <span class="o">||</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">currentColClassName</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC905'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">selections</span><span class="p">.</span><span class="nx">highlight</span><span class="p">.</span><span class="nx">clear</span><span class="p">();</span></div><div class='line' id='LC906'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">selections</span><span class="p">.</span><span class="nx">highlight</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">arr</span><span class="p">());</span></div><div class='line' id='LC907'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">selections</span><span class="p">.</span><span class="nx">highlight</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">selEnd</span><span class="p">.</span><span class="nx">arr</span><span class="p">());</span></div><div class='line' id='LC908'> <span class="p">}</span></div><div class='line' id='LC909'><br/></div><div class='line' id='LC910'> <span class="c1">//trigger handlers</span></div><div class='line' id='LC911'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s2">"afterSelection"</span><span class="p">,</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">row</span><span class="p">(),</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">col</span><span class="p">(),</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selEnd</span><span class="p">.</span><span class="nx">row</span><span class="p">(),</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selEnd</span><span class="p">.</span><span class="nx">col</span><span class="p">());</span></div><div class='line' id='LC912'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s2">"afterSelectionByProp"</span><span class="p">,</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">row</span><span class="p">(),</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">colToProp</span><span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">col</span><span class="p">()),</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selEnd</span><span class="p">.</span><span class="nx">row</span><span class="p">(),</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">colToProp</span><span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">selEnd</span><span class="p">.</span><span class="nx">col</span><span class="p">()));</span></div><div class='line' id='LC913'><br/></div><div class='line' id='LC914'> <span class="k">if</span> <span class="p">(</span><span class="nx">scrollToCell</span> <span class="o">!==</span> <span class="kc">false</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC915'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">scrollViewport</span><span class="p">(</span><span class="nx">coords</span><span class="p">);</span></div><div class='line' id='LC916'> <span class="p">}</span></div><div class='line' id='LC917'> <span class="nx">selection</span><span class="p">.</span><span class="nx">refreshBorders</span><span class="p">();</span></div><div class='line' id='LC918'> <span class="p">},</span></div><div class='line' id='LC919'><br/></div><div class='line' id='LC920'> <span class="cm">/**</span></div><div class='line' id='LC921'><span class="cm"> * Destroys editor, redraws borders around cells, prepares editor</span></div><div class='line' id='LC922'><span class="cm"> * @param {Boolean} revertOriginal</span></div><div class='line' id='LC923'><span class="cm"> * @param {Boolean} keepEditor</span></div><div class='line' id='LC924'><span class="cm"> */</span></div><div class='line' id='LC925'> <span class="nx">refreshBorders</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">revertOriginal</span><span class="p">,</span> <span class="nx">keepEditor</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC926'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">keepEditor</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC927'> <span class="nx">editproxy</span><span class="p">.</span><span class="nx">destroy</span><span class="p">(</span><span class="nx">revertOriginal</span><span class="p">);</span></div><div class='line' id='LC928'> <span class="p">}</span></div><div class='line' id='LC929'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">render</span><span class="p">();</span></div><div class='line' id='LC930'> <span class="k">if</span> <span class="p">(</span><span class="nx">selection</span><span class="p">.</span><span class="nx">isSelected</span><span class="p">()</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">keepEditor</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC931'> <span class="nx">editproxy</span><span class="p">.</span><span class="nx">prepare</span><span class="p">();</span></div><div class='line' id='LC932'> <span class="p">}</span></div><div class='line' id='LC933'> <span class="p">},</span></div><div class='line' id='LC934'><br/></div><div class='line' id='LC935'> <span class="cm">/**</span></div><div class='line' id='LC936'><span class="cm"> * Returns information if we have a multiselection</span></div><div class='line' id='LC937'><span class="cm"> * @return {Boolean}</span></div><div class='line' id='LC938'><span class="cm"> */</span></div><div class='line' id='LC939'> <span class="nx">isMultiple</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC940'> <span class="k">return</span> <span class="o">!</span><span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">selEnd</span><span class="p">.</span><span class="nx">col</span><span class="p">()</span> <span class="o">===</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">col</span><span class="p">()</span> <span class="o">&&</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selEnd</span><span class="p">.</span><span class="nx">row</span><span class="p">()</span> <span class="o">===</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">row</span><span class="p">());</span></div><div class='line' id='LC941'> <span class="p">},</span></div><div class='line' id='LC942'><br/></div><div class='line' id='LC943'> <span class="cm">/**</span></div><div class='line' id='LC944'><span class="cm"> * Selects cell relative to current cell (if possible)</span></div><div class='line' id='LC945'><span class="cm"> */</span></div><div class='line' id='LC946'> <span class="nx">transformStart</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">rowDelta</span><span class="p">,</span> <span class="nx">colDelta</span><span class="p">,</span> <span class="nx">force</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC947'> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">row</span><span class="p">()</span> <span class="o">+</span> <span class="nx">rowDelta</span> <span class="o">></span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countRows</span><span class="p">()</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC948'> <span class="k">if</span> <span class="p">(</span><span class="nx">force</span> <span class="o">&&</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">minSpareRows</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC949'> <span class="nx">instance</span><span class="p">.</span><span class="nx">alter</span><span class="p">(</span><span class="s2">"insert_row"</span><span class="p">,</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countRows</span><span class="p">());</span></div><div class='line' id='LC950'> <span class="p">}</span></div><div class='line' id='LC951'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">autoWrapCol</span> <span class="o">&&</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">col</span><span class="p">()</span> <span class="o">+</span> <span class="nx">colDelta</span> <span class="o"><</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countCols</span><span class="p">()</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC952'> <span class="nx">rowDelta</span> <span class="o">=</span> <span class="mi">1</span> <span class="o">-</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countRows</span><span class="p">();</span></div><div class='line' id='LC953'> <span class="nx">colDelta</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC954'> <span class="p">}</span></div><div class='line' id='LC955'> <span class="p">}</span></div><div class='line' id='LC956'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">autoWrapCol</span> <span class="o">&&</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">row</span><span class="p">()</span> <span class="o">+</span> <span class="nx">rowDelta</span> <span class="o"><</span> <span class="mi">0</span> <span class="o">&&</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">col</span><span class="p">()</span> <span class="o">+</span> <span class="nx">colDelta</span> <span class="o">>=</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC957'> <span class="nx">rowDelta</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countRows</span><span class="p">()</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC958'> <span class="nx">colDelta</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC959'> <span class="p">}</span></div><div class='line' id='LC960'> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">col</span><span class="p">()</span> <span class="o">+</span> <span class="nx">colDelta</span> <span class="o">></span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countCols</span><span class="p">()</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC961'> <span class="k">if</span> <span class="p">(</span><span class="nx">force</span> <span class="o">&&</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">minSpareCols</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC962'> <span class="nx">instance</span><span class="p">.</span><span class="nx">alter</span><span class="p">(</span><span class="s2">"insert_col"</span><span class="p">,</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countCols</span><span class="p">());</span></div><div class='line' id='LC963'> <span class="p">}</span></div><div class='line' id='LC964'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">autoWrapRow</span> <span class="o">&&</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">row</span><span class="p">()</span> <span class="o">+</span> <span class="nx">rowDelta</span> <span class="o"><</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countRows</span><span class="p">()</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC965'> <span class="nx">rowDelta</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC966'> <span class="nx">colDelta</span> <span class="o">=</span> <span class="mi">1</span> <span class="o">-</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countCols</span><span class="p">();</span></div><div class='line' id='LC967'> <span class="p">}</span></div><div class='line' id='LC968'> <span class="p">}</span></div><div class='line' id='LC969'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">autoWrapRow</span> <span class="o">&&</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">col</span><span class="p">()</span> <span class="o">+</span> <span class="nx">colDelta</span> <span class="o"><</span> <span class="mi">0</span> <span class="o">&&</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">row</span><span class="p">()</span> <span class="o">+</span> <span class="nx">rowDelta</span> <span class="o">>=</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC970'> <span class="nx">rowDelta</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC971'> <span class="nx">colDelta</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countCols</span><span class="p">()</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC972'> <span class="p">}</span></div><div class='line' id='LC973'><br/></div><div class='line' id='LC974'> <span class="kd">var</span> <span class="nx">totalRows</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countRows</span><span class="p">();</span></div><div class='line' id='LC975'> <span class="kd">var</span> <span class="nx">totalCols</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countCols</span><span class="p">();</span></div><div class='line' id='LC976'> <span class="kd">var</span> <span class="nx">coords</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC977'> <span class="nx">row</span><span class="o">:</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">row</span><span class="p">()</span> <span class="o">+</span> <span class="nx">rowDelta</span><span class="p">),</span></div><div class='line' id='LC978'> <span class="nx">col</span><span class="o">:</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">col</span><span class="p">()</span> <span class="o">+</span> <span class="nx">colDelta</span></div><div class='line' id='LC979'> <span class="p">};</span></div><div class='line' id='LC980'><br/></div><div class='line' id='LC981'> <span class="k">if</span> <span class="p">(</span><span class="nx">coords</span><span class="p">.</span><span class="nx">row</span> <span class="o"><</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC982'> <span class="nx">coords</span><span class="p">.</span><span class="nx">row</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC983'> <span class="p">}</span></div><div class='line' id='LC984'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">coords</span><span class="p">.</span><span class="nx">row</span> <span class="o">></span> <span class="mi">0</span> <span class="o">&&</span> <span class="nx">coords</span><span class="p">.</span><span class="nx">row</span> <span class="o">>=</span> <span class="nx">totalRows</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC985'> <span class="nx">coords</span><span class="p">.</span><span class="nx">row</span> <span class="o">=</span> <span class="nx">totalRows</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC986'> <span class="p">}</span></div><div class='line' id='LC987'><br/></div><div class='line' id='LC988'> <span class="k">if</span> <span class="p">(</span><span class="nx">coords</span><span class="p">.</span><span class="nx">col</span> <span class="o"><</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC989'> <span class="nx">coords</span><span class="p">.</span><span class="nx">col</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC990'> <span class="p">}</span></div><div class='line' id='LC991'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">coords</span><span class="p">.</span><span class="nx">col</span> <span class="o">></span> <span class="mi">0</span> <span class="o">&&</span> <span class="nx">coords</span><span class="p">.</span><span class="nx">col</span> <span class="o">>=</span> <span class="nx">totalCols</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC992'> <span class="nx">coords</span><span class="p">.</span><span class="nx">col</span> <span class="o">=</span> <span class="nx">totalCols</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC993'> <span class="p">}</span></div><div class='line' id='LC994'><br/></div><div class='line' id='LC995'> <span class="nx">selection</span><span class="p">.</span><span class="nx">setRangeStart</span><span class="p">(</span><span class="nx">coords</span><span class="p">);</span></div><div class='line' id='LC996'> <span class="p">},</span></div><div class='line' id='LC997'><br/></div><div class='line' id='LC998'> <span class="cm">/**</span></div><div class='line' id='LC999'><span class="cm"> * Sets selection end cell relative to current selection end cell (if possible)</span></div><div class='line' id='LC1000'><span class="cm"> */</span></div><div class='line' id='LC1001'> <span class="nx">transformEnd</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">rowDelta</span><span class="p">,</span> <span class="nx">colDelta</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1002'> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">selEnd</span><span class="p">.</span><span class="nx">exists</span><span class="p">())</span> <span class="p">{</span></div><div class='line' id='LC1003'> <span class="kd">var</span> <span class="nx">totalRows</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countRows</span><span class="p">();</span></div><div class='line' id='LC1004'> <span class="kd">var</span> <span class="nx">totalCols</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countCols</span><span class="p">();</span></div><div class='line' id='LC1005'> <span class="kd">var</span> <span class="nx">coords</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC1006'> <span class="nx">row</span><span class="o">:</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selEnd</span><span class="p">.</span><span class="nx">row</span><span class="p">()</span> <span class="o">+</span> <span class="nx">rowDelta</span><span class="p">,</span></div><div class='line' id='LC1007'> <span class="nx">col</span><span class="o">:</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selEnd</span><span class="p">.</span><span class="nx">col</span><span class="p">()</span> <span class="o">+</span> <span class="nx">colDelta</span></div><div class='line' id='LC1008'> <span class="p">};</span></div><div class='line' id='LC1009'><br/></div><div class='line' id='LC1010'> <span class="k">if</span> <span class="p">(</span><span class="nx">coords</span><span class="p">.</span><span class="nx">row</span> <span class="o"><</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1011'> <span class="nx">coords</span><span class="p">.</span><span class="nx">row</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC1012'> <span class="p">}</span></div><div class='line' id='LC1013'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">coords</span><span class="p">.</span><span class="nx">row</span> <span class="o">></span> <span class="mi">0</span> <span class="o">&&</span> <span class="nx">coords</span><span class="p">.</span><span class="nx">row</span> <span class="o">>=</span> <span class="nx">totalRows</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1014'> <span class="nx">coords</span><span class="p">.</span><span class="nx">row</span> <span class="o">=</span> <span class="nx">totalRows</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC1015'> <span class="p">}</span></div><div class='line' id='LC1016'><br/></div><div class='line' id='LC1017'> <span class="k">if</span> <span class="p">(</span><span class="nx">coords</span><span class="p">.</span><span class="nx">col</span> <span class="o"><</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1018'> <span class="nx">coords</span><span class="p">.</span><span class="nx">col</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC1019'> <span class="p">}</span></div><div class='line' id='LC1020'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">coords</span><span class="p">.</span><span class="nx">col</span> <span class="o">></span> <span class="mi">0</span> <span class="o">&&</span> <span class="nx">coords</span><span class="p">.</span><span class="nx">col</span> <span class="o">>=</span> <span class="nx">totalCols</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1021'> <span class="nx">coords</span><span class="p">.</span><span class="nx">col</span> <span class="o">=</span> <span class="nx">totalCols</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC1022'> <span class="p">}</span></div><div class='line' id='LC1023'><br/></div><div class='line' id='LC1024'> <span class="nx">selection</span><span class="p">.</span><span class="nx">setRangeEnd</span><span class="p">(</span><span class="nx">coords</span><span class="p">);</span></div><div class='line' id='LC1025'> <span class="p">}</span></div><div class='line' id='LC1026'> <span class="p">},</span></div><div class='line' id='LC1027'><br/></div><div class='line' id='LC1028'> <span class="cm">/**</span></div><div class='line' id='LC1029'><span class="cm"> * Returns true if currently there is a selection on screen, false otherwise</span></div><div class='line' id='LC1030'><span class="cm"> * @return {Boolean}</span></div><div class='line' id='LC1031'><span class="cm"> */</span></div><div class='line' id='LC1032'> <span class="nx">isSelected</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC1033'> <span class="k">return</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selEnd</span><span class="p">.</span><span class="nx">exists</span><span class="p">();</span></div><div class='line' id='LC1034'> <span class="p">},</span></div><div class='line' id='LC1035'><br/></div><div class='line' id='LC1036'> <span class="cm">/**</span></div><div class='line' id='LC1037'><span class="cm"> * Returns true if coords is within current selection coords</span></div><div class='line' id='LC1038'><span class="cm"> * @return {Boolean}</span></div><div class='line' id='LC1039'><span class="cm"> */</span></div><div class='line' id='LC1040'> <span class="nx">inInSelection</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">coords</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1041'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">selection</span><span class="p">.</span><span class="nx">isSelected</span><span class="p">())</span> <span class="p">{</span></div><div class='line' id='LC1042'> <span class="k">return</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC1043'> <span class="p">}</span></div><div class='line' id='LC1044'> <span class="kd">var</span> <span class="nx">sel</span> <span class="o">=</span> <span class="nx">grid</span><span class="p">.</span><span class="nx">getCornerCoords</span><span class="p">([</span><span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">coords</span><span class="p">(),</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selEnd</span><span class="p">.</span><span class="nx">coords</span><span class="p">()]);</span></div><div class='line' id='LC1045'> <span class="k">return</span> <span class="p">(</span><span class="nx">sel</span><span class="p">.</span><span class="nx">TL</span><span class="p">.</span><span class="nx">row</span> <span class="o"><=</span> <span class="nx">coords</span><span class="p">.</span><span class="nx">row</span> <span class="o">&&</span> <span class="nx">sel</span><span class="p">.</span><span class="nx">BR</span><span class="p">.</span><span class="nx">row</span> <span class="o">>=</span> <span class="nx">coords</span><span class="p">.</span><span class="nx">row</span> <span class="o">&&</span> <span class="nx">sel</span><span class="p">.</span><span class="nx">TL</span><span class="p">.</span><span class="nx">col</span> <span class="o"><=</span> <span class="nx">coords</span><span class="p">.</span><span class="nx">col</span> <span class="o">&&</span> <span class="nx">sel</span><span class="p">.</span><span class="nx">BR</span><span class="p">.</span><span class="nx">col</span> <span class="o">>=</span> <span class="nx">coords</span><span class="p">.</span><span class="nx">col</span><span class="p">);</span></div><div class='line' id='LC1046'> <span class="p">},</span></div><div class='line' id='LC1047'><br/></div><div class='line' id='LC1048'> <span class="cm">/**</span></div><div class='line' id='LC1049'><span class="cm"> * Deselects all selected cells</span></div><div class='line' id='LC1050'><span class="cm"> */</span></div><div class='line' id='LC1051'> <span class="nx">deselect</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC1052'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">selection</span><span class="p">.</span><span class="nx">isSelected</span><span class="p">())</span> <span class="p">{</span></div><div class='line' id='LC1053'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC1054'> <span class="p">}</span></div><div class='line' id='LC1055'> <span class="nx">instance</span><span class="p">.</span><span class="nx">selection</span><span class="p">.</span><span class="nx">inProgress</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span> <span class="c1">//needed by HT inception</span></div><div class='line' id='LC1056'> <span class="nx">priv</span><span class="p">.</span><span class="nx">selEnd</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">SelectionPoint</span><span class="p">();</span> <span class="c1">//create new empty point to remove the existing one</span></div><div class='line' id='LC1057'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">selections</span><span class="p">.</span><span class="nx">current</span><span class="p">.</span><span class="nx">clear</span><span class="p">();</span></div><div class='line' id='LC1058'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">selections</span><span class="p">.</span><span class="nx">area</span><span class="p">.</span><span class="nx">clear</span><span class="p">();</span></div><div class='line' id='LC1059'> <span class="nx">editproxy</span><span class="p">.</span><span class="nx">destroy</span><span class="p">();</span></div><div class='line' id='LC1060'> <span class="nx">selection</span><span class="p">.</span><span class="nx">refreshBorders</span><span class="p">();</span></div><div class='line' id='LC1061'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'afterDeselect'</span><span class="p">);</span></div><div class='line' id='LC1062'> <span class="p">},</span></div><div class='line' id='LC1063'><br/></div><div class='line' id='LC1064'> <span class="cm">/**</span></div><div class='line' id='LC1065'><span class="cm"> * Select all cells</span></div><div class='line' id='LC1066'><span class="cm"> */</span></div><div class='line' id='LC1067'> <span class="nx">selectAll</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC1068'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">multiSelect</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1069'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC1070'> <span class="p">}</span></div><div class='line' id='LC1071'> <span class="nx">selection</span><span class="p">.</span><span class="nx">setRangeStart</span><span class="p">({</span></div><div class='line' id='LC1072'> <span class="nx">row</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span></div><div class='line' id='LC1073'> <span class="nx">col</span><span class="o">:</span> <span class="mi">0</span></div><div class='line' id='LC1074'> <span class="p">});</span></div><div class='line' id='LC1075'> <span class="nx">selection</span><span class="p">.</span><span class="nx">setRangeEnd</span><span class="p">({</span></div><div class='line' id='LC1076'> <span class="nx">row</span><span class="o">:</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countRows</span><span class="p">()</span> <span class="o">-</span> <span class="mi">1</span><span class="p">,</span></div><div class='line' id='LC1077'> <span class="nx">col</span><span class="o">:</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countCols</span><span class="p">()</span> <span class="o">-</span> <span class="mi">1</span></div><div class='line' id='LC1078'> <span class="p">},</span> <span class="kc">false</span><span class="p">);</span></div><div class='line' id='LC1079'> <span class="p">},</span></div><div class='line' id='LC1080'><br/></div><div class='line' id='LC1081'> <span class="cm">/**</span></div><div class='line' id='LC1082'><span class="cm"> * Deletes data from selected cells</span></div><div class='line' id='LC1083'><span class="cm"> */</span></div><div class='line' id='LC1084'> <span class="nx">empty</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC1085'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">selection</span><span class="p">.</span><span class="nx">isSelected</span><span class="p">())</span> <span class="p">{</span></div><div class='line' id='LC1086'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC1087'> <span class="p">}</span></div><div class='line' id='LC1088'> <span class="kd">var</span> <span class="nx">corners</span> <span class="o">=</span> <span class="nx">grid</span><span class="p">.</span><span class="nx">getCornerCoords</span><span class="p">([</span><span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">coords</span><span class="p">(),</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selEnd</span><span class="p">.</span><span class="nx">coords</span><span class="p">()]);</span></div><div class='line' id='LC1089'> <span class="kd">var</span> <span class="nx">r</span><span class="p">,</span> <span class="nx">c</span><span class="p">,</span> <span class="nx">changes</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC1090'> <span class="k">for</span> <span class="p">(</span><span class="nx">r</span> <span class="o">=</span> <span class="nx">corners</span><span class="p">.</span><span class="nx">TL</span><span class="p">.</span><span class="nx">row</span><span class="p">;</span> <span class="nx">r</span> <span class="o"><=</span> <span class="nx">corners</span><span class="p">.</span><span class="nx">BR</span><span class="p">.</span><span class="nx">row</span><span class="p">;</span> <span class="nx">r</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1091'> <span class="k">for</span> <span class="p">(</span><span class="nx">c</span> <span class="o">=</span> <span class="nx">corners</span><span class="p">.</span><span class="nx">TL</span><span class="p">.</span><span class="nx">col</span><span class="p">;</span> <span class="nx">c</span> <span class="o"><=</span> <span class="nx">corners</span><span class="p">.</span><span class="nx">BR</span><span class="p">.</span><span class="nx">col</span><span class="p">;</span> <span class="nx">c</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1092'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getCellMeta</span><span class="p">(</span><span class="nx">r</span><span class="p">,</span> <span class="nx">c</span><span class="p">).</span><span class="nx">readOnly</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1093'> <span class="nx">changes</span><span class="p">.</span><span class="nx">push</span><span class="p">([</span><span class="nx">r</span><span class="p">,</span> <span class="nx">c</span><span class="p">,</span> <span class="s1">''</span><span class="p">]);</span></div><div class='line' id='LC1094'> <span class="p">}</span></div><div class='line' id='LC1095'> <span class="p">}</span></div><div class='line' id='LC1096'> <span class="p">}</span></div><div class='line' id='LC1097'> <span class="nx">instance</span><span class="p">.</span><span class="nx">setDataAtCell</span><span class="p">(</span><span class="nx">changes</span><span class="p">);</span></div><div class='line' id='LC1098'> <span class="p">}</span></div><div class='line' id='LC1099'> <span class="p">};</span></div><div class='line' id='LC1100'><br/></div><div class='line' id='LC1101'> <span class="k">this</span><span class="p">.</span><span class="nx">autofill</span> <span class="o">=</span> <span class="nx">autofill</span> <span class="o">=</span> <span class="p">{</span> <span class="c1">//this public assignment is only temporary</span></div><div class='line' id='LC1102'> <span class="nx">handle</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span></div><div class='line' id='LC1103'><br/></div><div class='line' id='LC1104'> <span class="cm">/**</span></div><div class='line' id='LC1105'><span class="cm"> * Create fill handle and fill border objects</span></div><div class='line' id='LC1106'><span class="cm"> */</span></div><div class='line' id='LC1107'> <span class="nx">init</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC1108'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">autofill</span><span class="p">.</span><span class="nx">handle</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1109'> <span class="nx">autofill</span><span class="p">.</span><span class="nx">handle</span> <span class="o">=</span> <span class="p">{};</span></div><div class='line' id='LC1110'> <span class="p">}</span></div><div class='line' id='LC1111'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC1112'> <span class="nx">autofill</span><span class="p">.</span><span class="nx">handle</span><span class="p">.</span><span class="nx">disabled</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC1113'> <span class="p">}</span></div><div class='line' id='LC1114'> <span class="p">},</span></div><div class='line' id='LC1115'><br/></div><div class='line' id='LC1116'> <span class="cm">/**</span></div><div class='line' id='LC1117'><span class="cm"> * Hide fill handle and fill border permanently</span></div><div class='line' id='LC1118'><span class="cm"> */</span></div><div class='line' id='LC1119'> <span class="nx">disable</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC1120'> <span class="nx">autofill</span><span class="p">.</span><span class="nx">handle</span><span class="p">.</span><span class="nx">disabled</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC1121'> <span class="p">},</span></div><div class='line' id='LC1122'><br/></div><div class='line' id='LC1123'> <span class="cm">/**</span></div><div class='line' id='LC1124'><span class="cm"> * Selects cells down to the last row in the left column, then fills down to that cell</span></div><div class='line' id='LC1125'><span class="cm"> */</span></div><div class='line' id='LC1126'> <span class="nx">selectAdjacent</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC1127'> <span class="kd">var</span> <span class="nx">select</span><span class="p">,</span> <span class="nx">data</span><span class="p">,</span> <span class="nx">r</span><span class="p">,</span> <span class="nx">maxR</span><span class="p">,</span> <span class="nx">c</span><span class="p">;</span></div><div class='line' id='LC1128'><br/></div><div class='line' id='LC1129'> <span class="k">if</span> <span class="p">(</span><span class="nx">selection</span><span class="p">.</span><span class="nx">isMultiple</span><span class="p">())</span> <span class="p">{</span></div><div class='line' id='LC1130'> <span class="nx">select</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">selections</span><span class="p">.</span><span class="nx">area</span><span class="p">.</span><span class="nx">getCorners</span><span class="p">();</span></div><div class='line' id='LC1131'> <span class="p">}</span></div><div class='line' id='LC1132'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC1133'> <span class="nx">select</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">selections</span><span class="p">.</span><span class="nx">current</span><span class="p">.</span><span class="nx">getCorners</span><span class="p">();</span></div><div class='line' id='LC1134'> <span class="p">}</span></div><div class='line' id='LC1135'><br/></div><div class='line' id='LC1136'> <span class="nx">data</span> <span class="o">=</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">getAll</span><span class="p">();</span></div><div class='line' id='LC1137'> <span class="nx">rows</span> <span class="o">:</span> <span class="k">for</span> <span class="p">(</span><span class="nx">r</span> <span class="o">=</span> <span class="nx">select</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span> <span class="nx">r</span> <span class="o"><</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countRows</span><span class="p">();</span> <span class="nx">r</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1138'> <span class="k">for</span> <span class="p">(</span><span class="nx">c</span> <span class="o">=</span> <span class="nx">select</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span> <span class="nx">c</span> <span class="o"><=</span> <span class="nx">select</span><span class="p">[</span><span class="mi">3</span><span class="p">];</span> <span class="nx">c</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1139'> <span class="k">if</span> <span class="p">(</span><span class="nx">data</span><span class="p">[</span><span class="nx">r</span><span class="p">][</span><span class="nx">c</span><span class="p">])</span> <span class="p">{</span></div><div class='line' id='LC1140'> <span class="k">break</span> <span class="nx">rows</span><span class="p">;</span></div><div class='line' id='LC1141'> <span class="p">}</span></div><div class='line' id='LC1142'> <span class="p">}</span></div><div class='line' id='LC1143'> <span class="k">if</span> <span class="p">(</span><span class="o">!!</span><span class="nx">data</span><span class="p">[</span><span class="nx">r</span><span class="p">][</span><span class="nx">select</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span> <span class="o">||</span> <span class="o">!!</span><span class="nx">data</span><span class="p">[</span><span class="nx">r</span><span class="p">][</span><span class="nx">select</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">+</span> <span class="mi">1</span><span class="p">])</span> <span class="p">{</span></div><div class='line' id='LC1144'> <span class="nx">maxR</span> <span class="o">=</span> <span class="nx">r</span><span class="p">;</span></div><div class='line' id='LC1145'> <span class="p">}</span></div><div class='line' id='LC1146'> <span class="p">}</span></div><div class='line' id='LC1147'> <span class="k">if</span> <span class="p">(</span><span class="nx">maxR</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1148'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">selections</span><span class="p">.</span><span class="nx">fill</span><span class="p">.</span><span class="nx">clear</span><span class="p">();</span></div><div class='line' id='LC1149'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">selections</span><span class="p">.</span><span class="nx">fill</span><span class="p">.</span><span class="nx">add</span><span class="p">([</span><span class="nx">select</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="nx">select</span><span class="p">[</span><span class="mi">1</span><span class="p">]]);</span></div><div class='line' id='LC1150'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">selections</span><span class="p">.</span><span class="nx">fill</span><span class="p">.</span><span class="nx">add</span><span class="p">([</span><span class="nx">maxR</span><span class="p">,</span> <span class="nx">select</span><span class="p">[</span><span class="mi">3</span><span class="p">]]);</span></div><div class='line' id='LC1151'> <span class="nx">autofill</span><span class="p">.</span><span class="nx">apply</span><span class="p">();</span></div><div class='line' id='LC1152'> <span class="p">}</span></div><div class='line' id='LC1153'> <span class="p">},</span></div><div class='line' id='LC1154'><br/></div><div class='line' id='LC1155'> <span class="cm">/**</span></div><div class='line' id='LC1156'><span class="cm"> * Apply fill values to the area in fill border, omitting the selection border</span></div><div class='line' id='LC1157'><span class="cm"> */</span></div><div class='line' id='LC1158'> <span class="nx">apply</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC1159'> <span class="kd">var</span> <span class="nx">drag</span><span class="p">,</span> <span class="nx">select</span><span class="p">,</span> <span class="nx">start</span><span class="p">,</span> <span class="nx">end</span><span class="p">,</span> <span class="nx">_data</span><span class="p">;</span></div><div class='line' id='LC1160'><br/></div><div class='line' id='LC1161'> <span class="nx">autofill</span><span class="p">.</span><span class="nx">handle</span><span class="p">.</span><span class="nx">isDragged</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC1162'><br/></div><div class='line' id='LC1163'> <span class="nx">drag</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">selections</span><span class="p">.</span><span class="nx">fill</span><span class="p">.</span><span class="nx">getCorners</span><span class="p">();</span></div><div class='line' id='LC1164'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">drag</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1165'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC1166'> <span class="p">}</span></div><div class='line' id='LC1167'><br/></div><div class='line' id='LC1168'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">selections</span><span class="p">.</span><span class="nx">fill</span><span class="p">.</span><span class="nx">clear</span><span class="p">();</span></div><div class='line' id='LC1169'><br/></div><div class='line' id='LC1170'> <span class="k">if</span> <span class="p">(</span><span class="nx">selection</span><span class="p">.</span><span class="nx">isMultiple</span><span class="p">())</span> <span class="p">{</span></div><div class='line' id='LC1171'> <span class="nx">select</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">selections</span><span class="p">.</span><span class="nx">area</span><span class="p">.</span><span class="nx">getCorners</span><span class="p">();</span></div><div class='line' id='LC1172'> <span class="p">}</span></div><div class='line' id='LC1173'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC1174'> <span class="nx">select</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">selections</span><span class="p">.</span><span class="nx">current</span><span class="p">.</span><span class="nx">getCorners</span><span class="p">();</span></div><div class='line' id='LC1175'> <span class="p">}</span></div><div class='line' id='LC1176'><br/></div><div class='line' id='LC1177'> <span class="k">if</span> <span class="p">(</span><span class="nx">drag</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">===</span> <span class="nx">select</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">&&</span> <span class="nx">drag</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o"><</span> <span class="nx">select</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="p">{</span></div><div class='line' id='LC1178'> <span class="nx">start</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC1179'> <span class="nx">row</span><span class="o">:</span> <span class="nx">drag</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span></div><div class='line' id='LC1180'> <span class="nx">col</span><span class="o">:</span> <span class="nx">drag</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span></div><div class='line' id='LC1181'> <span class="p">};</span></div><div class='line' id='LC1182'> <span class="nx">end</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC1183'> <span class="nx">row</span><span class="o">:</span> <span class="nx">drag</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span></div><div class='line' id='LC1184'> <span class="nx">col</span><span class="o">:</span> <span class="nx">select</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="mi">1</span></div><div class='line' id='LC1185'> <span class="p">};</span></div><div class='line' id='LC1186'> <span class="p">}</span></div><div class='line' id='LC1187'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">drag</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">===</span> <span class="nx">select</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">&&</span> <span class="nx">drag</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">></span> <span class="nx">select</span><span class="p">[</span><span class="mi">3</span><span class="p">])</span> <span class="p">{</span></div><div class='line' id='LC1188'> <span class="nx">start</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC1189'> <span class="nx">row</span><span class="o">:</span> <span class="nx">drag</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span></div><div class='line' id='LC1190'> <span class="nx">col</span><span class="o">:</span> <span class="nx">select</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">+</span> <span class="mi">1</span></div><div class='line' id='LC1191'> <span class="p">};</span></div><div class='line' id='LC1192'> <span class="nx">end</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC1193'> <span class="nx">row</span><span class="o">:</span> <span class="nx">drag</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span></div><div class='line' id='LC1194'> <span class="nx">col</span><span class="o">:</span> <span class="nx">drag</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span></div><div class='line' id='LC1195'> <span class="p">};</span></div><div class='line' id='LC1196'> <span class="p">}</span></div><div class='line' id='LC1197'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">drag</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o"><</span> <span class="nx">select</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">&&</span> <span class="nx">drag</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">===</span> <span class="nx">select</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="p">{</span></div><div class='line' id='LC1198'> <span class="nx">start</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC1199'> <span class="nx">row</span><span class="o">:</span> <span class="nx">drag</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span></div><div class='line' id='LC1200'> <span class="nx">col</span><span class="o">:</span> <span class="nx">drag</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span></div><div class='line' id='LC1201'> <span class="p">};</span></div><div class='line' id='LC1202'> <span class="nx">end</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC1203'> <span class="nx">row</span><span class="o">:</span> <span class="nx">select</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">-</span> <span class="mi">1</span><span class="p">,</span></div><div class='line' id='LC1204'> <span class="nx">col</span><span class="o">:</span> <span class="nx">drag</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span></div><div class='line' id='LC1205'> <span class="p">};</span></div><div class='line' id='LC1206'> <span class="p">}</span></div><div class='line' id='LC1207'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">drag</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">></span> <span class="nx">select</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">&&</span> <span class="nx">drag</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">===</span> <span class="nx">select</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="p">{</span></div><div class='line' id='LC1208'> <span class="nx">start</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC1209'> <span class="nx">row</span><span class="o">:</span> <span class="nx">select</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span></div><div class='line' id='LC1210'> <span class="nx">col</span><span class="o">:</span> <span class="nx">drag</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span></div><div class='line' id='LC1211'> <span class="p">};</span></div><div class='line' id='LC1212'> <span class="nx">end</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC1213'> <span class="nx">row</span><span class="o">:</span> <span class="nx">drag</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span></div><div class='line' id='LC1214'> <span class="nx">col</span><span class="o">:</span> <span class="nx">drag</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span></div><div class='line' id='LC1215'> <span class="p">};</span></div><div class='line' id='LC1216'> <span class="p">}</span></div><div class='line' id='LC1217'><br/></div><div class='line' id='LC1218'> <span class="k">if</span> <span class="p">(</span><span class="nx">start</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1219'><br/></div><div class='line' id='LC1220'> <span class="nx">_data</span> <span class="o">=</span> <span class="nx">SheetClip</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="nx">datamap</span><span class="p">.</span><span class="nx">getText</span><span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">coords</span><span class="p">(),</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selEnd</span><span class="p">.</span><span class="nx">coords</span><span class="p">()));</span></div><div class='line' id='LC1221'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'beforeAutofill'</span><span class="p">,</span> <span class="nx">start</span><span class="p">,</span> <span class="nx">end</span><span class="p">,</span> <span class="nx">_data</span><span class="p">);</span></div><div class='line' id='LC1222'><br/></div><div class='line' id='LC1223'> <span class="nx">grid</span><span class="p">.</span><span class="nx">populateFromArray</span><span class="p">(</span><span class="nx">start</span><span class="p">,</span> <span class="nx">_data</span><span class="p">,</span> <span class="nx">end</span><span class="p">,</span> <span class="s1">'autofill'</span><span class="p">);</span></div><div class='line' id='LC1224'><br/></div><div class='line' id='LC1225'> <span class="nx">selection</span><span class="p">.</span><span class="nx">setRangeStart</span><span class="p">({</span><span class="nx">row</span><span class="o">:</span> <span class="nx">drag</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="nx">col</span><span class="o">:</span> <span class="nx">drag</span><span class="p">[</span><span class="mi">1</span><span class="p">]});</span></div><div class='line' id='LC1226'> <span class="nx">selection</span><span class="p">.</span><span class="nx">setRangeEnd</span><span class="p">({</span><span class="nx">row</span><span class="o">:</span> <span class="nx">drag</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span> <span class="nx">col</span><span class="o">:</span> <span class="nx">drag</span><span class="p">[</span><span class="mi">3</span><span class="p">]});</span></div><div class='line' id='LC1227'> <span class="p">}</span></div><div class='line' id='LC1228'> <span class="cm">/*else {</span></div><div class='line' id='LC1229'><span class="cm"> //reset to avoid some range bug</span></div><div class='line' id='LC1230'><span class="cm"> selection.refreshBorders();</span></div><div class='line' id='LC1231'><span class="cm"> }*/</span></div><div class='line' id='LC1232'> <span class="p">},</span></div><div class='line' id='LC1233'><br/></div><div class='line' id='LC1234'> <span class="cm">/**</span></div><div class='line' id='LC1235'><span class="cm"> * Show fill border</span></div><div class='line' id='LC1236'><span class="cm"> */</span></div><div class='line' id='LC1237'> <span class="nx">showBorder</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">coords</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1238'> <span class="nx">coords</span><span class="p">.</span><span class="nx">row</span> <span class="o">=</span> <span class="nx">coords</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span></div><div class='line' id='LC1239'> <span class="nx">coords</span><span class="p">.</span><span class="nx">col</span> <span class="o">=</span> <span class="nx">coords</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span></div><div class='line' id='LC1240'><br/></div><div class='line' id='LC1241'> <span class="kd">var</span> <span class="nx">corners</span> <span class="o">=</span> <span class="nx">grid</span><span class="p">.</span><span class="nx">getCornerCoords</span><span class="p">([</span><span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">coords</span><span class="p">(),</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selEnd</span><span class="p">.</span><span class="nx">coords</span><span class="p">()]);</span></div><div class='line' id='LC1242'> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">fillHandle</span> <span class="o">!==</span> <span class="s1">'horizontal'</span> <span class="o">&&</span> <span class="p">(</span><span class="nx">corners</span><span class="p">.</span><span class="nx">BR</span><span class="p">.</span><span class="nx">row</span> <span class="o"><</span> <span class="nx">coords</span><span class="p">.</span><span class="nx">row</span> <span class="o">||</span> <span class="nx">corners</span><span class="p">.</span><span class="nx">TL</span><span class="p">.</span><span class="nx">row</span> <span class="o">></span> <span class="nx">coords</span><span class="p">.</span><span class="nx">row</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC1243'> <span class="nx">coords</span> <span class="o">=</span> <span class="p">[</span><span class="nx">coords</span><span class="p">.</span><span class="nx">row</span><span class="p">,</span> <span class="nx">corners</span><span class="p">.</span><span class="nx">BR</span><span class="p">.</span><span class="nx">col</span><span class="p">];</span></div><div class='line' id='LC1244'> <span class="p">}</span></div><div class='line' id='LC1245'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">fillHandle</span> <span class="o">!==</span> <span class="s1">'vertical'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1246'> <span class="nx">coords</span> <span class="o">=</span> <span class="p">[</span><span class="nx">corners</span><span class="p">.</span><span class="nx">BR</span><span class="p">.</span><span class="nx">row</span><span class="p">,</span> <span class="nx">coords</span><span class="p">.</span><span class="nx">col</span><span class="p">];</span></div><div class='line' id='LC1247'> <span class="p">}</span></div><div class='line' id='LC1248'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC1249'> <span class="k">return</span><span class="p">;</span> <span class="c1">//wrong direction</span></div><div class='line' id='LC1250'> <span class="p">}</span></div><div class='line' id='LC1251'><br/></div><div class='line' id='LC1252'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">selections</span><span class="p">.</span><span class="nx">fill</span><span class="p">.</span><span class="nx">clear</span><span class="p">();</span></div><div class='line' id='LC1253'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">selections</span><span class="p">.</span><span class="nx">fill</span><span class="p">.</span><span class="nx">add</span><span class="p">([</span><span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">coords</span><span class="p">().</span><span class="nx">row</span><span class="p">,</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">coords</span><span class="p">().</span><span class="nx">col</span><span class="p">]);</span></div><div class='line' id='LC1254'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">selections</span><span class="p">.</span><span class="nx">fill</span><span class="p">.</span><span class="nx">add</span><span class="p">([</span><span class="nx">priv</span><span class="p">.</span><span class="nx">selEnd</span><span class="p">.</span><span class="nx">coords</span><span class="p">().</span><span class="nx">row</span><span class="p">,</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selEnd</span><span class="p">.</span><span class="nx">coords</span><span class="p">().</span><span class="nx">col</span><span class="p">]);</span></div><div class='line' id='LC1255'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">selections</span><span class="p">.</span><span class="nx">fill</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="nx">coords</span><span class="p">);</span></div><div class='line' id='LC1256'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">render</span><span class="p">();</span></div><div class='line' id='LC1257'> <span class="p">}</span></div><div class='line' id='LC1258'> <span class="p">};</span></div><div class='line' id='LC1259'><br/></div><div class='line' id='LC1260'> <span class="nx">editproxy</span> <span class="o">=</span> <span class="p">{</span> <span class="c1">//this public assignment is only temporary</span></div><div class='line' id='LC1261'> <span class="cm">/**</span></div><div class='line' id='LC1262'><span class="cm"> * Create input field</span></div><div class='line' id='LC1263'><span class="cm"> */</span></div><div class='line' id='LC1264'> <span class="nx">init</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC1265'> <span class="nx">priv</span><span class="p">.</span><span class="nx">onCut</span> <span class="o">=</span> <span class="kd">function</span> <span class="nx">onCut</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC1266'> <span class="k">if</span> <span class="p">(</span><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">activeGuid</span> <span class="o">!==</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">guid</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1267'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC1268'> <span class="p">}</span></div><div class='line' id='LC1269'><br/></div><div class='line' id='LC1270'> <span class="nx">selection</span><span class="p">.</span><span class="nx">empty</span><span class="p">();</span></div><div class='line' id='LC1271'> <span class="p">};</span></div><div class='line' id='LC1272'><br/></div><div class='line' id='LC1273'> <span class="nx">priv</span><span class="p">.</span><span class="nx">onPaste</span> <span class="o">=</span> <span class="kd">function</span> <span class="nx">onPaste</span><span class="p">(</span><span class="nx">str</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1274'> <span class="k">if</span> <span class="p">(</span><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">activeGuid</span> <span class="o">!==</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">guid</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1275'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC1276'> <span class="p">}</span></div><div class='line' id='LC1277'><br/></div><div class='line' id='LC1278'> <span class="kd">var</span> <span class="nx">input</span> <span class="o">=</span> <span class="nx">str</span><span class="p">.</span><span class="nx">replace</span><span class="p">(</span><span class="sr">/^[\r\n]*/g</span><span class="p">,</span> <span class="s1">''</span><span class="p">).</span><span class="nx">replace</span><span class="p">(</span><span class="sr">/[\r\n]*$/g</span><span class="p">,</span> <span class="s1">''</span><span class="p">)</span> <span class="c1">//remove newline from the start and the end of the input</span></div><div class='line' id='LC1279'> <span class="p">,</span> <span class="nx">inputArray</span> <span class="o">=</span> <span class="nx">SheetClip</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="nx">input</span><span class="p">)</span></div><div class='line' id='LC1280'> <span class="p">,</span> <span class="nx">coords</span> <span class="o">=</span> <span class="nx">grid</span><span class="p">.</span><span class="nx">getCornerCoords</span><span class="p">([</span><span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">coords</span><span class="p">(),</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selEnd</span><span class="p">.</span><span class="nx">coords</span><span class="p">()])</span></div><div class='line' id='LC1281'> <span class="p">,</span> <span class="nx">areaStart</span> <span class="o">=</span> <span class="nx">coords</span><span class="p">.</span><span class="nx">TL</span></div><div class='line' id='LC1282'> <span class="p">,</span> <span class="nx">areaEnd</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC1283'> <span class="nx">row</span><span class="o">:</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="nx">coords</span><span class="p">.</span><span class="nx">BR</span><span class="p">.</span><span class="nx">row</span><span class="p">,</span> <span class="nx">inputArray</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span> <span class="mi">1</span> <span class="o">+</span> <span class="nx">coords</span><span class="p">.</span><span class="nx">TL</span><span class="p">.</span><span class="nx">row</span><span class="p">),</span></div><div class='line' id='LC1284'> <span class="nx">col</span><span class="o">:</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="nx">coords</span><span class="p">.</span><span class="nx">BR</span><span class="p">.</span><span class="nx">col</span><span class="p">,</span> <span class="nx">inputArray</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">length</span> <span class="o">-</span> <span class="mi">1</span> <span class="o">+</span> <span class="nx">coords</span><span class="p">.</span><span class="nx">TL</span><span class="p">.</span><span class="nx">col</span><span class="p">)</span></div><div class='line' id='LC1285'> <span class="p">};</span></div><div class='line' id='LC1286'><br/></div><div class='line' id='LC1287'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">once</span><span class="p">(</span><span class="s1">'afterChange'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">changes</span><span class="p">,</span> <span class="nx">source</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1288'> <span class="k">if</span> <span class="p">(</span><span class="nx">changes</span> <span class="o">&&</span> <span class="nx">changes</span><span class="p">.</span><span class="nx">length</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1289'> <span class="nx">instance</span><span class="p">.</span><span class="nx">selectCell</span><span class="p">(</span><span class="nx">areaStart</span><span class="p">.</span><span class="nx">row</span><span class="p">,</span> <span class="nx">areaStart</span><span class="p">.</span><span class="nx">col</span><span class="p">,</span> <span class="nx">areaEnd</span><span class="p">.</span><span class="nx">row</span><span class="p">,</span> <span class="nx">areaEnd</span><span class="p">.</span><span class="nx">col</span><span class="p">);</span></div><div class='line' id='LC1290'> <span class="p">}</span></div><div class='line' id='LC1291'> <span class="p">});</span></div><div class='line' id='LC1292'><br/></div><div class='line' id='LC1293'> <span class="nx">grid</span><span class="p">.</span><span class="nx">populateFromArray</span><span class="p">(</span><span class="nx">areaStart</span><span class="p">,</span> <span class="nx">inputArray</span><span class="p">,</span> <span class="nx">areaEnd</span><span class="p">,</span> <span class="s1">'paste'</span><span class="p">,</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">pasteMode</span><span class="p">);</span></div><div class='line' id='LC1294'> <span class="p">};</span></div><div class='line' id='LC1295'><br/></div><div class='line' id='LC1296'> <span class="kd">function</span> <span class="nx">onKeyDown</span><span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1297'> <span class="k">if</span> <span class="p">(</span><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">activeGuid</span> <span class="o">!==</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">guid</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1298'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC1299'> <span class="p">}</span></div><div class='line' id='LC1300'><br/></div><div class='line' id='LC1301'> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">beforeOnKeyDown</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// HOT in HOT Plugin</span></div><div class='line' id='LC1302'> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">beforeOnKeyDown</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">event</span><span class="p">);</span></div><div class='line' id='LC1303'> <span class="p">}</span></div><div class='line' id='LC1304'><br/></div><div class='line' id='LC1305'> <span class="k">if</span> <span class="p">(</span><span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">filter</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">body</span><span class="p">.</span><span class="nx">querySelectorAll</span><span class="p">(</span><span class="s1">'.context-menu-list'</span><span class="p">),</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">isVisible</span><span class="p">).</span><span class="nx">length</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//faster than $body.children('.context-menu-list:visible').length</span></div><div class='line' id='LC1306'> <span class="c1">//if right-click context menu is visible, do not execute this keydown handler (arrow keys will navigate the context menu)</span></div><div class='line' id='LC1307'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC1308'> <span class="p">}</span></div><div class='line' id='LC1309'><br/></div><div class='line' id='LC1310'> <span class="k">if</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">keyCode</span> <span class="o">===</span> <span class="mi">17</span> <span class="o">||</span> <span class="nx">event</span><span class="p">.</span><span class="nx">keyCode</span> <span class="o">===</span> <span class="mi">224</span> <span class="o">||</span> <span class="nx">event</span><span class="p">.</span><span class="nx">keyCode</span> <span class="o">===</span> <span class="mi">91</span> <span class="o">||</span> <span class="nx">event</span><span class="p">.</span><span class="nx">keyCode</span> <span class="o">===</span> <span class="mi">93</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1311'> <span class="c1">//when CTRL is pressed, prepare selectable text in textarea</span></div><div class='line' id='LC1312'> <span class="c1">//http://stackoverflow.com/questions/3902635/how-does-one-capture-a-macs-command-key-via-javascript</span></div><div class='line' id='LC1313'> <span class="nx">editproxy</span><span class="p">.</span><span class="nx">setCopyableText</span><span class="p">();</span></div><div class='line' id='LC1314'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC1315'> <span class="p">}</span></div><div class='line' id='LC1316'><br/></div><div class='line' id='LC1317'> <span class="nx">priv</span><span class="p">.</span><span class="nx">lastKeyCode</span> <span class="o">=</span> <span class="nx">event</span><span class="p">.</span><span class="nx">keyCode</span><span class="p">;</span></div><div class='line' id='LC1318'> <span class="k">if</span> <span class="p">(</span><span class="nx">selection</span><span class="p">.</span><span class="nx">isSelected</span><span class="p">())</span> <span class="p">{</span></div><div class='line' id='LC1319'> <span class="kd">var</span> <span class="nx">ctrlDown</span> <span class="o">=</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">ctrlKey</span> <span class="o">||</span> <span class="nx">event</span><span class="p">.</span><span class="nx">metaKey</span><span class="p">)</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">event</span><span class="p">.</span><span class="nx">altKey</span><span class="p">;</span> <span class="c1">//catch CTRL but not right ALT (which in some systems triggers ALT+CTRL)</span></div><div class='line' id='LC1320'> <span class="k">if</span> <span class="p">(</span><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">isPrintableChar</span><span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">keyCode</span><span class="p">)</span> <span class="o">&&</span> <span class="nx">ctrlDown</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1321'> <span class="k">if</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">keyCode</span> <span class="o">===</span> <span class="mi">65</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//CTRL + A</span></div><div class='line' id='LC1322'> <span class="nx">selection</span><span class="p">.</span><span class="nx">selectAll</span><span class="p">();</span> <span class="c1">//select all cells</span></div><div class='line' id='LC1323'> <span class="nx">editproxy</span><span class="p">.</span><span class="nx">setCopyableText</span><span class="p">();</span></div><div class='line' id='LC1324'> <span class="nx">event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">();</span></div><div class='line' id='LC1325'> <span class="p">}</span></div><div class='line' id='LC1326'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">keyCode</span> <span class="o">===</span> <span class="mi">89</span> <span class="o">||</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">shiftKey</span> <span class="o">&&</span> <span class="nx">event</span><span class="p">.</span><span class="nx">keyCode</span> <span class="o">===</span> <span class="mi">90</span><span class="p">))</span> <span class="p">{</span> <span class="c1">//CTRL + Y or CTRL + SHIFT + Z</span></div><div class='line' id='LC1327'> <span class="nx">priv</span><span class="p">.</span><span class="nx">undoRedo</span> <span class="o">&&</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">undoRedo</span><span class="p">.</span><span class="nx">redo</span><span class="p">();</span></div><div class='line' id='LC1328'> <span class="p">}</span></div><div class='line' id='LC1329'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">keyCode</span> <span class="o">===</span> <span class="mi">90</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//CTRL + Z</span></div><div class='line' id='LC1330'> <span class="nx">priv</span><span class="p">.</span><span class="nx">undoRedo</span> <span class="o">&&</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">undoRedo</span><span class="p">.</span><span class="nx">undo</span><span class="p">();</span></div><div class='line' id='LC1331'> <span class="p">}</span></div><div class='line' id='LC1332'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC1333'> <span class="p">}</span></div><div class='line' id='LC1334'><br/></div><div class='line' id='LC1335'> <span class="kd">var</span> <span class="nx">rangeModifier</span> <span class="o">=</span> <span class="nx">event</span><span class="p">.</span><span class="nx">shiftKey</span> <span class="o">?</span> <span class="nx">selection</span><span class="p">.</span><span class="nx">setRangeEnd</span> <span class="o">:</span> <span class="nx">selection</span><span class="p">.</span><span class="nx">setRangeStart</span><span class="p">;</span></div><div class='line' id='LC1336'><br/></div><div class='line' id='LC1337'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'beforeKeyDown'</span><span class="p">,</span> <span class="nx">event</span><span class="p">);</span></div><div class='line' id='LC1338'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">event</span><span class="p">.</span><span class="nx">isImmediatePropagationStopped</span><span class="p">())</span> <span class="p">{</span></div><div class='line' id='LC1339'><br/></div><div class='line' id='LC1340'> <span class="k">switch</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">keyCode</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1341'> <span class="k">case</span> <span class="mi">38</span><span class="o">:</span> <span class="cm">/* arrow up */</span></div><div class='line' id='LC1342'> <span class="k">if</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">shiftKey</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1343'> <span class="nx">selection</span><span class="p">.</span><span class="nx">transformEnd</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span></div><div class='line' id='LC1344'> <span class="p">}</span></div><div class='line' id='LC1345'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC1346'> <span class="nx">selection</span><span class="p">.</span><span class="nx">transformStart</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span></div><div class='line' id='LC1347'> <span class="p">}</span></div><div class='line' id='LC1348'> <span class="nx">event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">();</span></div><div class='line' id='LC1349'> <span class="nx">event</span><span class="p">.</span><span class="nx">stopPropagation</span><span class="p">();</span> <span class="c1">//required by HandsontableEditor</span></div><div class='line' id='LC1350'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC1351'><br/></div><div class='line' id='LC1352'> <span class="k">case</span> <span class="mi">9</span><span class="o">:</span> <span class="cm">/* tab */</span></div><div class='line' id='LC1353'> <span class="kd">var</span> <span class="nx">tabMoves</span> <span class="o">=</span> <span class="k">typeof</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">tabMoves</span> <span class="o">===</span> <span class="s1">'function'</span> <span class="o">?</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">tabMoves</span><span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="o">:</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">tabMoves</span><span class="p">;</span></div><div class='line' id='LC1354'> <span class="k">if</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">shiftKey</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1355'> <span class="nx">selection</span><span class="p">.</span><span class="nx">transformStart</span><span class="p">(</span><span class="o">-</span><span class="nx">tabMoves</span><span class="p">.</span><span class="nx">row</span><span class="p">,</span> <span class="o">-</span><span class="nx">tabMoves</span><span class="p">.</span><span class="nx">col</span><span class="p">);</span> <span class="c1">//move selection left</span></div><div class='line' id='LC1356'> <span class="p">}</span></div><div class='line' id='LC1357'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC1358'> <span class="nx">selection</span><span class="p">.</span><span class="nx">transformStart</span><span class="p">(</span><span class="nx">tabMoves</span><span class="p">.</span><span class="nx">row</span><span class="p">,</span> <span class="nx">tabMoves</span><span class="p">.</span><span class="nx">col</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span> <span class="c1">//move selection right (add a new column if needed)</span></div><div class='line' id='LC1359'> <span class="p">}</span></div><div class='line' id='LC1360'> <span class="nx">event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">();</span></div><div class='line' id='LC1361'> <span class="nx">event</span><span class="p">.</span><span class="nx">stopPropagation</span><span class="p">();</span> <span class="c1">//required by HandsontableEditor</span></div><div class='line' id='LC1362'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC1363'><br/></div><div class='line' id='LC1364'> <span class="k">case</span> <span class="mi">39</span><span class="o">:</span> <span class="cm">/* arrow right */</span></div><div class='line' id='LC1365'> <span class="k">if</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">shiftKey</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1366'> <span class="nx">selection</span><span class="p">.</span><span class="nx">transformEnd</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span></div><div class='line' id='LC1367'> <span class="p">}</span></div><div class='line' id='LC1368'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC1369'> <span class="nx">selection</span><span class="p">.</span><span class="nx">transformStart</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span></div><div class='line' id='LC1370'> <span class="p">}</span></div><div class='line' id='LC1371'> <span class="nx">event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">();</span></div><div class='line' id='LC1372'> <span class="nx">event</span><span class="p">.</span><span class="nx">stopPropagation</span><span class="p">();</span> <span class="c1">//required by HandsontableEditor</span></div><div class='line' id='LC1373'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC1374'><br/></div><div class='line' id='LC1375'> <span class="k">case</span> <span class="mi">37</span><span class="o">:</span> <span class="cm">/* arrow left */</span></div><div class='line' id='LC1376'> <span class="k">if</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">shiftKey</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1377'> <span class="nx">selection</span><span class="p">.</span><span class="nx">transformEnd</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">);</span></div><div class='line' id='LC1378'> <span class="p">}</span></div><div class='line' id='LC1379'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC1380'> <span class="nx">selection</span><span class="p">.</span><span class="nx">transformStart</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">);</span></div><div class='line' id='LC1381'> <span class="p">}</span></div><div class='line' id='LC1382'> <span class="nx">event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">();</span></div><div class='line' id='LC1383'> <span class="nx">event</span><span class="p">.</span><span class="nx">stopPropagation</span><span class="p">();</span> <span class="c1">//required by HandsontableEditor</span></div><div class='line' id='LC1384'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC1385'><br/></div><div class='line' id='LC1386'> <span class="k">case</span> <span class="mi">8</span><span class="o">:</span> <span class="cm">/* backspace */</span></div><div class='line' id='LC1387'> <span class="k">case</span> <span class="mi">46</span><span class="o">:</span> <span class="cm">/* delete */</span></div><div class='line' id='LC1388'> <span class="nx">selection</span><span class="p">.</span><span class="nx">empty</span><span class="p">(</span><span class="nx">event</span><span class="p">);</span></div><div class='line' id='LC1389'> <span class="nx">event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">();</span></div><div class='line' id='LC1390'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC1391'><br/></div><div class='line' id='LC1392'> <span class="k">case</span> <span class="mi">40</span><span class="o">:</span> <span class="cm">/* arrow down */</span></div><div class='line' id='LC1393'> <span class="k">if</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">shiftKey</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1394'> <span class="nx">selection</span><span class="p">.</span><span class="nx">transformEnd</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span> <span class="c1">//expanding selection down with shift</span></div><div class='line' id='LC1395'> <span class="p">}</span></div><div class='line' id='LC1396'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC1397'> <span class="nx">selection</span><span class="p">.</span><span class="nx">transformStart</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span> <span class="c1">//move selection down</span></div><div class='line' id='LC1398'> <span class="p">}</span></div><div class='line' id='LC1399'> <span class="nx">event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">();</span></div><div class='line' id='LC1400'> <span class="nx">event</span><span class="p">.</span><span class="nx">stopPropagation</span><span class="p">();</span> <span class="c1">//required by HandsontableEditor</span></div><div class='line' id='LC1401'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC1402'><br/></div><div class='line' id='LC1403'> <span class="k">case</span> <span class="mi">113</span><span class="o">:</span> <span class="cm">/* F2 */</span></div><div class='line' id='LC1404'> <span class="nx">event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">();</span> <span class="c1">//prevent Opera from opening Go to Page dialog</span></div><div class='line' id='LC1405'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC1406'><br/></div><div class='line' id='LC1407'> <span class="k">case</span> <span class="mi">13</span><span class="o">:</span> <span class="cm">/* return/enter */</span></div><div class='line' id='LC1408'> <span class="kd">var</span> <span class="nx">enterMoves</span> <span class="o">=</span> <span class="k">typeof</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">enterMoves</span> <span class="o">===</span> <span class="s1">'function'</span> <span class="o">?</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">enterMoves</span><span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="o">:</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">enterMoves</span><span class="p">;</span></div><div class='line' id='LC1409'><br/></div><div class='line' id='LC1410'> <span class="k">if</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">shiftKey</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1411'> <span class="nx">selection</span><span class="p">.</span><span class="nx">transformStart</span><span class="p">(</span><span class="o">-</span><span class="nx">enterMoves</span><span class="p">.</span><span class="nx">row</span><span class="p">,</span> <span class="o">-</span><span class="nx">enterMoves</span><span class="p">.</span><span class="nx">col</span><span class="p">);</span> <span class="c1">//move selection up</span></div><div class='line' id='LC1412'> <span class="p">}</span></div><div class='line' id='LC1413'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC1414'> <span class="nx">selection</span><span class="p">.</span><span class="nx">transformStart</span><span class="p">(</span><span class="nx">enterMoves</span><span class="p">.</span><span class="nx">row</span><span class="p">,</span> <span class="nx">enterMoves</span><span class="p">.</span><span class="nx">col</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span> <span class="c1">//move selection down (add a new row if needed)</span></div><div class='line' id='LC1415'> <span class="p">}</span></div><div class='line' id='LC1416'><br/></div><div class='line' id='LC1417'> <span class="nx">event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">();</span> <span class="c1">//don't add newline to field</span></div><div class='line' id='LC1418'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC1419'><br/></div><div class='line' id='LC1420'> <span class="k">case</span> <span class="mi">36</span><span class="o">:</span> <span class="cm">/* home */</span></div><div class='line' id='LC1421'> <span class="k">if</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">ctrlKey</span> <span class="o">||</span> <span class="nx">event</span><span class="p">.</span><span class="nx">metaKey</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1422'> <span class="nx">rangeModifier</span><span class="p">({</span><span class="nx">row</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">col</span><span class="o">:</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">col</span><span class="p">()});</span></div><div class='line' id='LC1423'> <span class="p">}</span></div><div class='line' id='LC1424'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC1425'> <span class="nx">rangeModifier</span><span class="p">({</span><span class="nx">row</span><span class="o">:</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">row</span><span class="p">(),</span> <span class="nx">col</span><span class="o">:</span> <span class="mi">0</span><span class="p">});</span></div><div class='line' id='LC1426'> <span class="p">}</span></div><div class='line' id='LC1427'> <span class="nx">event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">();</span> <span class="c1">//don't scroll the window</span></div><div class='line' id='LC1428'> <span class="nx">event</span><span class="p">.</span><span class="nx">stopPropagation</span><span class="p">();</span> <span class="c1">//required by HandsontableEditor</span></div><div class='line' id='LC1429'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC1430'><br/></div><div class='line' id='LC1431'> <span class="k">case</span> <span class="mi">35</span><span class="o">:</span> <span class="cm">/* end */</span></div><div class='line' id='LC1432'> <span class="k">if</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">ctrlKey</span> <span class="o">||</span> <span class="nx">event</span><span class="p">.</span><span class="nx">metaKey</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1433'> <span class="nx">rangeModifier</span><span class="p">({</span><span class="nx">row</span><span class="o">:</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countRows</span><span class="p">()</span> <span class="o">-</span> <span class="mi">1</span><span class="p">,</span> <span class="nx">col</span><span class="o">:</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">col</span><span class="p">()});</span></div><div class='line' id='LC1434'> <span class="p">}</span></div><div class='line' id='LC1435'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC1436'> <span class="nx">rangeModifier</span><span class="p">({</span><span class="nx">row</span><span class="o">:</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">row</span><span class="p">(),</span> <span class="nx">col</span><span class="o">:</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countCols</span><span class="p">()</span> <span class="o">-</span> <span class="mi">1</span><span class="p">});</span></div><div class='line' id='LC1437'> <span class="p">}</span></div><div class='line' id='LC1438'> <span class="nx">event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">();</span> <span class="c1">//don't scroll the window</span></div><div class='line' id='LC1439'> <span class="nx">event</span><span class="p">.</span><span class="nx">stopPropagation</span><span class="p">();</span> <span class="c1">//required by HandsontableEditor</span></div><div class='line' id='LC1440'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC1441'><br/></div><div class='line' id='LC1442'> <span class="k">case</span> <span class="mi">33</span><span class="o">:</span> <span class="cm">/* pg up */</span></div><div class='line' id='LC1443'> <span class="nx">selection</span><span class="p">.</span><span class="nx">transformStart</span><span class="p">(</span><span class="o">-</span><span class="nx">instance</span><span class="p">.</span><span class="nx">countVisibleRows</span><span class="p">(),</span> <span class="mi">0</span><span class="p">);</span></div><div class='line' id='LC1444'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">scrollVertical</span><span class="p">(</span><span class="o">-</span><span class="nx">instance</span><span class="p">.</span><span class="nx">countVisibleRows</span><span class="p">());</span></div><div class='line' id='LC1445'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">render</span><span class="p">();</span></div><div class='line' id='LC1446'> <span class="nx">event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">();</span> <span class="c1">//don't page up the window</span></div><div class='line' id='LC1447'> <span class="nx">event</span><span class="p">.</span><span class="nx">stopPropagation</span><span class="p">();</span> <span class="c1">//required by HandsontableEditor</span></div><div class='line' id='LC1448'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC1449'><br/></div><div class='line' id='LC1450'> <span class="k">case</span> <span class="mi">34</span><span class="o">:</span> <span class="cm">/* pg down */</span></div><div class='line' id='LC1451'> <span class="nx">selection</span><span class="p">.</span><span class="nx">transformStart</span><span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">countVisibleRows</span><span class="p">(),</span> <span class="mi">0</span><span class="p">);</span></div><div class='line' id='LC1452'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">scrollVertical</span><span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">countVisibleRows</span><span class="p">());</span></div><div class='line' id='LC1453'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">render</span><span class="p">();</span></div><div class='line' id='LC1454'> <span class="nx">event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">();</span> <span class="c1">//don't page down the window</span></div><div class='line' id='LC1455'> <span class="nx">event</span><span class="p">.</span><span class="nx">stopPropagation</span><span class="p">();</span> <span class="c1">//required by HandsontableEditor</span></div><div class='line' id='LC1456'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC1457'><br/></div><div class='line' id='LC1458'> <span class="k">default</span><span class="o">:</span></div><div class='line' id='LC1459'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC1460'> <span class="p">}</span></div><div class='line' id='LC1461'><br/></div><div class='line' id='LC1462'> <span class="p">}</span></div><div class='line' id='LC1463'> <span class="p">}</span></div><div class='line' id='LC1464'> <span class="p">}</span></div><div class='line' id='LC1465'><br/></div><div class='line' id='LC1466'> <span class="nx">instance</span><span class="p">.</span><span class="nx">copyPaste</span> <span class="o">=</span> <span class="nx">CopyPaste</span><span class="p">.</span><span class="nx">getInstance</span><span class="p">();</span></div><div class='line' id='LC1467'> <span class="nx">instance</span><span class="p">.</span><span class="nx">copyPaste</span><span class="p">.</span><span class="nx">onCut</span><span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">onCut</span><span class="p">);</span></div><div class='line' id='LC1468'> <span class="nx">instance</span><span class="p">.</span><span class="nx">copyPaste</span><span class="p">.</span><span class="nx">onPaste</span><span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">onPaste</span><span class="p">);</span></div><div class='line' id='LC1469'> <span class="nx">$document</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'keydown.handsontable.'</span> <span class="o">+</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">guid</span><span class="p">,</span> <span class="nx">onKeyDown</span><span class="p">);</span></div><div class='line' id='LC1470'> <span class="p">},</span></div><div class='line' id='LC1471'><br/></div><div class='line' id='LC1472'> <span class="cm">/**</span></div><div class='line' id='LC1473'><span class="cm"> * Destroy current editor, if exists</span></div><div class='line' id='LC1474'><span class="cm"> * @param {Boolean} revertOriginal</span></div><div class='line' id='LC1475'><span class="cm"> */</span></div><div class='line' id='LC1476'> <span class="nx">destroy</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">revertOriginal</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1477'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">editorDestroyer</span> <span class="o">===</span> <span class="s2">"function"</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1478'> <span class="kd">var</span> <span class="nx">destroyer</span> <span class="o">=</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">editorDestroyer</span><span class="p">;</span> <span class="c1">//this copy is needed, otherwise destroyer can enter an infinite loop</span></div><div class='line' id='LC1479'> <span class="nx">priv</span><span class="p">.</span><span class="nx">editorDestroyer</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span></div><div class='line' id='LC1480'> <span class="nx">destroyer</span><span class="p">(</span><span class="nx">revertOriginal</span><span class="p">);</span></div><div class='line' id='LC1481'> <span class="p">}</span></div><div class='line' id='LC1482'> <span class="p">},</span></div><div class='line' id='LC1483'><br/></div><div class='line' id='LC1484'> <span class="cm">/**</span></div><div class='line' id='LC1485'><span class="cm"> * Prepares copyable text in the invisible textarea</span></div><div class='line' id='LC1486'><span class="cm"> */</span></div><div class='line' id='LC1487'> <span class="nx">setCopyableText</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC1488'> <span class="kd">var</span> <span class="nx">startRow</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">min</span><span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">row</span><span class="p">(),</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selEnd</span><span class="p">.</span><span class="nx">row</span><span class="p">());</span></div><div class='line' id='LC1489'> <span class="kd">var</span> <span class="nx">startCol</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">min</span><span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">col</span><span class="p">(),</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selEnd</span><span class="p">.</span><span class="nx">col</span><span class="p">());</span></div><div class='line' id='LC1490'> <span class="kd">var</span> <span class="nx">endRow</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">row</span><span class="p">(),</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selEnd</span><span class="p">.</span><span class="nx">row</span><span class="p">());</span></div><div class='line' id='LC1491'> <span class="kd">var</span> <span class="nx">endCol</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">col</span><span class="p">(),</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selEnd</span><span class="p">.</span><span class="nx">col</span><span class="p">());</span></div><div class='line' id='LC1492'> <span class="kd">var</span> <span class="nx">finalEndRow</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">min</span><span class="p">(</span><span class="nx">endRow</span><span class="p">,</span> <span class="nx">startRow</span> <span class="o">+</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">copyRowsLimit</span> <span class="o">-</span> <span class="mi">1</span><span class="p">);</span></div><div class='line' id='LC1493'> <span class="kd">var</span> <span class="nx">finalEndCol</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">min</span><span class="p">(</span><span class="nx">endCol</span><span class="p">,</span> <span class="nx">startCol</span> <span class="o">+</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">copyColsLimit</span> <span class="o">-</span> <span class="mi">1</span><span class="p">);</span></div><div class='line' id='LC1494'><br/></div><div class='line' id='LC1495'> <span class="nx">instance</span><span class="p">.</span><span class="nx">copyPaste</span><span class="p">.</span><span class="nx">copyable</span><span class="p">(</span><span class="nx">datamap</span><span class="p">.</span><span class="nx">getText</span><span class="p">({</span><span class="nx">row</span><span class="o">:</span> <span class="nx">startRow</span><span class="p">,</span> <span class="nx">col</span><span class="o">:</span> <span class="nx">startCol</span><span class="p">},</span> <span class="p">{</span><span class="nx">row</span><span class="o">:</span> <span class="nx">finalEndRow</span><span class="p">,</span> <span class="nx">col</span><span class="o">:</span> <span class="nx">finalEndCol</span><span class="p">}));</span></div><div class='line' id='LC1496'><br/></div><div class='line' id='LC1497'> <span class="k">if</span> <span class="p">(</span><span class="nx">endRow</span> <span class="o">!==</span> <span class="nx">finalEndRow</span> <span class="o">||</span> <span class="nx">endCol</span> <span class="o">!==</span> <span class="nx">finalEndCol</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1498'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s2">"afterCopyLimit"</span><span class="p">,</span> <span class="nx">endRow</span> <span class="o">-</span> <span class="nx">startRow</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="nx">endCol</span> <span class="o">-</span> <span class="nx">startCol</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">copyRowsLimit</span><span class="p">,</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">copyColsLimit</span><span class="p">);</span></div><div class='line' id='LC1499'> <span class="p">}</span></div><div class='line' id='LC1500'> <span class="p">},</span></div><div class='line' id='LC1501'><br/></div><div class='line' id='LC1502'> <span class="cm">/**</span></div><div class='line' id='LC1503'><span class="cm"> * Prepare text input to be displayed at given grid cell</span></div><div class='line' id='LC1504'><span class="cm"> */</span></div><div class='line' id='LC1505'> <span class="nx">prepare</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC1506'> <span class="k">if</span> <span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getCellMeta</span><span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">row</span><span class="p">(),</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">col</span><span class="p">()).</span><span class="nx">readOnly</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1507'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC1508'> <span class="p">}</span></div><div class='line' id='LC1509'><br/></div><div class='line' id='LC1510'> <span class="nx">instance</span><span class="p">.</span><span class="nx">listen</span><span class="p">();</span></div><div class='line' id='LC1511'> <span class="kd">var</span> <span class="nx">TD</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">getCellAtCoords</span><span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">coords</span><span class="p">());</span></div><div class='line' id='LC1512'> <span class="nx">priv</span><span class="p">.</span><span class="nx">editorDestroyer</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">applyCellTypeMethod</span><span class="p">(</span><span class="s1">'editor'</span><span class="p">,</span> <span class="nx">TD</span><span class="p">,</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">row</span><span class="p">(),</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">col</span><span class="p">());</span></div><div class='line' id='LC1513'> <span class="c1">//presumably TD can be removed from here. Cell editor should also listen for changes if editable cell is outside from viewport</span></div><div class='line' id='LC1514'> <span class="p">}</span></div><div class='line' id='LC1515'> <span class="p">};</span></div><div class='line' id='LC1516'><br/></div><div class='line' id='LC1517'> <span class="k">this</span><span class="p">.</span><span class="nx">init</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC1518'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'beforeInit'</span><span class="p">);</span></div><div class='line' id='LC1519'> <span class="nx">editproxy</span><span class="p">.</span><span class="nx">init</span><span class="p">();</span></div><div class='line' id='LC1520'><br/></div><div class='line' id='LC1521'> <span class="k">this</span><span class="p">.</span><span class="nx">updateSettings</span><span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span></div><div class='line' id='LC1522'> <span class="k">this</span><span class="p">.</span><span class="nx">parseSettingsFromDOM</span><span class="p">();</span></div><div class='line' id='LC1523'> <span class="k">this</span><span class="p">.</span><span class="nx">view</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">TableView</span><span class="p">(</span><span class="k">this</span><span class="p">);</span></div><div class='line' id='LC1524'><br/></div><div class='line' id='LC1525'> <span class="k">this</span><span class="p">.</span><span class="nx">forceFullRender</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span> <span class="c1">//used when data was changed</span></div><div class='line' id='LC1526'> <span class="k">this</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">render</span><span class="p">();</span></div><div class='line' id='LC1527'><br/></div><div class='line' id='LC1528'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">firstRun</span> <span class="o">===</span> <span class="s1">'object'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1529'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'afterChange'</span><span class="p">,</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">firstRun</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">firstRun</span><span class="p">[</span><span class="mi">1</span><span class="p">]);</span></div><div class='line' id='LC1530'> <span class="nx">priv</span><span class="p">.</span><span class="nx">firstRun</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC1531'> <span class="p">}</span></div><div class='line' id='LC1532'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'afterInit'</span><span class="p">);</span></div><div class='line' id='LC1533'> <span class="p">};</span></div><div class='line' id='LC1534'><br/></div><div class='line' id='LC1535'> <span class="kd">function</span> <span class="nx">ValidatorsQueue</span><span class="p">()</span> <span class="p">{</span> <span class="c1">//moved this one level up so it can be used in any function here. Probably this should be moved to a separate file</span></div><div class='line' id='LC1536'> <span class="kd">var</span> <span class="nx">resolved</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC1537'><br/></div><div class='line' id='LC1538'> <span class="k">return</span> <span class="p">{</span></div><div class='line' id='LC1539'> <span class="nx">validatorsInQueue</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span></div><div class='line' id='LC1540'> <span class="nx">addValidatorToQueue</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC1541'> <span class="k">this</span><span class="p">.</span><span class="nx">validatorsInQueue</span><span class="o">++</span><span class="p">;</span></div><div class='line' id='LC1542'> <span class="nx">resolved</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC1543'> <span class="p">},</span></div><div class='line' id='LC1544'> <span class="nx">removeValidatorFormQueue</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC1545'> <span class="k">this</span><span class="p">.</span><span class="nx">validatorsInQueue</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">validatorsInQueue</span> <span class="o">-</span> <span class="mi">1</span> <span class="o"><</span> <span class="mi">0</span> <span class="o">?</span> <span class="mi">0</span> <span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">validatorsInQueue</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC1546'> <span class="k">this</span><span class="p">.</span><span class="nx">checkIfQueueIsEmpty</span><span class="p">();</span></div><div class='line' id='LC1547'> <span class="p">},</span></div><div class='line' id='LC1548'> <span class="nx">onQueueEmpty</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC1549'> <span class="p">},</span></div><div class='line' id='LC1550'> <span class="nx">checkIfQueueIsEmpty</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC1551'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">validatorsInQueue</span> <span class="o">==</span> <span class="mi">0</span> <span class="o">&&</span> <span class="nx">resolved</span> <span class="o">==</span> <span class="kc">false</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1552'> <span class="nx">resolved</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC1553'> <span class="k">this</span><span class="p">.</span><span class="nx">onQueueEmpty</span><span class="p">();</span></div><div class='line' id='LC1554'> <span class="p">}</span></div><div class='line' id='LC1555'> <span class="p">}</span></div><div class='line' id='LC1556'> <span class="p">};</span></div><div class='line' id='LC1557'> <span class="p">}</span></div><div class='line' id='LC1558'><br/></div><div class='line' id='LC1559'> <span class="kd">function</span> <span class="nx">validateChanges</span><span class="p">(</span><span class="nx">changes</span><span class="p">,</span> <span class="nx">source</span><span class="p">,</span> <span class="nx">callback</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1560'> <span class="kd">var</span> <span class="nx">waitingForValidator</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">ValidatorsQueue</span><span class="p">();</span></div><div class='line' id='LC1561'> <span class="nx">waitingForValidator</span><span class="p">.</span><span class="nx">onQueueEmpty</span> <span class="o">=</span> <span class="nx">resolve</span><span class="p">;</span></div><div class='line' id='LC1562'><br/></div><div class='line' id='LC1563'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="nx">changes</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span> <span class="nx">i</span> <span class="o">>=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span><span class="o">--</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1564'> <span class="k">if</span> <span class="p">(</span><span class="nx">changes</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">===</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1565'> <span class="nx">changes</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="nx">i</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span></div><div class='line' id='LC1566'> <span class="p">}</span></div><div class='line' id='LC1567'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC1568'> <span class="kd">var</span> <span class="nx">cellProperties</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getCellMeta</span><span class="p">(</span><span class="nx">changes</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">propToCol</span><span class="p">(</span><span class="nx">changes</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="mi">1</span><span class="p">]));</span></div><div class='line' id='LC1569'><br/></div><div class='line' id='LC1570'> <span class="k">if</span> <span class="p">(</span><span class="nx">cellProperties</span><span class="p">.</span><span class="nx">dataType</span> <span class="o">===</span> <span class="s1">'number'</span> <span class="o">&&</span> <span class="k">typeof</span> <span class="nx">changes</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="mi">3</span><span class="p">]</span> <span class="o">===</span> <span class="s1">'string'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1571'> <span class="k">if</span> <span class="p">(</span><span class="nx">changes</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="mi">3</span><span class="p">].</span><span class="nx">length</span> <span class="o">></span> <span class="mi">0</span> <span class="o">&&</span> <span class="sr">/^-?[\d\s]*\.?\d*$/</span><span class="p">.</span><span class="nx">test</span><span class="p">(</span><span class="nx">changes</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="mi">3</span><span class="p">]))</span> <span class="p">{</span></div><div class='line' id='LC1572'> <span class="nx">changes</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="mi">3</span><span class="p">]</span> <span class="o">=</span> <span class="nx">numeral</span><span class="p">().</span><span class="nx">unformat</span><span class="p">(</span><span class="nx">changes</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="mi">3</span><span class="p">]</span> <span class="o">||</span> <span class="s1">'0'</span><span class="p">);</span> <span class="c1">//numeral cannot unformat empty string</span></div><div class='line' id='LC1573'> <span class="p">}</span></div><div class='line' id='LC1574'> <span class="p">}</span></div><div class='line' id='LC1575'><br/></div><div class='line' id='LC1576'> <span class="k">if</span> <span class="p">(</span><span class="nx">cellProperties</span><span class="p">.</span><span class="nx">validator</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1577'> <span class="nx">waitingForValidator</span><span class="p">.</span><span class="nx">addValidatorToQueue</span><span class="p">();</span></div><div class='line' id='LC1578'> <span class="nx">instance</span><span class="p">.</span><span class="nx">validateCell</span><span class="p">(</span><span class="nx">changes</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="mi">3</span><span class="p">],</span> <span class="nx">cellProperties</span><span class="p">,</span> <span class="p">(</span><span class="kd">function</span> <span class="p">(</span><span class="nx">i</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1579'> <span class="k">return</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">result</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1580'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">result</span> <span class="o">!==</span> <span class="s1">'boolean'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1581'> <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s2">"Validation error: result is not boolean"</span><span class="p">);</span></div><div class='line' id='LC1582'> <span class="p">}</span></div><div class='line' id='LC1583'> <span class="k">if</span> <span class="p">(</span><span class="nx">result</span> <span class="o">===</span> <span class="kc">false</span> <span class="o">&&</span> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">allowInvalid</span> <span class="o">===</span> <span class="kc">false</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1584'> <span class="nx">changes</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="nx">i</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span></div><div class='line' id='LC1585'> <span class="o">--</span><span class="nx">i</span><span class="p">;</span></div><div class='line' id='LC1586'> <span class="p">}</span></div><div class='line' id='LC1587'> <span class="nx">waitingForValidator</span><span class="p">.</span><span class="nx">removeValidatorFormQueue</span><span class="p">();</span></div><div class='line' id='LC1588'> <span class="p">}</span></div><div class='line' id='LC1589'> <span class="p">})(</span><span class="nx">i</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">)</span></div><div class='line' id='LC1590'> <span class="p">,</span> <span class="nx">source</span><span class="p">);</span></div><div class='line' id='LC1591'> <span class="p">}</span></div><div class='line' id='LC1592'> <span class="p">}</span></div><div class='line' id='LC1593'> <span class="p">}</span></div><div class='line' id='LC1594'> <span class="nx">waitingForValidator</span><span class="p">.</span><span class="nx">checkIfQueueIsEmpty</span><span class="p">();</span></div><div class='line' id='LC1595'><br/></div><div class='line' id='LC1596'> <span class="kd">function</span> <span class="nx">resolve</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC1597'> <span class="kd">var</span> <span class="nx">beforeChangeResult</span><span class="p">;</span></div><div class='line' id='LC1598'><br/></div><div class='line' id='LC1599'> <span class="k">if</span> <span class="p">(</span><span class="nx">changes</span><span class="p">.</span><span class="nx">length</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1600'> <span class="nx">beforeChangeResult</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="s2">"beforeChange"</span><span class="p">,</span> <span class="nx">changes</span><span class="p">,</span> <span class="nx">source</span><span class="p">);</span></div><div class='line' id='LC1601'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">beforeChangeResult</span> <span class="o">===</span> <span class="s1">'function'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1602'> <span class="nx">$</span><span class="p">.</span><span class="nx">when</span><span class="p">(</span><span class="nx">result</span><span class="p">).</span><span class="nx">then</span><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC1603'> <span class="nx">callback</span><span class="p">();</span> <span class="c1">//called when async validators and async beforeChange are resolved</span></div><div class='line' id='LC1604'> <span class="p">});</span></div><div class='line' id='LC1605'> <span class="p">}</span></div><div class='line' id='LC1606'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">beforeChangeResult</span> <span class="o">===</span> <span class="kc">false</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1607'> <span class="nx">changes</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="nx">changes</span><span class="p">.</span><span class="nx">length</span><span class="p">);</span> <span class="c1">//invalidate all changes (remove everything from array)</span></div><div class='line' id='LC1608'> <span class="p">}</span></div><div class='line' id='LC1609'> <span class="p">}</span></div><div class='line' id='LC1610'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">beforeChangeResult</span> <span class="o">!==</span> <span class="s1">'function'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1611'> <span class="nx">callback</span><span class="p">();</span> <span class="c1">//called when async validators are resolved and beforeChange was not async</span></div><div class='line' id='LC1612'> <span class="p">}</span></div><div class='line' id='LC1613'> <span class="p">}</span></div><div class='line' id='LC1614'> <span class="p">}</span></div><div class='line' id='LC1615'><br/></div><div class='line' id='LC1616'> <span class="cm">/**</span></div><div class='line' id='LC1617'><span class="cm"> * Internal function to apply changes. Called after validateChanges</span></div><div class='line' id='LC1618'><span class="cm"> * @param {Array} changes Array in form of [row, prop, oldValue, newValue]</span></div><div class='line' id='LC1619'><span class="cm"> * @param {String} source String that identifies how this change will be described in changes array (useful in onChange callback)</span></div><div class='line' id='LC1620'><span class="cm"> */</span></div><div class='line' id='LC1621'> <span class="kd">function</span> <span class="nx">applyChanges</span><span class="p">(</span><span class="nx">changes</span><span class="p">,</span> <span class="nx">source</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1622'> <span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="nx">changes</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC1623'><br/></div><div class='line' id='LC1624'> <span class="k">if</span> <span class="p">(</span><span class="nx">i</span> <span class="o"><</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1625'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC1626'> <span class="p">}</span></div><div class='line' id='LC1627'><br/></div><div class='line' id='LC1628'> <span class="k">for</span> <span class="p">(;</span> <span class="mi">0</span> <span class="o"><=</span> <span class="nx">i</span><span class="p">;</span> <span class="nx">i</span><span class="o">--</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1629'> <span class="k">if</span> <span class="p">(</span><span class="nx">changes</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">===</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1630'> <span class="nx">changes</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="nx">i</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span></div><div class='line' id='LC1631'> <span class="k">continue</span><span class="p">;</span></div><div class='line' id='LC1632'> <span class="p">}</span></div><div class='line' id='LC1633'><br/></div><div class='line' id='LC1634'> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">minSpareRows</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1635'> <span class="k">while</span> <span class="p">(</span><span class="nx">changes</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">></span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countRows</span><span class="p">()</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1636'> <span class="nx">datamap</span><span class="p">.</span><span class="nx">createRow</span><span class="p">();</span></div><div class='line' id='LC1637'> <span class="p">}</span></div><div class='line' id='LC1638'> <span class="p">}</span></div><div class='line' id='LC1639'><br/></div><div class='line' id='LC1640'> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">dataType</span> <span class="o">===</span> <span class="s1">'array'</span> <span class="o">&&</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">minSpareCols</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1641'> <span class="k">while</span> <span class="p">(</span><span class="nx">datamap</span><span class="p">.</span><span class="nx">propToCol</span><span class="p">(</span><span class="nx">changes</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="mi">1</span><span class="p">])</span> <span class="o">></span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countCols</span><span class="p">()</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1642'> <span class="nx">datamap</span><span class="p">.</span><span class="nx">createCol</span><span class="p">();</span></div><div class='line' id='LC1643'> <span class="p">}</span></div><div class='line' id='LC1644'> <span class="p">}</span></div><div class='line' id='LC1645'><br/></div><div class='line' id='LC1646'> <span class="nx">datamap</span><span class="p">.</span><span class="nx">set</span><span class="p">(</span><span class="nx">changes</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="nx">changes</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="mi">1</span><span class="p">],</span> <span class="nx">changes</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="mi">3</span><span class="p">]);</span></div><div class='line' id='LC1647'> <span class="p">}</span></div><div class='line' id='LC1648'><br/></div><div class='line' id='LC1649'> <span class="nx">instance</span><span class="p">.</span><span class="nx">forceFullRender</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span> <span class="c1">//used when data was changed</span></div><div class='line' id='LC1650'> <span class="nx">grid</span><span class="p">.</span><span class="nx">adjustRowsAndCols</span><span class="p">();</span></div><div class='line' id='LC1651'> <span class="nx">selection</span><span class="p">.</span><span class="nx">refreshBorders</span><span class="p">();</span></div><div class='line' id='LC1652'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'afterChange'</span><span class="p">,</span> <span class="nx">changes</span><span class="p">,</span> <span class="nx">source</span> <span class="o">||</span> <span class="s1">'edit'</span><span class="p">);</span></div><div class='line' id='LC1653'> <span class="p">}</span></div><div class='line' id='LC1654'><br/></div><div class='line' id='LC1655'> <span class="k">this</span><span class="p">.</span><span class="nx">validateCell</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">value</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">,</span> <span class="nx">callback</span><span class="p">,</span> <span class="nx">source</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1656'> <span class="kd">var</span> <span class="nx">validator</span> <span class="o">=</span> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">validator</span><span class="p">;</span></div><div class='line' id='LC1657'><br/></div><div class='line' id='LC1658'> <span class="k">if</span> <span class="p">(</span><span class="nb">Object</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">toString</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">validator</span><span class="p">)</span> <span class="o">===</span> <span class="s1">'[object RegExp]'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1659'> <span class="nx">validator</span> <span class="o">=</span> <span class="p">(</span><span class="kd">function</span> <span class="p">(</span><span class="nx">validator</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1660'> <span class="k">return</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">value</span><span class="p">,</span> <span class="nx">callback</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1661'> <span class="nx">callback</span><span class="p">(</span><span class="nx">validator</span><span class="p">.</span><span class="nx">test</span><span class="p">(</span><span class="nx">value</span><span class="p">));</span></div><div class='line' id='LC1662'> <span class="p">}</span></div><div class='line' id='LC1663'> <span class="p">})(</span><span class="nx">validator</span><span class="p">);</span></div><div class='line' id='LC1664'> <span class="p">}</span></div><div class='line' id='LC1665'><br/></div><div class='line' id='LC1666'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">validator</span> <span class="o">===</span> <span class="s1">'function'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1667'> <span class="nx">value</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="s2">"beforeValidate"</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">row</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">prop</span><span class="p">,</span> <span class="nx">source</span><span class="p">);</span></div><div class='line' id='LC1668'><br/></div><div class='line' id='LC1669'> <span class="nx">validator</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">cellProperties</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">valid</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1670'> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">valid</span> <span class="o">=</span> <span class="nx">valid</span><span class="p">;</span></div><div class='line' id='LC1671'> <span class="nx">valid</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="s2">"afterValidate"</span><span class="p">,</span> <span class="nx">valid</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">row</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">prop</span><span class="p">,</span> <span class="nx">source</span><span class="p">);</span></div><div class='line' id='LC1672'> <span class="nx">callback</span><span class="p">(</span><span class="nx">valid</span><span class="p">);</span></div><div class='line' id='LC1673'> <span class="p">});</span></div><div class='line' id='LC1674'> <span class="p">}</span></div><div class='line' id='LC1675'> <span class="k">else</span> <span class="p">{</span> <span class="c1">//resolve callback even if validator function was not found</span></div><div class='line' id='LC1676'> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">valid</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC1677'> <span class="nx">callback</span><span class="p">(</span><span class="kc">true</span><span class="p">);</span></div><div class='line' id='LC1678'> <span class="p">}</span></div><div class='line' id='LC1679'> <span class="p">};</span></div><div class='line' id='LC1680'><br/></div><div class='line' id='LC1681'> <span class="kd">function</span> <span class="nx">setDataInputToArray</span><span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">prop_or_col</span><span class="p">,</span> <span class="nx">value</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1682'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">row</span> <span class="o">===</span> <span class="s2">"object"</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//is it an array of changes</span></div><div class='line' id='LC1683'> <span class="k">return</span> <span class="nx">row</span><span class="p">;</span></div><div class='line' id='LC1684'> <span class="p">}</span></div><div class='line' id='LC1685'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">$</span><span class="p">.</span><span class="nx">isPlainObject</span><span class="p">(</span><span class="nx">value</span><span class="p">))</span> <span class="p">{</span> <span class="c1">//backwards compatibility</span></div><div class='line' id='LC1686'> <span class="k">return</span> <span class="nx">value</span><span class="p">;</span></div><div class='line' id='LC1687'> <span class="p">}</span></div><div class='line' id='LC1688'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC1689'> <span class="k">return</span> <span class="p">[</span></div><div class='line' id='LC1690'> <span class="p">[</span><span class="nx">row</span><span class="p">,</span> <span class="nx">prop_or_col</span><span class="p">,</span> <span class="nx">value</span><span class="p">]</span></div><div class='line' id='LC1691'> <span class="p">];</span></div><div class='line' id='LC1692'> <span class="p">}</span></div><div class='line' id='LC1693'> <span class="p">}</span></div><div class='line' id='LC1694'><br/></div><div class='line' id='LC1695'> <span class="cm">/**</span></div><div class='line' id='LC1696'><span class="cm"> * Set data at given cell</span></div><div class='line' id='LC1697'><span class="cm"> * @public</span></div><div class='line' id='LC1698'><span class="cm"> * @param {Number|Array} row or array of changes in format [[row, col, value], ...]</span></div><div class='line' id='LC1699'><span class="cm"> * @param {Number|String} col or source String</span></div><div class='line' id='LC1700'><span class="cm"> * @param {String} value</span></div><div class='line' id='LC1701'><span class="cm"> * @param {String} source String that identifies how this change will be described in changes array (useful in onChange callback)</span></div><div class='line' id='LC1702'><span class="cm"> */</span></div><div class='line' id='LC1703'> <span class="k">this</span><span class="p">.</span><span class="nx">setDataAtCell</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="nx">source</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1704'> <span class="kd">var</span> <span class="nx">input</span> <span class="o">=</span> <span class="nx">setDataInputToArray</span><span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">value</span><span class="p">)</span></div><div class='line' id='LC1705'> <span class="p">,</span> <span class="nx">i</span></div><div class='line' id='LC1706'> <span class="p">,</span> <span class="nx">ilen</span></div><div class='line' id='LC1707'> <span class="p">,</span> <span class="nx">changes</span> <span class="o">=</span> <span class="p">[]</span></div><div class='line' id='LC1708'> <span class="p">,</span> <span class="nx">prop</span><span class="p">;</span></div><div class='line' id='LC1709'><br/></div><div class='line' id='LC1710'> <span class="k">for</span> <span class="p">(</span><span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">ilen</span> <span class="o">=</span> <span class="nx">input</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">ilen</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1711'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">input</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">!==</span> <span class="s1">'object'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1712'> <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s1">'Method `setDataAtCell` accepts row number or changes array of arrays as its first parameter'</span><span class="p">);</span></div><div class='line' id='LC1713'> <span class="p">}</span></div><div class='line' id='LC1714'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">input</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> <span class="o">!==</span> <span class="s1">'number'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1715'> <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s1">'Method `setDataAtCell` accepts row and column number as its parameters. If you want to use object property name, use method `setDataAtRowProp`'</span><span class="p">);</span></div><div class='line' id='LC1716'> <span class="p">}</span></div><div class='line' id='LC1717'> <span class="nx">prop</span> <span class="o">=</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">colToProp</span><span class="p">(</span><span class="nx">input</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="mi">1</span><span class="p">]);</span></div><div class='line' id='LC1718'> <span class="nx">changes</span><span class="p">.</span><span class="nx">push</span><span class="p">([</span></div><div class='line' id='LC1719'> <span class="nx">input</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span></div><div class='line' id='LC1720'> <span class="nx">prop</span><span class="p">,</span></div><div class='line' id='LC1721'> <span class="nx">datamap</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">input</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="nx">prop</span><span class="p">),</span></div><div class='line' id='LC1722'> <span class="nx">input</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="mi">2</span><span class="p">]</span></div><div class='line' id='LC1723'> <span class="p">]);</span></div><div class='line' id='LC1724'> <span class="p">}</span></div><div class='line' id='LC1725'><br/></div><div class='line' id='LC1726'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">source</span> <span class="o">&&</span> <span class="k">typeof</span> <span class="nx">row</span> <span class="o">===</span> <span class="s2">"object"</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1727'> <span class="nx">source</span> <span class="o">=</span> <span class="nx">col</span><span class="p">;</span></div><div class='line' id='LC1728'> <span class="p">}</span></div><div class='line' id='LC1729'><br/></div><div class='line' id='LC1730'> <span class="nx">validateChanges</span><span class="p">(</span><span class="nx">changes</span><span class="p">,</span> <span class="nx">source</span><span class="p">,</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC1731'> <span class="nx">applyChanges</span><span class="p">(</span><span class="nx">changes</span><span class="p">,</span> <span class="nx">source</span><span class="p">);</span></div><div class='line' id='LC1732'> <span class="p">});</span></div><div class='line' id='LC1733'> <span class="p">};</span></div><div class='line' id='LC1734'><br/></div><div class='line' id='LC1735'><br/></div><div class='line' id='LC1736'> <span class="cm">/**</span></div><div class='line' id='LC1737'><span class="cm"> * Set data at given row property</span></div><div class='line' id='LC1738'><span class="cm"> * @public</span></div><div class='line' id='LC1739'><span class="cm"> * @param {Number|Array} row or array of changes in format [[row, prop, value], ...]</span></div><div class='line' id='LC1740'><span class="cm"> * @param {String} prop or source String</span></div><div class='line' id='LC1741'><span class="cm"> * @param {String} value</span></div><div class='line' id='LC1742'><span class="cm"> * @param {String} source String that identifies how this change will be described in changes array (useful in onChange callback)</span></div><div class='line' id='LC1743'><span class="cm"> */</span></div><div class='line' id='LC1744'> <span class="k">this</span><span class="p">.</span><span class="nx">setDataAtRowProp</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="nx">source</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1745'> <span class="kd">var</span> <span class="nx">input</span> <span class="o">=</span> <span class="nx">setDataInputToArray</span><span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">value</span><span class="p">)</span></div><div class='line' id='LC1746'> <span class="p">,</span> <span class="nx">i</span></div><div class='line' id='LC1747'> <span class="p">,</span> <span class="nx">ilen</span></div><div class='line' id='LC1748'> <span class="p">,</span> <span class="nx">changes</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC1749'><br/></div><div class='line' id='LC1750'> <span class="k">for</span> <span class="p">(</span><span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">ilen</span> <span class="o">=</span> <span class="nx">input</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">ilen</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1751'> <span class="nx">changes</span><span class="p">.</span><span class="nx">push</span><span class="p">([</span></div><div class='line' id='LC1752'> <span class="nx">input</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span></div><div class='line' id='LC1753'> <span class="nx">input</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="mi">1</span><span class="p">],</span></div><div class='line' id='LC1754'> <span class="nx">datamap</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">input</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="nx">input</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="mi">1</span><span class="p">]),</span></div><div class='line' id='LC1755'> <span class="nx">input</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="mi">2</span><span class="p">]</span></div><div class='line' id='LC1756'> <span class="p">]);</span></div><div class='line' id='LC1757'> <span class="p">}</span></div><div class='line' id='LC1758'><br/></div><div class='line' id='LC1759'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">source</span> <span class="o">&&</span> <span class="k">typeof</span> <span class="nx">row</span> <span class="o">===</span> <span class="s2">"object"</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1760'> <span class="nx">source</span> <span class="o">=</span> <span class="nx">prop</span><span class="p">;</span></div><div class='line' id='LC1761'> <span class="p">}</span></div><div class='line' id='LC1762'><br/></div><div class='line' id='LC1763'> <span class="nx">validateChanges</span><span class="p">(</span><span class="nx">changes</span><span class="p">,</span> <span class="nx">source</span><span class="p">,</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC1764'> <span class="nx">applyChanges</span><span class="p">(</span><span class="nx">changes</span><span class="p">,</span> <span class="nx">source</span><span class="p">);</span></div><div class='line' id='LC1765'> <span class="p">});</span></div><div class='line' id='LC1766'> <span class="p">};</span></div><div class='line' id='LC1767'><br/></div><div class='line' id='LC1768'> <span class="cm">/**</span></div><div class='line' id='LC1769'><span class="cm"> * Listen to keyboard input</span></div><div class='line' id='LC1770'><span class="cm"> */</span></div><div class='line' id='LC1771'> <span class="k">this</span><span class="p">.</span><span class="nx">listen</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC1772'> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">activeGuid</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">guid</span><span class="p">;</span></div><div class='line' id='LC1773'><br/></div><div class='line' id='LC1774'> <span class="k">if</span> <span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">activeElement</span> <span class="o">&&</span> <span class="nb">document</span><span class="p">.</span><span class="nx">activeElement</span> <span class="o">!==</span> <span class="nb">document</span><span class="p">.</span><span class="nx">body</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1775'><br/></div><div class='line' id='LC1776'> <span class="k">if</span> <span class="p">(</span><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">isOutsideInput</span><span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">activeElement</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC1777'> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">activeGuid</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span></div><div class='line' id='LC1778'> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC1779'> <span class="nb">document</span><span class="p">.</span><span class="nx">activeElement</span><span class="p">.</span><span class="nx">blur</span><span class="p">();</span></div><div class='line' id='LC1780'> <span class="p">}</span></div><div class='line' id='LC1781'><br/></div><div class='line' id='LC1782'> <span class="p">}</span></div><div class='line' id='LC1783'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nb">document</span><span class="p">.</span><span class="nx">activeElement</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//IE</span></div><div class='line' id='LC1784'> <span class="nb">document</span><span class="p">.</span><span class="nx">body</span><span class="p">.</span><span class="nx">focus</span><span class="p">();</span></div><div class='line' id='LC1785'> <span class="p">}</span></div><div class='line' id='LC1786'> <span class="p">};</span></div><div class='line' id='LC1787'><br/></div><div class='line' id='LC1788'> <span class="cm">/**</span></div><div class='line' id='LC1789'><span class="cm"> * Destroys current editor, renders and selects current cell. If revertOriginal != true, edited data is saved</span></div><div class='line' id='LC1790'><span class="cm"> * @param {Boolean} revertOriginal</span></div><div class='line' id='LC1791'><span class="cm"> */</span></div><div class='line' id='LC1792'> <span class="k">this</span><span class="p">.</span><span class="nx">destroyEditor</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">revertOriginal</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1793'> <span class="nx">selection</span><span class="p">.</span><span class="nx">refreshBorders</span><span class="p">(</span><span class="nx">revertOriginal</span><span class="p">);</span></div><div class='line' id='LC1794'> <span class="p">};</span></div><div class='line' id='LC1795'><br/></div><div class='line' id='LC1796'> <span class="cm">/**</span></div><div class='line' id='LC1797'><span class="cm"> * Populate cells at position with 2d array</span></div><div class='line' id='LC1798'><span class="cm"> * @param {Number} row Start row</span></div><div class='line' id='LC1799'><span class="cm"> * @param {Number} col Start column</span></div><div class='line' id='LC1800'><span class="cm"> * @param {Array} input 2d array</span></div><div class='line' id='LC1801'><span class="cm"> * @param {Number=} endRow End row (use when you want to cut input when certain row is reached)</span></div><div class='line' id='LC1802'><span class="cm"> * @param {Number=} endCol End column (use when you want to cut input when certain column is reached)</span></div><div class='line' id='LC1803'><span class="cm"> * @param {String=} [source="populateFromArray"]</span></div><div class='line' id='LC1804'><span class="cm"> * @param {String=} [method="overwrite"]</span></div><div class='line' id='LC1805'><span class="cm"> * @return {Object|undefined} ending td in pasted area (only if any cell was changed)</span></div><div class='line' id='LC1806'><span class="cm"> */</span></div><div class='line' id='LC1807'> <span class="k">this</span><span class="p">.</span><span class="nx">populateFromArray</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">input</span><span class="p">,</span> <span class="nx">endRow</span><span class="p">,</span> <span class="nx">endCol</span><span class="p">,</span> <span class="nx">source</span><span class="p">,</span> <span class="nx">method</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1808'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">input</span> <span class="o">!==</span> <span class="s1">'object'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1809'> <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s2">"populateFromArray parameter `input` must be an array"</span><span class="p">);</span> <span class="c1">//API changed in 0.9-beta2, let's check if you use it correctly</span></div><div class='line' id='LC1810'> <span class="p">}</span></div><div class='line' id='LC1811'> <span class="k">return</span> <span class="nx">grid</span><span class="p">.</span><span class="nx">populateFromArray</span><span class="p">({</span><span class="nx">row</span><span class="o">:</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="o">:</span> <span class="nx">col</span><span class="p">},</span> <span class="nx">input</span><span class="p">,</span> <span class="k">typeof</span> <span class="nx">endRow</span> <span class="o">===</span> <span class="s1">'number'</span> <span class="o">?</span> <span class="p">{</span><span class="nx">row</span><span class="o">:</span> <span class="nx">endRow</span><span class="p">,</span> <span class="nx">col</span><span class="o">:</span> <span class="nx">endCol</span><span class="p">}</span> <span class="o">:</span> <span class="kc">null</span><span class="p">,</span> <span class="nx">source</span><span class="p">,</span> <span class="nx">method</span><span class="p">);</span></div><div class='line' id='LC1812'> <span class="p">};</span></div><div class='line' id='LC1813'><br/></div><div class='line' id='LC1814'> <span class="cm">/**</span></div><div class='line' id='LC1815'><span class="cm"> * Adds/removes data from the column</span></div><div class='line' id='LC1816'><span class="cm"> * @param {Number} col Index of column in which do you want to do splice.</span></div><div class='line' id='LC1817'><span class="cm"> * @param {Number} index Index at which to start changing the array. If negative, will begin that many elements from the end</span></div><div class='line' id='LC1818'><span class="cm"> * @param {Number} amount An integer indicating the number of old array elements to remove. If amount is 0, no elements are removed</span></div><div class='line' id='LC1819'><span class="cm"> * param {...*} elements Optional. The elements to add to the array. If you don't specify any elements, spliceCol simply removes elements from the array</span></div><div class='line' id='LC1820'><span class="cm"> */</span></div><div class='line' id='LC1821'> <span class="k">this</span><span class="p">.</span><span class="nx">spliceCol</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">col</span><span class="p">,</span> <span class="nx">index</span><span class="p">,</span> <span class="nx">amount</span><span class="cm">/*, elements... */</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1822'> <span class="k">return</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">spliceCol</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="kc">null</span><span class="p">,</span> <span class="nx">arguments</span><span class="p">);</span></div><div class='line' id='LC1823'> <span class="p">};</span></div><div class='line' id='LC1824'><br/></div><div class='line' id='LC1825'> <span class="cm">/**</span></div><div class='line' id='LC1826'><span class="cm"> * Adds/removes data from the row</span></div><div class='line' id='LC1827'><span class="cm"> * @param {Number} row Index of column in which do you want to do splice.</span></div><div class='line' id='LC1828'><span class="cm"> * @param {Number} index Index at which to start changing the array. If negative, will begin that many elements from the end</span></div><div class='line' id='LC1829'><span class="cm"> * @param {Number} amount An integer indicating the number of old array elements to remove. If amount is 0, no elements are removed</span></div><div class='line' id='LC1830'><span class="cm"> * param {...*} elements Optional. The elements to add to the array. If you don't specify any elements, spliceCol simply removes elements from the array</span></div><div class='line' id='LC1831'><span class="cm"> */</span></div><div class='line' id='LC1832'> <span class="k">this</span><span class="p">.</span><span class="nx">spliceRow</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">index</span><span class="p">,</span> <span class="nx">amount</span><span class="cm">/*, elements... */</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1833'> <span class="k">return</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">spliceRow</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="kc">null</span><span class="p">,</span> <span class="nx">arguments</span><span class="p">);</span></div><div class='line' id='LC1834'> <span class="p">};</span></div><div class='line' id='LC1835'><br/></div><div class='line' id='LC1836'> <span class="cm">/**</span></div><div class='line' id='LC1837'><span class="cm"> * Returns the top left (TL) and bottom right (BR) selection coordinates</span></div><div class='line' id='LC1838'><span class="cm"> * @param {Object[]} coordsArr</span></div><div class='line' id='LC1839'><span class="cm"> * @returns {Object}</span></div><div class='line' id='LC1840'><span class="cm"> */</span></div><div class='line' id='LC1841'> <span class="k">this</span><span class="p">.</span><span class="nx">getCornerCoords</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">coordsArr</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1842'> <span class="k">return</span> <span class="nx">grid</span><span class="p">.</span><span class="nx">getCornerCoords</span><span class="p">(</span><span class="nx">coordsArr</span><span class="p">);</span></div><div class='line' id='LC1843'> <span class="p">};</span></div><div class='line' id='LC1844'><br/></div><div class='line' id='LC1845'> <span class="cm">/**</span></div><div class='line' id='LC1846'><span class="cm"> * Returns current selection. Returns undefined if there is no selection.</span></div><div class='line' id='LC1847'><span class="cm"> * @public</span></div><div class='line' id='LC1848'><span class="cm"> * @return {Array} [`startRow`, `startCol`, `endRow`, `endCol`]</span></div><div class='line' id='LC1849'><span class="cm"> */</span></div><div class='line' id='LC1850'> <span class="k">this</span><span class="p">.</span><span class="nx">getSelected</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span> <span class="c1">//https://github.com/warpech/jquery-handsontable/issues/44 //cjl</span></div><div class='line' id='LC1851'> <span class="k">if</span> <span class="p">(</span><span class="nx">selection</span><span class="p">.</span><span class="nx">isSelected</span><span class="p">())</span> <span class="p">{</span></div><div class='line' id='LC1852'> <span class="k">return</span> <span class="p">[</span><span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">row</span><span class="p">(),</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">col</span><span class="p">(),</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selEnd</span><span class="p">.</span><span class="nx">row</span><span class="p">(),</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">selEnd</span><span class="p">.</span><span class="nx">col</span><span class="p">()];</span></div><div class='line' id='LC1853'> <span class="p">}</span></div><div class='line' id='LC1854'> <span class="p">};</span></div><div class='line' id='LC1855'><br/></div><div class='line' id='LC1856'> <span class="cm">/**</span></div><div class='line' id='LC1857'><span class="cm"> * Parse settings from DOM and CSS</span></div><div class='line' id='LC1858'><span class="cm"> * @public</span></div><div class='line' id='LC1859'><span class="cm"> */</span></div><div class='line' id='LC1860'> <span class="k">this</span><span class="p">.</span><span class="nx">parseSettingsFromDOM</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC1861'> <span class="kd">var</span> <span class="nx">overflow</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">.</span><span class="nx">css</span><span class="p">(</span><span class="s1">'overflow'</span><span class="p">);</span></div><div class='line' id='LC1862'> <span class="k">if</span> <span class="p">(</span><span class="nx">overflow</span> <span class="o">===</span> <span class="s1">'scroll'</span> <span class="o">||</span> <span class="nx">overflow</span> <span class="o">===</span> <span class="s1">'auto'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1863'> <span class="k">this</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">style</span><span class="p">.</span><span class="nx">overflow</span> <span class="o">=</span> <span class="s1">'visible'</span><span class="p">;</span></div><div class='line' id='LC1864'> <span class="nx">priv</span><span class="p">.</span><span class="nx">settingsFromDOM</span><span class="p">.</span><span class="nx">overflow</span> <span class="o">=</span> <span class="nx">overflow</span><span class="p">;</span></div><div class='line' id='LC1865'> <span class="p">}</span></div><div class='line' id='LC1866'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">width</span> <span class="o">===</span> <span class="k">void</span> <span class="mi">0</span> <span class="o">||</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">height</span> <span class="o">===</span> <span class="k">void</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1867'> <span class="nx">priv</span><span class="p">.</span><span class="nx">settingsFromDOM</span><span class="p">.</span><span class="nx">overflow</span> <span class="o">=</span> <span class="s1">'auto'</span><span class="p">;</span></div><div class='line' id='LC1868'> <span class="p">}</span></div><div class='line' id='LC1869'><br/></div><div class='line' id='LC1870'> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">width</span> <span class="o">===</span> <span class="k">void</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1871'> <span class="nx">priv</span><span class="p">.</span><span class="nx">settingsFromDOM</span><span class="p">.</span><span class="nx">width</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">.</span><span class="nx">width</span><span class="p">();</span></div><div class='line' id='LC1872'> <span class="p">}</span></div><div class='line' id='LC1873'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC1874'> <span class="nx">priv</span><span class="p">.</span><span class="nx">settingsFromDOM</span><span class="p">.</span><span class="nx">width</span> <span class="o">=</span> <span class="k">void</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC1875'> <span class="p">}</span></div><div class='line' id='LC1876'><br/></div><div class='line' id='LC1877'> <span class="nx">priv</span><span class="p">.</span><span class="nx">settingsFromDOM</span><span class="p">.</span><span class="nx">height</span> <span class="o">=</span> <span class="k">void</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC1878'> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">height</span> <span class="o">===</span> <span class="k">void</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1879'> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settingsFromDOM</span><span class="p">.</span><span class="nx">overflow</span> <span class="o">===</span> <span class="s1">'scroll'</span> <span class="o">||</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settingsFromDOM</span><span class="p">.</span><span class="nx">overflow</span> <span class="o">===</span> <span class="s1">'auto'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1880'> <span class="c1">//this needs to read only CSS/inline style and not actual height</span></div><div class='line' id='LC1881'> <span class="c1">//so we need to call getComputedStyle on cloned container</span></div><div class='line' id='LC1882'> <span class="kd">var</span> <span class="nx">clone</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">cloneNode</span><span class="p">(</span><span class="kc">false</span><span class="p">);</span></div><div class='line' id='LC1883'> <span class="kd">var</span> <span class="nx">parent</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">parentNode</span><span class="p">;</span></div><div class='line' id='LC1884'> <span class="k">if</span> <span class="p">(</span><span class="nx">parent</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1885'> <span class="nx">clone</span><span class="p">.</span><span class="nx">removeAttribute</span><span class="p">(</span><span class="s1">'id'</span><span class="p">);</span></div><div class='line' id='LC1886'> <span class="nx">parent</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">clone</span><span class="p">);</span></div><div class='line' id='LC1887'> <span class="kd">var</span> <span class="nx">computedHeight</span> <span class="o">=</span> <span class="nb">parseInt</span><span class="p">(</span><span class="nb">window</span><span class="p">.</span><span class="nx">getComputedStyle</span><span class="p">(</span><span class="nx">clone</span><span class="p">,</span> <span class="kc">null</span><span class="p">).</span><span class="nx">getPropertyValue</span><span class="p">(</span><span class="s1">'height'</span><span class="p">),</span> <span class="mi">10</span><span class="p">);</span></div><div class='line' id='LC1888'> <span class="k">if</span> <span class="p">(</span><span class="nx">computedHeight</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1889'> <span class="nx">priv</span><span class="p">.</span><span class="nx">settingsFromDOM</span><span class="p">.</span><span class="nx">height</span> <span class="o">=</span> <span class="nx">computedHeight</span><span class="p">;</span></div><div class='line' id='LC1890'> <span class="p">}</span></div><div class='line' id='LC1891'> <span class="nx">parent</span><span class="p">.</span><span class="nx">removeChild</span><span class="p">(</span><span class="nx">clone</span><span class="p">);</span></div><div class='line' id='LC1892'> <span class="p">}</span></div><div class='line' id='LC1893'> <span class="p">}</span></div><div class='line' id='LC1894'> <span class="p">}</span></div><div class='line' id='LC1895'> <span class="p">};</span></div><div class='line' id='LC1896'><br/></div><div class='line' id='LC1897'> <span class="cm">/**</span></div><div class='line' id='LC1898'><span class="cm"> * Render visible data</span></div><div class='line' id='LC1899'><span class="cm"> * @public</span></div><div class='line' id='LC1900'><span class="cm"> */</span></div><div class='line' id='LC1901'> <span class="k">this</span><span class="p">.</span><span class="nx">render</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC1902'> <span class="k">if</span> <span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1903'> <span class="nx">instance</span><span class="p">.</span><span class="nx">forceFullRender</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span> <span class="c1">//used when data was changed</span></div><div class='line' id='LC1904'> <span class="nx">instance</span><span class="p">.</span><span class="nx">parseSettingsFromDOM</span><span class="p">();</span></div><div class='line' id='LC1905'> <span class="nx">selection</span><span class="p">.</span><span class="nx">refreshBorders</span><span class="p">(</span><span class="kc">null</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span></div><div class='line' id='LC1906'> <span class="p">}</span></div><div class='line' id='LC1907'> <span class="p">};</span></div><div class='line' id='LC1908'><br/></div><div class='line' id='LC1909'> <span class="cm">/**</span></div><div class='line' id='LC1910'><span class="cm"> * Load data from array</span></div><div class='line' id='LC1911'><span class="cm"> * @public</span></div><div class='line' id='LC1912'><span class="cm"> * @param {Array} data</span></div><div class='line' id='LC1913'><span class="cm"> */</span></div><div class='line' id='LC1914'> <span class="k">this</span><span class="p">.</span><span class="nx">loadData</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">data</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1915'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="p">(</span><span class="nx">data</span><span class="p">.</span><span class="nx">push</span> <span class="o">&&</span> <span class="nx">data</span><span class="p">.</span><span class="nx">splice</span><span class="p">))</span> <span class="p">{</span> <span class="c1">//check if data is array. Must use duck-type check so Backbone Collections also pass it</span></div><div class='line' id='LC1916'> <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s2">"loadData only accepts array of objects or array of arrays ("</span> <span class="o">+</span> <span class="k">typeof</span> <span class="nx">data</span> <span class="o">+</span> <span class="s2">" given)"</span><span class="p">);</span></div><div class='line' id='LC1917'> <span class="p">}</span></div><div class='line' id='LC1918'><br/></div><div class='line' id='LC1919'> <span class="nx">priv</span><span class="p">.</span><span class="nx">isPopulated</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC1920'> <span class="nx">GridSettings</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">data</span> <span class="o">=</span> <span class="nx">data</span><span class="p">;</span></div><div class='line' id='LC1921'><br/></div><div class='line' id='LC1922'> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">dataSchema</span> <span class="k">instanceof</span> <span class="nb">Array</span> <span class="o">||</span> <span class="nx">data</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="k">instanceof</span> <span class="nb">Array</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1923'> <span class="nx">priv</span><span class="p">.</span><span class="nx">dataType</span> <span class="o">=</span> <span class="s1">'array'</span><span class="p">;</span></div><div class='line' id='LC1924'> <span class="p">}</span></div><div class='line' id='LC1925'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">$</span><span class="p">.</span><span class="nx">isFunction</span><span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">dataSchema</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC1926'> <span class="nx">priv</span><span class="p">.</span><span class="nx">dataType</span> <span class="o">=</span> <span class="s1">'function'</span><span class="p">;</span></div><div class='line' id='LC1927'> <span class="p">}</span></div><div class='line' id='LC1928'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC1929'> <span class="nx">priv</span><span class="p">.</span><span class="nx">dataType</span> <span class="o">=</span> <span class="s1">'object'</span><span class="p">;</span></div><div class='line' id='LC1930'> <span class="p">}</span></div><div class='line' id='LC1931'><br/></div><div class='line' id='LC1932'> <span class="k">if</span> <span class="p">(</span><span class="nx">data</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="p">{</span></div><div class='line' id='LC1933'> <span class="nx">priv</span><span class="p">.</span><span class="nx">duckDataSchema</span> <span class="o">=</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">recursiveDuckSchema</span><span class="p">(</span><span class="nx">data</span><span class="p">[</span><span class="mi">0</span><span class="p">]);</span></div><div class='line' id='LC1934'> <span class="p">}</span></div><div class='line' id='LC1935'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC1936'> <span class="nx">priv</span><span class="p">.</span><span class="nx">duckDataSchema</span> <span class="o">=</span> <span class="p">{};</span></div><div class='line' id='LC1937'> <span class="p">}</span></div><div class='line' id='LC1938'> <span class="nx">datamap</span><span class="p">.</span><span class="nx">createMap</span><span class="p">();</span></div><div class='line' id='LC1939'><br/></div><div class='line' id='LC1940'> <span class="nx">grid</span><span class="p">.</span><span class="nx">adjustRowsAndCols</span><span class="p">();</span></div><div class='line' id='LC1941'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'afterLoadData'</span><span class="p">);</span></div><div class='line' id='LC1942'><br/></div><div class='line' id='LC1943'> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">firstRun</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1944'> <span class="nx">priv</span><span class="p">.</span><span class="nx">firstRun</span> <span class="o">=</span> <span class="p">[</span><span class="kc">null</span><span class="p">,</span> <span class="s1">'loadData'</span><span class="p">];</span></div><div class='line' id='LC1945'> <span class="p">}</span></div><div class='line' id='LC1946'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC1947'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'afterChange'</span><span class="p">,</span> <span class="kc">null</span><span class="p">,</span> <span class="s1">'loadData'</span><span class="p">);</span></div><div class='line' id='LC1948'> <span class="nx">instance</span><span class="p">.</span><span class="nx">render</span><span class="p">();</span></div><div class='line' id='LC1949'> <span class="p">}</span></div><div class='line' id='LC1950'> <span class="nx">priv</span><span class="p">.</span><span class="nx">isPopulated</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC1951'> <span class="nx">instance</span><span class="p">.</span><span class="nx">clearUndo</span><span class="p">();</span></div><div class='line' id='LC1952'> <span class="p">};</span></div><div class='line' id='LC1953'><br/></div><div class='line' id='LC1954'> <span class="cm">/**</span></div><div class='line' id='LC1955'><span class="cm"> * Return the current data object (the same that was passed by `data` configuration option or `loadData` method). Optionally you can provide cell range `r`, `c`, `r2`, `c2` to get only a fragment of grid data</span></div><div class='line' id='LC1956'><span class="cm"> * @public</span></div><div class='line' id='LC1957'><span class="cm"> * @param {Number} r (Optional) From row</span></div><div class='line' id='LC1958'><span class="cm"> * @param {Number} c (Optional) From col</span></div><div class='line' id='LC1959'><span class="cm"> * @param {Number} r2 (Optional) To row</span></div><div class='line' id='LC1960'><span class="cm"> * @param {Number} c2 (Optional) To col</span></div><div class='line' id='LC1961'><span class="cm"> * @return {Array|Object}</span></div><div class='line' id='LC1962'><span class="cm"> */</span></div><div class='line' id='LC1963'> <span class="k">this</span><span class="p">.</span><span class="nx">getData</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">r</span><span class="p">,</span> <span class="nx">c</span><span class="p">,</span> <span class="nx">r2</span><span class="p">,</span> <span class="nx">c2</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1964'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">r</span> <span class="o">===</span> <span class="s1">'undefined'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1965'> <span class="k">return</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">getAll</span><span class="p">();</span></div><div class='line' id='LC1966'> <span class="p">}</span></div><div class='line' id='LC1967'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC1968'> <span class="k">return</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">getRange</span><span class="p">({</span><span class="nx">row</span><span class="o">:</span> <span class="nx">r</span><span class="p">,</span> <span class="nx">col</span><span class="o">:</span> <span class="nx">c</span><span class="p">},</span> <span class="p">{</span><span class="nx">row</span><span class="o">:</span> <span class="nx">r2</span><span class="p">,</span> <span class="nx">col</span><span class="o">:</span> <span class="nx">c2</span><span class="p">});</span></div><div class='line' id='LC1969'> <span class="p">}</span></div><div class='line' id='LC1970'> <span class="p">};</span></div><div class='line' id='LC1971'><br/></div><div class='line' id='LC1972'> <span class="cm">/**</span></div><div class='line' id='LC1973'><span class="cm"> * Update settings</span></div><div class='line' id='LC1974'><span class="cm"> * @public</span></div><div class='line' id='LC1975'><span class="cm"> */</span></div><div class='line' id='LC1976'> <span class="k">this</span><span class="p">.</span><span class="nx">updateSettings</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">settings</span><span class="p">,</span> <span class="nx">init</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1977'> <span class="kd">var</span> <span class="nx">i</span><span class="p">,</span> <span class="nx">r</span><span class="p">,</span> <span class="nx">rlen</span><span class="p">,</span> <span class="nx">c</span><span class="p">,</span> <span class="nx">clen</span><span class="p">;</span></div><div class='line' id='LC1978'><br/></div><div class='line' id='LC1979'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">settings</span><span class="p">.</span><span class="nx">rows</span> <span class="o">!==</span> <span class="s2">"undefined"</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1980'> <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s2">"'rows' setting is no longer supported. do you mean startRows, minRows or maxRows?"</span><span class="p">);</span></div><div class='line' id='LC1981'> <span class="p">}</span></div><div class='line' id='LC1982'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">settings</span><span class="p">.</span><span class="nx">cols</span> <span class="o">!==</span> <span class="s2">"undefined"</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1983'> <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s2">"'cols' setting is no longer supported. do you mean startCols, minCols or maxCols?"</span><span class="p">);</span></div><div class='line' id='LC1984'> <span class="p">}</span></div><div class='line' id='LC1985'><br/></div><div class='line' id='LC1986'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">settings</span><span class="p">.</span><span class="nx">undo</span> <span class="o">!==</span> <span class="s2">"undefined"</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1987'> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">undoRedo</span> <span class="o">&&</span> <span class="nx">settings</span><span class="p">.</span><span class="nx">undo</span> <span class="o">===</span> <span class="kc">false</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1988'> <span class="nx">priv</span><span class="p">.</span><span class="nx">undoRedo</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span></div><div class='line' id='LC1989'> <span class="p">}</span></div><div class='line' id='LC1990'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">priv</span><span class="p">.</span><span class="nx">undoRedo</span> <span class="o">&&</span> <span class="nx">settings</span><span class="p">.</span><span class="nx">undo</span> <span class="o">===</span> <span class="kc">true</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1991'> <span class="nx">priv</span><span class="p">.</span><span class="nx">undoRedo</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">UndoRedo</span><span class="p">(</span><span class="nx">instance</span><span class="p">);</span></div><div class='line' id='LC1992'> <span class="p">}</span></div><div class='line' id='LC1993'> <span class="p">}</span></div><div class='line' id='LC1994'><br/></div><div class='line' id='LC1995'> <span class="k">for</span> <span class="p">(</span><span class="nx">i</span> <span class="k">in</span> <span class="nx">settings</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1996'> <span class="k">if</span> <span class="p">(</span><span class="nx">i</span> <span class="o">===</span> <span class="s1">'data'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC1997'> <span class="k">continue</span><span class="p">;</span> <span class="c1">//loadData will be triggered later</span></div><div class='line' id='LC1998'> <span class="p">}</span></div><div class='line' id='LC1999'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC2000'> <span class="k">if</span> <span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">hooks</span><span class="p">.</span><span class="nx">persistent</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">!==</span> <span class="k">void</span> <span class="mi">0</span> <span class="o">||</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">legacy</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">!==</span> <span class="k">void</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2001'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="nx">i</span><span class="p">,</span> <span class="nx">settings</span><span class="p">[</span><span class="nx">i</span><span class="p">]);</span></div><div class='line' id='LC2002'> <span class="p">}</span></div><div class='line' id='LC2003'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC2004'> <span class="c1">// Update settings</span></div><div class='line' id='LC2005'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">init</span> <span class="o">&&</span> <span class="nx">settings</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">i</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC2006'> <span class="nx">GridSettings</span><span class="p">.</span><span class="nx">prototype</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">=</span> <span class="nx">settings</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span></div><div class='line' id='LC2007'> <span class="p">}</span></div><div class='line' id='LC2008'><br/></div><div class='line' id='LC2009'> <span class="c1">//launch extensions</span></div><div class='line' id='LC2010'> <span class="k">if</span> <span class="p">(</span><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">extension</span><span class="p">[</span><span class="nx">i</span><span class="p">])</span> <span class="p">{</span></div><div class='line' id='LC2011'> <span class="nx">priv</span><span class="p">.</span><span class="nx">extensions</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">extension</span><span class="p">[</span><span class="nx">i</span><span class="p">](</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">settings</span><span class="p">[</span><span class="nx">i</span><span class="p">]);</span></div><div class='line' id='LC2012'> <span class="p">}</span></div><div class='line' id='LC2013'> <span class="p">}</span></div><div class='line' id='LC2014'> <span class="p">}</span></div><div class='line' id='LC2015'> <span class="p">}</span></div><div class='line' id='LC2016'><br/></div><div class='line' id='LC2017'> <span class="c1">// Load data or create data map</span></div><div class='line' id='LC2018'> <span class="k">if</span> <span class="p">(</span><span class="nx">settings</span><span class="p">.</span><span class="nx">data</span> <span class="o">===</span> <span class="k">void</span> <span class="mi">0</span> <span class="o">&&</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">data</span> <span class="o">===</span> <span class="k">void</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2019'> <span class="kd">var</span> <span class="nx">data</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC2020'> <span class="kd">var</span> <span class="nx">row</span><span class="p">;</span></div><div class='line' id='LC2021'> <span class="k">for</span> <span class="p">(</span><span class="nx">r</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">rlen</span> <span class="o">=</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">startRows</span><span class="p">;</span> <span class="nx">r</span> <span class="o"><</span> <span class="nx">rlen</span><span class="p">;</span> <span class="nx">r</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2022'> <span class="nx">row</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC2023'> <span class="k">for</span> <span class="p">(</span><span class="nx">c</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">clen</span> <span class="o">=</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">startCols</span><span class="p">;</span> <span class="nx">c</span> <span class="o"><</span> <span class="nx">clen</span><span class="p">;</span> <span class="nx">c</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2024'> <span class="nx">row</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="kc">null</span><span class="p">);</span></div><div class='line' id='LC2025'> <span class="p">}</span></div><div class='line' id='LC2026'> <span class="nx">data</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">row</span><span class="p">);</span></div><div class='line' id='LC2027'> <span class="p">}</span></div><div class='line' id='LC2028'> <span class="nx">instance</span><span class="p">.</span><span class="nx">loadData</span><span class="p">(</span><span class="nx">data</span><span class="p">);</span> <span class="c1">//data source created just now</span></div><div class='line' id='LC2029'> <span class="p">}</span></div><div class='line' id='LC2030'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">settings</span><span class="p">.</span><span class="nx">data</span> <span class="o">!==</span> <span class="k">void</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2031'> <span class="nx">instance</span><span class="p">.</span><span class="nx">loadData</span><span class="p">(</span><span class="nx">settings</span><span class="p">.</span><span class="nx">data</span><span class="p">);</span> <span class="c1">//data source given as option</span></div><div class='line' id='LC2032'> <span class="p">}</span></div><div class='line' id='LC2033'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">settings</span><span class="p">.</span><span class="nx">columns</span> <span class="o">!==</span> <span class="k">void</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2034'> <span class="nx">datamap</span><span class="p">.</span><span class="nx">createMap</span><span class="p">();</span></div><div class='line' id='LC2035'> <span class="p">}</span></div><div class='line' id='LC2036'><br/></div><div class='line' id='LC2037'> <span class="c1">// Init columns constructors configuration</span></div><div class='line' id='LC2038'> <span class="nx">clen</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countCols</span><span class="p">();</span></div><div class='line' id='LC2039'><br/></div><div class='line' id='LC2040'> <span class="c1">//Clear cellSettings cache</span></div><div class='line' id='LC2041'> <span class="nx">priv</span><span class="p">.</span><span class="nx">cellSettings</span><span class="p">.</span><span class="nx">length</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC2042'><br/></div><div class='line' id='LC2043'> <span class="k">if</span> <span class="p">(</span><span class="nx">clen</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2044'> <span class="kd">var</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">proto</span><span class="p">,</span> <span class="nx">column</span><span class="p">;</span></div><div class='line' id='LC2045'><br/></div><div class='line' id='LC2046'> <span class="k">for</span> <span class="p">(</span><span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">clen</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2047'> <span class="nx">priv</span><span class="p">.</span><span class="nx">columnSettings</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">=</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">columnFactory</span><span class="p">(</span><span class="nx">GridSettings</span><span class="p">,</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">columnsSettingConflicts</span><span class="p">,</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">TextCell</span><span class="p">);</span></div><div class='line' id='LC2048'><br/></div><div class='line' id='LC2049'> <span class="c1">// shortcut for prototype</span></div><div class='line' id='LC2050'> <span class="nx">proto</span> <span class="o">=</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">columnSettings</span><span class="p">[</span><span class="nx">i</span><span class="p">].</span><span class="nx">prototype</span><span class="p">;</span></div><div class='line' id='LC2051'><br/></div><div class='line' id='LC2052'> <span class="c1">// Use settings provided by user</span></div><div class='line' id='LC2053'> <span class="k">if</span> <span class="p">(</span><span class="nx">GridSettings</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">columns</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2054'> <span class="nx">column</span> <span class="o">=</span> <span class="nx">GridSettings</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">columns</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span></div><div class='line' id='LC2055'> <span class="k">for</span> <span class="p">(</span><span class="nx">prop</span> <span class="k">in</span> <span class="nx">column</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2056'> <span class="k">if</span> <span class="p">(</span><span class="nx">column</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">prop</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC2057'> <span class="nx">proto</span><span class="p">[</span><span class="nx">prop</span><span class="p">]</span> <span class="o">=</span> <span class="nx">column</span><span class="p">[</span><span class="nx">prop</span><span class="p">];</span></div><div class='line' id='LC2058'> <span class="p">}</span></div><div class='line' id='LC2059'> <span class="p">}</span></div><div class='line' id='LC2060'> <span class="p">}</span></div><div class='line' id='LC2061'> <span class="p">}</span></div><div class='line' id='LC2062'> <span class="p">}</span></div><div class='line' id='LC2063'><br/></div><div class='line' id='LC2064'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">settings</span><span class="p">.</span><span class="nx">fillHandle</span> <span class="o">!==</span> <span class="s2">"undefined"</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2065'> <span class="k">if</span> <span class="p">(</span><span class="nx">autofill</span><span class="p">.</span><span class="nx">handle</span> <span class="o">&&</span> <span class="nx">settings</span><span class="p">.</span><span class="nx">fillHandle</span> <span class="o">===</span> <span class="kc">false</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2066'> <span class="nx">autofill</span><span class="p">.</span><span class="nx">disable</span><span class="p">();</span></div><div class='line' id='LC2067'> <span class="p">}</span></div><div class='line' id='LC2068'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">autofill</span><span class="p">.</span><span class="nx">handle</span> <span class="o">&&</span> <span class="nx">settings</span><span class="p">.</span><span class="nx">fillHandle</span> <span class="o">!==</span> <span class="kc">false</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2069'> <span class="nx">autofill</span><span class="p">.</span><span class="nx">init</span><span class="p">();</span></div><div class='line' id='LC2070'> <span class="p">}</span></div><div class='line' id='LC2071'> <span class="p">}</span></div><div class='line' id='LC2072'><br/></div><div class='line' id='LC2073'><br/></div><div class='line' id='LC2074'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">init</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2075'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'afterUpdateSettings'</span><span class="p">);</span></div><div class='line' id='LC2076'> <span class="p">}</span></div><div class='line' id='LC2077'><br/></div><div class='line' id='LC2078'> <span class="nx">grid</span><span class="p">.</span><span class="nx">adjustRowsAndCols</span><span class="p">();</span></div><div class='line' id='LC2079'> <span class="k">if</span> <span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2080'> <span class="nx">instance</span><span class="p">.</span><span class="nx">forceFullRender</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span> <span class="c1">//used when data was changed</span></div><div class='line' id='LC2081'> <span class="nx">selection</span><span class="p">.</span><span class="nx">refreshBorders</span><span class="p">(</span><span class="kc">null</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span></div><div class='line' id='LC2082'> <span class="p">}</span></div><div class='line' id='LC2083'> <span class="p">};</span></div><div class='line' id='LC2084'><br/></div><div class='line' id='LC2085'> <span class="cm">/**</span></div><div class='line' id='LC2086'><span class="cm"> * Returns current settings object</span></div><div class='line' id='LC2087'><span class="cm"> * @return {Object}</span></div><div class='line' id='LC2088'><span class="cm"> */</span></div><div class='line' id='LC2089'> <span class="k">this</span><span class="p">.</span><span class="nx">getSettings</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC2090'> <span class="k">return</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">;</span></div><div class='line' id='LC2091'> <span class="p">};</span></div><div class='line' id='LC2092'><br/></div><div class='line' id='LC2093'> <span class="cm">/**</span></div><div class='line' id='LC2094'><span class="cm"> * Returns current settingsFromDOM object</span></div><div class='line' id='LC2095'><span class="cm"> * @return {Object}</span></div><div class='line' id='LC2096'><span class="cm"> */</span></div><div class='line' id='LC2097'> <span class="k">this</span><span class="p">.</span><span class="nx">getSettingsFromDOM</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC2098'> <span class="k">return</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settingsFromDOM</span><span class="p">;</span></div><div class='line' id='LC2099'> <span class="p">};</span></div><div class='line' id='LC2100'><br/></div><div class='line' id='LC2101'> <span class="cm">/**</span></div><div class='line' id='LC2102'><span class="cm"> * Clears grid</span></div><div class='line' id='LC2103'><span class="cm"> * @public</span></div><div class='line' id='LC2104'><span class="cm"> */</span></div><div class='line' id='LC2105'> <span class="k">this</span><span class="p">.</span><span class="nx">clear</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC2106'> <span class="nx">selection</span><span class="p">.</span><span class="nx">selectAll</span><span class="p">();</span></div><div class='line' id='LC2107'> <span class="nx">selection</span><span class="p">.</span><span class="nx">empty</span><span class="p">();</span></div><div class='line' id='LC2108'> <span class="p">};</span></div><div class='line' id='LC2109'><br/></div><div class='line' id='LC2110'> <span class="cm">/**</span></div><div class='line' id='LC2111'><span class="cm"> * Return true if undo can be performed, false otherwise</span></div><div class='line' id='LC2112'><span class="cm"> * @public</span></div><div class='line' id='LC2113'><span class="cm"> */</span></div><div class='line' id='LC2114'> <span class="k">this</span><span class="p">.</span><span class="nx">isUndoAvailable</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC2115'> <span class="k">return</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">undoRedo</span> <span class="o">&&</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">undoRedo</span><span class="p">.</span><span class="nx">isUndoAvailable</span><span class="p">();</span></div><div class='line' id='LC2116'> <span class="p">};</span></div><div class='line' id='LC2117'><br/></div><div class='line' id='LC2118'> <span class="cm">/**</span></div><div class='line' id='LC2119'><span class="cm"> * Return true if redo can be performed, false otherwise</span></div><div class='line' id='LC2120'><span class="cm"> * @public</span></div><div class='line' id='LC2121'><span class="cm"> */</span></div><div class='line' id='LC2122'> <span class="k">this</span><span class="p">.</span><span class="nx">isRedoAvailable</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC2123'> <span class="k">return</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">undoRedo</span> <span class="o">&&</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">undoRedo</span><span class="p">.</span><span class="nx">isRedoAvailable</span><span class="p">();</span></div><div class='line' id='LC2124'> <span class="p">};</span></div><div class='line' id='LC2125'><br/></div><div class='line' id='LC2126'> <span class="cm">/**</span></div><div class='line' id='LC2127'><span class="cm"> * Undo last edit</span></div><div class='line' id='LC2128'><span class="cm"> * @public</span></div><div class='line' id='LC2129'><span class="cm"> */</span></div><div class='line' id='LC2130'> <span class="k">this</span><span class="p">.</span><span class="nx">undo</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC2131'> <span class="nx">priv</span><span class="p">.</span><span class="nx">undoRedo</span> <span class="o">&&</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">undoRedo</span><span class="p">.</span><span class="nx">undo</span><span class="p">();</span></div><div class='line' id='LC2132'> <span class="p">};</span></div><div class='line' id='LC2133'><br/></div><div class='line' id='LC2134'> <span class="cm">/**</span></div><div class='line' id='LC2135'><span class="cm"> * Redo edit (used to reverse an undo)</span></div><div class='line' id='LC2136'><span class="cm"> * @public</span></div><div class='line' id='LC2137'><span class="cm"> */</span></div><div class='line' id='LC2138'> <span class="k">this</span><span class="p">.</span><span class="nx">redo</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC2139'> <span class="nx">priv</span><span class="p">.</span><span class="nx">undoRedo</span> <span class="o">&&</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">undoRedo</span><span class="p">.</span><span class="nx">redo</span><span class="p">();</span></div><div class='line' id='LC2140'> <span class="p">};</span></div><div class='line' id='LC2141'><br/></div><div class='line' id='LC2142'> <span class="cm">/**</span></div><div class='line' id='LC2143'><span class="cm"> * Clears undo history</span></div><div class='line' id='LC2144'><span class="cm"> * @public</span></div><div class='line' id='LC2145'><span class="cm"> */</span></div><div class='line' id='LC2146'> <span class="k">this</span><span class="p">.</span><span class="nx">clearUndo</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC2147'> <span class="nx">priv</span><span class="p">.</span><span class="nx">undoRedo</span> <span class="o">&&</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">undoRedo</span><span class="p">.</span><span class="nx">clear</span><span class="p">();</span></div><div class='line' id='LC2148'> <span class="p">};</span></div><div class='line' id='LC2149'><br/></div><div class='line' id='LC2150'> <span class="cm">/**</span></div><div class='line' id='LC2151'><span class="cm"> * Inserts or removes rows and columns</span></div><div class='line' id='LC2152'><span class="cm"> * @param {String} action See grid.alter for possible values</span></div><div class='line' id='LC2153'><span class="cm"> * @param {Number} index</span></div><div class='line' id='LC2154'><span class="cm"> * @param {Number} amount</span></div><div class='line' id='LC2155'><span class="cm"> * @param {String} [source] Optional. Source of hook runner.</span></div><div class='line' id='LC2156'><span class="cm"> * @param {Boolean} [keepEmptyRows] Optional. Flag for preventing deletion of empty rows.</span></div><div class='line' id='LC2157'><span class="cm"> * @public</span></div><div class='line' id='LC2158'><span class="cm"> */</span></div><div class='line' id='LC2159'> <span class="k">this</span><span class="p">.</span><span class="nx">alter</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">action</span><span class="p">,</span> <span class="nx">index</span><span class="p">,</span> <span class="nx">amount</span><span class="p">,</span> <span class="nx">source</span><span class="p">,</span> <span class="nx">keepEmptyRows</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2160'> <span class="nx">grid</span><span class="p">.</span><span class="nx">alter</span><span class="p">(</span><span class="nx">action</span><span class="p">,</span> <span class="nx">index</span><span class="p">,</span> <span class="nx">amount</span><span class="p">,</span> <span class="nx">source</span><span class="p">,</span> <span class="nx">keepEmptyRows</span><span class="p">);</span></div><div class='line' id='LC2161'> <span class="p">};</span></div><div class='line' id='LC2162'><br/></div><div class='line' id='LC2163'> <span class="cm">/**</span></div><div class='line' id='LC2164'><span class="cm"> * Returns <td> element corresponding to params row, col</span></div><div class='line' id='LC2165'><span class="cm"> * @param {Number} row</span></div><div class='line' id='LC2166'><span class="cm"> * @param {Number} col</span></div><div class='line' id='LC2167'><span class="cm"> * @public</span></div><div class='line' id='LC2168'><span class="cm"> * @return {Element}</span></div><div class='line' id='LC2169'><span class="cm"> */</span></div><div class='line' id='LC2170'> <span class="k">this</span><span class="p">.</span><span class="nx">getCell</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2171'> <span class="k">return</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">getCellAtCoords</span><span class="p">({</span><span class="nx">row</span><span class="o">:</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="o">:</span> <span class="nx">col</span><span class="p">});</span></div><div class='line' id='LC2172'> <span class="p">};</span></div><div class='line' id='LC2173'><br/></div><div class='line' id='LC2174'> <span class="cm">/**</span></div><div class='line' id='LC2175'><span class="cm"> * Returns property name associated with column number</span></div><div class='line' id='LC2176'><span class="cm"> * @param {Number} col</span></div><div class='line' id='LC2177'><span class="cm"> * @public</span></div><div class='line' id='LC2178'><span class="cm"> * @return {String}</span></div><div class='line' id='LC2179'><span class="cm"> */</span></div><div class='line' id='LC2180'> <span class="k">this</span><span class="p">.</span><span class="nx">colToProp</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">col</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2181'> <span class="k">return</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">colToProp</span><span class="p">(</span><span class="nx">col</span><span class="p">);</span></div><div class='line' id='LC2182'> <span class="p">};</span></div><div class='line' id='LC2183'><br/></div><div class='line' id='LC2184'> <span class="cm">/**</span></div><div class='line' id='LC2185'><span class="cm"> * Returns column number associated with property name</span></div><div class='line' id='LC2186'><span class="cm"> * @param {String} prop</span></div><div class='line' id='LC2187'><span class="cm"> * @public</span></div><div class='line' id='LC2188'><span class="cm"> * @return {Number}</span></div><div class='line' id='LC2189'><span class="cm"> */</span></div><div class='line' id='LC2190'> <span class="k">this</span><span class="p">.</span><span class="nx">propToCol</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">prop</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2191'> <span class="k">return</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">propToCol</span><span class="p">(</span><span class="nx">prop</span><span class="p">);</span></div><div class='line' id='LC2192'> <span class="p">};</span></div><div class='line' id='LC2193'><br/></div><div class='line' id='LC2194'> <span class="cm">/**</span></div><div class='line' id='LC2195'><span class="cm"> * Return value at `row`, `col`</span></div><div class='line' id='LC2196'><span class="cm"> * @param {Number} row</span></div><div class='line' id='LC2197'><span class="cm"> * @param {Number} col</span></div><div class='line' id='LC2198'><span class="cm"> * @public</span></div><div class='line' id='LC2199'><span class="cm"> * @return value (mixed data type)</span></div><div class='line' id='LC2200'><span class="cm"> */</span></div><div class='line' id='LC2201'> <span class="k">this</span><span class="p">.</span><span class="nx">getDataAtCell</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2202'> <span class="k">return</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">colToProp</span><span class="p">(</span><span class="nx">col</span><span class="p">));</span></div><div class='line' id='LC2203'> <span class="p">};</span></div><div class='line' id='LC2204'><br/></div><div class='line' id='LC2205'> <span class="cm">/**</span></div><div class='line' id='LC2206'><span class="cm"> * Return value at `row`, `prop`</span></div><div class='line' id='LC2207'><span class="cm"> * @param {Number} row</span></div><div class='line' id='LC2208'><span class="cm"> * @param {String} prop</span></div><div class='line' id='LC2209'><span class="cm"> * @public</span></div><div class='line' id='LC2210'><span class="cm"> * @return value (mixed data type)</span></div><div class='line' id='LC2211'><span class="cm"> */</span></div><div class='line' id='LC2212'> <span class="k">this</span><span class="p">.</span><span class="nx">getDataAtRowProp</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">prop</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2213'> <span class="k">return</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">prop</span><span class="p">);</span></div><div class='line' id='LC2214'> <span class="p">};</span></div><div class='line' id='LC2215'><br/></div><div class='line' id='LC2216'> <span class="cm">/**</span></div><div class='line' id='LC2217'><span class="cm"> * Return value at `col`</span></div><div class='line' id='LC2218'><span class="cm"> * @param {Number} col</span></div><div class='line' id='LC2219'><span class="cm"> * @public</span></div><div class='line' id='LC2220'><span class="cm"> * @return value (mixed data type)</span></div><div class='line' id='LC2221'><span class="cm"> */</span></div><div class='line' id='LC2222'> <span class="k">this</span><span class="p">.</span><span class="nx">getDataAtCol</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">col</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2223'> <span class="k">return</span> <span class="p">[].</span><span class="nx">concat</span><span class="p">.</span><span class="nx">apply</span><span class="p">([],</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">getRange</span><span class="p">({</span><span class="nx">row</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">col</span><span class="o">:</span> <span class="nx">col</span><span class="p">},</span> <span class="p">{</span><span class="nx">row</span><span class="o">:</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">data</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span> <span class="mi">1</span><span class="p">,</span> <span class="nx">col</span><span class="o">:</span> <span class="nx">col</span><span class="p">}));</span></div><div class='line' id='LC2224'> <span class="p">};</span></div><div class='line' id='LC2225'><br/></div><div class='line' id='LC2226'> <span class="cm">/**</span></div><div class='line' id='LC2227'><span class="cm"> * Return value at `prop`</span></div><div class='line' id='LC2228'><span class="cm"> * @param {String} prop</span></div><div class='line' id='LC2229'><span class="cm"> * @public</span></div><div class='line' id='LC2230'><span class="cm"> * @return value (mixed data type)</span></div><div class='line' id='LC2231'><span class="cm"> */</span></div><div class='line' id='LC2232'> <span class="k">this</span><span class="p">.</span><span class="nx">getDataAtProp</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">prop</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2233'> <span class="k">return</span> <span class="p">[].</span><span class="nx">concat</span><span class="p">.</span><span class="nx">apply</span><span class="p">([],</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">getRange</span><span class="p">({</span><span class="nx">row</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">col</span><span class="o">:</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">propToCol</span><span class="p">(</span><span class="nx">prop</span><span class="p">)},</span> <span class="p">{</span><span class="nx">row</span><span class="o">:</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">data</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span> <span class="mi">1</span><span class="p">,</span> <span class="nx">col</span><span class="o">:</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">propToCol</span><span class="p">(</span><span class="nx">prop</span><span class="p">)}));</span></div><div class='line' id='LC2234'> <span class="p">};</span></div><div class='line' id='LC2235'><br/></div><div class='line' id='LC2236'> <span class="cm">/**</span></div><div class='line' id='LC2237'><span class="cm"> * Return value at `row`</span></div><div class='line' id='LC2238'><span class="cm"> * @param {Number} row</span></div><div class='line' id='LC2239'><span class="cm"> * @public</span></div><div class='line' id='LC2240'><span class="cm"> * @return value (mixed data type)</span></div><div class='line' id='LC2241'><span class="cm"> */</span></div><div class='line' id='LC2242'> <span class="k">this</span><span class="p">.</span><span class="nx">getDataAtRow</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">row</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2243'> <span class="k">return</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">data</span><span class="p">[</span><span class="nx">row</span><span class="p">];</span></div><div class='line' id='LC2244'> <span class="p">};</span></div><div class='line' id='LC2245'><br/></div><div class='line' id='LC2246'> <span class="cm">/**</span></div><div class='line' id='LC2247'><span class="cm"> * Returns cell meta data object corresponding to params row, col</span></div><div class='line' id='LC2248'><span class="cm"> * @param {Number} row</span></div><div class='line' id='LC2249'><span class="cm"> * @param {Number} col</span></div><div class='line' id='LC2250'><span class="cm"> * @public</span></div><div class='line' id='LC2251'><span class="cm"> * @return {Object}</span></div><div class='line' id='LC2252'><span class="cm"> */</span></div><div class='line' id='LC2253'> <span class="k">this</span><span class="p">.</span><span class="nx">getCellMeta</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2254'> <span class="kd">var</span> <span class="nx">prop</span> <span class="o">=</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">colToProp</span><span class="p">(</span><span class="nx">col</span><span class="p">)</span></div><div class='line' id='LC2255'> <span class="p">,</span> <span class="nx">cellProperties</span></div><div class='line' id='LC2256'> <span class="p">,</span> <span class="nx">type</span></div><div class='line' id='LC2257'> <span class="p">,</span> <span class="nx">i</span><span class="p">;</span></div><div class='line' id='LC2258'><br/></div><div class='line' id='LC2259'> <span class="nx">col</span> <span class="o">=</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="s1">'modifyCol'</span><span class="p">,</span> <span class="nx">col</span><span class="p">);</span> <span class="c1">//translate col of a moved column. warning: this must be done after datamap.colToProp</span></div><div class='line' id='LC2260'><br/></div><div class='line' id='LC2261'> <span class="k">if</span> <span class="p">(</span><span class="s2">"undefined"</span> <span class="o">===</span> <span class="k">typeof</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">columnSettings</span><span class="p">[</span><span class="nx">col</span><span class="p">])</span> <span class="p">{</span></div><div class='line' id='LC2262'> <span class="nx">priv</span><span class="p">.</span><span class="nx">columnSettings</span><span class="p">[</span><span class="nx">col</span><span class="p">]</span> <span class="o">=</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">columnFactory</span><span class="p">(</span><span class="nx">GridSettings</span><span class="p">,</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">columnsSettingConflicts</span><span class="p">,</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">TextCell</span><span class="p">);</span></div><div class='line' id='LC2263'> <span class="p">}</span></div><div class='line' id='LC2264'><br/></div><div class='line' id='LC2265'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">priv</span><span class="p">.</span><span class="nx">cellSettings</span><span class="p">[</span><span class="nx">row</span><span class="p">])</span> <span class="p">{</span></div><div class='line' id='LC2266'> <span class="nx">priv</span><span class="p">.</span><span class="nx">cellSettings</span><span class="p">[</span><span class="nx">row</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span></div><div class='line' id='LC2267'> <span class="p">}</span></div><div class='line' id='LC2268'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">priv</span><span class="p">.</span><span class="nx">cellSettings</span><span class="p">[</span><span class="nx">row</span><span class="p">][</span><span class="nx">col</span><span class="p">])</span> <span class="p">{</span></div><div class='line' id='LC2269'> <span class="nx">priv</span><span class="p">.</span><span class="nx">cellSettings</span><span class="p">[</span><span class="nx">row</span><span class="p">][</span><span class="nx">col</span><span class="p">]</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">columnSettings</span><span class="p">[</span><span class="nx">col</span><span class="p">]();</span></div><div class='line' id='LC2270'> <span class="p">}</span></div><div class='line' id='LC2271'><br/></div><div class='line' id='LC2272'> <span class="nx">cellProperties</span> <span class="o">=</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">cellSettings</span><span class="p">[</span><span class="nx">row</span><span class="p">][</span><span class="nx">col</span><span class="p">];</span> <span class="c1">//retrieve cellProperties from cache</span></div><div class='line' id='LC2273'><br/></div><div class='line' id='LC2274'> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">row</span> <span class="o">=</span> <span class="nx">row</span><span class="p">;</span></div><div class='line' id='LC2275'> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">col</span> <span class="o">=</span> <span class="nx">col</span><span class="p">;</span></div><div class='line' id='LC2276'> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">prop</span> <span class="o">=</span> <span class="nx">prop</span><span class="p">;</span></div><div class='line' id='LC2277'> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">instance</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">;</span></div><div class='line' id='LC2278'><br/></div><div class='line' id='LC2279'> <span class="k">if</span> <span class="p">(</span><span class="nx">cellProperties</span><span class="p">.</span><span class="nx">cells</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2280'> <span class="kd">var</span> <span class="nx">settings</span> <span class="o">=</span> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">cells</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">cellProperties</span><span class="p">,</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">prop</span><span class="p">)</span> <span class="o">||</span> <span class="p">{}</span></div><div class='line' id='LC2281'> <span class="p">,</span> <span class="nx">key</span><span class="p">;</span></div><div class='line' id='LC2282'><br/></div><div class='line' id='LC2283'> <span class="k">for</span> <span class="p">(</span><span class="nx">key</span> <span class="k">in</span> <span class="nx">settings</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2284'> <span class="k">if</span> <span class="p">(</span><span class="nx">settings</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">key</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC2285'> <span class="nx">cellProperties</span><span class="p">[</span><span class="nx">key</span><span class="p">]</span> <span class="o">=</span> <span class="nx">settings</span><span class="p">[</span><span class="nx">key</span><span class="p">];</span></div><div class='line' id='LC2286'> <span class="p">}</span></div><div class='line' id='LC2287'> <span class="p">}</span></div><div class='line' id='LC2288'> <span class="p">}</span></div><div class='line' id='LC2289'><br/></div><div class='line' id='LC2290'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'beforeGetCellMeta'</span><span class="p">,</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">);</span></div><div class='line' id='LC2291'><br/></div><div class='line' id='LC2292'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">type</span> <span class="o">===</span> <span class="s1">'string'</span> <span class="o">&&</span> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">type</span> <span class="o">!==</span> <span class="s1">'text'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2293'> <span class="nx">type</span> <span class="o">=</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">cellTypes</span><span class="p">[</span><span class="nx">cellProperties</span><span class="p">.</span><span class="nx">type</span><span class="p">];</span></div><div class='line' id='LC2294'> <span class="k">if</span> <span class="p">(</span><span class="nx">type</span> <span class="o">===</span> <span class="k">void</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2295'> <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s1">'You declared cell type "'</span> <span class="o">+</span> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">type</span> <span class="o">+</span> <span class="s1">'" as a string that is not mapped to a known object. Cell type must be an object or a string mapped to an object in Handsontable.cellTypes'</span><span class="p">);</span></div><div class='line' id='LC2296'> <span class="p">}</span></div><div class='line' id='LC2297'> <span class="p">}</span></div><div class='line' id='LC2298'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">type</span> <span class="o">===</span> <span class="s1">'object'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2299'> <span class="nx">type</span> <span class="o">=</span> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">type</span><span class="p">;</span></div><div class='line' id='LC2300'> <span class="p">}</span></div><div class='line' id='LC2301'><br/></div><div class='line' id='LC2302'> <span class="k">if</span> <span class="p">(</span><span class="nx">type</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2303'> <span class="k">for</span> <span class="p">(</span><span class="nx">i</span> <span class="k">in</span> <span class="nx">type</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2304'> <span class="k">if</span> <span class="p">(</span><span class="nx">type</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">i</span><span class="p">)</span> <span class="o">&&</span> <span class="nx">cellProperties</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">===</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">cellTypes</span><span class="p">.</span><span class="nx">text</span><span class="p">[</span><span class="nx">i</span><span class="p">])</span> <span class="p">{</span></div><div class='line' id='LC2305'> <span class="nx">cellProperties</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">=</span> <span class="nx">type</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span></div><div class='line' id='LC2306'> <span class="p">}</span></div><div class='line' id='LC2307'> <span class="p">}</span></div><div class='line' id='LC2308'> <span class="p">}</span></div><div class='line' id='LC2309'><br/></div><div class='line' id='LC2310'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'afterGetCellMeta'</span><span class="p">,</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">);</span></div><div class='line' id='LC2311'><br/></div><div class='line' id='LC2312'> <span class="k">return</span> <span class="nx">cellProperties</span><span class="p">;</span></div><div class='line' id='LC2313'> <span class="p">};</span></div><div class='line' id='LC2314'><br/></div><div class='line' id='LC2315'> <span class="cm">/**</span></div><div class='line' id='LC2316'><span class="cm"> * Validates all cells using their validator functions and calls callback when finished. Does not render the view</span></div><div class='line' id='LC2317'><span class="cm"> * @param callback</span></div><div class='line' id='LC2318'><span class="cm"> */</span></div><div class='line' id='LC2319'> <span class="k">this</span><span class="p">.</span><span class="nx">validateCells</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">callback</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2320'> <span class="kd">var</span> <span class="nx">waitingForValidator</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">ValidatorsQueue</span><span class="p">();</span></div><div class='line' id='LC2321'> <span class="nx">waitingForValidator</span><span class="p">.</span><span class="nx">onQueueEmpty</span> <span class="o">=</span> <span class="nx">callback</span><span class="p">;</span></div><div class='line' id='LC2322'><br/></div><div class='line' id='LC2323'> <span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countRows</span><span class="p">()</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC2324'> <span class="k">while</span> <span class="p">(</span><span class="nx">i</span> <span class="o">>=</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2325'> <span class="kd">var</span> <span class="nx">j</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countCols</span><span class="p">()</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC2326'> <span class="k">while</span> <span class="p">(</span><span class="nx">j</span> <span class="o">>=</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2327'> <span class="nx">waitingForValidator</span><span class="p">.</span><span class="nx">addValidatorToQueue</span><span class="p">();</span></div><div class='line' id='LC2328'> <span class="nx">instance</span><span class="p">.</span><span class="nx">validateCell</span><span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getDataAtCell</span><span class="p">(</span><span class="nx">i</span><span class="p">,</span> <span class="nx">j</span><span class="p">),</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getCellMeta</span><span class="p">(</span><span class="nx">i</span><span class="p">,</span> <span class="nx">j</span><span class="p">),</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC2329'> <span class="nx">waitingForValidator</span><span class="p">.</span><span class="nx">removeValidatorFormQueue</span><span class="p">();</span></div><div class='line' id='LC2330'> <span class="p">},</span> <span class="s1">'validateCells'</span><span class="p">);</span></div><div class='line' id='LC2331'> <span class="nx">j</span><span class="o">--</span><span class="p">;</span></div><div class='line' id='LC2332'> <span class="p">}</span></div><div class='line' id='LC2333'> <span class="nx">i</span><span class="o">--</span><span class="p">;</span></div><div class='line' id='LC2334'> <span class="p">}</span></div><div class='line' id='LC2335'> <span class="nx">waitingForValidator</span><span class="p">.</span><span class="nx">checkIfQueueIsEmpty</span><span class="p">();</span></div><div class='line' id='LC2336'> <span class="p">};</span></div><div class='line' id='LC2337'><br/></div><div class='line' id='LC2338'> <span class="cm">/**</span></div><div class='line' id='LC2339'><span class="cm"> * Return array of row headers (if they are enabled). If param `row` given, return header at given row as string</span></div><div class='line' id='LC2340'><span class="cm"> * @param {Number} row (Optional)</span></div><div class='line' id='LC2341'><span class="cm"> * @return {Array|String}</span></div><div class='line' id='LC2342'><span class="cm"> */</span></div><div class='line' id='LC2343'> <span class="k">this</span><span class="p">.</span><span class="nx">getRowHeader</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">row</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2344'> <span class="k">if</span> <span class="p">(</span><span class="nx">row</span> <span class="o">===</span> <span class="k">void</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2345'> <span class="kd">var</span> <span class="nx">out</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC2346'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">ilen</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countRows</span><span class="p">();</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">ilen</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2347'> <span class="nx">out</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getRowHeader</span><span class="p">(</span><span class="nx">i</span><span class="p">));</span></div><div class='line' id='LC2348'> <span class="p">}</span></div><div class='line' id='LC2349'> <span class="k">return</span> <span class="nx">out</span><span class="p">;</span></div><div class='line' id='LC2350'> <span class="p">}</span></div><div class='line' id='LC2351'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nb">Object</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">toString</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">rowHeaders</span><span class="p">)</span> <span class="o">===</span> <span class="s1">'[object Array]'</span> <span class="o">&&</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">rowHeaders</span><span class="p">[</span><span class="nx">row</span><span class="p">]</span> <span class="o">!==</span> <span class="k">void</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2352'> <span class="k">return</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">rowHeaders</span><span class="p">[</span><span class="nx">row</span><span class="p">];</span></div><div class='line' id='LC2353'> <span class="p">}</span></div><div class='line' id='LC2354'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">rowHeaders</span> <span class="o">===</span> <span class="s1">'function'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2355'> <span class="k">return</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">rowHeaders</span><span class="p">(</span><span class="nx">row</span><span class="p">);</span></div><div class='line' id='LC2356'> <span class="p">}</span></div><div class='line' id='LC2357'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">rowHeaders</span> <span class="o">&&</span> <span class="k">typeof</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">rowHeaders</span> <span class="o">!==</span> <span class="s1">'string'</span> <span class="o">&&</span> <span class="k">typeof</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">rowHeaders</span> <span class="o">!==</span> <span class="s1">'number'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2358'> <span class="k">return</span> <span class="nx">row</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC2359'> <span class="p">}</span></div><div class='line' id='LC2360'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC2361'> <span class="k">return</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">rowHeaders</span><span class="p">;</span></div><div class='line' id='LC2362'> <span class="p">}</span></div><div class='line' id='LC2363'> <span class="p">};</span></div><div class='line' id='LC2364'><br/></div><div class='line' id='LC2365'> <span class="cm">/**</span></div><div class='line' id='LC2366'><span class="cm"> * Return array of column headers (if they are enabled). If param `col` given, return header at given column as string</span></div><div class='line' id='LC2367'><span class="cm"> * @param {Number} col (Optional)</span></div><div class='line' id='LC2368'><span class="cm"> * @return {Array|String}</span></div><div class='line' id='LC2369'><span class="cm"> */</span></div><div class='line' id='LC2370'> <span class="k">this</span><span class="p">.</span><span class="nx">getColHeader</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">col</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2371'> <span class="k">if</span> <span class="p">(</span><span class="nx">col</span> <span class="o">===</span> <span class="k">void</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2372'> <span class="kd">var</span> <span class="nx">out</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC2373'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">ilen</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countCols</span><span class="p">();</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">ilen</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2374'> <span class="nx">out</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getColHeader</span><span class="p">(</span><span class="nx">i</span><span class="p">));</span></div><div class='line' id='LC2375'> <span class="p">}</span></div><div class='line' id='LC2376'> <span class="k">return</span> <span class="nx">out</span><span class="p">;</span></div><div class='line' id='LC2377'> <span class="p">}</span></div><div class='line' id='LC2378'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC2379'> <span class="nx">col</span> <span class="o">=</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="s1">'modifyCol'</span><span class="p">,</span> <span class="nx">col</span><span class="p">);</span></div><div class='line' id='LC2380'><br/></div><div class='line' id='LC2381'> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">columns</span> <span class="o">&&</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">columns</span><span class="p">[</span><span class="nx">col</span><span class="p">]</span> <span class="o">&&</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">columns</span><span class="p">[</span><span class="nx">col</span><span class="p">].</span><span class="nx">title</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2382'> <span class="k">return</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">columns</span><span class="p">[</span><span class="nx">col</span><span class="p">].</span><span class="nx">title</span><span class="p">;</span></div><div class='line' id='LC2383'> <span class="p">}</span></div><div class='line' id='LC2384'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nb">Object</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">toString</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">colHeaders</span><span class="p">)</span> <span class="o">===</span> <span class="s1">'[object Array]'</span> <span class="o">&&</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">colHeaders</span><span class="p">[</span><span class="nx">col</span><span class="p">]</span> <span class="o">!==</span> <span class="k">void</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2385'> <span class="k">return</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">colHeaders</span><span class="p">[</span><span class="nx">col</span><span class="p">];</span></div><div class='line' id='LC2386'> <span class="p">}</span></div><div class='line' id='LC2387'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">colHeaders</span> <span class="o">===</span> <span class="s1">'function'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2388'> <span class="k">return</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">colHeaders</span><span class="p">(</span><span class="nx">col</span><span class="p">);</span></div><div class='line' id='LC2389'> <span class="p">}</span></div><div class='line' id='LC2390'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">colHeaders</span> <span class="o">&&</span> <span class="k">typeof</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">colHeaders</span> <span class="o">!==</span> <span class="s1">'string'</span> <span class="o">&&</span> <span class="k">typeof</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">colHeaders</span> <span class="o">!==</span> <span class="s1">'number'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2391'> <span class="k">return</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">spreadsheetColumnLabel</span><span class="p">(</span><span class="nx">col</span><span class="p">);</span></div><div class='line' id='LC2392'> <span class="p">}</span></div><div class='line' id='LC2393'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC2394'> <span class="k">return</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">colHeaders</span><span class="p">;</span></div><div class='line' id='LC2395'> <span class="p">}</span></div><div class='line' id='LC2396'> <span class="p">}</span></div><div class='line' id='LC2397'> <span class="p">};</span></div><div class='line' id='LC2398'><br/></div><div class='line' id='LC2399'> <span class="cm">/**</span></div><div class='line' id='LC2400'><span class="cm"> * Return column width</span></div><div class='line' id='LC2401'><span class="cm"> * @param {Number} col</span></div><div class='line' id='LC2402'><span class="cm"> * @return {Number}</span></div><div class='line' id='LC2403'><span class="cm"> */</span></div><div class='line' id='LC2404'> <span class="k">this</span><span class="p">.</span><span class="nx">getColWidth</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">col</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2405'> <span class="nx">col</span> <span class="o">=</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="s1">'modifyCol'</span><span class="p">,</span> <span class="nx">col</span><span class="p">);</span></div><div class='line' id='LC2406'> <span class="kd">var</span> <span class="nx">response</span> <span class="o">=</span> <span class="p">{};</span></div><div class='line' id='LC2407'> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">columns</span> <span class="o">&&</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">columns</span><span class="p">[</span><span class="nx">col</span><span class="p">]</span> <span class="o">&&</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">columns</span><span class="p">[</span><span class="nx">col</span><span class="p">].</span><span class="nx">width</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2408'> <span class="nx">response</span><span class="p">.</span><span class="nx">width</span> <span class="o">=</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">columns</span><span class="p">[</span><span class="nx">col</span><span class="p">].</span><span class="nx">width</span><span class="p">;</span></div><div class='line' id='LC2409'> <span class="p">}</span></div><div class='line' id='LC2410'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nb">Object</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">toString</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">colWidths</span><span class="p">)</span> <span class="o">===</span> <span class="s1">'[object Array]'</span> <span class="o">&&</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">colWidths</span><span class="p">[</span><span class="nx">col</span><span class="p">]</span> <span class="o">!==</span> <span class="k">void</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2411'> <span class="nx">response</span><span class="p">.</span><span class="nx">width</span> <span class="o">=</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">colWidths</span><span class="p">[</span><span class="nx">col</span><span class="p">];</span></div><div class='line' id='LC2412'> <span class="p">}</span></div><div class='line' id='LC2413'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC2414'> <span class="nx">response</span><span class="p">.</span><span class="nx">width</span> <span class="o">=</span> <span class="mi">50</span><span class="p">;</span></div><div class='line' id='LC2415'> <span class="p">}</span></div><div class='line' id='LC2416'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'afterGetColWidth'</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">response</span><span class="p">);</span></div><div class='line' id='LC2417'> <span class="k">return</span> <span class="nx">response</span><span class="p">.</span><span class="nx">width</span><span class="p">;</span></div><div class='line' id='LC2418'> <span class="p">};</span></div><div class='line' id='LC2419'><br/></div><div class='line' id='LC2420'> <span class="cm">/**</span></div><div class='line' id='LC2421'><span class="cm"> * Return total number of rows in grid</span></div><div class='line' id='LC2422'><span class="cm"> * @return {Number}</span></div><div class='line' id='LC2423'><span class="cm"> */</span></div><div class='line' id='LC2424'> <span class="k">this</span><span class="p">.</span><span class="nx">countRows</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC2425'> <span class="k">return</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">data</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span></div><div class='line' id='LC2426'> <span class="p">};</span></div><div class='line' id='LC2427'><br/></div><div class='line' id='LC2428'> <span class="cm">/**</span></div><div class='line' id='LC2429'><span class="cm"> * Return total number of columns in grid</span></div><div class='line' id='LC2430'><span class="cm"> * @return {Number}</span></div><div class='line' id='LC2431'><span class="cm"> */</span></div><div class='line' id='LC2432'> <span class="k">this</span><span class="p">.</span><span class="nx">countCols</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC2433'> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">dataType</span> <span class="o">===</span> <span class="s1">'object'</span> <span class="o">||</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">dataType</span> <span class="o">===</span> <span class="s1">'function'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2434'> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">columns</span> <span class="o">&&</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">columns</span><span class="p">.</span><span class="nx">length</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2435'> <span class="k">return</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">columns</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span></div><div class='line' id='LC2436'> <span class="p">}</span></div><div class='line' id='LC2437'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC2438'> <span class="k">return</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">colToProp</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span></div><div class='line' id='LC2439'> <span class="p">}</span></div><div class='line' id='LC2440'> <span class="p">}</span></div><div class='line' id='LC2441'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">dataType</span> <span class="o">===</span> <span class="s1">'array'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2442'> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">columns</span> <span class="o">&&</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">columns</span><span class="p">.</span><span class="nx">length</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2443'> <span class="k">return</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">columns</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span></div><div class='line' id='LC2444'> <span class="p">}</span></div><div class='line' id='LC2445'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">data</span> <span class="o">&&</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">data</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">&&</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">data</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">length</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2446'> <span class="k">return</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">data</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">length</span><span class="p">;</span></div><div class='line' id='LC2447'> <span class="p">}</span></div><div class='line' id='LC2448'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC2449'> <span class="k">return</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC2450'> <span class="p">}</span></div><div class='line' id='LC2451'> <span class="p">}</span></div><div class='line' id='LC2452'> <span class="p">};</span></div><div class='line' id='LC2453'><br/></div><div class='line' id='LC2454'> <span class="cm">/**</span></div><div class='line' id='LC2455'><span class="cm"> * Return index of first visible row</span></div><div class='line' id='LC2456'><span class="cm"> * @return {Number}</span></div><div class='line' id='LC2457'><span class="cm"> */</span></div><div class='line' id='LC2458'> <span class="k">this</span><span class="p">.</span><span class="nx">rowOffset</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC2459'> <span class="k">return</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'offsetRow'</span><span class="p">);</span></div><div class='line' id='LC2460'> <span class="p">};</span></div><div class='line' id='LC2461'><br/></div><div class='line' id='LC2462'> <span class="cm">/**</span></div><div class='line' id='LC2463'><span class="cm"> * Return index of first visible column</span></div><div class='line' id='LC2464'><span class="cm"> * @return {Number}</span></div><div class='line' id='LC2465'><span class="cm"> */</span></div><div class='line' id='LC2466'> <span class="k">this</span><span class="p">.</span><span class="nx">colOffset</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC2467'> <span class="k">return</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'offsetColumn'</span><span class="p">);</span></div><div class='line' id='LC2468'> <span class="p">};</span></div><div class='line' id='LC2469'><br/></div><div class='line' id='LC2470'> <span class="cm">/**</span></div><div class='line' id='LC2471'><span class="cm"> * Return number of visible rows. Returns -1 if table is not visible</span></div><div class='line' id='LC2472'><span class="cm"> * @return {Number}</span></div><div class='line' id='LC2473'><span class="cm"> */</span></div><div class='line' id='LC2474'> <span class="k">this</span><span class="p">.</span><span class="nx">countVisibleRows</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC2475'> <span class="k">return</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">drawn</span> <span class="o">?</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">rowStrategy</span><span class="p">.</span><span class="nx">countVisible</span><span class="p">()</span> <span class="o">:</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC2476'> <span class="p">};</span></div><div class='line' id='LC2477'><br/></div><div class='line' id='LC2478'> <span class="cm">/**</span></div><div class='line' id='LC2479'><span class="cm"> * Return number of visible columns. Returns -1 if table is not visible</span></div><div class='line' id='LC2480'><span class="cm"> * @return {Number}</span></div><div class='line' id='LC2481'><span class="cm"> */</span></div><div class='line' id='LC2482'> <span class="k">this</span><span class="p">.</span><span class="nx">countVisibleCols</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC2483'> <span class="k">return</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">drawn</span> <span class="o">?</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">columnStrategy</span><span class="p">.</span><span class="nx">countVisible</span><span class="p">()</span> <span class="o">:</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC2484'> <span class="p">};</span></div><div class='line' id='LC2485'><br/></div><div class='line' id='LC2486'> <span class="cm">/**</span></div><div class='line' id='LC2487'><span class="cm"> * Return number of empty rows</span></div><div class='line' id='LC2488'><span class="cm"> * @return {Boolean} ending If true, will only count empty rows at the end of the data source</span></div><div class='line' id='LC2489'><span class="cm"> */</span></div><div class='line' id='LC2490'> <span class="k">this</span><span class="p">.</span><span class="nx">countEmptyRows</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">ending</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2491'> <span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countRows</span><span class="p">()</span> <span class="o">-</span> <span class="mi">1</span></div><div class='line' id='LC2492'> <span class="p">,</span> <span class="nx">empty</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC2493'> <span class="k">while</span> <span class="p">(</span><span class="nx">i</span> <span class="o">>=</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2494'> <span class="nx">datamap</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">i</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span></div><div class='line' id='LC2495'><br/></div><div class='line' id='LC2496'> <span class="k">if</span> <span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">isEmptyRow</span><span class="p">(</span><span class="nx">datamap</span><span class="p">.</span><span class="nx">getVars</span><span class="p">.</span><span class="nx">row</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC2497'> <span class="nx">empty</span><span class="o">++</span><span class="p">;</span></div><div class='line' id='LC2498'> <span class="p">}</span></div><div class='line' id='LC2499'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">ending</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2500'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC2501'> <span class="p">}</span></div><div class='line' id='LC2502'> <span class="nx">i</span><span class="o">--</span><span class="p">;</span></div><div class='line' id='LC2503'> <span class="p">}</span></div><div class='line' id='LC2504'> <span class="k">return</span> <span class="nx">empty</span><span class="p">;</span></div><div class='line' id='LC2505'> <span class="p">};</span></div><div class='line' id='LC2506'><br/></div><div class='line' id='LC2507'> <span class="cm">/**</span></div><div class='line' id='LC2508'><span class="cm"> * Return number of empty columns</span></div><div class='line' id='LC2509'><span class="cm"> * @return {Boolean} ending If true, will only count empty columns at the end of the data source row</span></div><div class='line' id='LC2510'><span class="cm"> */</span></div><div class='line' id='LC2511'> <span class="k">this</span><span class="p">.</span><span class="nx">countEmptyCols</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">ending</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2512'> <span class="k">if</span> <span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">countRows</span><span class="p">()</span> <span class="o"><</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2513'> <span class="k">return</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC2514'> <span class="p">}</span></div><div class='line' id='LC2515'><br/></div><div class='line' id='LC2516'> <span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countCols</span><span class="p">()</span> <span class="o">-</span> <span class="mi">1</span></div><div class='line' id='LC2517'> <span class="p">,</span> <span class="nx">empty</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC2518'> <span class="k">while</span> <span class="p">(</span><span class="nx">i</span> <span class="o">>=</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2519'> <span class="k">if</span> <span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">isEmptyCol</span><span class="p">(</span><span class="nx">i</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC2520'> <span class="nx">empty</span><span class="o">++</span><span class="p">;</span></div><div class='line' id='LC2521'> <span class="p">}</span></div><div class='line' id='LC2522'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">ending</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2523'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC2524'> <span class="p">}</span></div><div class='line' id='LC2525'> <span class="nx">i</span><span class="o">--</span><span class="p">;</span></div><div class='line' id='LC2526'> <span class="p">}</span></div><div class='line' id='LC2527'> <span class="k">return</span> <span class="nx">empty</span><span class="p">;</span></div><div class='line' id='LC2528'> <span class="p">};</span></div><div class='line' id='LC2529'><br/></div><div class='line' id='LC2530'> <span class="cm">/**</span></div><div class='line' id='LC2531'><span class="cm"> * Return true if the row at the given index is empty, false otherwise</span></div><div class='line' id='LC2532'><span class="cm"> * @param {Number} r Row index</span></div><div class='line' id='LC2533'><span class="cm"> * @return {Boolean}</span></div><div class='line' id='LC2534'><span class="cm"> */</span></div><div class='line' id='LC2535'> <span class="k">this</span><span class="p">.</span><span class="nx">isEmptyRow</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">r</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2536'> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">isEmptyRow</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2537'> <span class="k">return</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">isEmptyRow</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">r</span><span class="p">);</span></div><div class='line' id='LC2538'> <span class="p">}</span></div><div class='line' id='LC2539'><br/></div><div class='line' id='LC2540'> <span class="kd">var</span> <span class="nx">val</span><span class="p">;</span></div><div class='line' id='LC2541'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">c</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">clen</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countCols</span><span class="p">();</span> <span class="nx">c</span> <span class="o"><</span> <span class="nx">clen</span><span class="p">;</span> <span class="nx">c</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2542'> <span class="nx">val</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getDataAtCell</span><span class="p">(</span><span class="nx">r</span><span class="p">,</span> <span class="nx">c</span><span class="p">);</span></div><div class='line' id='LC2543'> <span class="k">if</span> <span class="p">(</span><span class="nx">val</span> <span class="o">!==</span> <span class="s1">''</span> <span class="o">&&</span> <span class="nx">val</span> <span class="o">!==</span> <span class="kc">null</span> <span class="o">&&</span> <span class="k">typeof</span> <span class="nx">val</span> <span class="o">!==</span> <span class="s1">'undefined'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2544'> <span class="k">return</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC2545'> <span class="p">}</span></div><div class='line' id='LC2546'> <span class="p">}</span></div><div class='line' id='LC2547'> <span class="k">return</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC2548'> <span class="p">};</span></div><div class='line' id='LC2549'><br/></div><div class='line' id='LC2550'> <span class="cm">/**</span></div><div class='line' id='LC2551'><span class="cm"> * Return true if the column at the given index is empty, false otherwise</span></div><div class='line' id='LC2552'><span class="cm"> * @param {Number} c Column index</span></div><div class='line' id='LC2553'><span class="cm"> * @return {Boolean}</span></div><div class='line' id='LC2554'><span class="cm"> */</span></div><div class='line' id='LC2555'> <span class="k">this</span><span class="p">.</span><span class="nx">isEmptyCol</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">c</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2556'> <span class="k">if</span> <span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">isEmptyCol</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2557'> <span class="k">return</span> <span class="nx">priv</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">isEmptyCol</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">c</span><span class="p">);</span></div><div class='line' id='LC2558'> <span class="p">}</span></div><div class='line' id='LC2559'><br/></div><div class='line' id='LC2560'> <span class="kd">var</span> <span class="nx">val</span><span class="p">;</span></div><div class='line' id='LC2561'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">r</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">rlen</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countRows</span><span class="p">();</span> <span class="nx">r</span> <span class="o"><</span> <span class="nx">rlen</span><span class="p">;</span> <span class="nx">r</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2562'> <span class="nx">val</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getDataAtCell</span><span class="p">(</span><span class="nx">r</span><span class="p">,</span> <span class="nx">c</span><span class="p">);</span></div><div class='line' id='LC2563'> <span class="k">if</span> <span class="p">(</span><span class="nx">val</span> <span class="o">!==</span> <span class="s1">''</span> <span class="o">&&</span> <span class="nx">val</span> <span class="o">!==</span> <span class="kc">null</span> <span class="o">&&</span> <span class="k">typeof</span> <span class="nx">val</span> <span class="o">!==</span> <span class="s1">'undefined'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2564'> <span class="k">return</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC2565'> <span class="p">}</span></div><div class='line' id='LC2566'> <span class="p">}</span></div><div class='line' id='LC2567'> <span class="k">return</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC2568'> <span class="p">};</span></div><div class='line' id='LC2569'><br/></div><div class='line' id='LC2570'> <span class="cm">/**</span></div><div class='line' id='LC2571'><span class="cm"> * Selects cell on grid. Optionally selects range to another cell</span></div><div class='line' id='LC2572'><span class="cm"> * @param {Number} row</span></div><div class='line' id='LC2573'><span class="cm"> * @param {Number} col</span></div><div class='line' id='LC2574'><span class="cm"> * @param {Number} [endRow]</span></div><div class='line' id='LC2575'><span class="cm"> * @param {Number} [endCol]</span></div><div class='line' id='LC2576'><span class="cm"> * @param {Boolean} [scrollToCell=true] If true, viewport will be scrolled to the selection</span></div><div class='line' id='LC2577'><span class="cm"> * @public</span></div><div class='line' id='LC2578'><span class="cm"> * @return {Boolean}</span></div><div class='line' id='LC2579'><span class="cm"> */</span></div><div class='line' id='LC2580'> <span class="k">this</span><span class="p">.</span><span class="nx">selectCell</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">endRow</span><span class="p">,</span> <span class="nx">endCol</span><span class="p">,</span> <span class="nx">scrollToCell</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2581'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">row</span> <span class="o">!==</span> <span class="s1">'number'</span> <span class="o">||</span> <span class="nx">row</span> <span class="o"><</span> <span class="mi">0</span> <span class="o">||</span> <span class="nx">row</span> <span class="o">>=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countRows</span><span class="p">())</span> <span class="p">{</span></div><div class='line' id='LC2582'> <span class="k">return</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC2583'> <span class="p">}</span></div><div class='line' id='LC2584'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">col</span> <span class="o">!==</span> <span class="s1">'number'</span> <span class="o">||</span> <span class="nx">col</span> <span class="o"><</span> <span class="mi">0</span> <span class="o">||</span> <span class="nx">col</span> <span class="o">>=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countCols</span><span class="p">())</span> <span class="p">{</span></div><div class='line' id='LC2585'> <span class="k">return</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC2586'> <span class="p">}</span></div><div class='line' id='LC2587'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">endRow</span> <span class="o">!==</span> <span class="s2">"undefined"</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2588'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">endRow</span> <span class="o">!==</span> <span class="s1">'number'</span> <span class="o">||</span> <span class="nx">endRow</span> <span class="o"><</span> <span class="mi">0</span> <span class="o">||</span> <span class="nx">endRow</span> <span class="o">>=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countRows</span><span class="p">())</span> <span class="p">{</span></div><div class='line' id='LC2589'> <span class="k">return</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC2590'> <span class="p">}</span></div><div class='line' id='LC2591'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">endCol</span> <span class="o">!==</span> <span class="s1">'number'</span> <span class="o">||</span> <span class="nx">endCol</span> <span class="o"><</span> <span class="mi">0</span> <span class="o">||</span> <span class="nx">endCol</span> <span class="o">>=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countCols</span><span class="p">())</span> <span class="p">{</span></div><div class='line' id='LC2592'> <span class="k">return</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC2593'> <span class="p">}</span></div><div class='line' id='LC2594'> <span class="p">}</span></div><div class='line' id='LC2595'> <span class="nx">priv</span><span class="p">.</span><span class="nx">selStart</span><span class="p">.</span><span class="nx">coords</span><span class="p">({</span><span class="nx">row</span><span class="o">:</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="o">:</span> <span class="nx">col</span><span class="p">});</span></div><div class='line' id='LC2596'> <span class="k">if</span> <span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">activeElement</span> <span class="o">&&</span> <span class="nb">document</span><span class="p">.</span><span class="nx">activeElement</span> <span class="o">!==</span> <span class="nb">document</span><span class="p">.</span><span class="nx">documentElement</span> <span class="o">&&</span> <span class="nb">document</span><span class="p">.</span><span class="nx">activeElement</span> <span class="o">!==</span> <span class="nb">document</span><span class="p">.</span><span class="nx">body</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2597'> <span class="nb">document</span><span class="p">.</span><span class="nx">activeElement</span><span class="p">.</span><span class="nx">blur</span><span class="p">();</span> <span class="c1">//needed or otherwise prepare won't focus the cell. selectionSpec tests this (should move focus to selected cell)</span></div><div class='line' id='LC2598'> <span class="p">}</span></div><div class='line' id='LC2599'> <span class="nx">instance</span><span class="p">.</span><span class="nx">listen</span><span class="p">();</span></div><div class='line' id='LC2600'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">endRow</span> <span class="o">===</span> <span class="s2">"undefined"</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2601'> <span class="nx">selection</span><span class="p">.</span><span class="nx">setRangeEnd</span><span class="p">({</span><span class="nx">row</span><span class="o">:</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="o">:</span> <span class="nx">col</span><span class="p">},</span> <span class="nx">scrollToCell</span><span class="p">);</span></div><div class='line' id='LC2602'> <span class="p">}</span></div><div class='line' id='LC2603'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC2604'> <span class="nx">selection</span><span class="p">.</span><span class="nx">setRangeEnd</span><span class="p">({</span><span class="nx">row</span><span class="o">:</span> <span class="nx">endRow</span><span class="p">,</span> <span class="nx">col</span><span class="o">:</span> <span class="nx">endCol</span><span class="p">},</span> <span class="nx">scrollToCell</span><span class="p">);</span></div><div class='line' id='LC2605'> <span class="p">}</span></div><div class='line' id='LC2606'><br/></div><div class='line' id='LC2607'> <span class="nx">instance</span><span class="p">.</span><span class="nx">selection</span><span class="p">.</span><span class="nx">finish</span><span class="p">();</span></div><div class='line' id='LC2608'> <span class="k">return</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC2609'> <span class="p">};</span></div><div class='line' id='LC2610'><br/></div><div class='line' id='LC2611'> <span class="k">this</span><span class="p">.</span><span class="nx">selectCellByProp</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">endRow</span><span class="p">,</span> <span class="nx">endProp</span><span class="p">,</span> <span class="nx">scrollToCell</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2612'> <span class="nx">arguments</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">propToCol</span><span class="p">(</span><span class="nx">arguments</span><span class="p">[</span><span class="mi">1</span><span class="p">]);</span></div><div class='line' id='LC2613'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">arguments</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">!==</span> <span class="s2">"undefined"</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2614'> <span class="nx">arguments</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">=</span> <span class="nx">datamap</span><span class="p">.</span><span class="nx">propToCol</span><span class="p">(</span><span class="nx">arguments</span><span class="p">[</span><span class="mi">3</span><span class="p">]);</span></div><div class='line' id='LC2615'> <span class="p">}</span></div><div class='line' id='LC2616'> <span class="k">return</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">selectCell</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">arguments</span><span class="p">);</span></div><div class='line' id='LC2617'> <span class="p">};</span></div><div class='line' id='LC2618'><br/></div><div class='line' id='LC2619'> <span class="cm">/**</span></div><div class='line' id='LC2620'><span class="cm"> * Deselects current sell selection on grid</span></div><div class='line' id='LC2621'><span class="cm"> * @public</span></div><div class='line' id='LC2622'><span class="cm"> */</span></div><div class='line' id='LC2623'> <span class="k">this</span><span class="p">.</span><span class="nx">deselectCell</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC2624'> <span class="nx">selection</span><span class="p">.</span><span class="nx">deselect</span><span class="p">();</span></div><div class='line' id='LC2625'> <span class="p">};</span></div><div class='line' id='LC2626'><br/></div><div class='line' id='LC2627'> <span class="cm">/**</span></div><div class='line' id='LC2628'><span class="cm"> * Remove grid from DOM</span></div><div class='line' id='LC2629'><span class="cm"> * @public</span></div><div class='line' id='LC2630'><span class="cm"> */</span></div><div class='line' id='LC2631'> <span class="k">this</span><span class="p">.</span><span class="nx">destroy</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC2632'> <span class="nx">instance</span><span class="p">.</span><span class="nx">clearTimeouts</span><span class="p">();</span></div><div class='line' id='LC2633'> <span class="k">if</span> <span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//in case HT is destroyed before initialization has finished</span></div><div class='line' id='LC2634'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">destroy</span><span class="p">();</span></div><div class='line' id='LC2635'> <span class="p">}</span></div><div class='line' id='LC2636'> <span class="nx">instance</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">.</span><span class="nx">empty</span><span class="p">();</span></div><div class='line' id='LC2637'> <span class="nx">instance</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">.</span><span class="nx">removeData</span><span class="p">(</span><span class="s1">'handsontable'</span><span class="p">);</span></div><div class='line' id='LC2638'> <span class="nx">instance</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">.</span><span class="nx">off</span><span class="p">(</span><span class="s1">'.handsontable'</span><span class="p">);</span></div><div class='line' id='LC2639'> <span class="nx">$</span><span class="p">(</span><span class="nb">window</span><span class="p">).</span><span class="nx">off</span><span class="p">(</span><span class="s1">'.'</span> <span class="o">+</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">guid</span><span class="p">);</span></div><div class='line' id='LC2640'> <span class="nx">$document</span><span class="p">.</span><span class="nx">off</span><span class="p">(</span><span class="s1">'.'</span> <span class="o">+</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">guid</span><span class="p">);</span></div><div class='line' id='LC2641'> <span class="nx">$body</span><span class="p">.</span><span class="nx">off</span><span class="p">(</span><span class="s1">'.'</span> <span class="o">+</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">guid</span><span class="p">);</span></div><div class='line' id='LC2642'> <span class="nx">instance</span><span class="p">.</span><span class="nx">copyPaste</span><span class="p">.</span><span class="nx">removeCallback</span><span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">onCut</span><span class="p">);</span></div><div class='line' id='LC2643'> <span class="nx">instance</span><span class="p">.</span><span class="nx">copyPaste</span><span class="p">.</span><span class="nx">removeCallback</span><span class="p">(</span><span class="nx">priv</span><span class="p">.</span><span class="nx">onPaste</span><span class="p">);</span></div><div class='line' id='LC2644'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'afterDestroy'</span><span class="p">);</span></div><div class='line' id='LC2645'> <span class="p">};</span></div><div class='line' id='LC2646'><br/></div><div class='line' id='LC2647'> <span class="cm">/**</span></div><div class='line' id='LC2648'><span class="cm"> * Return Handsontable instance</span></div><div class='line' id='LC2649'><span class="cm"> * @public</span></div><div class='line' id='LC2650'><span class="cm"> * @return {Object}</span></div><div class='line' id='LC2651'><span class="cm"> */</span></div><div class='line' id='LC2652'> <span class="k">this</span><span class="p">.</span><span class="nx">getInstance</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC2653'> <span class="k">return</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">.</span><span class="nx">data</span><span class="p">(</span><span class="s2">"handsontable"</span><span class="p">);</span></div><div class='line' id='LC2654'> <span class="p">};</span></div><div class='line' id='LC2655'><br/></div><div class='line' id='LC2656'> <span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC2657'> <span class="c1">// Create new instance of plugin hooks</span></div><div class='line' id='LC2658'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHookClass</span><span class="p">();</span></div><div class='line' id='LC2659'><br/></div><div class='line' id='LC2660'> <span class="c1">// Upgrade methods to call of global PluginHooks instance</span></div><div class='line' id='LC2661'> <span class="kd">var</span> <span class="nx">_run</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span></div><div class='line' id='LC2662'> <span class="p">,</span> <span class="nx">_exe</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">execute</span><span class="p">;</span></div><div class='line' id='LC2663'><br/></div><div class='line' id='LC2664'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">key</span><span class="p">,</span> <span class="nx">p1</span><span class="p">,</span> <span class="nx">p2</span><span class="p">,</span> <span class="nx">p3</span><span class="p">,</span> <span class="nx">p4</span><span class="p">,</span> <span class="nx">p5</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2665'> <span class="nx">_run</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">instance</span><span class="p">,</span> <span class="nx">key</span><span class="p">,</span> <span class="nx">p1</span><span class="p">,</span> <span class="nx">p2</span><span class="p">,</span> <span class="nx">p3</span><span class="p">,</span> <span class="nx">p4</span><span class="p">,</span> <span class="nx">p5</span><span class="p">);</span></div><div class='line' id='LC2666'> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">key</span><span class="p">,</span> <span class="nx">p1</span><span class="p">,</span> <span class="nx">p2</span><span class="p">,</span> <span class="nx">p3</span><span class="p">,</span> <span class="nx">p4</span><span class="p">,</span> <span class="nx">p5</span><span class="p">);</span></div><div class='line' id='LC2667'> <span class="p">};</span></div><div class='line' id='LC2668'><br/></div><div class='line' id='LC2669'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">execute</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">key</span><span class="p">,</span> <span class="nx">p1</span><span class="p">,</span> <span class="nx">p2</span><span class="p">,</span> <span class="nx">p3</span><span class="p">,</span> <span class="nx">p4</span><span class="p">,</span> <span class="nx">p5</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2670'> <span class="kd">var</span> <span class="nx">globalHandlerResult</span> <span class="o">=</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">key</span><span class="p">,</span> <span class="nx">p1</span><span class="p">,</span> <span class="nx">p2</span><span class="p">,</span> <span class="nx">p3</span><span class="p">,</span> <span class="nx">p4</span><span class="p">,</span> <span class="nx">p5</span><span class="p">);</span></div><div class='line' id='LC2671'> <span class="kd">var</span> <span class="nx">localHandlerResult</span> <span class="o">=</span> <span class="nx">_exe</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">instance</span><span class="p">,</span> <span class="nx">key</span><span class="p">,</span> <span class="nx">globalHandlerResult</span><span class="p">,</span> <span class="nx">p2</span><span class="p">,</span> <span class="nx">p3</span><span class="p">,</span> <span class="nx">p4</span><span class="p">,</span> <span class="nx">p5</span><span class="p">);</span></div><div class='line' id='LC2672'><br/></div><div class='line' id='LC2673'> <span class="k">return</span> <span class="k">typeof</span> <span class="nx">localHandlerResult</span> <span class="o">==</span> <span class="s1">'undefined'</span> <span class="o">?</span> <span class="nx">globalHandlerResult</span> <span class="o">:</span> <span class="nx">localHandlerResult</span><span class="p">;</span></div><div class='line' id='LC2674'><br/></div><div class='line' id='LC2675'> <span class="p">};</span></div><div class='line' id='LC2676'><br/></div><div class='line' id='LC2677'> <span class="c1">// Map old API with new methods</span></div><div class='line' id='LC2678'> <span class="nx">instance</span><span class="p">.</span><span class="nx">addHook</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC2679'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">add</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">,</span> <span class="nx">arguments</span><span class="p">);</span></div><div class='line' id='LC2680'> <span class="p">};</span></div><div class='line' id='LC2681'> <span class="nx">instance</span><span class="p">.</span><span class="nx">addHookOnce</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC2682'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">once</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">,</span> <span class="nx">arguments</span><span class="p">);</span></div><div class='line' id='LC2683'> <span class="p">};</span></div><div class='line' id='LC2684'><br/></div><div class='line' id='LC2685'> <span class="nx">instance</span><span class="p">.</span><span class="nx">removeHook</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC2686'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">remove</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">,</span> <span class="nx">arguments</span><span class="p">);</span></div><div class='line' id='LC2687'> <span class="p">};</span></div><div class='line' id='LC2688'><br/></div><div class='line' id='LC2689'> <span class="nx">instance</span><span class="p">.</span><span class="nx">runHooks</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC2690'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">,</span> <span class="nx">arguments</span><span class="p">);</span></div><div class='line' id='LC2691'> <span class="p">};</span></div><div class='line' id='LC2692'> <span class="nx">instance</span><span class="p">.</span><span class="nx">runHooksAndReturn</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC2693'> <span class="k">return</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">execute</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">,</span> <span class="nx">arguments</span><span class="p">);</span></div><div class='line' id='LC2694'> <span class="p">};</span></div><div class='line' id='LC2695'><br/></div><div class='line' id='LC2696'> <span class="p">})();</span></div><div class='line' id='LC2697'><br/></div><div class='line' id='LC2698'> <span class="k">this</span><span class="p">.</span><span class="nx">timeouts</span> <span class="o">=</span> <span class="p">{};</span></div><div class='line' id='LC2699'><br/></div><div class='line' id='LC2700'> <span class="cm">/**</span></div><div class='line' id='LC2701'><span class="cm"> * Sets timeout. Purpose of this method is to clear all known timeouts when `destroy` method is called</span></div><div class='line' id='LC2702'><span class="cm"> * @public</span></div><div class='line' id='LC2703'><span class="cm"> */</span></div><div class='line' id='LC2704'> <span class="k">this</span><span class="p">.</span><span class="nx">registerTimeout</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">key</span><span class="p">,</span> <span class="nx">handle</span><span class="p">,</span> <span class="nx">ms</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2705'> <span class="nx">clearTimeout</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">timeouts</span><span class="p">[</span><span class="nx">key</span><span class="p">]);</span></div><div class='line' id='LC2706'> <span class="k">this</span><span class="p">.</span><span class="nx">timeouts</span><span class="p">[</span><span class="nx">key</span><span class="p">]</span> <span class="o">=</span> <span class="nx">setTimeout</span><span class="p">(</span><span class="nx">handle</span><span class="p">,</span> <span class="nx">ms</span> <span class="o">||</span> <span class="mi">0</span><span class="p">);</span></div><div class='line' id='LC2707'> <span class="p">};</span></div><div class='line' id='LC2708'><br/></div><div class='line' id='LC2709'> <span class="cm">/**</span></div><div class='line' id='LC2710'><span class="cm"> * Clears all known timeouts</span></div><div class='line' id='LC2711'><span class="cm"> * @public</span></div><div class='line' id='LC2712'><span class="cm"> */</span></div><div class='line' id='LC2713'> <span class="k">this</span><span class="p">.</span><span class="nx">clearTimeouts</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC2714'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">key</span> <span class="k">in</span> <span class="k">this</span><span class="p">.</span><span class="nx">timeouts</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2715'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">timeouts</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">key</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC2716'> <span class="nx">clearTimeout</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">timeouts</span><span class="p">[</span><span class="nx">key</span><span class="p">]);</span></div><div class='line' id='LC2717'> <span class="p">}</span></div><div class='line' id='LC2718'> <span class="p">}</span></div><div class='line' id='LC2719'> <span class="p">};</span></div><div class='line' id='LC2720'><br/></div><div class='line' id='LC2721'> <span class="cm">/**</span></div><div class='line' id='LC2722'><span class="cm"> * Handsontable version</span></div><div class='line' id='LC2723'><span class="cm"> */</span></div><div class='line' id='LC2724'> <span class="k">this</span><span class="p">.</span><span class="nx">version</span> <span class="o">=</span> <span class="s1">'0.9.10'</span><span class="p">;</span> <span class="c1">//inserted by grunt from package.json</span></div><div class='line' id='LC2725'><span class="p">};</span></div><div class='line' id='LC2726'><br/></div><div class='line' id='LC2727'><span class="kd">var</span> <span class="nx">DefaultSettings</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC2728'><span class="p">};</span></div><div class='line' id='LC2729'><span class="nx">DefaultSettings</span><span class="p">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC2730'> <span class="nx">data</span><span class="o">:</span> <span class="k">void</span> <span class="mi">0</span><span class="p">,</span></div><div class='line' id='LC2731'> <span class="nx">width</span><span class="o">:</span> <span class="k">void</span> <span class="mi">0</span><span class="p">,</span></div><div class='line' id='LC2732'> <span class="nx">height</span><span class="o">:</span> <span class="k">void</span> <span class="mi">0</span><span class="p">,</span></div><div class='line' id='LC2733'> <span class="nx">startRows</span><span class="o">:</span> <span class="mi">5</span><span class="p">,</span></div><div class='line' id='LC2734'> <span class="nx">startCols</span><span class="o">:</span> <span class="mi">5</span><span class="p">,</span></div><div class='line' id='LC2735'> <span class="nx">minRows</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span></div><div class='line' id='LC2736'> <span class="nx">minCols</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span></div><div class='line' id='LC2737'> <span class="nx">maxRows</span><span class="o">:</span> <span class="kc">Infinity</span><span class="p">,</span></div><div class='line' id='LC2738'> <span class="nx">maxCols</span><span class="o">:</span> <span class="kc">Infinity</span><span class="p">,</span></div><div class='line' id='LC2739'> <span class="nx">minSpareRows</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span></div><div class='line' id='LC2740'> <span class="nx">minSpareCols</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span></div><div class='line' id='LC2741'> <span class="nx">multiSelect</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span></div><div class='line' id='LC2742'> <span class="nx">fillHandle</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span></div><div class='line' id='LC2743'> <span class="nx">fixedRowsTop</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span></div><div class='line' id='LC2744'> <span class="nx">fixedColumnsLeft</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span></div><div class='line' id='LC2745'> <span class="nx">undo</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span></div><div class='line' id='LC2746'> <span class="nx">outsideClickDeselects</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span></div><div class='line' id='LC2747'> <span class="nx">enterBeginsEditing</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span></div><div class='line' id='LC2748'> <span class="nx">enterMoves</span><span class="o">:</span> <span class="p">{</span><span class="nx">row</span><span class="o">:</span> <span class="mi">1</span><span class="p">,</span> <span class="nx">col</span><span class="o">:</span> <span class="mi">0</span><span class="p">},</span></div><div class='line' id='LC2749'> <span class="nx">tabMoves</span><span class="o">:</span> <span class="p">{</span><span class="nx">row</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">col</span><span class="o">:</span> <span class="mi">1</span><span class="p">},</span></div><div class='line' id='LC2750'> <span class="nx">autoWrapRow</span><span class="o">:</span> <span class="kc">false</span><span class="p">,</span></div><div class='line' id='LC2751'> <span class="nx">autoWrapCol</span><span class="o">:</span> <span class="kc">false</span><span class="p">,</span></div><div class='line' id='LC2752'> <span class="nx">copyRowsLimit</span><span class="o">:</span> <span class="mi">1000</span><span class="p">,</span></div><div class='line' id='LC2753'> <span class="nx">copyColsLimit</span><span class="o">:</span> <span class="mi">1000</span><span class="p">,</span></div><div class='line' id='LC2754'> <span class="nx">pasteMode</span><span class="o">:</span> <span class="s1">'overwrite'</span><span class="p">,</span></div><div class='line' id='LC2755'> <span class="nx">currentRowClassName</span><span class="o">:</span> <span class="k">void</span> <span class="mi">0</span><span class="p">,</span></div><div class='line' id='LC2756'> <span class="nx">currentColClassName</span><span class="o">:</span> <span class="k">void</span> <span class="mi">0</span><span class="p">,</span></div><div class='line' id='LC2757'> <span class="nx">stretchH</span><span class="o">:</span> <span class="s1">'hybrid'</span><span class="p">,</span></div><div class='line' id='LC2758'> <span class="nx">isEmptyRow</span><span class="o">:</span> <span class="k">void</span> <span class="mi">0</span><span class="p">,</span></div><div class='line' id='LC2759'> <span class="nx">isEmptyCol</span><span class="o">:</span> <span class="k">void</span> <span class="mi">0</span><span class="p">,</span></div><div class='line' id='LC2760'> <span class="nx">observeDOMVisibility</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span></div><div class='line' id='LC2761'> <span class="nx">allowInvalid</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span></div><div class='line' id='LC2762'> <span class="nx">invalidCellClassName</span><span class="o">:</span> <span class="s1">'htInvalid'</span><span class="p">,</span></div><div class='line' id='LC2763'> <span class="nx">fragmentSelection</span><span class="o">:</span> <span class="kc">false</span><span class="p">,</span></div><div class='line' id='LC2764'> <span class="nx">readOnly</span><span class="o">:</span> <span class="kc">false</span></div><div class='line' id='LC2765'><span class="p">};</span></div><div class='line' id='LC2766'><br/></div><div class='line' id='LC2767'><span class="nx">$</span><span class="p">.</span><span class="nx">fn</span><span class="p">.</span><span class="nx">handsontable</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">action</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2768'> <span class="kd">var</span> <span class="nx">i</span></div><div class='line' id='LC2769'> <span class="p">,</span> <span class="nx">ilen</span></div><div class='line' id='LC2770'> <span class="p">,</span> <span class="nx">args</span></div><div class='line' id='LC2771'> <span class="p">,</span> <span class="nx">output</span></div><div class='line' id='LC2772'> <span class="p">,</span> <span class="nx">userSettings</span></div><div class='line' id='LC2773'> <span class="p">,</span> <span class="nx">$this</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">first</span><span class="p">()</span> <span class="c1">// Use only first element from list</span></div><div class='line' id='LC2774'> <span class="p">,</span> <span class="nx">instance</span> <span class="o">=</span> <span class="nx">$this</span><span class="p">.</span><span class="nx">data</span><span class="p">(</span><span class="s1">'handsontable'</span><span class="p">);</span></div><div class='line' id='LC2775'><br/></div><div class='line' id='LC2776'> <span class="c1">// Init case</span></div><div class='line' id='LC2777'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">action</span> <span class="o">!==</span> <span class="s1">'string'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2778'> <span class="nx">userSettings</span> <span class="o">=</span> <span class="nx">action</span> <span class="o">||</span> <span class="p">{};</span></div><div class='line' id='LC2779'> <span class="k">if</span> <span class="p">(</span><span class="nx">instance</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2780'> <span class="nx">instance</span><span class="p">.</span><span class="nx">updateSettings</span><span class="p">(</span><span class="nx">userSettings</span><span class="p">);</span></div><div class='line' id='LC2781'> <span class="p">}</span></div><div class='line' id='LC2782'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC2783'> <span class="nx">instance</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">Core</span><span class="p">(</span><span class="nx">$this</span><span class="p">,</span> <span class="nx">userSettings</span><span class="p">);</span></div><div class='line' id='LC2784'> <span class="nx">$this</span><span class="p">.</span><span class="nx">data</span><span class="p">(</span><span class="s1">'handsontable'</span><span class="p">,</span> <span class="nx">instance</span><span class="p">);</span></div><div class='line' id='LC2785'> <span class="nx">instance</span><span class="p">.</span><span class="nx">init</span><span class="p">();</span></div><div class='line' id='LC2786'> <span class="p">}</span></div><div class='line' id='LC2787'><br/></div><div class='line' id='LC2788'> <span class="k">return</span> <span class="nx">$this</span><span class="p">;</span></div><div class='line' id='LC2789'> <span class="p">}</span></div><div class='line' id='LC2790'> <span class="c1">// Action case</span></div><div class='line' id='LC2791'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC2792'> <span class="nx">args</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC2793'> <span class="k">if</span> <span class="p">(</span><span class="nx">arguments</span><span class="p">.</span><span class="nx">length</span> <span class="o">></span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2794'> <span class="k">for</span> <span class="p">(</span><span class="nx">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span> <span class="nx">ilen</span> <span class="o">=</span> <span class="nx">arguments</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">ilen</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2795'> <span class="nx">args</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">arguments</span><span class="p">[</span><span class="nx">i</span><span class="p">]);</span></div><div class='line' id='LC2796'> <span class="p">}</span></div><div class='line' id='LC2797'> <span class="p">}</span></div><div class='line' id='LC2798'><br/></div><div class='line' id='LC2799'> <span class="k">if</span> <span class="p">(</span><span class="nx">instance</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2800'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">instance</span><span class="p">[</span><span class="nx">action</span><span class="p">]</span> <span class="o">!==</span> <span class="s1">'undefined'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2801'> <span class="nx">output</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">[</span><span class="nx">action</span><span class="p">].</span><span class="nx">apply</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">args</span><span class="p">);</span></div><div class='line' id='LC2802'> <span class="p">}</span></div><div class='line' id='LC2803'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC2804'> <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s1">'Handsontable do not provide action: '</span> <span class="o">+</span> <span class="nx">action</span><span class="p">);</span></div><div class='line' id='LC2805'> <span class="p">}</span></div><div class='line' id='LC2806'> <span class="p">}</span></div><div class='line' id='LC2807'><br/></div><div class='line' id='LC2808'> <span class="k">return</span> <span class="nx">output</span><span class="p">;</span></div><div class='line' id='LC2809'> <span class="p">}</span></div><div class='line' id='LC2810'><span class="p">};</span></div><div class='line' id='LC2811'><br/></div><div class='line' id='LC2812'><span class="cm">/**</span></div><div class='line' id='LC2813'><span class="cm"> * Handsontable TableView constructor</span></div><div class='line' id='LC2814'><span class="cm"> * @param {Object} instance</span></div><div class='line' id='LC2815'><span class="cm"> */</span></div><div class='line' id='LC2816'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">TableView</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">instance</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2817'> <span class="kd">var</span> <span class="nx">that</span> <span class="o">=</span> <span class="k">this</span></div><div class='line' id='LC2818'> <span class="p">,</span> <span class="nx">$window</span> <span class="o">=</span> <span class="nx">$</span><span class="p">(</span><span class="nb">window</span><span class="p">)</span></div><div class='line' id='LC2819'> <span class="p">,</span> <span class="nx">$documentElement</span> <span class="o">=</span> <span class="nx">$</span><span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">documentElement</span><span class="p">);</span></div><div class='line' id='LC2820'><br/></div><div class='line' id='LC2821'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">;</span></div><div class='line' id='LC2822'> <span class="k">this</span><span class="p">.</span><span class="nx">settings</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getSettings</span><span class="p">();</span></div><div class='line' id='LC2823'> <span class="k">this</span><span class="p">.</span><span class="nx">settingsFromDOM</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getSettingsFromDOM</span><span class="p">();</span></div><div class='line' id='LC2824'><br/></div><div class='line' id='LC2825'> <span class="nx">instance</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">.</span><span class="nx">data</span><span class="p">(</span><span class="s1">'originalStyle'</span><span class="p">,</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">.</span><span class="nx">attr</span><span class="p">(</span><span class="s1">'style'</span><span class="p">));</span> <span class="c1">//needed to retrieve original style in jsFiddle link generator in HT examples. may be removed in future versions</span></div><div class='line' id='LC2826'> <span class="nx">instance</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="s1">'handsontable'</span><span class="p">);</span></div><div class='line' id='LC2827'><br/></div><div class='line' id='LC2828'> <span class="kd">var</span> <span class="nx">table</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'TABLE'</span><span class="p">);</span></div><div class='line' id='LC2829'> <span class="nx">table</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="s1">'htCore'</span><span class="p">;</span></div><div class='line' id='LC2830'> <span class="k">this</span><span class="p">.</span><span class="nx">THEAD</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'THEAD'</span><span class="p">);</span></div><div class='line' id='LC2831'> <span class="nx">table</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">THEAD</span><span class="p">);</span></div><div class='line' id='LC2832'> <span class="k">this</span><span class="p">.</span><span class="nx">TBODY</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'TBODY'</span><span class="p">);</span></div><div class='line' id='LC2833'> <span class="nx">table</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">TBODY</span><span class="p">);</span></div><div class='line' id='LC2834'><br/></div><div class='line' id='LC2835'> <span class="nx">instance</span><span class="p">.</span><span class="nx">$table</span> <span class="o">=</span> <span class="nx">$</span><span class="p">(</span><span class="nx">table</span><span class="p">);</span></div><div class='line' id='LC2836'> <span class="nx">instance</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">.</span><span class="nx">prepend</span><span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">$table</span><span class="p">);</span></div><div class='line' id='LC2837'><br/></div><div class='line' id='LC2838'> <span class="nx">instance</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'mousedown.handsontable'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2839'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">that</span><span class="p">.</span><span class="nx">isTextSelectionAllowed</span><span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">target</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC2840'> <span class="nx">event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">();</span> <span class="c1">//disable text selection in Chrome</span></div><div class='line' id='LC2841'> <span class="nx">clearTextSelection</span><span class="p">();</span></div><div class='line' id='LC2842'> <span class="p">}</span></div><div class='line' id='LC2843'> <span class="p">});</span></div><div class='line' id='LC2844'><br/></div><div class='line' id='LC2845'> <span class="nx">$documentElement</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'keyup.'</span> <span class="o">+</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">guid</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2846'> <span class="k">if</span> <span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">selection</span><span class="p">.</span><span class="nx">isInProgress</span><span class="p">()</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">event</span><span class="p">.</span><span class="nx">shiftKey</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2847'> <span class="nx">instance</span><span class="p">.</span><span class="nx">selection</span><span class="p">.</span><span class="nx">finish</span><span class="p">();</span></div><div class='line' id='LC2848'> <span class="p">}</span></div><div class='line' id='LC2849'> <span class="p">});</span></div><div class='line' id='LC2850'><br/></div><div class='line' id='LC2851'> <span class="kd">var</span> <span class="nx">isMouseDown</span></div><div class='line' id='LC2852'> <span class="p">,</span> <span class="nx">dragInterval</span><span class="p">;</span></div><div class='line' id='LC2853'><br/></div><div class='line' id='LC2854'> <span class="nx">$documentElement</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'mouseup.'</span> <span class="o">+</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">guid</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2855'> <span class="k">if</span> <span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">selection</span><span class="p">.</span><span class="nx">isInProgress</span><span class="p">()</span> <span class="o">&&</span> <span class="nx">event</span><span class="p">.</span><span class="nx">which</span> <span class="o">===</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//is left mouse button</span></div><div class='line' id='LC2856'> <span class="nx">instance</span><span class="p">.</span><span class="nx">selection</span><span class="p">.</span><span class="nx">finish</span><span class="p">();</span></div><div class='line' id='LC2857'> <span class="p">}</span></div><div class='line' id='LC2858'><br/></div><div class='line' id='LC2859'> <span class="nx">isMouseDown</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC2860'> <span class="nx">clearInterval</span><span class="p">(</span><span class="nx">dragInterval</span><span class="p">);</span></div><div class='line' id='LC2861'> <span class="nx">dragInterval</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span></div><div class='line' id='LC2862'><br/></div><div class='line' id='LC2863'> <span class="k">if</span> <span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">autofill</span><span class="p">.</span><span class="nx">handle</span> <span class="o">&&</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">autofill</span><span class="p">.</span><span class="nx">handle</span><span class="p">.</span><span class="nx">isDragged</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2864'> <span class="k">if</span> <span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">autofill</span><span class="p">.</span><span class="nx">handle</span><span class="p">.</span><span class="nx">isDragged</span> <span class="o">></span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2865'> <span class="nx">instance</span><span class="p">.</span><span class="nx">autofill</span><span class="p">.</span><span class="nx">apply</span><span class="p">();</span></div><div class='line' id='LC2866'> <span class="p">}</span></div><div class='line' id='LC2867'> <span class="nx">instance</span><span class="p">.</span><span class="nx">autofill</span><span class="p">.</span><span class="nx">handle</span><span class="p">.</span><span class="nx">isDragged</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC2868'> <span class="p">}</span></div><div class='line' id='LC2869'><br/></div><div class='line' id='LC2870'> <span class="k">if</span> <span class="p">(</span><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">isOutsideInput</span><span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">activeElement</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC2871'> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">activeGuid</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span></div><div class='line' id='LC2872'> <span class="p">}</span></div><div class='line' id='LC2873'> <span class="p">});</span></div><div class='line' id='LC2874'><br/></div><div class='line' id='LC2875'> <span class="nx">$documentElement</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'mousedown.'</span> <span class="o">+</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">guid</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2876'> <span class="kd">var</span> <span class="nx">next</span> <span class="o">=</span> <span class="nx">event</span><span class="p">.</span><span class="nx">target</span><span class="p">;</span></div><div class='line' id='LC2877'><br/></div><div class='line' id='LC2878'> <span class="k">if</span> <span class="p">(</span><span class="nx">next</span> <span class="o">!==</span> <span class="nx">that</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">spreader</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//immediate click on "spreader" means click on the right side of vertical scrollbar</span></div><div class='line' id='LC2879'> <span class="k">while</span> <span class="p">(</span><span class="nx">next</span> <span class="o">!==</span> <span class="nb">document</span><span class="p">.</span><span class="nx">documentElement</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2880'> <span class="c1">//X-HANDSONTABLE is the tag name in Web Components version of HOT. Removal of this breaks cell selection</span></div><div class='line' id='LC2881'> <span class="k">if</span> <span class="p">(</span><span class="nx">next</span> <span class="o">===</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2882'> <span class="k">return</span><span class="p">;</span> <span class="c1">//click on something that was a row but now is detached (possibly because your click triggered a rerender)</span></div><div class='line' id='LC2883'> <span class="p">}</span></div><div class='line' id='LC2884'> <span class="k">if</span> <span class="p">(</span><span class="nx">next</span> <span class="o">===</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">||</span> <span class="nx">next</span><span class="p">.</span><span class="nx">nodeName</span> <span class="o">===</span> <span class="s1">'X-HANDSONTABLE'</span> <span class="o">||</span> <span class="nx">next</span><span class="p">.</span><span class="nx">id</span> <span class="o">===</span> <span class="s1">'context-menu-layer'</span> <span class="o">||</span> <span class="nx">$</span><span class="p">(</span><span class="nx">next</span><span class="p">).</span><span class="nx">is</span><span class="p">(</span><span class="s1">'.context-menu-list'</span><span class="p">)</span> <span class="o">||</span> <span class="nx">$</span><span class="p">(</span><span class="nx">next</span><span class="p">).</span><span class="nx">is</span><span class="p">(</span><span class="s1">'.typeahead li'</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC2885'> <span class="k">return</span><span class="p">;</span> <span class="c1">//click inside container</span></div><div class='line' id='LC2886'> <span class="p">}</span></div><div class='line' id='LC2887'> <span class="nx">next</span> <span class="o">=</span> <span class="nx">next</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">;</span></div><div class='line' id='LC2888'> <span class="p">}</span></div><div class='line' id='LC2889'> <span class="p">}</span></div><div class='line' id='LC2890'><br/></div><div class='line' id='LC2891'> <span class="k">if</span> <span class="p">(</span><span class="nx">that</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">outsideClickDeselects</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2892'> <span class="nx">instance</span><span class="p">.</span><span class="nx">deselectCell</span><span class="p">();</span></div><div class='line' id='LC2893'> <span class="p">}</span></div><div class='line' id='LC2894'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC2895'> <span class="nx">instance</span><span class="p">.</span><span class="nx">destroyEditor</span><span class="p">();</span></div><div class='line' id='LC2896'> <span class="p">}</span></div><div class='line' id='LC2897'> <span class="p">});</span></div><div class='line' id='LC2898'><br/></div><div class='line' id='LC2899'> <span class="nx">instance</span><span class="p">.</span><span class="nx">$table</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'selectstart'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2900'> <span class="k">if</span> <span class="p">(</span><span class="nx">that</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">fragmentSelection</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2901'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC2902'> <span class="p">}</span></div><div class='line' id='LC2903'><br/></div><div class='line' id='LC2904'> <span class="c1">//https://github.com/warpech/jquery-handsontable/issues/160</span></div><div class='line' id='LC2905'> <span class="c1">//selectstart is IE only event. Prevent text from being selected when performing drag down in IE8</span></div><div class='line' id='LC2906'> <span class="nx">event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">();</span></div><div class='line' id='LC2907'> <span class="p">});</span></div><div class='line' id='LC2908'><br/></div><div class='line' id='LC2909'> <span class="nx">instance</span><span class="p">.</span><span class="nx">$table</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'mouseenter'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC2910'> <span class="k">if</span> <span class="p">(</span><span class="nx">dragInterval</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//if dragInterval was set (that means mouse was really outside of table, not over an element that is outside of <table> in DOM</span></div><div class='line' id='LC2911'> <span class="nx">clearInterval</span><span class="p">(</span><span class="nx">dragInterval</span><span class="p">);</span></div><div class='line' id='LC2912'> <span class="nx">dragInterval</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span></div><div class='line' id='LC2913'> <span class="p">}</span></div><div class='line' id='LC2914'> <span class="p">});</span></div><div class='line' id='LC2915'><br/></div><div class='line' id='LC2916'> <span class="nx">instance</span><span class="p">.</span><span class="nx">$table</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'mouseleave'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2917'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="p">(</span><span class="nx">isMouseDown</span> <span class="o">||</span> <span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">autofill</span><span class="p">.</span><span class="nx">handle</span> <span class="o">&&</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">autofill</span><span class="p">.</span><span class="nx">handle</span><span class="p">.</span><span class="nx">isDragged</span><span class="p">)))</span> <span class="p">{</span></div><div class='line' id='LC2918'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC2919'> <span class="p">}</span></div><div class='line' id='LC2920'><br/></div><div class='line' id='LC2921'> <span class="kd">var</span> <span class="nx">tolerance</span> <span class="o">=</span> <span class="mi">1</span> <span class="c1">//this is needed because width() and height() contains stuff like cell borders</span></div><div class='line' id='LC2922'> <span class="p">,</span> <span class="nx">offset</span> <span class="o">=</span> <span class="nx">that</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">offset</span><span class="p">(</span><span class="nx">table</span><span class="p">)</span></div><div class='line' id='LC2923'> <span class="p">,</span> <span class="nx">offsetTop</span> <span class="o">=</span> <span class="nx">offset</span><span class="p">.</span><span class="nx">top</span> <span class="o">+</span> <span class="nx">tolerance</span></div><div class='line' id='LC2924'> <span class="p">,</span> <span class="nx">offsetLeft</span> <span class="o">=</span> <span class="nx">offset</span><span class="p">.</span><span class="nx">left</span> <span class="o">+</span> <span class="nx">tolerance</span></div><div class='line' id='LC2925'> <span class="p">,</span> <span class="nx">width</span> <span class="o">=</span> <span class="nx">that</span><span class="p">.</span><span class="nx">containerWidth</span> <span class="o">-</span> <span class="nx">that</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'scrollbarWidth'</span><span class="p">)</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="nx">tolerance</span></div><div class='line' id='LC2926'> <span class="p">,</span> <span class="nx">height</span> <span class="o">=</span> <span class="nx">that</span><span class="p">.</span><span class="nx">containerHeight</span> <span class="o">-</span> <span class="nx">that</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'scrollbarHeight'</span><span class="p">)</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="nx">tolerance</span></div><div class='line' id='LC2927'> <span class="p">,</span> <span class="nx">method</span></div><div class='line' id='LC2928'> <span class="p">,</span> <span class="nx">row</span> <span class="o">=</span> <span class="mi">0</span></div><div class='line' id='LC2929'> <span class="p">,</span> <span class="nx">col</span> <span class="o">=</span> <span class="mi">0</span></div><div class='line' id='LC2930'> <span class="p">,</span> <span class="nx">dragFn</span><span class="p">;</span></div><div class='line' id='LC2931'><br/></div><div class='line' id='LC2932'> <span class="k">if</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">pageY</span> <span class="o"><</span> <span class="nx">offsetTop</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//top edge crossed</span></div><div class='line' id='LC2933'> <span class="nx">row</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC2934'> <span class="nx">method</span> <span class="o">=</span> <span class="s1">'scrollVertical'</span><span class="p">;</span></div><div class='line' id='LC2935'> <span class="p">}</span></div><div class='line' id='LC2936'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">pageY</span> <span class="o">>=</span> <span class="nx">offsetTop</span> <span class="o">+</span> <span class="nx">height</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//bottom edge crossed</span></div><div class='line' id='LC2937'> <span class="nx">row</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC2938'> <span class="nx">method</span> <span class="o">=</span> <span class="s1">'scrollVertical'</span><span class="p">;</span></div><div class='line' id='LC2939'> <span class="p">}</span></div><div class='line' id='LC2940'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">pageX</span> <span class="o"><</span> <span class="nx">offsetLeft</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//left edge crossed</span></div><div class='line' id='LC2941'> <span class="nx">col</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC2942'> <span class="nx">method</span> <span class="o">=</span> <span class="s1">'scrollHorizontal'</span><span class="p">;</span></div><div class='line' id='LC2943'> <span class="p">}</span></div><div class='line' id='LC2944'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">pageX</span> <span class="o">>=</span> <span class="nx">offsetLeft</span> <span class="o">+</span> <span class="nx">width</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//right edge crossed</span></div><div class='line' id='LC2945'> <span class="nx">col</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC2946'> <span class="nx">method</span> <span class="o">=</span> <span class="s1">'scrollHorizontal'</span><span class="p">;</span></div><div class='line' id='LC2947'> <span class="p">}</span></div><div class='line' id='LC2948'><br/></div><div class='line' id='LC2949'> <span class="k">if</span> <span class="p">(</span><span class="nx">method</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2950'> <span class="nx">dragFn</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC2951'> <span class="k">if</span> <span class="p">(</span><span class="nx">isMouseDown</span> <span class="o">||</span> <span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">autofill</span><span class="p">.</span><span class="nx">handle</span> <span class="o">&&</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">autofill</span><span class="p">.</span><span class="nx">handle</span><span class="p">.</span><span class="nx">isDragged</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC2952'> <span class="c1">//instance.selection.transformEnd(row, col);</span></div><div class='line' id='LC2953'> <span class="nx">that</span><span class="p">.</span><span class="nx">wt</span><span class="p">[</span><span class="nx">method</span><span class="p">](</span><span class="nx">row</span> <span class="o">+</span> <span class="nx">col</span><span class="p">).</span><span class="nx">draw</span><span class="p">();</span></div><div class='line' id='LC2954'> <span class="p">}</span></div><div class='line' id='LC2955'> <span class="p">};</span></div><div class='line' id='LC2956'> <span class="nx">dragFn</span><span class="p">();</span></div><div class='line' id='LC2957'> <span class="nx">dragInterval</span> <span class="o">=</span> <span class="nx">setInterval</span><span class="p">(</span><span class="nx">dragFn</span><span class="p">,</span> <span class="mi">100</span><span class="p">);</span></div><div class='line' id='LC2958'> <span class="p">}</span></div><div class='line' id='LC2959'> <span class="p">});</span></div><div class='line' id='LC2960'><br/></div><div class='line' id='LC2961'> <span class="kd">var</span> <span class="nx">clearTextSelection</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC2962'> <span class="c1">//http://stackoverflow.com/questions/3169786/clear-text-selection-with-javascript</span></div><div class='line' id='LC2963'> <span class="k">if</span> <span class="p">(</span><span class="nb">window</span><span class="p">.</span><span class="nx">getSelection</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2964'> <span class="k">if</span> <span class="p">(</span><span class="nb">window</span><span class="p">.</span><span class="nx">getSelection</span><span class="p">().</span><span class="nx">empty</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// Chrome</span></div><div class='line' id='LC2965'> <span class="nb">window</span><span class="p">.</span><span class="nx">getSelection</span><span class="p">().</span><span class="nx">empty</span><span class="p">();</span></div><div class='line' id='LC2966'> <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nb">window</span><span class="p">.</span><span class="nx">getSelection</span><span class="p">().</span><span class="nx">removeAllRanges</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// Firefox</span></div><div class='line' id='LC2967'> <span class="nb">window</span><span class="p">.</span><span class="nx">getSelection</span><span class="p">().</span><span class="nx">removeAllRanges</span><span class="p">();</span></div><div class='line' id='LC2968'> <span class="p">}</span></div><div class='line' id='LC2969'> <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">selection</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// IE?</span></div><div class='line' id='LC2970'> <span class="nb">document</span><span class="p">.</span><span class="nx">selection</span><span class="p">.</span><span class="nx">empty</span><span class="p">();</span></div><div class='line' id='LC2971'> <span class="p">}</span></div><div class='line' id='LC2972'> <span class="p">};</span></div><div class='line' id='LC2973'><br/></div><div class='line' id='LC2974'> <span class="kd">var</span> <span class="nx">walkontableConfig</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC2975'> <span class="nx">table</span><span class="o">:</span> <span class="nx">table</span><span class="p">,</span></div><div class='line' id='LC2976'> <span class="nx">stretchH</span><span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">stretchH</span><span class="p">,</span></div><div class='line' id='LC2977'> <span class="nx">data</span><span class="o">:</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getDataAtCell</span><span class="p">,</span></div><div class='line' id='LC2978'> <span class="nx">totalRows</span><span class="o">:</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countRows</span><span class="p">,</span></div><div class='line' id='LC2979'> <span class="nx">totalColumns</span><span class="o">:</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countCols</span><span class="p">,</span></div><div class='line' id='LC2980'> <span class="nx">scrollbarModelV</span><span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">scrollbarModelV</span><span class="p">,</span></div><div class='line' id='LC2981'> <span class="nx">scrollbarModelH</span><span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">scrollbarModelH</span><span class="p">,</span></div><div class='line' id='LC2982'> <span class="nx">offsetRow</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span></div><div class='line' id='LC2983'> <span class="nx">offsetColumn</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span></div><div class='line' id='LC2984'> <span class="nx">width</span><span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">getWidth</span><span class="p">(),</span></div><div class='line' id='LC2985'> <span class="nx">height</span><span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">getHeight</span><span class="p">(),</span></div><div class='line' id='LC2986'> <span class="nx">fixedColumnsLeft</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC2987'> <span class="k">return</span> <span class="nx">that</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">fixedColumnsLeft</span><span class="p">;</span></div><div class='line' id='LC2988'> <span class="p">},</span></div><div class='line' id='LC2989'> <span class="nx">fixedRowsTop</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC2990'> <span class="k">return</span> <span class="nx">that</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">fixedRowsTop</span><span class="p">;</span></div><div class='line' id='LC2991'> <span class="p">},</span></div><div class='line' id='LC2992'> <span class="nx">rowHeaders</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC2993'> <span class="k">return</span> <span class="nx">that</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">rowHeaders</span> <span class="o">?</span> <span class="p">[</span><span class="kd">function</span> <span class="p">(</span><span class="nx">index</span><span class="p">,</span> <span class="nx">TH</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2994'> <span class="nx">that</span><span class="p">.</span><span class="nx">appendRowHeader</span><span class="p">(</span><span class="nx">index</span><span class="p">,</span> <span class="nx">TH</span><span class="p">);</span></div><div class='line' id='LC2995'> <span class="p">}]</span> <span class="o">:</span> <span class="p">[]</span></div><div class='line' id='LC2996'> <span class="p">},</span></div><div class='line' id='LC2997'> <span class="nx">columnHeaders</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC2998'> <span class="k">return</span> <span class="nx">that</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">colHeaders</span> <span class="o">?</span> <span class="p">[</span><span class="kd">function</span> <span class="p">(</span><span class="nx">index</span><span class="p">,</span> <span class="nx">TH</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC2999'> <span class="nx">that</span><span class="p">.</span><span class="nx">appendColHeader</span><span class="p">(</span><span class="nx">index</span><span class="p">,</span> <span class="nx">TH</span><span class="p">);</span></div><div class='line' id='LC3000'> <span class="p">}]</span> <span class="o">:</span> <span class="p">[]</span></div><div class='line' id='LC3001'> <span class="p">},</span></div><div class='line' id='LC3002'> <span class="nx">columnWidth</span><span class="o">:</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getColWidth</span><span class="p">,</span></div><div class='line' id='LC3003'> <span class="nx">cellRenderer</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">column</span><span class="p">,</span> <span class="nx">TD</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3004'> <span class="nx">that</span><span class="p">.</span><span class="nx">applyCellTypeMethod</span><span class="p">(</span><span class="s1">'renderer'</span><span class="p">,</span> <span class="nx">TD</span><span class="p">,</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">column</span><span class="p">);</span></div><div class='line' id='LC3005'> <span class="p">},</span></div><div class='line' id='LC3006'> <span class="nx">selections</span><span class="o">:</span> <span class="p">{</span></div><div class='line' id='LC3007'> <span class="nx">current</span><span class="o">:</span> <span class="p">{</span></div><div class='line' id='LC3008'> <span class="nx">className</span><span class="o">:</span> <span class="s1">'current'</span><span class="p">,</span></div><div class='line' id='LC3009'> <span class="nx">border</span><span class="o">:</span> <span class="p">{</span></div><div class='line' id='LC3010'> <span class="nx">width</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span></div><div class='line' id='LC3011'> <span class="nx">color</span><span class="o">:</span> <span class="s1">'#5292F7'</span><span class="p">,</span></div><div class='line' id='LC3012'> <span class="nx">style</span><span class="o">:</span> <span class="s1">'solid'</span><span class="p">,</span></div><div class='line' id='LC3013'> <span class="nx">cornerVisible</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC3014'> <span class="k">return</span> <span class="nx">that</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">fillHandle</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">that</span><span class="p">.</span><span class="nx">isCellEdited</span><span class="p">()</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">instance</span><span class="p">.</span><span class="nx">selection</span><span class="p">.</span><span class="nx">isMultiple</span><span class="p">()</span></div><div class='line' id='LC3015'> <span class="p">}</span></div><div class='line' id='LC3016'> <span class="p">}</span></div><div class='line' id='LC3017'> <span class="p">},</span></div><div class='line' id='LC3018'> <span class="nx">area</span><span class="o">:</span> <span class="p">{</span></div><div class='line' id='LC3019'> <span class="nx">className</span><span class="o">:</span> <span class="s1">'area'</span><span class="p">,</span></div><div class='line' id='LC3020'> <span class="nx">border</span><span class="o">:</span> <span class="p">{</span></div><div class='line' id='LC3021'> <span class="nx">width</span><span class="o">:</span> <span class="mi">1</span><span class="p">,</span></div><div class='line' id='LC3022'> <span class="nx">color</span><span class="o">:</span> <span class="s1">'#89AFF9'</span><span class="p">,</span></div><div class='line' id='LC3023'> <span class="nx">style</span><span class="o">:</span> <span class="s1">'solid'</span><span class="p">,</span></div><div class='line' id='LC3024'> <span class="nx">cornerVisible</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC3025'> <span class="k">return</span> <span class="nx">that</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">fillHandle</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">that</span><span class="p">.</span><span class="nx">isCellEdited</span><span class="p">()</span> <span class="o">&&</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">selection</span><span class="p">.</span><span class="nx">isMultiple</span><span class="p">()</span></div><div class='line' id='LC3026'> <span class="p">}</span></div><div class='line' id='LC3027'> <span class="p">}</span></div><div class='line' id='LC3028'> <span class="p">},</span></div><div class='line' id='LC3029'> <span class="nx">highlight</span><span class="o">:</span> <span class="p">{</span></div><div class='line' id='LC3030'> <span class="nx">highlightRowClassName</span><span class="o">:</span> <span class="nx">that</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">currentRowClassName</span><span class="p">,</span></div><div class='line' id='LC3031'> <span class="nx">highlightColumnClassName</span><span class="o">:</span> <span class="nx">that</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">currentColClassName</span></div><div class='line' id='LC3032'> <span class="p">},</span></div><div class='line' id='LC3033'> <span class="nx">fill</span><span class="o">:</span> <span class="p">{</span></div><div class='line' id='LC3034'> <span class="nx">className</span><span class="o">:</span> <span class="s1">'fill'</span><span class="p">,</span></div><div class='line' id='LC3035'> <span class="nx">border</span><span class="o">:</span> <span class="p">{</span></div><div class='line' id='LC3036'> <span class="nx">width</span><span class="o">:</span> <span class="mi">1</span><span class="p">,</span></div><div class='line' id='LC3037'> <span class="nx">color</span><span class="o">:</span> <span class="s1">'red'</span><span class="p">,</span></div><div class='line' id='LC3038'> <span class="nx">style</span><span class="o">:</span> <span class="s1">'solid'</span></div><div class='line' id='LC3039'> <span class="p">}</span></div><div class='line' id='LC3040'> <span class="p">}</span></div><div class='line' id='LC3041'> <span class="p">},</span></div><div class='line' id='LC3042'> <span class="nx">hideBorderOnMouseDownOver</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC3043'> <span class="k">return</span> <span class="nx">that</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">fragmentSelection</span><span class="p">;</span></div><div class='line' id='LC3044'> <span class="p">},</span></div><div class='line' id='LC3045'> <span class="nx">onCellMouseDown</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">event</span><span class="p">,</span> <span class="nx">coords</span><span class="p">,</span> <span class="nx">TD</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3046'> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">activeGuid</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">guid</span><span class="p">;</span></div><div class='line' id='LC3047'><br/></div><div class='line' id='LC3048'> <span class="k">if</span> <span class="p">(</span><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">isOutsideInput</span><span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">activeElement</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC3049'> <span class="nb">document</span><span class="p">.</span><span class="nx">activeElement</span><span class="p">.</span><span class="nx">blur</span><span class="p">();</span></div><div class='line' id='LC3050'> <span class="p">}</span></div><div class='line' id='LC3051'><br/></div><div class='line' id='LC3052'> <span class="nx">isMouseDown</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC3053'> <span class="kd">var</span> <span class="nx">coordsObj</span> <span class="o">=</span> <span class="p">{</span><span class="nx">row</span><span class="o">:</span> <span class="nx">coords</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="nx">col</span><span class="o">:</span> <span class="nx">coords</span><span class="p">[</span><span class="mi">1</span><span class="p">]};</span></div><div class='line' id='LC3054'> <span class="k">if</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">button</span> <span class="o">===</span> <span class="mi">2</span> <span class="o">&&</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">selection</span><span class="p">.</span><span class="nx">inInSelection</span><span class="p">(</span><span class="nx">coordsObj</span><span class="p">))</span> <span class="p">{</span> <span class="c1">//right mouse button</span></div><div class='line' id='LC3055'> <span class="c1">//do nothing</span></div><div class='line' id='LC3056'> <span class="p">}</span></div><div class='line' id='LC3057'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">shiftKey</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3058'> <span class="nx">instance</span><span class="p">.</span><span class="nx">selection</span><span class="p">.</span><span class="nx">setRangeEnd</span><span class="p">(</span><span class="nx">coordsObj</span><span class="p">);</span></div><div class='line' id='LC3059'> <span class="p">}</span></div><div class='line' id='LC3060'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC3061'> <span class="nx">instance</span><span class="p">.</span><span class="nx">selection</span><span class="p">.</span><span class="nx">setRangeStart</span><span class="p">(</span><span class="nx">coordsObj</span><span class="p">);</span></div><div class='line' id='LC3062'> <span class="p">}</span></div><div class='line' id='LC3063'><br/></div><div class='line' id='LC3064'><br/></div><div class='line' id='LC3065'> <span class="k">if</span> <span class="p">(</span><span class="nx">that</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">afterOnCellMouseDown</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3066'> <span class="nx">that</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">afterOnCellMouseDown</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">event</span><span class="p">,</span> <span class="nx">coords</span><span class="p">,</span> <span class="nx">TD</span><span class="p">);</span></div><div class='line' id='LC3067'> <span class="p">}</span></div><div class='line' id='LC3068'> <span class="p">},</span></div><div class='line' id='LC3069'> <span class="cm">/*onCellMouseOut: function (/*event, coords, TD* /) {</span></div><div class='line' id='LC3070'><span class="cm"> if (isMouseDown && that.settings.fragmentSelection === 'single') {</span></div><div class='line' id='LC3071'><span class="cm"> clearTextSelection(); //otherwise text selection blinks during multiple cells selection</span></div><div class='line' id='LC3072'><span class="cm"> }</span></div><div class='line' id='LC3073'><span class="cm"> },*/</span></div><div class='line' id='LC3074'> <span class="nx">onCellMouseOver</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">event</span><span class="p">,</span> <span class="nx">coords</span><span class="cm">/*, TD*/</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3075'> <span class="kd">var</span> <span class="nx">coordsObj</span> <span class="o">=</span> <span class="p">{</span><span class="nx">row</span><span class="o">:</span> <span class="nx">coords</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="nx">col</span><span class="o">:</span> <span class="nx">coords</span><span class="p">[</span><span class="mi">1</span><span class="p">]};</span></div><div class='line' id='LC3076'> <span class="k">if</span> <span class="p">(</span><span class="nx">isMouseDown</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3077'> <span class="cm">/*if (that.settings.fragmentSelection === 'single') {</span></div><div class='line' id='LC3078'><span class="cm"> clearTextSelection(); //otherwise text selection blinks during multiple cells selection</span></div><div class='line' id='LC3079'><span class="cm"> }*/</span></div><div class='line' id='LC3080'> <span class="nx">instance</span><span class="p">.</span><span class="nx">selection</span><span class="p">.</span><span class="nx">setRangeEnd</span><span class="p">(</span><span class="nx">coordsObj</span><span class="p">);</span></div><div class='line' id='LC3081'> <span class="p">}</span></div><div class='line' id='LC3082'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">autofill</span><span class="p">.</span><span class="nx">handle</span> <span class="o">&&</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">autofill</span><span class="p">.</span><span class="nx">handle</span><span class="p">.</span><span class="nx">isDragged</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3083'> <span class="nx">instance</span><span class="p">.</span><span class="nx">autofill</span><span class="p">.</span><span class="nx">handle</span><span class="p">.</span><span class="nx">isDragged</span><span class="o">++</span><span class="p">;</span></div><div class='line' id='LC3084'> <span class="nx">instance</span><span class="p">.</span><span class="nx">autofill</span><span class="p">.</span><span class="nx">showBorder</span><span class="p">(</span><span class="nx">coords</span><span class="p">);</span></div><div class='line' id='LC3085'> <span class="p">}</span></div><div class='line' id='LC3086'> <span class="p">},</span></div><div class='line' id='LC3087'> <span class="nx">onCellCornerMouseDown</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3088'> <span class="nx">instance</span><span class="p">.</span><span class="nx">autofill</span><span class="p">.</span><span class="nx">handle</span><span class="p">.</span><span class="nx">isDragged</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC3089'> <span class="nx">event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">();</span></div><div class='line' id='LC3090'> <span class="p">},</span></div><div class='line' id='LC3091'> <span class="nx">onCellCornerDblClick</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC3092'> <span class="nx">instance</span><span class="p">.</span><span class="nx">autofill</span><span class="p">.</span><span class="nx">selectAdjacent</span><span class="p">();</span></div><div class='line' id='LC3093'> <span class="p">},</span></div><div class='line' id='LC3094'> <span class="nx">beforeDraw</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">force</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3095'> <span class="nx">that</span><span class="p">.</span><span class="nx">beforeRender</span><span class="p">(</span><span class="nx">force</span><span class="p">);</span></div><div class='line' id='LC3096'> <span class="p">}</span></div><div class='line' id='LC3097'> <span class="p">};</span></div><div class='line' id='LC3098'><br/></div><div class='line' id='LC3099'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'beforeInitWalkontable'</span><span class="p">,</span> <span class="nx">walkontableConfig</span><span class="p">);</span></div><div class='line' id='LC3100'><br/></div><div class='line' id='LC3101'> <span class="k">this</span><span class="p">.</span><span class="nx">wt</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Walkontable</span><span class="p">(</span><span class="nx">walkontableConfig</span><span class="p">);</span></div><div class='line' id='LC3102'><br/></div><div class='line' id='LC3103'> <span class="nx">$window</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'resize.'</span> <span class="o">+</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">guid</span><span class="p">,</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC3104'> <span class="nx">instance</span><span class="p">.</span><span class="nx">registerTimeout</span><span class="p">(</span><span class="s1">'resizeTimeout'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC3105'> <span class="nx">instance</span><span class="p">.</span><span class="nx">parseSettingsFromDOM</span><span class="p">();</span></div><div class='line' id='LC3106'> <span class="kd">var</span> <span class="nx">newWidth</span> <span class="o">=</span> <span class="nx">that</span><span class="p">.</span><span class="nx">getWidth</span><span class="p">();</span></div><div class='line' id='LC3107'> <span class="kd">var</span> <span class="nx">newHeight</span> <span class="o">=</span> <span class="nx">that</span><span class="p">.</span><span class="nx">getHeight</span><span class="p">();</span></div><div class='line' id='LC3108'> <span class="k">if</span> <span class="p">(</span><span class="nx">walkontableConfig</span><span class="p">.</span><span class="nx">width</span> <span class="o">!==</span> <span class="nx">newWidth</span> <span class="o">||</span> <span class="nx">walkontableConfig</span><span class="p">.</span><span class="nx">height</span> <span class="o">!==</span> <span class="nx">newHeight</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3109'> <span class="nx">instance</span><span class="p">.</span><span class="nx">forceFullRender</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC3110'> <span class="nx">that</span><span class="p">.</span><span class="nx">render</span><span class="p">();</span></div><div class='line' id='LC3111'> <span class="nx">walkontableConfig</span><span class="p">.</span><span class="nx">width</span> <span class="o">=</span> <span class="nx">newWidth</span><span class="p">;</span></div><div class='line' id='LC3112'> <span class="nx">walkontableConfig</span><span class="p">.</span><span class="nx">height</span> <span class="o">=</span> <span class="nx">newHeight</span><span class="p">;</span></div><div class='line' id='LC3113'> <span class="p">}</span></div><div class='line' id='LC3114'> <span class="p">},</span> <span class="mi">60</span><span class="p">);</span></div><div class='line' id='LC3115'> <span class="p">});</span></div><div class='line' id='LC3116'><br/></div><div class='line' id='LC3117'> <span class="nx">$</span><span class="p">(</span><span class="nx">that</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">spreader</span><span class="p">).</span><span class="nx">on</span><span class="p">(</span><span class="s1">'mousedown.handsontable, contextmenu.handsontable'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3118'> <span class="k">if</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">target</span> <span class="o">===</span> <span class="nx">that</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">spreader</span> <span class="o">&&</span> <span class="nx">event</span><span class="p">.</span><span class="nx">which</span> <span class="o">===</span> <span class="mi">3</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//right mouse button exactly on spreader means right clickon the right hand side of vertical scrollbar</span></div><div class='line' id='LC3119'> <span class="nx">event</span><span class="p">.</span><span class="nx">stopPropagation</span><span class="p">();</span></div><div class='line' id='LC3120'> <span class="p">}</span></div><div class='line' id='LC3121'> <span class="p">});</span></div><div class='line' id='LC3122'><br/></div><div class='line' id='LC3123'> <span class="nx">$documentElement</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'click.'</span> <span class="o">+</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">guid</span><span class="p">,</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC3124'> <span class="k">if</span> <span class="p">(</span><span class="nx">that</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">observeDOMVisibility</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3125'> <span class="k">if</span> <span class="p">(</span><span class="nx">that</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">drawInterrupted</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3126'> <span class="nx">that</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">forceFullRender</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC3127'> <span class="nx">that</span><span class="p">.</span><span class="nx">render</span><span class="p">();</span></div><div class='line' id='LC3128'> <span class="p">}</span></div><div class='line' id='LC3129'> <span class="p">}</span></div><div class='line' id='LC3130'> <span class="p">});</span></div><div class='line' id='LC3131'><span class="p">};</span></div><div class='line' id='LC3132'><br/></div><div class='line' id='LC3133'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">TableView</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">isTextSelectionAllowed</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3134'> <span class="k">if</span> <span class="p">(</span><span class="nx">el</span><span class="p">.</span><span class="nx">nodeName</span> <span class="o">===</span> <span class="s1">'TEXTAREA'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3135'> <span class="k">return</span> <span class="p">(</span><span class="kc">true</span><span class="p">);</span></div><div class='line' id='LC3136'> <span class="p">}</span></div><div class='line' id='LC3137'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">fragmentSelection</span> <span class="o">&&</span> <span class="k">this</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">isChildOf</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">TBODY</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC3138'> <span class="k">return</span> <span class="p">(</span><span class="kc">true</span><span class="p">);</span></div><div class='line' id='LC3139'> <span class="p">}</span></div><div class='line' id='LC3140'> <span class="k">return</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC3141'><span class="p">};</span></div><div class='line' id='LC3142'><br/></div><div class='line' id='LC3143'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">TableView</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">isCellEdited</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC3144'> <span class="k">return</span> <span class="nb">document</span><span class="p">.</span><span class="nx">activeElement</span> <span class="o">!==</span> <span class="nb">document</span><span class="p">.</span><span class="nx">body</span><span class="p">;</span></div><div class='line' id='LC3145'><span class="p">};</span></div><div class='line' id='LC3146'><br/></div><div class='line' id='LC3147'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">TableView</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">getWidth</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC3148'> <span class="kd">var</span> <span class="nx">val</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">width</span> <span class="o">!==</span> <span class="k">void</span> <span class="mi">0</span> <span class="o">?</span> <span class="k">this</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">width</span> <span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">settingsFromDOM</span><span class="p">.</span><span class="nx">width</span><span class="p">;</span></div><div class='line' id='LC3149'> <span class="k">return</span> <span class="k">typeof</span> <span class="nx">val</span> <span class="o">===</span> <span class="s1">'function'</span> <span class="o">?</span> <span class="nx">val</span><span class="p">()</span> <span class="o">:</span> <span class="nx">val</span><span class="p">;</span></div><div class='line' id='LC3150'><span class="p">};</span></div><div class='line' id='LC3151'><br/></div><div class='line' id='LC3152'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">TableView</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">getHeight</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC3153'> <span class="kd">var</span> <span class="nx">val</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">height</span> <span class="o">!==</span> <span class="k">void</span> <span class="mi">0</span> <span class="o">?</span> <span class="k">this</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">height</span> <span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">settingsFromDOM</span><span class="p">.</span><span class="nx">height</span><span class="p">;</span></div><div class='line' id='LC3154'> <span class="k">return</span> <span class="k">typeof</span> <span class="nx">val</span> <span class="o">===</span> <span class="s1">'function'</span> <span class="o">?</span> <span class="nx">val</span><span class="p">()</span> <span class="o">:</span> <span class="nx">val</span><span class="p">;</span></div><div class='line' id='LC3155'><span class="p">};</span></div><div class='line' id='LC3156'><br/></div><div class='line' id='LC3157'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">TableView</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">beforeRender</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">force</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3158'> <span class="k">if</span> <span class="p">(</span><span class="nx">force</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3159'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'beforeRender'</span><span class="p">);</span></div><div class='line' id='LC3160'> <span class="k">this</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">update</span><span class="p">(</span><span class="s1">'width'</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">getWidth</span><span class="p">());</span></div><div class='line' id='LC3161'> <span class="k">this</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">update</span><span class="p">(</span><span class="s1">'height'</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">getHeight</span><span class="p">());</span></div><div class='line' id='LC3162'> <span class="p">}</span></div><div class='line' id='LC3163'><span class="p">};</span></div><div class='line' id='LC3164'><br/></div><div class='line' id='LC3165'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">TableView</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">render</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC3166'> <span class="k">this</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">draw</span><span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">forceFullRender</span><span class="p">);</span></div><div class='line' id='LC3167'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">.</span><span class="nx">triggerHandler</span><span class="p">(</span><span class="s1">'render.handsontable'</span><span class="p">);</span></div><div class='line' id='LC3168'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">forceFullRender</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3169'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'afterRender'</span><span class="p">);</span></div><div class='line' id='LC3170'> <span class="p">}</span></div><div class='line' id='LC3171'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">forceFullRender</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC3172'><span class="p">};</span></div><div class='line' id='LC3173'><br/></div><div class='line' id='LC3174'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">TableView</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">applyCellTypeMethod</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">methodName</span><span class="p">,</span> <span class="nx">td</span><span class="p">,</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3175'> <span class="kd">var</span> <span class="nx">prop</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">colToProp</span><span class="p">(</span><span class="nx">col</span><span class="p">)</span></div><div class='line' id='LC3176'> <span class="p">,</span> <span class="nx">cellProperties</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getCellMeta</span><span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">)</span></div><div class='line' id='LC3177'> <span class="p">,</span> <span class="nx">method</span> <span class="o">=</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">getCellMethod</span><span class="p">(</span><span class="nx">methodName</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">[</span><span class="nx">methodName</span><span class="p">]);</span> <span class="c1">//methodName is 'renderer' or 'editor'</span></div><div class='line' id='LC3178'><br/></div><div class='line' id='LC3179'> <span class="k">return</span> <span class="nx">method</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">td</span><span class="p">,</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getDataAtRowProp</span><span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">prop</span><span class="p">),</span> <span class="nx">cellProperties</span><span class="p">);</span></div><div class='line' id='LC3180'><span class="p">};</span></div><div class='line' id='LC3181'><br/></div><div class='line' id='LC3182'><span class="cm">/**</span></div><div class='line' id='LC3183'><span class="cm"> * Returns td object given coordinates</span></div><div class='line' id='LC3184'><span class="cm"> */</span></div><div class='line' id='LC3185'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">TableView</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">getCellAtCoords</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">coords</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3186'> <span class="kd">var</span> <span class="nx">td</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">getCell</span><span class="p">([</span><span class="nx">coords</span><span class="p">.</span><span class="nx">row</span><span class="p">,</span> <span class="nx">coords</span><span class="p">.</span><span class="nx">col</span><span class="p">]);</span></div><div class='line' id='LC3187'> <span class="k">if</span> <span class="p">(</span><span class="nx">td</span> <span class="o"><</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//there was an exit code (cell is out of bounds)</span></div><div class='line' id='LC3188'> <span class="k">return</span> <span class="kc">null</span><span class="p">;</span></div><div class='line' id='LC3189'> <span class="p">}</span></div><div class='line' id='LC3190'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC3191'> <span class="k">return</span> <span class="nx">td</span><span class="p">;</span></div><div class='line' id='LC3192'> <span class="p">}</span></div><div class='line' id='LC3193'><span class="p">};</span></div><div class='line' id='LC3194'><br/></div><div class='line' id='LC3195'><span class="cm">/**</span></div><div class='line' id='LC3196'><span class="cm"> * Scroll viewport to selection</span></div><div class='line' id='LC3197'><span class="cm"> * @param coords</span></div><div class='line' id='LC3198'><span class="cm"> */</span></div><div class='line' id='LC3199'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">TableView</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">scrollViewport</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">coords</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3200'> <span class="k">this</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">scrollViewport</span><span class="p">([</span><span class="nx">coords</span><span class="p">.</span><span class="nx">row</span><span class="p">,</span> <span class="nx">coords</span><span class="p">.</span><span class="nx">col</span><span class="p">]);</span></div><div class='line' id='LC3201'><span class="p">};</span></div><div class='line' id='LC3202'><br/></div><div class='line' id='LC3203'><span class="cm">/**</span></div><div class='line' id='LC3204'><span class="cm"> * Append row header to a TH element</span></div><div class='line' id='LC3205'><span class="cm"> * @param row</span></div><div class='line' id='LC3206'><span class="cm"> * @param TH</span></div><div class='line' id='LC3207'><span class="cm"> */</span></div><div class='line' id='LC3208'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">TableView</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">appendRowHeader</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">TH</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3209'> <span class="k">if</span> <span class="p">(</span><span class="nx">row</span> <span class="o">></span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3210'> <span class="k">this</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">fastInnerHTML</span><span class="p">(</span><span class="nx">TH</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getRowHeader</span><span class="p">(</span><span class="nx">row</span><span class="p">));</span></div><div class='line' id='LC3211'> <span class="p">}</span></div><div class='line' id='LC3212'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC3213'> <span class="k">this</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">empty</span><span class="p">(</span><span class="nx">TH</span><span class="p">);</span></div><div class='line' id='LC3214'> <span class="p">}</span></div><div class='line' id='LC3215'><span class="p">};</span></div><div class='line' id='LC3216'><br/></div><div class='line' id='LC3217'><span class="cm">/**</span></div><div class='line' id='LC3218'><span class="cm"> * Append column header to a TH element</span></div><div class='line' id='LC3219'><span class="cm"> * @param col</span></div><div class='line' id='LC3220'><span class="cm"> * @param TH</span></div><div class='line' id='LC3221'><span class="cm"> */</span></div><div class='line' id='LC3222'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">TableView</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">appendColHeader</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">col</span><span class="p">,</span> <span class="nx">TH</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3223'> <span class="kd">var</span> <span class="nx">DIV</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'DIV'</span><span class="p">)</span></div><div class='line' id='LC3224'> <span class="p">,</span> <span class="nx">SPAN</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'SPAN'</span><span class="p">);</span></div><div class='line' id='LC3225'><br/></div><div class='line' id='LC3226'> <span class="nx">DIV</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="s1">'relative'</span><span class="p">;</span></div><div class='line' id='LC3227'> <span class="nx">SPAN</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="s1">'colHeader'</span><span class="p">;</span></div><div class='line' id='LC3228'><br/></div><div class='line' id='LC3229'> <span class="k">this</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">fastInnerHTML</span><span class="p">(</span><span class="nx">SPAN</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getColHeader</span><span class="p">(</span><span class="nx">col</span><span class="p">));</span></div><div class='line' id='LC3230'> <span class="nx">DIV</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">SPAN</span><span class="p">);</span></div><div class='line' id='LC3231'><br/></div><div class='line' id='LC3232'> <span class="k">while</span> <span class="p">(</span><span class="nx">TH</span><span class="p">.</span><span class="nx">firstChild</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3233'> <span class="nx">TH</span><span class="p">.</span><span class="nx">removeChild</span><span class="p">(</span><span class="nx">TH</span><span class="p">.</span><span class="nx">firstChild</span><span class="p">);</span> <span class="c1">//empty TH node</span></div><div class='line' id='LC3234'> <span class="p">}</span></div><div class='line' id='LC3235'> <span class="nx">TH</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">DIV</span><span class="p">);</span></div><div class='line' id='LC3236'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'afterGetColHeader'</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">TH</span><span class="p">);</span></div><div class='line' id='LC3237'><span class="p">};</span></div><div class='line' id='LC3238'><br/></div><div class='line' id='LC3239'><span class="cm">/**</span></div><div class='line' id='LC3240'><span class="cm"> * Given a element's left position relative to the viewport, returns maximum element width until the right edge of the viewport (before scrollbar)</span></div><div class='line' id='LC3241'><span class="cm"> * @param {Number} left</span></div><div class='line' id='LC3242'><span class="cm"> * @return {Number}</span></div><div class='line' id='LC3243'><span class="cm"> */</span></div><div class='line' id='LC3244'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">TableView</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">maximumVisibleElementWidth</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">left</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3245'> <span class="kd">var</span> <span class="nx">rootWidth</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtViewport</span><span class="p">.</span><span class="nx">getWorkspaceWidth</span><span class="p">();</span></div><div class='line' id='LC3246'> <span class="k">return</span> <span class="nx">rootWidth</span> <span class="o">-</span> <span class="nx">left</span><span class="p">;</span></div><div class='line' id='LC3247'><span class="p">};</span></div><div class='line' id='LC3248'><br/></div><div class='line' id='LC3249'><span class="cm">/**</span></div><div class='line' id='LC3250'><span class="cm"> * Given a element's top position relative to the viewport, returns maximum element height until the bottom edge of the viewport (before scrollbar)</span></div><div class='line' id='LC3251'><span class="cm"> * @param {Number} top</span></div><div class='line' id='LC3252'><span class="cm"> * @return {Number}</span></div><div class='line' id='LC3253'><span class="cm"> */</span></div><div class='line' id='LC3254'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">TableView</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">maximumVisibleElementHeight</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">top</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3255'> <span class="kd">var</span> <span class="nx">rootHeight</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtViewport</span><span class="p">.</span><span class="nx">getWorkspaceHeight</span><span class="p">();</span></div><div class='line' id='LC3256'> <span class="k">return</span> <span class="nx">rootHeight</span> <span class="o">-</span> <span class="nx">top</span><span class="p">;</span></div><div class='line' id='LC3257'><span class="p">};</span></div><div class='line' id='LC3258'><br/></div><div class='line' id='LC3259'><span class="cm">/**</span></div><div class='line' id='LC3260'><span class="cm"> * Returns true if keyCode represents a printable character</span></div><div class='line' id='LC3261'><span class="cm"> * @param {Number} keyCode</span></div><div class='line' id='LC3262'><span class="cm"> * @return {Boolean}</span></div><div class='line' id='LC3263'><span class="cm"> */</span></div><div class='line' id='LC3264'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">isPrintableChar</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">keyCode</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3265'> <span class="k">return</span> <span class="p">((</span><span class="nx">keyCode</span> <span class="o">==</span> <span class="mi">32</span><span class="p">)</span> <span class="o">||</span> <span class="c1">//space</span></div><div class='line' id='LC3266'> <span class="p">(</span><span class="nx">keyCode</span> <span class="o">>=</span> <span class="mi">48</span> <span class="o">&&</span> <span class="nx">keyCode</span> <span class="o"><=</span> <span class="mi">57</span><span class="p">)</span> <span class="o">||</span> <span class="c1">//0-9</span></div><div class='line' id='LC3267'> <span class="p">(</span><span class="nx">keyCode</span> <span class="o">>=</span> <span class="mi">96</span> <span class="o">&&</span> <span class="nx">keyCode</span> <span class="o"><=</span> <span class="mi">111</span><span class="p">)</span> <span class="o">||</span> <span class="c1">//numpad</span></div><div class='line' id='LC3268'> <span class="p">(</span><span class="nx">keyCode</span> <span class="o">>=</span> <span class="mi">186</span> <span class="o">&&</span> <span class="nx">keyCode</span> <span class="o"><=</span> <span class="mi">192</span><span class="p">)</span> <span class="o">||</span> <span class="c1">//;=,-./`</span></div><div class='line' id='LC3269'> <span class="p">(</span><span class="nx">keyCode</span> <span class="o">>=</span> <span class="mi">219</span> <span class="o">&&</span> <span class="nx">keyCode</span> <span class="o"><=</span> <span class="mi">222</span><span class="p">)</span> <span class="o">||</span> <span class="c1">//[]{}\|"'</span></div><div class='line' id='LC3270'> <span class="nx">keyCode</span> <span class="o">>=</span> <span class="mi">226</span> <span class="o">||</span> <span class="c1">//special chars (229 for Asian chars)</span></div><div class='line' id='LC3271'> <span class="p">(</span><span class="nx">keyCode</span> <span class="o">>=</span> <span class="mi">65</span> <span class="o">&&</span> <span class="nx">keyCode</span> <span class="o"><=</span> <span class="mi">90</span><span class="p">));</span> <span class="c1">//a-z</span></div><div class='line' id='LC3272'><span class="p">};</span></div><div class='line' id='LC3273'><br/></div><div class='line' id='LC3274'><span class="cm">/**</span></div><div class='line' id='LC3275'><span class="cm"> * Converts a value to string</span></div><div class='line' id='LC3276'><span class="cm"> * @param value</span></div><div class='line' id='LC3277'><span class="cm"> * @return {String}</span></div><div class='line' id='LC3278'><span class="cm"> */</span></div><div class='line' id='LC3279'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">stringify</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">value</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3280'> <span class="k">switch</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">value</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3281'> <span class="k">case</span> <span class="s1">'string'</span><span class="o">:</span></div><div class='line' id='LC3282'> <span class="k">case</span> <span class="s1">'number'</span><span class="o">:</span></div><div class='line' id='LC3283'> <span class="k">return</span> <span class="nx">value</span> <span class="o">+</span> <span class="s1">''</span><span class="p">;</span></div><div class='line' id='LC3284'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC3285'><br/></div><div class='line' id='LC3286'> <span class="k">case</span> <span class="s1">'object'</span><span class="o">:</span></div><div class='line' id='LC3287'> <span class="k">if</span> <span class="p">(</span><span class="nx">value</span> <span class="o">===</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3288'> <span class="k">return</span> <span class="s1">''</span><span class="p">;</span></div><div class='line' id='LC3289'> <span class="p">}</span></div><div class='line' id='LC3290'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC3291'> <span class="k">return</span> <span class="nx">value</span><span class="p">.</span><span class="nx">toString</span><span class="p">();</span></div><div class='line' id='LC3292'> <span class="p">}</span></div><div class='line' id='LC3293'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC3294'><br/></div><div class='line' id='LC3295'> <span class="k">case</span> <span class="s1">'undefined'</span><span class="o">:</span></div><div class='line' id='LC3296'> <span class="k">return</span> <span class="s1">''</span><span class="p">;</span></div><div class='line' id='LC3297'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC3298'><br/></div><div class='line' id='LC3299'> <span class="k">default</span><span class="o">:</span></div><div class='line' id='LC3300'> <span class="k">return</span> <span class="nx">value</span><span class="p">.</span><span class="nx">toString</span><span class="p">();</span></div><div class='line' id='LC3301'> <span class="p">}</span></div><div class='line' id='LC3302'><span class="p">};</span></div><div class='line' id='LC3303'><br/></div><div class='line' id='LC3304'><span class="cm">/**</span></div><div class='line' id='LC3305'><span class="cm"> * Generates spreadsheet-like column names: A, B, C, ..., Z, AA, AB, etc</span></div><div class='line' id='LC3306'><span class="cm"> * @param index</span></div><div class='line' id='LC3307'><span class="cm"> * @returns {String}</span></div><div class='line' id='LC3308'><span class="cm"> */</span></div><div class='line' id='LC3309'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">spreadsheetColumnLabel</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">index</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3310'> <span class="kd">var</span> <span class="nx">dividend</span> <span class="o">=</span> <span class="nx">index</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC3311'> <span class="kd">var</span> <span class="nx">columnLabel</span> <span class="o">=</span> <span class="s1">''</span><span class="p">;</span></div><div class='line' id='LC3312'> <span class="kd">var</span> <span class="nx">modulo</span><span class="p">;</span></div><div class='line' id='LC3313'> <span class="k">while</span> <span class="p">(</span><span class="nx">dividend</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3314'> <span class="nx">modulo</span> <span class="o">=</span> <span class="p">(</span><span class="nx">dividend</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="o">%</span> <span class="mi">26</span><span class="p">;</span></div><div class='line' id='LC3315'> <span class="nx">columnLabel</span> <span class="o">=</span> <span class="nb">String</span><span class="p">.</span><span class="nx">fromCharCode</span><span class="p">(</span><span class="mi">65</span> <span class="o">+</span> <span class="nx">modulo</span><span class="p">)</span> <span class="o">+</span> <span class="nx">columnLabel</span><span class="p">;</span></div><div class='line' id='LC3316'> <span class="nx">dividend</span> <span class="o">=</span> <span class="nb">parseInt</span><span class="p">((</span><span class="nx">dividend</span> <span class="o">-</span> <span class="nx">modulo</span><span class="p">)</span> <span class="o">/</span> <span class="mi">26</span><span class="p">,</span> <span class="mi">10</span><span class="p">);</span></div><div class='line' id='LC3317'> <span class="p">}</span></div><div class='line' id='LC3318'> <span class="k">return</span> <span class="nx">columnLabel</span><span class="p">;</span></div><div class='line' id='LC3319'><span class="p">};</span></div><div class='line' id='LC3320'><br/></div><div class='line' id='LC3321'><span class="cm">/**</span></div><div class='line' id='LC3322'><span class="cm"> * Checks if value of n is a numeric one</span></div><div class='line' id='LC3323'><span class="cm"> * http://jsperf.com/isnan-vs-isnumeric/4</span></div><div class='line' id='LC3324'><span class="cm"> * @param n</span></div><div class='line' id='LC3325'><span class="cm"> * @returns {boolean}</span></div><div class='line' id='LC3326'><span class="cm"> */</span></div><div class='line' id='LC3327'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">isNumeric</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">n</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3328'> <span class="kd">var</span> <span class="nx">t</span> <span class="o">=</span> <span class="k">typeof</span> <span class="nx">n</span><span class="p">;</span></div><div class='line' id='LC3329'> <span class="k">return</span> <span class="nx">t</span> <span class="o">==</span> <span class="s1">'number'</span> <span class="o">?</span> <span class="o">!</span><span class="nb">isNaN</span><span class="p">(</span><span class="nx">n</span><span class="p">)</span> <span class="o">&&</span> <span class="nb">isFinite</span><span class="p">(</span><span class="nx">n</span><span class="p">)</span> <span class="o">:</span></div><div class='line' id='LC3330'> <span class="nx">t</span> <span class="o">==</span> <span class="s1">'string'</span> <span class="o">?</span> <span class="o">!</span><span class="nx">n</span><span class="p">.</span><span class="nx">length</span> <span class="o">?</span> <span class="kc">false</span> <span class="o">:</span></div><div class='line' id='LC3331'> <span class="nx">n</span><span class="p">.</span><span class="nx">length</span> <span class="o">==</span> <span class="mi">1</span> <span class="o">?</span> <span class="sr">/\d/</span><span class="p">.</span><span class="nx">test</span><span class="p">(</span><span class="nx">n</span><span class="p">)</span> <span class="o">:</span></div><div class='line' id='LC3332'> <span class="sr">/^\s*[+-]?\s*(?:(?:\d+(?:\.\d+)?(?:e[+-]?\d+)?)|(?:0x[a-f\d]+))\s*$/i</span><span class="p">.</span><span class="nx">test</span><span class="p">(</span><span class="nx">n</span><span class="p">)</span> <span class="o">:</span></div><div class='line' id='LC3333'> <span class="nx">t</span> <span class="o">==</span> <span class="s1">'object'</span> <span class="o">?</span> <span class="o">!!</span><span class="nx">n</span> <span class="o">&&</span> <span class="k">typeof</span> <span class="nx">n</span><span class="p">.</span><span class="nx">valueOf</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"number"</span> <span class="o">&&</span> <span class="o">!</span><span class="p">(</span><span class="nx">n</span> <span class="k">instanceof</span> <span class="nb">Date</span><span class="p">)</span> <span class="o">:</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC3334'><span class="p">};</span></div><div class='line' id='LC3335'><br/></div><div class='line' id='LC3336'><span class="cm">/**</span></div><div class='line' id='LC3337'><span class="cm"> * Checks if child is a descendant of given parent node</span></div><div class='line' id='LC3338'><span class="cm"> * http://stackoverflow.com/questions/2234979/how-to-check-in-javascript-if-one-element-is-a-child-of-another</span></div><div class='line' id='LC3339'><span class="cm"> * @param parent</span></div><div class='line' id='LC3340'><span class="cm"> * @param child</span></div><div class='line' id='LC3341'><span class="cm"> * @returns {boolean}</span></div><div class='line' id='LC3342'><span class="cm"> */</span></div><div class='line' id='LC3343'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">isDescendant</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">parent</span><span class="p">,</span> <span class="nx">child</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3344'> <span class="kd">var</span> <span class="nx">node</span> <span class="o">=</span> <span class="nx">child</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">;</span></div><div class='line' id='LC3345'> <span class="k">while</span> <span class="p">(</span><span class="nx">node</span> <span class="o">!=</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3346'> <span class="k">if</span> <span class="p">(</span><span class="nx">node</span> <span class="o">==</span> <span class="nx">parent</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3347'> <span class="k">return</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC3348'> <span class="p">}</span></div><div class='line' id='LC3349'> <span class="nx">node</span> <span class="o">=</span> <span class="nx">node</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">;</span></div><div class='line' id='LC3350'> <span class="p">}</span></div><div class='line' id='LC3351'> <span class="k">return</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC3352'><span class="p">};</span></div><div class='line' id='LC3353'><br/></div><div class='line' id='LC3354'><span class="cm">/**</span></div><div class='line' id='LC3355'><span class="cm"> * Generates a random hex string. Used as namespace for Handsontable instance events.</span></div><div class='line' id='LC3356'><span class="cm"> * @return {String} - 16 character random string: "92b1bfc74ec4"</span></div><div class='line' id='LC3357'><span class="cm"> */</span></div><div class='line' id='LC3358'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">randomString</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC3359'> <span class="kd">function</span> <span class="nx">s4</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC3360'> <span class="k">return</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">floor</span><span class="p">((</span><span class="mi">1</span> <span class="o">+</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">random</span><span class="p">())</span> <span class="o">*</span> <span class="mh">0x10000</span><span class="p">)</span></div><div class='line' id='LC3361'> <span class="p">.</span><span class="nx">toString</span><span class="p">(</span><span class="mi">16</span><span class="p">)</span></div><div class='line' id='LC3362'> <span class="p">.</span><span class="nx">substring</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span></div><div class='line' id='LC3363'> <span class="p">}</span></div><div class='line' id='LC3364'><br/></div><div class='line' id='LC3365'> <span class="k">return</span> <span class="nx">s4</span><span class="p">()</span> <span class="o">+</span> <span class="nx">s4</span><span class="p">()</span> <span class="o">+</span> <span class="nx">s4</span><span class="p">()</span> <span class="o">+</span> <span class="nx">s4</span><span class="p">();</span></div><div class='line' id='LC3366'><span class="p">};</span></div><div class='line' id='LC3367'><br/></div><div class='line' id='LC3368'><span class="cm">/**</span></div><div class='line' id='LC3369'><span class="cm"> * Inherit without without calling parent constructor, and setting `Child.prototype.constructor` to `Child` instead of `Parent`.</span></div><div class='line' id='LC3370'><span class="cm"> * Creates temporary dummy function to call it as constructor.</span></div><div class='line' id='LC3371'><span class="cm"> * Described in ticket: https://github.com/warpech/jquery-handsontable/pull/516</span></div><div class='line' id='LC3372'><span class="cm"> * @param {Object} Child child class</span></div><div class='line' id='LC3373'><span class="cm"> * @param {Object} Parent parent class</span></div><div class='line' id='LC3374'><span class="cm"> * @return {Object} extended Child</span></div><div class='line' id='LC3375'><span class="cm"> */</span></div><div class='line' id='LC3376'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">inherit</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">Child</span><span class="p">,</span> <span class="nx">Parent</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3377'> <span class="kd">function</span> <span class="nx">Bridge</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC3378'> <span class="p">}</span></div><div class='line' id='LC3379'><br/></div><div class='line' id='LC3380'> <span class="nx">Bridge</span><span class="p">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="nx">Parent</span><span class="p">.</span><span class="nx">prototype</span><span class="p">;</span></div><div class='line' id='LC3381'> <span class="nx">Child</span><span class="p">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Bridge</span><span class="p">();</span></div><div class='line' id='LC3382'> <span class="nx">Child</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">constructor</span> <span class="o">=</span> <span class="nx">Child</span><span class="p">;</span></div><div class='line' id='LC3383'> <span class="k">return</span> <span class="nx">Child</span><span class="p">;</span></div><div class='line' id='LC3384'><span class="p">};</span></div><div class='line' id='LC3385'><br/></div><div class='line' id='LC3386'><span class="cm">/**</span></div><div class='line' id='LC3387'><span class="cm"> * Perform shallow extend of a target object with extension's own properties</span></div><div class='line' id='LC3388'><span class="cm"> * @param {Object} target An object that will receive the new properties</span></div><div class='line' id='LC3389'><span class="cm"> * @param {Object} extension An object containing additional properties to merge into the target</span></div><div class='line' id='LC3390'><span class="cm"> */</span></div><div class='line' id='LC3391'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">extend</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">target</span><span class="p">,</span> <span class="nx">extension</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3392'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="k">in</span> <span class="nx">extension</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3393'> <span class="k">if</span> <span class="p">(</span><span class="nx">extension</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">i</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC3394'> <span class="nx">target</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">=</span> <span class="nx">extension</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span></div><div class='line' id='LC3395'> <span class="p">}</span></div><div class='line' id='LC3396'> <span class="p">}</span></div><div class='line' id='LC3397'><span class="p">};</span></div><div class='line' id='LC3398'><br/></div><div class='line' id='LC3399'><span class="cm">/**</span></div><div class='line' id='LC3400'><span class="cm"> * Factory for columns constructors.</span></div><div class='line' id='LC3401'><span class="cm"> * @param {Object} GridSettings</span></div><div class='line' id='LC3402'><span class="cm"> * @param {Array} conflictList</span></div><div class='line' id='LC3403'><span class="cm"> * @param {Object} defaultCell</span></div><div class='line' id='LC3404'><span class="cm"> * @return {Object} ColumnSettings</span></div><div class='line' id='LC3405'><span class="cm"> */</span></div><div class='line' id='LC3406'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">columnFactory</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">GridSettings</span><span class="p">,</span> <span class="nx">conflictList</span><span class="p">,</span> <span class="nx">defaultCell</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3407'> <span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">len</span> <span class="o">=</span> <span class="nx">conflictList</span><span class="p">.</span><span class="nx">length</span><span class="p">,</span> <span class="nx">ColumnSettings</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC3408'> <span class="p">};</span></div><div class='line' id='LC3409'><br/></div><div class='line' id='LC3410'> <span class="c1">// Inherit prototype from grid settings</span></div><div class='line' id='LC3411'> <span class="nx">ColumnSettings</span><span class="p">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">GridSettings</span><span class="p">();</span></div><div class='line' id='LC3412'><br/></div><div class='line' id='LC3413'> <span class="c1">// Clear conflict settings</span></div><div class='line' id='LC3414'> <span class="k">for</span> <span class="p">(;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">len</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3415'> <span class="nx">ColumnSettings</span><span class="p">.</span><span class="nx">prototype</span><span class="p">[</span><span class="nx">conflictList</span><span class="p">[</span><span class="nx">i</span><span class="p">]]</span> <span class="o">=</span> <span class="k">void</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC3416'> <span class="p">}</span></div><div class='line' id='LC3417'><br/></div><div class='line' id='LC3418'> <span class="c1">// Inherit settings from default (text) cell</span></div><div class='line' id='LC3419'> <span class="k">for</span> <span class="p">(</span><span class="nx">i</span> <span class="k">in</span> <span class="nx">defaultCell</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3420'> <span class="k">if</span> <span class="p">(</span><span class="nx">defaultCell</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">i</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC3421'> <span class="nx">ColumnSettings</span><span class="p">.</span><span class="nx">prototype</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">=</span> <span class="nx">defaultCell</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span></div><div class='line' id='LC3422'> <span class="p">}</span></div><div class='line' id='LC3423'> <span class="p">}</span></div><div class='line' id='LC3424'><br/></div><div class='line' id='LC3425'> <span class="k">return</span> <span class="nx">ColumnSettings</span><span class="p">;</span></div><div class='line' id='LC3426'><span class="p">};</span></div><div class='line' id='LC3427'><br/></div><div class='line' id='LC3428'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">translateRowsToColumns</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">input</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3429'> <span class="kd">var</span> <span class="nx">i</span></div><div class='line' id='LC3430'> <span class="p">,</span> <span class="nx">ilen</span></div><div class='line' id='LC3431'> <span class="p">,</span> <span class="nx">j</span></div><div class='line' id='LC3432'> <span class="p">,</span> <span class="nx">jlen</span></div><div class='line' id='LC3433'> <span class="p">,</span> <span class="nx">output</span> <span class="o">=</span> <span class="p">[]</span></div><div class='line' id='LC3434'> <span class="p">,</span> <span class="nx">olen</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC3435'><br/></div><div class='line' id='LC3436'> <span class="k">for</span> <span class="p">(</span><span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">ilen</span> <span class="o">=</span> <span class="nx">input</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">ilen</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3437'> <span class="k">for</span> <span class="p">(</span><span class="nx">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">jlen</span> <span class="o">=</span> <span class="nx">input</span><span class="p">[</span><span class="nx">i</span><span class="p">].</span><span class="nx">length</span><span class="p">;</span> <span class="nx">j</span> <span class="o"><</span> <span class="nx">jlen</span><span class="p">;</span> <span class="nx">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3438'> <span class="k">if</span> <span class="p">(</span><span class="nx">j</span> <span class="o">==</span> <span class="nx">olen</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3439'> <span class="nx">output</span><span class="p">.</span><span class="nx">push</span><span class="p">([]);</span></div><div class='line' id='LC3440'> <span class="nx">olen</span><span class="o">++</span><span class="p">;</span></div><div class='line' id='LC3441'> <span class="p">}</span></div><div class='line' id='LC3442'> <span class="nx">output</span><span class="p">[</span><span class="nx">j</span><span class="p">].</span><span class="nx">push</span><span class="p">(</span><span class="nx">input</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="nx">j</span><span class="p">])</span></div><div class='line' id='LC3443'> <span class="p">}</span></div><div class='line' id='LC3444'> <span class="p">}</span></div><div class='line' id='LC3445'> <span class="k">return</span> <span class="nx">output</span><span class="p">;</span></div><div class='line' id='LC3446'><span class="p">};</span></div><div class='line' id='LC3447'><br/></div><div class='line' id='LC3448'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">to2dArray</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">arr</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3449'> <span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span></div><div class='line' id='LC3450'> <span class="p">,</span> <span class="nx">ilen</span> <span class="o">=</span> <span class="nx">arr</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span></div><div class='line' id='LC3451'> <span class="k">while</span> <span class="p">(</span><span class="nx">i</span> <span class="o"><</span> <span class="nx">ilen</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3452'> <span class="nx">arr</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="nx">arr</span><span class="p">[</span><span class="nx">i</span><span class="p">]];</span></div><div class='line' id='LC3453'> <span class="nx">i</span><span class="o">++</span><span class="p">;</span></div><div class='line' id='LC3454'> <span class="p">}</span></div><div class='line' id='LC3455'><span class="p">};</span></div><div class='line' id='LC3456'><br/></div><div class='line' id='LC3457'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">extendArray</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">arr</span><span class="p">,</span> <span class="nx">extension</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3458'> <span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span></div><div class='line' id='LC3459'> <span class="p">,</span> <span class="nx">ilen</span> <span class="o">=</span> <span class="nx">extension</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span></div><div class='line' id='LC3460'> <span class="k">while</span> <span class="p">(</span><span class="nx">i</span> <span class="o"><</span> <span class="nx">ilen</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3461'> <span class="nx">arr</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">extension</span><span class="p">[</span><span class="nx">i</span><span class="p">]);</span></div><div class='line' id='LC3462'> <span class="nx">i</span><span class="o">++</span><span class="p">;</span></div><div class='line' id='LC3463'> <span class="p">}</span></div><div class='line' id='LC3464'><span class="p">};</span></div><div class='line' id='LC3465'><br/></div><div class='line' id='LC3466'><span class="cm">/**</span></div><div class='line' id='LC3467'><span class="cm"> * Returns cell renderer or editor function directly or through lookup map</span></div><div class='line' id='LC3468'><span class="cm"> */</span></div><div class='line' id='LC3469'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">getCellMethod</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">methodName</span><span class="p">,</span> <span class="nx">methodFunction</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3470'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">methodFunction</span> <span class="o">===</span> <span class="s1">'string'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3471'> <span class="kd">var</span> <span class="nx">result</span> <span class="o">=</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">cellLookup</span><span class="p">[</span><span class="nx">methodName</span><span class="p">][</span><span class="nx">methodFunction</span><span class="p">];</span></div><div class='line' id='LC3472'> <span class="k">if</span> <span class="p">(</span><span class="nx">result</span> <span class="o">===</span> <span class="k">void</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3473'> <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s1">'You declared cell '</span> <span class="o">+</span> <span class="nx">methodName</span> <span class="o">+</span> <span class="s1">' "'</span> <span class="o">+</span> <span class="nx">methodFunction</span> <span class="o">+</span> <span class="s1">'" as a string that is not mapped to a known function. Cell '</span> <span class="o">+</span> <span class="nx">methodName</span> <span class="o">+</span> <span class="s1">' must be a function or a string mapped to a function in Handsontable.cellLookup.'</span> <span class="o">+</span> <span class="nx">methodName</span> <span class="o">+</span> <span class="s1">' lookup object'</span><span class="p">);</span></div><div class='line' id='LC3474'> <span class="p">}</span></div><div class='line' id='LC3475'> <span class="k">return</span> <span class="nx">result</span><span class="p">;</span></div><div class='line' id='LC3476'> <span class="p">}</span></div><div class='line' id='LC3477'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC3478'> <span class="k">return</span> <span class="nx">methodFunction</span><span class="p">;</span></div><div class='line' id='LC3479'> <span class="p">}</span></div><div class='line' id='LC3480'><span class="p">};</span></div><div class='line' id='LC3481'><br/></div><div class='line' id='LC3482'><span class="cm">/**</span></div><div class='line' id='LC3483'><span class="cm"> * Determines if the given DOM element is an input field placed outside of HOT.</span></div><div class='line' id='LC3484'><span class="cm"> * Notice: By 'input' we mean input, textarea and select nodes</span></div><div class='line' id='LC3485'><span class="cm"> * @param element - DOM element</span></div><div class='line' id='LC3486'><span class="cm"> * @returns {boolean}</span></div><div class='line' id='LC3487'><span class="cm"> */</span></div><div class='line' id='LC3488'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">isOutsideInput</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">element</span><span class="p">){</span></div><div class='line' id='LC3489'> <span class="kd">var</span> <span class="nx">inputs</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'INPUT'</span><span class="p">,</span> <span class="s1">'SELECT'</span><span class="p">,</span> <span class="s1">'TEXTAREA'</span><span class="p">];</span></div><div class='line' id='LC3490'><br/></div><div class='line' id='LC3491'> <span class="k">return</span> <span class="nx">inputs</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="nx">element</span><span class="p">.</span><span class="nx">nodeName</span><span class="p">)</span> <span class="o">></span> <span class="o">-</span><span class="mi">1</span> <span class="o">&&</span> <span class="nx">element</span><span class="p">.</span><span class="nx">className</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="s1">'handsontableInput'</span><span class="p">)</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC3492'><span class="p">}</span></div><div class='line' id='LC3493'><span class="cm">/**</span></div><div class='line' id='LC3494'><span class="cm"> * Handsontable UndoRedo class</span></div><div class='line' id='LC3495'><span class="cm"> */</span></div><div class='line' id='LC3496'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">UndoRedo</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">instance</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3497'> <span class="kd">var</span> <span class="nx">that</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC3498'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">;</span></div><div class='line' id='LC3499'> <span class="k">this</span><span class="p">.</span><span class="nx">clear</span><span class="p">();</span></div><div class='line' id='LC3500'> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="s2">"afterChange"</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">changes</span><span class="p">,</span> <span class="nx">origin</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3501'> <span class="k">if</span> <span class="p">(</span><span class="nx">origin</span> <span class="o">!==</span> <span class="s1">'undo'</span> <span class="o">&&</span> <span class="nx">origin</span> <span class="o">!==</span> <span class="s1">'redo'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3502'> <span class="nx">that</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="nx">changes</span><span class="p">,</span> <span class="nx">origin</span><span class="p">);</span></div><div class='line' id='LC3503'> <span class="p">}</span></div><div class='line' id='LC3504'> <span class="p">});</span></div><div class='line' id='LC3505'><span class="p">};</span></div><div class='line' id='LC3506'><br/></div><div class='line' id='LC3507'><span class="cm">/**</span></div><div class='line' id='LC3508'><span class="cm"> * Undo operation from current revision</span></div><div class='line' id='LC3509'><span class="cm"> */</span></div><div class='line' id='LC3510'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">UndoRedo</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">undo</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC3511'> <span class="kd">var</span> <span class="nx">i</span><span class="p">,</span> <span class="nx">ilen</span><span class="p">;</span></div><div class='line' id='LC3512'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">isUndoAvailable</span><span class="p">())</span> <span class="p">{</span></div><div class='line' id='LC3513'> <span class="kd">var</span> <span class="nx">setData</span> <span class="o">=</span> <span class="nx">$</span><span class="p">.</span><span class="nx">extend</span><span class="p">(</span><span class="kc">true</span><span class="p">,</span> <span class="p">[],</span> <span class="k">this</span><span class="p">.</span><span class="nx">data</span><span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">rev</span><span class="p">]);</span></div><div class='line' id='LC3514'> <span class="k">for</span> <span class="p">(</span><span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">ilen</span> <span class="o">=</span> <span class="nx">setData</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">ilen</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3515'> <span class="nx">setData</span><span class="p">[</span><span class="nx">i</span><span class="p">].</span><span class="nx">splice</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span></div><div class='line' id='LC3516'> <span class="p">}</span></div><div class='line' id='LC3517'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">setDataAtRowProp</span><span class="p">(</span><span class="nx">setData</span><span class="p">,</span> <span class="kc">null</span><span class="p">,</span> <span class="kc">null</span><span class="p">,</span> <span class="s1">'undo'</span><span class="p">);</span></div><div class='line' id='LC3518'> <span class="k">this</span><span class="p">.</span><span class="nx">rev</span><span class="o">--</span><span class="p">;</span></div><div class='line' id='LC3519'> <span class="p">}</span></div><div class='line' id='LC3520'><span class="p">};</span></div><div class='line' id='LC3521'><br/></div><div class='line' id='LC3522'><span class="cm">/**</span></div><div class='line' id='LC3523'><span class="cm"> * Redo operation from current revision</span></div><div class='line' id='LC3524'><span class="cm"> */</span></div><div class='line' id='LC3525'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">UndoRedo</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">redo</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC3526'> <span class="kd">var</span> <span class="nx">i</span><span class="p">,</span> <span class="nx">ilen</span><span class="p">;</span></div><div class='line' id='LC3527'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">isRedoAvailable</span><span class="p">())</span> <span class="p">{</span></div><div class='line' id='LC3528'> <span class="k">this</span><span class="p">.</span><span class="nx">rev</span><span class="o">++</span><span class="p">;</span></div><div class='line' id='LC3529'> <span class="kd">var</span> <span class="nx">setData</span> <span class="o">=</span> <span class="nx">$</span><span class="p">.</span><span class="nx">extend</span><span class="p">(</span><span class="kc">true</span><span class="p">,</span> <span class="p">[],</span> <span class="k">this</span><span class="p">.</span><span class="nx">data</span><span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">rev</span><span class="p">]);</span></div><div class='line' id='LC3530'> <span class="k">for</span> <span class="p">(</span><span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">ilen</span> <span class="o">=</span> <span class="nx">setData</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">ilen</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3531'> <span class="nx">setData</span><span class="p">[</span><span class="nx">i</span><span class="p">].</span><span class="nx">splice</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span></div><div class='line' id='LC3532'> <span class="p">}</span></div><div class='line' id='LC3533'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">setDataAtRowProp</span><span class="p">(</span><span class="nx">setData</span><span class="p">,</span> <span class="kc">null</span><span class="p">,</span> <span class="kc">null</span><span class="p">,</span> <span class="s1">'redo'</span><span class="p">);</span></div><div class='line' id='LC3534'> <span class="p">}</span></div><div class='line' id='LC3535'><span class="p">};</span></div><div class='line' id='LC3536'><br/></div><div class='line' id='LC3537'><span class="cm">/**</span></div><div class='line' id='LC3538'><span class="cm"> * Returns true if undo point is available</span></div><div class='line' id='LC3539'><span class="cm"> * @return {Boolean}</span></div><div class='line' id='LC3540'><span class="cm"> */</span></div><div class='line' id='LC3541'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">UndoRedo</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">isUndoAvailable</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC3542'> <span class="k">return</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">rev</span> <span class="o">>=</span> <span class="mi">0</span><span class="p">);</span></div><div class='line' id='LC3543'><span class="p">};</span></div><div class='line' id='LC3544'><br/></div><div class='line' id='LC3545'><span class="cm">/**</span></div><div class='line' id='LC3546'><span class="cm"> * Returns true if redo point is available</span></div><div class='line' id='LC3547'><span class="cm"> * @return {Boolean}</span></div><div class='line' id='LC3548'><span class="cm"> */</span></div><div class='line' id='LC3549'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">UndoRedo</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">isRedoAvailable</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC3550'> <span class="k">return</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">rev</span> <span class="o"><</span> <span class="k">this</span><span class="p">.</span><span class="nx">data</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span> <span class="mi">1</span><span class="p">);</span></div><div class='line' id='LC3551'><span class="p">};</span></div><div class='line' id='LC3552'><br/></div><div class='line' id='LC3553'><span class="cm">/**</span></div><div class='line' id='LC3554'><span class="cm"> * Add new history poins</span></div><div class='line' id='LC3555'><span class="cm"> * @param changes</span></div><div class='line' id='LC3556'><span class="cm"> */</span></div><div class='line' id='LC3557'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">UndoRedo</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">add</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">changes</span><span class="p">,</span> <span class="nx">source</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3558'> <span class="k">this</span><span class="p">.</span><span class="nx">rev</span><span class="o">++</span><span class="p">;</span></div><div class='line' id='LC3559'> <span class="k">this</span><span class="p">.</span><span class="nx">data</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">rev</span><span class="p">);</span> <span class="c1">//if we are in point abcdef(g)hijk in history, remove everything after (g)</span></div><div class='line' id='LC3560'> <span class="k">this</span><span class="p">.</span><span class="nx">data</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">changes</span><span class="p">);</span></div><div class='line' id='LC3561'><span class="p">};</span></div><div class='line' id='LC3562'><br/></div><div class='line' id='LC3563'><span class="cm">/**</span></div><div class='line' id='LC3564'><span class="cm"> * Clears undo history</span></div><div class='line' id='LC3565'><span class="cm"> */</span></div><div class='line' id='LC3566'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">UndoRedo</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">clear</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC3567'> <span class="k">this</span><span class="p">.</span><span class="nx">data</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC3568'> <span class="k">this</span><span class="p">.</span><span class="nx">rev</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC3569'><span class="p">};</span></div><div class='line' id='LC3570'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">SelectionPoint</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC3571'> <span class="k">this</span><span class="p">.</span><span class="nx">_row</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span> <span class="c1">//private use intended</span></div><div class='line' id='LC3572'> <span class="k">this</span><span class="p">.</span><span class="nx">_col</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span></div><div class='line' id='LC3573'><span class="p">};</span></div><div class='line' id='LC3574'><br/></div><div class='line' id='LC3575'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">SelectionPoint</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">exists</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC3576'> <span class="k">return</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">_row</span> <span class="o">!==</span> <span class="kc">null</span><span class="p">);</span></div><div class='line' id='LC3577'><span class="p">};</span></div><div class='line' id='LC3578'><br/></div><div class='line' id='LC3579'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">SelectionPoint</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">row</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">val</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3580'> <span class="k">if</span> <span class="p">(</span><span class="nx">val</span> <span class="o">!==</span> <span class="k">void</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3581'> <span class="k">this</span><span class="p">.</span><span class="nx">_row</span> <span class="o">=</span> <span class="nx">val</span><span class="p">;</span></div><div class='line' id='LC3582'> <span class="p">}</span></div><div class='line' id='LC3583'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">_row</span><span class="p">;</span></div><div class='line' id='LC3584'><span class="p">};</span></div><div class='line' id='LC3585'><br/></div><div class='line' id='LC3586'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">SelectionPoint</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">col</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">val</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3587'> <span class="k">if</span> <span class="p">(</span><span class="nx">val</span> <span class="o">!==</span> <span class="k">void</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3588'> <span class="k">this</span><span class="p">.</span><span class="nx">_col</span> <span class="o">=</span> <span class="nx">val</span><span class="p">;</span></div><div class='line' id='LC3589'> <span class="p">}</span></div><div class='line' id='LC3590'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">_col</span><span class="p">;</span></div><div class='line' id='LC3591'><span class="p">};</span></div><div class='line' id='LC3592'><br/></div><div class='line' id='LC3593'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">SelectionPoint</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">coords</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">coords</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3594'> <span class="k">if</span> <span class="p">(</span><span class="nx">coords</span> <span class="o">!==</span> <span class="k">void</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3595'> <span class="k">this</span><span class="p">.</span><span class="nx">_row</span> <span class="o">=</span> <span class="nx">coords</span><span class="p">.</span><span class="nx">row</span><span class="p">;</span></div><div class='line' id='LC3596'> <span class="k">this</span><span class="p">.</span><span class="nx">_col</span> <span class="o">=</span> <span class="nx">coords</span><span class="p">.</span><span class="nx">col</span><span class="p">;</span></div><div class='line' id='LC3597'> <span class="p">}</span></div><div class='line' id='LC3598'> <span class="k">return</span> <span class="p">{</span></div><div class='line' id='LC3599'> <span class="nx">row</span><span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">_row</span><span class="p">,</span></div><div class='line' id='LC3600'> <span class="nx">col</span><span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">_col</span></div><div class='line' id='LC3601'> <span class="p">}</span></div><div class='line' id='LC3602'><span class="p">};</span></div><div class='line' id='LC3603'><br/></div><div class='line' id='LC3604'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">SelectionPoint</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">arr</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">arr</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3605'> <span class="k">if</span> <span class="p">(</span><span class="nx">arr</span> <span class="o">!==</span> <span class="k">void</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3606'> <span class="k">this</span><span class="p">.</span><span class="nx">_row</span> <span class="o">=</span> <span class="nx">arr</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span></div><div class='line' id='LC3607'> <span class="k">this</span><span class="p">.</span><span class="nx">_col</span> <span class="o">=</span> <span class="nx">arr</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span></div><div class='line' id='LC3608'> <span class="p">}</span></div><div class='line' id='LC3609'> <span class="k">return</span> <span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">_row</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">_col</span><span class="p">]</span></div><div class='line' id='LC3610'><span class="p">};</span></div><div class='line' id='LC3611'><span class="cm">/**</span></div><div class='line' id='LC3612'><span class="cm"> * Default text renderer</span></div><div class='line' id='LC3613'><span class="cm"> * @param {Object} instance Handsontable instance</span></div><div class='line' id='LC3614'><span class="cm"> * @param {Element} TD Table cell where to render</span></div><div class='line' id='LC3615'><span class="cm"> * @param {Number} row</span></div><div class='line' id='LC3616'><span class="cm"> * @param {Number} col</span></div><div class='line' id='LC3617'><span class="cm"> * @param {String|Number} prop Row object property name</span></div><div class='line' id='LC3618'><span class="cm"> * @param value Value to render (remember to escape unsafe HTML before inserting to DOM!)</span></div><div class='line' id='LC3619'><span class="cm"> * @param {Object} cellProperties Cell properites (shared by cell renderer and editor)</span></div><div class='line' id='LC3620'><span class="cm"> */</span></div><div class='line' id='LC3621'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">TextRenderer</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">TD</span><span class="p">,</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3622'> <span class="kd">var</span> <span class="nx">escaped</span> <span class="o">=</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">stringify</span><span class="p">(</span><span class="nx">value</span><span class="p">);</span></div><div class='line' id='LC3623'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">fastInnerText</span><span class="p">(</span><span class="nx">TD</span><span class="p">,</span> <span class="nx">escaped</span><span class="p">);</span> <span class="c1">//this is faster than innerHTML. See: https://github.com/warpech/jquery-handsontable/wiki/JavaScript-&-DOM-performance-tips</span></div><div class='line' id='LC3624'> <span class="k">if</span> <span class="p">(</span><span class="nx">cellProperties</span><span class="p">.</span><span class="nx">readOnly</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3625'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">TD</span><span class="p">,</span> <span class="s1">'htDimmed'</span><span class="p">);</span></div><div class='line' id='LC3626'> <span class="p">}</span></div><div class='line' id='LC3627'> <span class="k">if</span> <span class="p">(</span><span class="nx">cellProperties</span><span class="p">.</span><span class="nx">valid</span> <span class="o">===</span> <span class="kc">false</span> <span class="o">&&</span> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">invalidCellClassName</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3628'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">TD</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">invalidCellClassName</span><span class="p">);</span></div><div class='line' id='LC3629'> <span class="p">}</span></div><div class='line' id='LC3630'><span class="p">};</span></div><div class='line' id='LC3631'><span class="kd">var</span> <span class="nx">clonableTEXT</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'DIV'</span><span class="p">);</span></div><div class='line' id='LC3632'><span class="nx">clonableTEXT</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="s1">'htAutocomplete'</span><span class="p">;</span></div><div class='line' id='LC3633'><br/></div><div class='line' id='LC3634'><span class="kd">var</span> <span class="nx">clonableARROW</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'DIV'</span><span class="p">);</span></div><div class='line' id='LC3635'><span class="nx">clonableARROW</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="s1">'htAutocompleteArrow'</span><span class="p">;</span></div><div class='line' id='LC3636'><span class="nx">clonableARROW</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">createTextNode</span><span class="p">(</span><span class="s1">'\u25BC'</span><span class="p">));</span></div><div class='line' id='LC3637'><span class="c1">//this is faster than innerHTML. See: https://github.com/warpech/jquery-handsontable/wiki/JavaScript-&-DOM-performance-tips</span></div><div class='line' id='LC3638'><br/></div><div class='line' id='LC3639'><span class="cm">/**</span></div><div class='line' id='LC3640'><span class="cm"> * Autocomplete renderer</span></div><div class='line' id='LC3641'><span class="cm"> * @param {Object} instance Handsontable instance</span></div><div class='line' id='LC3642'><span class="cm"> * @param {Element} TD Table cell where to render</span></div><div class='line' id='LC3643'><span class="cm"> * @param {Number} row</span></div><div class='line' id='LC3644'><span class="cm"> * @param {Number} col</span></div><div class='line' id='LC3645'><span class="cm"> * @param {String|Number} prop Row object property name</span></div><div class='line' id='LC3646'><span class="cm"> * @param value Value to render (remember to escape unsafe HTML before inserting to DOM!)</span></div><div class='line' id='LC3647'><span class="cm"> * @param {Object} cellProperties Cell properites (shared by cell renderer and editor)</span></div><div class='line' id='LC3648'><span class="cm"> */</span></div><div class='line' id='LC3649'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">AutocompleteRenderer</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">TD</span><span class="p">,</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3650'> <span class="kd">var</span> <span class="nx">TEXT</span> <span class="o">=</span> <span class="nx">clonableTEXT</span><span class="p">.</span><span class="nx">cloneNode</span><span class="p">(</span><span class="kc">false</span><span class="p">);</span> <span class="c1">//this is faster than createElement</span></div><div class='line' id='LC3651'> <span class="kd">var</span> <span class="nx">ARROW</span> <span class="o">=</span> <span class="nx">clonableARROW</span><span class="p">.</span><span class="nx">cloneNode</span><span class="p">(</span><span class="kc">true</span><span class="p">);</span> <span class="c1">//this is faster than createElement</span></div><div class='line' id='LC3652'><br/></div><div class='line' id='LC3653'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">instance</span><span class="p">.</span><span class="nx">acArrowListener</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3654'> <span class="c1">//not very elegant but easy and fast</span></div><div class='line' id='LC3655'> <span class="nx">instance</span><span class="p">.</span><span class="nx">acArrowListener</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC3656'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'onCellDblClick'</span><span class="p">);</span></div><div class='line' id='LC3657'> <span class="p">};</span></div><div class='line' id='LC3658'> <span class="nx">instance</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'mouseup'</span><span class="p">,</span> <span class="s1">'.htAutocompleteArrow'</span><span class="p">,</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">acArrowListener</span><span class="p">);</span> <span class="c1">//this way we don't bind event listener to each arrow. We rely on propagation instead</span></div><div class='line' id='LC3659'> <span class="p">}</span></div><div class='line' id='LC3660'><br/></div><div class='line' id='LC3661'> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">TextRenderer</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">TEXT</span><span class="p">,</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">);</span></div><div class='line' id='LC3662'><br/></div><div class='line' id='LC3663'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">TEXT</span><span class="p">.</span><span class="nx">firstChild</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//http://jsperf.com/empty-node-if-needed</span></div><div class='line' id='LC3664'> <span class="c1">//otherwise empty fields appear borderless in demo/renderers.html (IE)</span></div><div class='line' id='LC3665'> <span class="nx">TEXT</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">createTextNode</span><span class="p">(</span><span class="s1">'\u00A0'</span><span class="p">));</span> <span class="c1">//\u00A0 equals &nbsp; for a text node</span></div><div class='line' id='LC3666'> <span class="c1">//this is faster than innerHTML. See: https://github.com/warpech/jquery-handsontable/wiki/JavaScript-&-DOM-performance-tips</span></div><div class='line' id='LC3667'> <span class="p">}</span></div><div class='line' id='LC3668'><br/></div><div class='line' id='LC3669'> <span class="nx">TEXT</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">ARROW</span><span class="p">);</span></div><div class='line' id='LC3670'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">empty</span><span class="p">(</span><span class="nx">TD</span><span class="p">);</span> <span class="c1">//TODO identify under what circumstances this line can be removed</span></div><div class='line' id='LC3671'> <span class="nx">TD</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">TEXT</span><span class="p">);</span></div><div class='line' id='LC3672'><span class="p">};</span></div><div class='line' id='LC3673'><span class="kd">var</span> <span class="nx">clonableINPUT</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'INPUT'</span><span class="p">);</span></div><div class='line' id='LC3674'><span class="nx">clonableINPUT</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="s1">'htCheckboxRendererInput'</span><span class="p">;</span></div><div class='line' id='LC3675'><span class="nx">clonableINPUT</span><span class="p">.</span><span class="nx">type</span> <span class="o">=</span> <span class="s1">'checkbox'</span><span class="p">;</span></div><div class='line' id='LC3676'><span class="nx">clonableINPUT</span><span class="p">.</span><span class="nx">setAttribute</span><span class="p">(</span><span class="s1">'autocomplete'</span><span class="p">,</span> <span class="s1">'off'</span><span class="p">);</span></div><div class='line' id='LC3677'><br/></div><div class='line' id='LC3678'><span class="cm">/**</span></div><div class='line' id='LC3679'><span class="cm"> * Checkbox renderer</span></div><div class='line' id='LC3680'><span class="cm"> * @param {Object} instance Handsontable instance</span></div><div class='line' id='LC3681'><span class="cm"> * @param {Element} TD Table cell where to render</span></div><div class='line' id='LC3682'><span class="cm"> * @param {Number} row</span></div><div class='line' id='LC3683'><span class="cm"> * @param {Number} col</span></div><div class='line' id='LC3684'><span class="cm"> * @param {String|Number} prop Row object property name</span></div><div class='line' id='LC3685'><span class="cm"> * @param value Value to render (remember to escape unsafe HTML before inserting to DOM!)</span></div><div class='line' id='LC3686'><span class="cm"> * @param {Object} cellProperties Cell properites (shared by cell renderer and editor)</span></div><div class='line' id='LC3687'><span class="cm"> */</span></div><div class='line' id='LC3688'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">CheckboxRenderer</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">TD</span><span class="p">,</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3689'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">checkedTemplate</span> <span class="o">===</span> <span class="s2">"undefined"</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3690'> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">checkedTemplate</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC3691'> <span class="p">}</span></div><div class='line' id='LC3692'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">uncheckedTemplate</span> <span class="o">===</span> <span class="s2">"undefined"</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3693'> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">uncheckedTemplate</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC3694'> <span class="p">}</span></div><div class='line' id='LC3695'><br/></div><div class='line' id='LC3696'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">empty</span><span class="p">(</span><span class="nx">TD</span><span class="p">);</span> <span class="c1">//TODO identify under what circumstances this line can be removed</span></div><div class='line' id='LC3697'><br/></div><div class='line' id='LC3698'> <span class="kd">var</span> <span class="nx">INPUT</span> <span class="o">=</span> <span class="nx">clonableINPUT</span><span class="p">.</span><span class="nx">cloneNode</span><span class="p">(</span><span class="kc">false</span><span class="p">);</span> <span class="c1">//this is faster than createElement</span></div><div class='line' id='LC3699'><br/></div><div class='line' id='LC3700'> <span class="k">if</span> <span class="p">(</span><span class="nx">value</span> <span class="o">===</span> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">checkedTemplate</span> <span class="o">||</span> <span class="nx">value</span> <span class="o">===</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">stringify</span><span class="p">(</span><span class="nx">cellProperties</span><span class="p">.</span><span class="nx">checkedTemplate</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC3701'> <span class="nx">INPUT</span><span class="p">.</span><span class="nx">checked</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC3702'> <span class="nx">TD</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">INPUT</span><span class="p">);</span></div><div class='line' id='LC3703'> <span class="p">}</span></div><div class='line' id='LC3704'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">value</span> <span class="o">===</span> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">uncheckedTemplate</span> <span class="o">||</span> <span class="nx">value</span> <span class="o">===</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">stringify</span><span class="p">(</span><span class="nx">cellProperties</span><span class="p">.</span><span class="nx">uncheckedTemplate</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC3705'> <span class="nx">TD</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">INPUT</span><span class="p">);</span></div><div class='line' id='LC3706'> <span class="p">}</span></div><div class='line' id='LC3707'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">value</span> <span class="o">===</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//default value</span></div><div class='line' id='LC3708'> <span class="nx">INPUT</span><span class="p">.</span><span class="nx">className</span> <span class="o">+=</span> <span class="s1">' noValue'</span><span class="p">;</span></div><div class='line' id='LC3709'> <span class="nx">TD</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">INPUT</span><span class="p">);</span></div><div class='line' id='LC3710'> <span class="p">}</span></div><div class='line' id='LC3711'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC3712'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">fastInnerText</span><span class="p">(</span><span class="nx">TD</span><span class="p">,</span> <span class="s1">'#bad value#'</span><span class="p">);</span> <span class="c1">//this is faster than innerHTML. See: https://github.com/warpech/jquery-handsontable/wiki/JavaScript-&-DOM-performance-tips</span></div><div class='line' id='LC3713'> <span class="p">}</span></div><div class='line' id='LC3714'><br/></div><div class='line' id='LC3715'> <span class="kd">var</span> <span class="nx">$input</span> <span class="o">=</span> <span class="nx">$</span><span class="p">(</span><span class="nx">INPUT</span><span class="p">);</span></div><div class='line' id='LC3716'><br/></div><div class='line' id='LC3717'> <span class="k">if</span> <span class="p">(</span><span class="nx">cellProperties</span><span class="p">.</span><span class="nx">readOnly</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3718'> <span class="nx">$input</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'click'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3719'> <span class="nx">event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">();</span></div><div class='line' id='LC3720'> <span class="p">});</span></div><div class='line' id='LC3721'> <span class="p">}</span></div><div class='line' id='LC3722'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC3723'> <span class="nx">$input</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'mousedown'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3724'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">checked</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3725'> <span class="nx">instance</span><span class="p">.</span><span class="nx">setDataAtRowProp</span><span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">checkedTemplate</span><span class="p">);</span></div><div class='line' id='LC3726'> <span class="p">}</span></div><div class='line' id='LC3727'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC3728'> <span class="nx">instance</span><span class="p">.</span><span class="nx">setDataAtRowProp</span><span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">uncheckedTemplate</span><span class="p">);</span></div><div class='line' id='LC3729'> <span class="p">}</span></div><div class='line' id='LC3730'><br/></div><div class='line' id='LC3731'> <span class="nx">event</span><span class="p">.</span><span class="nx">stopPropagation</span><span class="p">();</span> <span class="c1">//otherwise can confuse cell mousedown handler</span></div><div class='line' id='LC3732'> <span class="p">});</span></div><div class='line' id='LC3733'><br/></div><div class='line' id='LC3734'> <span class="nx">$input</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'mouseup'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3735'> <span class="nx">event</span><span class="p">.</span><span class="nx">stopPropagation</span><span class="p">();</span> <span class="c1">//otherwise can confuse cell dblclick handler</span></div><div class='line' id='LC3736'> <span class="p">});</span></div><div class='line' id='LC3737'> <span class="p">}</span></div><div class='line' id='LC3738'><br/></div><div class='line' id='LC3739'> <span class="k">return</span> <span class="nx">TD</span><span class="p">;</span></div><div class='line' id='LC3740'><span class="p">};</span></div><div class='line' id='LC3741'><span class="cm">/**</span></div><div class='line' id='LC3742'><span class="cm"> * Numeric cell renderer</span></div><div class='line' id='LC3743'><span class="cm"> * @param {Object} instance Handsontable instance</span></div><div class='line' id='LC3744'><span class="cm"> * @param {Element} TD Table cell where to render</span></div><div class='line' id='LC3745'><span class="cm"> * @param {Number} row</span></div><div class='line' id='LC3746'><span class="cm"> * @param {Number} col</span></div><div class='line' id='LC3747'><span class="cm"> * @param {String|Number} prop Row object property name</span></div><div class='line' id='LC3748'><span class="cm"> * @param value Value to render (remember to escape unsafe HTML before inserting to DOM!)</span></div><div class='line' id='LC3749'><span class="cm"> * @param {Object} cellProperties Cell properites (shared by cell renderer and editor)</span></div><div class='line' id='LC3750'><span class="cm"> */</span></div><div class='line' id='LC3751'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">NumericRenderer</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">TD</span><span class="p">,</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3752'> <span class="k">if</span> <span class="p">(</span><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">isNumeric</span><span class="p">(</span><span class="nx">value</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC3753'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">language</span> <span class="o">!==</span> <span class="s1">'undefined'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3754'> <span class="nx">numeral</span><span class="p">.</span><span class="nx">language</span><span class="p">(</span><span class="nx">cellProperties</span><span class="p">.</span><span class="nx">language</span><span class="p">)</span></div><div class='line' id='LC3755'> <span class="p">}</span></div><div class='line' id='LC3756'> <span class="nx">value</span> <span class="o">=</span> <span class="nx">numeral</span><span class="p">(</span><span class="nx">value</span><span class="p">).</span><span class="nx">format</span><span class="p">(</span><span class="nx">cellProperties</span><span class="p">.</span><span class="nx">format</span> <span class="o">||</span> <span class="s1">'0'</span><span class="p">);</span> <span class="c1">//docs: http://numeraljs.com/</span></div><div class='line' id='LC3757'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">TD</span><span class="p">,</span> <span class="s1">'htNumeric'</span><span class="p">);</span></div><div class='line' id='LC3758'> <span class="p">}</span></div><div class='line' id='LC3759'> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">TextRenderer</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">TD</span><span class="p">,</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">);</span></div><div class='line' id='LC3760'><span class="p">};</span></div><div class='line' id='LC3761'><span class="kd">function</span> <span class="nx">HandsontableTextEditorClass</span><span class="p">(</span><span class="nx">instance</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3762'> <span class="k">this</span><span class="p">.</span><span class="nx">isCellEdited</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC3763'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">;</span></div><div class='line' id='LC3764'> <span class="k">this</span><span class="p">.</span><span class="nx">createElements</span><span class="p">();</span></div><div class='line' id='LC3765'> <span class="k">this</span><span class="p">.</span><span class="nx">bindEvents</span><span class="p">();</span></div><div class='line' id='LC3766'><span class="p">}</span></div><div class='line' id='LC3767'><br/></div><div class='line' id='LC3768'><span class="nx">HandsontableTextEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">createElements</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC3769'> <span class="k">this</span><span class="p">.</span><span class="nx">wtDom</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WalkontableDom</span><span class="p">();</span></div><div class='line' id='LC3770'><br/></div><div class='line' id='LC3771'> <span class="k">this</span><span class="p">.</span><span class="nx">TEXTAREA</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'TEXTAREA'</span><span class="p">);</span></div><div class='line' id='LC3772'> <span class="k">this</span><span class="p">.</span><span class="nx">TEXTAREA</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="s1">'handsontableInput'</span><span class="p">;</span></div><div class='line' id='LC3773'> <span class="k">this</span><span class="p">.</span><span class="nx">textareaStyle</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">TEXTAREA</span><span class="p">.</span><span class="nx">style</span><span class="p">;</span></div><div class='line' id='LC3774'> <span class="k">this</span><span class="p">.</span><span class="nx">textareaStyle</span><span class="p">.</span><span class="nx">width</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC3775'> <span class="k">this</span><span class="p">.</span><span class="nx">textareaStyle</span><span class="p">.</span><span class="nx">height</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC3776'> <span class="k">this</span><span class="p">.</span><span class="nx">$textarea</span> <span class="o">=</span> <span class="nx">$</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">TEXTAREA</span><span class="p">);</span></div><div class='line' id='LC3777'><br/></div><div class='line' id='LC3778'> <span class="k">this</span><span class="p">.</span><span class="nx">TEXTAREA_PARENT</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'DIV'</span><span class="p">);</span></div><div class='line' id='LC3779'> <span class="k">this</span><span class="p">.</span><span class="nx">TEXTAREA_PARENT</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="s1">'handsontableInputHolder'</span><span class="p">;</span></div><div class='line' id='LC3780'> <span class="k">this</span><span class="p">.</span><span class="nx">textareaParentStyle</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">TEXTAREA_PARENT</span><span class="p">.</span><span class="nx">style</span><span class="p">;</span></div><div class='line' id='LC3781'> <span class="k">this</span><span class="p">.</span><span class="nx">textareaParentStyle</span><span class="p">.</span><span class="nx">top</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC3782'> <span class="k">this</span><span class="p">.</span><span class="nx">textareaParentStyle</span><span class="p">.</span><span class="nx">left</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC3783'> <span class="k">this</span><span class="p">.</span><span class="nx">textareaParentStyle</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s1">'none'</span><span class="p">;</span></div><div class='line' id='LC3784'> <span class="k">this</span><span class="p">.</span><span class="nx">$textareaParent</span> <span class="o">=</span> <span class="nx">$</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">TEXTAREA_PARENT</span><span class="p">);</span></div><div class='line' id='LC3785'><br/></div><div class='line' id='LC3786'> <span class="k">this</span><span class="p">.</span><span class="nx">$body</span> <span class="o">=</span> <span class="nx">$</span><span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">body</span><span class="p">);</span></div><div class='line' id='LC3787'><br/></div><div class='line' id='LC3788'> <span class="k">this</span><span class="p">.</span><span class="nx">TEXTAREA_PARENT</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">TEXTAREA</span><span class="p">);</span></div><div class='line' id='LC3789'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">appendChild</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">TEXTAREA_PARENT</span><span class="p">);</span></div><div class='line' id='LC3790'><br/></div><div class='line' id='LC3791'> <span class="kd">var</span> <span class="nx">that</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC3792'> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="s1">'afterRender'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC3793'> <span class="nx">that</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">registerTimeout</span><span class="p">(</span><span class="s1">'refresh_editor_dimensions'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC3794'> <span class="nx">that</span><span class="p">.</span><span class="nx">refreshDimensions</span><span class="p">();</span></div><div class='line' id='LC3795'> <span class="p">},</span> <span class="mi">0</span><span class="p">);</span></div><div class='line' id='LC3796'> <span class="p">});</span></div><div class='line' id='LC3797'><span class="p">};</span></div><div class='line' id='LC3798'><br/></div><div class='line' id='LC3799'><span class="nx">HandsontableTextEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">bindEvents</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC3800'> <span class="kd">var</span> <span class="nx">that</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC3801'> <span class="k">this</span><span class="p">.</span><span class="nx">$textareaParent</span><span class="p">.</span><span class="nx">off</span><span class="p">(</span><span class="s1">'.editor'</span><span class="p">).</span><span class="nx">on</span><span class="p">(</span><span class="s1">'keydown.editor'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3802'> <span class="c1">//if we are here then isCellEdited === true</span></div><div class='line' id='LC3803'><br/></div><div class='line' id='LC3804'> <span class="nx">that</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'beforeKeyDown'</span><span class="p">,</span> <span class="nx">event</span><span class="p">);</span></div><div class='line' id='LC3805'> <span class="k">if</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">isImmediatePropagationStopped</span><span class="p">())</span> <span class="p">{</span> <span class="c1">//event was cancelled in beforeKeyDown</span></div><div class='line' id='LC3806'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC3807'> <span class="p">}</span></div><div class='line' id='LC3808'><br/></div><div class='line' id='LC3809'> <span class="kd">var</span> <span class="nx">ctrlDown</span> <span class="o">=</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">ctrlKey</span> <span class="o">||</span> <span class="nx">event</span><span class="p">.</span><span class="nx">metaKey</span><span class="p">)</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">event</span><span class="p">.</span><span class="nx">altKey</span><span class="p">;</span> <span class="c1">//catch CTRL but not right ALT (which in some systems triggers ALT+CTRL)</span></div><div class='line' id='LC3810'><br/></div><div class='line' id='LC3811'> <span class="k">if</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">keyCode</span> <span class="o">===</span> <span class="mi">17</span> <span class="o">||</span> <span class="nx">event</span><span class="p">.</span><span class="nx">keyCode</span> <span class="o">===</span> <span class="mi">224</span> <span class="o">||</span> <span class="nx">event</span><span class="p">.</span><span class="nx">keyCode</span> <span class="o">===</span> <span class="mi">91</span> <span class="o">||</span> <span class="nx">event</span><span class="p">.</span><span class="nx">keyCode</span> <span class="o">===</span> <span class="mi">93</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3812'> <span class="c1">//when CTRL or its equivalent is pressed and cell is edited, don't prepare selectable text in textarea</span></div><div class='line' id='LC3813'> <span class="nx">event</span><span class="p">.</span><span class="nx">stopImmediatePropagation</span><span class="p">();</span></div><div class='line' id='LC3814'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC3815'> <span class="p">}</span></div><div class='line' id='LC3816'><br/></div><div class='line' id='LC3817'> <span class="k">switch</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">keyCode</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3818'> <span class="k">case</span> <span class="mi">38</span><span class="o">:</span> <span class="cm">/* arrow up */</span></div><div class='line' id='LC3819'> <span class="k">case</span> <span class="mi">40</span><span class="o">:</span> <span class="cm">/* arrow down */</span></div><div class='line' id='LC3820'> <span class="nx">that</span><span class="p">.</span><span class="nx">finishEditing</span><span class="p">(</span><span class="kc">false</span><span class="p">);</span></div><div class='line' id='LC3821'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC3822'><br/></div><div class='line' id='LC3823'> <span class="k">case</span> <span class="mi">9</span><span class="o">:</span> <span class="cm">/* tab */</span></div><div class='line' id='LC3824'> <span class="nx">that</span><span class="p">.</span><span class="nx">finishEditing</span><span class="p">(</span><span class="kc">false</span><span class="p">);</span></div><div class='line' id='LC3825'> <span class="nx">event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">();</span></div><div class='line' id='LC3826'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC3827'><br/></div><div class='line' id='LC3828'> <span class="k">case</span> <span class="mi">39</span><span class="o">:</span> <span class="cm">/* arrow right */</span></div><div class='line' id='LC3829'> <span class="k">if</span> <span class="p">(</span><span class="nx">that</span><span class="p">.</span><span class="nx">getCaretPosition</span><span class="p">(</span><span class="nx">that</span><span class="p">.</span><span class="nx">TEXTAREA</span><span class="p">)</span> <span class="o">===</span> <span class="nx">that</span><span class="p">.</span><span class="nx">TEXTAREA</span><span class="p">.</span><span class="nx">value</span><span class="p">.</span><span class="nx">length</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3830'> <span class="nx">that</span><span class="p">.</span><span class="nx">finishEditing</span><span class="p">(</span><span class="kc">false</span><span class="p">);</span></div><div class='line' id='LC3831'> <span class="p">}</span></div><div class='line' id='LC3832'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC3833'> <span class="nx">event</span><span class="p">.</span><span class="nx">stopImmediatePropagation</span><span class="p">();</span></div><div class='line' id='LC3834'> <span class="p">}</span></div><div class='line' id='LC3835'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC3836'><br/></div><div class='line' id='LC3837'> <span class="k">case</span> <span class="mi">37</span><span class="o">:</span> <span class="cm">/* arrow left */</span></div><div class='line' id='LC3838'> <span class="k">if</span> <span class="p">(</span><span class="nx">that</span><span class="p">.</span><span class="nx">getCaretPosition</span><span class="p">(</span><span class="nx">that</span><span class="p">.</span><span class="nx">TEXTAREA</span><span class="p">)</span> <span class="o">===</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3839'> <span class="nx">that</span><span class="p">.</span><span class="nx">finishEditing</span><span class="p">(</span><span class="kc">false</span><span class="p">);</span></div><div class='line' id='LC3840'> <span class="p">}</span></div><div class='line' id='LC3841'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC3842'> <span class="nx">event</span><span class="p">.</span><span class="nx">stopImmediatePropagation</span><span class="p">();</span></div><div class='line' id='LC3843'> <span class="p">}</span></div><div class='line' id='LC3844'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC3845'><br/></div><div class='line' id='LC3846'> <span class="k">case</span> <span class="mi">27</span><span class="o">:</span> <span class="cm">/* ESC */</span></div><div class='line' id='LC3847'> <span class="nx">that</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">destroyEditor</span><span class="p">(</span><span class="kc">true</span><span class="p">);</span></div><div class='line' id='LC3848'> <span class="nx">event</span><span class="p">.</span><span class="nx">stopImmediatePropagation</span><span class="p">();</span></div><div class='line' id='LC3849'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC3850'><br/></div><div class='line' id='LC3851'> <span class="k">case</span> <span class="mi">13</span><span class="o">:</span> <span class="cm">/* return/enter */</span></div><div class='line' id='LC3852'> <span class="kd">var</span> <span class="nx">selected</span> <span class="o">=</span> <span class="nx">that</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSelected</span><span class="p">();</span></div><div class='line' id='LC3853'> <span class="kd">var</span> <span class="nx">isMultipleSelection</span> <span class="o">=</span> <span class="o">!</span><span class="p">(</span><span class="nx">selected</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">===</span> <span class="nx">selected</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">&&</span> <span class="nx">selected</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">===</span> <span class="nx">selected</span><span class="p">[</span><span class="mi">3</span><span class="p">]);</span></div><div class='line' id='LC3854'> <span class="k">if</span> <span class="p">((</span><span class="nx">event</span><span class="p">.</span><span class="nx">ctrlKey</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">isMultipleSelection</span><span class="p">)</span> <span class="o">||</span> <span class="nx">event</span><span class="p">.</span><span class="nx">altKey</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//if ctrl+enter or alt+enter, add new line</span></div><div class='line' id='LC3855'> <span class="nx">that</span><span class="p">.</span><span class="nx">TEXTAREA</span><span class="p">.</span><span class="nx">value</span> <span class="o">=</span> <span class="nx">that</span><span class="p">.</span><span class="nx">TEXTAREA</span><span class="p">.</span><span class="nx">value</span> <span class="o">+</span> <span class="s1">'\n'</span><span class="p">;</span></div><div class='line' id='LC3856'> <span class="nx">that</span><span class="p">.</span><span class="nx">TEXTAREA</span><span class="p">.</span><span class="nx">focus</span><span class="p">();</span></div><div class='line' id='LC3857'> <span class="nx">event</span><span class="p">.</span><span class="nx">stopImmediatePropagation</span><span class="p">();</span></div><div class='line' id='LC3858'> <span class="p">}</span></div><div class='line' id='LC3859'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC3860'> <span class="nx">that</span><span class="p">.</span><span class="nx">finishEditing</span><span class="p">(</span><span class="kc">false</span><span class="p">,</span> <span class="nx">ctrlDown</span><span class="p">);</span></div><div class='line' id='LC3861'> <span class="p">}</span></div><div class='line' id='LC3862'> <span class="nx">event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">();</span> <span class="c1">//don't add newline to field</span></div><div class='line' id='LC3863'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC3864'><br/></div><div class='line' id='LC3865'> <span class="k">default</span><span class="o">:</span></div><div class='line' id='LC3866'> <span class="nx">event</span><span class="p">.</span><span class="nx">stopImmediatePropagation</span><span class="p">();</span> <span class="c1">//backspace, delete, home, end, CTRL+A, CTRL+C, CTRL+V, CTRL+X should only work locally when cell is edited (not in table context)</span></div><div class='line' id='LC3867'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC3868'> <span class="p">}</span></div><div class='line' id='LC3869'><br/></div><div class='line' id='LC3870'> <span class="k">if</span> <span class="p">((</span><span class="nx">that</span><span class="p">.</span><span class="nx">waiting</span> <span class="o">||</span> <span class="nx">that</span><span class="p">.</span><span class="nx">force</span><span class="p">)</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">event</span><span class="p">.</span><span class="nx">isImmediatePropagationStopped</span><span class="p">())</span> <span class="p">{</span></div><div class='line' id='LC3871'> <span class="nx">that</span><span class="p">.</span><span class="nx">waiting</span> <span class="o">=</span> <span class="nx">that</span><span class="p">.</span><span class="nx">force</span> <span class="o">=</span> <span class="nx">event</span><span class="p">;</span></div><div class='line' id='LC3872'> <span class="nx">event</span><span class="p">.</span><span class="nx">stopImmediatePropagation</span><span class="p">();</span></div><div class='line' id='LC3873'> <span class="nx">event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">();</span></div><div class='line' id='LC3874'> <span class="p">}</span></div><div class='line' id='LC3875'> <span class="p">});</span></div><div class='line' id='LC3876'><span class="p">};</span></div><div class='line' id='LC3877'><br/></div><div class='line' id='LC3878'><span class="nx">HandsontableTextEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">bindTemporaryEvents</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">td</span><span class="p">,</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3879'> <span class="kd">var</span> <span class="nx">that</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC3880'><br/></div><div class='line' id='LC3881'> <span class="kd">function</span> <span class="nx">onDblClick</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC3882'> <span class="nx">that</span><span class="p">.</span><span class="nx">TEXTAREA</span><span class="p">.</span><span class="nx">value</span> <span class="o">=</span> <span class="nx">that</span><span class="p">.</span><span class="nx">originalValue</span><span class="p">;</span></div><div class='line' id='LC3883'> <span class="nx">that</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">destroyEditor</span><span class="p">();</span></div><div class='line' id='LC3884'> <span class="nx">that</span><span class="p">.</span><span class="nx">beginEditing</span><span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span></div><div class='line' id='LC3885'> <span class="p">}</span></div><div class='line' id='LC3886'><br/></div><div class='line' id='LC3887'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">update</span><span class="p">(</span><span class="s1">'onCellDblClick'</span><span class="p">,</span> <span class="nx">onDblClick</span><span class="p">);</span></div><div class='line' id='LC3888'><br/></div><div class='line' id='LC3889'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">isCellEdited</span> <span class="o">||</span> <span class="k">this</span><span class="p">.</span><span class="nx">waiting</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3890'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC3891'> <span class="p">}</span></div><div class='line' id='LC3892'><br/></div><div class='line' id='LC3893'> <span class="k">this</span><span class="p">.</span><span class="nx">TD</span> <span class="o">=</span> <span class="nx">td</span><span class="p">;</span></div><div class='line' id='LC3894'> <span class="k">this</span><span class="p">.</span><span class="nx">row</span> <span class="o">=</span> <span class="nx">row</span><span class="p">;</span></div><div class='line' id='LC3895'> <span class="k">this</span><span class="p">.</span><span class="nx">col</span> <span class="o">=</span> <span class="nx">col</span><span class="p">;</span></div><div class='line' id='LC3896'> <span class="k">this</span><span class="p">.</span><span class="nx">prop</span> <span class="o">=</span> <span class="nx">prop</span><span class="p">;</span></div><div class='line' id='LC3897'> <span class="k">this</span><span class="p">.</span><span class="nx">originalValue</span> <span class="o">=</span> <span class="nx">value</span><span class="p">;</span></div><div class='line' id='LC3898'> <span class="k">this</span><span class="p">.</span><span class="nx">cellProperties</span> <span class="o">=</span> <span class="nx">cellProperties</span><span class="p">;</span></div><div class='line' id='LC3899'><br/></div><div class='line' id='LC3900'> <span class="k">this</span><span class="p">.</span><span class="nx">$body</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'keydown.editor.'</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">guid</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3901'><br/></div><div class='line' id='LC3902'> <span class="k">if</span> <span class="p">(</span><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">activeGuid</span> <span class="o">===</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3903'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC3904'> <span class="p">}</span></div><div class='line' id='LC3905'><br/></div><div class='line' id='LC3906'> <span class="kd">var</span> <span class="nx">ctrlDown</span> <span class="o">=</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">ctrlKey</span> <span class="o">||</span> <span class="nx">event</span><span class="p">.</span><span class="nx">metaKey</span><span class="p">)</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">event</span><span class="p">.</span><span class="nx">altKey</span><span class="p">;</span> <span class="c1">//catch CTRL but not right ALT (which in some systems triggers ALT+CTRL)</span></div><div class='line' id='LC3907'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">that</span><span class="p">.</span><span class="nx">isCellEdited</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3908'> <span class="k">if</span> <span class="p">(</span><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">isPrintableChar</span><span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">keyCode</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC3909'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">ctrlDown</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//disregard CTRL-key shortcuts</span></div><div class='line' id='LC3910'> <span class="nx">that</span><span class="p">.</span><span class="nx">beginEditing</span><span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">prop</span><span class="p">);</span></div><div class='line' id='LC3911'> <span class="p">}</span></div><div class='line' id='LC3912'> <span class="p">}</span></div><div class='line' id='LC3913'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">keyCode</span> <span class="o">===</span> <span class="mi">113</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//f2</span></div><div class='line' id='LC3914'> <span class="nx">that</span><span class="p">.</span><span class="nx">beginEditing</span><span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span> <span class="c1">//show edit field</span></div><div class='line' id='LC3915'> <span class="nx">event</span><span class="p">.</span><span class="nx">stopImmediatePropagation</span><span class="p">();</span></div><div class='line' id='LC3916'> <span class="nx">event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">();</span> <span class="c1">//prevent Opera from opening Go to Page dialog</span></div><div class='line' id='LC3917'> <span class="p">}</span></div><div class='line' id='LC3918'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">keyCode</span> <span class="o">===</span> <span class="mi">13</span> <span class="o">&&</span> <span class="nx">that</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSettings</span><span class="p">().</span><span class="nx">enterBeginsEditing</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//enter</span></div><div class='line' id='LC3919'> <span class="kd">var</span> <span class="nx">selected</span> <span class="o">=</span> <span class="nx">that</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSelected</span><span class="p">();</span></div><div class='line' id='LC3920'> <span class="kd">var</span> <span class="nx">isMultipleSelection</span> <span class="o">=</span> <span class="o">!</span><span class="p">(</span><span class="nx">selected</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">===</span> <span class="nx">selected</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">&&</span> <span class="nx">selected</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">===</span> <span class="nx">selected</span><span class="p">[</span><span class="mi">3</span><span class="p">]);</span></div><div class='line' id='LC3921'> <span class="k">if</span> <span class="p">((</span><span class="nx">ctrlDown</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">isMultipleSelection</span><span class="p">)</span> <span class="o">||</span> <span class="nx">event</span><span class="p">.</span><span class="nx">altKey</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//if ctrl+enter or alt+enter, add new line</span></div><div class='line' id='LC3922'> <span class="nx">that</span><span class="p">.</span><span class="nx">beginEditing</span><span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="kc">true</span><span class="p">,</span> <span class="s1">'\n'</span><span class="p">);</span> <span class="c1">//show edit field</span></div><div class='line' id='LC3923'> <span class="p">}</span></div><div class='line' id='LC3924'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC3925'> <span class="nx">that</span><span class="p">.</span><span class="nx">beginEditing</span><span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span> <span class="c1">//show edit field</span></div><div class='line' id='LC3926'> <span class="p">}</span></div><div class='line' id='LC3927'> <span class="nx">event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">();</span> <span class="c1">//prevent new line at the end of textarea</span></div><div class='line' id='LC3928'> <span class="nx">event</span><span class="p">.</span><span class="nx">stopImmediatePropagation</span><span class="p">();</span></div><div class='line' id='LC3929'> <span class="p">}</span></div><div class='line' id='LC3930'> <span class="p">}</span></div><div class='line' id='LC3931'> <span class="p">});</span></div><div class='line' id='LC3932'><span class="p">};</span></div><div class='line' id='LC3933'><br/></div><div class='line' id='LC3934'><span class="nx">HandsontableTextEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">unbindTemporaryEvents</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC3935'> <span class="k">this</span><span class="p">.</span><span class="nx">$body</span><span class="p">.</span><span class="nx">off</span><span class="p">(</span><span class="s2">".editor"</span><span class="p">);</span></div><div class='line' id='LC3936'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">update</span><span class="p">(</span><span class="s1">'onCellDblClick'</span><span class="p">,</span> <span class="kc">null</span><span class="p">);</span></div><div class='line' id='LC3937'><span class="p">};</span></div><div class='line' id='LC3938'><br/></div><div class='line' id='LC3939'><span class="cm">/**</span></div><div class='line' id='LC3940'><span class="cm"> * Returns caret position in edit proxy</span></div><div class='line' id='LC3941'><span class="cm"> * @author http://stackoverflow.com/questions/263743/how-to-get-caret-position-in-textarea</span></div><div class='line' id='LC3942'><span class="cm"> * @return {Number}</span></div><div class='line' id='LC3943'><span class="cm"> */</span></div><div class='line' id='LC3944'><span class="nx">HandsontableTextEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">getCaretPosition</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3945'> <span class="k">if</span> <span class="p">(</span><span class="nx">el</span><span class="p">.</span><span class="nx">selectionStart</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3946'> <span class="k">return</span> <span class="nx">el</span><span class="p">.</span><span class="nx">selectionStart</span><span class="p">;</span></div><div class='line' id='LC3947'> <span class="p">}</span></div><div class='line' id='LC3948'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">selection</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//IE8</span></div><div class='line' id='LC3949'> <span class="nx">el</span><span class="p">.</span><span class="nx">focus</span><span class="p">();</span></div><div class='line' id='LC3950'> <span class="kd">var</span> <span class="nx">r</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">selection</span><span class="p">.</span><span class="nx">createRange</span><span class="p">();</span></div><div class='line' id='LC3951'> <span class="k">if</span> <span class="p">(</span><span class="nx">r</span> <span class="o">==</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3952'> <span class="k">return</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC3953'> <span class="p">}</span></div><div class='line' id='LC3954'> <span class="kd">var</span> <span class="nx">re</span> <span class="o">=</span> <span class="nx">el</span><span class="p">.</span><span class="nx">createTextRange</span><span class="p">(),</span></div><div class='line' id='LC3955'> <span class="nx">rc</span> <span class="o">=</span> <span class="nx">re</span><span class="p">.</span><span class="nx">duplicate</span><span class="p">();</span></div><div class='line' id='LC3956'> <span class="nx">re</span><span class="p">.</span><span class="nx">moveToBookmark</span><span class="p">(</span><span class="nx">r</span><span class="p">.</span><span class="nx">getBookmark</span><span class="p">());</span></div><div class='line' id='LC3957'> <span class="nx">rc</span><span class="p">.</span><span class="nx">setEndPoint</span><span class="p">(</span><span class="s1">'EndToStart'</span><span class="p">,</span> <span class="nx">re</span><span class="p">);</span></div><div class='line' id='LC3958'> <span class="k">return</span> <span class="nx">rc</span><span class="p">.</span><span class="nx">text</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span></div><div class='line' id='LC3959'> <span class="p">}</span></div><div class='line' id='LC3960'> <span class="k">return</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC3961'><span class="p">};</span></div><div class='line' id='LC3962'><br/></div><div class='line' id='LC3963'><span class="cm">/**</span></div><div class='line' id='LC3964'><span class="cm"> * Sets caret position in edit proxy</span></div><div class='line' id='LC3965'><span class="cm"> * @author http://blog.vishalon.net/index.php/javascript-getting-and-setting-caret-position-in-textarea/</span></div><div class='line' id='LC3966'><span class="cm"> * @param {Element} el</span></div><div class='line' id='LC3967'><span class="cm"> * @param {Number} pos</span></div><div class='line' id='LC3968'><span class="cm"> */</span></div><div class='line' id='LC3969'><span class="nx">HandsontableTextEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">setCaretPosition</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">pos</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3970'> <span class="k">if</span> <span class="p">(</span><span class="nx">el</span><span class="p">.</span><span class="nx">setSelectionRange</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3971'> <span class="nx">el</span><span class="p">.</span><span class="nx">focus</span><span class="p">();</span></div><div class='line' id='LC3972'> <span class="nx">el</span><span class="p">.</span><span class="nx">setSelectionRange</span><span class="p">(</span><span class="nx">pos</span><span class="p">,</span> <span class="nx">pos</span><span class="p">);</span></div><div class='line' id='LC3973'> <span class="p">}</span></div><div class='line' id='LC3974'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">el</span><span class="p">.</span><span class="nx">createTextRange</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//IE8</span></div><div class='line' id='LC3975'> <span class="kd">var</span> <span class="nx">range</span> <span class="o">=</span> <span class="nx">el</span><span class="p">.</span><span class="nx">createTextRange</span><span class="p">();</span></div><div class='line' id='LC3976'> <span class="nx">range</span><span class="p">.</span><span class="nx">collapse</span><span class="p">(</span><span class="kc">true</span><span class="p">);</span></div><div class='line' id='LC3977'> <span class="nx">range</span><span class="p">.</span><span class="nx">moveEnd</span><span class="p">(</span><span class="s1">'character'</span><span class="p">,</span> <span class="nx">pos</span><span class="p">);</span></div><div class='line' id='LC3978'> <span class="nx">range</span><span class="p">.</span><span class="nx">moveStart</span><span class="p">(</span><span class="s1">'character'</span><span class="p">,</span> <span class="nx">pos</span><span class="p">);</span></div><div class='line' id='LC3979'> <span class="nx">range</span><span class="p">.</span><span class="nx">select</span><span class="p">();</span></div><div class='line' id='LC3980'> <span class="p">}</span></div><div class='line' id='LC3981'><span class="p">};</span></div><div class='line' id='LC3982'><br/></div><div class='line' id='LC3983'><span class="nx">HandsontableTextEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">beginEditing</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">useOriginalValue</span><span class="p">,</span> <span class="nx">suffix</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3984'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">isCellEdited</span> <span class="o">||</span> <span class="k">this</span><span class="p">.</span><span class="nx">waiting</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3985'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC3986'> <span class="p">}</span></div><div class='line' id='LC3987'> <span class="k">this</span><span class="p">.</span><span class="nx">isCellEdited</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC3988'> <span class="k">this</span><span class="p">.</span><span class="nx">row</span> <span class="o">=</span> <span class="nx">row</span><span class="p">;</span></div><div class='line' id='LC3989'> <span class="k">this</span><span class="p">.</span><span class="nx">col</span> <span class="o">=</span> <span class="nx">col</span><span class="p">;</span></div><div class='line' id='LC3990'> <span class="k">this</span><span class="p">.</span><span class="nx">prop</span> <span class="o">=</span> <span class="nx">prop</span><span class="p">;</span></div><div class='line' id='LC3991'><br/></div><div class='line' id='LC3992'> <span class="k">this</span><span class="p">.</span><span class="nx">$textarea</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'cut.editor'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3993'> <span class="nx">event</span><span class="p">.</span><span class="nx">stopPropagation</span><span class="p">();</span></div><div class='line' id='LC3994'> <span class="p">});</span></div><div class='line' id='LC3995'><br/></div><div class='line' id='LC3996'> <span class="k">this</span><span class="p">.</span><span class="nx">$textarea</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'paste.editor'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC3997'> <span class="nx">event</span><span class="p">.</span><span class="nx">stopPropagation</span><span class="p">();</span></div><div class='line' id='LC3998'> <span class="p">});</span></div><div class='line' id='LC3999'><br/></div><div class='line' id='LC4000'> <span class="k">if</span> <span class="p">(</span><span class="nx">useOriginalValue</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4001'> <span class="k">this</span><span class="p">.</span><span class="nx">TEXTAREA</span><span class="p">.</span><span class="nx">value</span> <span class="o">=</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">stringify</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">originalValue</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="nx">suffix</span> <span class="o">||</span> <span class="s1">''</span><span class="p">);</span></div><div class='line' id='LC4002'> <span class="p">}</span></div><div class='line' id='LC4003'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC4004'> <span class="k">this</span><span class="p">.</span><span class="nx">TEXTAREA</span><span class="p">.</span><span class="nx">value</span> <span class="o">=</span> <span class="s1">''</span><span class="p">;</span></div><div class='line' id='LC4005'> <span class="p">}</span></div><div class='line' id='LC4006'><br/></div><div class='line' id='LC4007'> <span class="k">this</span><span class="p">.</span><span class="nx">refreshDimensions</span><span class="p">();</span> <span class="c1">//need it instantly, to prevent https://github.com/warpech/jquery-handsontable/issues/348</span></div><div class='line' id='LC4008'> <span class="k">this</span><span class="p">.</span><span class="nx">TEXTAREA</span><span class="p">.</span><span class="nx">focus</span><span class="p">();</span></div><div class='line' id='LC4009'> <span class="k">this</span><span class="p">.</span><span class="nx">setCaretPosition</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">TEXTAREA</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">TEXTAREA</span><span class="p">.</span><span class="nx">value</span><span class="p">.</span><span class="nx">length</span><span class="p">);</span></div><div class='line' id='LC4010'><br/></div><div class='line' id='LC4011'> <span class="kd">var</span> <span class="nx">coords</span> <span class="o">=</span> <span class="p">{</span><span class="nx">row</span><span class="o">:</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="o">:</span> <span class="nx">col</span><span class="p">};</span></div><div class='line' id='LC4012'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">scrollViewport</span><span class="p">(</span><span class="nx">coords</span><span class="p">);</span></div><div class='line' id='LC4013'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">render</span><span class="p">();</span></div><div class='line' id='LC4014'><span class="p">};</span></div><div class='line' id='LC4015'><br/></div><div class='line' id='LC4016'><span class="nx">HandsontableTextEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">refreshDimensions</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC4017'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">isCellEdited</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4018'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC4019'> <span class="p">}</span></div><div class='line' id='LC4020'><br/></div><div class='line' id='LC4021'> <span class="c1">///start prepare textarea position</span></div><div class='line' id='LC4022'> <span class="k">this</span><span class="p">.</span><span class="nx">TD</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getCell</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">row</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">col</span><span class="p">);</span></div><div class='line' id='LC4023'> <span class="kd">var</span> <span class="nx">$td</span> <span class="o">=</span> <span class="nx">$</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">TD</span><span class="p">);</span> <span class="c1">//because old td may have been scrolled out with scrollViewport</span></div><div class='line' id='LC4024'> <span class="kd">var</span> <span class="nx">currentOffset</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">offset</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">TD</span><span class="p">);</span></div><div class='line' id='LC4025'> <span class="kd">var</span> <span class="nx">containerOffset</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">offset</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">[</span><span class="mi">0</span><span class="p">]);</span></div><div class='line' id='LC4026'> <span class="kd">var</span> <span class="nx">scrollTop</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">.</span><span class="nx">scrollTop</span><span class="p">();</span></div><div class='line' id='LC4027'> <span class="kd">var</span> <span class="nx">scrollLeft</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">.</span><span class="nx">scrollLeft</span><span class="p">();</span></div><div class='line' id='LC4028'> <span class="kd">var</span> <span class="nx">editTop</span> <span class="o">=</span> <span class="nx">currentOffset</span><span class="p">.</span><span class="nx">top</span> <span class="o">-</span> <span class="nx">containerOffset</span><span class="p">.</span><span class="nx">top</span> <span class="o">+</span> <span class="nx">scrollTop</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC4029'> <span class="kd">var</span> <span class="nx">editLeft</span> <span class="o">=</span> <span class="nx">currentOffset</span><span class="p">.</span><span class="nx">left</span> <span class="o">-</span> <span class="nx">containerOffset</span><span class="p">.</span><span class="nx">left</span> <span class="o">+</span> <span class="nx">scrollLeft</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC4030'><br/></div><div class='line' id='LC4031'> <span class="kd">var</span> <span class="nx">settings</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSettings</span><span class="p">();</span></div><div class='line' id='LC4032'> <span class="kd">var</span> <span class="nx">rowHeadersCount</span> <span class="o">=</span> <span class="nx">settings</span><span class="p">.</span><span class="nx">rowHeaders</span> <span class="o">===</span> <span class="kc">false</span> <span class="o">?</span> <span class="mi">0</span> <span class="o">:</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC4033'> <span class="kd">var</span> <span class="nx">colHeadersCount</span> <span class="o">=</span> <span class="nx">settings</span><span class="p">.</span><span class="nx">colHeaders</span> <span class="o">===</span> <span class="kc">false</span> <span class="o">?</span> <span class="mi">0</span> <span class="o">:</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC4034'><br/></div><div class='line' id='LC4035'> <span class="k">if</span> <span class="p">(</span><span class="nx">editTop</span> <span class="o"><</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4036'> <span class="nx">editTop</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC4037'> <span class="p">}</span></div><div class='line' id='LC4038'> <span class="k">if</span> <span class="p">(</span><span class="nx">editLeft</span> <span class="o"><</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4039'> <span class="nx">editLeft</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC4040'> <span class="p">}</span></div><div class='line' id='LC4041'><br/></div><div class='line' id='LC4042'> <span class="k">if</span> <span class="p">(</span><span class="nx">rowHeadersCount</span> <span class="o">></span> <span class="mi">0</span> <span class="o">&&</span> <span class="nb">parseInt</span><span class="p">(</span><span class="nx">$td</span><span class="p">.</span><span class="nx">css</span><span class="p">(</span><span class="s1">'border-top-width'</span><span class="p">),</span> <span class="mi">10</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4043'> <span class="nx">editTop</span> <span class="o">+=</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC4044'> <span class="p">}</span></div><div class='line' id='LC4045'> <span class="k">if</span> <span class="p">(</span><span class="nx">colHeadersCount</span> <span class="o">></span> <span class="mi">0</span> <span class="o">&&</span> <span class="nb">parseInt</span><span class="p">(</span><span class="nx">$td</span><span class="p">.</span><span class="nx">css</span><span class="p">(</span><span class="s1">'border-left-width'</span><span class="p">),</span> <span class="mi">10</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4046'> <span class="nx">editLeft</span> <span class="o">+=</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC4047'> <span class="p">}</span></div><div class='line' id='LC4048'><br/></div><div class='line' id='LC4049'> <span class="k">if</span> <span class="p">(</span><span class="nx">$</span><span class="p">.</span><span class="nx">browser</span><span class="p">.</span><span class="nx">msie</span> <span class="o">&&</span> <span class="nb">parseInt</span><span class="p">(</span><span class="nx">$</span><span class="p">.</span><span class="nx">browser</span><span class="p">.</span><span class="nx">version</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span> <span class="o"><=</span> <span class="mi">7</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4050'> <span class="nx">editTop</span> <span class="o">-=</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC4051'> <span class="p">}</span></div><div class='line' id='LC4052'><br/></div><div class='line' id='LC4053'> <span class="k">this</span><span class="p">.</span><span class="nx">textareaParentStyle</span><span class="p">.</span><span class="nx">top</span> <span class="o">=</span> <span class="nx">editTop</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC4054'> <span class="k">this</span><span class="p">.</span><span class="nx">textareaParentStyle</span><span class="p">.</span><span class="nx">left</span> <span class="o">=</span> <span class="nx">editLeft</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC4055'> <span class="c1">///end prepare textarea position</span></div><div class='line' id='LC4056'><br/></div><div class='line' id='LC4057'> <span class="kd">var</span> <span class="nx">width</span> <span class="o">=</span> <span class="nx">$td</span><span class="p">.</span><span class="nx">width</span><span class="p">()</span></div><div class='line' id='LC4058'> <span class="p">,</span> <span class="nx">maxWidth</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">maximumVisibleElementWidth</span><span class="p">(</span><span class="nx">editLeft</span><span class="p">)</span> <span class="o">-</span> <span class="mi">10</span> <span class="c1">//10 is TEXTAREAs border and padding</span></div><div class='line' id='LC4059'> <span class="p">,</span> <span class="nx">height</span> <span class="o">=</span> <span class="nx">$td</span><span class="p">.</span><span class="nx">outerHeight</span><span class="p">()</span> <span class="o">-</span> <span class="mi">4</span></div><div class='line' id='LC4060'> <span class="p">,</span> <span class="nx">maxHeight</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">maximumVisibleElementHeight</span><span class="p">(</span><span class="nx">editTop</span><span class="p">)</span> <span class="o">-</span> <span class="mi">5</span><span class="p">;</span> <span class="c1">//10 is TEXTAREAs border and padding</span></div><div class='line' id='LC4061'><br/></div><div class='line' id='LC4062'> <span class="k">if</span> <span class="p">(</span><span class="nb">parseInt</span><span class="p">(</span><span class="nx">$td</span><span class="p">.</span><span class="nx">css</span><span class="p">(</span><span class="s1">'border-top-width'</span><span class="p">),</span> <span class="mi">10</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4063'> <span class="nx">height</span> <span class="o">-=</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC4064'> <span class="p">}</span></div><div class='line' id='LC4065'> <span class="k">if</span> <span class="p">(</span><span class="nb">parseInt</span><span class="p">(</span><span class="nx">$td</span><span class="p">.</span><span class="nx">css</span><span class="p">(</span><span class="s1">'border-left-width'</span><span class="p">),</span> <span class="mi">10</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4066'> <span class="k">if</span> <span class="p">(</span><span class="nx">rowHeadersCount</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4067'> <span class="nx">width</span> <span class="o">-=</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC4068'> <span class="p">}</span></div><div class='line' id='LC4069'> <span class="p">}</span></div><div class='line' id='LC4070'><br/></div><div class='line' id='LC4071'> <span class="c1">//in future may change to pure JS http://stackoverflow.com/questions/454202/creating-a-textarea-with-auto-resize</span></div><div class='line' id='LC4072'> <span class="k">this</span><span class="p">.</span><span class="nx">$textarea</span><span class="p">.</span><span class="nx">autoResize</span><span class="p">({</span></div><div class='line' id='LC4073'> <span class="nx">minHeight</span><span class="o">:</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">min</span><span class="p">(</span><span class="nx">height</span><span class="p">,</span> <span class="nx">maxHeight</span><span class="p">),</span></div><div class='line' id='LC4074'> <span class="nx">maxHeight</span><span class="o">:</span> <span class="nx">maxHeight</span><span class="p">,</span> <span class="c1">//TEXTAREA should never be wider than visible part of the viewport (should not cover the scrollbar)</span></div><div class='line' id='LC4075'> <span class="nx">minWidth</span><span class="o">:</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">min</span><span class="p">(</span><span class="nx">width</span><span class="p">,</span> <span class="nx">maxWidth</span><span class="p">),</span></div><div class='line' id='LC4076'> <span class="nx">maxWidth</span><span class="o">:</span> <span class="nx">maxWidth</span><span class="p">,</span> <span class="c1">//TEXTAREA should never be wider than visible part of the viewport (should not cover the scrollbar)</span></div><div class='line' id='LC4077'> <span class="nx">animate</span><span class="o">:</span> <span class="kc">false</span><span class="p">,</span></div><div class='line' id='LC4078'> <span class="nx">extraSpace</span><span class="o">:</span> <span class="mi">0</span></div><div class='line' id='LC4079'> <span class="p">});</span></div><div class='line' id='LC4080'><br/></div><div class='line' id='LC4081'> <span class="k">this</span><span class="p">.</span><span class="nx">textareaParentStyle</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s1">'block'</span><span class="p">;</span></div><div class='line' id='LC4082'><span class="p">};</span></div><div class='line' id='LC4083'><br/></div><div class='line' id='LC4084'><span class="nx">HandsontableTextEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">saveValue</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">val</span><span class="p">,</span> <span class="nx">ctrlDown</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4085'> <span class="k">if</span> <span class="p">(</span><span class="nx">ctrlDown</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//if ctrl+enter and multiple cells selected, behave like Excel (finish editing and apply to all cells)</span></div><div class='line' id='LC4086'> <span class="kd">var</span> <span class="nx">sel</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSelected</span><span class="p">();</span></div><div class='line' id='LC4087'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">populateFromArray</span><span class="p">(</span><span class="nx">sel</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="nx">sel</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="nx">val</span><span class="p">,</span> <span class="nx">sel</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span> <span class="nx">sel</span><span class="p">[</span><span class="mi">3</span><span class="p">],</span> <span class="s1">'edit'</span><span class="p">);</span></div><div class='line' id='LC4088'> <span class="p">}</span></div><div class='line' id='LC4089'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC4090'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">populateFromArray</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">row</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">col</span><span class="p">,</span> <span class="nx">val</span><span class="p">,</span> <span class="kc">null</span><span class="p">,</span> <span class="kc">null</span><span class="p">,</span> <span class="s1">'edit'</span><span class="p">);</span></div><div class='line' id='LC4091'> <span class="p">}</span></div><div class='line' id='LC4092'><span class="p">};</span></div><div class='line' id='LC4093'><br/></div><div class='line' id='LC4094'><span class="nx">HandsontableTextEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">finishEditing</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">isCancelled</span><span class="p">,</span> <span class="nx">ctrlDown</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4095'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">waiting</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4096'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC4097'> <span class="p">}</span></div><div class='line' id='LC4098'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">isCellEdited</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4099'> <span class="k">this</span><span class="p">.</span><span class="nx">isCellEdited</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC4100'> <span class="kd">var</span> <span class="nx">val</span><span class="p">;</span></div><div class='line' id='LC4101'><br/></div><div class='line' id='LC4102'> <span class="k">if</span> <span class="p">(</span><span class="nx">isCancelled</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4103'> <span class="nx">val</span> <span class="o">=</span> <span class="p">[</span></div><div class='line' id='LC4104'> <span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">originalValue</span><span class="p">]</span></div><div class='line' id='LC4105'> <span class="p">];</span></div><div class='line' id='LC4106'> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC4107'> <span class="nx">val</span> <span class="o">=</span> <span class="p">[</span></div><div class='line' id='LC4108'> <span class="p">[</span><span class="nx">$</span><span class="p">.</span><span class="nx">trim</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">TEXTAREA</span><span class="p">.</span><span class="nx">value</span><span class="p">)]</span></div><div class='line' id='LC4109'> <span class="p">];</span></div><div class='line' id='LC4110'> <span class="p">}</span></div><div class='line' id='LC4111'><br/></div><div class='line' id='LC4112'> <span class="kd">var</span> <span class="nx">hasValidator</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getCellMeta</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">row</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">col</span><span class="p">).</span><span class="nx">validator</span><span class="p">;</span></div><div class='line' id='LC4113'><br/></div><div class='line' id='LC4114'> <span class="k">if</span> <span class="p">(</span><span class="nx">hasValidator</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4115'> <span class="k">this</span><span class="p">.</span><span class="nx">waiting</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC4116'> <span class="kd">var</span> <span class="nx">that</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC4117'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">addHookOnce</span><span class="p">(</span><span class="s1">'afterValidate'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">result</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4118'> <span class="nx">that</span><span class="p">.</span><span class="nx">force</span> <span class="o">=</span> <span class="nx">that</span><span class="p">.</span><span class="nx">waiting</span><span class="p">;</span></div><div class='line' id='LC4119'> <span class="nx">that</span><span class="p">.</span><span class="nx">waiting</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC4120'> <span class="nx">that</span><span class="p">.</span><span class="nx">discardEditor</span><span class="p">(</span><span class="nx">result</span><span class="p">);</span></div><div class='line' id='LC4121'> <span class="p">});</span></div><div class='line' id='LC4122'> <span class="p">}</span></div><div class='line' id='LC4123'> <span class="k">this</span><span class="p">.</span><span class="nx">saveValue</span><span class="p">(</span><span class="nx">val</span><span class="p">,</span> <span class="nx">ctrlDown</span><span class="p">);</span></div><div class='line' id='LC4124'><br/></div><div class='line' id='LC4125'> <span class="p">}</span></div><div class='line' id='LC4126'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">hasValidator</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//otherwise afterValidate will discard the editor</span></div><div class='line' id='LC4127'> <span class="k">this</span><span class="p">.</span><span class="nx">discardEditor</span><span class="p">();</span></div><div class='line' id='LC4128'> <span class="p">}</span></div><div class='line' id='LC4129'><span class="p">};</span></div><div class='line' id='LC4130'><br/></div><div class='line' id='LC4131'><span class="nx">HandsontableTextEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">discardEditor</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">result</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4132'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">waiting</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4133'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC4134'> <span class="p">}</span></div><div class='line' id='LC4135'><br/></div><div class='line' id='LC4136'> <span class="k">if</span> <span class="p">(</span><span class="nx">result</span> <span class="o">===</span> <span class="kc">false</span> <span class="o">&&</span> <span class="k">this</span><span class="p">.</span><span class="nx">cellProperties</span><span class="p">.</span><span class="nx">allowInvalid</span> <span class="o">!==</span> <span class="kc">true</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//validator was defined and failed</span></div><div class='line' id='LC4137'> <span class="k">this</span><span class="p">.</span><span class="nx">isCellEdited</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC4138'> <span class="kd">var</span> <span class="nx">that</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC4139'> <span class="nx">setTimeout</span><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC4140'> <span class="k">if</span> <span class="p">(</span><span class="nx">that</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">isVisible</span><span class="p">(</span><span class="nx">that</span><span class="p">.</span><span class="nx">TEXTAREA</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC4141'> <span class="nx">that</span><span class="p">.</span><span class="nx">TEXTAREA</span><span class="p">.</span><span class="nx">focus</span><span class="p">();</span></div><div class='line' id='LC4142'> <span class="nx">that</span><span class="p">.</span><span class="nx">setCaretPosition</span><span class="p">(</span><span class="nx">that</span><span class="p">.</span><span class="nx">TEXTAREA</span><span class="p">,</span> <span class="nx">that</span><span class="p">.</span><span class="nx">TEXTAREA</span><span class="p">.</span><span class="nx">value</span><span class="p">.</span><span class="nx">length</span><span class="p">);</span></div><div class='line' id='LC4143'> <span class="p">}</span></div><div class='line' id='LC4144'> <span class="p">},</span> <span class="mi">0</span><span class="p">);</span></div><div class='line' id='LC4145'> <span class="p">}</span></div><div class='line' id='LC4146'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC4147'> <span class="k">if</span> <span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">activeElement</span> <span class="o">===</span> <span class="k">this</span><span class="p">.</span><span class="nx">TEXTAREA</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4148'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">listen</span><span class="p">();</span> <span class="c1">//don't refocus the table if user focused some cell outside of HT on purpose</span></div><div class='line' id='LC4149'> <span class="p">}</span></div><div class='line' id='LC4150'> <span class="k">this</span><span class="p">.</span><span class="nx">unbindTemporaryEvents</span><span class="p">();</span></div><div class='line' id='LC4151'><br/></div><div class='line' id='LC4152'> <span class="k">this</span><span class="p">.</span><span class="nx">textareaParentStyle</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s1">'none'</span><span class="p">;</span></div><div class='line' id='LC4153'><br/></div><div class='line' id='LC4154'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">force</span> <span class="o">&&</span> <span class="k">this</span><span class="p">.</span><span class="nx">force</span><span class="p">.</span><span class="nx">type</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//this is needed so when you finish editing with Enter key, the default Enter behavior (move selection down) will work after async validation</span></div><div class='line' id='LC4155'> <span class="kd">var</span> <span class="nx">ev</span> <span class="o">=</span> <span class="nx">$</span><span class="p">.</span><span class="nx">Event</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">force</span><span class="p">.</span><span class="nx">type</span><span class="p">);</span></div><div class='line' id='LC4156'> <span class="nx">ev</span><span class="p">.</span><span class="nx">keyCode</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">force</span><span class="p">.</span><span class="nx">keyCode</span><span class="p">;</span></div><div class='line' id='LC4157'> <span class="k">this</span><span class="p">.</span><span class="nx">force</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span></div><div class='line' id='LC4158'> <span class="nx">$</span><span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">activeElement</span><span class="p">).</span><span class="nx">trigger</span><span class="p">(</span><span class="nx">ev</span><span class="p">);</span></div><div class='line' id='LC4159'> <span class="p">}</span></div><div class='line' id='LC4160'> <span class="p">}</span></div><div class='line' id='LC4161'><span class="p">};</span></div><div class='line' id='LC4162'><br/></div><div class='line' id='LC4163'><span class="cm">/**</span></div><div class='line' id='LC4164'><span class="cm"> * Default text editor</span></div><div class='line' id='LC4165'><span class="cm"> * @param {Object} instance Handsontable instance</span></div><div class='line' id='LC4166'><span class="cm"> * @param {Element} td Table cell where to render</span></div><div class='line' id='LC4167'><span class="cm"> * @param {Number} row</span></div><div class='line' id='LC4168'><span class="cm"> * @param {Number} col</span></div><div class='line' id='LC4169'><span class="cm"> * @param {String|Number} prop Row object property name</span></div><div class='line' id='LC4170'><span class="cm"> * @param value Original value (remember to escape unsafe HTML before inserting to DOM!)</span></div><div class='line' id='LC4171'><span class="cm"> * @param {Object} cellProperties Cell properites (shared by cell renderer and editor)</span></div><div class='line' id='LC4172'><span class="cm"> */</span></div><div class='line' id='LC4173'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">TextEditor</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">td</span><span class="p">,</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4174'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">instance</span><span class="p">.</span><span class="nx">textEditor</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4175'> <span class="nx">instance</span><span class="p">.</span><span class="nx">textEditor</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">HandsontableTextEditorClass</span><span class="p">(</span><span class="nx">instance</span><span class="p">);</span></div><div class='line' id='LC4176'> <span class="p">}</span></div><div class='line' id='LC4177'> <span class="nx">instance</span><span class="p">.</span><span class="nx">textEditor</span><span class="p">.</span><span class="nx">bindTemporaryEvents</span><span class="p">(</span><span class="nx">td</span><span class="p">,</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">);</span></div><div class='line' id='LC4178'> <span class="k">return</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">isCancelled</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4179'> <span class="nx">instance</span><span class="p">.</span><span class="nx">textEditor</span><span class="p">.</span><span class="nx">finishEditing</span><span class="p">(</span><span class="nx">isCancelled</span><span class="p">);</span></div><div class='line' id='LC4180'> <span class="p">}</span></div><div class='line' id='LC4181'><span class="p">};</span></div><div class='line' id='LC4182'><span class="kd">function</span> <span class="nx">HandsontableAutocompleteEditorClass</span><span class="p">(</span><span class="nx">instance</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4183'> <span class="k">this</span><span class="p">.</span><span class="nx">isCellEdited</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC4184'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">;</span></div><div class='line' id='LC4185'> <span class="k">this</span><span class="p">.</span><span class="nx">createElements</span><span class="p">();</span></div><div class='line' id='LC4186'> <span class="k">this</span><span class="p">.</span><span class="nx">bindEvents</span><span class="p">();</span></div><div class='line' id='LC4187'> <span class="k">this</span><span class="p">.</span><span class="nx">emptyStringLabel</span> <span class="o">=</span> <span class="s1">'\u00A0\u00A0\u00A0'</span><span class="p">;</span> <span class="c1">//3 non-breaking spaces</span></div><div class='line' id='LC4188'><span class="p">}</span></div><div class='line' id='LC4189'><br/></div><div class='line' id='LC4190'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">inherit</span><span class="p">(</span><span class="nx">HandsontableAutocompleteEditorClass</span><span class="p">,</span> <span class="nx">HandsontableTextEditorClass</span><span class="p">);</span></div><div class='line' id='LC4191'><br/></div><div class='line' id='LC4192'><span class="cm">/**</span></div><div class='line' id='LC4193'><span class="cm"> * @see HandsontableTextEditorClass.prototype.createElements</span></div><div class='line' id='LC4194'><span class="cm"> */</span></div><div class='line' id='LC4195'><span class="nx">HandsontableAutocompleteEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">createElements</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC4196'> <span class="nx">HandsontableTextEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">createElements</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">);</span></div><div class='line' id='LC4197'><br/></div><div class='line' id='LC4198'> <span class="k">this</span><span class="p">.</span><span class="nx">$textarea</span><span class="p">.</span><span class="nx">typeahead</span><span class="p">();</span></div><div class='line' id='LC4199'> <span class="k">this</span><span class="p">.</span><span class="nx">typeahead</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">$textarea</span><span class="p">.</span><span class="nx">data</span><span class="p">(</span><span class="s1">'typeahead'</span><span class="p">);</span></div><div class='line' id='LC4200'> <span class="k">this</span><span class="p">.</span><span class="nx">typeahead</span><span class="p">.</span><span class="nx">_render</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">typeahead</span><span class="p">.</span><span class="nx">render</span><span class="p">;</span></div><div class='line' id='LC4201'> <span class="k">this</span><span class="p">.</span><span class="nx">typeahead</span><span class="p">.</span><span class="nx">minLength</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC4202'><br/></div><div class='line' id='LC4203'> <span class="k">this</span><span class="p">.</span><span class="nx">typeahead</span><span class="p">.</span><span class="nx">lookup</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC4204'> <span class="kd">var</span> <span class="nx">items</span><span class="p">;</span></div><div class='line' id='LC4205'> <span class="k">this</span><span class="p">.</span><span class="nx">query</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">$element</span><span class="p">.</span><span class="nx">val</span><span class="p">();</span></div><div class='line' id='LC4206'> <span class="nx">items</span> <span class="o">=</span> <span class="nx">$</span><span class="p">.</span><span class="nx">isFunction</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">source</span><span class="p">)</span> <span class="o">?</span> <span class="k">this</span><span class="p">.</span><span class="nx">source</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">query</span><span class="p">,</span> <span class="nx">$</span><span class="p">.</span><span class="nx">proxy</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">process</span><span class="p">,</span> <span class="k">this</span><span class="p">))</span> <span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">source</span><span class="p">;</span></div><div class='line' id='LC4207'> <span class="k">return</span> <span class="nx">items</span> <span class="o">?</span> <span class="k">this</span><span class="p">.</span><span class="nx">process</span><span class="p">(</span><span class="nx">items</span><span class="p">)</span> <span class="o">:</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC4208'> <span class="p">};</span></div><div class='line' id='LC4209'><br/></div><div class='line' id='LC4210'> <span class="k">this</span><span class="p">.</span><span class="nx">typeahead</span><span class="p">.</span><span class="nx">matcher</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC4211'> <span class="k">return</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC4212'> <span class="p">};</span></div><div class='line' id='LC4213'><br/></div><div class='line' id='LC4214'> <span class="kd">var</span> <span class="nx">_process</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">typeahead</span><span class="p">.</span><span class="nx">process</span><span class="p">;</span></div><div class='line' id='LC4215'> <span class="kd">var</span> <span class="nx">that</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC4216'> <span class="k">this</span><span class="p">.</span><span class="nx">typeahead</span><span class="p">.</span><span class="nx">process</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">items</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4217'> <span class="kd">var</span> <span class="nx">cloned</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC4218'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">ilen</span> <span class="o">=</span> <span class="nx">items</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">ilen</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4219'> <span class="k">if</span> <span class="p">(</span><span class="nx">items</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">===</span> <span class="s1">''</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4220'> <span class="c1">//this is needed because because of issue #254</span></div><div class='line' id='LC4221'> <span class="c1">//empty string ('') is a falsy value and breaks the loop in bootstrap-typeahead.js method `sorter`</span></div><div class='line' id='LC4222'> <span class="c1">//best solution would be to change line: `while (item = items.shift()) {`</span></div><div class='line' id='LC4223'> <span class="c1">// to: `while ((item = items.shift()) !== void 0) {`</span></div><div class='line' id='LC4224'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">cloned</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4225'> <span class="c1">//need to clone items before applying emptyStringLabel</span></div><div class='line' id='LC4226'> <span class="c1">//(otherwise validateChanges fails for empty string)</span></div><div class='line' id='LC4227'> <span class="nx">items</span> <span class="o">=</span> <span class="nx">$</span><span class="p">.</span><span class="nx">extend</span><span class="p">([],</span> <span class="nx">items</span><span class="p">);</span></div><div class='line' id='LC4228'> <span class="nx">cloned</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC4229'> <span class="p">}</span></div><div class='line' id='LC4230'> <span class="nx">items</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">=</span> <span class="nx">that</span><span class="p">.</span><span class="nx">emptyStringLabel</span><span class="p">;</span></div><div class='line' id='LC4231'> <span class="p">}</span></div><div class='line' id='LC4232'> <span class="p">}</span></div><div class='line' id='LC4233'> <span class="k">return</span> <span class="nx">_process</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">items</span><span class="p">);</span></div><div class='line' id='LC4234'> <span class="p">};</span></div><div class='line' id='LC4235'><span class="p">};</span></div><div class='line' id='LC4236'><br/></div><div class='line' id='LC4237'><span class="cm">/**</span></div><div class='line' id='LC4238'><span class="cm"> * @see HandsontableTextEditorClass.prototype.bindEvents</span></div><div class='line' id='LC4239'><span class="cm"> */</span></div><div class='line' id='LC4240'><span class="nx">HandsontableAutocompleteEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">bindEvents</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC4241'> <span class="kd">var</span> <span class="nx">that</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC4242'><br/></div><div class='line' id='LC4243'> <span class="k">this</span><span class="p">.</span><span class="nx">$textarea</span><span class="p">.</span><span class="nx">off</span><span class="p">(</span><span class="s1">'keydown'</span><span class="p">).</span><span class="nx">off</span><span class="p">(</span><span class="s1">'keyup'</span><span class="p">).</span><span class="nx">off</span><span class="p">(</span><span class="s1">'keypress'</span><span class="p">);</span> <span class="c1">//unlisten</span></div><div class='line' id='LC4244'><br/></div><div class='line' id='LC4245'> <span class="k">this</span><span class="p">.</span><span class="nx">$textareaParent</span><span class="p">.</span><span class="nx">off</span><span class="p">(</span><span class="s1">'.acEditor'</span><span class="p">).</span><span class="nx">on</span><span class="p">(</span><span class="s1">'keydown.acEditor'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4246'> <span class="k">switch</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">keyCode</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4247'> <span class="k">case</span> <span class="mi">38</span><span class="o">:</span> <span class="cm">/* arrow up */</span></div><div class='line' id='LC4248'> <span class="nx">that</span><span class="p">.</span><span class="nx">typeahead</span><span class="p">.</span><span class="nx">prev</span><span class="p">();</span></div><div class='line' id='LC4249'> <span class="nx">event</span><span class="p">.</span><span class="nx">stopImmediatePropagation</span><span class="p">();</span> <span class="c1">//stops TextEditor and core onKeyDown handler</span></div><div class='line' id='LC4250'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC4251'><br/></div><div class='line' id='LC4252'> <span class="k">case</span> <span class="mi">40</span><span class="o">:</span> <span class="cm">/* arrow down */</span></div><div class='line' id='LC4253'> <span class="nx">that</span><span class="p">.</span><span class="nx">typeahead</span><span class="p">.</span><span class="nx">next</span><span class="p">();</span></div><div class='line' id='LC4254'> <span class="nx">event</span><span class="p">.</span><span class="nx">stopImmediatePropagation</span><span class="p">();</span> <span class="c1">//stops TextEditor and core onKeyDown handler</span></div><div class='line' id='LC4255'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC4256'><br/></div><div class='line' id='LC4257'> <span class="k">case</span> <span class="mi">13</span><span class="o">:</span> <span class="cm">/* enter */</span></div><div class='line' id='LC4258'> <span class="nx">event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">();</span></div><div class='line' id='LC4259'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC4260'> <span class="p">}</span></div><div class='line' id='LC4261'> <span class="p">});</span></div><div class='line' id='LC4262'><br/></div><div class='line' id='LC4263'> <span class="k">this</span><span class="p">.</span><span class="nx">$textareaParent</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'keyup.acEditor'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4264'> <span class="k">if</span> <span class="p">(</span><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">isPrintableChar</span><span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">keyCode</span><span class="p">)</span> <span class="o">||</span> <span class="nx">event</span><span class="p">.</span><span class="nx">keyCode</span> <span class="o">===</span> <span class="mi">113</span> <span class="o">||</span> <span class="nx">event</span><span class="p">.</span><span class="nx">keyCode</span> <span class="o">===</span> <span class="mi">13</span> <span class="o">||</span> <span class="nx">event</span><span class="p">.</span><span class="nx">keyCode</span> <span class="o">===</span> <span class="mi">8</span> <span class="o">||</span> <span class="nx">event</span><span class="p">.</span><span class="nx">keyCode</span> <span class="o">===</span> <span class="mi">46</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4265'> <span class="nx">that</span><span class="p">.</span><span class="nx">typeahead</span><span class="p">.</span><span class="nx">lookup</span><span class="p">();</span></div><div class='line' id='LC4266'> <span class="p">}</span></div><div class='line' id='LC4267'> <span class="p">});</span></div><div class='line' id='LC4268'><br/></div><div class='line' id='LC4269'><br/></div><div class='line' id='LC4270'> <span class="nx">HandsontableTextEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">bindEvents</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">);</span></div><div class='line' id='LC4271'><span class="p">};</span></div><div class='line' id='LC4272'><span class="cm">/**</span></div><div class='line' id='LC4273'><span class="cm"> * @see HandsontableTextEditorClass.prototype.bindTemporaryEvents</span></div><div class='line' id='LC4274'><span class="cm"> */</span></div><div class='line' id='LC4275'><span class="nx">HandsontableAutocompleteEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">bindTemporaryEvents</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">td</span><span class="p">,</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4276'> <span class="kd">var</span> <span class="nx">that</span> <span class="o">=</span> <span class="k">this</span></div><div class='line' id='LC4277'> <span class="p">,</span> <span class="nx">i</span></div><div class='line' id='LC4278'> <span class="p">,</span> <span class="nx">j</span><span class="p">;</span></div><div class='line' id='LC4279'><br/></div><div class='line' id='LC4280'> <span class="k">this</span><span class="p">.</span><span class="nx">typeahead</span><span class="p">.</span><span class="nx">select</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC4281'> <span class="kd">var</span> <span class="nx">output</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">hide</span><span class="p">();</span> <span class="c1">//need to hide it before destroyEditor, because destroyEditor checks if menu is expanded</span></div><div class='line' id='LC4282'> <span class="nx">that</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">destroyEditor</span><span class="p">(</span><span class="kc">true</span><span class="p">);</span></div><div class='line' id='LC4283'> <span class="kd">var</span> <span class="nx">active</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">$menu</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">querySelector</span><span class="p">(</span><span class="s1">'.active'</span><span class="p">);</span></div><div class='line' id='LC4284'> <span class="kd">var</span> <span class="nx">val</span> <span class="o">=</span> <span class="nx">$</span><span class="p">(</span><span class="nx">active</span><span class="p">).</span><span class="nx">attr</span><span class="p">(</span><span class="s1">'data-value'</span><span class="p">);</span></div><div class='line' id='LC4285'> <span class="k">if</span> <span class="p">(</span><span class="nx">val</span> <span class="o">===</span> <span class="nx">that</span><span class="p">.</span><span class="nx">emptyStringLabel</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4286'> <span class="nx">val</span> <span class="o">=</span> <span class="s1">''</span><span class="p">;</span></div><div class='line' id='LC4287'> <span class="p">}</span></div><div class='line' id='LC4288'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">onSelect</span> <span class="o">===</span> <span class="s1">'function'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4289'> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">onSelect</span><span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">val</span><span class="p">,</span> <span class="nx">that</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">index</span><span class="p">(</span><span class="nx">active</span><span class="p">));</span></div><div class='line' id='LC4290'> <span class="p">}</span></div><div class='line' id='LC4291'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC4292'> <span class="nx">that</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">setDataAtRowProp</span><span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">val</span><span class="p">);</span></div><div class='line' id='LC4293'> <span class="p">}</span></div><div class='line' id='LC4294'> <span class="k">return</span> <span class="nx">output</span><span class="p">;</span></div><div class='line' id='LC4295'> <span class="p">};</span></div><div class='line' id='LC4296'><br/></div><div class='line' id='LC4297'> <span class="k">this</span><span class="p">.</span><span class="nx">typeahead</span><span class="p">.</span><span class="nx">render</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">items</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4298'> <span class="nx">that</span><span class="p">.</span><span class="nx">typeahead</span><span class="p">.</span><span class="nx">_render</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">items</span><span class="p">);</span></div><div class='line' id='LC4299'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">cellProperties</span><span class="p">.</span><span class="nx">strict</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4300'> <span class="kd">var</span> <span class="nx">li</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">$menu</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">querySelector</span><span class="p">(</span><span class="s1">'.active'</span><span class="p">);</span></div><div class='line' id='LC4301'> <span class="k">if</span> <span class="p">(</span><span class="nx">li</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4302'> <span class="nx">that</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">removeClass</span><span class="p">(</span><span class="nx">li</span><span class="p">,</span> <span class="s1">'active'</span><span class="p">)</span></div><div class='line' id='LC4303'> <span class="p">}</span></div><div class='line' id='LC4304'> <span class="p">}</span></div><div class='line' id='LC4305'> <span class="k">return</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC4306'> <span class="p">};</span></div><div class='line' id='LC4307'><br/></div><div class='line' id='LC4308'> <span class="cm">/* overwrite typeahead options and methods (matcher, sorter, highlighter, updater, etc) if provided in cellProperties */</span></div><div class='line' id='LC4309'> <span class="k">for</span> <span class="p">(</span><span class="nx">i</span> <span class="k">in</span> <span class="nx">cellProperties</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4310'> <span class="c1">// if (cellProperties.hasOwnProperty(i)) {</span></div><div class='line' id='LC4311'> <span class="k">if</span> <span class="p">(</span><span class="nx">i</span> <span class="o">===</span> <span class="s1">'options'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4312'> <span class="k">for</span> <span class="p">(</span><span class="nx">j</span> <span class="k">in</span> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">options</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4313'> <span class="c1">// if (cellProperties.options.hasOwnProperty(j)) {</span></div><div class='line' id='LC4314'> <span class="k">this</span><span class="p">.</span><span class="nx">typeahead</span><span class="p">.</span><span class="nx">options</span><span class="p">[</span><span class="nx">j</span><span class="p">]</span> <span class="o">=</span> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">options</span><span class="p">[</span><span class="nx">j</span><span class="p">];</span></div><div class='line' id='LC4315'> <span class="c1">// }</span></div><div class='line' id='LC4316'> <span class="p">}</span></div><div class='line' id='LC4317'> <span class="p">}</span></div><div class='line' id='LC4318'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC4319'> <span class="k">this</span><span class="p">.</span><span class="nx">typeahead</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">=</span> <span class="nx">cellProperties</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span></div><div class='line' id='LC4320'> <span class="p">}</span></div><div class='line' id='LC4321'> <span class="c1">// }</span></div><div class='line' id='LC4322'> <span class="p">}</span></div><div class='line' id='LC4323'><br/></div><div class='line' id='LC4324'> <span class="nx">HandsontableTextEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">bindTemporaryEvents</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">td</span><span class="p">,</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">);</span></div><div class='line' id='LC4325'><br/></div><div class='line' id='LC4326'> <span class="kd">function</span> <span class="nx">onDblClick</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC4327'> <span class="nx">that</span><span class="p">.</span><span class="nx">beginEditing</span><span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span></div><div class='line' id='LC4328'> <span class="nx">that</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">registerTimeout</span><span class="p">(</span><span class="s1">'IE9_align_fix'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span> <span class="c1">//otherwise is misaligned in IE9</span></div><div class='line' id='LC4329'> <span class="nx">that</span><span class="p">.</span><span class="nx">typeahead</span><span class="p">.</span><span class="nx">lookup</span><span class="p">();</span></div><div class='line' id='LC4330'> <span class="p">},</span> <span class="mi">1</span><span class="p">);</span></div><div class='line' id='LC4331'> <span class="p">}</span></div><div class='line' id='LC4332'><br/></div><div class='line' id='LC4333'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">update</span><span class="p">(</span><span class="s1">'onCellDblClick'</span><span class="p">,</span> <span class="nx">onDblClick</span><span class="p">);</span></div><div class='line' id='LC4334'><span class="p">};</span></div><div class='line' id='LC4335'><span class="cm">/**</span></div><div class='line' id='LC4336'><span class="cm"> * @see HandsontableTextEditorClass.prototype.finishEditing</span></div><div class='line' id='LC4337'><span class="cm"> */</span></div><div class='line' id='LC4338'><span class="nx">HandsontableAutocompleteEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">finishEditing</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">isCancelled</span><span class="p">,</span> <span class="nx">ctrlDown</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4339'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">isCancelled</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4340'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">isMenuExpanded</span><span class="p">()</span> <span class="o">&&</span> <span class="k">this</span><span class="p">.</span><span class="nx">typeahead</span><span class="p">.</span><span class="nx">$menu</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">querySelector</span><span class="p">(</span><span class="s1">'.active'</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC4341'> <span class="k">this</span><span class="p">.</span><span class="nx">typeahead</span><span class="p">.</span><span class="nx">select</span><span class="p">();</span></div><div class='line' id='LC4342'> <span class="k">this</span><span class="p">.</span><span class="nx">isCellEdited</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span> <span class="c1">//cell value was updated by this.typeahead.select (issue #405)</span></div><div class='line' id='LC4343'> <span class="p">}</span></div><div class='line' id='LC4344'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">cellProperties</span><span class="p">.</span><span class="nx">strict</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4345'> <span class="k">this</span><span class="p">.</span><span class="nx">isCellEdited</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span> <span class="c1">//cell value was not picked from this.typeahead.select (issue #405)</span></div><div class='line' id='LC4346'> <span class="p">}</span></div><div class='line' id='LC4347'> <span class="p">}</span></div><div class='line' id='LC4348'><br/></div><div class='line' id='LC4349'> <span class="nx">HandsontableTextEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">finishEditing</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">isCancelled</span><span class="p">,</span> <span class="nx">ctrlDown</span><span class="p">);</span></div><div class='line' id='LC4350'><span class="p">};</span></div><div class='line' id='LC4351'><br/></div><div class='line' id='LC4352'><span class="nx">HandsontableAutocompleteEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">isMenuExpanded</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC4353'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">isVisible</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">typeahead</span><span class="p">.</span><span class="nx">$menu</span><span class="p">[</span><span class="mi">0</span><span class="p">]))</span> <span class="p">{</span></div><div class='line' id='LC4354'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">typeahead</span><span class="p">;</span></div><div class='line' id='LC4355'> <span class="p">}</span></div><div class='line' id='LC4356'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC4357'> <span class="k">return</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC4358'> <span class="p">}</span></div><div class='line' id='LC4359'><span class="p">};</span></div><div class='line' id='LC4360'><br/></div><div class='line' id='LC4361'><span class="cm">/**</span></div><div class='line' id='LC4362'><span class="cm"> * Autocomplete editor</span></div><div class='line' id='LC4363'><span class="cm"> * @param {Object} instance Handsontable instance</span></div><div class='line' id='LC4364'><span class="cm"> * @param {Element} td Table cell where to render</span></div><div class='line' id='LC4365'><span class="cm"> * @param {Number} row</span></div><div class='line' id='LC4366'><span class="cm"> * @param {Number} col</span></div><div class='line' id='LC4367'><span class="cm"> * @param {String|Number} prop Row object property name</span></div><div class='line' id='LC4368'><span class="cm"> * @param value Original value (remember to escape unsafe HTML before inserting to DOM!)</span></div><div class='line' id='LC4369'><span class="cm"> * @param {Object} cellProperties Cell properites (shared by cell renderer and editor)</span></div><div class='line' id='LC4370'><span class="cm"> */</span></div><div class='line' id='LC4371'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">AutocompleteEditor</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">td</span><span class="p">,</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4372'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">instance</span><span class="p">.</span><span class="nx">autocompleteEditor</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4373'> <span class="nx">instance</span><span class="p">.</span><span class="nx">autocompleteEditor</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">HandsontableAutocompleteEditorClass</span><span class="p">(</span><span class="nx">instance</span><span class="p">);</span></div><div class='line' id='LC4374'> <span class="p">}</span></div><div class='line' id='LC4375'> <span class="nx">instance</span><span class="p">.</span><span class="nx">autocompleteEditor</span><span class="p">.</span><span class="nx">bindTemporaryEvents</span><span class="p">(</span><span class="nx">td</span><span class="p">,</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">);</span></div><div class='line' id='LC4376'> <span class="k">return</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">isCancelled</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4377'> <span class="nx">instance</span><span class="p">.</span><span class="nx">autocompleteEditor</span><span class="p">.</span><span class="nx">finishEditing</span><span class="p">(</span><span class="nx">isCancelled</span><span class="p">);</span></div><div class='line' id='LC4378'> <span class="p">}</span></div><div class='line' id='LC4379'><span class="p">};</span></div><div class='line' id='LC4380'><span class="kd">function</span> <span class="nx">toggleCheckboxCell</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4381'> <span class="k">if</span> <span class="p">(</span><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">stringify</span><span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getDataAtRowProp</span><span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">prop</span><span class="p">))</span> <span class="o">===</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">stringify</span><span class="p">(</span><span class="nx">cellProperties</span><span class="p">.</span><span class="nx">checkedTemplate</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC4382'> <span class="nx">instance</span><span class="p">.</span><span class="nx">setDataAtRowProp</span><span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">uncheckedTemplate</span><span class="p">);</span></div><div class='line' id='LC4383'> <span class="p">}</span></div><div class='line' id='LC4384'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC4385'> <span class="nx">instance</span><span class="p">.</span><span class="nx">setDataAtRowProp</span><span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">checkedTemplate</span><span class="p">);</span></div><div class='line' id='LC4386'> <span class="p">}</span></div><div class='line' id='LC4387'><span class="p">}</span></div><div class='line' id='LC4388'><br/></div><div class='line' id='LC4389'><span class="cm">/**</span></div><div class='line' id='LC4390'><span class="cm"> * Checkbox editor</span></div><div class='line' id='LC4391'><span class="cm"> * @param {Object} instance Handsontable instance</span></div><div class='line' id='LC4392'><span class="cm"> * @param {Element} td Table cell where to render</span></div><div class='line' id='LC4393'><span class="cm"> * @param {Number} row</span></div><div class='line' id='LC4394'><span class="cm"> * @param {Number} col</span></div><div class='line' id='LC4395'><span class="cm"> * @param {String|Number} prop Row object property name</span></div><div class='line' id='LC4396'><span class="cm"> * @param value Original value (remember to escape unsafe HTML before inserting to DOM!)</span></div><div class='line' id='LC4397'><span class="cm"> * @param {Object} cellProperties Cell properites (shared by cell renderer and editor)</span></div><div class='line' id='LC4398'><span class="cm"> */</span></div><div class='line' id='LC4399'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">CheckboxEditor</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">td</span><span class="p">,</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4400'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">cellProperties</span> <span class="o">===</span> <span class="s2">"undefined"</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4401'> <span class="nx">cellProperties</span> <span class="o">=</span> <span class="p">{};</span></div><div class='line' id='LC4402'> <span class="p">}</span></div><div class='line' id='LC4403'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">checkedTemplate</span> <span class="o">===</span> <span class="s2">"undefined"</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4404'> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">checkedTemplate</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC4405'> <span class="p">}</span></div><div class='line' id='LC4406'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">uncheckedTemplate</span> <span class="o">===</span> <span class="s2">"undefined"</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4407'> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">uncheckedTemplate</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC4408'> <span class="p">}</span></div><div class='line' id='LC4409'><br/></div><div class='line' id='LC4410'> <span class="nx">instance</span><span class="p">.</span><span class="nx">$table</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s2">"keydown.editor"</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4411'> <span class="kd">var</span> <span class="nx">ctrlDown</span> <span class="o">=</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">ctrlKey</span> <span class="o">||</span> <span class="nx">event</span><span class="p">.</span><span class="nx">metaKey</span><span class="p">)</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">event</span><span class="p">.</span><span class="nx">altKey</span><span class="p">;</span> <span class="c1">//catch CTRL but not right ALT (which in some systems triggers ALT+CTRL)</span></div><div class='line' id='LC4412'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">ctrlDown</span> <span class="o">&&</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">isPrintableChar</span><span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">keyCode</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC4413'> <span class="nx">toggleCheckboxCell</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">);</span></div><div class='line' id='LC4414'> <span class="nx">event</span><span class="p">.</span><span class="nx">stopImmediatePropagation</span><span class="p">();</span> <span class="c1">//stops core onKeyDown handler</span></div><div class='line' id='LC4415'> <span class="nx">event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">();</span> <span class="c1">//some keys have special behavior, eg. space bar scrolls screen down</span></div><div class='line' id='LC4416'> <span class="p">}</span></div><div class='line' id='LC4417'> <span class="p">});</span></div><div class='line' id='LC4418'><br/></div><div class='line' id='LC4419'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">update</span><span class="p">(</span><span class="s1">'onCellDblClick'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC4420'> <span class="nx">toggleCheckboxCell</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">);</span></div><div class='line' id='LC4421'> <span class="p">});</span></div><div class='line' id='LC4422'><br/></div><div class='line' id='LC4423'> <span class="k">return</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC4424'> <span class="nx">instance</span><span class="p">.</span><span class="nx">$table</span><span class="p">.</span><span class="nx">off</span><span class="p">(</span><span class="s2">".editor"</span><span class="p">);</span></div><div class='line' id='LC4425'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">update</span><span class="p">(</span><span class="s1">'onCellDblClick'</span><span class="p">,</span> <span class="kc">null</span><span class="p">);</span></div><div class='line' id='LC4426'> <span class="p">}</span></div><div class='line' id='LC4427'><span class="p">};</span></div><div class='line' id='LC4428'><br/></div><div class='line' id='LC4429'><br/></div><div class='line' id='LC4430'><br/></div><div class='line' id='LC4431'><span class="kd">function</span> <span class="nx">HandsontableDateEditorClass</span><span class="p">(</span><span class="nx">instance</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4432'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">$</span><span class="p">.</span><span class="nx">datepicker</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4433'> <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s2">"jQuery UI Datepicker dependency not found. Did you forget to include jquery-ui.custom.js or its substitute?"</span><span class="p">);</span></div><div class='line' id='LC4434'> <span class="p">}</span></div><div class='line' id='LC4435'><br/></div><div class='line' id='LC4436'> <span class="k">this</span><span class="p">.</span><span class="nx">isCellEdited</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC4437'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">;</span></div><div class='line' id='LC4438'> <span class="k">this</span><span class="p">.</span><span class="nx">createElements</span><span class="p">();</span></div><div class='line' id='LC4439'> <span class="k">this</span><span class="p">.</span><span class="nx">bindEvents</span><span class="p">();</span></div><div class='line' id='LC4440'><span class="p">}</span></div><div class='line' id='LC4441'><br/></div><div class='line' id='LC4442'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">inherit</span><span class="p">(</span><span class="nx">HandsontableDateEditorClass</span><span class="p">,</span> <span class="nx">HandsontableTextEditorClass</span><span class="p">);</span></div><div class='line' id='LC4443'><br/></div><div class='line' id='LC4444'><span class="cm">/**</span></div><div class='line' id='LC4445'><span class="cm"> * @see HandsontableTextEditorClass.prototype.createElements</span></div><div class='line' id='LC4446'><span class="cm"> */</span></div><div class='line' id='LC4447'><span class="nx">HandsontableDateEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">createElements</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC4448'> <span class="nx">HandsontableTextEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">createElements</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">);</span></div><div class='line' id='LC4449'><br/></div><div class='line' id='LC4450'> <span class="k">this</span><span class="p">.</span><span class="nx">datePicker</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'DIV'</span><span class="p">);</span></div><div class='line' id='LC4451'> <span class="k">this</span><span class="p">.</span><span class="nx">datePickerStyle</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">datePicker</span><span class="p">.</span><span class="nx">style</span><span class="p">;</span></div><div class='line' id='LC4452'> <span class="k">this</span><span class="p">.</span><span class="nx">datePickerStyle</span><span class="p">.</span><span class="nx">position</span> <span class="o">=</span> <span class="s1">'absolute'</span><span class="p">;</span></div><div class='line' id='LC4453'> <span class="k">this</span><span class="p">.</span><span class="nx">datePickerStyle</span><span class="p">.</span><span class="nx">top</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC4454'> <span class="k">this</span><span class="p">.</span><span class="nx">datePickerStyle</span><span class="p">.</span><span class="nx">left</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC4455'> <span class="k">this</span><span class="p">.</span><span class="nx">datePickerStyle</span><span class="p">.</span><span class="nx">zIndex</span> <span class="o">=</span> <span class="mi">99</span><span class="p">;</span></div><div class='line' id='LC4456'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">appendChild</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">datePicker</span><span class="p">);</span></div><div class='line' id='LC4457'> <span class="k">this</span><span class="p">.</span><span class="nx">$datePicker</span> <span class="o">=</span> <span class="nx">$</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">datePicker</span><span class="p">);</span></div><div class='line' id='LC4458'><br/></div><div class='line' id='LC4459'> <span class="kd">var</span> <span class="nx">that</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC4460'> <span class="kd">var</span> <span class="nx">defaultOptions</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC4461'> <span class="nx">dateFormat</span><span class="o">:</span> <span class="s2">"yy-mm-dd"</span><span class="p">,</span></div><div class='line' id='LC4462'> <span class="nx">showButtonPanel</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span></div><div class='line' id='LC4463'> <span class="nx">changeMonth</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span></div><div class='line' id='LC4464'> <span class="nx">changeYear</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span></div><div class='line' id='LC4465'> <span class="nx">altField</span><span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">$textarea</span><span class="p">,</span></div><div class='line' id='LC4466'> <span class="nx">onSelect</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC4467'> <span class="nx">that</span><span class="p">.</span><span class="nx">finishEditing</span><span class="p">(</span><span class="kc">false</span><span class="p">);</span></div><div class='line' id='LC4468'> <span class="p">}</span></div><div class='line' id='LC4469'> <span class="p">};</span></div><div class='line' id='LC4470'> <span class="k">this</span><span class="p">.</span><span class="nx">$datePicker</span><span class="p">.</span><span class="nx">datepicker</span><span class="p">(</span><span class="nx">defaultOptions</span><span class="p">);</span></div><div class='line' id='LC4471'> <span class="k">this</span><span class="p">.</span><span class="nx">hideDatepicker</span><span class="p">();</span></div><div class='line' id='LC4472'><span class="p">};</span></div><div class='line' id='LC4473'><br/></div><div class='line' id='LC4474'><span class="cm">/**</span></div><div class='line' id='LC4475'><span class="cm"> * @see HandsontableTextEditorClass.prototype.beginEditing</span></div><div class='line' id='LC4476'><span class="cm"> */</span></div><div class='line' id='LC4477'><span class="nx">HandsontableDateEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">beginEditing</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">useOriginalValue</span><span class="p">,</span> <span class="nx">suffix</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4478'> <span class="nx">HandsontableTextEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">beginEditing</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">useOriginalValue</span><span class="p">,</span> <span class="nx">suffix</span><span class="p">);</span></div><div class='line' id='LC4479'> <span class="k">this</span><span class="p">.</span><span class="nx">showDatepicker</span><span class="p">();</span></div><div class='line' id='LC4480'><span class="p">};</span></div><div class='line' id='LC4481'><br/></div><div class='line' id='LC4482'><span class="cm">/**</span></div><div class='line' id='LC4483'><span class="cm"> * @see HandsontableTextEditorClass.prototype.finishEditing</span></div><div class='line' id='LC4484'><span class="cm"> */</span></div><div class='line' id='LC4485'><span class="nx">HandsontableDateEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">finishEditing</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">isCancelled</span><span class="p">,</span> <span class="nx">ctrlDown</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4486'> <span class="k">this</span><span class="p">.</span><span class="nx">hideDatepicker</span><span class="p">();</span></div><div class='line' id='LC4487'> <span class="nx">HandsontableTextEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">finishEditing</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">isCancelled</span><span class="p">,</span> <span class="nx">ctrlDown</span><span class="p">);</span></div><div class='line' id='LC4488'><span class="p">};</span></div><div class='line' id='LC4489'><br/></div><div class='line' id='LC4490'><span class="nx">HandsontableDateEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">showDatepicker</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC4491'> <span class="kd">var</span> <span class="nx">$td</span> <span class="o">=</span> <span class="nx">$</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">dateEditor</span><span class="p">.</span><span class="nx">TD</span><span class="p">);</span></div><div class='line' id='LC4492'> <span class="kd">var</span> <span class="nx">position</span> <span class="o">=</span> <span class="nx">$td</span><span class="p">.</span><span class="nx">position</span><span class="p">();</span></div><div class='line' id='LC4493'> <span class="k">this</span><span class="p">.</span><span class="nx">datePickerStyle</span><span class="p">.</span><span class="nx">top</span> <span class="o">=</span> <span class="p">(</span><span class="nx">position</span><span class="p">.</span><span class="nx">top</span> <span class="o">+</span> <span class="nx">$td</span><span class="p">.</span><span class="nx">height</span><span class="p">())</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC4494'> <span class="k">this</span><span class="p">.</span><span class="nx">datePickerStyle</span><span class="p">.</span><span class="nx">left</span> <span class="o">=</span> <span class="nx">position</span><span class="p">.</span><span class="nx">left</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC4495'><br/></div><div class='line' id='LC4496'> <span class="kd">var</span> <span class="nx">dateOptions</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC4497'> <span class="nx">defaultDate</span><span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">originalValue</span> <span class="o">||</span> <span class="k">void</span> <span class="mi">0</span></div><div class='line' id='LC4498'> <span class="p">};</span></div><div class='line' id='LC4499'> <span class="nx">$</span><span class="p">.</span><span class="nx">extend</span><span class="p">(</span><span class="nx">dateOptions</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">cellProperties</span><span class="p">);</span></div><div class='line' id='LC4500'> <span class="k">this</span><span class="p">.</span><span class="nx">$datePicker</span><span class="p">.</span><span class="nx">datepicker</span><span class="p">(</span><span class="s2">"option"</span><span class="p">,</span> <span class="nx">dateOptions</span><span class="p">);</span></div><div class='line' id='LC4501'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">originalValue</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4502'> <span class="k">this</span><span class="p">.</span><span class="nx">$datePicker</span><span class="p">.</span><span class="nx">datepicker</span><span class="p">(</span><span class="s2">"setDate"</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">originalValue</span><span class="p">);</span></div><div class='line' id='LC4503'> <span class="p">}</span></div><div class='line' id='LC4504'> <span class="k">this</span><span class="p">.</span><span class="nx">datePickerStyle</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s1">'block'</span><span class="p">;</span></div><div class='line' id='LC4505'><span class="p">};</span></div><div class='line' id='LC4506'><br/></div><div class='line' id='LC4507'><span class="nx">HandsontableDateEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">hideDatepicker</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC4508'> <span class="k">this</span><span class="p">.</span><span class="nx">datePickerStyle</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s1">'none'</span><span class="p">;</span></div><div class='line' id='LC4509'><span class="p">};</span></div><div class='line' id='LC4510'><br/></div><div class='line' id='LC4511'><span class="cm">/**</span></div><div class='line' id='LC4512'><span class="cm"> * Date editor (uses jQuery UI Datepicker)</span></div><div class='line' id='LC4513'><span class="cm"> * @param {Object} instance Handsontable instance</span></div><div class='line' id='LC4514'><span class="cm"> * @param {Element} td Table cell where to render</span></div><div class='line' id='LC4515'><span class="cm"> * @param {Number} row</span></div><div class='line' id='LC4516'><span class="cm"> * @param {Number} col</span></div><div class='line' id='LC4517'><span class="cm"> * @param {String|Number} prop Row object property name</span></div><div class='line' id='LC4518'><span class="cm"> * @param value Original value (remember to escape unsafe HTML before inserting to DOM!)</span></div><div class='line' id='LC4519'><span class="cm"> * @param {Object} cellProperties Cell properites (shared by cell renderer and editor)</span></div><div class='line' id='LC4520'><span class="cm"> */</span></div><div class='line' id='LC4521'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">DateEditor</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">td</span><span class="p">,</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4522'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">instance</span><span class="p">.</span><span class="nx">dateEditor</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4523'> <span class="nx">instance</span><span class="p">.</span><span class="nx">dateEditor</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">HandsontableDateEditorClass</span><span class="p">(</span><span class="nx">instance</span><span class="p">);</span></div><div class='line' id='LC4524'> <span class="p">}</span></div><div class='line' id='LC4525'> <span class="nx">instance</span><span class="p">.</span><span class="nx">dateEditor</span><span class="p">.</span><span class="nx">bindTemporaryEvents</span><span class="p">(</span><span class="nx">td</span><span class="p">,</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">);</span></div><div class='line' id='LC4526'> <span class="k">return</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">isCancelled</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4527'> <span class="nx">instance</span><span class="p">.</span><span class="nx">dateEditor</span><span class="p">.</span><span class="nx">finishEditing</span><span class="p">(</span><span class="nx">isCancelled</span><span class="p">);</span></div><div class='line' id='LC4528'> <span class="p">}</span></div><div class='line' id='LC4529'><span class="p">};</span></div><div class='line' id='LC4530'><span class="cm">/**</span></div><div class='line' id='LC4531'><span class="cm"> * This is inception. Using Handsontable as Handsontable editor</span></div><div class='line' id='LC4532'><span class="cm"> */</span></div><div class='line' id='LC4533'><br/></div><div class='line' id='LC4534'><span class="kd">function</span> <span class="nx">HandsontableHandsontableEditorClass</span><span class="p">(</span><span class="nx">instance</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4535'> <span class="k">this</span><span class="p">.</span><span class="nx">isCellEdited</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC4536'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">;</span></div><div class='line' id='LC4537'> <span class="k">this</span><span class="p">.</span><span class="nx">createElements</span><span class="p">();</span></div><div class='line' id='LC4538'> <span class="k">this</span><span class="p">.</span><span class="nx">bindEvents</span><span class="p">();</span></div><div class='line' id='LC4539'><span class="p">}</span></div><div class='line' id='LC4540'><br/></div><div class='line' id='LC4541'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">inherit</span><span class="p">(</span><span class="nx">HandsontableHandsontableEditorClass</span><span class="p">,</span> <span class="nx">HandsontableTextEditorClass</span><span class="p">);</span></div><div class='line' id='LC4542'><br/></div><div class='line' id='LC4543'><span class="nx">HandsontableHandsontableEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">createElements</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC4544'> <span class="nx">HandsontableTextEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">createElements</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">);</span></div><div class='line' id='LC4545'><br/></div><div class='line' id='LC4546'> <span class="kd">var</span> <span class="nx">DIV</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'DIV'</span><span class="p">);</span></div><div class='line' id='LC4547'> <span class="nx">DIV</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="s1">'handsontableEditor'</span><span class="p">;</span></div><div class='line' id='LC4548'> <span class="k">this</span><span class="p">.</span><span class="nx">TEXTAREA_PARENT</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">DIV</span><span class="p">);</span></div><div class='line' id='LC4549'><br/></div><div class='line' id='LC4550'> <span class="k">this</span><span class="p">.</span><span class="nx">$htContainer</span> <span class="o">=</span> <span class="nx">$</span><span class="p">(</span><span class="nx">DIV</span><span class="p">);</span></div><div class='line' id='LC4551'><span class="p">};</span></div><div class='line' id='LC4552'><br/></div><div class='line' id='LC4553'><span class="nx">HandsontableHandsontableEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">bindTemporaryEvents</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">td</span><span class="p">,</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4554'> <span class="kd">var</span> <span class="nx">parent</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC4555'><br/></div><div class='line' id='LC4556'> <span class="kd">var</span> <span class="nx">options</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC4557'> <span class="nx">colHeaders</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span></div><div class='line' id='LC4558'> <span class="nx">cells</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC4559'> <span class="k">return</span> <span class="p">{</span></div><div class='line' id='LC4560'> <span class="nx">readOnly</span><span class="o">:</span> <span class="kc">true</span></div><div class='line' id='LC4561'> <span class="p">}</span></div><div class='line' id='LC4562'> <span class="p">},</span></div><div class='line' id='LC4563'> <span class="nx">fillHandle</span><span class="o">:</span> <span class="kc">false</span><span class="p">,</span></div><div class='line' id='LC4564'> <span class="nx">width</span><span class="o">:</span> <span class="mi">2000</span><span class="p">,</span></div><div class='line' id='LC4565'> <span class="c1">//width: 'auto',</span></div><div class='line' id='LC4566'> <span class="nx">afterOnCellMouseDown</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC4567'> <span class="kd">var</span> <span class="nx">sel</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getSelected</span><span class="p">();</span></div><div class='line' id='LC4568'> <span class="nx">parent</span><span class="p">.</span><span class="nx">TEXTAREA</span><span class="p">.</span><span class="nx">value</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getDataAtCell</span><span class="p">(</span><span class="nx">sel</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="nx">sel</span><span class="p">[</span><span class="mi">1</span><span class="p">]);</span></div><div class='line' id='LC4569'> <span class="nx">parent</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">destroyEditor</span><span class="p">();</span></div><div class='line' id='LC4570'> <span class="p">},</span></div><div class='line' id='LC4571'> <span class="nx">beforeOnKeyDown</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4572'> <span class="k">switch</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">keyCode</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4573'> <span class="k">case</span> <span class="mi">27</span><span class="o">:</span> <span class="c1">//esc</span></div><div class='line' id='LC4574'> <span class="nx">parent</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">destroyEditor</span><span class="p">(</span><span class="kc">true</span><span class="p">);</span></div><div class='line' id='LC4575'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC4576'><br/></div><div class='line' id='LC4577'> <span class="k">case</span> <span class="mi">13</span><span class="o">:</span> <span class="c1">//enter</span></div><div class='line' id='LC4578'> <span class="kd">var</span> <span class="nx">sel</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getSelected</span><span class="p">();</span></div><div class='line' id='LC4579'> <span class="nx">parent</span><span class="p">.</span><span class="nx">TEXTAREA</span><span class="p">.</span><span class="nx">value</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getDataAtCell</span><span class="p">(</span><span class="nx">sel</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="nx">sel</span><span class="p">[</span><span class="mi">1</span><span class="p">]);</span></div><div class='line' id='LC4580'> <span class="nx">parent</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">destroyEditor</span><span class="p">();</span></div><div class='line' id='LC4581'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC4582'> <span class="p">}</span></div><div class='line' id='LC4583'> <span class="p">}</span></div><div class='line' id='LC4584'> <span class="p">};</span></div><div class='line' id='LC4585'><br/></div><div class='line' id='LC4586'> <span class="k">if</span> <span class="p">(</span><span class="nx">cellProperties</span><span class="p">.</span><span class="nx">handsontable</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4587'> <span class="nx">options</span> <span class="o">=</span> <span class="nx">$</span><span class="p">.</span><span class="nx">extend</span><span class="p">(</span><span class="nx">options</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">handsontable</span><span class="p">);</span></div><div class='line' id='LC4588'> <span class="p">}</span></div><div class='line' id='LC4589'><br/></div><div class='line' id='LC4590'> <span class="k">this</span><span class="p">.</span><span class="nx">$htContainer</span><span class="p">.</span><span class="nx">handsontable</span><span class="p">(</span><span class="nx">options</span><span class="p">);</span></div><div class='line' id='LC4591'><br/></div><div class='line' id='LC4592'> <span class="nx">HandsontableTextEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">bindTemporaryEvents</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">td</span><span class="p">,</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">);</span></div><div class='line' id='LC4593'><span class="p">};</span></div><div class='line' id='LC4594'><br/></div><div class='line' id='LC4595'><span class="nx">HandsontableHandsontableEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">beginEditing</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">useOriginalValue</span><span class="p">,</span> <span class="nx">suffix</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4596'> <span class="kd">var</span> <span class="nx">onBeginEditing</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSettings</span><span class="p">().</span><span class="nx">onBeginEditing</span><span class="p">;</span></div><div class='line' id='LC4597'> <span class="k">if</span> <span class="p">(</span><span class="nx">onBeginEditing</span> <span class="o">&&</span> <span class="nx">onBeginEditing</span><span class="p">()</span> <span class="o">===</span> <span class="kc">false</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4598'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC4599'> <span class="p">}</span></div><div class='line' id='LC4600'><br/></div><div class='line' id='LC4601'> <span class="nx">HandsontableTextEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">beginEditing</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">useOriginalValue</span><span class="p">,</span> <span class="nx">suffix</span><span class="p">);</span></div><div class='line' id='LC4602'><br/></div><div class='line' id='LC4603'> <span class="k">this</span><span class="p">.</span><span class="nx">$htContainer</span><span class="p">.</span><span class="nx">handsontable</span><span class="p">(</span><span class="s1">'render'</span><span class="p">);</span></div><div class='line' id='LC4604'> <span class="k">this</span><span class="p">.</span><span class="nx">$htContainer</span><span class="p">.</span><span class="nx">handsontable</span><span class="p">(</span><span class="s1">'selectCell'</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span></div><div class='line' id='LC4605'><span class="p">};</span></div><div class='line' id='LC4606'><br/></div><div class='line' id='LC4607'><span class="nx">HandsontableHandsontableEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">finishEditing</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">isCancelled</span><span class="p">,</span> <span class="nx">ctrlDown</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4608'> <span class="k">if</span> <span class="p">(</span><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">isDescendant</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="nb">document</span><span class="p">.</span><span class="nx">activeElement</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC4609'> <span class="c1">//var that = this;</span></div><div class='line' id='LC4610'> <span class="nx">setTimeout</span><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC4611'> <span class="c1">//that.instance.listen(); //return the focus to the cell must be done after destroyer to work in IE7-9</span></div><div class='line' id='LC4612'> <span class="p">},</span> <span class="mi">0</span><span class="p">);</span></div><div class='line' id='LC4613'> <span class="c1">//that.instance.listen(); //return the focus to the cell</span></div><div class='line' id='LC4614'> <span class="p">}</span></div><div class='line' id='LC4615'> <span class="k">this</span><span class="p">.</span><span class="nx">$htContainer</span><span class="p">.</span><span class="nx">handsontable</span><span class="p">(</span><span class="s1">'destroy'</span><span class="p">);</span></div><div class='line' id='LC4616'> <span class="nx">HandsontableTextEditorClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">finishEditing</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">isCancelled</span><span class="p">,</span> <span class="nx">ctrlDown</span><span class="p">);</span></div><div class='line' id='LC4617'><span class="p">};</span></div><div class='line' id='LC4618'><br/></div><div class='line' id='LC4619'><span class="cm">/**</span></div><div class='line' id='LC4620'><span class="cm"> * Handsontable editor</span></div><div class='line' id='LC4621'><span class="cm"> * @param {Object} instance Handsontable instance</span></div><div class='line' id='LC4622'><span class="cm"> * @param {Element} td Table cell where to render</span></div><div class='line' id='LC4623'><span class="cm"> * @param {Number} row</span></div><div class='line' id='LC4624'><span class="cm"> * @param {Number} col</span></div><div class='line' id='LC4625'><span class="cm"> * @param {String|Number} prop Row object property name</span></div><div class='line' id='LC4626'><span class="cm"> * @param value Original value (remember to escape unsafe HTML before inserting to DOM!)</span></div><div class='line' id='LC4627'><span class="cm"> * @param {Object} cellProperties Cell properites (shared by cell renderer and editor)</span></div><div class='line' id='LC4628'><span class="cm"> */</span></div><div class='line' id='LC4629'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">HandsontableEditor</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">td</span><span class="p">,</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4630'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">instance</span><span class="p">.</span><span class="nx">handsontableEditor</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4631'> <span class="nx">instance</span><span class="p">.</span><span class="nx">handsontableEditor</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">HandsontableHandsontableEditorClass</span><span class="p">(</span><span class="nx">instance</span><span class="p">);</span></div><div class='line' id='LC4632'> <span class="p">}</span></div><div class='line' id='LC4633'> <span class="nx">instance</span><span class="p">.</span><span class="nx">handsontableEditor</span><span class="p">.</span><span class="nx">bindTemporaryEvents</span><span class="p">(</span><span class="nx">td</span><span class="p">,</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">);</span></div><div class='line' id='LC4634'><br/></div><div class='line' id='LC4635'> <span class="nx">instance</span><span class="p">.</span><span class="nx">registerEditor</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">handsontableEditor</span><span class="p">;</span></div><div class='line' id='LC4636'><br/></div><div class='line' id='LC4637'> <span class="k">return</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">isCancelled</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4638'> <span class="nx">instance</span><span class="p">.</span><span class="nx">handsontableEditor</span><span class="p">.</span><span class="nx">finishEditing</span><span class="p">(</span><span class="nx">isCancelled</span><span class="p">);</span></div><div class='line' id='LC4639'> <span class="p">}</span></div><div class='line' id='LC4640'><span class="p">};</span></div><div class='line' id='LC4641'><br/></div><div class='line' id='LC4642'><span class="cm">/**</span></div><div class='line' id='LC4643'><span class="cm"> * Numeric cell validator</span></div><div class='line' id='LC4644'><span class="cm"> * @param {*} value - Value of edited cell</span></div><div class='line' id='LC4645'><span class="cm"> * @param {*} calback - Callback called with validation result</span></div><div class='line' id='LC4646'><span class="cm"> */</span></div><div class='line' id='LC4647'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">NumericValidator</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">value</span><span class="p">,</span> <span class="nx">callback</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4648'> <span class="nx">callback</span><span class="p">(</span><span class="sr">/^-?\d*\.?\d*$/</span><span class="p">.</span><span class="nx">test</span><span class="p">(</span><span class="nx">value</span><span class="p">));</span></div><div class='line' id='LC4649'><span class="p">}</span></div><div class='line' id='LC4650'><span class="cm">/**</span></div><div class='line' id='LC4651'><span class="cm"> * Function responsible for validation of autocomplete value</span></div><div class='line' id='LC4652'><span class="cm"> * @param {*} value - Value of edited cell</span></div><div class='line' id='LC4653'><span class="cm"> * @param {*} calback - Callback called with validation result</span></div><div class='line' id='LC4654'><span class="cm"> */</span></div><div class='line' id='LC4655'><span class="kd">var</span> <span class="nx">process</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">value</span><span class="p">,</span> <span class="nx">callback</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4656'><br/></div><div class='line' id='LC4657'> <span class="kd">var</span> <span class="nx">originalVal</span> <span class="o">=</span> <span class="nx">value</span><span class="p">;</span></div><div class='line' id='LC4658'> <span class="kd">var</span> <span class="nx">lowercaseVal</span> <span class="o">=</span> <span class="k">typeof</span> <span class="nx">originalVal</span> <span class="o">===</span> <span class="s1">'string'</span> <span class="o">?</span> <span class="nx">originalVal</span><span class="p">.</span><span class="nx">toLowerCase</span><span class="p">()</span> <span class="o">:</span> <span class="kc">null</span><span class="p">;</span></div><div class='line' id='LC4659'><br/></div><div class='line' id='LC4660'> <span class="k">return</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">source</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4661'> <span class="kd">var</span> <span class="nx">found</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC4662'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">s</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">slen</span> <span class="o">=</span> <span class="nx">source</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">s</span> <span class="o"><</span> <span class="nx">slen</span><span class="p">;</span> <span class="nx">s</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4663'> <span class="k">if</span> <span class="p">(</span><span class="nx">originalVal</span> <span class="o">===</span> <span class="nx">source</span><span class="p">[</span><span class="nx">s</span><span class="p">])</span> <span class="p">{</span></div><div class='line' id='LC4664'> <span class="nx">found</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span> <span class="c1">//perfect match</span></div><div class='line' id='LC4665'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC4666'> <span class="p">}</span></div><div class='line' id='LC4667'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">lowercaseVal</span> <span class="o">===</span> <span class="nx">source</span><span class="p">[</span><span class="nx">s</span><span class="p">].</span><span class="nx">toLowerCase</span><span class="p">())</span> <span class="p">{</span></div><div class='line' id='LC4668'> <span class="c1">// changes[i][3] = source[s]; //good match, fix the case << TODO?</span></div><div class='line' id='LC4669'> <span class="nx">found</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC4670'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC4671'> <span class="p">}</span></div><div class='line' id='LC4672'> <span class="p">}</span></div><div class='line' id='LC4673'><br/></div><div class='line' id='LC4674'> <span class="nx">callback</span><span class="p">(</span><span class="nx">found</span><span class="p">);</span></div><div class='line' id='LC4675'> <span class="p">}</span></div><div class='line' id='LC4676'><span class="p">};</span></div><div class='line' id='LC4677'><br/></div><div class='line' id='LC4678'><span class="cm">/**</span></div><div class='line' id='LC4679'><span class="cm"> * Autocomplete cell validator</span></div><div class='line' id='LC4680'><span class="cm"> * @param {*} value - Value of edited cell</span></div><div class='line' id='LC4681'><span class="cm"> * @param {*} calback - Callback called with validation result</span></div><div class='line' id='LC4682'><span class="cm"> */</span></div><div class='line' id='LC4683'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">AutocompleteValidator</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">value</span><span class="p">,</span> <span class="nx">callback</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4684'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">strict</span> <span class="o">&&</span> <span class="k">this</span><span class="p">.</span><span class="nx">source</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4685'> <span class="nx">$</span><span class="p">.</span><span class="nx">isFunction</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">source</span><span class="p">)</span> <span class="o">?</span> <span class="k">this</span><span class="p">.</span><span class="nx">source</span><span class="p">(</span><span class="nx">value</span><span class="p">,</span> <span class="nx">process</span><span class="p">(</span><span class="nx">value</span><span class="p">,</span> <span class="nx">callback</span><span class="p">))</span> <span class="o">:</span> <span class="nx">process</span><span class="p">(</span><span class="nx">value</span><span class="p">,</span> <span class="nx">callback</span><span class="p">)(</span><span class="k">this</span><span class="p">.</span><span class="nx">source</span><span class="p">);</span></div><div class='line' id='LC4686'> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC4687'> <span class="nx">callback</span><span class="p">(</span><span class="kc">true</span><span class="p">);</span></div><div class='line' id='LC4688'> <span class="p">}</span></div><div class='line' id='LC4689'><span class="p">}</span></div><div class='line' id='LC4690'><br/></div><div class='line' id='LC4691'><span class="cm">/**</span></div><div class='line' id='LC4692'><span class="cm"> * Cell type is just a shortcut for setting bunch of cellProperties (used in getCellMeta)</span></div><div class='line' id='LC4693'><span class="cm"> */</span></div><div class='line' id='LC4694'><br/></div><div class='line' id='LC4695'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">AutocompleteCell</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC4696'> <span class="nx">editor</span><span class="o">:</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">AutocompleteEditor</span><span class="p">,</span></div><div class='line' id='LC4697'> <span class="nx">renderer</span><span class="o">:</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">AutocompleteRenderer</span><span class="p">,</span></div><div class='line' id='LC4698'> <span class="nx">validator</span><span class="o">:</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">AutocompleteValidator</span></div><div class='line' id='LC4699'><span class="p">};</span></div><div class='line' id='LC4700'><br/></div><div class='line' id='LC4701'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">CheckboxCell</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC4702'> <span class="nx">editor</span><span class="o">:</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">CheckboxEditor</span><span class="p">,</span></div><div class='line' id='LC4703'> <span class="nx">renderer</span><span class="o">:</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">CheckboxRenderer</span></div><div class='line' id='LC4704'><span class="p">};</span></div><div class='line' id='LC4705'><br/></div><div class='line' id='LC4706'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">TextCell</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC4707'> <span class="nx">editor</span><span class="o">:</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">TextEditor</span><span class="p">,</span></div><div class='line' id='LC4708'> <span class="nx">renderer</span><span class="o">:</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">TextRenderer</span></div><div class='line' id='LC4709'><span class="p">};</span></div><div class='line' id='LC4710'><br/></div><div class='line' id='LC4711'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">NumericCell</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC4712'> <span class="nx">editor</span><span class="o">:</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">TextEditor</span><span class="p">,</span></div><div class='line' id='LC4713'> <span class="nx">renderer</span><span class="o">:</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">NumericRenderer</span><span class="p">,</span></div><div class='line' id='LC4714'> <span class="nx">validator</span><span class="o">:</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">NumericValidator</span><span class="p">,</span></div><div class='line' id='LC4715'> <span class="nx">dataType</span><span class="o">:</span> <span class="s1">'number'</span></div><div class='line' id='LC4716'><span class="p">};</span></div><div class='line' id='LC4717'><br/></div><div class='line' id='LC4718'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">DateCell</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC4719'> <span class="nx">editor</span><span class="o">:</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">DateEditor</span><span class="p">,</span></div><div class='line' id='LC4720'> <span class="nx">renderer</span><span class="o">:</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">AutocompleteRenderer</span> <span class="c1">//displays small gray arrow on right side of the cell</span></div><div class='line' id='LC4721'><span class="p">};</span></div><div class='line' id='LC4722'><br/></div><div class='line' id='LC4723'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">HandsontableCell</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC4724'> <span class="nx">editor</span><span class="o">:</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">HandsontableEditor</span><span class="p">,</span></div><div class='line' id='LC4725'> <span class="nx">renderer</span><span class="o">:</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">AutocompleteRenderer</span> <span class="c1">//displays small gray arrow on right side of the cell</span></div><div class='line' id='LC4726'><span class="p">};</span></div><div class='line' id='LC4727'><br/></div><div class='line' id='LC4728'><span class="c1">//here setup the friendly aliases that are used by cellProperties.type</span></div><div class='line' id='LC4729'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">cellTypes</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC4730'> <span class="nx">text</span><span class="o">:</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">TextCell</span><span class="p">,</span></div><div class='line' id='LC4731'> <span class="nx">date</span><span class="o">:</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">DateCell</span><span class="p">,</span></div><div class='line' id='LC4732'> <span class="nx">numeric</span><span class="o">:</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">NumericCell</span><span class="p">,</span></div><div class='line' id='LC4733'> <span class="nx">checkbox</span><span class="o">:</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">CheckboxCell</span><span class="p">,</span></div><div class='line' id='LC4734'> <span class="nx">autocomplete</span><span class="o">:</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">AutocompleteCell</span><span class="p">,</span></div><div class='line' id='LC4735'> <span class="nx">handsontable</span><span class="o">:</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">HandsontableCell</span></div><div class='line' id='LC4736'><span class="p">};</span></div><div class='line' id='LC4737'><br/></div><div class='line' id='LC4738'><span class="c1">//here setup the friendly aliases that are used by cellProperties.renderer and cellProperties.editor</span></div><div class='line' id='LC4739'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">cellLookup</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC4740'> <span class="nx">renderer</span><span class="o">:</span> <span class="p">{</span></div><div class='line' id='LC4741'> <span class="nx">text</span><span class="o">:</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">TextRenderer</span><span class="p">,</span></div><div class='line' id='LC4742'> <span class="nx">numeric</span><span class="o">:</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">NumericRenderer</span><span class="p">,</span></div><div class='line' id='LC4743'> <span class="nx">checkbox</span><span class="o">:</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">CheckboxRenderer</span><span class="p">,</span></div><div class='line' id='LC4744'> <span class="nx">autocomplete</span><span class="o">:</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">AutocompleteRenderer</span></div><div class='line' id='LC4745'> <span class="p">},</span></div><div class='line' id='LC4746'> <span class="nx">editor</span><span class="o">:</span> <span class="p">{</span></div><div class='line' id='LC4747'> <span class="nx">text</span><span class="o">:</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">TextEditor</span><span class="p">,</span></div><div class='line' id='LC4748'> <span class="nx">date</span><span class="o">:</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">DateEditor</span><span class="p">,</span></div><div class='line' id='LC4749'> <span class="nx">checkbox</span><span class="o">:</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">CheckboxEditor</span><span class="p">,</span></div><div class='line' id='LC4750'> <span class="nx">autocomplete</span><span class="o">:</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">AutocompleteEditor</span><span class="p">,</span></div><div class='line' id='LC4751'> <span class="nx">handsontable</span><span class="o">:</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">HandsontableEditor</span></div><div class='line' id='LC4752'> <span class="p">},</span></div><div class='line' id='LC4753'> <span class="nx">validator</span><span class="o">:</span> <span class="p">{</span></div><div class='line' id='LC4754'> <span class="nx">numeric</span><span class="o">:</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">NumericValidator</span><span class="p">,</span></div><div class='line' id='LC4755'> <span class="nx">autocomplete</span><span class="o">:</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">AutocompleteValidator</span></div><div class='line' id='LC4756'> <span class="p">}</span></div><div class='line' id='LC4757'><span class="p">};</span></div><div class='line' id='LC4758'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHookClass</span> <span class="o">=</span> <span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC4759'><br/></div><div class='line' id='LC4760'> <span class="kd">var</span> <span class="nx">Hooks</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC4761'> <span class="k">return</span> <span class="p">{</span></div><div class='line' id='LC4762'> <span class="c1">// Hooks</span></div><div class='line' id='LC4763'> <span class="nx">beforeInitWalkontable</span><span class="o">:</span> <span class="p">[],</span></div><div class='line' id='LC4764'><br/></div><div class='line' id='LC4765'> <span class="nx">beforeInit</span><span class="o">:</span> <span class="p">[],</span></div><div class='line' id='LC4766'> <span class="nx">beforeRender</span><span class="o">:</span> <span class="p">[],</span></div><div class='line' id='LC4767'> <span class="nx">beforeChange</span><span class="o">:</span> <span class="p">[],</span></div><div class='line' id='LC4768'> <span class="nx">beforeValidate</span><span class="o">:</span> <span class="p">[],</span></div><div class='line' id='LC4769'> <span class="nx">beforeGet</span><span class="o">:</span> <span class="p">[],</span></div><div class='line' id='LC4770'> <span class="nx">beforeSet</span><span class="o">:</span> <span class="p">[],</span></div><div class='line' id='LC4771'> <span class="nx">beforeGetCellMeta</span><span class="o">:</span> <span class="p">[],</span></div><div class='line' id='LC4772'> <span class="nx">beforeAutofill</span><span class="o">:</span> <span class="p">[],</span></div><div class='line' id='LC4773'> <span class="nx">beforeKeyDown</span><span class="o">:</span> <span class="p">[],</span></div><div class='line' id='LC4774'><br/></div><div class='line' id='LC4775'> <span class="nx">afterInit</span> <span class="o">:</span> <span class="p">[],</span></div><div class='line' id='LC4776'> <span class="nx">afterLoadData</span> <span class="o">:</span> <span class="p">[],</span></div><div class='line' id='LC4777'> <span class="nx">afterUpdateSettings</span><span class="o">:</span> <span class="p">[],</span></div><div class='line' id='LC4778'> <span class="nx">afterRender</span> <span class="o">:</span> <span class="p">[],</span></div><div class='line' id='LC4779'> <span class="nx">afterChange</span> <span class="o">:</span> <span class="p">[],</span></div><div class='line' id='LC4780'> <span class="nx">afterValidate</span><span class="o">:</span> <span class="p">[],</span></div><div class='line' id='LC4781'> <span class="nx">afterGetCellMeta</span><span class="o">:</span> <span class="p">[],</span></div><div class='line' id='LC4782'> <span class="nx">afterGetColHeader</span><span class="o">:</span> <span class="p">[],</span></div><div class='line' id='LC4783'> <span class="nx">afterGetColWidth</span><span class="o">:</span> <span class="p">[],</span></div><div class='line' id='LC4784'> <span class="nx">afterDestroy</span><span class="o">:</span> <span class="p">[],</span></div><div class='line' id='LC4785'> <span class="nx">afterRemoveRow</span><span class="o">:</span> <span class="p">[],</span></div><div class='line' id='LC4786'> <span class="nx">afterCreateRow</span><span class="o">:</span> <span class="p">[],</span></div><div class='line' id='LC4787'> <span class="nx">afterRemoveCol</span><span class="o">:</span> <span class="p">[],</span></div><div class='line' id='LC4788'> <span class="nx">afterCreateCol</span><span class="o">:</span> <span class="p">[],</span></div><div class='line' id='LC4789'> <span class="nx">afterColumnResize</span><span class="o">:</span> <span class="p">[],</span></div><div class='line' id='LC4790'> <span class="nx">afterColumnMove</span><span class="o">:</span> <span class="p">[],</span></div><div class='line' id='LC4791'> <span class="nx">afterDeselect</span><span class="o">:</span> <span class="p">[],</span></div><div class='line' id='LC4792'> <span class="nx">afterSelection</span><span class="o">:</span> <span class="p">[],</span></div><div class='line' id='LC4793'> <span class="nx">afterSelectionByProp</span><span class="o">:</span> <span class="p">[],</span></div><div class='line' id='LC4794'> <span class="nx">afterSelectionEnd</span><span class="o">:</span> <span class="p">[],</span></div><div class='line' id='LC4795'> <span class="nx">afterSelectionEndByProp</span><span class="o">:</span> <span class="p">[],</span></div><div class='line' id='LC4796'> <span class="nx">afterCopyLimit</span><span class="o">:</span> <span class="p">[],</span></div><div class='line' id='LC4797'><br/></div><div class='line' id='LC4798'> <span class="c1">// Modifiers</span></div><div class='line' id='LC4799'> <span class="nx">modifyCol</span><span class="o">:</span> <span class="p">[]</span></div><div class='line' id='LC4800'> <span class="p">}</span></div><div class='line' id='LC4801'> <span class="p">};</span></div><div class='line' id='LC4802'><br/></div><div class='line' id='LC4803'> <span class="kd">var</span> <span class="nx">legacy</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC4804'> <span class="nx">onBeforeChange</span><span class="o">:</span> <span class="s2">"beforeChange"</span><span class="p">,</span></div><div class='line' id='LC4805'> <span class="nx">onChange</span><span class="o">:</span> <span class="s2">"afterChange"</span><span class="p">,</span></div><div class='line' id='LC4806'> <span class="nx">onCreateRow</span><span class="o">:</span> <span class="s2">"afterCreateRow"</span><span class="p">,</span></div><div class='line' id='LC4807'> <span class="nx">onCreateCol</span><span class="o">:</span> <span class="s2">"afterCreateCol"</span><span class="p">,</span></div><div class='line' id='LC4808'> <span class="nx">onSelection</span><span class="o">:</span> <span class="s2">"afterSelection"</span><span class="p">,</span></div><div class='line' id='LC4809'> <span class="nx">onCopyLimit</span><span class="o">:</span> <span class="s2">"afterCopyLimit"</span><span class="p">,</span></div><div class='line' id='LC4810'> <span class="nx">onSelectionEnd</span><span class="o">:</span> <span class="s2">"afterSelectionEnd"</span><span class="p">,</span></div><div class='line' id='LC4811'> <span class="nx">onSelectionByProp</span><span class="o">:</span> <span class="s2">"afterSelectionByProp"</span><span class="p">,</span></div><div class='line' id='LC4812'> <span class="nx">onSelectionEndByProp</span><span class="o">:</span> <span class="s2">"afterSelectionEndByProp"</span></div><div class='line' id='LC4813'> <span class="p">};</span></div><div class='line' id='LC4814'><br/></div><div class='line' id='LC4815'> <span class="kd">function</span> <span class="nx">PluginHookClass</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC4816'><br/></div><div class='line' id='LC4817'> <span class="k">this</span><span class="p">.</span><span class="nx">hooks</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC4818'> <span class="nx">once</span><span class="o">:</span> <span class="nx">Hooks</span><span class="p">(),</span></div><div class='line' id='LC4819'> <span class="nx">persistent</span><span class="o">:</span> <span class="nx">Hooks</span><span class="p">()</span></div><div class='line' id='LC4820'> <span class="p">};</span></div><div class='line' id='LC4821'><br/></div><div class='line' id='LC4822'> <span class="k">this</span><span class="p">.</span><span class="nx">legacy</span> <span class="o">=</span> <span class="nx">legacy</span><span class="p">;</span></div><div class='line' id='LC4823'><br/></div><div class='line' id='LC4824'> <span class="p">}</span></div><div class='line' id='LC4825'><br/></div><div class='line' id='LC4826'> <span class="kd">var</span> <span class="nx">addHook</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">type</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4827'> <span class="k">return</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">key</span><span class="p">,</span> <span class="nx">fn</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4828'> <span class="c1">// provide support for old versions of HOT</span></div><div class='line' id='LC4829'> <span class="k">if</span> <span class="p">(</span><span class="nx">key</span> <span class="k">in</span> <span class="nx">legacy</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4830'> <span class="nx">key</span> <span class="o">=</span> <span class="nx">legacy</span><span class="p">[</span><span class="nx">key</span><span class="p">];</span></div><div class='line' id='LC4831'> <span class="p">}</span></div><div class='line' id='LC4832'><br/></div><div class='line' id='LC4833'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="k">this</span><span class="p">.</span><span class="nx">hooks</span><span class="p">[</span><span class="nx">type</span><span class="p">][</span><span class="nx">key</span><span class="p">]</span> <span class="o">===</span> <span class="s2">"undefined"</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4834'> <span class="k">this</span><span class="p">.</span><span class="nx">hooks</span><span class="p">[</span><span class="nx">type</span><span class="p">][</span><span class="nx">key</span><span class="p">]</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC4835'> <span class="p">}</span></div><div class='line' id='LC4836'><br/></div><div class='line' id='LC4837'> <span class="k">if</span> <span class="p">(</span><span class="nx">fn</span> <span class="k">instanceof</span> <span class="nb">Array</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4838'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">len</span> <span class="o">=</span> <span class="nx">fn</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">len</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4839'> <span class="k">this</span><span class="p">.</span><span class="nx">hooks</span><span class="p">[</span><span class="nx">type</span><span class="p">][</span><span class="nx">key</span><span class="p">].</span><span class="nx">push</span><span class="p">(</span><span class="nx">fn</span><span class="p">[</span><span class="nx">i</span><span class="p">]);</span></div><div class='line' id='LC4840'> <span class="p">}</span></div><div class='line' id='LC4841'> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC4842'> <span class="k">this</span><span class="p">.</span><span class="nx">hooks</span><span class="p">[</span><span class="nx">type</span><span class="p">][</span><span class="nx">key</span><span class="p">].</span><span class="nx">push</span><span class="p">(</span><span class="nx">fn</span><span class="p">);</span></div><div class='line' id='LC4843'> <span class="p">}</span></div><div class='line' id='LC4844'><br/></div><div class='line' id='LC4845'> <span class="k">return</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC4846'> <span class="p">};</span></div><div class='line' id='LC4847'> <span class="p">};</span></div><div class='line' id='LC4848'><br/></div><div class='line' id='LC4849'> <span class="nx">PluginHookClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">add</span> <span class="o">=</span> <span class="nx">addHook</span><span class="p">(</span><span class="s1">'persistent'</span><span class="p">);</span></div><div class='line' id='LC4850'> <span class="nx">PluginHookClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">once</span> <span class="o">=</span> <span class="nx">addHook</span><span class="p">(</span><span class="s1">'once'</span><span class="p">);</span></div><div class='line' id='LC4851'><br/></div><div class='line' id='LC4852'> <span class="nx">PluginHookClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">remove</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">key</span><span class="p">,</span> <span class="nx">fn</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4853'> <span class="kd">var</span> <span class="nx">status</span> <span class="o">=</span> <span class="kc">false</span></div><div class='line' id='LC4854'> <span class="p">,</span> <span class="nx">hookTypes</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'persistent'</span><span class="p">,</span> <span class="s1">'once'</span><span class="p">]</span></div><div class='line' id='LC4855'> <span class="p">,</span> <span class="nx">type</span><span class="p">,</span> <span class="nx">x</span><span class="p">,</span> <span class="nx">lenx</span><span class="p">,</span> <span class="nx">i</span><span class="p">,</span> <span class="nx">leni</span><span class="p">;</span></div><div class='line' id='LC4856'><br/></div><div class='line' id='LC4857'> <span class="c1">// provide support for old versions of HOT</span></div><div class='line' id='LC4858'> <span class="k">if</span> <span class="p">(</span><span class="nx">key</span> <span class="k">in</span> <span class="nx">legacy</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4859'> <span class="nx">key</span> <span class="o">=</span> <span class="nx">legacy</span><span class="p">[</span><span class="nx">key</span><span class="p">];</span></div><div class='line' id='LC4860'> <span class="p">}</span></div><div class='line' id='LC4861'><br/></div><div class='line' id='LC4862'> <span class="k">for</span> <span class="p">(</span><span class="nx">x</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">lenx</span> <span class="o">=</span> <span class="nx">hookTypes</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">x</span> <span class="o"><</span> <span class="nx">lenx</span><span class="p">;</span> <span class="nx">x</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4863'> <span class="nx">type</span> <span class="o">=</span> <span class="nx">hookTypes</span><span class="p">[</span><span class="nx">x</span><span class="p">];</span></div><div class='line' id='LC4864'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="k">this</span><span class="p">.</span><span class="nx">hooks</span><span class="p">[</span><span class="nx">type</span><span class="p">][</span><span class="nx">key</span><span class="p">]</span> <span class="o">!==</span> <span class="s1">'undefined'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4865'><br/></div><div class='line' id='LC4866'> <span class="k">for</span> <span class="p">(</span><span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">leni</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">hooks</span><span class="p">[</span><span class="nx">type</span><span class="p">][</span><span class="nx">key</span><span class="p">].</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">leni</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4867'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">hooks</span><span class="p">[</span><span class="nx">type</span><span class="p">][</span><span class="nx">key</span><span class="p">][</span><span class="nx">i</span><span class="p">]</span> <span class="o">==</span> <span class="nx">fn</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4868'> <span class="k">this</span><span class="p">.</span><span class="nx">hooks</span><span class="p">[</span><span class="nx">type</span><span class="p">][</span><span class="nx">key</span><span class="p">].</span><span class="nx">splice</span><span class="p">(</span><span class="nx">i</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span></div><div class='line' id='LC4869'> <span class="nx">status</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC4870'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC4871'> <span class="p">}</span></div><div class='line' id='LC4872'> <span class="p">}</span></div><div class='line' id='LC4873'><br/></div><div class='line' id='LC4874'> <span class="p">}</span></div><div class='line' id='LC4875'> <span class="p">}</span></div><div class='line' id='LC4876'><br/></div><div class='line' id='LC4877'> <span class="k">return</span> <span class="nx">status</span><span class="p">;</span></div><div class='line' id='LC4878'> <span class="p">};</span></div><div class='line' id='LC4879'><br/></div><div class='line' id='LC4880'> <span class="nx">PluginHookClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">run</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">key</span><span class="p">,</span> <span class="nx">p1</span><span class="p">,</span> <span class="nx">p2</span><span class="p">,</span> <span class="nx">p3</span><span class="p">,</span> <span class="nx">p4</span><span class="p">,</span> <span class="nx">p5</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4881'> <span class="kd">var</span> <span class="nx">hookTypes</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'persistent'</span><span class="p">,</span> <span class="s1">'once'</span><span class="p">]</span></div><div class='line' id='LC4882'> <span class="p">,</span> <span class="nx">type</span><span class="p">,</span> <span class="nx">x</span><span class="p">,</span> <span class="nx">lenx</span><span class="p">,</span> <span class="nx">i</span><span class="p">,</span> <span class="nx">leni</span><span class="p">;</span></div><div class='line' id='LC4883'><br/></div><div class='line' id='LC4884'> <span class="c1">// provide support for old versions of HOT</span></div><div class='line' id='LC4885'> <span class="k">if</span> <span class="p">(</span><span class="nx">key</span> <span class="k">in</span> <span class="nx">legacy</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4886'> <span class="nx">key</span> <span class="o">=</span> <span class="nx">legacy</span><span class="p">[</span><span class="nx">key</span><span class="p">];</span></div><div class='line' id='LC4887'> <span class="p">}</span></div><div class='line' id='LC4888'><br/></div><div class='line' id='LC4889'> <span class="c1">//performance considerations - http://jsperf.com/call-vs-apply-for-a-plugin-architecture</span></div><div class='line' id='LC4890'> <span class="k">for</span> <span class="p">(</span><span class="nx">x</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">lenx</span> <span class="o">=</span> <span class="nx">hookTypes</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">x</span> <span class="o"><</span> <span class="nx">lenx</span><span class="p">;</span> <span class="nx">x</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4891'> <span class="nx">type</span> <span class="o">=</span> <span class="nx">hookTypes</span><span class="p">[</span><span class="nx">x</span><span class="p">];</span></div><div class='line' id='LC4892'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="k">this</span><span class="p">.</span><span class="nx">hooks</span><span class="p">[</span><span class="nx">type</span><span class="p">][</span><span class="nx">key</span><span class="p">]</span> <span class="o">!==</span> <span class="s1">'undefined'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4893'><br/></div><div class='line' id='LC4894'> <span class="k">for</span> <span class="p">(</span><span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">leni</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">hooks</span><span class="p">[</span><span class="nx">type</span><span class="p">][</span><span class="nx">key</span><span class="p">].</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">leni</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4895'> <span class="k">this</span><span class="p">.</span><span class="nx">hooks</span><span class="p">[</span><span class="nx">type</span><span class="p">][</span><span class="nx">key</span><span class="p">][</span><span class="nx">i</span><span class="p">].</span><span class="nx">call</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">p1</span><span class="p">,</span> <span class="nx">p2</span><span class="p">,</span> <span class="nx">p3</span><span class="p">,</span> <span class="nx">p4</span><span class="p">,</span> <span class="nx">p5</span><span class="p">);</span></div><div class='line' id='LC4896'><br/></div><div class='line' id='LC4897'> <span class="k">if</span> <span class="p">(</span><span class="nx">type</span> <span class="o">===</span> <span class="s1">'once'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4898'> <span class="k">this</span><span class="p">.</span><span class="nx">hooks</span><span class="p">[</span><span class="nx">type</span><span class="p">][</span><span class="nx">key</span><span class="p">].</span><span class="nx">splice</span><span class="p">(</span><span class="nx">i</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span></div><div class='line' id='LC4899'> <span class="nx">leni</span><span class="o">--</span><span class="p">;</span></div><div class='line' id='LC4900'> <span class="nx">i</span><span class="o">--</span><span class="p">;</span></div><div class='line' id='LC4901'> <span class="p">}</span></div><div class='line' id='LC4902'> <span class="p">}</span></div><div class='line' id='LC4903'><br/></div><div class='line' id='LC4904'> <span class="p">}</span></div><div class='line' id='LC4905'> <span class="p">}</span></div><div class='line' id='LC4906'> <span class="p">};</span></div><div class='line' id='LC4907'><br/></div><div class='line' id='LC4908'> <span class="nx">PluginHookClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">execute</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">key</span><span class="p">,</span> <span class="nx">p1</span><span class="p">,</span> <span class="nx">p2</span><span class="p">,</span> <span class="nx">p3</span><span class="p">,</span> <span class="nx">p4</span><span class="p">,</span> <span class="nx">p5</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4909'> <span class="kd">var</span> <span class="nx">hookTypes</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'persistent'</span><span class="p">,</span> <span class="s1">'once'</span><span class="p">]</span></div><div class='line' id='LC4910'> <span class="p">,</span> <span class="nx">type</span><span class="p">,</span> <span class="nx">x</span><span class="p">,</span> <span class="nx">lenx</span><span class="p">,</span> <span class="nx">i</span><span class="p">,</span> <span class="nx">leni</span><span class="p">,</span> <span class="nx">res</span><span class="p">;</span></div><div class='line' id='LC4911'><br/></div><div class='line' id='LC4912'> <span class="c1">// provide support for old versions of HOT</span></div><div class='line' id='LC4913'> <span class="k">if</span> <span class="p">(</span><span class="nx">key</span> <span class="k">in</span> <span class="nx">legacy</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4914'> <span class="nx">key</span> <span class="o">=</span> <span class="nx">legacy</span><span class="p">[</span><span class="nx">key</span><span class="p">];</span></div><div class='line' id='LC4915'> <span class="p">}</span></div><div class='line' id='LC4916'><br/></div><div class='line' id='LC4917'> <span class="c1">//performance considerations - http://jsperf.com/call-vs-apply-for-a-plugin-architecture</span></div><div class='line' id='LC4918'> <span class="k">for</span> <span class="p">(</span><span class="nx">x</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">lenx</span> <span class="o">=</span> <span class="nx">hookTypes</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">x</span> <span class="o"><</span> <span class="nx">lenx</span><span class="p">;</span> <span class="nx">x</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4919'> <span class="nx">type</span> <span class="o">=</span> <span class="nx">hookTypes</span><span class="p">[</span><span class="nx">x</span><span class="p">];</span></div><div class='line' id='LC4920'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="k">this</span><span class="p">.</span><span class="nx">hooks</span><span class="p">[</span><span class="nx">type</span><span class="p">][</span><span class="nx">key</span><span class="p">]</span> <span class="o">!==</span> <span class="s1">'undefined'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4921'><br/></div><div class='line' id='LC4922'> <span class="k">for</span> <span class="p">(</span><span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">leni</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">hooks</span><span class="p">[</span><span class="nx">type</span><span class="p">][</span><span class="nx">key</span><span class="p">].</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">leni</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4923'><br/></div><div class='line' id='LC4924'> <span class="nx">res</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">hooks</span><span class="p">[</span><span class="nx">type</span><span class="p">][</span><span class="nx">key</span><span class="p">][</span><span class="nx">i</span><span class="p">].</span><span class="nx">call</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">p1</span><span class="p">,</span> <span class="nx">p2</span><span class="p">,</span> <span class="nx">p3</span><span class="p">,</span> <span class="nx">p4</span><span class="p">,</span> <span class="nx">p5</span><span class="p">);</span></div><div class='line' id='LC4925'> <span class="k">if</span> <span class="p">(</span><span class="nx">res</span> <span class="o">!==</span> <span class="k">void</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4926'> <span class="nx">p1</span> <span class="o">=</span> <span class="nx">res</span><span class="p">;</span></div><div class='line' id='LC4927'> <span class="p">}</span></div><div class='line' id='LC4928'><br/></div><div class='line' id='LC4929'> <span class="k">if</span> <span class="p">(</span><span class="nx">type</span> <span class="o">===</span> <span class="s1">'once'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4930'> <span class="k">this</span><span class="p">.</span><span class="nx">hooks</span><span class="p">[</span><span class="nx">type</span><span class="p">][</span><span class="nx">key</span><span class="p">].</span><span class="nx">splice</span><span class="p">(</span><span class="nx">i</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span></div><div class='line' id='LC4931'> <span class="nx">leni</span><span class="o">--</span><span class="p">;</span></div><div class='line' id='LC4932'> <span class="nx">i</span><span class="o">--</span><span class="p">;</span></div><div class='line' id='LC4933'> <span class="p">}</span></div><div class='line' id='LC4934'> <span class="p">}</span></div><div class='line' id='LC4935'><br/></div><div class='line' id='LC4936'> <span class="p">}</span></div><div class='line' id='LC4937'> <span class="p">}</span></div><div class='line' id='LC4938'><br/></div><div class='line' id='LC4939'> <span class="k">return</span> <span class="nx">p1</span><span class="p">;</span></div><div class='line' id='LC4940'> <span class="p">};</span></div><div class='line' id='LC4941'><br/></div><div class='line' id='LC4942'> <span class="k">return</span> <span class="nx">PluginHookClass</span><span class="p">;</span></div><div class='line' id='LC4943'><br/></div><div class='line' id='LC4944'><span class="p">})();</span></div><div class='line' id='LC4945'><br/></div><div class='line' id='LC4946'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHookClass</span><span class="p">();</span></div><div class='line' id='LC4947'><br/></div><div class='line' id='LC4948'><span class="kd">function</span> <span class="nx">HandsontableAutoColumnSize</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC4949'> <span class="kd">var</span> <span class="nx">that</span> <span class="o">=</span> <span class="k">this</span></div><div class='line' id='LC4950'> <span class="p">,</span> <span class="nx">instance</span></div><div class='line' id='LC4951'> <span class="p">,</span> <span class="nx">sampleCount</span> <span class="o">=</span> <span class="mi">5</span><span class="p">;</span> <span class="c1">//number of samples to take of each value length</span></div><div class='line' id='LC4952'><br/></div><div class='line' id='LC4953'> <span class="k">this</span><span class="p">.</span><span class="nx">beforeInit</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC4954'> <span class="k">this</span><span class="p">.</span><span class="nx">autoColumnWidths</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC4955'> <span class="k">this</span><span class="p">.</span><span class="nx">autoColumnSizeTmp</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC4956'> <span class="nx">thead</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span></div><div class='line' id='LC4957'> <span class="nx">theadTh</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span></div><div class='line' id='LC4958'> <span class="nx">theadStyle</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span></div><div class='line' id='LC4959'> <span class="nx">tbody</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span></div><div class='line' id='LC4960'> <span class="nx">tbodyTd</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span></div><div class='line' id='LC4961'> <span class="nx">noRenderer</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span></div><div class='line' id='LC4962'> <span class="nx">noRendererTd</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span></div><div class='line' id='LC4963'> <span class="nx">renderer</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span></div><div class='line' id='LC4964'> <span class="nx">rendererTd</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span></div><div class='line' id='LC4965'> <span class="nx">container</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span></div><div class='line' id='LC4966'> <span class="nx">containerStyle</span><span class="o">:</span> <span class="kc">null</span></div><div class='line' id='LC4967'> <span class="p">};</span></div><div class='line' id='LC4968'> <span class="p">};</span></div><div class='line' id='LC4969'><br/></div><div class='line' id='LC4970'> <span class="k">this</span><span class="p">.</span><span class="nx">determineColumnWidth</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">col</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4971'> <span class="kd">var</span> <span class="nx">tmp</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">autoColumnSizeTmp</span></div><div class='line' id='LC4972'> <span class="p">,</span> <span class="nx">d</span><span class="p">;</span></div><div class='line' id='LC4973'><br/></div><div class='line' id='LC4974'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">tmp</span><span class="p">.</span><span class="nx">container</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC4975'> <span class="nx">d</span> <span class="o">=</span> <span class="nb">document</span><span class="p">;</span></div><div class='line' id='LC4976'><br/></div><div class='line' id='LC4977'> <span class="nx">tmp</span><span class="p">.</span><span class="nx">thead</span> <span class="o">=</span> <span class="nx">d</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'table'</span><span class="p">);</span></div><div class='line' id='LC4978'> <span class="nx">tmp</span><span class="p">.</span><span class="nx">thead</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">d</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'thead'</span><span class="p">)).</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">d</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'tr'</span><span class="p">)).</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">d</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'th'</span><span class="p">));</span></div><div class='line' id='LC4979'> <span class="nx">tmp</span><span class="p">.</span><span class="nx">theadTh</span> <span class="o">=</span> <span class="nx">tmp</span><span class="p">.</span><span class="nx">thead</span><span class="p">.</span><span class="nx">getElementsByTagName</span><span class="p">(</span><span class="s1">'th'</span><span class="p">)[</span><span class="mi">0</span><span class="p">];</span></div><div class='line' id='LC4980'><br/></div><div class='line' id='LC4981'> <span class="nx">tmp</span><span class="p">.</span><span class="nx">thead</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="s1">'htTable'</span><span class="p">;</span></div><div class='line' id='LC4982'> <span class="nx">tmp</span><span class="p">.</span><span class="nx">theadStyle</span> <span class="o">=</span> <span class="nx">tmp</span><span class="p">.</span><span class="nx">thead</span><span class="p">.</span><span class="nx">style</span><span class="p">;</span></div><div class='line' id='LC4983'> <span class="nx">tmp</span><span class="p">.</span><span class="nx">theadStyle</span><span class="p">.</span><span class="nx">tableLayout</span> <span class="o">=</span> <span class="s1">'auto'</span><span class="p">;</span></div><div class='line' id='LC4984'> <span class="nx">tmp</span><span class="p">.</span><span class="nx">theadStyle</span><span class="p">.</span><span class="nx">width</span> <span class="o">=</span> <span class="s1">'auto'</span><span class="p">;</span></div><div class='line' id='LC4985'><br/></div><div class='line' id='LC4986'> <span class="nx">tmp</span><span class="p">.</span><span class="nx">tbody</span> <span class="o">=</span> <span class="nx">tmp</span><span class="p">.</span><span class="nx">thead</span><span class="p">.</span><span class="nx">cloneNode</span><span class="p">(</span><span class="kc">false</span><span class="p">);</span></div><div class='line' id='LC4987'> <span class="nx">tmp</span><span class="p">.</span><span class="nx">tbody</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">d</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'tbody'</span><span class="p">)).</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">d</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'tr'</span><span class="p">)).</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">d</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'td'</span><span class="p">));</span></div><div class='line' id='LC4988'> <span class="nx">tmp</span><span class="p">.</span><span class="nx">tbodyTd</span> <span class="o">=</span> <span class="nx">tmp</span><span class="p">.</span><span class="nx">tbody</span><span class="p">.</span><span class="nx">getElementsByTagName</span><span class="p">(</span><span class="s1">'td'</span><span class="p">)[</span><span class="mi">0</span><span class="p">];</span></div><div class='line' id='LC4989'><br/></div><div class='line' id='LC4990'> <span class="nx">tmp</span><span class="p">.</span><span class="nx">noRenderer</span> <span class="o">=</span> <span class="nx">tmp</span><span class="p">.</span><span class="nx">tbody</span><span class="p">.</span><span class="nx">cloneNode</span><span class="p">(</span><span class="kc">true</span><span class="p">);</span></div><div class='line' id='LC4991'> <span class="nx">tmp</span><span class="p">.</span><span class="nx">noRendererTd</span> <span class="o">=</span> <span class="nx">tmp</span><span class="p">.</span><span class="nx">noRenderer</span><span class="p">.</span><span class="nx">getElementsByTagName</span><span class="p">(</span><span class="s1">'td'</span><span class="p">)[</span><span class="mi">0</span><span class="p">];</span></div><div class='line' id='LC4992'><br/></div><div class='line' id='LC4993'> <span class="nx">tmp</span><span class="p">.</span><span class="nx">renderer</span> <span class="o">=</span> <span class="nx">tmp</span><span class="p">.</span><span class="nx">tbody</span><span class="p">.</span><span class="nx">cloneNode</span><span class="p">(</span><span class="kc">true</span><span class="p">);</span></div><div class='line' id='LC4994'> <span class="nx">tmp</span><span class="p">.</span><span class="nx">rendererTd</span> <span class="o">=</span> <span class="nx">tmp</span><span class="p">.</span><span class="nx">renderer</span><span class="p">.</span><span class="nx">getElementsByTagName</span><span class="p">(</span><span class="s1">'td'</span><span class="p">)[</span><span class="mi">0</span><span class="p">];</span></div><div class='line' id='LC4995'><br/></div><div class='line' id='LC4996'> <span class="nx">tmp</span><span class="p">.</span><span class="nx">container</span> <span class="o">=</span> <span class="nx">d</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'div'</span><span class="p">);</span></div><div class='line' id='LC4997'> <span class="nx">tmp</span><span class="p">.</span><span class="nx">container</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">className</span> <span class="o">+</span> <span class="s1">' hidden'</span><span class="p">;</span></div><div class='line' id='LC4998'> <span class="nx">tmp</span><span class="p">.</span><span class="nx">containerStyle</span> <span class="o">=</span> <span class="nx">tmp</span><span class="p">.</span><span class="nx">container</span><span class="p">.</span><span class="nx">style</span><span class="p">;</span></div><div class='line' id='LC4999'><br/></div><div class='line' id='LC5000'> <span class="nx">tmp</span><span class="p">.</span><span class="nx">container</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">tmp</span><span class="p">.</span><span class="nx">thead</span><span class="p">);</span></div><div class='line' id='LC5001'> <span class="nx">tmp</span><span class="p">.</span><span class="nx">container</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">tmp</span><span class="p">.</span><span class="nx">tbody</span><span class="p">);</span></div><div class='line' id='LC5002'> <span class="nx">tmp</span><span class="p">.</span><span class="nx">container</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">tmp</span><span class="p">.</span><span class="nx">noRenderer</span><span class="p">);</span></div><div class='line' id='LC5003'> <span class="nx">tmp</span><span class="p">.</span><span class="nx">container</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">tmp</span><span class="p">.</span><span class="nx">renderer</span><span class="p">);</span></div><div class='line' id='LC5004'><br/></div><div class='line' id='LC5005'> <span class="nx">instance</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">parentNode</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">tmp</span><span class="p">.</span><span class="nx">container</span><span class="p">);</span></div><div class='line' id='LC5006'> <span class="p">}</span></div><div class='line' id='LC5007'><br/></div><div class='line' id='LC5008'> <span class="nx">tmp</span><span class="p">.</span><span class="nx">container</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">className</span> <span class="o">+</span> <span class="s1">' hidden'</span><span class="p">;</span></div><div class='line' id='LC5009'> <span class="kd">var</span> <span class="nx">cls</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">$table</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">className</span><span class="p">;</span></div><div class='line' id='LC5010'> <span class="nx">tmp</span><span class="p">.</span><span class="nx">thead</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="nx">cls</span><span class="p">;</span></div><div class='line' id='LC5011'> <span class="nx">tmp</span><span class="p">.</span><span class="nx">tbody</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="nx">cls</span><span class="p">;</span></div><div class='line' id='LC5012'><br/></div><div class='line' id='LC5013'> <span class="kd">var</span> <span class="nx">rows</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countRows</span><span class="p">();</span></div><div class='line' id='LC5014'> <span class="kd">var</span> <span class="nx">samples</span> <span class="o">=</span> <span class="p">{};</span></div><div class='line' id='LC5015'> <span class="kd">var</span> <span class="nx">maxLen</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC5016'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">r</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">r</span> <span class="o"><</span> <span class="nx">rows</span><span class="p">;</span> <span class="nx">r</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5017'> <span class="kd">var</span> <span class="nx">value</span> <span class="o">=</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">stringify</span><span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getDataAtCell</span><span class="p">(</span><span class="nx">r</span><span class="p">,</span> <span class="nx">col</span><span class="p">));</span></div><div class='line' id='LC5018'> <span class="kd">var</span> <span class="nx">len</span> <span class="o">=</span> <span class="nx">value</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span></div><div class='line' id='LC5019'> <span class="k">if</span> <span class="p">(</span><span class="nx">len</span> <span class="o">></span> <span class="nx">maxLen</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5020'> <span class="nx">maxLen</span> <span class="o">=</span> <span class="nx">len</span><span class="p">;</span></div><div class='line' id='LC5021'> <span class="p">}</span></div><div class='line' id='LC5022'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">samples</span><span class="p">[</span><span class="nx">len</span><span class="p">])</span> <span class="p">{</span></div><div class='line' id='LC5023'> <span class="nx">samples</span><span class="p">[</span><span class="nx">len</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC5024'> <span class="nx">needed</span><span class="o">:</span> <span class="nx">sampleCount</span><span class="p">,</span></div><div class='line' id='LC5025'> <span class="nx">strings</span><span class="o">:</span> <span class="p">[]</span></div><div class='line' id='LC5026'> <span class="p">};</span></div><div class='line' id='LC5027'> <span class="p">}</span></div><div class='line' id='LC5028'> <span class="k">if</span> <span class="p">(</span><span class="nx">samples</span><span class="p">[</span><span class="nx">len</span><span class="p">].</span><span class="nx">needed</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5029'> <span class="nx">samples</span><span class="p">[</span><span class="nx">len</span><span class="p">].</span><span class="nx">strings</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">value</span><span class="p">);</span></div><div class='line' id='LC5030'> <span class="nx">samples</span><span class="p">[</span><span class="nx">len</span><span class="p">].</span><span class="nx">needed</span><span class="o">--</span><span class="p">;</span></div><div class='line' id='LC5031'> <span class="p">}</span></div><div class='line' id='LC5032'> <span class="p">}</span></div><div class='line' id='LC5033'><br/></div><div class='line' id='LC5034'> <span class="kd">var</span> <span class="nx">settings</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getSettings</span><span class="p">();</span></div><div class='line' id='LC5035'> <span class="k">if</span> <span class="p">(</span><span class="nx">settings</span><span class="p">.</span><span class="nx">colHeaders</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5036'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">appendColHeader</span><span class="p">(</span><span class="nx">col</span><span class="p">,</span> <span class="nx">tmp</span><span class="p">.</span><span class="nx">theadTh</span><span class="p">);</span> <span class="c1">//TH innerHTML</span></div><div class='line' id='LC5037'> <span class="p">}</span></div><div class='line' id='LC5038'><br/></div><div class='line' id='LC5039'> <span class="kd">var</span> <span class="nx">txt</span> <span class="o">=</span> <span class="s1">''</span><span class="p">;</span></div><div class='line' id='LC5040'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="k">in</span> <span class="nx">samples</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5041'> <span class="k">if</span> <span class="p">(</span><span class="nx">samples</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">i</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC5042'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">jlen</span> <span class="o">=</span> <span class="nx">samples</span><span class="p">[</span><span class="nx">i</span><span class="p">].</span><span class="nx">strings</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">j</span> <span class="o"><</span> <span class="nx">jlen</span><span class="p">;</span> <span class="nx">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5043'> <span class="nx">txt</span> <span class="o">+=</span> <span class="nx">samples</span><span class="p">[</span><span class="nx">i</span><span class="p">].</span><span class="nx">strings</span><span class="p">[</span><span class="nx">j</span><span class="p">]</span> <span class="o">+</span> <span class="s1">'<br>'</span><span class="p">;</span></div><div class='line' id='LC5044'> <span class="p">}</span></div><div class='line' id='LC5045'> <span class="p">}</span></div><div class='line' id='LC5046'> <span class="p">}</span></div><div class='line' id='LC5047'> <span class="nx">tmp</span><span class="p">.</span><span class="nx">tbodyTd</span><span class="p">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="nx">txt</span><span class="p">;</span> <span class="c1">//TD innerHTML</span></div><div class='line' id='LC5048'><br/></div><div class='line' id='LC5049'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">empty</span><span class="p">(</span><span class="nx">tmp</span><span class="p">.</span><span class="nx">rendererTd</span><span class="p">);</span></div><div class='line' id='LC5050'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">empty</span><span class="p">(</span><span class="nx">tmp</span><span class="p">.</span><span class="nx">noRendererTd</span><span class="p">);</span></div><div class='line' id='LC5051'><br/></div><div class='line' id='LC5052'> <span class="nx">tmp</span><span class="p">.</span><span class="nx">containerStyle</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s1">'block'</span><span class="p">;</span></div><div class='line' id='LC5053'><br/></div><div class='line' id='LC5054'> <span class="kd">var</span> <span class="nx">width</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">outerWidth</span><span class="p">(</span><span class="nx">tmp</span><span class="p">.</span><span class="nx">container</span><span class="p">);</span></div><div class='line' id='LC5055'><br/></div><div class='line' id='LC5056'> <span class="kd">var</span> <span class="nx">cellProperties</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getCellMeta</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="nx">col</span><span class="p">);</span></div><div class='line' id='LC5057'> <span class="k">if</span> <span class="p">(</span><span class="nx">cellProperties</span><span class="p">.</span><span class="nx">renderer</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5058'> <span class="kd">var</span> <span class="nx">str</span> <span class="o">=</span> <span class="mi">9999999999</span><span class="p">;</span></div><div class='line' id='LC5059'><br/></div><div class='line' id='LC5060'> <span class="nx">tmp</span><span class="p">.</span><span class="nx">noRendererTd</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">createTextNode</span><span class="p">(</span><span class="nx">str</span><span class="p">));</span></div><div class='line' id='LC5061'> <span class="kd">var</span> <span class="nx">renderer</span> <span class="o">=</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">getCellMethod</span><span class="p">(</span><span class="s1">'renderer'</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">renderer</span><span class="p">);</span></div><div class='line' id='LC5062'> <span class="nx">renderer</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">tmp</span><span class="p">.</span><span class="nx">rendererTd</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">colToProp</span><span class="p">(</span><span class="nx">col</span><span class="p">),</span> <span class="nx">str</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">);</span></div><div class='line' id='LC5063'><br/></div><div class='line' id='LC5064'> <span class="nx">width</span> <span class="o">+=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">outerWidth</span><span class="p">(</span><span class="nx">tmp</span><span class="p">.</span><span class="nx">renderer</span><span class="p">)</span> <span class="o">-</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">outerWidth</span><span class="p">(</span><span class="nx">tmp</span><span class="p">.</span><span class="nx">noRenderer</span><span class="p">);</span> <span class="c1">//add renderer overhead to the calculated width</span></div><div class='line' id='LC5065'> <span class="p">}</span></div><div class='line' id='LC5066'><br/></div><div class='line' id='LC5067'> <span class="kd">var</span> <span class="nx">maxWidth</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtViewport</span><span class="p">.</span><span class="nx">getViewportWidth</span><span class="p">()</span> <span class="o">-</span> <span class="mi">2</span><span class="p">;</span> <span class="c1">//2 is some overhead for cell border</span></div><div class='line' id='LC5068'> <span class="k">if</span> <span class="p">(</span><span class="nx">width</span> <span class="o">></span> <span class="nx">maxWidth</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5069'> <span class="nx">width</span> <span class="o">=</span> <span class="nx">maxWidth</span><span class="p">;</span></div><div class='line' id='LC5070'> <span class="p">}</span></div><div class='line' id='LC5071'><br/></div><div class='line' id='LC5072'> <span class="nx">tmp</span><span class="p">.</span><span class="nx">containerStyle</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s1">'none'</span><span class="p">;</span></div><div class='line' id='LC5073'><br/></div><div class='line' id='LC5074'> <span class="k">return</span> <span class="nx">width</span><span class="p">;</span></div><div class='line' id='LC5075'> <span class="p">};</span></div><div class='line' id='LC5076'><br/></div><div class='line' id='LC5077'> <span class="k">this</span><span class="p">.</span><span class="nx">determineColumnsWidth</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5078'> <span class="nx">instance</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC5079'> <span class="kd">var</span> <span class="nx">settings</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getSettings</span><span class="p">();</span></div><div class='line' id='LC5080'> <span class="k">if</span> <span class="p">(</span><span class="nx">settings</span><span class="p">.</span><span class="nx">autoColumnSize</span> <span class="o">||</span> <span class="o">!</span><span class="nx">settings</span><span class="p">.</span><span class="nx">colWidths</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5081'> <span class="kd">var</span> <span class="nx">cols</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">countCols</span><span class="p">();</span></div><div class='line' id='LC5082'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">c</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">c</span> <span class="o"><</span> <span class="nx">cols</span><span class="p">;</span> <span class="nx">c</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5083'> <span class="k">this</span><span class="p">.</span><span class="nx">autoColumnWidths</span><span class="p">[</span><span class="nx">c</span><span class="p">]</span> <span class="o">=</span> <span class="nx">that</span><span class="p">.</span><span class="nx">determineColumnWidth</span><span class="p">(</span><span class="nx">c</span><span class="p">);</span></div><div class='line' id='LC5084'> <span class="p">}</span></div><div class='line' id='LC5085'> <span class="p">}</span></div><div class='line' id='LC5086'> <span class="p">};</span></div><div class='line' id='LC5087'><br/></div><div class='line' id='LC5088'> <span class="k">this</span><span class="p">.</span><span class="nx">getColWidth</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">col</span><span class="p">,</span> <span class="nx">response</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5089'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">autoColumnWidths</span><span class="p">[</span><span class="nx">col</span><span class="p">]</span> <span class="o">&&</span> <span class="k">this</span><span class="p">.</span><span class="nx">autoColumnWidths</span><span class="p">[</span><span class="nx">col</span><span class="p">]</span> <span class="o">></span> <span class="nx">response</span><span class="p">.</span><span class="nx">width</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5090'> <span class="nx">response</span><span class="p">.</span><span class="nx">width</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">autoColumnWidths</span><span class="p">[</span><span class="nx">col</span><span class="p">];</span></div><div class='line' id='LC5091'> <span class="p">}</span></div><div class='line' id='LC5092'> <span class="p">};</span></div><div class='line' id='LC5093'><br/></div><div class='line' id='LC5094'> <span class="k">this</span><span class="p">.</span><span class="nx">afterDestroy</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5095'> <span class="nx">instance</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC5096'> <span class="k">if</span> <span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">autoColumnSizeTmp</span><span class="p">.</span><span class="nx">container</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5097'> <span class="nx">instance</span><span class="p">.</span><span class="nx">autoColumnSizeTmp</span><span class="p">.</span><span class="nx">container</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">.</span><span class="nx">removeChild</span><span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">autoColumnSizeTmp</span><span class="p">.</span><span class="nx">container</span><span class="p">);</span></div><div class='line' id='LC5098'> <span class="p">}</span></div><div class='line' id='LC5099'> <span class="p">};</span></div><div class='line' id='LC5100'><span class="p">}</span></div><div class='line' id='LC5101'><span class="kd">var</span> <span class="nx">htAutoColumnSize</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">HandsontableAutoColumnSize</span><span class="p">();</span></div><div class='line' id='LC5102'><br/></div><div class='line' id='LC5103'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="s1">'beforeInit'</span><span class="p">,</span> <span class="nx">htAutoColumnSize</span><span class="p">.</span><span class="nx">beforeInit</span><span class="p">);</span></div><div class='line' id='LC5104'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="s1">'beforeRender'</span><span class="p">,</span> <span class="nx">htAutoColumnSize</span><span class="p">.</span><span class="nx">determineColumnsWidth</span><span class="p">);</span></div><div class='line' id='LC5105'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="s1">'afterGetColWidth'</span><span class="p">,</span> <span class="nx">htAutoColumnSize</span><span class="p">.</span><span class="nx">getColWidth</span><span class="p">);</span></div><div class='line' id='LC5106'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="s1">'afterDestroy'</span><span class="p">,</span> <span class="nx">htAutoColumnSize</span><span class="p">.</span><span class="nx">afterDestroy</span><span class="p">);</span></div><div class='line' id='LC5107'><br/></div><div class='line' id='LC5108'><span class="cm">/**</span></div><div class='line' id='LC5109'><span class="cm"> * This plugin sorts the view by a column (but does not sort the data source!)</span></div><div class='line' id='LC5110'><span class="cm"> * @constructor</span></div><div class='line' id='LC5111'><span class="cm"> */</span></div><div class='line' id='LC5112'><span class="kd">function</span> <span class="nx">HandsontableColumnSorting</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5113'> <span class="kd">var</span> <span class="nx">plugin</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC5114'> <span class="kd">var</span> <span class="nx">sortingEnabled</span><span class="p">;</span></div><div class='line' id='LC5115'><br/></div><div class='line' id='LC5116'><br/></div><div class='line' id='LC5117'> <span class="k">this</span><span class="p">.</span><span class="nx">init</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">source</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5118'> <span class="kd">var</span> <span class="nx">instance</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC5119'> <span class="kd">var</span> <span class="nx">sortingSettings</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getSettings</span><span class="p">().</span><span class="nx">columnSorting</span><span class="p">;</span></div><div class='line' id='LC5120'> <span class="kd">var</span> <span class="nx">sortingColumn</span><span class="p">,</span> <span class="nx">sortingOrder</span><span class="p">;</span></div><div class='line' id='LC5121'><br/></div><div class='line' id='LC5122'> <span class="nx">sortingEnabled</span> <span class="o">=</span> <span class="nb">Boolean</span><span class="p">(</span><span class="nx">sortingSettings</span><span class="p">);</span></div><div class='line' id='LC5123'><br/></div><div class='line' id='LC5124'> <span class="k">if</span> <span class="p">(</span><span class="nx">sortingEnabled</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5125'> <span class="nx">instance</span><span class="p">.</span><span class="nx">sortIndex</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC5126'><br/></div><div class='line' id='LC5127'> <span class="kd">var</span> <span class="nx">loadedSortingState</span> <span class="o">=</span> <span class="nx">loadSortingState</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">instance</span><span class="p">);</span></div><div class='line' id='LC5128'><br/></div><div class='line' id='LC5129'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">loadedSortingState</span> <span class="o">!=</span> <span class="s1">'undefined'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5130'> <span class="nx">sortingColumn</span> <span class="o">=</span> <span class="nx">loadedSortingState</span><span class="p">.</span><span class="nx">sortColumn</span><span class="p">;</span></div><div class='line' id='LC5131'> <span class="nx">sortingOrder</span> <span class="o">=</span> <span class="nx">loadedSortingState</span><span class="p">.</span><span class="nx">sortOrder</span><span class="p">;</span></div><div class='line' id='LC5132'> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC5133'> <span class="nx">sortingColumn</span> <span class="o">=</span> <span class="nx">sortingSettings</span><span class="p">.</span><span class="nx">column</span><span class="p">;</span></div><div class='line' id='LC5134'> <span class="nx">sortingOrder</span> <span class="o">=</span> <span class="nx">sortingSettings</span><span class="p">.</span><span class="nx">sortOrder</span><span class="p">;</span></div><div class='line' id='LC5135'> <span class="p">}</span></div><div class='line' id='LC5136'> <span class="nx">plugin</span><span class="p">.</span><span class="nx">sortByColumn</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">sortingColumn</span><span class="p">,</span> <span class="nx">sortingOrder</span><span class="p">);</span></div><div class='line' id='LC5137'><br/></div><div class='line' id='LC5138'><br/></div><div class='line' id='LC5139'> <span class="k">if</span> <span class="p">(</span><span class="nx">source</span> <span class="o">==</span> <span class="s1">'afterInit'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5140'> <span class="nx">bindColumnSortingAfterClick</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">instance</span><span class="p">);</span></div><div class='line' id='LC5141'> <span class="p">}</span></div><div class='line' id='LC5142'> <span class="p">}</span></div><div class='line' id='LC5143'> <span class="p">};</span></div><div class='line' id='LC5144'><br/></div><div class='line' id='LC5145'> <span class="k">this</span><span class="p">.</span><span class="nx">setSortingColumn</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">col</span><span class="p">,</span> <span class="nx">order</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5146'> <span class="kd">var</span> <span class="nx">instance</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC5147'><br/></div><div class='line' id='LC5148'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">col</span> <span class="o">==</span> <span class="s1">'undefined'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5149'> <span class="k">delete</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">sortColumn</span><span class="p">;</span></div><div class='line' id='LC5150'> <span class="k">delete</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">sortOrder</span><span class="p">;</span></div><div class='line' id='LC5151'><br/></div><div class='line' id='LC5152'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC5153'> <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">sortColumn</span> <span class="o">===</span> <span class="nx">col</span> <span class="o">&&</span> <span class="k">typeof</span> <span class="nx">order</span> <span class="o">==</span> <span class="s1">'undefined'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5154'> <span class="nx">instance</span><span class="p">.</span><span class="nx">sortOrder</span> <span class="o">=</span> <span class="o">!</span><span class="nx">instance</span><span class="p">.</span><span class="nx">sortOrder</span><span class="p">;</span></div><div class='line' id='LC5155'> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC5156'> <span class="nx">instance</span><span class="p">.</span><span class="nx">sortOrder</span> <span class="o">=</span> <span class="k">typeof</span> <span class="nx">order</span> <span class="o">!=</span> <span class="s1">'undefined'</span> <span class="o">?</span> <span class="nx">order</span> <span class="o">:</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC5157'> <span class="p">}</span></div><div class='line' id='LC5158'><br/></div><div class='line' id='LC5159'> <span class="nx">instance</span><span class="p">.</span><span class="nx">sortColumn</span> <span class="o">=</span> <span class="nx">col</span><span class="p">;</span></div><div class='line' id='LC5160'><br/></div><div class='line' id='LC5161'> <span class="p">};</span></div><div class='line' id='LC5162'><br/></div><div class='line' id='LC5163'> <span class="k">this</span><span class="p">.</span><span class="nx">sortByColumn</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">col</span><span class="p">,</span> <span class="nx">order</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5164'> <span class="kd">var</span> <span class="nx">instance</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC5165'><br/></div><div class='line' id='LC5166'> <span class="nx">plugin</span><span class="p">.</span><span class="nx">setSortingColumn</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">order</span><span class="p">);</span></div><div class='line' id='LC5167'> <span class="nx">plugin</span><span class="p">.</span><span class="nx">sort</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">instance</span><span class="p">);</span></div><div class='line' id='LC5168'> <span class="nx">instance</span><span class="p">.</span><span class="nx">render</span><span class="p">();</span></div><div class='line' id='LC5169'><br/></div><div class='line' id='LC5170'> <span class="nx">saveSortingState</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">instance</span><span class="p">);</span></div><div class='line' id='LC5171'><br/></div><div class='line' id='LC5172'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'afterSorting'</span><span class="p">);</span></div><div class='line' id='LC5173'> <span class="p">};</span></div><div class='line' id='LC5174'><br/></div><div class='line' id='LC5175'> <span class="kd">var</span> <span class="nx">saveSortingState</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5176'> <span class="kd">var</span> <span class="nx">instance</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC5177'><br/></div><div class='line' id='LC5178'> <span class="kd">var</span> <span class="nx">sortingState</span> <span class="o">=</span> <span class="p">{};</span></div><div class='line' id='LC5179'><br/></div><div class='line' id='LC5180'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">sortColumn</span> <span class="o">!=</span> <span class="s1">'undefined'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5181'> <span class="nx">sortingState</span><span class="p">.</span><span class="nx">sortColumn</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">sortColumn</span><span class="p">;</span></div><div class='line' id='LC5182'> <span class="p">}</span></div><div class='line' id='LC5183'><br/></div><div class='line' id='LC5184'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">sortOrder</span> <span class="o">!=</span> <span class="s1">'undefined'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5185'> <span class="nx">sortingState</span><span class="p">.</span><span class="nx">sortOrder</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">sortOrder</span><span class="p">;</span></div><div class='line' id='LC5186'> <span class="p">}</span></div><div class='line' id='LC5187'><br/></div><div class='line' id='LC5188'> <span class="k">if</span> <span class="p">(</span><span class="nx">sortingState</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="s1">'sortColumn'</span><span class="p">)</span> <span class="o">||</span> <span class="nx">sortingState</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="s1">'sortOrder'</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC5189'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'persistentStateSave'</span><span class="p">,</span> <span class="s1">'columnSorting'</span><span class="p">,</span> <span class="nx">sortingState</span><span class="p">);</span></div><div class='line' id='LC5190'> <span class="p">}</span></div><div class='line' id='LC5191'><br/></div><div class='line' id='LC5192'> <span class="p">};</span></div><div class='line' id='LC5193'><br/></div><div class='line' id='LC5194'> <span class="kd">var</span> <span class="nx">loadSortingState</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5195'> <span class="kd">var</span> <span class="nx">instance</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC5196'> <span class="kd">var</span> <span class="nx">storedState</span> <span class="o">=</span> <span class="p">{};</span></div><div class='line' id='LC5197'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'persistentStateLoad'</span><span class="p">,</span> <span class="s1">'columnSorting'</span><span class="p">,</span> <span class="nx">storedState</span><span class="p">);</span></div><div class='line' id='LC5198'><br/></div><div class='line' id='LC5199'> <span class="k">return</span> <span class="nx">storedState</span><span class="p">.</span><span class="nx">value</span><span class="p">;</span></div><div class='line' id='LC5200'> <span class="p">};</span></div><div class='line' id='LC5201'><br/></div><div class='line' id='LC5202'> <span class="kd">var</span> <span class="nx">bindColumnSortingAfterClick</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5203'> <span class="kd">var</span> <span class="nx">instance</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC5204'><br/></div><div class='line' id='LC5205'> <span class="nx">instance</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'click.handsontable'</span><span class="p">,</span> <span class="s1">'.columnSorting'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5206'> <span class="k">if</span> <span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">hasClass</span><span class="p">(</span><span class="nx">e</span><span class="p">.</span><span class="nx">target</span><span class="p">,</span> <span class="s1">'columnSorting'</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC5207'> <span class="kd">var</span> <span class="nx">col</span> <span class="o">=</span> <span class="nx">getColumn</span><span class="p">(</span><span class="nx">e</span><span class="p">.</span><span class="nx">target</span><span class="p">);</span></div><div class='line' id='LC5208'> <span class="nx">plugin</span><span class="p">.</span><span class="nx">sortByColumn</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">col</span><span class="p">);</span></div><div class='line' id='LC5209'> <span class="p">}</span></div><div class='line' id='LC5210'> <span class="p">});</span></div><div class='line' id='LC5211'><br/></div><div class='line' id='LC5212'> <span class="kd">function</span> <span class="nx">countRowHeaders</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5213'> <span class="kd">var</span> <span class="nx">THs</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">TBODY</span><span class="p">.</span><span class="nx">querySelector</span><span class="p">(</span><span class="s1">'tr'</span><span class="p">).</span><span class="nx">querySelectorAll</span><span class="p">(</span><span class="s1">'th'</span><span class="p">);</span></div><div class='line' id='LC5214'> <span class="k">return</span> <span class="nx">THs</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span></div><div class='line' id='LC5215'> <span class="p">}</span></div><div class='line' id='LC5216'><br/></div><div class='line' id='LC5217'> <span class="kd">function</span> <span class="nx">getColumn</span><span class="p">(</span><span class="nx">target</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5218'> <span class="kd">var</span> <span class="nx">TH</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">closest</span><span class="p">(</span><span class="nx">target</span><span class="p">,</span> <span class="s1">'TH'</span><span class="p">);</span></div><div class='line' id='LC5219'> <span class="k">return</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">index</span><span class="p">(</span><span class="nx">TH</span><span class="p">)</span> <span class="o">-</span> <span class="nx">countRowHeaders</span><span class="p">();</span></div><div class='line' id='LC5220'> <span class="p">}</span></div><div class='line' id='LC5221'> <span class="p">};</span></div><div class='line' id='LC5222'><br/></div><div class='line' id='LC5223'> <span class="kd">function</span> <span class="nx">defaultSort</span><span class="p">(</span><span class="nx">sortOrder</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5224'> <span class="k">return</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">a</span><span class="p">,</span> <span class="nx">b</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5225'> <span class="k">if</span> <span class="p">(</span><span class="nx">a</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">===</span> <span class="nx">b</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="p">{</span></div><div class='line' id='LC5226'> <span class="k">return</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC5227'> <span class="p">}</span></div><div class='line' id='LC5228'> <span class="k">if</span> <span class="p">(</span><span class="nx">a</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">===</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5229'> <span class="k">return</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC5230'> <span class="p">}</span></div><div class='line' id='LC5231'> <span class="k">if</span> <span class="p">(</span><span class="nx">b</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">===</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5232'> <span class="k">return</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC5233'> <span class="p">}</span></div><div class='line' id='LC5234'> <span class="k">if</span> <span class="p">(</span><span class="nx">a</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o"><</span> <span class="nx">b</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="k">return</span> <span class="nx">sortOrder</span> <span class="o">?</span> <span class="o">-</span><span class="mi">1</span> <span class="o">:</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC5235'> <span class="k">if</span> <span class="p">(</span><span class="nx">a</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">></span> <span class="nx">b</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="k">return</span> <span class="nx">sortOrder</span> <span class="o">?</span> <span class="mi">1</span> <span class="o">:</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC5236'> <span class="k">return</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC5237'> <span class="p">}</span></div><div class='line' id='LC5238'> <span class="p">}</span></div><div class='line' id='LC5239'><br/></div><div class='line' id='LC5240'> <span class="kd">function</span> <span class="nx">dateSort</span><span class="p">(</span><span class="nx">sortOrder</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5241'> <span class="k">return</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">a</span><span class="p">,</span> <span class="nx">b</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5242'> <span class="k">if</span> <span class="p">(</span><span class="nx">a</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">===</span> <span class="nx">b</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="p">{</span></div><div class='line' id='LC5243'> <span class="k">return</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC5244'> <span class="p">}</span></div><div class='line' id='LC5245'> <span class="k">if</span> <span class="p">(</span><span class="nx">a</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">===</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5246'> <span class="k">return</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC5247'> <span class="p">}</span></div><div class='line' id='LC5248'> <span class="k">if</span> <span class="p">(</span><span class="nx">b</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">===</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5249'> <span class="k">return</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC5250'> <span class="p">}</span></div><div class='line' id='LC5251'><br/></div><div class='line' id='LC5252'> <span class="kd">var</span> <span class="nx">aDate</span> <span class="o">=</span> <span class="k">new</span> <span class="nb">Date</span><span class="p">(</span><span class="nx">a</span><span class="p">[</span><span class="mi">1</span><span class="p">]);</span></div><div class='line' id='LC5253'> <span class="kd">var</span> <span class="nx">bDate</span> <span class="o">=</span> <span class="k">new</span> <span class="nb">Date</span><span class="p">(</span><span class="nx">b</span><span class="p">[</span><span class="mi">1</span><span class="p">]);</span></div><div class='line' id='LC5254'><br/></div><div class='line' id='LC5255'> <span class="k">if</span> <span class="p">(</span><span class="nx">aDate</span> <span class="o"><</span> <span class="nx">bDate</span><span class="p">)</span> <span class="k">return</span> <span class="nx">sortOrder</span> <span class="o">?</span> <span class="o">-</span><span class="mi">1</span> <span class="o">:</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC5256'> <span class="k">if</span> <span class="p">(</span><span class="nx">aDate</span> <span class="o">></span> <span class="nx">bDate</span><span class="p">)</span> <span class="k">return</span> <span class="nx">sortOrder</span> <span class="o">?</span> <span class="mi">1</span> <span class="o">:</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC5257'><br/></div><div class='line' id='LC5258'> <span class="k">return</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC5259'> <span class="p">}</span></div><div class='line' id='LC5260'> <span class="p">}</span></div><div class='line' id='LC5261'><br/></div><div class='line' id='LC5262'> <span class="k">this</span><span class="p">.</span><span class="nx">sort</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5263'> <span class="kd">var</span> <span class="nx">instance</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC5264'><br/></div><div class='line' id='LC5265'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">sortOrder</span> <span class="o">==</span> <span class="s1">'undefined'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5266'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC5267'> <span class="p">}</span></div><div class='line' id='LC5268'><br/></div><div class='line' id='LC5269'> <span class="nx">sortingEnabled</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span> <span class="c1">//this is required by translateRow plugin hook</span></div><div class='line' id='LC5270'> <span class="nx">instance</span><span class="p">.</span><span class="nx">sortIndex</span><span class="p">.</span><span class="nx">length</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC5271'><br/></div><div class='line' id='LC5272'> <span class="kd">var</span> <span class="nx">colOffset</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">colOffset</span><span class="p">();</span></div><div class='line' id='LC5273'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">ilen</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">countRows</span><span class="p">()</span> <span class="o">-</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getSettings</span><span class="p">()[</span><span class="s1">'minSpareRows'</span><span class="p">];</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">ilen</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5274'> <span class="k">this</span><span class="p">.</span><span class="nx">sortIndex</span><span class="p">.</span><span class="nx">push</span><span class="p">([</span><span class="nx">i</span><span class="p">,</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getDataAtCell</span><span class="p">(</span><span class="nx">i</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">sortColumn</span> <span class="o">+</span> <span class="nx">colOffset</span><span class="p">)]);</span></div><div class='line' id='LC5275'> <span class="p">}</span></div><div class='line' id='LC5276'><br/></div><div class='line' id='LC5277'> <span class="kd">var</span> <span class="nx">colMeta</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getCellMeta</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">sortColumn</span><span class="p">);</span></div><div class='line' id='LC5278'> <span class="kd">var</span> <span class="nx">sortFunction</span><span class="p">;</span></div><div class='line' id='LC5279'> <span class="k">switch</span> <span class="p">(</span><span class="nx">colMeta</span><span class="p">.</span><span class="nx">type</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5280'> <span class="k">case</span> <span class="s1">'date'</span><span class="o">:</span></div><div class='line' id='LC5281'> <span class="nx">sortFunction</span> <span class="o">=</span> <span class="nx">dateSort</span><span class="p">;</span></div><div class='line' id='LC5282'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC5283'> <span class="k">default</span><span class="o">:</span></div><div class='line' id='LC5284'> <span class="nx">sortFunction</span> <span class="o">=</span> <span class="nx">defaultSort</span><span class="p">;</span></div><div class='line' id='LC5285'> <span class="p">}</span></div><div class='line' id='LC5286'><br/></div><div class='line' id='LC5287'> <span class="k">this</span><span class="p">.</span><span class="nx">sortIndex</span><span class="p">.</span><span class="nx">sort</span><span class="p">(</span><span class="nx">sortFunction</span><span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">sortOrder</span><span class="p">));</span></div><div class='line' id='LC5288'><br/></div><div class='line' id='LC5289'> <span class="c1">//Append spareRows</span></div><div class='line' id='LC5290'> <span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">sortIndex</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">countRows</span><span class="p">();</span> <span class="nx">i</span><span class="o">++</span><span class="p">){</span></div><div class='line' id='LC5291'> <span class="k">this</span><span class="p">.</span><span class="nx">sortIndex</span><span class="p">.</span><span class="nx">push</span><span class="p">([</span><span class="nx">i</span><span class="p">,</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getDataAtCell</span><span class="p">(</span><span class="nx">i</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">sortColumn</span> <span class="o">+</span> <span class="nx">colOffset</span><span class="p">)]);</span></div><div class='line' id='LC5292'> <span class="p">}</span></div><div class='line' id='LC5293'><br/></div><div class='line' id='LC5294'> <span class="nx">sortingEnabled</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span> <span class="c1">//this is required by translateRow plugin hook</span></div><div class='line' id='LC5295'> <span class="p">};</span></div><div class='line' id='LC5296'><br/></div><div class='line' id='LC5297'> <span class="k">this</span><span class="p">.</span><span class="nx">translateRow</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">row</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5298'> <span class="k">if</span> <span class="p">(</span><span class="nx">sortingEnabled</span> <span class="o">&&</span> <span class="k">this</span><span class="p">.</span><span class="nx">sortIndex</span> <span class="o">&&</span> <span class="k">this</span><span class="p">.</span><span class="nx">sortIndex</span><span class="p">.</span><span class="nx">length</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5299'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">sortIndex</span><span class="p">[</span><span class="nx">row</span><span class="p">][</span><span class="mi">0</span><span class="p">];</span></div><div class='line' id='LC5300'> <span class="p">}</span></div><div class='line' id='LC5301'> <span class="k">return</span> <span class="nx">row</span><span class="p">;</span></div><div class='line' id='LC5302'> <span class="p">};</span></div><div class='line' id='LC5303'><br/></div><div class='line' id='LC5304'> <span class="k">this</span><span class="p">.</span><span class="nx">onBeforeGetSet</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">getVars</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5305'> <span class="kd">var</span> <span class="nx">instance</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC5306'> <span class="nx">getVars</span><span class="p">.</span><span class="nx">row</span> <span class="o">=</span> <span class="nx">plugin</span><span class="p">.</span><span class="nx">translateRow</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">getVars</span><span class="p">.</span><span class="nx">row</span><span class="p">);</span></div><div class='line' id='LC5307'> <span class="p">};</span></div><div class='line' id='LC5308'><br/></div><div class='line' id='LC5309'> <span class="k">this</span><span class="p">.</span><span class="nx">untranslateRow</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">row</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5310'> <span class="k">if</span> <span class="p">(</span><span class="nx">sortingEnabled</span> <span class="o">&&</span> <span class="k">this</span><span class="p">.</span><span class="nx">sortIndex</span> <span class="o">&&</span> <span class="k">this</span><span class="p">.</span><span class="nx">sortIndex</span><span class="p">.</span><span class="nx">length</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5311'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="k">this</span><span class="p">.</span><span class="nx">sortIndex</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5312'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">sortIndex</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="nx">row</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5313'> <span class="k">return</span> <span class="nx">i</span><span class="p">;</span></div><div class='line' id='LC5314'> <span class="p">}</span></div><div class='line' id='LC5315'> <span class="p">}</span></div><div class='line' id='LC5316'> <span class="p">}</span></div><div class='line' id='LC5317'> <span class="p">};</span></div><div class='line' id='LC5318'><br/></div><div class='line' id='LC5319'> <span class="k">this</span><span class="p">.</span><span class="nx">getColHeader</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">col</span><span class="p">,</span> <span class="nx">TH</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5320'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">getSettings</span><span class="p">().</span><span class="nx">columnSorting</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5321'> <span class="k">this</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">TH</span><span class="p">.</span><span class="nx">querySelector</span><span class="p">(</span><span class="s1">'.colHeader'</span><span class="p">),</span> <span class="s1">'columnSorting'</span><span class="p">);</span></div><div class='line' id='LC5322'> <span class="p">}</span></div><div class='line' id='LC5323'> <span class="p">};</span></div><div class='line' id='LC5324'><br/></div><div class='line' id='LC5325'> <span class="k">this</span><span class="p">.</span><span class="nx">afterChangeSort</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">changes</span><span class="cm">/*, source*/</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5326'> <span class="kd">var</span> <span class="nx">instance</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC5327'> <span class="kd">var</span> <span class="nx">sortColumnChanged</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC5328'> <span class="kd">var</span> <span class="nx">selection</span> <span class="o">=</span> <span class="p">{};</span></div><div class='line' id='LC5329'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">changes</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5330'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC5331'> <span class="p">}</span></div><div class='line' id='LC5332'><br/></div><div class='line' id='LC5333'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">changes</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5334'> <span class="k">if</span> <span class="p">(</span><span class="nx">changes</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">sortColumn</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5335'> <span class="nx">sortColumnChanged</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC5336'> <span class="nx">selection</span><span class="p">.</span><span class="nx">row</span> <span class="o">=</span> <span class="nx">plugin</span><span class="p">.</span><span class="nx">translateRow</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">changes</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="mi">0</span><span class="p">]);</span></div><div class='line' id='LC5337'> <span class="nx">selection</span><span class="p">.</span><span class="nx">col</span> <span class="o">=</span> <span class="nx">changes</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="mi">1</span><span class="p">];</span></div><div class='line' id='LC5338'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC5339'> <span class="p">}</span></div><div class='line' id='LC5340'> <span class="p">}</span></div><div class='line' id='LC5341'><br/></div><div class='line' id='LC5342'> <span class="k">if</span> <span class="p">(</span><span class="nx">sortColumnChanged</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5343'> <span class="nx">setTimeout</span><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5344'> <span class="nx">plugin</span><span class="p">.</span><span class="nx">sort</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">instance</span><span class="p">);</span></div><div class='line' id='LC5345'> <span class="nx">instance</span><span class="p">.</span><span class="nx">render</span><span class="p">();</span></div><div class='line' id='LC5346'> <span class="nx">instance</span><span class="p">.</span><span class="nx">selectCell</span><span class="p">(</span><span class="nx">plugin</span><span class="p">.</span><span class="nx">untranslateRow</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">selection</span><span class="p">.</span><span class="nx">row</span><span class="p">),</span> <span class="nx">selection</span><span class="p">.</span><span class="nx">col</span><span class="p">);</span></div><div class='line' id='LC5347'> <span class="p">},</span> <span class="mi">0</span><span class="p">);</span></div><div class='line' id='LC5348'> <span class="p">}</span></div><div class='line' id='LC5349'> <span class="p">};</span></div><div class='line' id='LC5350'><span class="p">}</span></div><div class='line' id='LC5351'><span class="kd">var</span> <span class="nx">htSortColumn</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">HandsontableColumnSorting</span><span class="p">();</span></div><div class='line' id='LC5352'><br/></div><div class='line' id='LC5353'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="s1">'afterInit'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5354'> <span class="nx">htSortColumn</span><span class="p">.</span><span class="nx">init</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="s1">'afterInit'</span><span class="p">)</span></div><div class='line' id='LC5355'><span class="p">});</span></div><div class='line' id='LC5356'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="s1">'afterUpdateSettings'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5357'> <span class="nx">htSortColumn</span><span class="p">.</span><span class="nx">init</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="s1">'afterUpdateSettings'</span><span class="p">)</span></div><div class='line' id='LC5358'><span class="p">});</span></div><div class='line' id='LC5359'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="s1">'beforeGet'</span><span class="p">,</span> <span class="nx">htSortColumn</span><span class="p">.</span><span class="nx">onBeforeGetSet</span><span class="p">);</span></div><div class='line' id='LC5360'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="s1">'beforeSet'</span><span class="p">,</span> <span class="nx">htSortColumn</span><span class="p">.</span><span class="nx">onBeforeGetSet</span><span class="p">);</span></div><div class='line' id='LC5361'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="s1">'afterGetColHeader'</span><span class="p">,</span> <span class="nx">htSortColumn</span><span class="p">.</span><span class="nx">getColHeader</span><span class="p">);</span></div><div class='line' id='LC5362'><br/></div><div class='line' id='LC5363'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="s1">'afterCreateRow'</span><span class="p">,</span> <span class="nx">htSortColumn</span><span class="p">.</span><span class="nx">sort</span><span class="p">);</span></div><div class='line' id='LC5364'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="s1">'afterRemoveRow'</span><span class="p">,</span> <span class="nx">htSortColumn</span><span class="p">.</span><span class="nx">sort</span><span class="p">);</span></div><div class='line' id='LC5365'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="s1">'afterChange'</span><span class="p">,</span> <span class="nx">htSortColumn</span><span class="p">.</span><span class="nx">afterChangeSort</span><span class="p">);</span></div><div class='line' id='LC5366'><span class="kd">function</span> <span class="nx">createContextMenu</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5367'> <span class="kd">var</span> <span class="nx">instance</span> <span class="o">=</span> <span class="k">this</span></div><div class='line' id='LC5368'> <span class="p">,</span> <span class="nx">selectorId</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">id</span></div><div class='line' id='LC5369'> <span class="p">,</span> <span class="nx">allItems</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC5370'> <span class="s2">"row_above"</span><span class="o">:</span> <span class="p">{</span><span class="nx">name</span><span class="o">:</span> <span class="s2">"Insert row above"</span><span class="p">,</span> <span class="nx">disabled</span><span class="o">:</span> <span class="nx">isDisabled</span><span class="p">},</span></div><div class='line' id='LC5371'> <span class="s2">"row_below"</span><span class="o">:</span> <span class="p">{</span><span class="nx">name</span><span class="o">:</span> <span class="s2">"Insert row below"</span><span class="p">,</span> <span class="nx">disabled</span><span class="o">:</span> <span class="nx">isDisabled</span><span class="p">},</span></div><div class='line' id='LC5372'> <span class="s2">"hsep1"</span><span class="o">:</span> <span class="s2">"---------"</span><span class="p">,</span></div><div class='line' id='LC5373'> <span class="s2">"col_left"</span><span class="o">:</span> <span class="p">{</span><span class="nx">name</span><span class="o">:</span> <span class="s2">"Insert column on the left"</span><span class="p">,</span> <span class="nx">disabled</span><span class="o">:</span> <span class="nx">isDisabled</span><span class="p">},</span></div><div class='line' id='LC5374'> <span class="s2">"col_right"</span><span class="o">:</span> <span class="p">{</span><span class="nx">name</span><span class="o">:</span> <span class="s2">"Insert column on the right"</span><span class="p">,</span> <span class="nx">disabled</span><span class="o">:</span> <span class="nx">isDisabled</span><span class="p">},</span></div><div class='line' id='LC5375'> <span class="s2">"hsep2"</span><span class="o">:</span> <span class="s2">"---------"</span><span class="p">,</span></div><div class='line' id='LC5376'> <span class="s2">"remove_row"</span><span class="o">:</span> <span class="p">{</span><span class="nx">name</span><span class="o">:</span> <span class="s2">"Remove row"</span><span class="p">,</span> <span class="nx">disabled</span><span class="o">:</span> <span class="nx">isDisabled</span><span class="p">},</span></div><div class='line' id='LC5377'> <span class="s2">"remove_col"</span><span class="o">:</span> <span class="p">{</span><span class="nx">name</span><span class="o">:</span> <span class="s2">"Remove column"</span><span class="p">,</span> <span class="nx">disabled</span><span class="o">:</span> <span class="nx">isDisabled</span><span class="p">},</span></div><div class='line' id='LC5378'> <span class="s2">"hsep3"</span><span class="o">:</span> <span class="s2">"---------"</span><span class="p">,</span></div><div class='line' id='LC5379'> <span class="s2">"undo"</span><span class="o">:</span> <span class="p">{</span><span class="nx">name</span><span class="o">:</span> <span class="s2">"Undo"</span><span class="p">,</span> <span class="nx">disabled</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5380'> <span class="k">return</span> <span class="o">!</span><span class="nx">instance</span><span class="p">.</span><span class="nx">isUndoAvailable</span><span class="p">();</span></div><div class='line' id='LC5381'> <span class="p">}},</span></div><div class='line' id='LC5382'> <span class="s2">"redo"</span><span class="o">:</span> <span class="p">{</span><span class="nx">name</span><span class="o">:</span> <span class="s2">"Redo"</span><span class="p">,</span> <span class="nx">disabled</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5383'> <span class="k">return</span> <span class="o">!</span><span class="nx">instance</span><span class="p">.</span><span class="nx">isRedoAvailable</span><span class="p">();</span></div><div class='line' id='LC5384'> <span class="p">}}</span></div><div class='line' id='LC5385'> <span class="p">}</span></div><div class='line' id='LC5386'> <span class="p">,</span> <span class="nx">defaultOptions</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC5387'> <span class="nx">selector</span> <span class="o">:</span> <span class="s2">"#"</span> <span class="o">+</span> <span class="nx">selectorId</span> <span class="o">+</span> <span class="s1">' table, #'</span> <span class="o">+</span> <span class="nx">selectorId</span> <span class="o">+</span> <span class="s1">' div'</span><span class="p">,</span></div><div class='line' id='LC5388'> <span class="nx">trigger</span> <span class="o">:</span> <span class="s1">'right'</span><span class="p">,</span></div><div class='line' id='LC5389'> <span class="nx">callback</span> <span class="o">:</span> <span class="nx">onContextClick</span></div><div class='line' id='LC5390'> <span class="p">}</span></div><div class='line' id='LC5391'> <span class="p">,</span> <span class="nx">options</span> <span class="o">=</span> <span class="p">{}</span></div><div class='line' id='LC5392'> <span class="p">,</span> <span class="nx">i</span></div><div class='line' id='LC5393'> <span class="p">,</span> <span class="nx">ilen</span></div><div class='line' id='LC5394'> <span class="p">,</span> <span class="nx">settings</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getSettings</span><span class="p">();</span></div><div class='line' id='LC5395'><br/></div><div class='line' id='LC5396'> <span class="kd">function</span> <span class="nx">onContextClick</span><span class="p">(</span><span class="nx">key</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5397'> <span class="kd">var</span> <span class="nx">corners</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getSelected</span><span class="p">();</span> <span class="c1">//[top left row, top left col, bottom right row, bottom right col]</span></div><div class='line' id='LC5398'><br/></div><div class='line' id='LC5399'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">corners</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5400'> <span class="k">return</span><span class="p">;</span> <span class="c1">//needed when there are 2 grids on a page</span></div><div class='line' id='LC5401'> <span class="p">}</span></div><div class='line' id='LC5402'><br/></div><div class='line' id='LC5403'> <span class="k">switch</span> <span class="p">(</span><span class="nx">key</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5404'> <span class="k">case</span> <span class="s2">"row_above"</span><span class="o">:</span></div><div class='line' id='LC5405'> <span class="nx">instance</span><span class="p">.</span><span class="nx">alter</span><span class="p">(</span><span class="s2">"insert_row"</span><span class="p">,</span> <span class="nx">corners</span><span class="p">[</span><span class="mi">0</span><span class="p">]);</span></div><div class='line' id='LC5406'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC5407'><br/></div><div class='line' id='LC5408'> <span class="k">case</span> <span class="s2">"row_below"</span><span class="o">:</span></div><div class='line' id='LC5409'> <span class="nx">instance</span><span class="p">.</span><span class="nx">alter</span><span class="p">(</span><span class="s2">"insert_row"</span><span class="p">,</span> <span class="nx">corners</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">+</span> <span class="mi">1</span><span class="p">);</span></div><div class='line' id='LC5410'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC5411'><br/></div><div class='line' id='LC5412'> <span class="k">case</span> <span class="s2">"col_left"</span><span class="o">:</span></div><div class='line' id='LC5413'> <span class="nx">instance</span><span class="p">.</span><span class="nx">alter</span><span class="p">(</span><span class="s2">"insert_col"</span><span class="p">,</span> <span class="nx">corners</span><span class="p">[</span><span class="mi">1</span><span class="p">]);</span></div><div class='line' id='LC5414'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC5415'><br/></div><div class='line' id='LC5416'> <span class="k">case</span> <span class="s2">"col_right"</span><span class="o">:</span></div><div class='line' id='LC5417'> <span class="nx">instance</span><span class="p">.</span><span class="nx">alter</span><span class="p">(</span><span class="s2">"insert_col"</span><span class="p">,</span> <span class="nx">corners</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">+</span> <span class="mi">1</span><span class="p">);</span></div><div class='line' id='LC5418'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC5419'><br/></div><div class='line' id='LC5420'> <span class="k">case</span> <span class="s2">"remove_row"</span><span class="o">:</span></div><div class='line' id='LC5421'> <span class="nx">instance</span><span class="p">.</span><span class="nx">alter</span><span class="p">(</span><span class="nx">key</span><span class="p">,</span> <span class="nx">corners</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="p">(</span><span class="nx">corners</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">-</span> <span class="nx">corners</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="o">+</span> <span class="mi">1</span><span class="p">);</span></div><div class='line' id='LC5422'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC5423'><br/></div><div class='line' id='LC5424'> <span class="k">case</span> <span class="s2">"remove_col"</span><span class="o">:</span></div><div class='line' id='LC5425'> <span class="nx">instance</span><span class="p">.</span><span class="nx">alter</span><span class="p">(</span><span class="nx">key</span><span class="p">,</span> <span class="nx">corners</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="p">(</span><span class="nx">corners</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">-</span> <span class="nx">corners</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="o">+</span> <span class="mi">1</span><span class="p">);</span></div><div class='line' id='LC5426'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC5427'><br/></div><div class='line' id='LC5428'> <span class="k">case</span> <span class="s2">"undo"</span><span class="o">:</span></div><div class='line' id='LC5429'> <span class="nx">instance</span><span class="p">.</span><span class="nx">undo</span><span class="p">();</span></div><div class='line' id='LC5430'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC5431'><br/></div><div class='line' id='LC5432'> <span class="k">case</span> <span class="s2">"redo"</span><span class="o">:</span></div><div class='line' id='LC5433'> <span class="nx">instance</span><span class="p">.</span><span class="nx">redo</span><span class="p">();</span></div><div class='line' id='LC5434'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC5435'> <span class="p">}</span></div><div class='line' id='LC5436'> <span class="p">}</span></div><div class='line' id='LC5437'><br/></div><div class='line' id='LC5438'> <span class="kd">function</span> <span class="nx">isDisabled</span><span class="p">(</span><span class="nx">key</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5439'> <span class="c1">//TODO rewrite</span></div><div class='line' id='LC5440'> <span class="cm">/*if (instance.blockedCols.main.find('th.htRowHeader.active').length && (key === "remove_col" || key === "col_left" || key === "col_right")) {</span></div><div class='line' id='LC5441'><span class="cm"> return true;</span></div><div class='line' id='LC5442'><span class="cm"> }</span></div><div class='line' id='LC5443'><span class="cm"> else if (instance.blockedRows.main.find('th.htColHeader.active').length && (key === "remove_row" || key === "row_above" || key === "row_below")) {</span></div><div class='line' id='LC5444'><span class="cm"> return true;</span></div><div class='line' id='LC5445'><span class="cm"> }</span></div><div class='line' id='LC5446'><span class="cm"> else*/</span></div><div class='line' id='LC5447'> <span class="k">if</span> <span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">countRows</span><span class="p">()</span> <span class="o">>=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getSettings</span><span class="p">().</span><span class="nx">maxRows</span> <span class="o">&&</span> <span class="p">(</span><span class="nx">key</span> <span class="o">===</span> <span class="s2">"row_above"</span> <span class="o">||</span> <span class="nx">key</span> <span class="o">===</span> <span class="s2">"row_below"</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC5448'> <span class="k">return</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC5449'> <span class="p">}</span></div><div class='line' id='LC5450'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">countCols</span><span class="p">()</span> <span class="o">>=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getSettings</span><span class="p">().</span><span class="nx">maxCols</span> <span class="o">&&</span> <span class="p">(</span><span class="nx">key</span> <span class="o">===</span> <span class="s2">"col_left"</span> <span class="o">||</span> <span class="nx">key</span> <span class="o">===</span> <span class="s2">"col_right"</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC5451'> <span class="k">return</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC5452'> <span class="p">}</span></div><div class='line' id='LC5453'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC5454'> <span class="k">return</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC5455'> <span class="p">}</span></div><div class='line' id='LC5456'> <span class="p">}</span></div><div class='line' id='LC5457'><br/></div><div class='line' id='LC5458'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">settings</span><span class="p">.</span><span class="nx">contextMenu</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5459'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC5460'> <span class="p">}</span></div><div class='line' id='LC5461'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">settings</span><span class="p">.</span><span class="nx">contextMenu</span> <span class="o">===</span> <span class="kc">true</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//contextMenu is true</span></div><div class='line' id='LC5462'> <span class="nx">options</span><span class="p">.</span><span class="nx">items</span> <span class="o">=</span> <span class="nx">allItems</span><span class="p">;</span></div><div class='line' id='LC5463'> <span class="p">}</span></div><div class='line' id='LC5464'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nb">Object</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">toString</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nx">settings</span><span class="p">.</span><span class="nx">contextMenu</span><span class="p">)</span> <span class="o">===</span> <span class="s1">'[object Array]'</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//contextMenu is an array</span></div><div class='line' id='LC5465'> <span class="nx">options</span><span class="p">.</span><span class="nx">items</span> <span class="o">=</span> <span class="p">{};</span></div><div class='line' id='LC5466'> <span class="k">for</span> <span class="p">(</span><span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">ilen</span> <span class="o">=</span> <span class="nx">settings</span><span class="p">.</span><span class="nx">contextMenu</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">ilen</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5467'> <span class="kd">var</span> <span class="nx">key</span> <span class="o">=</span> <span class="nx">settings</span><span class="p">.</span><span class="nx">contextMenu</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span></div><div class='line' id='LC5468'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">allItems</span><span class="p">[</span><span class="nx">key</span><span class="p">]</span> <span class="o">===</span> <span class="s1">'undefined'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5469'> <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s1">'Context menu key "'</span> <span class="o">+</span> <span class="nx">key</span> <span class="o">+</span> <span class="s1">'" is not recognised'</span><span class="p">);</span></div><div class='line' id='LC5470'> <span class="p">}</span></div><div class='line' id='LC5471'> <span class="nx">options</span><span class="p">.</span><span class="nx">items</span><span class="p">[</span><span class="nx">key</span><span class="p">]</span> <span class="o">=</span> <span class="nx">allItems</span><span class="p">[</span><span class="nx">key</span><span class="p">];</span></div><div class='line' id='LC5472'> <span class="p">}</span></div><div class='line' id='LC5473'> <span class="p">}</span></div><div class='line' id='LC5474'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nb">Object</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">toString</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nx">settings</span><span class="p">.</span><span class="nx">contextMenu</span><span class="p">)</span> <span class="o">===</span> <span class="s1">'[object Object]'</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//contextMenu is an options object as defined in http://medialize.github.com/jQuery-contextMenu/docs.html</span></div><div class='line' id='LC5475'> <span class="nx">options</span> <span class="o">=</span> <span class="nx">settings</span><span class="p">.</span><span class="nx">contextMenu</span><span class="p">;</span></div><div class='line' id='LC5476'> <span class="k">if</span> <span class="p">(</span><span class="nx">options</span><span class="p">.</span><span class="nx">items</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5477'> <span class="k">for</span> <span class="p">(</span><span class="nx">i</span> <span class="k">in</span> <span class="nx">options</span><span class="p">.</span><span class="nx">items</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5478'> <span class="k">if</span> <span class="p">(</span><span class="nx">options</span><span class="p">.</span><span class="nx">items</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">i</span><span class="p">)</span> <span class="o">&&</span> <span class="nx">allItems</span><span class="p">[</span><span class="nx">i</span><span class="p">])</span> <span class="p">{</span></div><div class='line' id='LC5479'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">options</span><span class="p">.</span><span class="nx">items</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">===</span> <span class="s1">'string'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5480'> <span class="nx">options</span><span class="p">.</span><span class="nx">items</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">=</span> <span class="nx">allItems</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span></div><div class='line' id='LC5481'> <span class="p">}</span></div><div class='line' id='LC5482'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC5483'> <span class="nx">options</span><span class="p">.</span><span class="nx">items</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">=</span> <span class="nx">$</span><span class="p">.</span><span class="nx">extend</span><span class="p">(</span><span class="kc">true</span><span class="p">,</span> <span class="nx">allItems</span><span class="p">[</span><span class="nx">i</span><span class="p">],</span> <span class="nx">options</span><span class="p">.</span><span class="nx">items</span><span class="p">[</span><span class="nx">i</span><span class="p">]);</span></div><div class='line' id='LC5484'> <span class="p">}</span></div><div class='line' id='LC5485'> <span class="p">}</span></div><div class='line' id='LC5486'> <span class="p">}</span></div><div class='line' id='LC5487'> <span class="p">}</span></div><div class='line' id='LC5488'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC5489'> <span class="nx">options</span><span class="p">.</span><span class="nx">items</span> <span class="o">=</span> <span class="nx">allItems</span><span class="p">;</span></div><div class='line' id='LC5490'> <span class="p">}</span></div><div class='line' id='LC5491'><br/></div><div class='line' id='LC5492'> <span class="k">if</span> <span class="p">(</span><span class="nx">options</span><span class="p">.</span><span class="nx">callback</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5493'> <span class="kd">var</span> <span class="nx">handsontableCallback</span> <span class="o">=</span> <span class="nx">defaultOptions</span><span class="p">.</span><span class="nx">callback</span><span class="p">;</span></div><div class='line' id='LC5494'> <span class="kd">var</span> <span class="nx">customCallback</span> <span class="o">=</span> <span class="nx">options</span><span class="p">.</span><span class="nx">callback</span><span class="p">;</span></div><div class='line' id='LC5495'> <span class="nx">options</span><span class="p">.</span><span class="nx">callback</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">key</span><span class="p">,</span> <span class="nx">options</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5496'> <span class="nx">handsontableCallback</span><span class="p">(</span><span class="nx">key</span><span class="p">,</span> <span class="nx">options</span><span class="p">);</span></div><div class='line' id='LC5497'> <span class="nx">customCallback</span><span class="p">(</span><span class="nx">key</span><span class="p">,</span> <span class="nx">options</span><span class="p">);</span></div><div class='line' id='LC5498'> <span class="p">}</span></div><div class='line' id='LC5499'> <span class="p">}</span></div><div class='line' id='LC5500'> <span class="p">}</span></div><div class='line' id='LC5501'><br/></div><div class='line' id='LC5502'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">selectorId</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5503'> <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s2">"Handsontable container must have an id"</span><span class="p">);</span></div><div class='line' id='LC5504'> <span class="p">}</span></div><div class='line' id='LC5505'><br/></div><div class='line' id='LC5506'> <span class="nx">$</span><span class="p">.</span><span class="nx">contextMenu</span><span class="p">(</span><span class="nx">$</span><span class="p">.</span><span class="nx">extend</span><span class="p">(</span><span class="kc">true</span><span class="p">,</span> <span class="nx">defaultOptions</span><span class="p">,</span> <span class="nx">options</span><span class="p">));</span></div><div class='line' id='LC5507'><span class="p">}</span></div><div class='line' id='LC5508'><br/></div><div class='line' id='LC5509'><span class="kd">function</span> <span class="nx">destroyContextMenu</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5510'> <span class="kd">var</span> <span class="nx">id</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">id</span><span class="p">;</span></div><div class='line' id='LC5511'> <span class="nx">$</span><span class="p">.</span><span class="nx">contextMenu</span><span class="p">(</span><span class="s1">'destroy'</span><span class="p">,</span> <span class="s2">"#"</span> <span class="o">+</span> <span class="nx">id</span> <span class="o">+</span> <span class="s1">' table, #'</span> <span class="o">+</span> <span class="nx">id</span> <span class="o">+</span> <span class="s1">' div'</span><span class="p">);</span></div><div class='line' id='LC5512'><span class="p">}</span></div><div class='line' id='LC5513'><br/></div><div class='line' id='LC5514'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="s1">'afterInit'</span><span class="p">,</span> <span class="nx">createContextMenu</span><span class="p">);</span></div><div class='line' id='LC5515'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="s1">'afterDestroy'</span><span class="p">,</span> <span class="nx">destroyContextMenu</span><span class="p">);</span></div><div class='line' id='LC5516'><span class="cm">/**</span></div><div class='line' id='LC5517'><span class="cm"> * This plugin adds support for legacy features, deprecated APIs, etc.</span></div><div class='line' id='LC5518'><span class="cm"> */</span></div><div class='line' id='LC5519'><br/></div><div class='line' id='LC5520'><span class="cm">/**</span></div><div class='line' id='LC5521'><span class="cm"> * Support for old autocomplete syntax</span></div><div class='line' id='LC5522'><span class="cm"> * For old syntax, see: https://github.com/warpech/jquery-handsontable/blob/8c9e701d090ea4620fe08b6a1a048672fadf6c7e/README.md#defining-autocomplete</span></div><div class='line' id='LC5523'><span class="cm"> */</span></div><div class='line' id='LC5524'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="s1">'beforeGetCellMeta'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">cellProperties</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5525'> <span class="kd">var</span> <span class="nx">settings</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getSettings</span><span class="p">(),</span> <span class="nx">data</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getData</span><span class="p">(),</span> <span class="nx">i</span><span class="p">,</span> <span class="nx">ilen</span><span class="p">,</span> <span class="nx">a</span><span class="p">;</span></div><div class='line' id='LC5526'><br/></div><div class='line' id='LC5527'> <span class="c1">//isWritable - deprecated since 0.8.0</span></div><div class='line' id='LC5528'> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">isWritable</span> <span class="o">=</span> <span class="o">!</span><span class="nx">cellProperties</span><span class="p">.</span><span class="nx">readOnly</span><span class="p">;</span></div><div class='line' id='LC5529'><br/></div><div class='line' id='LC5530'> <span class="c1">//autocomplete - deprecated since 0.7.1 (see CHANGELOG.md)</span></div><div class='line' id='LC5531'> <span class="k">if</span> <span class="p">(</span><span class="nx">settings</span><span class="p">.</span><span class="nx">autoComplete</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5532'> <span class="k">for</span> <span class="p">(</span><span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">ilen</span> <span class="o">=</span> <span class="nx">settings</span><span class="p">.</span><span class="nx">autoComplete</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">ilen</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5533'> <span class="k">if</span> <span class="p">(</span><span class="nx">settings</span><span class="p">.</span><span class="nx">autoComplete</span><span class="p">[</span><span class="nx">i</span><span class="p">].</span><span class="nx">match</span><span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">,</span> <span class="nx">data</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC5534'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">type</span> <span class="o">===</span> <span class="s1">'undefined'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5535'> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">type</span> <span class="o">=</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">AutocompleteCell</span><span class="p">;</span></div><div class='line' id='LC5536'> <span class="p">}</span></div><div class='line' id='LC5537'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC5538'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">type</span><span class="p">.</span><span class="nx">renderer</span> <span class="o">===</span> <span class="s1">'undefined'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5539'> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">type</span><span class="p">.</span><span class="nx">renderer</span> <span class="o">=</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">AutocompleteCell</span><span class="p">.</span><span class="nx">renderer</span><span class="p">;</span></div><div class='line' id='LC5540'> <span class="p">}</span></div><div class='line' id='LC5541'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">type</span><span class="p">.</span><span class="nx">editor</span> <span class="o">===</span> <span class="s1">'undefined'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5542'> <span class="nx">cellProperties</span><span class="p">.</span><span class="nx">type</span><span class="p">.</span><span class="nx">editor</span> <span class="o">=</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">AutocompleteCell</span><span class="p">.</span><span class="nx">editor</span><span class="p">;</span></div><div class='line' id='LC5543'> <span class="p">}</span></div><div class='line' id='LC5544'> <span class="p">}</span></div><div class='line' id='LC5545'> <span class="k">for</span> <span class="p">(</span><span class="nx">a</span> <span class="k">in</span> <span class="nx">settings</span><span class="p">.</span><span class="nx">autoComplete</span><span class="p">[</span><span class="nx">i</span><span class="p">])</span> <span class="p">{</span></div><div class='line' id='LC5546'> <span class="k">if</span> <span class="p">(</span><span class="nx">settings</span><span class="p">.</span><span class="nx">autoComplete</span><span class="p">[</span><span class="nx">i</span><span class="p">].</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">a</span><span class="p">)</span> <span class="o">&&</span> <span class="nx">a</span> <span class="o">!==</span> <span class="s1">'match'</span> <span class="o">&&</span> <span class="k">typeof</span> <span class="nx">cellProperties</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">===</span> <span class="s1">'undefined'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5547'> <span class="k">if</span> <span class="p">(</span><span class="nx">a</span> <span class="o">===</span> <span class="s1">'source'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5548'> <span class="nx">cellProperties</span><span class="p">[</span><span class="nx">a</span><span class="p">]</span> <span class="o">=</span> <span class="nx">settings</span><span class="p">.</span><span class="nx">autoComplete</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="nx">a</span><span class="p">](</span><span class="nx">row</span><span class="p">,</span> <span class="nx">col</span><span class="p">);</span></div><div class='line' id='LC5549'> <span class="p">}</span></div><div class='line' id='LC5550'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC5551'> <span class="nx">cellProperties</span><span class="p">[</span><span class="nx">a</span><span class="p">]</span> <span class="o">=</span> <span class="nx">settings</span><span class="p">.</span><span class="nx">autoComplete</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="nx">a</span><span class="p">];</span></div><div class='line' id='LC5552'> <span class="p">}</span></div><div class='line' id='LC5553'> <span class="p">}</span></div><div class='line' id='LC5554'> <span class="p">}</span></div><div class='line' id='LC5555'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC5556'> <span class="p">}</span></div><div class='line' id='LC5557'> <span class="p">}</span></div><div class='line' id='LC5558'> <span class="p">}</span></div><div class='line' id='LC5559'><span class="p">});</span></div><div class='line' id='LC5560'><span class="kd">function</span> <span class="nx">HandsontableManualColumnMove</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5561'> <span class="kd">var</span> <span class="nx">instance</span></div><div class='line' id='LC5562'> <span class="p">,</span> <span class="nx">pressed</span></div><div class='line' id='LC5563'> <span class="p">,</span> <span class="nx">startCol</span></div><div class='line' id='LC5564'> <span class="p">,</span> <span class="nx">endCol</span></div><div class='line' id='LC5565'> <span class="p">,</span> <span class="nx">startX</span></div><div class='line' id='LC5566'> <span class="p">,</span> <span class="nx">startOffset</span><span class="p">;</span></div><div class='line' id='LC5567'><br/></div><div class='line' id='LC5568'> <span class="kd">var</span> <span class="nx">ghost</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'DIV'</span><span class="p">)</span></div><div class='line' id='LC5569'> <span class="p">,</span> <span class="nx">ghostStyle</span> <span class="o">=</span> <span class="nx">ghost</span><span class="p">.</span><span class="nx">style</span><span class="p">;</span></div><div class='line' id='LC5570'><br/></div><div class='line' id='LC5571'> <span class="nx">ghost</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="s1">'ghost'</span><span class="p">;</span></div><div class='line' id='LC5572'> <span class="nx">ghostStyle</span><span class="p">.</span><span class="nx">position</span> <span class="o">=</span> <span class="s1">'absolute'</span><span class="p">;</span></div><div class='line' id='LC5573'> <span class="nx">ghostStyle</span><span class="p">.</span><span class="nx">top</span> <span class="o">=</span> <span class="s1">'25px'</span><span class="p">;</span></div><div class='line' id='LC5574'> <span class="nx">ghostStyle</span><span class="p">.</span><span class="nx">left</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC5575'> <span class="nx">ghostStyle</span><span class="p">.</span><span class="nx">width</span> <span class="o">=</span> <span class="s1">'10px'</span><span class="p">;</span></div><div class='line' id='LC5576'> <span class="nx">ghostStyle</span><span class="p">.</span><span class="nx">height</span> <span class="o">=</span> <span class="s1">'10px'</span><span class="p">;</span></div><div class='line' id='LC5577'> <span class="nx">ghostStyle</span><span class="p">.</span><span class="nx">backgroundColor</span> <span class="o">=</span> <span class="s1">'#CCC'</span><span class="p">;</span></div><div class='line' id='LC5578'> <span class="nx">ghostStyle</span><span class="p">.</span><span class="nx">opacity</span> <span class="o">=</span> <span class="mf">0.7</span><span class="p">;</span></div><div class='line' id='LC5579'><br/></div><div class='line' id='LC5580'> <span class="nx">$</span><span class="p">(</span><span class="nb">document</span><span class="p">).</span><span class="nx">mousemove</span><span class="p">(</span><span class="kd">function</span> <span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5581'> <span class="k">if</span> <span class="p">(</span><span class="nx">pressed</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5582'> <span class="nx">ghostStyle</span><span class="p">.</span><span class="nx">left</span> <span class="o">=</span> <span class="nx">startOffset</span> <span class="o">+</span> <span class="nx">e</span><span class="p">.</span><span class="nx">pageX</span> <span class="o">-</span> <span class="nx">startX</span> <span class="o">+</span> <span class="mi">6</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC5583'> <span class="k">if</span> <span class="p">(</span><span class="nx">ghostStyle</span><span class="p">.</span><span class="nx">display</span> <span class="o">===</span> <span class="s1">'none'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5584'> <span class="nx">ghostStyle</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s1">'block'</span><span class="p">;</span></div><div class='line' id='LC5585'> <span class="p">}</span></div><div class='line' id='LC5586'> <span class="p">}</span></div><div class='line' id='LC5587'> <span class="p">});</span></div><div class='line' id='LC5588'><br/></div><div class='line' id='LC5589'> <span class="nx">$</span><span class="p">(</span><span class="nb">document</span><span class="p">).</span><span class="nx">mouseup</span><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5590'> <span class="k">if</span> <span class="p">(</span><span class="nx">pressed</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5591'> <span class="k">if</span> <span class="p">(</span><span class="nx">startCol</span> <span class="o"><</span> <span class="nx">endCol</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5592'> <span class="nx">endCol</span><span class="o">--</span><span class="p">;</span></div><div class='line' id='LC5593'> <span class="p">}</span></div><div class='line' id='LC5594'> <span class="k">if</span> <span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSettings</span><span class="p">().</span><span class="nx">rowHeaders</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5595'> <span class="nx">startCol</span><span class="o">--</span><span class="p">;</span></div><div class='line' id='LC5596'> <span class="nx">endCol</span><span class="o">--</span><span class="p">;</span></div><div class='line' id='LC5597'> <span class="p">}</span></div><div class='line' id='LC5598'> <span class="nx">instance</span><span class="p">.</span><span class="nx">manualColumnPositions</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="nx">endCol</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">manualColumnPositions</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="nx">startCol</span><span class="p">,</span> <span class="mi">1</span><span class="p">)[</span><span class="mi">0</span><span class="p">]);</span></div><div class='line' id='LC5599'> <span class="nx">$</span><span class="p">(</span><span class="s1">'.manualColumnMover.active'</span><span class="p">).</span><span class="nx">removeClass</span><span class="p">(</span><span class="s1">'active'</span><span class="p">);</span></div><div class='line' id='LC5600'> <span class="nx">pressed</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC5601'> <span class="nx">instance</span><span class="p">.</span><span class="nx">forceFullRender</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC5602'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">render</span><span class="p">();</span> <span class="c1">//updates all</span></div><div class='line' id='LC5603'> <span class="nx">ghostStyle</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s1">'none'</span><span class="p">;</span></div><div class='line' id='LC5604'><br/></div><div class='line' id='LC5605'> <span class="nx">saveManualColumnPositions</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">instance</span><span class="p">);</span></div><div class='line' id='LC5606'><br/></div><div class='line' id='LC5607'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'afterColumnMove'</span><span class="p">,</span> <span class="nx">startCol</span><span class="p">,</span> <span class="nx">endCol</span><span class="p">);</span></div><div class='line' id='LC5608'> <span class="p">}</span></div><div class='line' id='LC5609'> <span class="p">});</span></div><div class='line' id='LC5610'><br/></div><div class='line' id='LC5611'> <span class="kd">var</span> <span class="nx">saveManualColumnPositions</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5612'> <span class="kd">var</span> <span class="nx">instance</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC5613'><br/></div><div class='line' id='LC5614'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'persistentStateSave'</span><span class="p">,</span> <span class="s1">'manualColumnPositions'</span><span class="p">,</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">manualColumnPositions</span><span class="p">);</span></div><div class='line' id='LC5615'> <span class="p">};</span></div><div class='line' id='LC5616'><br/></div><div class='line' id='LC5617'> <span class="kd">var</span> <span class="nx">loadManualColumnPositions</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5618'> <span class="kd">var</span> <span class="nx">instance</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC5619'> <span class="kd">var</span> <span class="nx">storedState</span> <span class="o">=</span> <span class="p">{};</span></div><div class='line' id='LC5620'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'persistentStateLoad'</span><span class="p">,</span> <span class="s1">'manualColumnPositions'</span><span class="p">,</span> <span class="nx">storedState</span><span class="p">);</span></div><div class='line' id='LC5621'><br/></div><div class='line' id='LC5622'> <span class="k">return</span> <span class="nx">storedState</span><span class="p">.</span><span class="nx">value</span><span class="p">;</span></div><div class='line' id='LC5623'> <span class="p">};</span></div><div class='line' id='LC5624'><br/></div><div class='line' id='LC5625'><br/></div><div class='line' id='LC5626'> <span class="kd">var</span> <span class="nx">bindMoveColEvents</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5627'> <span class="kd">var</span> <span class="nx">that</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC5628'> <span class="k">this</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'mousedown.handsontable'</span><span class="p">,</span> <span class="s1">'.manualColumnMover'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5629'> <span class="nx">instance</span> <span class="o">=</span> <span class="nx">that</span><span class="p">;</span></div><div class='line' id='LC5630'><br/></div><div class='line' id='LC5631'> <span class="kd">var</span> <span class="nx">mover</span> <span class="o">=</span> <span class="nx">e</span><span class="p">.</span><span class="nx">currentTarget</span><span class="p">;</span></div><div class='line' id='LC5632'> <span class="kd">var</span> <span class="nx">TH</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">closest</span><span class="p">(</span><span class="nx">mover</span><span class="p">,</span> <span class="s1">'TH'</span><span class="p">);</span></div><div class='line' id='LC5633'> <span class="nx">startCol</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">index</span><span class="p">(</span><span class="nx">TH</span><span class="p">);</span></div><div class='line' id='LC5634'> <span class="nx">pressed</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC5635'> <span class="nx">startX</span> <span class="o">=</span> <span class="nx">e</span><span class="p">.</span><span class="nx">pageX</span><span class="p">;</span></div><div class='line' id='LC5636'><br/></div><div class='line' id='LC5637'> <span class="kd">var</span> <span class="nx">TABLE</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">$table</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span></div><div class='line' id='LC5638'> <span class="nx">TABLE</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">ghost</span><span class="p">);</span></div><div class='line' id='LC5639'> <span class="nx">ghostStyle</span><span class="p">.</span><span class="nx">width</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">outerWidth</span><span class="p">(</span><span class="nx">TH</span><span class="p">)</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC5640'> <span class="nx">ghostStyle</span><span class="p">.</span><span class="nx">height</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">outerHeight</span><span class="p">(</span><span class="nx">TABLE</span><span class="p">)</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC5641'> <span class="nx">startOffset</span> <span class="o">=</span> <span class="nb">parseInt</span><span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">offset</span><span class="p">(</span><span class="nx">TH</span><span class="p">).</span><span class="nx">left</span> <span class="o">-</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">offset</span><span class="p">(</span><span class="nx">TABLE</span><span class="p">).</span><span class="nx">left</span><span class="p">,</span> <span class="mi">10</span><span class="p">);</span></div><div class='line' id='LC5642'> <span class="nx">ghostStyle</span><span class="p">.</span><span class="nx">left</span> <span class="o">=</span> <span class="nx">startOffset</span> <span class="o">+</span> <span class="mi">6</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC5643'> <span class="p">});</span></div><div class='line' id='LC5644'> <span class="k">this</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'mouseenter.handsontable'</span><span class="p">,</span> <span class="s1">'td, th'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5645'> <span class="k">if</span> <span class="p">(</span><span class="nx">pressed</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5646'> <span class="kd">var</span> <span class="nx">active</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">THEAD</span><span class="p">.</span><span class="nx">querySelector</span><span class="p">(</span><span class="s1">'.manualColumnMover.active'</span><span class="p">);</span></div><div class='line' id='LC5647'> <span class="k">if</span> <span class="p">(</span><span class="nx">active</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5648'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">removeClass</span><span class="p">(</span><span class="nx">active</span><span class="p">,</span> <span class="s1">'active'</span><span class="p">);</span></div><div class='line' id='LC5649'> <span class="p">}</span></div><div class='line' id='LC5650'> <span class="nx">endCol</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">index</span><span class="p">(</span><span class="k">this</span><span class="p">);</span></div><div class='line' id='LC5651'> <span class="kd">var</span> <span class="nx">THs</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">THEAD</span><span class="p">.</span><span class="nx">querySelectorAll</span><span class="p">(</span><span class="s1">'th'</span><span class="p">);</span></div><div class='line' id='LC5652'> <span class="kd">var</span> <span class="nx">mover</span> <span class="o">=</span> <span class="nx">THs</span><span class="p">[</span><span class="nx">endCol</span><span class="p">].</span><span class="nx">querySelector</span><span class="p">(</span><span class="s1">'.manualColumnMover'</span><span class="p">);</span></div><div class='line' id='LC5653'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">mover</span><span class="p">,</span> <span class="s1">'active'</span><span class="p">);</span></div><div class='line' id='LC5654'> <span class="p">}</span></div><div class='line' id='LC5655'> <span class="p">});</span></div><div class='line' id='LC5656'> <span class="p">};</span></div><div class='line' id='LC5657'><br/></div><div class='line' id='LC5658'> <span class="k">this</span><span class="p">.</span><span class="nx">beforeInit</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5659'> <span class="k">this</span><span class="p">.</span><span class="nx">manualColumnPositions</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC5660'> <span class="p">};</span></div><div class='line' id='LC5661'><br/></div><div class='line' id='LC5662'> <span class="k">this</span><span class="p">.</span><span class="nx">init</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">source</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5663'> <span class="kd">var</span> <span class="nx">instance</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC5664'><br/></div><div class='line' id='LC5665'> <span class="kd">var</span> <span class="nx">manualColMoveEnabled</span> <span class="o">=</span> <span class="nb">Boolean</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">getSettings</span><span class="p">().</span><span class="nx">manualColumnMove</span><span class="p">);</span></div><div class='line' id='LC5666'><br/></div><div class='line' id='LC5667'> <span class="k">if</span> <span class="p">(</span><span class="nx">manualColMoveEnabled</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5668'> <span class="kd">var</span> <span class="nx">initialManualColumnPositions</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getSettings</span><span class="p">().</span><span class="nx">manualColumnMove</span><span class="p">;</span></div><div class='line' id='LC5669'><br/></div><div class='line' id='LC5670'> <span class="kd">var</span> <span class="nx">loadedManualColumnPositions</span> <span class="o">=</span> <span class="nx">loadManualColumnPositions</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">instance</span><span class="p">);</span></div><div class='line' id='LC5671'><br/></div><div class='line' id='LC5672'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">loadedManualColumnPositions</span> <span class="o">!=</span> <span class="s1">'undefined'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5673'> <span class="k">this</span><span class="p">.</span><span class="nx">manualColumnPositions</span> <span class="o">=</span> <span class="nx">loadedManualColumnPositions</span><span class="p">;</span></div><div class='line' id='LC5674'> <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">initialManualColumnPositions</span> <span class="k">instanceof</span> <span class="nb">Array</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5675'> <span class="k">this</span><span class="p">.</span><span class="nx">manualColumnPositions</span> <span class="o">=</span> <span class="nx">initialManualColumnPositions</span><span class="p">;</span></div><div class='line' id='LC5676'> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC5677'> <span class="k">this</span><span class="p">.</span><span class="nx">manualColumnPositions</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC5678'> <span class="p">}</span></div><div class='line' id='LC5679'><br/></div><div class='line' id='LC5680'><br/></div><div class='line' id='LC5681'> <span class="nx">instance</span><span class="p">.</span><span class="nx">forceFullRender</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC5682'><br/></div><div class='line' id='LC5683'> <span class="k">if</span> <span class="p">(</span><span class="nx">source</span> <span class="o">==</span> <span class="s1">'afterInit'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5684'> <span class="nx">bindMoveColEvents</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">);</span></div><div class='line' id='LC5685'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">manualColumnPositions</span><span class="p">.</span><span class="nx">length</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5686'> <span class="k">this</span><span class="p">.</span><span class="nx">forceFullRender</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC5687'> <span class="k">this</span><span class="p">.</span><span class="nx">render</span><span class="p">();</span></div><div class='line' id='LC5688'> <span class="p">}</span></div><div class='line' id='LC5689'><br/></div><div class='line' id='LC5690'> <span class="p">}</span></div><div class='line' id='LC5691'><br/></div><div class='line' id='LC5692'> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC5693'> <span class="k">this</span><span class="p">.</span><span class="nx">manualColumnPositions</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC5694'> <span class="p">}</span></div><div class='line' id='LC5695'> <span class="p">};</span></div><div class='line' id='LC5696'><br/></div><div class='line' id='LC5697'> <span class="k">this</span><span class="p">.</span><span class="nx">modifyCol</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">col</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5698'> <span class="c1">//TODO test performance: http://jsperf.com/object-wrapper-vs-primitive/2</span></div><div class='line' id='LC5699'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">getSettings</span><span class="p">().</span><span class="nx">manualColumnMove</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5700'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="k">this</span><span class="p">.</span><span class="nx">manualColumnPositions</span><span class="p">[</span><span class="nx">col</span><span class="p">]</span> <span class="o">===</span> <span class="s1">'undefined'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5701'> <span class="k">this</span><span class="p">.</span><span class="nx">manualColumnPositions</span><span class="p">[</span><span class="nx">col</span><span class="p">]</span> <span class="o">=</span> <span class="nx">col</span><span class="p">;</span></div><div class='line' id='LC5702'> <span class="p">}</span></div><div class='line' id='LC5703'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">manualColumnPositions</span><span class="p">[</span><span class="nx">col</span><span class="p">];</span></div><div class='line' id='LC5704'> <span class="p">}</span></div><div class='line' id='LC5705'> <span class="k">return</span> <span class="nx">col</span><span class="p">;</span></div><div class='line' id='LC5706'> <span class="p">};</span></div><div class='line' id='LC5707'><br/></div><div class='line' id='LC5708'> <span class="k">this</span><span class="p">.</span><span class="nx">getColHeader</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">col</span><span class="p">,</span> <span class="nx">TH</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5709'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">getSettings</span><span class="p">().</span><span class="nx">manualColumnMove</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5710'> <span class="kd">var</span> <span class="nx">DIV</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'DIV'</span><span class="p">);</span></div><div class='line' id='LC5711'> <span class="nx">DIV</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="s1">'manualColumnMover'</span><span class="p">;</span></div><div class='line' id='LC5712'> <span class="nx">TH</span><span class="p">.</span><span class="nx">firstChild</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">DIV</span><span class="p">);</span></div><div class='line' id='LC5713'> <span class="p">}</span></div><div class='line' id='LC5714'> <span class="p">};</span></div><div class='line' id='LC5715'><span class="p">}</span></div><div class='line' id='LC5716'><span class="kd">var</span> <span class="nx">htManualColumnMove</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">HandsontableManualColumnMove</span><span class="p">();</span></div><div class='line' id='LC5717'><br/></div><div class='line' id='LC5718'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="s1">'beforeInit'</span><span class="p">,</span> <span class="nx">htManualColumnMove</span><span class="p">.</span><span class="nx">beforeInit</span><span class="p">);</span></div><div class='line' id='LC5719'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="s1">'afterInit'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5720'> <span class="nx">htManualColumnMove</span><span class="p">.</span><span class="nx">init</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="s1">'afterInit'</span><span class="p">)</span></div><div class='line' id='LC5721'><span class="p">});</span></div><div class='line' id='LC5722'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="s1">'afterUpdateSettings'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5723'> <span class="nx">htManualColumnMove</span><span class="p">.</span><span class="nx">init</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="s1">'afterUpdateSettings'</span><span class="p">)</span></div><div class='line' id='LC5724'><span class="p">});</span></div><div class='line' id='LC5725'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="s1">'afterGetColHeader'</span><span class="p">,</span> <span class="nx">htManualColumnMove</span><span class="p">.</span><span class="nx">getColHeader</span><span class="p">);</span></div><div class='line' id='LC5726'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="s1">'modifyCol'</span><span class="p">,</span> <span class="nx">htManualColumnMove</span><span class="p">.</span><span class="nx">modifyCol</span><span class="p">);</span></div><div class='line' id='LC5727'><br/></div><div class='line' id='LC5728'><span class="kd">function</span> <span class="nx">HandsontableManualColumnResize</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5729'> <span class="kd">var</span> <span class="nx">pressed</span></div><div class='line' id='LC5730'> <span class="p">,</span> <span class="nx">currentTH</span></div><div class='line' id='LC5731'> <span class="p">,</span> <span class="nx">currentCol</span></div><div class='line' id='LC5732'> <span class="p">,</span> <span class="nx">currentWidth</span></div><div class='line' id='LC5733'> <span class="p">,</span> <span class="nx">autoresizeTimeout</span></div><div class='line' id='LC5734'> <span class="p">,</span> <span class="nx">instance</span></div><div class='line' id='LC5735'> <span class="p">,</span> <span class="nx">newSize</span></div><div class='line' id='LC5736'> <span class="p">,</span> <span class="nx">startX</span></div><div class='line' id='LC5737'> <span class="p">,</span> <span class="nx">startWidth</span></div><div class='line' id='LC5738'> <span class="p">,</span> <span class="nx">startOffset</span></div><div class='line' id='LC5739'> <span class="p">,</span> <span class="nx">dblclick</span> <span class="o">=</span> <span class="mi">0</span></div><div class='line' id='LC5740'> <span class="p">,</span> <span class="nx">resizer</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'DIV'</span><span class="p">)</span></div><div class='line' id='LC5741'> <span class="p">,</span> <span class="nx">handle</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'DIV'</span><span class="p">)</span></div><div class='line' id='LC5742'> <span class="p">,</span> <span class="nx">line</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'DIV'</span><span class="p">)</span></div><div class='line' id='LC5743'> <span class="p">,</span> <span class="nx">lineStyle</span> <span class="o">=</span> <span class="nx">line</span><span class="p">.</span><span class="nx">style</span><span class="p">;</span></div><div class='line' id='LC5744'><br/></div><div class='line' id='LC5745'> <span class="nx">resizer</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="s1">'manualColumnResizer'</span><span class="p">;</span></div><div class='line' id='LC5746'><br/></div><div class='line' id='LC5747'> <span class="nx">handle</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="s1">'manualColumnResizerHandle'</span><span class="p">;</span></div><div class='line' id='LC5748'> <span class="nx">resizer</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">handle</span><span class="p">);</span></div><div class='line' id='LC5749'><br/></div><div class='line' id='LC5750'> <span class="nx">line</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="s1">'manualColumnResizerLine'</span><span class="p">;</span></div><div class='line' id='LC5751'> <span class="nx">resizer</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">line</span><span class="p">);</span></div><div class='line' id='LC5752'><br/></div><div class='line' id='LC5753'> <span class="kd">var</span> <span class="nx">$document</span> <span class="o">=</span> <span class="nx">$</span><span class="p">(</span><span class="nb">document</span><span class="p">);</span></div><div class='line' id='LC5754'><br/></div><div class='line' id='LC5755'> <span class="nx">$document</span><span class="p">.</span><span class="nx">mousemove</span><span class="p">(</span><span class="kd">function</span> <span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5756'> <span class="k">if</span> <span class="p">(</span><span class="nx">pressed</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5757'> <span class="nx">currentWidth</span> <span class="o">=</span> <span class="nx">startWidth</span> <span class="o">+</span> <span class="p">(</span><span class="nx">e</span><span class="p">.</span><span class="nx">pageX</span> <span class="o">-</span> <span class="nx">startX</span><span class="p">);</span></div><div class='line' id='LC5758'> <span class="nx">newSize</span> <span class="o">=</span> <span class="nx">setManualSize</span><span class="p">(</span><span class="nx">currentCol</span><span class="p">,</span> <span class="nx">currentWidth</span><span class="p">);</span> <span class="c1">//save col width</span></div><div class='line' id='LC5759'> <span class="nx">resizer</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">left</span> <span class="o">=</span> <span class="nx">startOffset</span> <span class="o">+</span> <span class="nx">currentWidth</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC5760'> <span class="p">}</span></div><div class='line' id='LC5761'> <span class="p">});</span></div><div class='line' id='LC5762'><br/></div><div class='line' id='LC5763'> <span class="nx">$document</span><span class="p">.</span><span class="nx">mouseup</span><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5764'> <span class="k">if</span> <span class="p">(</span><span class="nx">pressed</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5765'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">removeClass</span><span class="p">(</span><span class="nx">resizer</span><span class="p">,</span> <span class="s1">'active'</span><span class="p">);</span></div><div class='line' id='LC5766'> <span class="nx">pressed</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC5767'> <span class="nx">instance</span><span class="p">.</span><span class="nx">forceFullRender</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC5768'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">render</span><span class="p">();</span> <span class="c1">//updates all</span></div><div class='line' id='LC5769'><br/></div><div class='line' id='LC5770'> <span class="nx">saveManualColumnWidths</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">instance</span><span class="p">);</span></div><div class='line' id='LC5771'><br/></div><div class='line' id='LC5772'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'afterColumnResize'</span><span class="p">,</span> <span class="nx">currentCol</span><span class="p">,</span> <span class="nx">newSize</span><span class="p">);</span></div><div class='line' id='LC5773'> <span class="nx">refreshResizerPosition</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">currentTH</span><span class="p">);</span></div><div class='line' id='LC5774'> <span class="p">}</span></div><div class='line' id='LC5775'> <span class="p">});</span></div><div class='line' id='LC5776'><br/></div><div class='line' id='LC5777'> <span class="kd">var</span> <span class="nx">saveManualColumnWidths</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5778'> <span class="kd">var</span> <span class="nx">instance</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC5779'><br/></div><div class='line' id='LC5780'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'persistentStateSave'</span><span class="p">,</span> <span class="s1">'manualColumnWidths'</span><span class="p">,</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">manualColumnWidths</span><span class="p">);</span></div><div class='line' id='LC5781'> <span class="p">};</span></div><div class='line' id='LC5782'><br/></div><div class='line' id='LC5783'> <span class="kd">var</span> <span class="nx">loadManualColumnWidths</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5784'> <span class="kd">var</span> <span class="nx">instance</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC5785'> <span class="kd">var</span> <span class="nx">storedState</span> <span class="o">=</span> <span class="p">{};</span></div><div class='line' id='LC5786'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'persistentStateLoad'</span><span class="p">,</span> <span class="s1">'manualColumnWidths'</span><span class="p">,</span> <span class="nx">storedState</span><span class="p">);</span></div><div class='line' id='LC5787'><br/></div><div class='line' id='LC5788'> <span class="k">return</span> <span class="nx">storedState</span><span class="p">.</span><span class="nx">value</span><span class="p">;</span></div><div class='line' id='LC5789'> <span class="p">};</span></div><div class='line' id='LC5790'><br/></div><div class='line' id='LC5791'> <span class="kd">function</span> <span class="nx">refreshResizerPosition</span><span class="p">(</span><span class="nx">TH</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5792'> <span class="nx">instance</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC5793'> <span class="nx">currentTH</span> <span class="o">=</span> <span class="nx">TH</span><span class="p">;</span></div><div class='line' id='LC5794'><br/></div><div class='line' id='LC5795'> <span class="kd">var</span> <span class="nx">col</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">getCoords</span><span class="p">(</span><span class="nx">TH</span><span class="p">)[</span><span class="mi">1</span><span class="p">];</span> <span class="c1">//getCoords returns array [row, col]</span></div><div class='line' id='LC5796'> <span class="k">if</span> <span class="p">(</span><span class="nx">col</span> <span class="o">>=</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//if not row header</span></div><div class='line' id='LC5797'> <span class="nx">currentCol</span> <span class="o">=</span> <span class="nx">col</span><span class="p">;</span></div><div class='line' id='LC5798'> <span class="kd">var</span> <span class="nx">rootOffset</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">offset</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">[</span><span class="mi">0</span><span class="p">]).</span><span class="nx">left</span><span class="p">;</span></div><div class='line' id='LC5799'> <span class="kd">var</span> <span class="nx">thOffset</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">offset</span><span class="p">(</span><span class="nx">TH</span><span class="p">).</span><span class="nx">left</span><span class="p">;</span></div><div class='line' id='LC5800'> <span class="nx">startOffset</span> <span class="o">=</span> <span class="p">(</span><span class="nx">thOffset</span> <span class="o">-</span> <span class="nx">rootOffset</span><span class="p">)</span> <span class="o">-</span> <span class="mi">6</span><span class="p">;</span></div><div class='line' id='LC5801'><br/></div><div class='line' id='LC5802'> <span class="nx">resizer</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">left</span> <span class="o">=</span> <span class="nx">startOffset</span> <span class="o">+</span> <span class="nx">getColumnWidth</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">TH</span><span class="p">)</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC5803'><br/></div><div class='line' id='LC5804'> <span class="k">this</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">resizer</span><span class="p">);</span></div><div class='line' id='LC5805'> <span class="p">}</span></div><div class='line' id='LC5806'> <span class="p">}</span></div><div class='line' id='LC5807'><br/></div><div class='line' id='LC5808'> <span class="kd">function</span> <span class="nx">getColumnWidth</span><span class="p">(</span><span class="nx">TH</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5809'> <span class="kd">var</span> <span class="nx">instance</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC5810'> <span class="kd">var</span> <span class="nx">thOffset</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">offset</span><span class="p">(</span><span class="nx">TH</span><span class="p">).</span><span class="nx">left</span> <span class="o">-</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">offset</span><span class="p">(</span><span class="nx">TH</span><span class="p">).</span><span class="nx">left</span><span class="p">;</span></div><div class='line' id='LC5811'> <span class="kd">var</span> <span class="nx">rootOffset</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">offset</span><span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">[</span><span class="mi">0</span><span class="p">]).</span><span class="nx">left</span><span class="p">;</span></div><div class='line' id='LC5812'> <span class="kd">var</span> <span class="nx">col</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">getCoords</span><span class="p">(</span><span class="nx">TH</span><span class="p">)[</span><span class="mi">1</span><span class="p">];</span> <span class="c1">//getCoords returns array [row, col]</span></div><div class='line' id='LC5813'> <span class="kd">var</span> <span class="nx">thWidth</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getColWidth</span><span class="p">(</span><span class="nx">col</span><span class="p">);</span></div><div class='line' id='LC5814'> <span class="kd">var</span> <span class="nx">maxWidth</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">maximumVisibleElementWidth</span><span class="p">(</span><span class="nx">thOffset</span> <span class="o">-</span> <span class="nx">rootOffset</span><span class="p">);</span></div><div class='line' id='LC5815'> <span class="k">return</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">min</span><span class="p">(</span><span class="nx">thWidth</span><span class="p">,</span> <span class="nx">maxWidth</span><span class="p">);</span></div><div class='line' id='LC5816'> <span class="p">}</span></div><div class='line' id='LC5817'><br/></div><div class='line' id='LC5818'> <span class="kd">function</span> <span class="nx">refreshLinePosition</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5819'> <span class="nx">startWidth</span> <span class="o">=</span> <span class="nx">getColumnWidth</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">currentTH</span><span class="p">);</span></div><div class='line' id='LC5820'> <span class="k">this</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">resizer</span><span class="p">,</span> <span class="s1">'active'</span><span class="p">);</span></div><div class='line' id='LC5821'> <span class="nx">lineStyle</span><span class="p">.</span><span class="nx">height</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">wt</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">outerHeight</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">$table</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC5822'> <span class="nx">pressed</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC5823'> <span class="p">}</span></div><div class='line' id='LC5824'><br/></div><div class='line' id='LC5825'> <span class="kd">var</span> <span class="nx">bindManualColumnWidthEvents</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5826'> <span class="kd">var</span> <span class="nx">instance</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC5827'><br/></div><div class='line' id='LC5828'> <span class="k">this</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'mouseenter.handsontable'</span><span class="p">,</span> <span class="s1">'th'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5829'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">pressed</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5830'> <span class="nx">refreshResizerPosition</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">e</span><span class="p">.</span><span class="nx">currentTarget</span><span class="p">);</span></div><div class='line' id='LC5831'> <span class="p">}</span></div><div class='line' id='LC5832'> <span class="p">});</span></div><div class='line' id='LC5833'><br/></div><div class='line' id='LC5834'> <span class="k">this</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'mousedown.handsontable'</span><span class="p">,</span> <span class="s1">'.manualColumnResizer'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5835'> <span class="k">if</span> <span class="p">(</span><span class="nx">autoresizeTimeout</span> <span class="o">==</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5836'> <span class="nx">autoresizeTimeout</span> <span class="o">=</span> <span class="nx">setTimeout</span><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5837'> <span class="k">if</span> <span class="p">(</span><span class="nx">dblclick</span> <span class="o">>=</span> <span class="mi">2</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5838'> <span class="nx">setManualSize</span><span class="p">(</span><span class="nx">currentCol</span><span class="p">,</span> <span class="nx">htAutoColumnSize</span><span class="p">.</span><span class="nx">determineColumnWidth</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">currentCol</span><span class="p">));</span></div><div class='line' id='LC5839'> <span class="nx">instance</span><span class="p">.</span><span class="nx">forceFullRender</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC5840'> <span class="nx">instance</span><span class="p">.</span><span class="nx">view</span><span class="p">.</span><span class="nx">render</span><span class="p">();</span> <span class="c1">//updates all</span></div><div class='line' id='LC5841'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">run</span><span class="p">(</span><span class="s1">'afterColumnResize'</span><span class="p">,</span> <span class="nx">currentCol</span><span class="p">,</span> <span class="nx">newSize</span><span class="p">);</span></div><div class='line' id='LC5842'> <span class="p">}</span></div><div class='line' id='LC5843'> <span class="nx">dblclick</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC5844'> <span class="nx">autoresizeTimeout</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span></div><div class='line' id='LC5845'> <span class="p">},</span> <span class="mi">500</span><span class="p">);</span></div><div class='line' id='LC5846'> <span class="p">}</span></div><div class='line' id='LC5847'> <span class="nx">dblclick</span><span class="o">++</span><span class="p">;</span></div><div class='line' id='LC5848'> <span class="p">});</span></div><div class='line' id='LC5849'><br/></div><div class='line' id='LC5850'> <span class="k">this</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'mousedown.handsontable'</span><span class="p">,</span> <span class="s1">'.manualColumnResizer'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5851'> <span class="nx">startX</span> <span class="o">=</span> <span class="nx">e</span><span class="p">.</span><span class="nx">pageX</span><span class="p">;</span></div><div class='line' id='LC5852'> <span class="nx">refreshLinePosition</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">instance</span><span class="p">);</span></div><div class='line' id='LC5853'> <span class="p">});</span></div><div class='line' id='LC5854'> <span class="p">};</span></div><div class='line' id='LC5855'><br/></div><div class='line' id='LC5856'> <span class="k">this</span><span class="p">.</span><span class="nx">beforeInit</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5857'> <span class="k">this</span><span class="p">.</span><span class="nx">manualColumnWidths</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC5858'> <span class="p">};</span></div><div class='line' id='LC5859'><br/></div><div class='line' id='LC5860'> <span class="k">this</span><span class="p">.</span><span class="nx">init</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">source</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5861'> <span class="kd">var</span> <span class="nx">instance</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC5862'> <span class="kd">var</span> <span class="nx">manualColumnWidthEnabled</span> <span class="o">=</span> <span class="nb">Boolean</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">getSettings</span><span class="p">().</span><span class="nx">manualColumnResize</span><span class="p">);</span></div><div class='line' id='LC5863'><br/></div><div class='line' id='LC5864'> <span class="k">if</span> <span class="p">(</span><span class="nx">manualColumnWidthEnabled</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5865'> <span class="kd">var</span> <span class="nx">initialColumnWidths</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getSettings</span><span class="p">().</span><span class="nx">manualColumnResize</span><span class="p">;</span></div><div class='line' id='LC5866'><br/></div><div class='line' id='LC5867'> <span class="kd">var</span> <span class="nx">loadedManualColumnWidths</span> <span class="o">=</span> <span class="nx">loadManualColumnWidths</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">instance</span><span class="p">);</span></div><div class='line' id='LC5868'><br/></div><div class='line' id='LC5869'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">loadedManualColumnWidths</span> <span class="o">!=</span> <span class="s1">'undefined'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5870'> <span class="k">this</span><span class="p">.</span><span class="nx">manualColumnWidths</span> <span class="o">=</span> <span class="nx">loadedManualColumnWidths</span><span class="p">;</span></div><div class='line' id='LC5871'> <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">initialColumnWidths</span> <span class="k">instanceof</span> <span class="nb">Array</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5872'> <span class="k">this</span><span class="p">.</span><span class="nx">manualColumnWidths</span> <span class="o">=</span> <span class="nx">initialColumnWidths</span><span class="p">;</span></div><div class='line' id='LC5873'> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC5874'> <span class="k">this</span><span class="p">.</span><span class="nx">manualColumnWidths</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC5875'> <span class="p">}</span></div><div class='line' id='LC5876'><br/></div><div class='line' id='LC5877'> <span class="k">if</span> <span class="p">(</span><span class="nx">source</span> <span class="o">==</span> <span class="s1">'afterInit'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5878'> <span class="nx">bindManualColumnWidthEvents</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">);</span></div><div class='line' id='LC5879'> <span class="nx">instance</span><span class="p">.</span><span class="nx">forceFullRender</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC5880'> <span class="nx">instance</span><span class="p">.</span><span class="nx">render</span><span class="p">();</span></div><div class='line' id='LC5881'> <span class="p">}</span></div><div class='line' id='LC5882'> <span class="p">}</span></div><div class='line' id='LC5883'> <span class="p">};</span></div><div class='line' id='LC5884'><br/></div><div class='line' id='LC5885'><br/></div><div class='line' id='LC5886'> <span class="kd">var</span> <span class="nx">setManualSize</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">col</span><span class="p">,</span> <span class="nx">width</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5887'> <span class="nx">width</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="nx">width</span><span class="p">,</span> <span class="mi">20</span><span class="p">);</span></div><div class='line' id='LC5888'><br/></div><div class='line' id='LC5889'> <span class="cm">/**</span></div><div class='line' id='LC5890'><span class="cm"> * We need to run col through modifyCol hook, in case the order of displayed columns is different than the order</span></div><div class='line' id='LC5891'><span class="cm"> * in data source. For instance, this order can be modified by manualColumnMove plugin.</span></div><div class='line' id='LC5892'><span class="cm"> */</span></div><div class='line' id='LC5893'> <span class="nx">col</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="s1">'modifyCol'</span><span class="p">,</span> <span class="nx">col</span><span class="p">);</span></div><div class='line' id='LC5894'><br/></div><div class='line' id='LC5895'> <span class="nx">instance</span><span class="p">.</span><span class="nx">manualColumnWidths</span><span class="p">[</span><span class="nx">col</span><span class="p">]</span> <span class="o">=</span> <span class="nx">width</span><span class="p">;</span></div><div class='line' id='LC5896'> <span class="k">return</span> <span class="nx">width</span><span class="p">;</span></div><div class='line' id='LC5897'> <span class="p">};</span></div><div class='line' id='LC5898'><br/></div><div class='line' id='LC5899'> <span class="k">this</span><span class="p">.</span><span class="nx">getColWidth</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">col</span><span class="p">,</span> <span class="nx">response</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5900'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">getSettings</span><span class="p">().</span><span class="nx">manualColumnResize</span> <span class="o">&&</span> <span class="k">this</span><span class="p">.</span><span class="nx">manualColumnWidths</span><span class="p">[</span><span class="nx">col</span><span class="p">])</span> <span class="p">{</span></div><div class='line' id='LC5901'> <span class="nx">response</span><span class="p">.</span><span class="nx">width</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">manualColumnWidths</span><span class="p">[</span><span class="nx">col</span><span class="p">];</span></div><div class='line' id='LC5902'> <span class="p">}</span></div><div class='line' id='LC5903'> <span class="p">};</span></div><div class='line' id='LC5904'><span class="p">}</span></div><div class='line' id='LC5905'><span class="kd">var</span> <span class="nx">htManualColumnResize</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">HandsontableManualColumnResize</span><span class="p">();</span></div><div class='line' id='LC5906'><br/></div><div class='line' id='LC5907'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="s1">'beforeInit'</span><span class="p">,</span> <span class="nx">htManualColumnResize</span><span class="p">.</span><span class="nx">beforeInit</span><span class="p">);</span></div><div class='line' id='LC5908'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="s1">'afterInit'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5909'> <span class="nx">htManualColumnResize</span><span class="p">.</span><span class="nx">init</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="s1">'afterInit'</span><span class="p">)</span></div><div class='line' id='LC5910'><span class="p">});</span></div><div class='line' id='LC5911'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="s1">'afterUpdateSettings'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5912'> <span class="nx">htManualColumnResize</span><span class="p">.</span><span class="nx">init</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="s1">'afterUpdateSettings'</span><span class="p">)</span></div><div class='line' id='LC5913'><span class="p">});</span></div><div class='line' id='LC5914'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="s1">'afterGetColWidth'</span><span class="p">,</span> <span class="nx">htManualColumnResize</span><span class="p">.</span><span class="nx">getColWidth</span><span class="p">);</span></div><div class='line' id='LC5915'><br/></div><div class='line' id='LC5916'><span class="kd">function</span> <span class="nx">HandsontableObserveChanges</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC5917'> <span class="c1">// begin shim code</span></div><div class='line' id='LC5918'> <span class="c1">// fragments from https://github.com/Starcounter-Jack/JSON-Patch/blob/master/src/json-patch-duplex.js</span></div><div class='line' id='LC5919'> <span class="c1">//</span></div><div class='line' id='LC5920'> <span class="c1">// json-patch.js 0.3</span></div><div class='line' id='LC5921'> <span class="c1">// (c) 2013 Joachim Wester</span></div><div class='line' id='LC5922'> <span class="c1">// MIT license</span></div><div class='line' id='LC5923'> <span class="kd">var</span> <span class="nx">observeOps</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC5924'> <span class="s1">'new'</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">patches</span><span class="p">,</span> <span class="nx">path</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5925'> <span class="kd">var</span> <span class="nx">patch</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC5926'> <span class="nx">op</span><span class="o">:</span> <span class="s2">"add"</span><span class="p">,</span></div><div class='line' id='LC5927'> <span class="nx">path</span><span class="o">:</span> <span class="nx">path</span> <span class="o">+</span> <span class="s2">"/"</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">name</span><span class="p">,</span></div><div class='line' id='LC5928'> <span class="nx">value</span><span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">object</span><span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">name</span><span class="p">]</span></div><div class='line' id='LC5929'> <span class="p">};</span></div><div class='line' id='LC5930'> <span class="nx">patches</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">patch</span><span class="p">);</span></div><div class='line' id='LC5931'> <span class="p">},</span></div><div class='line' id='LC5932'> <span class="nx">deleted</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">patches</span><span class="p">,</span> <span class="nx">path</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5933'> <span class="kd">var</span> <span class="nx">patch</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC5934'> <span class="nx">op</span><span class="o">:</span> <span class="s2">"remove"</span><span class="p">,</span></div><div class='line' id='LC5935'> <span class="nx">path</span><span class="o">:</span> <span class="nx">path</span> <span class="o">+</span> <span class="s2">"/"</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">name</span></div><div class='line' id='LC5936'> <span class="p">};</span></div><div class='line' id='LC5937'> <span class="nx">patches</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">patch</span><span class="p">);</span></div><div class='line' id='LC5938'> <span class="p">},</span></div><div class='line' id='LC5939'> <span class="nx">updated</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">patches</span><span class="p">,</span> <span class="nx">path</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5940'> <span class="kd">var</span> <span class="nx">patch</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC5941'> <span class="nx">op</span><span class="o">:</span> <span class="s2">"replace"</span><span class="p">,</span></div><div class='line' id='LC5942'> <span class="nx">path</span><span class="o">:</span> <span class="nx">path</span> <span class="o">+</span> <span class="s2">"/"</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">name</span><span class="p">,</span></div><div class='line' id='LC5943'> <span class="nx">value</span><span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">object</span><span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">name</span><span class="p">]</span></div><div class='line' id='LC5944'> <span class="p">};</span></div><div class='line' id='LC5945'> <span class="nx">patches</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">patch</span><span class="p">);</span></div><div class='line' id='LC5946'> <span class="p">}</span></div><div class='line' id='LC5947'> <span class="p">};</span></div><div class='line' id='LC5948'><br/></div><div class='line' id='LC5949'> <span class="kd">function</span> <span class="nx">markPaths</span><span class="p">(</span><span class="nx">observer</span><span class="p">,</span> <span class="nx">node</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5950'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">key</span> <span class="k">in</span> <span class="nx">node</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5951'> <span class="k">if</span> <span class="p">(</span><span class="nx">node</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">key</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC5952'> <span class="kd">var</span> <span class="nx">kid</span> <span class="o">=</span> <span class="nx">node</span><span class="p">[</span><span class="nx">key</span><span class="p">];</span></div><div class='line' id='LC5953'> <span class="k">if</span> <span class="p">(</span><span class="nx">kid</span> <span class="k">instanceof</span> <span class="nb">Object</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5954'> <span class="nb">Object</span><span class="p">.</span><span class="nx">unobserve</span><span class="p">(</span><span class="nx">kid</span><span class="p">,</span> <span class="nx">observer</span><span class="p">);</span></div><div class='line' id='LC5955'> <span class="nx">kid</span><span class="p">.</span><span class="nx">____Path</span> <span class="o">=</span> <span class="nx">node</span><span class="p">.</span><span class="nx">____Path</span> <span class="o">+</span> <span class="s2">"/"</span> <span class="o">+</span> <span class="nx">key</span><span class="p">;</span></div><div class='line' id='LC5956'> <span class="nx">markPaths</span><span class="p">(</span><span class="nx">observer</span><span class="p">,</span> <span class="nx">kid</span><span class="p">);</span></div><div class='line' id='LC5957'> <span class="p">}</span></div><div class='line' id='LC5958'> <span class="p">}</span></div><div class='line' id='LC5959'> <span class="p">}</span></div><div class='line' id='LC5960'> <span class="p">}</span></div><div class='line' id='LC5961'><br/></div><div class='line' id='LC5962'> <span class="kd">function</span> <span class="nx">clearPaths</span><span class="p">(</span><span class="nx">observer</span><span class="p">,</span> <span class="nx">node</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5963'> <span class="k">delete</span> <span class="nx">node</span><span class="p">.</span><span class="nx">____Path</span><span class="p">;</span></div><div class='line' id='LC5964'> <span class="nb">Object</span><span class="p">.</span><span class="nx">observe</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="nx">observer</span><span class="p">);</span></div><div class='line' id='LC5965'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">nodeLen</span> <span class="o">=</span> <span class="nx">node</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">nodeLen</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5966'> <span class="kd">var</span> <span class="nx">kid</span> <span class="o">=</span> <span class="nx">node</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span></div><div class='line' id='LC5967'> <span class="k">if</span> <span class="p">(</span><span class="nx">kid</span> <span class="k">instanceof</span> <span class="nb">Object</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5968'> <span class="nx">clearPaths</span><span class="p">(</span><span class="nx">observer</span><span class="p">,</span> <span class="nx">kid</span><span class="p">);</span></div><div class='line' id='LC5969'> <span class="p">}</span></div><div class='line' id='LC5970'> <span class="p">}</span></div><div class='line' id='LC5971'> <span class="p">}</span></div><div class='line' id='LC5972'><br/></div><div class='line' id='LC5973'> <span class="kd">var</span> <span class="nx">beforeDict</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC5974'> <span class="kd">var</span> <span class="nx">callbacks</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC5975'><br/></div><div class='line' id='LC5976'> <span class="kd">function</span> <span class="nx">observe</span><span class="p">(</span><span class="nx">obj</span><span class="p">,</span> <span class="nx">callback</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5977'> <span class="kd">var</span> <span class="nx">patches</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC5978'> <span class="kd">var</span> <span class="nx">root</span> <span class="o">=</span> <span class="nx">obj</span><span class="p">;</span></div><div class='line' id='LC5979'> <span class="k">if</span> <span class="p">(</span><span class="nb">Object</span><span class="p">.</span><span class="nx">observe</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5980'> <span class="kd">var</span> <span class="nx">observer</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">arr</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5981'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">root</span><span class="p">.</span><span class="nx">___Path</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5982'> <span class="nb">Object</span><span class="p">.</span><span class="nx">unobserve</span><span class="p">(</span><span class="nx">root</span><span class="p">,</span> <span class="nx">observer</span><span class="p">);</span></div><div class='line' id='LC5983'> <span class="nx">root</span><span class="p">.</span><span class="nx">____Path</span> <span class="o">=</span> <span class="s2">""</span><span class="p">;</span></div><div class='line' id='LC5984'> <span class="nx">markPaths</span><span class="p">(</span><span class="nx">observer</span><span class="p">,</span> <span class="nx">root</span><span class="p">);</span></div><div class='line' id='LC5985'><br/></div><div class='line' id='LC5986'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">index</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">arrLen</span> <span class="o">=</span> <span class="nx">arr</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">arrLen</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5987'> <span class="kd">var</span> <span class="nx">elem</span> <span class="o">=</span> <span class="nx">arr</span><span class="p">[</span><span class="nx">index</span><span class="p">];</span></div><div class='line' id='LC5988'><br/></div><div class='line' id='LC5989'> <span class="k">if</span> <span class="p">(</span><span class="nx">elem</span><span class="p">.</span><span class="nx">name</span> <span class="o">!=</span> <span class="s2">"____Path"</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5990'> <span class="nx">observeOps</span><span class="p">[</span><span class="nx">elem</span><span class="p">.</span><span class="nx">type</span><span class="p">].</span><span class="nx">call</span><span class="p">(</span><span class="nx">elem</span><span class="p">,</span> <span class="nx">patches</span><span class="p">,</span> <span class="nx">elem</span><span class="p">.</span><span class="nx">object</span><span class="p">.</span><span class="nx">____Path</span><span class="p">);</span></div><div class='line' id='LC5991'> <span class="p">}</span></div><div class='line' id='LC5992'> <span class="p">}</span></div><div class='line' id='LC5993'><br/></div><div class='line' id='LC5994'> <span class="nx">clearPaths</span><span class="p">(</span><span class="nx">observer</span><span class="p">,</span> <span class="nx">root</span><span class="p">);</span></div><div class='line' id='LC5995'> <span class="p">}</span></div><div class='line' id='LC5996'> <span class="k">if</span> <span class="p">(</span><span class="nx">callback</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC5997'> <span class="nx">callback</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">patches</span><span class="p">);</span></div><div class='line' id='LC5998'> <span class="p">}</span></div><div class='line' id='LC5999'> <span class="p">};</span></div><div class='line' id='LC6000'> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC6001'> <span class="nx">observer</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC6002'> <span class="p">};</span></div><div class='line' id='LC6003'> <span class="kd">var</span> <span class="nx">mirror</span><span class="p">;</span></div><div class='line' id='LC6004'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">ilen</span> <span class="o">=</span> <span class="nx">beforeDict</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">ilen</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6005'> <span class="k">if</span> <span class="p">(</span><span class="nx">beforeDict</span><span class="p">[</span><span class="nx">i</span><span class="p">].</span><span class="nx">obj</span> <span class="o">===</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6006'> <span class="nx">mirror</span> <span class="o">=</span> <span class="nx">beforeDict</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span></div><div class='line' id='LC6007'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC6008'> <span class="p">}</span></div><div class='line' id='LC6009'> <span class="p">}</span></div><div class='line' id='LC6010'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">mirror</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6011'> <span class="nx">mirror</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC6012'> <span class="nx">obj</span><span class="o">:</span> <span class="nx">obj</span></div><div class='line' id='LC6013'> <span class="p">};</span></div><div class='line' id='LC6014'> <span class="nx">beforeDict</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">mirror</span><span class="p">);</span></div><div class='line' id='LC6015'> <span class="p">}</span></div><div class='line' id='LC6016'><br/></div><div class='line' id='LC6017'> <span class="nx">mirror</span><span class="p">.</span><span class="nx">value</span> <span class="o">=</span> <span class="nx">deepCopy</span><span class="p">(</span><span class="nx">obj</span><span class="p">);</span></div><div class='line' id='LC6018'><br/></div><div class='line' id='LC6019'> <span class="k">if</span> <span class="p">(</span><span class="nx">callback</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6020'> <span class="nx">callbacks</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">callback</span><span class="p">);</span></div><div class='line' id='LC6021'> <span class="kd">var</span> <span class="nx">next</span><span class="p">;</span></div><div class='line' id='LC6022'> <span class="kd">var</span> <span class="nx">intervals</span> <span class="o">=</span> <span class="p">[</span></div><div class='line' id='LC6023'> <span class="mi">100</span></div><div class='line' id='LC6024'> <span class="p">];</span></div><div class='line' id='LC6025'> <span class="kd">var</span> <span class="nx">currentInterval</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC6026'> <span class="kd">var</span> <span class="nx">dirtyCheck</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC6027'> <span class="kd">var</span> <span class="nx">temp</span> <span class="o">=</span> <span class="nx">generate</span><span class="p">(</span><span class="nx">observer</span><span class="p">);</span></div><div class='line' id='LC6028'> <span class="k">if</span> <span class="p">(</span><span class="nx">temp</span><span class="p">.</span><span class="nx">length</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6029'> <span class="nx">observer</span><span class="p">.</span><span class="nx">patches</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC6030'> <span class="nx">callback</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="kc">null</span><span class="p">,</span> <span class="nx">temp</span><span class="p">);</span></div><div class='line' id='LC6031'> <span class="p">}</span></div><div class='line' id='LC6032'> <span class="p">};</span></div><div class='line' id='LC6033'> <span class="kd">var</span> <span class="nx">fastCheck</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC6034'> <span class="nx">clearTimeout</span><span class="p">(</span><span class="nx">next</span><span class="p">);</span></div><div class='line' id='LC6035'> <span class="nx">next</span> <span class="o">=</span> <span class="nx">setTimeout</span><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC6036'> <span class="nx">dirtyCheck</span><span class="p">();</span></div><div class='line' id='LC6037'> <span class="nx">currentInterval</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC6038'> <span class="nx">next</span> <span class="o">=</span> <span class="nx">setTimeout</span><span class="p">(</span><span class="nx">slowCheck</span><span class="p">,</span> <span class="nx">intervals</span><span class="p">[</span><span class="nx">currentInterval</span><span class="o">++</span><span class="p">]);</span></div><div class='line' id='LC6039'> <span class="p">},</span> <span class="mi">0</span><span class="p">);</span></div><div class='line' id='LC6040'> <span class="p">};</span></div><div class='line' id='LC6041'> <span class="kd">var</span> <span class="nx">slowCheck</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC6042'> <span class="nx">dirtyCheck</span><span class="p">();</span></div><div class='line' id='LC6043'> <span class="k">if</span> <span class="p">(</span><span class="nx">currentInterval</span> <span class="o">==</span> <span class="nx">intervals</span><span class="p">.</span><span class="nx">length</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6044'> <span class="nx">currentInterval</span> <span class="o">=</span> <span class="nx">intervals</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC6045'> <span class="p">}</span></div><div class='line' id='LC6046'> <span class="nx">next</span> <span class="o">=</span> <span class="nx">setTimeout</span><span class="p">(</span><span class="nx">slowCheck</span><span class="p">,</span> <span class="nx">intervals</span><span class="p">[</span><span class="nx">currentInterval</span><span class="o">++</span><span class="p">]);</span></div><div class='line' id='LC6047'> <span class="p">};</span></div><div class='line' id='LC6048'><br/></div><div class='line' id='LC6049'> <span class="k">if</span> <span class="p">(</span><span class="nb">window</span><span class="p">.</span><span class="nx">addEventListener</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6050'> <span class="nb">window</span><span class="p">.</span><span class="nx">addEventListener</span><span class="p">(</span><span class="s1">'mousedown'</span><span class="p">,</span> <span class="nx">fastCheck</span><span class="p">);</span></div><div class='line' id='LC6051'> <span class="nb">window</span><span class="p">.</span><span class="nx">addEventListener</span><span class="p">(</span><span class="s1">'mouseup'</span><span class="p">,</span> <span class="nx">fastCheck</span><span class="p">);</span></div><div class='line' id='LC6052'> <span class="nb">window</span><span class="p">.</span><span class="nx">addEventListener</span><span class="p">(</span><span class="s1">'keydown'</span><span class="p">,</span> <span class="nx">fastCheck</span><span class="p">);</span></div><div class='line' id='LC6053'> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC6054'> <span class="c1">//IE8 has different syntax</span></div><div class='line' id='LC6055'> <span class="nb">window</span><span class="p">.</span><span class="nx">attachEvent</span><span class="p">(</span><span class="s1">'onmousedown'</span><span class="p">,</span> <span class="nx">fastCheck</span><span class="p">);</span></div><div class='line' id='LC6056'> <span class="nb">window</span><span class="p">.</span><span class="nx">attachEvent</span><span class="p">(</span><span class="s1">'onmouseup'</span><span class="p">,</span> <span class="nx">fastCheck</span><span class="p">);</span></div><div class='line' id='LC6057'> <span class="nb">window</span><span class="p">.</span><span class="nx">attachEvent</span><span class="p">(</span><span class="s1">'onkeydown'</span><span class="p">,</span> <span class="nx">fastCheck</span><span class="p">);</span></div><div class='line' id='LC6058'> <span class="p">}</span></div><div class='line' id='LC6059'><br/></div><div class='line' id='LC6060'> <span class="nx">next</span> <span class="o">=</span> <span class="nx">setTimeout</span><span class="p">(</span><span class="nx">slowCheck</span><span class="p">,</span> <span class="nx">intervals</span><span class="p">[</span><span class="nx">currentInterval</span><span class="o">++</span><span class="p">]);</span></div><div class='line' id='LC6061'> <span class="p">}</span></div><div class='line' id='LC6062'> <span class="p">}</span></div><div class='line' id='LC6063'> <span class="nx">observer</span><span class="p">.</span><span class="nx">patches</span> <span class="o">=</span> <span class="nx">patches</span><span class="p">;</span></div><div class='line' id='LC6064'> <span class="nx">observer</span><span class="p">.</span><span class="nx">object</span> <span class="o">=</span> <span class="nx">obj</span><span class="p">;</span></div><div class='line' id='LC6065'> <span class="k">return</span> <span class="nx">_observe</span><span class="p">(</span><span class="nx">observer</span><span class="p">,</span> <span class="nx">obj</span><span class="p">,</span> <span class="nx">patches</span><span class="p">);</span></div><div class='line' id='LC6066'> <span class="p">}</span></div><div class='line' id='LC6067'><br/></div><div class='line' id='LC6068'> <span class="c1">/// Listen to changes on an object tree, accumulate patches</span></div><div class='line' id='LC6069'> <span class="kd">function</span> <span class="nx">_observe</span><span class="p">(</span><span class="nx">observer</span><span class="p">,</span> <span class="nx">obj</span><span class="p">,</span> <span class="nx">patches</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6070'> <span class="k">if</span> <span class="p">(</span><span class="nb">Object</span><span class="p">.</span><span class="nx">observe</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6071'> <span class="nb">Object</span><span class="p">.</span><span class="nx">observe</span><span class="p">(</span><span class="nx">obj</span><span class="p">,</span> <span class="nx">observer</span><span class="p">);</span></div><div class='line' id='LC6072'> <span class="p">}</span></div><div class='line' id='LC6073'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">key</span> <span class="k">in</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6074'> <span class="k">if</span> <span class="p">(</span><span class="nx">obj</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">key</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC6075'> <span class="kd">var</span> <span class="nx">v</span> <span class="o">=</span> <span class="nx">obj</span><span class="p">[</span><span class="nx">key</span><span class="p">];</span></div><div class='line' id='LC6076'> <span class="k">if</span> <span class="p">(</span><span class="nx">v</span> <span class="o">&&</span> <span class="k">typeof</span> <span class="p">(</span><span class="nx">v</span><span class="p">)</span> <span class="o">===</span> <span class="s2">"object"</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6077'> <span class="nx">_observe</span><span class="p">(</span><span class="nx">observer</span><span class="p">,</span> <span class="nx">v</span><span class="p">,</span> <span class="nx">patches</span><span class="p">);</span></div><div class='line' id='LC6078'> <span class="p">}</span></div><div class='line' id='LC6079'> <span class="p">}</span></div><div class='line' id='LC6080'> <span class="p">}</span></div><div class='line' id='LC6081'> <span class="k">return</span> <span class="nx">observer</span><span class="p">;</span></div><div class='line' id='LC6082'> <span class="p">}</span></div><div class='line' id='LC6083'><br/></div><div class='line' id='LC6084'> <span class="kd">function</span> <span class="nx">generate</span><span class="p">(</span><span class="nx">observer</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6085'> <span class="k">if</span> <span class="p">(</span><span class="nb">Object</span><span class="p">.</span><span class="nx">observe</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6086'> <span class="nb">Object</span><span class="p">.</span><span class="nx">deliverChangeRecords</span><span class="p">(</span><span class="nx">observer</span><span class="p">);</span></div><div class='line' id='LC6087'> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC6088'> <span class="kd">var</span> <span class="nx">mirror</span><span class="p">;</span></div><div class='line' id='LC6089'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">ilen</span> <span class="o">=</span> <span class="nx">beforeDict</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">ilen</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6090'> <span class="k">if</span> <span class="p">(</span><span class="nx">beforeDict</span><span class="p">[</span><span class="nx">i</span><span class="p">].</span><span class="nx">obj</span> <span class="o">===</span> <span class="nx">observer</span><span class="p">.</span><span class="nx">object</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6091'> <span class="nx">mirror</span> <span class="o">=</span> <span class="nx">beforeDict</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span></div><div class='line' id='LC6092'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC6093'> <span class="p">}</span></div><div class='line' id='LC6094'> <span class="p">}</span></div><div class='line' id='LC6095'> <span class="nx">_generate</span><span class="p">(</span><span class="nx">mirror</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">observer</span><span class="p">.</span><span class="nx">object</span><span class="p">,</span> <span class="nx">observer</span><span class="p">.</span><span class="nx">patches</span><span class="p">,</span> <span class="s2">""</span><span class="p">);</span></div><div class='line' id='LC6096'> <span class="p">}</span></div><div class='line' id='LC6097'> <span class="k">return</span> <span class="nx">observer</span><span class="p">.</span><span class="nx">patches</span><span class="p">;</span></div><div class='line' id='LC6098'> <span class="p">}</span></div><div class='line' id='LC6099'><br/></div><div class='line' id='LC6100'> <span class="kd">function</span> <span class="nx">_generate</span><span class="p">(</span><span class="nx">mirror</span><span class="p">,</span> <span class="nx">obj</span><span class="p">,</span> <span class="nx">patches</span><span class="p">,</span> <span class="nx">path</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6101'> <span class="kd">var</span> <span class="nx">newKeys</span> <span class="o">=</span> <span class="p">[]</span></div><div class='line' id='LC6102'> <span class="p">,</span> <span class="nx">oldKeys</span> <span class="o">=</span> <span class="p">[]</span></div><div class='line' id='LC6103'> <span class="p">,</span> <span class="nx">key</span><span class="p">;</span></div><div class='line' id='LC6104'><br/></div><div class='line' id='LC6105'> <span class="k">for</span> <span class="p">(</span><span class="nx">key</span> <span class="k">in</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6106'> <span class="k">if</span> <span class="p">(</span><span class="nx">obj</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">key</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC6107'> <span class="nx">newKeys</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">key</span><span class="p">);</span></div><div class='line' id='LC6108'> <span class="p">}</span></div><div class='line' id='LC6109'> <span class="p">}</span></div><div class='line' id='LC6110'><br/></div><div class='line' id='LC6111'> <span class="k">for</span> <span class="p">(</span><span class="nx">key</span> <span class="k">in</span> <span class="nx">mirror</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6112'> <span class="k">if</span> <span class="p">(</span><span class="nx">mirror</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">key</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC6113'> <span class="nx">oldKeys</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">key</span><span class="p">);</span></div><div class='line' id='LC6114'> <span class="p">}</span></div><div class='line' id='LC6115'> <span class="p">}</span></div><div class='line' id='LC6116'><br/></div><div class='line' id='LC6117'> <span class="kd">var</span> <span class="nx">changed</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC6118'> <span class="kd">var</span> <span class="nx">deleted</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC6119'> <span class="kd">var</span> <span class="nx">t</span><span class="p">;</span></div><div class='line' id='LC6120'> <span class="k">for</span> <span class="p">(</span><span class="nx">t</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">t</span> <span class="o"><</span> <span class="nx">oldKeys</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">t</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6121'> <span class="nx">key</span> <span class="o">=</span> <span class="nx">oldKeys</span><span class="p">[</span><span class="nx">t</span><span class="p">];</span></div><div class='line' id='LC6122'> <span class="kd">var</span> <span class="nx">oldVal</span> <span class="o">=</span> <span class="nx">mirror</span><span class="p">[</span><span class="nx">key</span><span class="p">];</span></div><div class='line' id='LC6123'> <span class="k">if</span> <span class="p">(</span><span class="nx">obj</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">key</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC6124'> <span class="kd">var</span> <span class="nx">newVal</span> <span class="o">=</span> <span class="nx">obj</span><span class="p">[</span><span class="nx">key</span><span class="p">];</span></div><div class='line' id='LC6125'> <span class="k">if</span> <span class="p">(</span><span class="nx">oldVal</span> <span class="k">instanceof</span> <span class="nb">Object</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6126'> <span class="nx">_generate</span><span class="p">(</span><span class="nx">oldVal</span><span class="p">,</span> <span class="nx">newVal</span><span class="p">,</span> <span class="nx">patches</span><span class="p">,</span> <span class="nx">path</span> <span class="o">+</span> <span class="s2">"/"</span> <span class="o">+</span> <span class="nx">key</span><span class="p">);</span></div><div class='line' id='LC6127'> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC6128'> <span class="k">if</span> <span class="p">(</span><span class="nx">oldVal</span> <span class="o">!=</span> <span class="nx">newVal</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6129'> <span class="nx">changed</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC6130'> <span class="nx">patches</span><span class="p">.</span><span class="nx">push</span><span class="p">({</span></div><div class='line' id='LC6131'> <span class="nx">op</span><span class="o">:</span> <span class="s2">"replace"</span><span class="p">,</span></div><div class='line' id='LC6132'> <span class="nx">path</span><span class="o">:</span> <span class="nx">path</span> <span class="o">+</span> <span class="s2">"/"</span> <span class="o">+</span> <span class="nx">key</span><span class="p">,</span></div><div class='line' id='LC6133'> <span class="nx">value</span><span class="o">:</span> <span class="nx">newVal</span></div><div class='line' id='LC6134'> <span class="p">});</span></div><div class='line' id='LC6135'> <span class="nx">mirror</span><span class="p">[</span><span class="nx">key</span><span class="p">]</span> <span class="o">=</span> <span class="nx">newVal</span><span class="p">;</span></div><div class='line' id='LC6136'> <span class="p">}</span></div><div class='line' id='LC6137'> <span class="p">}</span></div><div class='line' id='LC6138'> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC6139'> <span class="nx">patches</span><span class="p">.</span><span class="nx">push</span><span class="p">({</span></div><div class='line' id='LC6140'> <span class="nx">op</span><span class="o">:</span> <span class="s2">"remove"</span><span class="p">,</span></div><div class='line' id='LC6141'> <span class="nx">path</span><span class="o">:</span> <span class="nx">path</span> <span class="o">+</span> <span class="s2">"/"</span> <span class="o">+</span> <span class="nx">key</span></div><div class='line' id='LC6142'> <span class="p">});</span></div><div class='line' id='LC6143'> <span class="nx">deleted</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC6144'> <span class="p">}</span></div><div class='line' id='LC6145'> <span class="p">}</span></div><div class='line' id='LC6146'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">deleted</span> <span class="o">&&</span> <span class="nx">newKeys</span><span class="p">.</span><span class="nx">length</span> <span class="o">==</span> <span class="nx">oldKeys</span><span class="p">.</span><span class="nx">length</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6147'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC6148'> <span class="p">}</span></div><div class='line' id='LC6149'> <span class="k">for</span> <span class="p">(</span><span class="nx">t</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">t</span> <span class="o"><</span> <span class="nx">newKeys</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">t</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6150'> <span class="nx">key</span> <span class="o">=</span> <span class="nx">newKeys</span><span class="p">[</span><span class="nx">t</span><span class="p">];</span></div><div class='line' id='LC6151'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">mirror</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">key</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC6152'> <span class="nx">patches</span><span class="p">.</span><span class="nx">push</span><span class="p">({</span></div><div class='line' id='LC6153'> <span class="nx">op</span><span class="o">:</span> <span class="s2">"add"</span><span class="p">,</span></div><div class='line' id='LC6154'> <span class="nx">path</span><span class="o">:</span> <span class="nx">path</span> <span class="o">+</span> <span class="s2">"/"</span> <span class="o">+</span> <span class="nx">key</span><span class="p">,</span></div><div class='line' id='LC6155'> <span class="nx">value</span><span class="o">:</span> <span class="nx">obj</span><span class="p">[</span><span class="nx">key</span><span class="p">]</span></div><div class='line' id='LC6156'> <span class="p">});</span></div><div class='line' id='LC6157'> <span class="p">}</span></div><div class='line' id='LC6158'> <span class="p">}</span></div><div class='line' id='LC6159'> <span class="p">}</span></div><div class='line' id='LC6160'><br/></div><div class='line' id='LC6161'> <span class="c1">//end shim code</span></div><div class='line' id='LC6162'><br/></div><div class='line' id='LC6163'><br/></div><div class='line' id='LC6164'> <span class="k">this</span><span class="p">.</span><span class="nx">afterLoadData</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC6165'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">observer</span> <span class="o">&&</span> <span class="k">this</span><span class="p">.</span><span class="nx">getSettings</span><span class="p">().</span><span class="nx">observeChanges</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6166'> <span class="kd">var</span> <span class="nx">that</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC6167'> <span class="k">this</span><span class="p">.</span><span class="nx">observer</span> <span class="o">=</span> <span class="nx">observe</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">getData</span><span class="p">(),</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC6168'> <span class="nx">that</span><span class="p">.</span><span class="nx">render</span><span class="p">();</span></div><div class='line' id='LC6169'> <span class="p">});</span></div><div class='line' id='LC6170'> <span class="p">}</span></div><div class='line' id='LC6171'> <span class="p">};</span></div><div class='line' id='LC6172'><br/></div><div class='line' id='LC6173'> <span class="cm">/*</span></div><div class='line' id='LC6174'><span class="cm"> Description: Performs JSON-safe deep cloning. Equivalent of JSON.parse(JSON.stringify()).</span></div><div class='line' id='LC6175'><span class="cm"> Based on deepClone7() by Kyle Simpson (https://github.com/getify)</span></div><div class='line' id='LC6176'><span class="cm"> Source: http://jsperf.com/deep-cloning-of-objects,</span></div><div class='line' id='LC6177'><span class="cm"> http://jsperf.com/structured-clone-objects/2</span></div><div class='line' id='LC6178'><span class="cm"> https://developer.mozilla.org/en-US/docs/Web/Guide/DOM/The_structured_clone_algorithm</span></div><div class='line' id='LC6179'><span class="cm"> */</span></div><div class='line' id='LC6180'><br/></div><div class='line' id='LC6181'> <span class="kd">function</span> <span class="nx">deepCopy</span><span class="p">(</span><span class="nx">objToBeCopied</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6182'> <span class="k">if</span> <span class="p">(</span><span class="nx">objToBeCopied</span> <span class="o">===</span> <span class="kc">null</span> <span class="o">||</span> <span class="o">!</span><span class="p">(</span><span class="nx">objToBeCopied</span> <span class="k">instanceof</span> <span class="nb">Object</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC6183'> <span class="k">return</span> <span class="nx">objToBeCopied</span><span class="p">;</span></div><div class='line' id='LC6184'> <span class="p">}</span></div><div class='line' id='LC6185'> <span class="kd">var</span> <span class="nx">copiedObj</span><span class="p">,</span> <span class="nx">fConstr</span> <span class="o">=</span> <span class="nx">objToBeCopied</span><span class="p">.</span><span class="nx">constructor</span><span class="p">;</span></div><div class='line' id='LC6186'> <span class="nx">copiedObj</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">fConstr</span><span class="p">();</span></div><div class='line' id='LC6187'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">sProp</span> <span class="k">in</span> <span class="nx">objToBeCopied</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6188'> <span class="k">if</span> <span class="p">(</span><span class="nx">objToBeCopied</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">sProp</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC6189'> <span class="nx">copiedObj</span><span class="p">[</span><span class="nx">sProp</span><span class="p">]</span> <span class="o">=</span> <span class="nx">deepCopy</span><span class="p">(</span><span class="nx">objToBeCopied</span><span class="p">[</span><span class="nx">sProp</span><span class="p">]);</span></div><div class='line' id='LC6190'> <span class="p">}</span></div><div class='line' id='LC6191'> <span class="p">}</span></div><div class='line' id='LC6192'> <span class="k">return</span> <span class="nx">copiedObj</span><span class="p">;</span></div><div class='line' id='LC6193'> <span class="p">}</span></div><div class='line' id='LC6194'><br/></div><div class='line' id='LC6195'><span class="p">}</span></div><div class='line' id='LC6196'><span class="kd">var</span> <span class="nx">htObserveChanges</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">HandsontableObserveChanges</span><span class="p">();</span></div><div class='line' id='LC6197'><br/></div><div class='line' id='LC6198'><span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="s1">'afterLoadData'</span><span class="p">,</span> <span class="nx">htObserveChanges</span><span class="p">.</span><span class="nx">afterLoadData</span><span class="p">);</span></div><div class='line' id='LC6199'><span class="cm">/*</span></div><div class='line' id='LC6200'><span class="cm"> *</span></div><div class='line' id='LC6201'><span class="cm"> * Plugin enables saving table state</span></div><div class='line' id='LC6202'><span class="cm"> *</span></div><div class='line' id='LC6203'><span class="cm"> * */</span></div><div class='line' id='LC6204'><br/></div><div class='line' id='LC6205'><br/></div><div class='line' id='LC6206'><span class="kd">function</span> <span class="nx">Storage</span><span class="p">(</span><span class="nx">prefix</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6207'><br/></div><div class='line' id='LC6208'> <span class="kd">var</span> <span class="nx">savedKeys</span><span class="p">;</span></div><div class='line' id='LC6209'><br/></div><div class='line' id='LC6210'> <span class="kd">var</span> <span class="nx">saveSavedKeys</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC6211'> <span class="nb">window</span><span class="p">.</span><span class="nx">localStorage</span><span class="p">[</span><span class="nx">prefix</span> <span class="o">+</span> <span class="s1">'__'</span> <span class="o">+</span> <span class="s1">'persistentStateKeys'</span><span class="p">]</span> <span class="o">=</span> <span class="nx">JSON</span><span class="p">.</span><span class="nx">stringify</span><span class="p">(</span><span class="nx">savedKeys</span><span class="p">);</span></div><div class='line' id='LC6212'> <span class="p">};</span></div><div class='line' id='LC6213'><br/></div><div class='line' id='LC6214'> <span class="kd">var</span> <span class="nx">loadSavedKeys</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC6215'> <span class="kd">var</span> <span class="nx">keysJSON</span> <span class="o">=</span> <span class="nb">window</span><span class="p">.</span><span class="nx">localStorage</span><span class="p">[</span><span class="nx">prefix</span> <span class="o">+</span> <span class="s1">'__'</span> <span class="o">+</span> <span class="s1">'persistentStateKeys'</span><span class="p">];</span></div><div class='line' id='LC6216'> <span class="kd">var</span> <span class="nx">keys</span> <span class="o">=</span> <span class="k">typeof</span> <span class="nx">keysJSON</span> <span class="o">==</span> <span class="s1">'string'</span> <span class="o">?</span> <span class="nx">JSON</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="nx">keysJSON</span><span class="p">)</span> <span class="o">:</span> <span class="k">void</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC6217'> <span class="nx">savedKeys</span> <span class="o">=</span> <span class="nx">keys</span> <span class="o">?</span> <span class="nx">keys</span> <span class="o">:</span> <span class="p">[];</span></div><div class='line' id='LC6218'> <span class="p">};</span></div><div class='line' id='LC6219'><br/></div><div class='line' id='LC6220'> <span class="kd">var</span> <span class="nx">clearSavedKeys</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC6221'> <span class="nx">savedKeys</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC6222'> <span class="nx">saveSavedKeys</span><span class="p">();</span></div><div class='line' id='LC6223'> <span class="p">};</span></div><div class='line' id='LC6224'><br/></div><div class='line' id='LC6225'> <span class="nx">loadSavedKeys</span><span class="p">();</span></div><div class='line' id='LC6226'><br/></div><div class='line' id='LC6227'> <span class="k">this</span><span class="p">.</span><span class="nx">saveValue</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">key</span><span class="p">,</span> <span class="nx">value</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6228'> <span class="nb">window</span><span class="p">.</span><span class="nx">localStorage</span><span class="p">[</span><span class="nx">prefix</span> <span class="o">+</span> <span class="s1">'_'</span> <span class="o">+</span> <span class="nx">key</span><span class="p">]</span> <span class="o">=</span> <span class="nx">JSON</span><span class="p">.</span><span class="nx">stringify</span><span class="p">(</span><span class="nx">value</span><span class="p">);</span></div><div class='line' id='LC6229'> <span class="k">if</span> <span class="p">(</span><span class="nx">savedKeys</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="nx">key</span><span class="p">)</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6230'> <span class="nx">savedKeys</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">key</span><span class="p">);</span></div><div class='line' id='LC6231'> <span class="nx">saveSavedKeys</span><span class="p">();</span></div><div class='line' id='LC6232'> <span class="p">}</span></div><div class='line' id='LC6233'><br/></div><div class='line' id='LC6234'> <span class="p">};</span></div><div class='line' id='LC6235'><br/></div><div class='line' id='LC6236'> <span class="k">this</span><span class="p">.</span><span class="nx">loadValue</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">key</span><span class="p">,</span> <span class="nx">defaultValue</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6237'><br/></div><div class='line' id='LC6238'> <span class="nx">key</span> <span class="o">=</span> <span class="k">typeof</span> <span class="nx">key</span> <span class="o">!=</span> <span class="s1">'undefined'</span> <span class="o">?</span> <span class="nx">key</span> <span class="o">:</span> <span class="nx">defaultValue</span><span class="p">;</span></div><div class='line' id='LC6239'><br/></div><div class='line' id='LC6240'> <span class="kd">var</span> <span class="nx">value</span> <span class="o">=</span> <span class="nb">window</span><span class="p">.</span><span class="nx">localStorage</span><span class="p">[</span><span class="nx">prefix</span> <span class="o">+</span> <span class="s1">'_'</span> <span class="o">+</span> <span class="nx">key</span><span class="p">];</span></div><div class='line' id='LC6241'><br/></div><div class='line' id='LC6242'> <span class="k">return</span> <span class="k">typeof</span> <span class="nx">value</span> <span class="o">==</span> <span class="s2">"undefined"</span> <span class="o">?</span> <span class="k">void</span> <span class="mi">0</span> <span class="o">:</span> <span class="nx">JSON</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="nx">value</span><span class="p">);</span></div><div class='line' id='LC6243'><br/></div><div class='line' id='LC6244'> <span class="p">};</span></div><div class='line' id='LC6245'><br/></div><div class='line' id='LC6246'> <span class="k">this</span><span class="p">.</span><span class="nx">reset</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">key</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6247'> <span class="nb">window</span><span class="p">.</span><span class="nx">localStorage</span><span class="p">.</span><span class="nx">removeItem</span><span class="p">(</span><span class="nx">prefix</span> <span class="o">+</span> <span class="s1">'_'</span> <span class="o">+</span> <span class="nx">key</span><span class="p">);</span></div><div class='line' id='LC6248'> <span class="p">};</span></div><div class='line' id='LC6249'><br/></div><div class='line' id='LC6250'> <span class="k">this</span><span class="p">.</span><span class="nx">resetAll</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC6251'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">index</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">index</span> <span class="o"><</span> <span class="nx">savedKeys</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">index</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6252'> <span class="nb">window</span><span class="p">.</span><span class="nx">localStorage</span><span class="p">.</span><span class="nx">removeItem</span><span class="p">(</span><span class="nx">prefix</span> <span class="o">+</span> <span class="s1">'_'</span> <span class="o">+</span> <span class="nx">savedKeys</span><span class="p">[</span><span class="nx">index</span><span class="p">]);</span></div><div class='line' id='LC6253'> <span class="p">}</span></div><div class='line' id='LC6254'><br/></div><div class='line' id='LC6255'> <span class="nx">clearSavedKeys</span><span class="p">();</span></div><div class='line' id='LC6256'> <span class="p">};</span></div><div class='line' id='LC6257'><br/></div><div class='line' id='LC6258'><span class="p">}</span></div><div class='line' id='LC6259'><br/></div><div class='line' id='LC6260'><br/></div><div class='line' id='LC6261'><span class="p">(</span><span class="kd">function</span> <span class="p">(</span><span class="nx">StorageClass</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6262'> <span class="kd">function</span> <span class="nx">HandsontablePersistentState</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC6263'> <span class="kd">var</span> <span class="nx">plugin</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC6264'><br/></div><div class='line' id='LC6265'><br/></div><div class='line' id='LC6266'> <span class="k">this</span><span class="p">.</span><span class="nx">init</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC6267'> <span class="kd">var</span> <span class="nx">instance</span> <span class="o">=</span> <span class="k">this</span><span class="p">,</span></div><div class='line' id='LC6268'> <span class="nx">pluginSettings</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getSettings</span><span class="p">()[</span><span class="s1">'persistentState'</span><span class="p">];</span></div><div class='line' id='LC6269'><br/></div><div class='line' id='LC6270'> <span class="nx">plugin</span><span class="p">.</span><span class="nx">enabled</span> <span class="o">=</span> <span class="nb">Boolean</span><span class="p">(</span><span class="nx">pluginSettings</span><span class="p">);</span></div><div class='line' id='LC6271'><br/></div><div class='line' id='LC6272'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">plugin</span><span class="p">.</span><span class="nx">enabled</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6273'> <span class="nx">removeHooks</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">instance</span><span class="p">);</span></div><div class='line' id='LC6274'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC6275'> <span class="p">}</span></div><div class='line' id='LC6276'><br/></div><div class='line' id='LC6277'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">instance</span><span class="p">.</span><span class="nx">storage</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6278'> <span class="nx">instance</span><span class="p">.</span><span class="nx">storage</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">StorageClass</span><span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">rootElement</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">id</span><span class="p">);</span></div><div class='line' id='LC6279'> <span class="p">}</span></div><div class='line' id='LC6280'><br/></div><div class='line' id='LC6281'> <span class="nx">instance</span><span class="p">.</span><span class="nx">resetState</span> <span class="o">=</span> <span class="nx">plugin</span><span class="p">.</span><span class="nx">resetValue</span><span class="p">;</span></div><div class='line' id='LC6282'><br/></div><div class='line' id='LC6283'> <span class="nx">addHooks</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">instance</span><span class="p">);</span></div><div class='line' id='LC6284'><br/></div><div class='line' id='LC6285'> <span class="p">};</span></div><div class='line' id='LC6286'><br/></div><div class='line' id='LC6287'> <span class="k">this</span><span class="p">.</span><span class="nx">saveValue</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">key</span><span class="p">,</span> <span class="nx">value</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6288'> <span class="kd">var</span> <span class="nx">instance</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC6289'><br/></div><div class='line' id='LC6290'> <span class="nx">instance</span><span class="p">.</span><span class="nx">storage</span><span class="p">.</span><span class="nx">saveValue</span><span class="p">(</span><span class="nx">key</span><span class="p">,</span> <span class="nx">value</span><span class="p">);</span></div><div class='line' id='LC6291'> <span class="p">};</span></div><div class='line' id='LC6292'><br/></div><div class='line' id='LC6293'> <span class="k">this</span><span class="p">.</span><span class="nx">loadValue</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">key</span><span class="p">,</span> <span class="nx">saveTo</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6294'> <span class="kd">var</span> <span class="nx">instance</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC6295'><br/></div><div class='line' id='LC6296'> <span class="nx">saveTo</span><span class="p">.</span><span class="nx">value</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">storage</span><span class="p">.</span><span class="nx">loadValue</span><span class="p">(</span><span class="nx">key</span><span class="p">);</span></div><div class='line' id='LC6297'> <span class="p">};</span></div><div class='line' id='LC6298'><br/></div><div class='line' id='LC6299'> <span class="k">this</span><span class="p">.</span><span class="nx">resetValue</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">key</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6300'> <span class="kd">var</span> <span class="nx">instance</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC6301'><br/></div><div class='line' id='LC6302'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">key</span> <span class="o">!=</span> <span class="s1">'undefined'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6303'> <span class="nx">instance</span><span class="p">.</span><span class="nx">storage</span><span class="p">.</span><span class="nx">reset</span><span class="p">(</span><span class="nx">key</span><span class="p">);</span></div><div class='line' id='LC6304'> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC6305'> <span class="nx">instance</span><span class="p">.</span><span class="nx">storage</span><span class="p">.</span><span class="nx">resetAll</span><span class="p">();</span></div><div class='line' id='LC6306'> <span class="p">}</span></div><div class='line' id='LC6307'><br/></div><div class='line' id='LC6308'> <span class="p">};</span></div><div class='line' id='LC6309'><br/></div><div class='line' id='LC6310'> <span class="kd">var</span> <span class="nx">hooks</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC6311'> <span class="s1">'persistentStateSave'</span><span class="o">:</span> <span class="nx">plugin</span><span class="p">.</span><span class="nx">saveValue</span><span class="p">,</span></div><div class='line' id='LC6312'> <span class="s1">'persistentStateLoad'</span><span class="o">:</span> <span class="nx">plugin</span><span class="p">.</span><span class="nx">loadValue</span><span class="p">,</span></div><div class='line' id='LC6313'> <span class="s1">'persistentStateReset'</span><span class="o">:</span> <span class="nx">plugin</span><span class="p">.</span><span class="nx">resetValue</span></div><div class='line' id='LC6314'> <span class="p">};</span></div><div class='line' id='LC6315'><br/></div><div class='line' id='LC6316'> <span class="kd">function</span> <span class="nx">addHooks</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC6317'> <span class="kd">var</span> <span class="nx">instance</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC6318'><br/></div><div class='line' id='LC6319'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">hookName</span> <span class="k">in</span> <span class="nx">hooks</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6320'> <span class="k">if</span> <span class="p">(</span><span class="nx">hooks</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">hookName</span><span class="p">)</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">hookExists</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">hookName</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC6321'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="nx">hookName</span><span class="p">,</span> <span class="nx">hooks</span><span class="p">[</span><span class="nx">hookName</span><span class="p">]);</span></div><div class='line' id='LC6322'> <span class="p">}</span></div><div class='line' id='LC6323'> <span class="p">}</span></div><div class='line' id='LC6324'> <span class="p">}</span></div><div class='line' id='LC6325'><br/></div><div class='line' id='LC6326'> <span class="kd">function</span> <span class="nx">removeHooks</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC6327'> <span class="kd">var</span> <span class="nx">instance</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC6328'><br/></div><div class='line' id='LC6329'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">hookName</span> <span class="k">in</span> <span class="nx">hooks</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6330'> <span class="k">if</span> <span class="p">(</span><span class="nx">hooks</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">hookName</span><span class="p">)</span> <span class="o">&&</span> <span class="nx">hookExists</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">hookName</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC6331'> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">remove</span><span class="p">(</span><span class="nx">hookName</span><span class="p">,</span> <span class="nx">hooks</span><span class="p">[</span><span class="nx">hookName</span><span class="p">]);</span></div><div class='line' id='LC6332'> <span class="p">}</span></div><div class='line' id='LC6333'> <span class="p">}</span></div><div class='line' id='LC6334'> <span class="p">}</span></div><div class='line' id='LC6335'><br/></div><div class='line' id='LC6336'> <span class="kd">function</span> <span class="nx">hookExists</span><span class="p">(</span><span class="nx">hookName</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6337'> <span class="kd">var</span> <span class="nx">instance</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC6338'> <span class="k">return</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">hooks</span><span class="p">[</span><span class="s1">'persistent'</span><span class="p">].</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">hookName</span><span class="p">);</span></div><div class='line' id='LC6339'> <span class="p">}</span></div><div class='line' id='LC6340'> <span class="p">}</span></div><div class='line' id='LC6341'><br/></div><div class='line' id='LC6342'> <span class="kd">var</span> <span class="nx">htPersistentState</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">HandsontablePersistentState</span><span class="p">();</span></div><div class='line' id='LC6343'> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="s1">'beforeInit'</span><span class="p">,</span> <span class="nx">htPersistentState</span><span class="p">.</span><span class="nx">init</span><span class="p">);</span></div><div class='line' id='LC6344'> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">PluginHooks</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="s1">'afterUpdateSettings'</span><span class="p">,</span> <span class="nx">htPersistentState</span><span class="p">.</span><span class="nx">init</span><span class="p">);</span></div><div class='line' id='LC6345'><span class="p">})(</span><span class="nx">Storage</span><span class="p">);</span></div><div class='line' id='LC6346'><br/></div><div class='line' id='LC6347'><span class="cm">/*</span></div><div class='line' id='LC6348'><span class="cm"> * jQuery.fn.autoResize 1.1+</span></div><div class='line' id='LC6349'><span class="cm"> * --</span></div><div class='line' id='LC6350'><span class="cm"> * https://github.com/warpech/jQuery.fn.autoResize</span></div><div class='line' id='LC6351'><span class="cm"> *</span></div><div class='line' id='LC6352'><span class="cm"> * This fork differs from others in a way that it autoresizes textarea in 2-dimensions (horizontally and vertically).</span></div><div class='line' id='LC6353'><span class="cm"> * It was originally forked from alexbardas's repo but maybe should be merged with dpashkevich's repo in future.</span></div><div class='line' id='LC6354'><span class="cm"> *</span></div><div class='line' id='LC6355'><span class="cm"> * originally forked from:</span></div><div class='line' id='LC6356'><span class="cm"> * https://github.com/jamespadolsey/jQuery.fn.autoResize</span></div><div class='line' id='LC6357'><span class="cm"> * which is now located here:</span></div><div class='line' id='LC6358'><span class="cm"> * https://github.com/alexbardas/jQuery.fn.autoResize</span></div><div class='line' id='LC6359'><span class="cm"> * though the mostly maintained for is here:</span></div><div class='line' id='LC6360'><span class="cm"> * https://github.com/dpashkevich/jQuery.fn.autoResize/network</span></div><div class='line' id='LC6361'><span class="cm"> *</span></div><div class='line' id='LC6362'><span class="cm"> * --</span></div><div class='line' id='LC6363'><span class="cm"> * This program is free software. It comes without any warranty, to</span></div><div class='line' id='LC6364'><span class="cm"> * the extent permitted by applicable law. You can redistribute it</span></div><div class='line' id='LC6365'><span class="cm"> * and/or modify it under the terms of the Do What The Fuck You Want</span></div><div class='line' id='LC6366'><span class="cm"> * To Public License, Version 2, as published by Sam Hocevar. See</span></div><div class='line' id='LC6367'><span class="cm"> * http://sam.zoy.org/wtfpl/COPYING for more details. */</span></div><div class='line' id='LC6368'><br/></div><div class='line' id='LC6369'><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">$</span><span class="p">){</span></div><div class='line' id='LC6370'><br/></div><div class='line' id='LC6371'> <span class="nx">autoResize</span><span class="p">.</span><span class="nx">defaults</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC6372'> <span class="nx">onResize</span><span class="o">:</span> <span class="kd">function</span><span class="p">(){},</span></div><div class='line' id='LC6373'> <span class="nx">animate</span><span class="o">:</span> <span class="p">{</span></div><div class='line' id='LC6374'> <span class="nx">duration</span><span class="o">:</span> <span class="mi">200</span><span class="p">,</span></div><div class='line' id='LC6375'> <span class="nx">complete</span><span class="o">:</span> <span class="kd">function</span><span class="p">(){}</span></div><div class='line' id='LC6376'> <span class="p">},</span></div><div class='line' id='LC6377'> <span class="nx">extraSpace</span><span class="o">:</span> <span class="mi">50</span><span class="p">,</span></div><div class='line' id='LC6378'> <span class="nx">minHeight</span><span class="o">:</span> <span class="s1">'original'</span><span class="p">,</span></div><div class='line' id='LC6379'> <span class="nx">maxHeight</span><span class="o">:</span> <span class="mi">500</span><span class="p">,</span></div><div class='line' id='LC6380'> <span class="nx">minWidth</span><span class="o">:</span> <span class="s1">'original'</span><span class="p">,</span></div><div class='line' id='LC6381'> <span class="nx">maxWidth</span><span class="o">:</span> <span class="mi">500</span></div><div class='line' id='LC6382'> <span class="p">};</span></div><div class='line' id='LC6383'><br/></div><div class='line' id='LC6384'> <span class="nx">autoResize</span><span class="p">.</span><span class="nx">cloneCSSProperties</span> <span class="o">=</span> <span class="p">[</span></div><div class='line' id='LC6385'> <span class="s1">'lineHeight'</span><span class="p">,</span> <span class="s1">'textDecoration'</span><span class="p">,</span> <span class="s1">'letterSpacing'</span><span class="p">,</span></div><div class='line' id='LC6386'> <span class="s1">'fontSize'</span><span class="p">,</span> <span class="s1">'fontFamily'</span><span class="p">,</span> <span class="s1">'fontStyle'</span><span class="p">,</span> <span class="s1">'fontWeight'</span><span class="p">,</span></div><div class='line' id='LC6387'> <span class="s1">'textTransform'</span><span class="p">,</span> <span class="s1">'textAlign'</span><span class="p">,</span> <span class="s1">'direction'</span><span class="p">,</span> <span class="s1">'wordSpacing'</span><span class="p">,</span> <span class="s1">'fontSizeAdjust'</span><span class="p">,</span></div><div class='line' id='LC6388'> <span class="s1">'padding'</span></div><div class='line' id='LC6389'> <span class="p">];</span></div><div class='line' id='LC6390'><br/></div><div class='line' id='LC6391'> <span class="nx">autoResize</span><span class="p">.</span><span class="nx">cloneCSSValues</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC6392'> <span class="nx">position</span><span class="o">:</span> <span class="s1">'absolute'</span><span class="p">,</span></div><div class='line' id='LC6393'> <span class="nx">top</span><span class="o">:</span> <span class="o">-</span><span class="mi">9999</span><span class="p">,</span></div><div class='line' id='LC6394'> <span class="nx">left</span><span class="o">:</span> <span class="o">-</span><span class="mi">9999</span><span class="p">,</span></div><div class='line' id='LC6395'> <span class="nx">opacity</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span></div><div class='line' id='LC6396'> <span class="nx">overflow</span><span class="o">:</span> <span class="s1">'hidden'</span><span class="p">,</span></div><div class='line' id='LC6397'> <span class="nx">overflowX</span><span class="o">:</span> <span class="s1">'hidden'</span><span class="p">,</span></div><div class='line' id='LC6398'> <span class="nx">overflowY</span><span class="o">:</span> <span class="s1">'hidden'</span><span class="p">,</span></div><div class='line' id='LC6399'> <span class="nx">border</span><span class="o">:</span> <span class="s1">'1px solid black'</span><span class="p">,</span></div><div class='line' id='LC6400'> <span class="nx">padding</span><span class="o">:</span> <span class="s1">'0.49em'</span> <span class="c1">//this must be about the width of caps W character</span></div><div class='line' id='LC6401'> <span class="p">};</span></div><div class='line' id='LC6402'><br/></div><div class='line' id='LC6403'> <span class="nx">autoResize</span><span class="p">.</span><span class="nx">resizableFilterSelector</span> <span class="o">=</span> <span class="s1">'textarea,input:not(input[type]),input[type=text],input[type=password]'</span><span class="p">;</span></div><div class='line' id='LC6404'><br/></div><div class='line' id='LC6405'> <span class="nx">autoResize</span><span class="p">.</span><span class="nx">AutoResizer</span> <span class="o">=</span> <span class="nx">AutoResizer</span><span class="p">;</span></div><div class='line' id='LC6406'><br/></div><div class='line' id='LC6407'> <span class="nx">$</span><span class="p">.</span><span class="nx">fn</span><span class="p">.</span><span class="nx">autoResize</span> <span class="o">=</span> <span class="nx">autoResize</span><span class="p">;</span></div><div class='line' id='LC6408'><br/></div><div class='line' id='LC6409'> <span class="kd">function</span> <span class="nx">autoResize</span><span class="p">(</span><span class="nx">config</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6410'> <span class="k">this</span><span class="p">.</span><span class="nx">filter</span><span class="p">(</span><span class="nx">autoResize</span><span class="p">.</span><span class="nx">resizableFilterSelector</span><span class="p">).</span><span class="nx">each</span><span class="p">(</span><span class="kd">function</span><span class="p">(){</span></div><div class='line' id='LC6411'> <span class="k">new</span> <span class="nx">AutoResizer</span><span class="p">(</span> <span class="nx">$</span><span class="p">(</span><span class="k">this</span><span class="p">),</span> <span class="nx">config</span> <span class="p">);</span></div><div class='line' id='LC6412'> <span class="p">});</span></div><div class='line' id='LC6413'> <span class="k">return</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC6414'> <span class="p">}</span></div><div class='line' id='LC6415'><br/></div><div class='line' id='LC6416'> <span class="kd">function</span> <span class="nx">AutoResizer</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">config</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6417'><br/></div><div class='line' id='LC6418'> <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">clones</span><span class="p">)</span> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC6419'><br/></div><div class='line' id='LC6420'> <span class="k">this</span><span class="p">.</span><span class="nx">config</span> <span class="o">=</span> <span class="nx">$</span><span class="p">.</span><span class="nx">extend</span><span class="p">({},</span> <span class="nx">autoResize</span><span class="p">.</span><span class="nx">defaults</span><span class="p">,</span> <span class="nx">config</span><span class="p">);</span></div><div class='line' id='LC6421'><br/></div><div class='line' id='LC6422'> <span class="k">this</span><span class="p">.</span><span class="nx">el</span> <span class="o">=</span> <span class="nx">el</span><span class="p">;</span></div><div class='line' id='LC6423'><br/></div><div class='line' id='LC6424'> <span class="k">this</span><span class="p">.</span><span class="nx">nodeName</span> <span class="o">=</span> <span class="nx">el</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">nodeName</span><span class="p">.</span><span class="nx">toLowerCase</span><span class="p">();</span></div><div class='line' id='LC6425'><br/></div><div class='line' id='LC6426'> <span class="k">this</span><span class="p">.</span><span class="nx">previousScrollTop</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span></div><div class='line' id='LC6427'><br/></div><div class='line' id='LC6428'> <span class="k">if</span> <span class="p">(</span><span class="nx">config</span><span class="p">.</span><span class="nx">maxWidth</span> <span class="o">===</span> <span class="s1">'original'</span><span class="p">)</span> <span class="nx">config</span><span class="p">.</span><span class="nx">maxWidth</span> <span class="o">=</span> <span class="nx">el</span><span class="p">.</span><span class="nx">width</span><span class="p">();</span></div><div class='line' id='LC6429'> <span class="k">if</span> <span class="p">(</span><span class="nx">config</span><span class="p">.</span><span class="nx">minWidth</span> <span class="o">===</span> <span class="s1">'original'</span><span class="p">)</span> <span class="nx">config</span><span class="p">.</span><span class="nx">minWidth</span> <span class="o">=</span> <span class="nx">el</span><span class="p">.</span><span class="nx">width</span><span class="p">();</span></div><div class='line' id='LC6430'> <span class="k">if</span> <span class="p">(</span><span class="nx">config</span><span class="p">.</span><span class="nx">maxHeight</span> <span class="o">===</span> <span class="s1">'original'</span><span class="p">)</span> <span class="nx">config</span><span class="p">.</span><span class="nx">maxHeight</span> <span class="o">=</span> <span class="nx">el</span><span class="p">.</span><span class="nx">height</span><span class="p">();</span></div><div class='line' id='LC6431'> <span class="k">if</span> <span class="p">(</span><span class="nx">config</span><span class="p">.</span><span class="nx">minHeight</span> <span class="o">===</span> <span class="s1">'original'</span><span class="p">)</span> <span class="nx">config</span><span class="p">.</span><span class="nx">minHeight</span> <span class="o">=</span> <span class="nx">el</span><span class="p">.</span><span class="nx">height</span><span class="p">();</span></div><div class='line' id='LC6432'><br/></div><div class='line' id='LC6433'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">nodeName</span> <span class="o">===</span> <span class="s1">'textarea'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6434'> <span class="nx">el</span><span class="p">.</span><span class="nx">css</span><span class="p">({</span></div><div class='line' id='LC6435'> <span class="nx">resize</span><span class="o">:</span> <span class="s1">'none'</span><span class="p">,</span></div><div class='line' id='LC6436'> <span class="nx">overflowY</span><span class="o">:</span> <span class="s1">'none'</span></div><div class='line' id='LC6437'> <span class="p">});</span></div><div class='line' id='LC6438'> <span class="p">}</span></div><div class='line' id='LC6439'><br/></div><div class='line' id='LC6440'> <span class="nx">el</span><span class="p">.</span><span class="nx">data</span><span class="p">(</span><span class="s1">'AutoResizer'</span><span class="p">,</span> <span class="k">this</span><span class="p">);</span></div><div class='line' id='LC6441'><br/></div><div class='line' id='LC6442'> <span class="k">this</span><span class="p">.</span><span class="nx">createClone</span><span class="p">();</span></div><div class='line' id='LC6443'> <span class="k">this</span><span class="p">.</span><span class="nx">injectClone</span><span class="p">();</span></div><div class='line' id='LC6444'> <span class="k">this</span><span class="p">.</span><span class="nx">bind</span><span class="p">();</span></div><div class='line' id='LC6445'><br/></div><div class='line' id='LC6446'> <span class="p">}</span></div><div class='line' id='LC6447'><br/></div><div class='line' id='LC6448'> <span class="nx">AutoResizer</span><span class="p">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC6449'><br/></div><div class='line' id='LC6450'> <span class="nx">bind</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC6451'><br/></div><div class='line' id='LC6452'> <span class="kd">var</span> <span class="nx">check</span> <span class="o">=</span> <span class="nx">$</span><span class="p">.</span><span class="nx">proxy</span><span class="p">(</span><span class="kd">function</span><span class="p">(){</span></div><div class='line' id='LC6453'> <span class="k">this</span><span class="p">.</span><span class="nx">check</span><span class="p">();</span></div><div class='line' id='LC6454'> <span class="k">return</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC6455'> <span class="p">},</span> <span class="k">this</span><span class="p">);</span></div><div class='line' id='LC6456'><br/></div><div class='line' id='LC6457'> <span class="k">this</span><span class="p">.</span><span class="nx">unbind</span><span class="p">();</span></div><div class='line' id='LC6458'><br/></div><div class='line' id='LC6459'> <span class="k">this</span><span class="p">.</span><span class="nx">el</span></div><div class='line' id='LC6460'> <span class="p">.</span><span class="nx">bind</span><span class="p">(</span><span class="s1">'keyup.autoResize'</span><span class="p">,</span> <span class="nx">check</span><span class="p">)</span></div><div class='line' id='LC6461'> <span class="c1">//.bind('keydown.autoResize', check)</span></div><div class='line' id='LC6462'> <span class="p">.</span><span class="nx">bind</span><span class="p">(</span><span class="s1">'change.autoResize'</span><span class="p">,</span> <span class="nx">check</span><span class="p">);</span></div><div class='line' id='LC6463'><br/></div><div class='line' id='LC6464'> <span class="k">this</span><span class="p">.</span><span class="nx">check</span><span class="p">(</span><span class="kc">null</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span></div><div class='line' id='LC6465'><br/></div><div class='line' id='LC6466'> <span class="p">},</span></div><div class='line' id='LC6467'><br/></div><div class='line' id='LC6468'> <span class="nx">unbind</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC6469'> <span class="k">this</span><span class="p">.</span><span class="nx">el</span><span class="p">.</span><span class="nx">unbind</span><span class="p">(</span><span class="s1">'.autoResize'</span><span class="p">);</span></div><div class='line' id='LC6470'> <span class="p">},</span></div><div class='line' id='LC6471'><br/></div><div class='line' id='LC6472'> <span class="nx">createClone</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC6473'><br/></div><div class='line' id='LC6474'> <span class="kd">var</span> <span class="nx">el</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">el</span><span class="p">,</span></div><div class='line' id='LC6475'> <span class="nx">self</span> <span class="o">=</span> <span class="k">this</span><span class="p">,</span></div><div class='line' id='LC6476'> <span class="nx">config</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">config</span><span class="p">;</span></div><div class='line' id='LC6477'><br/></div><div class='line' id='LC6478'> <span class="k">this</span><span class="p">.</span><span class="nx">clones</span> <span class="o">=</span> <span class="nx">$</span><span class="p">();</span></div><div class='line' id='LC6479'><br/></div><div class='line' id='LC6480'> <span class="k">if</span> <span class="p">(</span><span class="nx">config</span><span class="p">.</span><span class="nx">minHeight</span> <span class="o">!==</span> <span class="s1">'original'</span> <span class="o">||</span> <span class="nx">config</span><span class="p">.</span><span class="nx">maxHeight</span> <span class="o">!==</span> <span class="s1">'original'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6481'> <span class="k">this</span><span class="p">.</span><span class="nx">hClone</span> <span class="o">=</span> <span class="nx">el</span><span class="p">.</span><span class="nx">clone</span><span class="p">().</span><span class="nx">height</span><span class="p">(</span><span class="s1">'auto'</span><span class="p">);</span></div><div class='line' id='LC6482'> <span class="k">this</span><span class="p">.</span><span class="nx">clones</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">clones</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">hClone</span><span class="p">);</span></div><div class='line' id='LC6483'> <span class="p">}</span></div><div class='line' id='LC6484'> <span class="k">if</span> <span class="p">(</span><span class="nx">config</span><span class="p">.</span><span class="nx">minWidth</span> <span class="o">!==</span> <span class="s1">'original'</span> <span class="o">||</span> <span class="nx">config</span><span class="p">.</span><span class="nx">maxWidth</span> <span class="o">!==</span> <span class="s1">'original'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6485'> <span class="k">this</span><span class="p">.</span><span class="nx">wClone</span> <span class="o">=</span> <span class="nx">$</span><span class="p">(</span><span class="s1">'<div/>'</span><span class="p">).</span><span class="nx">width</span><span class="p">(</span><span class="s1">'auto'</span><span class="p">).</span><span class="nx">css</span><span class="p">({</span></div><div class='line' id='LC6486'> <span class="nx">whiteSpace</span><span class="o">:</span> <span class="s1">'nowrap'</span><span class="p">,</span></div><div class='line' id='LC6487'> <span class="s1">'float'</span><span class="o">:</span> <span class="s1">'left'</span></div><div class='line' id='LC6488'> <span class="p">});</span></div><div class='line' id='LC6489'> <span class="k">this</span><span class="p">.</span><span class="nx">clones</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">clones</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">wClone</span><span class="p">);</span></div><div class='line' id='LC6490'> <span class="p">}</span></div><div class='line' id='LC6491'><br/></div><div class='line' id='LC6492'> <span class="nx">$</span><span class="p">.</span><span class="nx">each</span><span class="p">(</span><span class="nx">autoResize</span><span class="p">.</span><span class="nx">cloneCSSProperties</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">i</span><span class="p">,</span> <span class="nx">p</span><span class="p">){</span></div><div class='line' id='LC6493'> <span class="nx">self</span><span class="p">.</span><span class="nx">clones</span><span class="p">.</span><span class="nx">css</span><span class="p">(</span><span class="nx">p</span><span class="p">,</span> <span class="nx">el</span><span class="p">.</span><span class="nx">css</span><span class="p">(</span><span class="nx">p</span><span class="p">));</span></div><div class='line' id='LC6494'> <span class="p">});</span></div><div class='line' id='LC6495'><br/></div><div class='line' id='LC6496'> <span class="k">this</span><span class="p">.</span><span class="nx">clones</span></div><div class='line' id='LC6497'> <span class="p">.</span><span class="nx">removeAttr</span><span class="p">(</span><span class="s1">'name'</span><span class="p">)</span></div><div class='line' id='LC6498'> <span class="p">.</span><span class="nx">removeAttr</span><span class="p">(</span><span class="s1">'id'</span><span class="p">)</span></div><div class='line' id='LC6499'> <span class="p">.</span><span class="nx">attr</span><span class="p">(</span><span class="s1">'tabIndex'</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span></div><div class='line' id='LC6500'> <span class="p">.</span><span class="nx">css</span><span class="p">(</span><span class="nx">autoResize</span><span class="p">.</span><span class="nx">cloneCSSValues</span><span class="p">)</span></div><div class='line' id='LC6501'> <span class="p">.</span><span class="nx">css</span><span class="p">(</span><span class="s1">'overflowY'</span><span class="p">,</span> <span class="s1">'scroll'</span><span class="p">);</span></div><div class='line' id='LC6502'><br/></div><div class='line' id='LC6503'> <span class="p">},</span></div><div class='line' id='LC6504'><br/></div><div class='line' id='LC6505'> <span class="nx">check</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">,</span> <span class="nx">immediate</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6506'><br/></div><div class='line' id='LC6507'> <span class="kd">var</span> <span class="nx">config</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">config</span><span class="p">,</span></div><div class='line' id='LC6508'> <span class="nx">wClone</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">wClone</span><span class="p">,</span></div><div class='line' id='LC6509'> <span class="nx">hClone</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">hClone</span><span class="p">,</span></div><div class='line' id='LC6510'> <span class="nx">el</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">el</span><span class="p">,</span></div><div class='line' id='LC6511'> <span class="nx">value</span> <span class="o">=</span> <span class="nx">el</span><span class="p">.</span><span class="nx">val</span><span class="p">();</span></div><div class='line' id='LC6512'><br/></div><div class='line' id='LC6513'> <span class="k">if</span> <span class="p">(</span><span class="nx">wClone</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6514'><br/></div><div class='line' id='LC6515'> <span class="nx">wClone</span><span class="p">.</span><span class="nx">text</span><span class="p">(</span><span class="nx">value</span><span class="p">);</span></div><div class='line' id='LC6516'><br/></div><div class='line' id='LC6517'> <span class="c1">// Calculate new width + whether to change</span></div><div class='line' id='LC6518'> <span class="kd">var</span> <span class="nx">cloneWidth</span> <span class="o">=</span> <span class="nx">wClone</span><span class="p">.</span><span class="nx">outerWidth</span><span class="p">(),</span></div><div class='line' id='LC6519'> <span class="nx">newWidth</span> <span class="o">=</span> <span class="p">(</span><span class="nx">cloneWidth</span> <span class="o">+</span> <span class="nx">config</span><span class="p">.</span><span class="nx">extraSpace</span><span class="p">)</span> <span class="o">>=</span> <span class="nx">config</span><span class="p">.</span><span class="nx">minWidth</span> <span class="o">?</span></div><div class='line' id='LC6520'> <span class="nx">cloneWidth</span> <span class="o">+</span> <span class="nx">config</span><span class="p">.</span><span class="nx">extraSpace</span> <span class="o">:</span> <span class="nx">config</span><span class="p">.</span><span class="nx">minWidth</span><span class="p">,</span></div><div class='line' id='LC6521'> <span class="nx">currentWidth</span> <span class="o">=</span> <span class="nx">el</span><span class="p">.</span><span class="nx">width</span><span class="p">();</span></div><div class='line' id='LC6522'><br/></div><div class='line' id='LC6523'> <span class="nx">newWidth</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">min</span><span class="p">(</span><span class="nx">newWidth</span><span class="p">,</span> <span class="nx">config</span><span class="p">.</span><span class="nx">maxWidth</span><span class="p">);</span></div><div class='line' id='LC6524'><br/></div><div class='line' id='LC6525'> <span class="k">if</span> <span class="p">(</span></div><div class='line' id='LC6526'> <span class="p">(</span><span class="nx">newWidth</span> <span class="o"><</span> <span class="nx">currentWidth</span> <span class="o">&&</span> <span class="nx">newWidth</span> <span class="o">>=</span> <span class="nx">config</span><span class="p">.</span><span class="nx">minWidth</span><span class="p">)</span> <span class="o">||</span></div><div class='line' id='LC6527'> <span class="p">(</span><span class="nx">newWidth</span> <span class="o">>=</span> <span class="nx">config</span><span class="p">.</span><span class="nx">minWidth</span> <span class="o">&&</span> <span class="nx">newWidth</span> <span class="o"><=</span> <span class="nx">config</span><span class="p">.</span><span class="nx">maxWidth</span><span class="p">)</span></div><div class='line' id='LC6528'> <span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6529'><br/></div><div class='line' id='LC6530'> <span class="nx">config</span><span class="p">.</span><span class="nx">onResize</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">el</span><span class="p">);</span></div><div class='line' id='LC6531'><br/></div><div class='line' id='LC6532'> <span class="nx">el</span><span class="p">.</span><span class="nx">scrollLeft</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span></div><div class='line' id='LC6533'><br/></div><div class='line' id='LC6534'> <span class="nx">config</span><span class="p">.</span><span class="nx">animate</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">immediate</span> <span class="o">?</span></div><div class='line' id='LC6535'> <span class="nx">el</span><span class="p">.</span><span class="nx">stop</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">).</span><span class="nx">animate</span><span class="p">({</span></div><div class='line' id='LC6536'> <span class="nx">width</span><span class="o">:</span> <span class="nx">newWidth</span></div><div class='line' id='LC6537'> <span class="p">},</span> <span class="nx">config</span><span class="p">.</span><span class="nx">animate</span><span class="p">)</span></div><div class='line' id='LC6538'> <span class="o">:</span> <span class="nx">el</span><span class="p">.</span><span class="nx">width</span><span class="p">(</span><span class="nx">newWidth</span><span class="p">);</span></div><div class='line' id='LC6539'><br/></div><div class='line' id='LC6540'> <span class="p">}</span></div><div class='line' id='LC6541'><br/></div><div class='line' id='LC6542'> <span class="p">}</span></div><div class='line' id='LC6543'><br/></div><div class='line' id='LC6544'> <span class="k">if</span> <span class="p">(</span><span class="nx">hClone</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6545'><br/></div><div class='line' id='LC6546'> <span class="k">if</span> <span class="p">(</span><span class="nx">newWidth</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6547'> <span class="nx">hClone</span><span class="p">.</span><span class="nx">width</span><span class="p">(</span><span class="nx">newWidth</span><span class="p">);</span></div><div class='line' id='LC6548'> <span class="p">}</span></div><div class='line' id='LC6549'><br/></div><div class='line' id='LC6550'> <span class="nx">hClone</span><span class="p">.</span><span class="nx">height</span><span class="p">(</span><span class="mi">0</span><span class="p">).</span><span class="nx">val</span><span class="p">(</span><span class="nx">value</span><span class="p">).</span><span class="nx">scrollTop</span><span class="p">(</span><span class="mi">10000</span><span class="p">);</span></div><div class='line' id='LC6551'><br/></div><div class='line' id='LC6552'> <span class="kd">var</span> <span class="nx">scrollTop</span> <span class="o">=</span> <span class="nx">hClone</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">scrollTop</span> <span class="o">+</span> <span class="nx">config</span><span class="p">.</span><span class="nx">extraSpace</span><span class="p">;</span></div><div class='line' id='LC6553'><br/></div><div class='line' id='LC6554'> <span class="c1">// Don't do anything if scrollTop hasen't changed:</span></div><div class='line' id='LC6555'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">previousScrollTop</span> <span class="o">===</span> <span class="nx">scrollTop</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6556'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC6557'> <span class="p">}</span></div><div class='line' id='LC6558'><br/></div><div class='line' id='LC6559'> <span class="k">this</span><span class="p">.</span><span class="nx">previousScrollTop</span> <span class="o">=</span> <span class="nx">scrollTop</span><span class="p">;</span></div><div class='line' id='LC6560'><br/></div><div class='line' id='LC6561'> <span class="k">if</span> <span class="p">(</span><span class="nx">scrollTop</span> <span class="o">>=</span> <span class="nx">config</span><span class="p">.</span><span class="nx">maxHeight</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6562'> <span class="nx">scrollTop</span> <span class="o">=</span> <span class="nx">config</span><span class="p">.</span><span class="nx">maxHeight</span><span class="p">;</span></div><div class='line' id='LC6563'> <span class="p">}</span></div><div class='line' id='LC6564'><br/></div><div class='line' id='LC6565'> <span class="k">if</span> <span class="p">(</span><span class="nx">scrollTop</span> <span class="o"><</span> <span class="nx">config</span><span class="p">.</span><span class="nx">minHeight</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6566'> <span class="nx">scrollTop</span> <span class="o">=</span> <span class="nx">config</span><span class="p">.</span><span class="nx">minHeight</span><span class="p">;</span></div><div class='line' id='LC6567'> <span class="p">}</span></div><div class='line' id='LC6568'><br/></div><div class='line' id='LC6569'> <span class="k">if</span><span class="p">(</span><span class="nx">scrollTop</span> <span class="o">==</span> <span class="nx">config</span><span class="p">.</span><span class="nx">maxHeight</span> <span class="o">&&</span> <span class="nx">newWidth</span> <span class="o">==</span> <span class="nx">config</span><span class="p">.</span><span class="nx">maxWidth</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6570'> <span class="nx">el</span><span class="p">.</span><span class="nx">css</span><span class="p">(</span><span class="s1">'overflowY'</span><span class="p">,</span> <span class="s1">'scroll'</span><span class="p">);</span></div><div class='line' id='LC6571'> <span class="p">}</span></div><div class='line' id='LC6572'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC6573'> <span class="nx">el</span><span class="p">.</span><span class="nx">css</span><span class="p">(</span><span class="s1">'overflowY'</span><span class="p">,</span> <span class="s1">'hidden'</span><span class="p">);</span></div><div class='line' id='LC6574'> <span class="p">}</span></div><div class='line' id='LC6575'><br/></div><div class='line' id='LC6576'> <span class="nx">config</span><span class="p">.</span><span class="nx">onResize</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">el</span><span class="p">);</span></div><div class='line' id='LC6577'><br/></div><div class='line' id='LC6578'> <span class="c1">// Either animate or directly apply height:</span></div><div class='line' id='LC6579'> <span class="nx">config</span><span class="p">.</span><span class="nx">animate</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">immediate</span> <span class="o">?</span></div><div class='line' id='LC6580'> <span class="nx">el</span><span class="p">.</span><span class="nx">stop</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">).</span><span class="nx">animate</span><span class="p">({</span></div><div class='line' id='LC6581'> <span class="nx">height</span><span class="o">:</span> <span class="nx">scrollTop</span></div><div class='line' id='LC6582'> <span class="p">},</span> <span class="nx">config</span><span class="p">.</span><span class="nx">animate</span><span class="p">)</span></div><div class='line' id='LC6583'> <span class="o">:</span> <span class="nx">el</span><span class="p">.</span><span class="nx">height</span><span class="p">(</span><span class="nx">scrollTop</span><span class="p">);</span></div><div class='line' id='LC6584'> <span class="p">}</span></div><div class='line' id='LC6585'> <span class="p">},</span></div><div class='line' id='LC6586'><br/></div><div class='line' id='LC6587'> <span class="nx">destroy</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC6588'> <span class="k">this</span><span class="p">.</span><span class="nx">unbind</span><span class="p">();</span></div><div class='line' id='LC6589'> <span class="k">this</span><span class="p">.</span><span class="nx">el</span><span class="p">.</span><span class="nx">removeData</span><span class="p">(</span><span class="s1">'AutoResizer'</span><span class="p">);</span></div><div class='line' id='LC6590'> <span class="k">this</span><span class="p">.</span><span class="nx">clones</span><span class="p">.</span><span class="nx">remove</span><span class="p">();</span></div><div class='line' id='LC6591'> <span class="k">delete</span> <span class="k">this</span><span class="p">.</span><span class="nx">el</span><span class="p">;</span></div><div class='line' id='LC6592'> <span class="k">delete</span> <span class="k">this</span><span class="p">.</span><span class="nx">hClone</span><span class="p">;</span></div><div class='line' id='LC6593'> <span class="k">delete</span> <span class="k">this</span><span class="p">.</span><span class="nx">wClone</span><span class="p">;</span></div><div class='line' id='LC6594'> <span class="k">delete</span> <span class="k">this</span><span class="p">.</span><span class="nx">clones</span><span class="p">;</span></div><div class='line' id='LC6595'> <span class="p">},</span></div><div class='line' id='LC6596'><br/></div><div class='line' id='LC6597'> <span class="nx">injectClone</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC6598'> <span class="p">(</span></div><div class='line' id='LC6599'> <span class="nx">autoResize</span><span class="p">.</span><span class="nx">cloneContainer</span> <span class="o">||</span></div><div class='line' id='LC6600'> <span class="p">(</span><span class="nx">autoResize</span><span class="p">.</span><span class="nx">cloneContainer</span> <span class="o">=</span> <span class="nx">$</span><span class="p">(</span><span class="s1">'<arclones/>'</span><span class="p">).</span><span class="nx">appendTo</span><span class="p">(</span><span class="s1">'body'</span><span class="p">))</span></div><div class='line' id='LC6601'> <span class="p">).</span><span class="nx">empty</span><span class="p">().</span><span class="nx">append</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">clones</span><span class="p">);</span> <span class="c1">//this should be refactored so that a node is never cloned more than once</span></div><div class='line' id='LC6602'> <span class="p">}</span></div><div class='line' id='LC6603'><br/></div><div class='line' id='LC6604'> <span class="p">};</span></div><div class='line' id='LC6605'><br/></div><div class='line' id='LC6606'><span class="p">})(</span><span class="nx">jQuery</span><span class="p">);</span></div><div class='line' id='LC6607'><span class="cm">/**</span></div><div class='line' id='LC6608'><span class="cm"> * SheetClip - Spreadsheet Clipboard Parser</span></div><div class='line' id='LC6609'><span class="cm"> * version 0.2</span></div><div class='line' id='LC6610'><span class="cm"> *</span></div><div class='line' id='LC6611'><span class="cm"> * This tiny library transforms JavaScript arrays to strings that are pasteable by LibreOffice, OpenOffice,</span></div><div class='line' id='LC6612'><span class="cm"> * Google Docs and Microsoft Excel.</span></div><div class='line' id='LC6613'><span class="cm"> *</span></div><div class='line' id='LC6614'><span class="cm"> * Copyright 2012, Marcin Warpechowski</span></div><div class='line' id='LC6615'><span class="cm"> * Licensed under the MIT license.</span></div><div class='line' id='LC6616'><span class="cm"> * http://github.com/warpech/sheetclip/</span></div><div class='line' id='LC6617'><span class="cm"> */</span></div><div class='line' id='LC6618'><span class="cm">/*jslint white: true*/</span></div><div class='line' id='LC6619'><span class="p">(</span><span class="kd">function</span> <span class="p">(</span><span class="nx">global</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6620'> <span class="s2">"use strict"</span><span class="p">;</span></div><div class='line' id='LC6621'><br/></div><div class='line' id='LC6622'> <span class="kd">function</span> <span class="nx">countQuotes</span><span class="p">(</span><span class="nx">str</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6623'> <span class="k">return</span> <span class="nx">str</span><span class="p">.</span><span class="nx">split</span><span class="p">(</span><span class="s1">'"'</span><span class="p">).</span><span class="nx">length</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC6624'> <span class="p">}</span></div><div class='line' id='LC6625'><br/></div><div class='line' id='LC6626'> <span class="nx">global</span><span class="p">.</span><span class="nx">SheetClip</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC6627'> <span class="nx">parse</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">str</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6628'> <span class="kd">var</span> <span class="nx">r</span><span class="p">,</span> <span class="nx">rlen</span><span class="p">,</span> <span class="nx">rows</span><span class="p">,</span> <span class="nx">arr</span> <span class="o">=</span> <span class="p">[],</span> <span class="nx">a</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">c</span><span class="p">,</span> <span class="nx">clen</span><span class="p">,</span> <span class="nx">multiline</span><span class="p">,</span> <span class="nx">last</span><span class="p">;</span></div><div class='line' id='LC6629'> <span class="nx">rows</span> <span class="o">=</span> <span class="nx">str</span><span class="p">.</span><span class="nx">split</span><span class="p">(</span><span class="s1">'\n'</span><span class="p">);</span></div><div class='line' id='LC6630'> <span class="k">if</span> <span class="p">(</span><span class="nx">rows</span><span class="p">.</span><span class="nx">length</span> <span class="o">></span> <span class="mi">1</span> <span class="o">&&</span> <span class="nx">rows</span><span class="p">[</span><span class="nx">rows</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span> <span class="o">===</span> <span class="s1">''</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6631'> <span class="nx">rows</span><span class="p">.</span><span class="nx">pop</span><span class="p">();</span></div><div class='line' id='LC6632'> <span class="p">}</span></div><div class='line' id='LC6633'> <span class="k">for</span> <span class="p">(</span><span class="nx">r</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">rlen</span> <span class="o">=</span> <span class="nx">rows</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">r</span> <span class="o"><</span> <span class="nx">rlen</span><span class="p">;</span> <span class="nx">r</span> <span class="o">+=</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6634'> <span class="nx">rows</span><span class="p">[</span><span class="nx">r</span><span class="p">]</span> <span class="o">=</span> <span class="nx">rows</span><span class="p">[</span><span class="nx">r</span><span class="p">].</span><span class="nx">split</span><span class="p">(</span><span class="s1">'\t'</span><span class="p">);</span></div><div class='line' id='LC6635'> <span class="k">for</span> <span class="p">(</span><span class="nx">c</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">clen</span> <span class="o">=</span> <span class="nx">rows</span><span class="p">[</span><span class="nx">r</span><span class="p">].</span><span class="nx">length</span><span class="p">;</span> <span class="nx">c</span> <span class="o"><</span> <span class="nx">clen</span><span class="p">;</span> <span class="nx">c</span> <span class="o">+=</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6636'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">arr</span><span class="p">[</span><span class="nx">a</span><span class="p">])</span> <span class="p">{</span></div><div class='line' id='LC6637'> <span class="nx">arr</span><span class="p">[</span><span class="nx">a</span><span class="p">]</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC6638'> <span class="p">}</span></div><div class='line' id='LC6639'> <span class="k">if</span> <span class="p">(</span><span class="nx">multiline</span> <span class="o">&&</span> <span class="nx">c</span> <span class="o">===</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6640'> <span class="nx">last</span> <span class="o">=</span> <span class="nx">arr</span><span class="p">[</span><span class="nx">a</span><span class="p">].</span><span class="nx">length</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC6641'> <span class="nx">arr</span><span class="p">[</span><span class="nx">a</span><span class="p">][</span><span class="nx">last</span><span class="p">]</span> <span class="o">=</span> <span class="nx">arr</span><span class="p">[</span><span class="nx">a</span><span class="p">][</span><span class="nx">last</span><span class="p">]</span> <span class="o">+</span> <span class="s1">'\n'</span> <span class="o">+</span> <span class="nx">rows</span><span class="p">[</span><span class="nx">r</span><span class="p">][</span><span class="mi">0</span><span class="p">];</span></div><div class='line' id='LC6642'> <span class="k">if</span> <span class="p">(</span><span class="nx">multiline</span> <span class="o">&&</span> <span class="p">(</span><span class="nx">countQuotes</span><span class="p">(</span><span class="nx">rows</span><span class="p">[</span><span class="nx">r</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span> <span class="o">&</span> <span class="mi">1</span><span class="p">))</span> <span class="p">{</span> <span class="c1">//& 1 is a bitwise way of performing mod 2</span></div><div class='line' id='LC6643'> <span class="nx">multiline</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC6644'> <span class="nx">arr</span><span class="p">[</span><span class="nx">a</span><span class="p">][</span><span class="nx">last</span><span class="p">]</span> <span class="o">=</span> <span class="nx">arr</span><span class="p">[</span><span class="nx">a</span><span class="p">][</span><span class="nx">last</span><span class="p">].</span><span class="nx">substring</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="nx">arr</span><span class="p">[</span><span class="nx">a</span><span class="p">][</span><span class="nx">last</span><span class="p">].</span><span class="nx">length</span> <span class="o">-</span> <span class="mi">1</span><span class="p">).</span><span class="nx">replace</span><span class="p">(</span><span class="sr">/""/g</span><span class="p">,</span> <span class="s1">'"'</span><span class="p">);</span></div><div class='line' id='LC6645'> <span class="p">}</span></div><div class='line' id='LC6646'> <span class="p">}</span></div><div class='line' id='LC6647'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC6648'> <span class="k">if</span> <span class="p">(</span><span class="nx">c</span> <span class="o">===</span> <span class="nx">clen</span> <span class="o">-</span> <span class="mi">1</span> <span class="o">&&</span> <span class="nx">rows</span><span class="p">[</span><span class="nx">r</span><span class="p">][</span><span class="nx">c</span><span class="p">].</span><span class="nx">indexOf</span><span class="p">(</span><span class="s1">'"'</span><span class="p">)</span> <span class="o">===</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6649'> <span class="nx">arr</span><span class="p">[</span><span class="nx">a</span><span class="p">].</span><span class="nx">push</span><span class="p">(</span><span class="nx">rows</span><span class="p">[</span><span class="nx">r</span><span class="p">][</span><span class="nx">c</span><span class="p">].</span><span class="nx">substring</span><span class="p">(</span><span class="mi">1</span><span class="p">).</span><span class="nx">replace</span><span class="p">(</span><span class="sr">/""/g</span><span class="p">,</span> <span class="s1">'"'</span><span class="p">));</span></div><div class='line' id='LC6650'> <span class="nx">multiline</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC6651'> <span class="p">}</span></div><div class='line' id='LC6652'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC6653'> <span class="nx">arr</span><span class="p">[</span><span class="nx">a</span><span class="p">].</span><span class="nx">push</span><span class="p">(</span><span class="nx">rows</span><span class="p">[</span><span class="nx">r</span><span class="p">][</span><span class="nx">c</span><span class="p">].</span><span class="nx">replace</span><span class="p">(</span><span class="sr">/""/g</span><span class="p">,</span> <span class="s1">'"'</span><span class="p">));</span></div><div class='line' id='LC6654'> <span class="nx">multiline</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC6655'> <span class="p">}</span></div><div class='line' id='LC6656'> <span class="p">}</span></div><div class='line' id='LC6657'> <span class="p">}</span></div><div class='line' id='LC6658'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">multiline</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6659'> <span class="nx">a</span> <span class="o">+=</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC6660'> <span class="p">}</span></div><div class='line' id='LC6661'> <span class="p">}</span></div><div class='line' id='LC6662'> <span class="k">return</span> <span class="nx">arr</span><span class="p">;</span></div><div class='line' id='LC6663'> <span class="p">},</span></div><div class='line' id='LC6664'><br/></div><div class='line' id='LC6665'> <span class="nx">stringify</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">arr</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6666'> <span class="kd">var</span> <span class="nx">r</span><span class="p">,</span> <span class="nx">rlen</span><span class="p">,</span> <span class="nx">c</span><span class="p">,</span> <span class="nx">clen</span><span class="p">,</span> <span class="nx">str</span> <span class="o">=</span> <span class="s1">''</span><span class="p">,</span> <span class="nx">val</span><span class="p">;</span></div><div class='line' id='LC6667'> <span class="k">for</span> <span class="p">(</span><span class="nx">r</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">rlen</span> <span class="o">=</span> <span class="nx">arr</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">r</span> <span class="o"><</span> <span class="nx">rlen</span><span class="p">;</span> <span class="nx">r</span> <span class="o">+=</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6668'> <span class="k">for</span> <span class="p">(</span><span class="nx">c</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">clen</span> <span class="o">=</span> <span class="nx">arr</span><span class="p">[</span><span class="nx">r</span><span class="p">].</span><span class="nx">length</span><span class="p">;</span> <span class="nx">c</span> <span class="o"><</span> <span class="nx">clen</span><span class="p">;</span> <span class="nx">c</span> <span class="o">+=</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6669'> <span class="k">if</span> <span class="p">(</span><span class="nx">c</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6670'> <span class="nx">str</span> <span class="o">+=</span> <span class="s1">'\t'</span><span class="p">;</span></div><div class='line' id='LC6671'> <span class="p">}</span></div><div class='line' id='LC6672'> <span class="nx">val</span> <span class="o">=</span> <span class="nx">arr</span><span class="p">[</span><span class="nx">r</span><span class="p">][</span><span class="nx">c</span><span class="p">];</span></div><div class='line' id='LC6673'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">val</span> <span class="o">===</span> <span class="s1">'string'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6674'> <span class="k">if</span> <span class="p">(</span><span class="nx">val</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="s1">'\n'</span><span class="p">)</span> <span class="o">></span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6675'> <span class="nx">str</span> <span class="o">+=</span> <span class="s1">'"'</span> <span class="o">+</span> <span class="nx">val</span><span class="p">.</span><span class="nx">replace</span><span class="p">(</span><span class="sr">/"/g</span><span class="p">,</span> <span class="s1">'""'</span><span class="p">)</span> <span class="o">+</span> <span class="s1">'"'</span><span class="p">;</span></div><div class='line' id='LC6676'> <span class="p">}</span></div><div class='line' id='LC6677'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC6678'> <span class="nx">str</span> <span class="o">+=</span> <span class="nx">val</span><span class="p">;</span></div><div class='line' id='LC6679'> <span class="p">}</span></div><div class='line' id='LC6680'> <span class="p">}</span></div><div class='line' id='LC6681'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">val</span> <span class="o">===</span> <span class="kc">null</span> <span class="o">||</span> <span class="nx">val</span> <span class="o">===</span> <span class="k">void</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//void 0 resolves to undefined</span></div><div class='line' id='LC6682'> <span class="nx">str</span> <span class="o">+=</span> <span class="s1">''</span><span class="p">;</span></div><div class='line' id='LC6683'> <span class="p">}</span></div><div class='line' id='LC6684'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC6685'> <span class="nx">str</span> <span class="o">+=</span> <span class="nx">val</span><span class="p">;</span></div><div class='line' id='LC6686'> <span class="p">}</span></div><div class='line' id='LC6687'> <span class="p">}</span></div><div class='line' id='LC6688'> <span class="nx">str</span> <span class="o">+=</span> <span class="s1">'\n'</span><span class="p">;</span></div><div class='line' id='LC6689'> <span class="p">}</span></div><div class='line' id='LC6690'> <span class="k">return</span> <span class="nx">str</span><span class="p">;</span></div><div class='line' id='LC6691'> <span class="p">}</span></div><div class='line' id='LC6692'> <span class="p">};</span></div><div class='line' id='LC6693'><span class="p">}(</span><span class="nb">window</span><span class="p">));</span></div><div class='line' id='LC6694'><span class="cm">/**</span></div><div class='line' id='LC6695'><span class="cm"> * CopyPaste.js</span></div><div class='line' id='LC6696'><span class="cm"> * Creates a textarea that stays hidden on the page and gets focused when user presses CTRL while not having a form input focused</span></div><div class='line' id='LC6697'><span class="cm"> * In future we may implement a better driver when better APIs are available</span></div><div class='line' id='LC6698'><span class="cm"> * @constructor</span></div><div class='line' id='LC6699'><span class="cm"> */</span></div><div class='line' id='LC6700'><span class="kd">var</span> <span class="nx">CopyPaste</span> <span class="o">=</span> <span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC6701'> <span class="kd">var</span> <span class="nx">instance</span><span class="p">;</span></div><div class='line' id='LC6702'> <span class="k">return</span> <span class="p">{</span></div><div class='line' id='LC6703'> <span class="nx">getInstance</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC6704'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">instance</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6705'> <span class="nx">instance</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CopyPasteClass</span><span class="p">();</span></div><div class='line' id='LC6706'> <span class="p">}</span></div><div class='line' id='LC6707'> <span class="k">return</span> <span class="nx">instance</span><span class="p">;</span></div><div class='line' id='LC6708'> <span class="p">}</span></div><div class='line' id='LC6709'> <span class="p">};</span></div><div class='line' id='LC6710'><span class="p">})();</span></div><div class='line' id='LC6711'><br/></div><div class='line' id='LC6712'><span class="kd">function</span> <span class="nx">CopyPasteClass</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC6713'> <span class="kd">var</span> <span class="nx">that</span> <span class="o">=</span> <span class="k">this</span></div><div class='line' id='LC6714'> <span class="p">,</span> <span class="nx">style</span></div><div class='line' id='LC6715'> <span class="p">,</span> <span class="nx">parent</span><span class="p">;</span></div><div class='line' id='LC6716'><br/></div><div class='line' id='LC6717'> <span class="k">this</span><span class="p">.</span><span class="nx">copyCallbacks</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC6718'> <span class="k">this</span><span class="p">.</span><span class="nx">cutCallbacks</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC6719'> <span class="k">this</span><span class="p">.</span><span class="nx">pasteCallbacks</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC6720'><br/></div><div class='line' id='LC6721'> <span class="kd">var</span> <span class="nx">listenerElement</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">documentElement</span><span class="p">;</span></div><div class='line' id='LC6722'> <span class="nx">parent</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">body</span><span class="p">;</span></div><div class='line' id='LC6723'><br/></div><div class='line' id='LC6724'> <span class="k">if</span> <span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">getElementById</span><span class="p">(</span><span class="s1">'CopyPasteDiv'</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC6725'> <span class="k">this</span><span class="p">.</span><span class="nx">elDiv</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">getElementById</span><span class="p">(</span><span class="s1">'CopyPasteDiv'</span><span class="p">);</span></div><div class='line' id='LC6726'> <span class="k">this</span><span class="p">.</span><span class="nx">elTextarea</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">elDiv</span><span class="p">.</span><span class="nx">firstChild</span><span class="p">;</span></div><div class='line' id='LC6727'> <span class="p">}</span></div><div class='line' id='LC6728'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC6729'> <span class="k">this</span><span class="p">.</span><span class="nx">elDiv</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'DIV'</span><span class="p">);</span></div><div class='line' id='LC6730'> <span class="k">this</span><span class="p">.</span><span class="nx">elDiv</span><span class="p">.</span><span class="nx">id</span> <span class="o">=</span> <span class="s1">'CopyPasteDiv'</span><span class="p">;</span></div><div class='line' id='LC6731'> <span class="nx">style</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">elDiv</span><span class="p">.</span><span class="nx">style</span><span class="p">;</span></div><div class='line' id='LC6732'> <span class="nx">style</span><span class="p">.</span><span class="nx">position</span> <span class="o">=</span> <span class="s1">'fixed'</span><span class="p">;</span></div><div class='line' id='LC6733'> <span class="nx">style</span><span class="p">.</span><span class="nx">top</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC6734'> <span class="nx">style</span><span class="p">.</span><span class="nx">left</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC6735'> <span class="nx">parent</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">elDiv</span><span class="p">);</span></div><div class='line' id='LC6736'><br/></div><div class='line' id='LC6737'> <span class="k">this</span><span class="p">.</span><span class="nx">elTextarea</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'TEXTAREA'</span><span class="p">);</span></div><div class='line' id='LC6738'> <span class="k">this</span><span class="p">.</span><span class="nx">elTextarea</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="s1">'copyPaste'</span><span class="p">;</span></div><div class='line' id='LC6739'> <span class="nx">style</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">elTextarea</span><span class="p">.</span><span class="nx">style</span><span class="p">;</span></div><div class='line' id='LC6740'> <span class="nx">style</span><span class="p">.</span><span class="nx">width</span> <span class="o">=</span> <span class="s1">'1px'</span><span class="p">;</span></div><div class='line' id='LC6741'> <span class="nx">style</span><span class="p">.</span><span class="nx">height</span> <span class="o">=</span> <span class="s1">'1px'</span><span class="p">;</span></div><div class='line' id='LC6742'> <span class="k">this</span><span class="p">.</span><span class="nx">elDiv</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">elTextarea</span><span class="p">);</span></div><div class='line' id='LC6743'><br/></div><div class='line' id='LC6744'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">style</span><span class="p">.</span><span class="nx">opacity</span> <span class="o">!==</span> <span class="s1">'undefined'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6745'> <span class="nx">style</span><span class="p">.</span><span class="nx">opacity</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC6746'> <span class="p">}</span></div><div class='line' id='LC6747'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC6748'> <span class="cm">/*@cc_on @if (@_jscript)</span></div><div class='line' id='LC6749'><span class="cm"> if(typeof style.filter === 'string') {</span></div><div class='line' id='LC6750'><span class="cm"> style.filter = 'alpha(opacity=0)';</span></div><div class='line' id='LC6751'><span class="cm"> }</span></div><div class='line' id='LC6752'><span class="cm"> @end @*/</span></div><div class='line' id='LC6753'> <span class="p">}</span></div><div class='line' id='LC6754'> <span class="p">}</span></div><div class='line' id='LC6755'><br/></div><div class='line' id='LC6756'> <span class="k">this</span><span class="p">.</span><span class="nx">_bindEvent</span><span class="p">(</span><span class="nx">listenerElement</span><span class="p">,</span> <span class="s1">'keydown'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6757'> <span class="kd">var</span> <span class="nx">isCtrlDown</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC6758'> <span class="k">if</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">metaKey</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//mac</span></div><div class='line' id='LC6759'> <span class="nx">isCtrlDown</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC6760'> <span class="p">}</span></div><div class='line' id='LC6761'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">ctrlKey</span> <span class="o">&&</span> <span class="nx">navigator</span><span class="p">.</span><span class="nx">userAgent</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="s1">'Mac'</span><span class="p">)</span> <span class="o">===</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//pc</span></div><div class='line' id='LC6762'> <span class="nx">isCtrlDown</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC6763'> <span class="p">}</span></div><div class='line' id='LC6764'><br/></div><div class='line' id='LC6765'> <span class="k">if</span> <span class="p">(</span><span class="nx">isCtrlDown</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6766'> <span class="k">if</span> <span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">activeElement</span> <span class="o">!==</span> <span class="nx">that</span><span class="p">.</span><span class="nx">elTextarea</span> <span class="o">&&</span> <span class="nx">that</span><span class="p">.</span><span class="nx">getSelectionText</span><span class="p">()</span> <span class="o">!=</span> <span class="s1">''</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6767'> <span class="k">return</span><span class="p">;</span> <span class="c1">//this is needed by fragmentSelection in Handsontable. Ignore copypaste.js behavior if fragment of cell text is selected</span></div><div class='line' id='LC6768'> <span class="p">}</span></div><div class='line' id='LC6769'><br/></div><div class='line' id='LC6770'> <span class="nx">that</span><span class="p">.</span><span class="nx">selectNodeText</span><span class="p">(</span><span class="nx">that</span><span class="p">.</span><span class="nx">elTextarea</span><span class="p">);</span></div><div class='line' id='LC6771'> <span class="nx">setTimeout</span><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC6772'> <span class="nx">that</span><span class="p">.</span><span class="nx">selectNodeText</span><span class="p">(</span><span class="nx">that</span><span class="p">.</span><span class="nx">elTextarea</span><span class="p">);</span></div><div class='line' id='LC6773'> <span class="p">},</span> <span class="mi">0</span><span class="p">);</span></div><div class='line' id='LC6774'> <span class="p">}</span></div><div class='line' id='LC6775'><br/></div><div class='line' id='LC6776'> <span class="cm">/* 67 = c</span></div><div class='line' id='LC6777'><span class="cm"> * 86 = v</span></div><div class='line' id='LC6778'><span class="cm"> * 88 = x</span></div><div class='line' id='LC6779'><span class="cm"> */</span></div><div class='line' id='LC6780'> <span class="k">if</span> <span class="p">(</span><span class="nx">isCtrlDown</span> <span class="o">&&</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">keyCode</span> <span class="o">===</span> <span class="mi">67</span> <span class="o">||</span> <span class="nx">event</span><span class="p">.</span><span class="nx">keyCode</span> <span class="o">===</span> <span class="mi">86</span> <span class="o">||</span> <span class="nx">event</span><span class="p">.</span><span class="nx">keyCode</span> <span class="o">===</span> <span class="mi">88</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC6781'> <span class="c1">// that.selectNodeText(that.elTextarea);</span></div><div class='line' id='LC6782'><br/></div><div class='line' id='LC6783'> <span class="k">if</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">keyCode</span> <span class="o">===</span> <span class="mi">88</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//works in all browsers, incl. Opera < 12.12</span></div><div class='line' id='LC6784'> <span class="nx">setTimeout</span><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC6785'> <span class="nx">that</span><span class="p">.</span><span class="nx">triggerCut</span><span class="p">(</span><span class="nx">event</span><span class="p">);</span></div><div class='line' id='LC6786'> <span class="p">},</span> <span class="mi">0</span><span class="p">);</span></div><div class='line' id='LC6787'> <span class="p">}</span></div><div class='line' id='LC6788'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">keyCode</span> <span class="o">===</span> <span class="mi">86</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6789'> <span class="nx">setTimeout</span><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC6790'> <span class="nx">that</span><span class="p">.</span><span class="nx">triggerPaste</span><span class="p">(</span><span class="nx">event</span><span class="p">);</span></div><div class='line' id='LC6791'> <span class="p">},</span> <span class="mi">0</span><span class="p">);</span></div><div class='line' id='LC6792'> <span class="p">}</span></div><div class='line' id='LC6793'> <span class="p">}</span></div><div class='line' id='LC6794'> <span class="p">});</span></div><div class='line' id='LC6795'><span class="p">}</span></div><div class='line' id='LC6796'><br/></div><div class='line' id='LC6797'><span class="c1">//http://jsperf.com/textara-selection</span></div><div class='line' id='LC6798'><span class="c1">//http://stackoverflow.com/questions/1502385/how-can-i-make-this-code-work-in-ie</span></div><div class='line' id='LC6799'><span class="nx">CopyPasteClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">selectNodeText</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6800'> <span class="nx">el</span><span class="p">.</span><span class="nx">select</span><span class="p">();</span></div><div class='line' id='LC6801'><span class="p">};</span></div><div class='line' id='LC6802'><br/></div><div class='line' id='LC6803'><span class="c1">//http://stackoverflow.com/questions/5379120/get-the-highlighted-selected-text</span></div><div class='line' id='LC6804'><span class="nx">CopyPasteClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">getSelectionText</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC6805'> <span class="kd">var</span> <span class="nx">text</span> <span class="o">=</span> <span class="s2">""</span><span class="p">;</span></div><div class='line' id='LC6806'> <span class="k">if</span> <span class="p">(</span><span class="nb">window</span><span class="p">.</span><span class="nx">getSelection</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6807'> <span class="nx">text</span> <span class="o">=</span> <span class="nb">window</span><span class="p">.</span><span class="nx">getSelection</span><span class="p">().</span><span class="nx">toString</span><span class="p">();</span></div><div class='line' id='LC6808'> <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">selection</span> <span class="o">&&</span> <span class="nb">document</span><span class="p">.</span><span class="nx">selection</span><span class="p">.</span><span class="nx">type</span> <span class="o">!=</span> <span class="s2">"Control"</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6809'> <span class="nx">text</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">selection</span><span class="p">.</span><span class="nx">createRange</span><span class="p">().</span><span class="nx">text</span><span class="p">;</span></div><div class='line' id='LC6810'> <span class="p">}</span></div><div class='line' id='LC6811'> <span class="k">return</span> <span class="nx">text</span><span class="p">;</span></div><div class='line' id='LC6812'><span class="p">};</span></div><div class='line' id='LC6813'><br/></div><div class='line' id='LC6814'><span class="nx">CopyPasteClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">copyable</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">str</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6815'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">str</span> <span class="o">!==</span> <span class="s1">'string'</span> <span class="o">&&</span> <span class="nx">str</span><span class="p">.</span><span class="nx">toString</span> <span class="o">===</span> <span class="k">void</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6816'> <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s1">'copyable requires string parameter'</span><span class="p">);</span></div><div class='line' id='LC6817'> <span class="p">}</span></div><div class='line' id='LC6818'> <span class="k">this</span><span class="p">.</span><span class="nx">elTextarea</span><span class="p">.</span><span class="nx">value</span> <span class="o">=</span> <span class="nx">str</span><span class="p">;</span></div><div class='line' id='LC6819'><span class="p">};</span></div><div class='line' id='LC6820'><br/></div><div class='line' id='LC6821'><span class="nx">CopyPasteClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">onCopy</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">fn</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6822'> <span class="k">this</span><span class="p">.</span><span class="nx">copyCallbacks</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">fn</span><span class="p">);</span></div><div class='line' id='LC6823'><span class="p">};</span></div><div class='line' id='LC6824'><br/></div><div class='line' id='LC6825'><span class="nx">CopyPasteClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">onCut</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">fn</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6826'> <span class="k">this</span><span class="p">.</span><span class="nx">cutCallbacks</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">fn</span><span class="p">);</span></div><div class='line' id='LC6827'><span class="p">};</span></div><div class='line' id='LC6828'><br/></div><div class='line' id='LC6829'><span class="nx">CopyPasteClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">onPaste</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">fn</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6830'> <span class="k">this</span><span class="p">.</span><span class="nx">pasteCallbacks</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">fn</span><span class="p">);</span></div><div class='line' id='LC6831'><span class="p">};</span></div><div class='line' id='LC6832'><br/></div><div class='line' id='LC6833'><span class="nx">CopyPasteClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">removeCallback</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">fn</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6834'> <span class="kd">var</span> <span class="nx">i</span><span class="p">,</span> <span class="nx">ilen</span><span class="p">;</span></div><div class='line' id='LC6835'> <span class="k">for</span> <span class="p">(</span><span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">ilen</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">copyCallbacks</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">ilen</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6836'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">copyCallbacks</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">===</span> <span class="nx">fn</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6837'> <span class="k">this</span><span class="p">.</span><span class="nx">copyCallbacks</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="nx">i</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span></div><div class='line' id='LC6838'> <span class="k">return</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC6839'> <span class="p">}</span></div><div class='line' id='LC6840'> <span class="p">}</span></div><div class='line' id='LC6841'> <span class="k">for</span> <span class="p">(</span><span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">ilen</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cutCallbacks</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">ilen</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6842'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">cutCallbacks</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">===</span> <span class="nx">fn</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6843'> <span class="k">this</span><span class="p">.</span><span class="nx">cutCallbacks</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="nx">i</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span></div><div class='line' id='LC6844'> <span class="k">return</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC6845'> <span class="p">}</span></div><div class='line' id='LC6846'> <span class="p">}</span></div><div class='line' id='LC6847'> <span class="k">for</span> <span class="p">(</span><span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">ilen</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">pasteCallbacks</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">ilen</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6848'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">pasteCallbacks</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">===</span> <span class="nx">fn</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6849'> <span class="k">this</span><span class="p">.</span><span class="nx">pasteCallbacks</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="nx">i</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span></div><div class='line' id='LC6850'> <span class="k">return</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC6851'> <span class="p">}</span></div><div class='line' id='LC6852'> <span class="p">}</span></div><div class='line' id='LC6853'> <span class="k">return</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC6854'><span class="p">};</span></div><div class='line' id='LC6855'><br/></div><div class='line' id='LC6856'><span class="nx">CopyPasteClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">triggerCut</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6857'> <span class="kd">var</span> <span class="nx">that</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC6858'> <span class="k">if</span> <span class="p">(</span><span class="nx">that</span><span class="p">.</span><span class="nx">cutCallbacks</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6859'> <span class="nx">setTimeout</span><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC6860'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">ilen</span> <span class="o">=</span> <span class="nx">that</span><span class="p">.</span><span class="nx">cutCallbacks</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">ilen</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6861'> <span class="nx">that</span><span class="p">.</span><span class="nx">cutCallbacks</span><span class="p">[</span><span class="nx">i</span><span class="p">](</span><span class="nx">event</span><span class="p">);</span></div><div class='line' id='LC6862'> <span class="p">}</span></div><div class='line' id='LC6863'> <span class="p">},</span> <span class="mi">50</span><span class="p">);</span></div><div class='line' id='LC6864'> <span class="p">}</span></div><div class='line' id='LC6865'><span class="p">};</span></div><div class='line' id='LC6866'><br/></div><div class='line' id='LC6867'><span class="nx">CopyPasteClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">triggerPaste</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">event</span><span class="p">,</span> <span class="nx">str</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6868'> <span class="kd">var</span> <span class="nx">that</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC6869'> <span class="k">if</span> <span class="p">(</span><span class="nx">that</span><span class="p">.</span><span class="nx">pasteCallbacks</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6870'> <span class="nx">setTimeout</span><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC6871'> <span class="kd">var</span> <span class="nx">val</span> <span class="o">=</span> <span class="p">(</span><span class="nx">str</span> <span class="o">||</span> <span class="nx">that</span><span class="p">.</span><span class="nx">elTextarea</span><span class="p">.</span><span class="nx">value</span><span class="p">).</span><span class="nx">replace</span><span class="p">(</span><span class="sr">/\n$/</span><span class="p">,</span> <span class="s1">''</span><span class="p">);</span> <span class="c1">//remove trailing newline</span></div><div class='line' id='LC6872'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">ilen</span> <span class="o">=</span> <span class="nx">that</span><span class="p">.</span><span class="nx">pasteCallbacks</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">ilen</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6873'> <span class="nx">that</span><span class="p">.</span><span class="nx">pasteCallbacks</span><span class="p">[</span><span class="nx">i</span><span class="p">](</span><span class="nx">val</span><span class="p">,</span> <span class="nx">event</span><span class="p">);</span></div><div class='line' id='LC6874'> <span class="p">}</span></div><div class='line' id='LC6875'> <span class="p">},</span> <span class="mi">50</span><span class="p">);</span></div><div class='line' id='LC6876'> <span class="p">}</span></div><div class='line' id='LC6877'><span class="p">};</span></div><div class='line' id='LC6878'><br/></div><div class='line' id='LC6879'><span class="c1">//http://net.tutsplus.com/tutorials/javascript-ajax/javascript-from-null-cross-browser-event-binding/</span></div><div class='line' id='LC6880'><span class="c1">//http://stackoverflow.com/questions/4643249/cross-browser-event-object-normalization</span></div><div class='line' id='LC6881'><span class="nx">CopyPasteClass</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">_bindEvent</span> <span class="o">=</span> <span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC6882'> <span class="k">if</span> <span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">addEventListener</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6883'> <span class="k">return</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">elem</span><span class="p">,</span> <span class="nx">type</span><span class="p">,</span> <span class="nx">cb</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6884'> <span class="nx">elem</span><span class="p">.</span><span class="nx">addEventListener</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">cb</span><span class="p">,</span> <span class="kc">false</span><span class="p">);</span></div><div class='line' id='LC6885'> <span class="p">};</span></div><div class='line' id='LC6886'> <span class="p">}</span></div><div class='line' id='LC6887'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC6888'> <span class="k">return</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">elem</span><span class="p">,</span> <span class="nx">type</span><span class="p">,</span> <span class="nx">cb</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6889'> <span class="nx">elem</span><span class="p">.</span><span class="nx">attachEvent</span><span class="p">(</span><span class="s1">'on'</span> <span class="o">+</span> <span class="nx">type</span><span class="p">,</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC6890'> <span class="kd">var</span> <span class="nx">e</span> <span class="o">=</span> <span class="nb">window</span><span class="p">[</span><span class="s1">'event'</span><span class="p">];</span></div><div class='line' id='LC6891'> <span class="nx">e</span><span class="p">.</span><span class="nx">target</span> <span class="o">=</span> <span class="nx">e</span><span class="p">.</span><span class="nx">srcElement</span><span class="p">;</span></div><div class='line' id='LC6892'> <span class="nx">e</span><span class="p">.</span><span class="nx">relatedTarget</span> <span class="o">=</span> <span class="nx">e</span><span class="p">.</span><span class="nx">relatedTarget</span> <span class="o">||</span> <span class="nx">e</span><span class="p">.</span><span class="nx">type</span> <span class="o">==</span> <span class="s1">'mouseover'</span> <span class="o">?</span> <span class="nx">e</span><span class="p">.</span><span class="nx">fromElement</span> <span class="o">:</span> <span class="nx">e</span><span class="p">.</span><span class="nx">toElement</span><span class="p">;</span></div><div class='line' id='LC6893'> <span class="k">if</span> <span class="p">(</span><span class="nx">e</span><span class="p">.</span><span class="nx">target</span><span class="p">.</span><span class="nx">nodeType</span> <span class="o">===</span> <span class="mi">3</span><span class="p">)</span> <span class="nx">e</span><span class="p">.</span><span class="nx">target</span> <span class="o">=</span> <span class="nx">e</span><span class="p">.</span><span class="nx">target</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">;</span> <span class="c1">//Safari bug</span></div><div class='line' id='LC6894'> <span class="k">return</span> <span class="nx">cb</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">elem</span><span class="p">,</span> <span class="nx">e</span><span class="p">)</span></div><div class='line' id='LC6895'> <span class="p">});</span></div><div class='line' id='LC6896'> <span class="p">};</span></div><div class='line' id='LC6897'> <span class="p">}</span></div><div class='line' id='LC6898'><span class="p">})();</span></div><div class='line' id='LC6899'><span class="kd">function</span> <span class="nx">WalkontableBorder</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">settings</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6900'> <span class="kd">var</span> <span class="nx">style</span><span class="p">;</span></div><div class='line' id='LC6901'><br/></div><div class='line' id='LC6902'> <span class="c1">//reference to instance</span></div><div class='line' id='LC6903'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">;</span></div><div class='line' id='LC6904'> <span class="k">this</span><span class="p">.</span><span class="nx">settings</span> <span class="o">=</span> <span class="nx">settings</span><span class="p">;</span></div><div class='line' id='LC6905'> <span class="k">this</span><span class="p">.</span><span class="nx">wtDom</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">;</span></div><div class='line' id='LC6906'><br/></div><div class='line' id='LC6907'> <span class="k">this</span><span class="p">.</span><span class="nx">main</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s2">"div"</span><span class="p">);</span></div><div class='line' id='LC6908'> <span class="nx">style</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">main</span><span class="p">.</span><span class="nx">style</span><span class="p">;</span></div><div class='line' id='LC6909'> <span class="nx">style</span><span class="p">.</span><span class="nx">position</span> <span class="o">=</span> <span class="s1">'absolute'</span><span class="p">;</span></div><div class='line' id='LC6910'> <span class="nx">style</span><span class="p">.</span><span class="nx">top</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC6911'> <span class="nx">style</span><span class="p">.</span><span class="nx">left</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC6912'><span class="c1">// style.visibility = 'hidden';</span></div><div class='line' id='LC6913'><br/></div><div class='line' id='LC6914'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="mi">5</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6915'> <span class="kd">var</span> <span class="nx">DIV</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'DIV'</span><span class="p">);</span></div><div class='line' id='LC6916'> <span class="nx">DIV</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="s1">'wtBorder '</span> <span class="o">+</span> <span class="p">(</span><span class="nx">settings</span><span class="p">.</span><span class="nx">className</span> <span class="o">||</span> <span class="s1">''</span><span class="p">);</span></div><div class='line' id='LC6917'> <span class="nx">style</span> <span class="o">=</span> <span class="nx">DIV</span><span class="p">.</span><span class="nx">style</span><span class="p">;</span></div><div class='line' id='LC6918'> <span class="nx">style</span><span class="p">.</span><span class="nx">backgroundColor</span> <span class="o">=</span> <span class="nx">settings</span><span class="p">.</span><span class="nx">border</span><span class="p">.</span><span class="nx">color</span><span class="p">;</span></div><div class='line' id='LC6919'> <span class="nx">style</span><span class="p">.</span><span class="nx">height</span> <span class="o">=</span> <span class="nx">settings</span><span class="p">.</span><span class="nx">border</span><span class="p">.</span><span class="nx">width</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC6920'> <span class="nx">style</span><span class="p">.</span><span class="nx">width</span> <span class="o">=</span> <span class="nx">settings</span><span class="p">.</span><span class="nx">border</span><span class="p">.</span><span class="nx">width</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC6921'> <span class="k">this</span><span class="p">.</span><span class="nx">main</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">DIV</span><span class="p">);</span></div><div class='line' id='LC6922'> <span class="p">}</span></div><div class='line' id='LC6923'><br/></div><div class='line' id='LC6924'> <span class="k">this</span><span class="p">.</span><span class="nx">top</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">main</span><span class="p">.</span><span class="nx">childNodes</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span></div><div class='line' id='LC6925'> <span class="k">this</span><span class="p">.</span><span class="nx">left</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">main</span><span class="p">.</span><span class="nx">childNodes</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span></div><div class='line' id='LC6926'> <span class="k">this</span><span class="p">.</span><span class="nx">bottom</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">main</span><span class="p">.</span><span class="nx">childNodes</span><span class="p">[</span><span class="mi">2</span><span class="p">];</span></div><div class='line' id='LC6927'> <span class="k">this</span><span class="p">.</span><span class="nx">right</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">main</span><span class="p">.</span><span class="nx">childNodes</span><span class="p">[</span><span class="mi">3</span><span class="p">];</span></div><div class='line' id='LC6928'><br/></div><div class='line' id='LC6929'><br/></div><div class='line' id='LC6930'> <span class="cm">/*$(this.top).on(sss, function(event) {</span></div><div class='line' id='LC6931'><span class="cm"> event.preventDefault();</span></div><div class='line' id='LC6932'><span class="cm"> event.stopImmediatePropagation();</span></div><div class='line' id='LC6933'><span class="cm"> $(this).hide();</span></div><div class='line' id='LC6934'><span class="cm"> });</span></div><div class='line' id='LC6935'><span class="cm"> $(this.left).on(sss, function(event) {</span></div><div class='line' id='LC6936'><span class="cm"> event.preventDefault();</span></div><div class='line' id='LC6937'><span class="cm"> event.stopImmediatePropagation();</span></div><div class='line' id='LC6938'><span class="cm"> $(this).hide();</span></div><div class='line' id='LC6939'><span class="cm"> });</span></div><div class='line' id='LC6940'><span class="cm"> $(this.bottom).on(sss, function(event) {</span></div><div class='line' id='LC6941'><span class="cm"> event.preventDefault();</span></div><div class='line' id='LC6942'><span class="cm"> event.stopImmediatePropagation();</span></div><div class='line' id='LC6943'><span class="cm"> $(this).hide();</span></div><div class='line' id='LC6944'><span class="cm"> });</span></div><div class='line' id='LC6945'><span class="cm"> $(this.right).on(sss, function(event) {</span></div><div class='line' id='LC6946'><span class="cm"> event.preventDefault();</span></div><div class='line' id='LC6947'><span class="cm"> event.stopImmediatePropagation();</span></div><div class='line' id='LC6948'><span class="cm"> $(this).hide();</span></div><div class='line' id='LC6949'><span class="cm"> });*/</span></div><div class='line' id='LC6950'><br/></div><div class='line' id='LC6951'> <span class="k">this</span><span class="p">.</span><span class="nx">topStyle</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">top</span><span class="p">.</span><span class="nx">style</span><span class="p">;</span></div><div class='line' id='LC6952'> <span class="k">this</span><span class="p">.</span><span class="nx">leftStyle</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">left</span><span class="p">.</span><span class="nx">style</span><span class="p">;</span></div><div class='line' id='LC6953'> <span class="k">this</span><span class="p">.</span><span class="nx">bottomStyle</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">bottom</span><span class="p">.</span><span class="nx">style</span><span class="p">;</span></div><div class='line' id='LC6954'> <span class="k">this</span><span class="p">.</span><span class="nx">rightStyle</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">right</span><span class="p">.</span><span class="nx">style</span><span class="p">;</span></div><div class='line' id='LC6955'><br/></div><div class='line' id='LC6956'> <span class="k">this</span><span class="p">.</span><span class="nx">corner</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">main</span><span class="p">.</span><span class="nx">childNodes</span><span class="p">[</span><span class="mi">4</span><span class="p">];</span></div><div class='line' id='LC6957'> <span class="k">this</span><span class="p">.</span><span class="nx">corner</span><span class="p">.</span><span class="nx">className</span> <span class="o">+=</span> <span class="s1">' corner'</span><span class="p">;</span></div><div class='line' id='LC6958'> <span class="k">this</span><span class="p">.</span><span class="nx">cornerStyle</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">corner</span><span class="p">.</span><span class="nx">style</span><span class="p">;</span></div><div class='line' id='LC6959'> <span class="k">this</span><span class="p">.</span><span class="nx">cornerStyle</span><span class="p">.</span><span class="nx">width</span> <span class="o">=</span> <span class="s1">'5px'</span><span class="p">;</span></div><div class='line' id='LC6960'> <span class="k">this</span><span class="p">.</span><span class="nx">cornerStyle</span><span class="p">.</span><span class="nx">height</span> <span class="o">=</span> <span class="s1">'5px'</span><span class="p">;</span></div><div class='line' id='LC6961'> <span class="k">this</span><span class="p">.</span><span class="nx">cornerStyle</span><span class="p">.</span><span class="nx">border</span> <span class="o">=</span> <span class="s1">'2px solid #FFF'</span><span class="p">;</span></div><div class='line' id='LC6962'><br/></div><div class='line' id='LC6963'> <span class="k">this</span><span class="p">.</span><span class="nx">disappear</span><span class="p">();</span></div><div class='line' id='LC6964'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">bordersHolder</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6965'> <span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">bordersHolder</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'div'</span><span class="p">);</span></div><div class='line' id='LC6966'> <span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">bordersHolder</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="s1">'htBorders'</span><span class="p">;</span></div><div class='line' id='LC6967'> <span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">hider</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">bordersHolder</span><span class="p">);</span></div><div class='line' id='LC6968'><br/></div><div class='line' id='LC6969'> <span class="p">}</span></div><div class='line' id='LC6970'> <span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">bordersHolder</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">main</span><span class="p">);</span></div><div class='line' id='LC6971'><br/></div><div class='line' id='LC6972'> <span class="kd">var</span> <span class="nx">down</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC6973'> <span class="kd">var</span> <span class="nx">$body</span> <span class="o">=</span> <span class="nx">$</span><span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">body</span><span class="p">);</span></div><div class='line' id='LC6974'><br/></div><div class='line' id='LC6975'> <span class="nx">$body</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'mousedown.walkontable.'</span> <span class="o">+</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">guid</span><span class="p">,</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC6976'> <span class="nx">down</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC6977'> <span class="p">});</span></div><div class='line' id='LC6978'><br/></div><div class='line' id='LC6979'> <span class="nx">$body</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'mouseup.walkontable.'</span> <span class="o">+</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">guid</span><span class="p">,</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC6980'> <span class="nx">down</span> <span class="o">=</span> <span class="kc">false</span></div><div class='line' id='LC6981'> <span class="p">});</span></div><div class='line' id='LC6982'><br/></div><div class='line' id='LC6983'> <span class="nx">$</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">main</span><span class="p">.</span><span class="nx">childNodes</span><span class="p">).</span><span class="nx">on</span><span class="p">(</span><span class="s1">'mouseenter'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6984'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">down</span> <span class="o">||</span> <span class="o">!</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'hideBorderOnMouseDownOver'</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC6985'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC6986'> <span class="p">}</span></div><div class='line' id='LC6987'> <span class="nx">event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">();</span></div><div class='line' id='LC6988'> <span class="nx">event</span><span class="p">.</span><span class="nx">stopImmediatePropagation</span><span class="p">();</span></div><div class='line' id='LC6989'><br/></div><div class='line' id='LC6990'> <span class="kd">var</span> <span class="nx">bounds</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getBoundingClientRect</span><span class="p">();</span></div><div class='line' id='LC6991'><br/></div><div class='line' id='LC6992'> <span class="kd">var</span> <span class="nx">$this</span> <span class="o">=</span> <span class="nx">$</span><span class="p">(</span><span class="k">this</span><span class="p">);</span></div><div class='line' id='LC6993'> <span class="nx">$this</span><span class="p">.</span><span class="nx">hide</span><span class="p">();</span></div><div class='line' id='LC6994'><br/></div><div class='line' id='LC6995'> <span class="kd">var</span> <span class="nx">isOutside</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC6996'> <span class="k">if</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">clientY</span> <span class="o"><</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">floor</span><span class="p">(</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">top</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC6997'> <span class="k">return</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC6998'> <span class="p">}</span></div><div class='line' id='LC6999'> <span class="k">if</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">clientY</span> <span class="o">></span> <span class="nb">Math</span><span class="p">.</span><span class="nx">ceil</span><span class="p">(</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">top</span> <span class="o">+</span> <span class="nx">bounds</span><span class="p">.</span><span class="nx">height</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC7000'> <span class="k">return</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC7001'> <span class="p">}</span></div><div class='line' id='LC7002'> <span class="k">if</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">clientX</span> <span class="o"><</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">floor</span><span class="p">(</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">left</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC7003'> <span class="k">return</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC7004'> <span class="p">}</span></div><div class='line' id='LC7005'> <span class="k">if</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">clientX</span> <span class="o">></span> <span class="nb">Math</span><span class="p">.</span><span class="nx">ceil</span><span class="p">(</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">left</span> <span class="o">+</span> <span class="nx">bounds</span><span class="p">.</span><span class="nx">width</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC7006'> <span class="k">return</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC7007'> <span class="p">}</span></div><div class='line' id='LC7008'> <span class="p">};</span></div><div class='line' id='LC7009'><br/></div><div class='line' id='LC7010'> <span class="nx">$body</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'mousemove.border.'</span> <span class="o">+</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">guid</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7011'> <span class="k">if</span> <span class="p">(</span><span class="nx">isOutside</span><span class="p">(</span><span class="nx">event</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC7012'> <span class="nx">$body</span><span class="p">.</span><span class="nx">off</span><span class="p">(</span><span class="s1">'mousemove.border.'</span> <span class="o">+</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">guid</span><span class="p">);</span></div><div class='line' id='LC7013'> <span class="nx">$this</span><span class="p">.</span><span class="nx">show</span><span class="p">();</span></div><div class='line' id='LC7014'> <span class="p">}</span></div><div class='line' id='LC7015'> <span class="p">});</span></div><div class='line' id='LC7016'> <span class="p">});</span></div><div class='line' id='LC7017'><span class="p">}</span></div><div class='line' id='LC7018'><br/></div><div class='line' id='LC7019'><span class="cm">/**</span></div><div class='line' id='LC7020'><span class="cm"> * Show border around one or many cells</span></div><div class='line' id='LC7021'><span class="cm"> * @param {Array} corners</span></div><div class='line' id='LC7022'><span class="cm"> */</span></div><div class='line' id='LC7023'><span class="nx">WalkontableBorder</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">appear</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">corners</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7024'> <span class="kd">var</span> <span class="nx">isMultiple</span><span class="p">,</span> <span class="nx">fromTD</span><span class="p">,</span> <span class="nx">toTD</span><span class="p">,</span> <span class="nx">fromOffset</span><span class="p">,</span> <span class="nx">toOffset</span><span class="p">,</span> <span class="nx">containerOffset</span><span class="p">,</span> <span class="nx">top</span><span class="p">,</span> <span class="nx">minTop</span><span class="p">,</span> <span class="nx">left</span><span class="p">,</span> <span class="nx">minLeft</span><span class="p">,</span> <span class="nx">height</span><span class="p">,</span> <span class="nx">width</span><span class="p">;</span></div><div class='line' id='LC7025'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">disabled</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7026'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC7027'> <span class="p">}</span></div><div class='line' id='LC7028'><br/></div><div class='line' id='LC7029'> <span class="kd">var</span> <span class="nx">instance</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span></div><div class='line' id='LC7030'> <span class="p">,</span> <span class="nx">fromRow</span></div><div class='line' id='LC7031'> <span class="p">,</span> <span class="nx">fromColumn</span></div><div class='line' id='LC7032'> <span class="p">,</span> <span class="nx">toRow</span></div><div class='line' id='LC7033'> <span class="p">,</span> <span class="nx">toColumn</span></div><div class='line' id='LC7034'> <span class="p">,</span> <span class="nx">hideTop</span> <span class="o">=</span> <span class="kc">false</span></div><div class='line' id='LC7035'> <span class="p">,</span> <span class="nx">hideLeft</span> <span class="o">=</span> <span class="kc">false</span></div><div class='line' id='LC7036'> <span class="p">,</span> <span class="nx">hideBottom</span> <span class="o">=</span> <span class="kc">false</span></div><div class='line' id='LC7037'> <span class="p">,</span> <span class="nx">hideRight</span> <span class="o">=</span> <span class="kc">false</span></div><div class='line' id='LC7038'> <span class="p">,</span> <span class="nx">i</span></div><div class='line' id='LC7039'> <span class="p">,</span> <span class="nx">ilen</span></div><div class='line' id='LC7040'> <span class="p">,</span> <span class="nx">s</span><span class="p">;</span></div><div class='line' id='LC7041'><br/></div><div class='line' id='LC7042'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">isRowInViewport</span><span class="p">(</span><span class="nx">corners</span><span class="p">[</span><span class="mi">0</span><span class="p">]))</span> <span class="p">{</span></div><div class='line' id='LC7043'> <span class="nx">hideTop</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC7044'> <span class="p">}</span></div><div class='line' id='LC7045'><br/></div><div class='line' id='LC7046'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">isRowInViewport</span><span class="p">(</span><span class="nx">corners</span><span class="p">[</span><span class="mi">2</span><span class="p">]))</span> <span class="p">{</span></div><div class='line' id='LC7047'> <span class="nx">hideBottom</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC7048'> <span class="p">}</span></div><div class='line' id='LC7049'><br/></div><div class='line' id='LC7050'> <span class="nx">ilen</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">rowStrategy</span><span class="p">.</span><span class="nx">countVisible</span><span class="p">();</span></div><div class='line' id='LC7051'><br/></div><div class='line' id='LC7052'> <span class="k">for</span> <span class="p">(</span><span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">ilen</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7053'> <span class="nx">s</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">rowFilter</span><span class="p">.</span><span class="nx">visibleToSource</span><span class="p">(</span><span class="nx">i</span><span class="p">);</span></div><div class='line' id='LC7054'> <span class="k">if</span> <span class="p">(</span><span class="nx">s</span> <span class="o">>=</span> <span class="nx">corners</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">&&</span> <span class="nx">s</span> <span class="o"><=</span> <span class="nx">corners</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span> <span class="p">{</span></div><div class='line' id='LC7055'> <span class="nx">fromRow</span> <span class="o">=</span> <span class="nx">s</span><span class="p">;</span></div><div class='line' id='LC7056'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC7057'> <span class="p">}</span></div><div class='line' id='LC7058'> <span class="p">}</span></div><div class='line' id='LC7059'><br/></div><div class='line' id='LC7060'> <span class="k">for</span> <span class="p">(</span><span class="nx">i</span> <span class="o">=</span> <span class="nx">ilen</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span> <span class="nx">i</span> <span class="o">>=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span><span class="o">--</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7061'> <span class="nx">s</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">rowFilter</span><span class="p">.</span><span class="nx">visibleToSource</span><span class="p">(</span><span class="nx">i</span><span class="p">);</span></div><div class='line' id='LC7062'> <span class="k">if</span> <span class="p">(</span><span class="nx">s</span> <span class="o">>=</span> <span class="nx">corners</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">&&</span> <span class="nx">s</span> <span class="o"><=</span> <span class="nx">corners</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span> <span class="p">{</span></div><div class='line' id='LC7063'> <span class="nx">toRow</span> <span class="o">=</span> <span class="nx">s</span><span class="p">;</span></div><div class='line' id='LC7064'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC7065'> <span class="p">}</span></div><div class='line' id='LC7066'> <span class="p">}</span></div><div class='line' id='LC7067'><br/></div><div class='line' id='LC7068'> <span class="k">if</span> <span class="p">(</span><span class="nx">hideTop</span> <span class="o">&&</span> <span class="nx">hideBottom</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7069'> <span class="nx">hideLeft</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC7070'> <span class="nx">hideRight</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC7071'> <span class="p">}</span></div><div class='line' id='LC7072'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC7073'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">isColumnInViewport</span><span class="p">(</span><span class="nx">corners</span><span class="p">[</span><span class="mi">1</span><span class="p">]))</span> <span class="p">{</span></div><div class='line' id='LC7074'> <span class="nx">hideLeft</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC7075'> <span class="p">}</span></div><div class='line' id='LC7076'><br/></div><div class='line' id='LC7077'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">isColumnInViewport</span><span class="p">(</span><span class="nx">corners</span><span class="p">[</span><span class="mi">3</span><span class="p">]))</span> <span class="p">{</span></div><div class='line' id='LC7078'> <span class="nx">hideRight</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC7079'> <span class="p">}</span></div><div class='line' id='LC7080'><br/></div><div class='line' id='LC7081'> <span class="nx">ilen</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">columnStrategy</span><span class="p">.</span><span class="nx">countVisible</span><span class="p">();</span></div><div class='line' id='LC7082'><br/></div><div class='line' id='LC7083'> <span class="k">for</span> <span class="p">(</span><span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">ilen</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7084'> <span class="nx">s</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">columnFilter</span><span class="p">.</span><span class="nx">visibleToSource</span><span class="p">(</span><span class="nx">i</span><span class="p">);</span></div><div class='line' id='LC7085'> <span class="k">if</span> <span class="p">(</span><span class="nx">s</span> <span class="o">>=</span> <span class="nx">corners</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">&&</span> <span class="nx">s</span> <span class="o"><=</span> <span class="nx">corners</span><span class="p">[</span><span class="mi">3</span><span class="p">])</span> <span class="p">{</span></div><div class='line' id='LC7086'> <span class="nx">fromColumn</span> <span class="o">=</span> <span class="nx">s</span><span class="p">;</span></div><div class='line' id='LC7087'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC7088'> <span class="p">}</span></div><div class='line' id='LC7089'> <span class="p">}</span></div><div class='line' id='LC7090'><br/></div><div class='line' id='LC7091'> <span class="k">for</span> <span class="p">(</span><span class="nx">i</span> <span class="o">=</span> <span class="nx">ilen</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span> <span class="nx">i</span> <span class="o">>=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span><span class="o">--</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7092'> <span class="nx">s</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">columnFilter</span><span class="p">.</span><span class="nx">visibleToSource</span><span class="p">(</span><span class="nx">i</span><span class="p">);</span></div><div class='line' id='LC7093'> <span class="k">if</span> <span class="p">(</span><span class="nx">s</span> <span class="o">>=</span> <span class="nx">corners</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">&&</span> <span class="nx">s</span> <span class="o"><=</span> <span class="nx">corners</span><span class="p">[</span><span class="mi">3</span><span class="p">])</span> <span class="p">{</span></div><div class='line' id='LC7094'> <span class="nx">toColumn</span> <span class="o">=</span> <span class="nx">s</span><span class="p">;</span></div><div class='line' id='LC7095'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC7096'> <span class="p">}</span></div><div class='line' id='LC7097'> <span class="p">}</span></div><div class='line' id='LC7098'> <span class="p">}</span></div><div class='line' id='LC7099'><br/></div><div class='line' id='LC7100'> <span class="k">if</span> <span class="p">(</span><span class="nx">fromRow</span> <span class="o">!==</span> <span class="k">void</span> <span class="mi">0</span> <span class="o">&&</span> <span class="nx">fromColumn</span> <span class="o">!==</span> <span class="k">void</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7101'> <span class="nx">isMultiple</span> <span class="o">=</span> <span class="p">(</span><span class="nx">fromRow</span> <span class="o">!==</span> <span class="nx">toRow</span> <span class="o">||</span> <span class="nx">fromColumn</span> <span class="o">!==</span> <span class="nx">toColumn</span><span class="p">);</span></div><div class='line' id='LC7102'> <span class="nx">fromTD</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">getCell</span><span class="p">([</span><span class="nx">fromRow</span><span class="p">,</span> <span class="nx">fromColumn</span><span class="p">]);</span></div><div class='line' id='LC7103'> <span class="nx">toTD</span> <span class="o">=</span> <span class="nx">isMultiple</span> <span class="o">?</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">getCell</span><span class="p">([</span><span class="nx">toRow</span><span class="p">,</span> <span class="nx">toColumn</span><span class="p">])</span> <span class="o">:</span> <span class="nx">fromTD</span><span class="p">;</span></div><div class='line' id='LC7104'> <span class="nx">fromOffset</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">offset</span><span class="p">(</span><span class="nx">fromTD</span><span class="p">);</span></div><div class='line' id='LC7105'> <span class="nx">toOffset</span> <span class="o">=</span> <span class="nx">isMultiple</span> <span class="o">?</span> <span class="k">this</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">offset</span><span class="p">(</span><span class="nx">toTD</span><span class="p">)</span> <span class="o">:</span> <span class="nx">fromOffset</span><span class="p">;</span></div><div class='line' id='LC7106'> <span class="nx">containerOffset</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">offset</span><span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">TABLE</span><span class="p">);</span></div><div class='line' id='LC7107'><br/></div><div class='line' id='LC7108'> <span class="nx">minTop</span> <span class="o">=</span> <span class="nx">fromOffset</span><span class="p">.</span><span class="nx">top</span><span class="p">;</span></div><div class='line' id='LC7109'> <span class="nx">height</span> <span class="o">=</span> <span class="nx">toOffset</span><span class="p">.</span><span class="nx">top</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">outerHeight</span><span class="p">(</span><span class="nx">toTD</span><span class="p">)</span> <span class="o">-</span> <span class="nx">minTop</span><span class="p">;</span></div><div class='line' id='LC7110'> <span class="nx">minLeft</span> <span class="o">=</span> <span class="nx">fromOffset</span><span class="p">.</span><span class="nx">left</span><span class="p">;</span></div><div class='line' id='LC7111'> <span class="nx">width</span> <span class="o">=</span> <span class="nx">toOffset</span><span class="p">.</span><span class="nx">left</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">outerWidth</span><span class="p">(</span><span class="nx">toTD</span><span class="p">)</span> <span class="o">-</span> <span class="nx">minLeft</span><span class="p">;</span></div><div class='line' id='LC7112'><br/></div><div class='line' id='LC7113'> <span class="nx">top</span> <span class="o">=</span> <span class="nx">minTop</span> <span class="o">-</span> <span class="nx">containerOffset</span><span class="p">.</span><span class="nx">top</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC7114'> <span class="nx">left</span> <span class="o">=</span> <span class="nx">minLeft</span> <span class="o">-</span> <span class="nx">containerOffset</span><span class="p">.</span><span class="nx">left</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC7115'><br/></div><div class='line' id='LC7116'> <span class="kd">var</span> <span class="nx">style</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">getComputedStyle</span><span class="p">(</span><span class="nx">fromTD</span><span class="p">);</span></div><div class='line' id='LC7117'> <span class="k">if</span> <span class="p">(</span><span class="nb">parseInt</span><span class="p">(</span><span class="nx">style</span><span class="p">[</span><span class="s1">'borderTopWidth'</span><span class="p">],</span> <span class="mi">10</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7118'> <span class="nx">top</span> <span class="o">+=</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC7119'> <span class="nx">height</span> <span class="o">-=</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC7120'> <span class="p">}</span></div><div class='line' id='LC7121'> <span class="k">if</span> <span class="p">(</span><span class="nb">parseInt</span><span class="p">(</span><span class="nx">style</span><span class="p">[</span><span class="s1">'borderLeftWidth'</span><span class="p">],</span> <span class="mi">10</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7122'> <span class="nx">left</span> <span class="o">+=</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC7123'> <span class="nx">width</span> <span class="o">-=</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC7124'> <span class="p">}</span></div><div class='line' id='LC7125'> <span class="p">}</span></div><div class='line' id='LC7126'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC7127'> <span class="k">this</span><span class="p">.</span><span class="nx">disappear</span><span class="p">();</span></div><div class='line' id='LC7128'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC7129'> <span class="p">}</span></div><div class='line' id='LC7130'><br/></div><div class='line' id='LC7131'> <span class="k">if</span> <span class="p">(</span><span class="nx">hideTop</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7132'> <span class="k">this</span><span class="p">.</span><span class="nx">topStyle</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s1">'none'</span><span class="p">;</span></div><div class='line' id='LC7133'> <span class="p">}</span></div><div class='line' id='LC7134'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC7135'> <span class="k">this</span><span class="p">.</span><span class="nx">topStyle</span><span class="p">.</span><span class="nx">top</span> <span class="o">=</span> <span class="nx">top</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC7136'> <span class="k">this</span><span class="p">.</span><span class="nx">topStyle</span><span class="p">.</span><span class="nx">left</span> <span class="o">=</span> <span class="nx">left</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC7137'> <span class="k">this</span><span class="p">.</span><span class="nx">topStyle</span><span class="p">.</span><span class="nx">width</span> <span class="o">=</span> <span class="nx">width</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC7138'> <span class="k">this</span><span class="p">.</span><span class="nx">topStyle</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s1">'block'</span><span class="p">;</span></div><div class='line' id='LC7139'> <span class="p">}</span></div><div class='line' id='LC7140'><br/></div><div class='line' id='LC7141'> <span class="k">if</span> <span class="p">(</span><span class="nx">hideLeft</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7142'> <span class="k">this</span><span class="p">.</span><span class="nx">leftStyle</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s1">'none'</span><span class="p">;</span></div><div class='line' id='LC7143'> <span class="p">}</span></div><div class='line' id='LC7144'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC7145'> <span class="k">this</span><span class="p">.</span><span class="nx">leftStyle</span><span class="p">.</span><span class="nx">top</span> <span class="o">=</span> <span class="nx">top</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC7146'> <span class="k">this</span><span class="p">.</span><span class="nx">leftStyle</span><span class="p">.</span><span class="nx">left</span> <span class="o">=</span> <span class="nx">left</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC7147'> <span class="k">this</span><span class="p">.</span><span class="nx">leftStyle</span><span class="p">.</span><span class="nx">height</span> <span class="o">=</span> <span class="nx">height</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC7148'> <span class="k">this</span><span class="p">.</span><span class="nx">leftStyle</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s1">'block'</span><span class="p">;</span></div><div class='line' id='LC7149'> <span class="p">}</span></div><div class='line' id='LC7150'><br/></div><div class='line' id='LC7151'> <span class="kd">var</span> <span class="nx">delta</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">floor</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">border</span><span class="p">.</span><span class="nx">width</span> <span class="o">/</span> <span class="mi">2</span><span class="p">);</span></div><div class='line' id='LC7152'><br/></div><div class='line' id='LC7153'> <span class="k">if</span> <span class="p">(</span><span class="nx">hideBottom</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7154'> <span class="k">this</span><span class="p">.</span><span class="nx">bottomStyle</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s1">'none'</span><span class="p">;</span></div><div class='line' id='LC7155'> <span class="p">}</span></div><div class='line' id='LC7156'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC7157'> <span class="k">this</span><span class="p">.</span><span class="nx">bottomStyle</span><span class="p">.</span><span class="nx">top</span> <span class="o">=</span> <span class="nx">top</span> <span class="o">+</span> <span class="nx">height</span> <span class="o">-</span> <span class="nx">delta</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC7158'> <span class="k">this</span><span class="p">.</span><span class="nx">bottomStyle</span><span class="p">.</span><span class="nx">left</span> <span class="o">=</span> <span class="nx">left</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC7159'> <span class="k">this</span><span class="p">.</span><span class="nx">bottomStyle</span><span class="p">.</span><span class="nx">width</span> <span class="o">=</span> <span class="nx">width</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC7160'> <span class="k">this</span><span class="p">.</span><span class="nx">bottomStyle</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s1">'block'</span><span class="p">;</span></div><div class='line' id='LC7161'> <span class="p">}</span></div><div class='line' id='LC7162'><br/></div><div class='line' id='LC7163'> <span class="k">if</span> <span class="p">(</span><span class="nx">hideRight</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7164'> <span class="k">this</span><span class="p">.</span><span class="nx">rightStyle</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s1">'none'</span><span class="p">;</span></div><div class='line' id='LC7165'> <span class="p">}</span></div><div class='line' id='LC7166'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC7167'> <span class="k">this</span><span class="p">.</span><span class="nx">rightStyle</span><span class="p">.</span><span class="nx">top</span> <span class="o">=</span> <span class="nx">top</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC7168'> <span class="k">this</span><span class="p">.</span><span class="nx">rightStyle</span><span class="p">.</span><span class="nx">left</span> <span class="o">=</span> <span class="nx">left</span> <span class="o">+</span> <span class="nx">width</span> <span class="o">-</span> <span class="nx">delta</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC7169'> <span class="k">this</span><span class="p">.</span><span class="nx">rightStyle</span><span class="p">.</span><span class="nx">height</span> <span class="o">=</span> <span class="nx">height</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC7170'> <span class="k">this</span><span class="p">.</span><span class="nx">rightStyle</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s1">'block'</span><span class="p">;</span></div><div class='line' id='LC7171'> <span class="p">}</span></div><div class='line' id='LC7172'><br/></div><div class='line' id='LC7173'> <span class="k">if</span> <span class="p">(</span><span class="nx">hideBottom</span> <span class="o">||</span> <span class="nx">hideRight</span> <span class="o">||</span> <span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">hasSetting</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">border</span><span class="p">.</span><span class="nx">cornerVisible</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC7174'> <span class="k">this</span><span class="p">.</span><span class="nx">cornerStyle</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s1">'none'</span><span class="p">;</span></div><div class='line' id='LC7175'> <span class="p">}</span></div><div class='line' id='LC7176'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC7177'> <span class="k">this</span><span class="p">.</span><span class="nx">cornerStyle</span><span class="p">.</span><span class="nx">top</span> <span class="o">=</span> <span class="nx">top</span> <span class="o">+</span> <span class="nx">height</span> <span class="o">-</span> <span class="mi">4</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC7178'> <span class="k">this</span><span class="p">.</span><span class="nx">cornerStyle</span><span class="p">.</span><span class="nx">left</span> <span class="o">=</span> <span class="nx">left</span> <span class="o">+</span> <span class="nx">width</span> <span class="o">-</span> <span class="mi">4</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC7179'> <span class="k">this</span><span class="p">.</span><span class="nx">cornerStyle</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s1">'block'</span><span class="p">;</span></div><div class='line' id='LC7180'> <span class="p">}</span></div><div class='line' id='LC7181'><span class="p">};</span></div><div class='line' id='LC7182'><br/></div><div class='line' id='LC7183'><span class="cm">/**</span></div><div class='line' id='LC7184'><span class="cm"> * Hide border</span></div><div class='line' id='LC7185'><span class="cm"> */</span></div><div class='line' id='LC7186'><span class="nx">WalkontableBorder</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">disappear</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC7187'> <span class="k">this</span><span class="p">.</span><span class="nx">topStyle</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s1">'none'</span><span class="p">;</span></div><div class='line' id='LC7188'> <span class="k">this</span><span class="p">.</span><span class="nx">leftStyle</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s1">'none'</span><span class="p">;</span></div><div class='line' id='LC7189'> <span class="k">this</span><span class="p">.</span><span class="nx">bottomStyle</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s1">'none'</span><span class="p">;</span></div><div class='line' id='LC7190'> <span class="k">this</span><span class="p">.</span><span class="nx">rightStyle</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s1">'none'</span><span class="p">;</span></div><div class='line' id='LC7191'> <span class="k">this</span><span class="p">.</span><span class="nx">cornerStyle</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s1">'none'</span><span class="p">;</span></div><div class='line' id='LC7192'><span class="p">};</span></div><div class='line' id='LC7193'><br/></div><div class='line' id='LC7194'><span class="nx">WalkontableBorder</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">hasSetting</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">setting</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7195'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">setting</span> <span class="o">===</span> <span class="s1">'function'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7196'> <span class="k">return</span> <span class="nx">setting</span><span class="p">();</span></div><div class='line' id='LC7197'> <span class="p">}</span></div><div class='line' id='LC7198'> <span class="k">return</span> <span class="o">!!</span><span class="nx">setting</span><span class="p">;</span></div><div class='line' id='LC7199'><span class="p">};</span></div><div class='line' id='LC7200'><span class="cm">/**</span></div><div class='line' id='LC7201'><span class="cm"> * WalkontableCellFilter</span></div><div class='line' id='LC7202'><span class="cm"> * @constructor</span></div><div class='line' id='LC7203'><span class="cm"> */</span></div><div class='line' id='LC7204'><span class="kd">function</span> <span class="nx">WalkontableCellFilter</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC7205'> <span class="k">this</span><span class="p">.</span><span class="nx">offset</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC7206'> <span class="k">this</span><span class="p">.</span><span class="nx">total</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC7207'> <span class="k">this</span><span class="p">.</span><span class="nx">fixedCount</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC7208'><span class="p">}</span></div><div class='line' id='LC7209'><br/></div><div class='line' id='LC7210'><span class="nx">WalkontableCellFilter</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">source</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">n</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7211'> <span class="k">return</span> <span class="nx">n</span><span class="p">;</span></div><div class='line' id='LC7212'><span class="p">};</span></div><div class='line' id='LC7213'><br/></div><div class='line' id='LC7214'><span class="nx">WalkontableCellFilter</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">offsetted</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">n</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7215'> <span class="k">return</span> <span class="nx">n</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">offset</span><span class="p">;</span></div><div class='line' id='LC7216'><span class="p">};</span></div><div class='line' id='LC7217'><br/></div><div class='line' id='LC7218'><span class="nx">WalkontableCellFilter</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">unOffsetted</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">n</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7219'> <span class="k">return</span> <span class="nx">n</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">offset</span><span class="p">;</span></div><div class='line' id='LC7220'><span class="p">};</span></div><div class='line' id='LC7221'><br/></div><div class='line' id='LC7222'><span class="nx">WalkontableCellFilter</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">fixed</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">n</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7223'> <span class="k">if</span> <span class="p">(</span><span class="nx">n</span> <span class="o"><</span> <span class="k">this</span><span class="p">.</span><span class="nx">fixedCount</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7224'> <span class="k">return</span> <span class="nx">n</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">offset</span><span class="p">;</span></div><div class='line' id='LC7225'> <span class="p">}</span></div><div class='line' id='LC7226'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC7227'> <span class="k">return</span> <span class="nx">n</span><span class="p">;</span></div><div class='line' id='LC7228'> <span class="p">}</span></div><div class='line' id='LC7229'><span class="p">};</span></div><div class='line' id='LC7230'><br/></div><div class='line' id='LC7231'><span class="nx">WalkontableCellFilter</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">unFixed</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">n</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7232'> <span class="k">if</span> <span class="p">(</span><span class="nx">n</span> <span class="o"><</span> <span class="k">this</span><span class="p">.</span><span class="nx">fixedCount</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7233'> <span class="k">return</span> <span class="nx">n</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">offset</span><span class="p">;</span></div><div class='line' id='LC7234'> <span class="p">}</span></div><div class='line' id='LC7235'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC7236'> <span class="k">return</span> <span class="nx">n</span><span class="p">;</span></div><div class='line' id='LC7237'> <span class="p">}</span></div><div class='line' id='LC7238'><span class="p">};</span></div><div class='line' id='LC7239'><br/></div><div class='line' id='LC7240'><span class="nx">WalkontableCellFilter</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">visibleToSource</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">n</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7241'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">source</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">offsetted</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">fixed</span><span class="p">(</span><span class="nx">n</span><span class="p">)));</span></div><div class='line' id='LC7242'><span class="p">};</span></div><div class='line' id='LC7243'><br/></div><div class='line' id='LC7244'><span class="nx">WalkontableCellFilter</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">sourceToVisible</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">n</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7245'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">source</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">unOffsetted</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">unFixed</span><span class="p">(</span><span class="nx">n</span><span class="p">)));</span></div><div class='line' id='LC7246'><span class="p">};</span></div><div class='line' id='LC7247'><span class="cm">/**</span></div><div class='line' id='LC7248'><span class="cm"> * WalkontableCellStrategy</span></div><div class='line' id='LC7249'><span class="cm"> * @constructor</span></div><div class='line' id='LC7250'><span class="cm"> */</span></div><div class='line' id='LC7251'><span class="kd">function</span> <span class="nx">WalkontableCellStrategy</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC7252'><span class="p">}</span></div><div class='line' id='LC7253'><br/></div><div class='line' id='LC7254'><span class="nx">WalkontableCellStrategy</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">getSize</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">index</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7255'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">cellSizes</span><span class="p">[</span><span class="nx">index</span><span class="p">];</span></div><div class='line' id='LC7256'><span class="p">};</span></div><div class='line' id='LC7257'><br/></div><div class='line' id='LC7258'><span class="nx">WalkontableCellStrategy</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">getContainerSize</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">proposedSize</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7259'> <span class="k">return</span> <span class="k">typeof</span> <span class="k">this</span><span class="p">.</span><span class="nx">containerSizeFn</span> <span class="o">===</span> <span class="s1">'function'</span> <span class="o">?</span> <span class="k">this</span><span class="p">.</span><span class="nx">containerSizeFn</span><span class="p">(</span><span class="nx">proposedSize</span><span class="p">)</span> <span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">containerSizeFn</span><span class="p">;</span></div><div class='line' id='LC7260'><span class="p">};</span></div><div class='line' id='LC7261'><br/></div><div class='line' id='LC7262'><span class="nx">WalkontableCellStrategy</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">countVisible</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC7263'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">cellCount</span><span class="p">;</span></div><div class='line' id='LC7264'><span class="p">};</span></div><div class='line' id='LC7265'><br/></div><div class='line' id='LC7266'><span class="nx">WalkontableCellStrategy</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">isLastIncomplete</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC7267'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">remainingSize</span> <span class="o">></span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC7268'><span class="p">};</span></div><div class='line' id='LC7269'><span class="cm">/**</span></div><div class='line' id='LC7270'><span class="cm"> * WalkontableClassNameList</span></div><div class='line' id='LC7271'><span class="cm"> * @constructor</span></div><div class='line' id='LC7272'><span class="cm"> */</span></div><div class='line' id='LC7273'><span class="kd">function</span> <span class="nx">WalkontableClassNameCache</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC7274'> <span class="k">this</span><span class="p">.</span><span class="nx">cache</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC7275'><span class="p">}</span></div><div class='line' id='LC7276'><br/></div><div class='line' id='LC7277'><span class="nx">WalkontableClassNameCache</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">add</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">r</span><span class="p">,</span> <span class="nx">c</span><span class="p">,</span> <span class="nx">cls</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7278'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">cache</span><span class="p">[</span><span class="nx">r</span><span class="p">])</span> <span class="p">{</span></div><div class='line' id='LC7279'> <span class="k">this</span><span class="p">.</span><span class="nx">cache</span><span class="p">[</span><span class="nx">r</span><span class="p">]</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC7280'> <span class="p">}</span></div><div class='line' id='LC7281'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">cache</span><span class="p">[</span><span class="nx">r</span><span class="p">][</span><span class="nx">c</span><span class="p">])</span> <span class="p">{</span></div><div class='line' id='LC7282'> <span class="k">this</span><span class="p">.</span><span class="nx">cache</span><span class="p">[</span><span class="nx">r</span><span class="p">][</span><span class="nx">c</span><span class="p">]</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC7283'> <span class="p">}</span></div><div class='line' id='LC7284'> <span class="k">this</span><span class="p">.</span><span class="nx">cache</span><span class="p">[</span><span class="nx">r</span><span class="p">][</span><span class="nx">c</span><span class="p">][</span><span class="nx">cls</span><span class="p">]</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC7285'><span class="p">};</span></div><div class='line' id='LC7286'><br/></div><div class='line' id='LC7287'><span class="nx">WalkontableClassNameCache</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">test</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">r</span><span class="p">,</span> <span class="nx">c</span><span class="p">,</span> <span class="nx">cls</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7288'> <span class="k">return</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">cache</span><span class="p">[</span><span class="nx">r</span><span class="p">]</span> <span class="o">&&</span> <span class="k">this</span><span class="p">.</span><span class="nx">cache</span><span class="p">[</span><span class="nx">r</span><span class="p">][</span><span class="nx">c</span><span class="p">]</span> <span class="o">&&</span> <span class="k">this</span><span class="p">.</span><span class="nx">cache</span><span class="p">[</span><span class="nx">r</span><span class="p">][</span><span class="nx">c</span><span class="p">][</span><span class="nx">cls</span><span class="p">]);</span></div><div class='line' id='LC7289'><span class="p">};</span></div><div class='line' id='LC7290'><span class="cm">/**</span></div><div class='line' id='LC7291'><span class="cm"> * WalkontableColumnFilter</span></div><div class='line' id='LC7292'><span class="cm"> * @constructor</span></div><div class='line' id='LC7293'><span class="cm"> */</span></div><div class='line' id='LC7294'><span class="kd">function</span> <span class="nx">WalkontableColumnFilter</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC7295'> <span class="k">this</span><span class="p">.</span><span class="nx">countTH</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC7296'><span class="p">}</span></div><div class='line' id='LC7297'><br/></div><div class='line' id='LC7298'><span class="nx">WalkontableColumnFilter</span><span class="p">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WalkontableCellFilter</span><span class="p">();</span></div><div class='line' id='LC7299'><br/></div><div class='line' id='LC7300'><span class="nx">WalkontableColumnFilter</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">readSettings</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">instance</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7301'> <span class="k">this</span><span class="p">.</span><span class="nx">offset</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">wtSettings</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">offsetColumn</span><span class="p">;</span></div><div class='line' id='LC7302'> <span class="k">this</span><span class="p">.</span><span class="nx">total</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'totalColumns'</span><span class="p">);</span></div><div class='line' id='LC7303'> <span class="k">this</span><span class="p">.</span><span class="nx">fixedCount</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'fixedColumnsLeft'</span><span class="p">);</span></div><div class='line' id='LC7304'> <span class="k">this</span><span class="p">.</span><span class="nx">countTH</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'rowHeaders'</span><span class="p">).</span><span class="nx">length</span><span class="p">;</span></div><div class='line' id='LC7305'><span class="p">};</span></div><div class='line' id='LC7306'><br/></div><div class='line' id='LC7307'><span class="nx">WalkontableColumnFilter</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">offsettedTH</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">n</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7308'> <span class="k">return</span> <span class="nx">n</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">countTH</span><span class="p">;</span></div><div class='line' id='LC7309'><span class="p">};</span></div><div class='line' id='LC7310'><br/></div><div class='line' id='LC7311'><span class="nx">WalkontableColumnFilter</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">unOffsettedTH</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">n</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7312'> <span class="k">return</span> <span class="nx">n</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">countTH</span><span class="p">;</span></div><div class='line' id='LC7313'><span class="p">};</span></div><div class='line' id='LC7314'><br/></div><div class='line' id='LC7315'><span class="nx">WalkontableColumnFilter</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">visibleRowHeadedColumnToSourceColumn</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">n</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7316'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">visibleToSource</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">offsettedTH</span><span class="p">(</span><span class="nx">n</span><span class="p">));</span></div><div class='line' id='LC7317'><span class="p">};</span></div><div class='line' id='LC7318'><br/></div><div class='line' id='LC7319'><span class="nx">WalkontableColumnFilter</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">sourceColumnToVisibleRowHeadedColumn</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">n</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7320'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">unOffsettedTH</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">sourceToVisible</span><span class="p">(</span><span class="nx">n</span><span class="p">));</span></div><div class='line' id='LC7321'><span class="p">};</span></div><div class='line' id='LC7322'><span class="cm">/**</span></div><div class='line' id='LC7323'><span class="cm"> * WalkontableColumnStrategy</span></div><div class='line' id='LC7324'><span class="cm"> * @param containerSizeFn</span></div><div class='line' id='LC7325'><span class="cm"> * @param sizeAtIndex</span></div><div class='line' id='LC7326'><span class="cm"> * @param strategy - all, last, none</span></div><div class='line' id='LC7327'><span class="cm"> * @constructor</span></div><div class='line' id='LC7328'><span class="cm"> */</span></div><div class='line' id='LC7329'><span class="kd">function</span> <span class="nx">WalkontableColumnStrategy</span><span class="p">(</span><span class="nx">containerSizeFn</span><span class="p">,</span> <span class="nx">sizeAtIndex</span><span class="p">,</span> <span class="nx">strategy</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7330'> <span class="kd">var</span> <span class="nx">size</span></div><div class='line' id='LC7331'> <span class="p">,</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC7332'><br/></div><div class='line' id='LC7333'> <span class="k">this</span><span class="p">.</span><span class="nx">containerSizeFn</span> <span class="o">=</span> <span class="nx">containerSizeFn</span><span class="p">;</span></div><div class='line' id='LC7334'> <span class="k">this</span><span class="p">.</span><span class="nx">cellSizesSum</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC7335'> <span class="k">this</span><span class="p">.</span><span class="nx">cellSizes</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC7336'> <span class="k">this</span><span class="p">.</span><span class="nx">cellStretch</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC7337'> <span class="k">this</span><span class="p">.</span><span class="nx">cellCount</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC7338'> <span class="k">this</span><span class="p">.</span><span class="nx">remainingSize</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC7339'> <span class="k">this</span><span class="p">.</span><span class="nx">strategy</span> <span class="o">=</span> <span class="nx">strategy</span><span class="p">;</span></div><div class='line' id='LC7340'><br/></div><div class='line' id='LC7341'> <span class="c1">//step 1 - determine cells that fit containerSize and cache their widths</span></div><div class='line' id='LC7342'> <span class="k">while</span> <span class="p">(</span><span class="kc">true</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7343'> <span class="nx">size</span> <span class="o">=</span> <span class="nx">sizeAtIndex</span><span class="p">(</span><span class="nx">i</span><span class="p">);</span></div><div class='line' id='LC7344'> <span class="k">if</span> <span class="p">(</span><span class="nx">size</span> <span class="o">===</span> <span class="k">void</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7345'> <span class="k">break</span><span class="p">;</span> <span class="c1">//total columns exceeded</span></div><div class='line' id='LC7346'> <span class="p">}</span></div><div class='line' id='LC7347'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">cellSizesSum</span> <span class="o">>=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getContainerSize</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">cellSizesSum</span> <span class="o">+</span> <span class="nx">size</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC7348'> <span class="k">break</span><span class="p">;</span> <span class="c1">//total width exceeded</span></div><div class='line' id='LC7349'> <span class="p">}</span></div><div class='line' id='LC7350'> <span class="k">this</span><span class="p">.</span><span class="nx">cellSizes</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">size</span><span class="p">);</span></div><div class='line' id='LC7351'> <span class="k">this</span><span class="p">.</span><span class="nx">cellSizesSum</span> <span class="o">+=</span> <span class="nx">size</span><span class="p">;</span></div><div class='line' id='LC7352'> <span class="k">this</span><span class="p">.</span><span class="nx">cellCount</span><span class="o">++</span><span class="p">;</span></div><div class='line' id='LC7353'><br/></div><div class='line' id='LC7354'> <span class="nx">i</span><span class="o">++</span><span class="p">;</span></div><div class='line' id='LC7355'> <span class="p">}</span></div><div class='line' id='LC7356'><br/></div><div class='line' id='LC7357'> <span class="kd">var</span> <span class="nx">containerSize</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getContainerSize</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">cellSizesSum</span><span class="p">);</span></div><div class='line' id='LC7358'> <span class="k">this</span><span class="p">.</span><span class="nx">remainingSize</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cellSizesSum</span> <span class="o">-</span> <span class="nx">containerSize</span><span class="p">;</span></div><div class='line' id='LC7359'> <span class="c1">//negative value means the last cell is fully visible and there is some space left for stretching</span></div><div class='line' id='LC7360'> <span class="c1">//positive value means the last cell is not fully visible</span></div><div class='line' id='LC7361'><span class="p">}</span></div><div class='line' id='LC7362'><br/></div><div class='line' id='LC7363'><span class="nx">WalkontableColumnStrategy</span><span class="p">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WalkontableCellStrategy</span><span class="p">();</span></div><div class='line' id='LC7364'><br/></div><div class='line' id='LC7365'><span class="nx">WalkontableColumnStrategy</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">getSize</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">index</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7366'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">cellSizes</span><span class="p">[</span><span class="nx">index</span><span class="p">]</span> <span class="o">+</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">cellStretch</span><span class="p">[</span><span class="nx">index</span><span class="p">]</span> <span class="o">||</span> <span class="mi">0</span><span class="p">);</span></div><div class='line' id='LC7367'><span class="p">};</span></div><div class='line' id='LC7368'><br/></div><div class='line' id='LC7369'><span class="nx">WalkontableColumnStrategy</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">stretch</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC7370'> <span class="c1">//step 2 - apply stretching strategy</span></div><div class='line' id='LC7371'> <span class="kd">var</span> <span class="nx">containerSize</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getContainerSize</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">cellSizesSum</span><span class="p">)</span></div><div class='line' id='LC7372'> <span class="p">,</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC7373'> <span class="k">this</span><span class="p">.</span><span class="nx">remainingSize</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cellSizesSum</span> <span class="o">-</span> <span class="nx">containerSize</span><span class="p">;</span></div><div class='line' id='LC7374'><br/></div><div class='line' id='LC7375'> <span class="k">this</span><span class="p">.</span><span class="nx">cellStretch</span><span class="p">.</span><span class="nx">length</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="c1">//clear previous stretch</span></div><div class='line' id='LC7376'><br/></div><div class='line' id='LC7377'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">strategy</span> <span class="o">===</span> <span class="s1">'all'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7378'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">remainingSize</span> <span class="o"><</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7379'> <span class="kd">var</span> <span class="nx">ratio</span> <span class="o">=</span> <span class="nx">containerSize</span> <span class="o">/</span> <span class="k">this</span><span class="p">.</span><span class="nx">cellSizesSum</span><span class="p">;</span></div><div class='line' id='LC7380'> <span class="kd">var</span> <span class="nx">newSize</span><span class="p">;</span></div><div class='line' id='LC7381'><br/></div><div class='line' id='LC7382'> <span class="k">while</span> <span class="p">(</span><span class="nx">i</span> <span class="o"><</span> <span class="k">this</span><span class="p">.</span><span class="nx">cellCount</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//"i < this.cellCount - 1" is needed because last cellSize is adjusted after the loop</span></div><div class='line' id='LC7383'> <span class="nx">newSize</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">floor</span><span class="p">(</span><span class="nx">ratio</span> <span class="o">*</span> <span class="k">this</span><span class="p">.</span><span class="nx">cellSizes</span><span class="p">[</span><span class="nx">i</span><span class="p">]);</span></div><div class='line' id='LC7384'> <span class="k">this</span><span class="p">.</span><span class="nx">remainingSize</span> <span class="o">+=</span> <span class="nx">newSize</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">cellSizes</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span></div><div class='line' id='LC7385'> <span class="k">this</span><span class="p">.</span><span class="nx">cellStretch</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">=</span> <span class="nx">newSize</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">cellSizes</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span></div><div class='line' id='LC7386'> <span class="nx">i</span><span class="o">++</span><span class="p">;</span></div><div class='line' id='LC7387'> <span class="p">}</span></div><div class='line' id='LC7388'> <span class="k">this</span><span class="p">.</span><span class="nx">cellStretch</span><span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">cellCount</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="o">-</span><span class="k">this</span><span class="p">.</span><span class="nx">remainingSize</span><span class="p">;</span></div><div class='line' id='LC7389'> <span class="k">this</span><span class="p">.</span><span class="nx">remainingSize</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC7390'> <span class="p">}</span></div><div class='line' id='LC7391'> <span class="p">}</span></div><div class='line' id='LC7392'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">strategy</span> <span class="o">===</span> <span class="s1">'last'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7393'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">remainingSize</span> <span class="o"><</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7394'> <span class="k">this</span><span class="p">.</span><span class="nx">cellStretch</span><span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">cellCount</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="o">-</span><span class="k">this</span><span class="p">.</span><span class="nx">remainingSize</span><span class="p">;</span></div><div class='line' id='LC7395'> <span class="k">this</span><span class="p">.</span><span class="nx">remainingSize</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC7396'> <span class="p">}</span></div><div class='line' id='LC7397'> <span class="p">}</span></div><div class='line' id='LC7398'><span class="p">};</span></div><div class='line' id='LC7399'><span class="kd">function</span> <span class="nx">Walkontable</span><span class="p">(</span><span class="nx">settings</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7400'> <span class="kd">var</span> <span class="nx">that</span> <span class="o">=</span> <span class="k">this</span><span class="p">,</span></div><div class='line' id='LC7401'> <span class="nx">originalHeaders</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC7402'><br/></div><div class='line' id='LC7403'> <span class="k">this</span><span class="p">.</span><span class="nx">guid</span> <span class="o">=</span> <span class="s1">'wt_'</span> <span class="o">+</span> <span class="p">(</span><span class="nb">window</span><span class="p">.</span><span class="nx">Handsontable</span> <span class="o">?</span> <span class="nx">Handsontable</span><span class="p">.</span><span class="nx">helper</span><span class="p">.</span><span class="nx">randomString</span><span class="p">()</span> <span class="o">:</span> <span class="s1">''</span><span class="p">);</span> <span class="c1">//this is the namespace for global events</span></div><div class='line' id='LC7404'><br/></div><div class='line' id='LC7405'> <span class="c1">//bootstrap from settings</span></div><div class='line' id='LC7406'> <span class="k">this</span><span class="p">.</span><span class="nx">wtSettings</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WalkontableSettings</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">settings</span><span class="p">);</span></div><div class='line' id='LC7407'> <span class="k">this</span><span class="p">.</span><span class="nx">wtDom</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WalkontableDom</span><span class="p">();</span></div><div class='line' id='LC7408'> <span class="k">this</span><span class="p">.</span><span class="nx">wtTable</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WalkontableTable</span><span class="p">(</span><span class="k">this</span><span class="p">);</span></div><div class='line' id='LC7409'> <span class="k">this</span><span class="p">.</span><span class="nx">wtScroll</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WalkontableScroll</span><span class="p">(</span><span class="k">this</span><span class="p">);</span></div><div class='line' id='LC7410'> <span class="k">this</span><span class="p">.</span><span class="nx">wtScrollbars</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WalkontableScrollbars</span><span class="p">(</span><span class="k">this</span><span class="p">);</span></div><div class='line' id='LC7411'> <span class="k">this</span><span class="p">.</span><span class="nx">wtViewport</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WalkontableViewport</span><span class="p">(</span><span class="k">this</span><span class="p">);</span></div><div class='line' id='LC7412'> <span class="k">this</span><span class="p">.</span><span class="nx">wtWheel</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WalkontableWheel</span><span class="p">(</span><span class="k">this</span><span class="p">);</span></div><div class='line' id='LC7413'> <span class="k">this</span><span class="p">.</span><span class="nx">wtEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WalkontableEvent</span><span class="p">(</span><span class="k">this</span><span class="p">);</span></div><div class='line' id='LC7414'><br/></div><div class='line' id='LC7415'> <span class="c1">//find original headers</span></div><div class='line' id='LC7416'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">THEAD</span><span class="p">.</span><span class="nx">childNodes</span><span class="p">.</span><span class="nx">length</span> <span class="o">&&</span> <span class="k">this</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">THEAD</span><span class="p">.</span><span class="nx">childNodes</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">childNodes</span><span class="p">.</span><span class="nx">length</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7417'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">c</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">clen</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">THEAD</span><span class="p">.</span><span class="nx">childNodes</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">childNodes</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">c</span> <span class="o"><</span> <span class="nx">clen</span><span class="p">;</span> <span class="nx">c</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7418'> <span class="nx">originalHeaders</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">THEAD</span><span class="p">.</span><span class="nx">childNodes</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">childNodes</span><span class="p">[</span><span class="nx">c</span><span class="p">].</span><span class="nx">innerHTML</span><span class="p">);</span></div><div class='line' id='LC7419'> <span class="p">}</span></div><div class='line' id='LC7420'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'columnHeaders'</span><span class="p">).</span><span class="nx">length</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7421'> <span class="k">this</span><span class="p">.</span><span class="nx">update</span><span class="p">(</span><span class="s1">'columnHeaders'</span><span class="p">,</span> <span class="p">[</span><span class="kd">function</span> <span class="p">(</span><span class="nx">column</span><span class="p">,</span> <span class="nx">TH</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7422'> <span class="nx">that</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">fastInnerText</span><span class="p">(</span><span class="nx">TH</span><span class="p">,</span> <span class="nx">originalHeaders</span><span class="p">[</span><span class="nx">column</span><span class="p">]);</span></div><div class='line' id='LC7423'> <span class="p">}]);</span></div><div class='line' id='LC7424'> <span class="p">}</span></div><div class='line' id='LC7425'> <span class="p">}</span></div><div class='line' id='LC7426'><br/></div><div class='line' id='LC7427'> <span class="c1">//initialize selections</span></div><div class='line' id='LC7428'> <span class="k">this</span><span class="p">.</span><span class="nx">selections</span> <span class="o">=</span> <span class="p">{};</span></div><div class='line' id='LC7429'> <span class="kd">var</span> <span class="nx">selectionsSettings</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'selections'</span><span class="p">);</span></div><div class='line' id='LC7430'> <span class="k">if</span> <span class="p">(</span><span class="nx">selectionsSettings</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7431'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="k">in</span> <span class="nx">selectionsSettings</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7432'> <span class="k">if</span> <span class="p">(</span><span class="nx">selectionsSettings</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">i</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC7433'> <span class="k">this</span><span class="p">.</span><span class="nx">selections</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WalkontableSelection</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">selectionsSettings</span><span class="p">[</span><span class="nx">i</span><span class="p">]);</span></div><div class='line' id='LC7434'> <span class="p">}</span></div><div class='line' id='LC7435'> <span class="p">}</span></div><div class='line' id='LC7436'> <span class="p">}</span></div><div class='line' id='LC7437'><br/></div><div class='line' id='LC7438'> <span class="k">this</span><span class="p">.</span><span class="nx">drawn</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC7439'> <span class="k">this</span><span class="p">.</span><span class="nx">drawInterrupted</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC7440'><span class="p">}</span></div><div class='line' id='LC7441'><br/></div><div class='line' id='LC7442'><span class="nx">Walkontable</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">draw</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">selectionsOnly</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7443'> <span class="k">this</span><span class="p">.</span><span class="nx">drawInterrupted</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC7444'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">selectionsOnly</span> <span class="o">&&</span> <span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">isVisible</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">TABLE</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC7445'> <span class="k">this</span><span class="p">.</span><span class="nx">drawInterrupted</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span> <span class="c1">//draw interrupted because TABLE is not visible</span></div><div class='line' id='LC7446'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC7447'> <span class="p">}</span></div><div class='line' id='LC7448'><br/></div><div class='line' id='LC7449'> <span class="k">this</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'beforeDraw'</span><span class="p">,</span> <span class="o">!</span><span class="nx">selectionsOnly</span><span class="p">);</span></div><div class='line' id='LC7450'> <span class="nx">selectionsOnly</span> <span class="o">=</span> <span class="nx">selectionsOnly</span> <span class="o">&&</span> <span class="k">this</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'offsetRow'</span><span class="p">)</span> <span class="o">===</span> <span class="k">this</span><span class="p">.</span><span class="nx">lastOffsetRow</span> <span class="o">&&</span> <span class="k">this</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'offsetColumn'</span><span class="p">)</span> <span class="o">===</span> <span class="k">this</span><span class="p">.</span><span class="nx">lastOffsetColumn</span><span class="p">;</span></div><div class='line' id='LC7451'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">drawn</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//fix offsets that might have changed</span></div><div class='line' id='LC7452'> <span class="k">this</span><span class="p">.</span><span class="nx">scrollVertical</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span></div><div class='line' id='LC7453'> <span class="k">this</span><span class="p">.</span><span class="nx">scrollHorizontal</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span></div><div class='line' id='LC7454'> <span class="p">}</span></div><div class='line' id='LC7455'> <span class="k">this</span><span class="p">.</span><span class="nx">lastOffsetRow</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'offsetRow'</span><span class="p">);</span></div><div class='line' id='LC7456'> <span class="k">this</span><span class="p">.</span><span class="nx">lastOffsetColumn</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'offsetColumn'</span><span class="p">);</span></div><div class='line' id='LC7457'> <span class="k">this</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">draw</span><span class="p">(</span><span class="nx">selectionsOnly</span><span class="p">);</span></div><div class='line' id='LC7458'> <span class="k">this</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'onDraw'</span><span class="p">);</span></div><div class='line' id='LC7459'> <span class="k">return</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC7460'><span class="p">};</span></div><div class='line' id='LC7461'><br/></div><div class='line' id='LC7462'><span class="nx">Walkontable</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">update</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">settings</span><span class="p">,</span> <span class="nx">value</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7463'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">wtSettings</span><span class="p">.</span><span class="nx">update</span><span class="p">(</span><span class="nx">settings</span><span class="p">,</span> <span class="nx">value</span><span class="p">);</span></div><div class='line' id='LC7464'><span class="p">};</span></div><div class='line' id='LC7465'><br/></div><div class='line' id='LC7466'><span class="nx">Walkontable</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">scrollVertical</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">delta</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7467'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">wtScroll</span><span class="p">.</span><span class="nx">scrollVertical</span><span class="p">(</span><span class="nx">delta</span><span class="p">);</span></div><div class='line' id='LC7468'><span class="p">};</span></div><div class='line' id='LC7469'><br/></div><div class='line' id='LC7470'><span class="nx">Walkontable</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">scrollHorizontal</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">delta</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7471'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">wtScroll</span><span class="p">.</span><span class="nx">scrollHorizontal</span><span class="p">(</span><span class="nx">delta</span><span class="p">);</span></div><div class='line' id='LC7472'><span class="p">};</span></div><div class='line' id='LC7473'><br/></div><div class='line' id='LC7474'><span class="nx">Walkontable</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">scrollViewport</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">coords</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7475'> <span class="k">this</span><span class="p">.</span><span class="nx">wtScroll</span><span class="p">.</span><span class="nx">scrollViewport</span><span class="p">(</span><span class="nx">coords</span><span class="p">);</span></div><div class='line' id='LC7476'> <span class="k">return</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC7477'><span class="p">};</span></div><div class='line' id='LC7478'><br/></div><div class='line' id='LC7479'><span class="nx">Walkontable</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">getViewport</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC7480'> <span class="k">return</span> <span class="p">[</span></div><div class='line' id='LC7481'> <span class="k">this</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">rowFilter</span><span class="p">.</span><span class="nx">visibleToSource</span><span class="p">(</span><span class="mi">0</span><span class="p">),</span></div><div class='line' id='LC7482'> <span class="k">this</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">columnFilter</span><span class="p">.</span><span class="nx">visibleToSource</span><span class="p">(</span><span class="mi">0</span><span class="p">),</span></div><div class='line' id='LC7483'> <span class="k">this</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">getLastVisibleRow</span><span class="p">(),</span></div><div class='line' id='LC7484'> <span class="k">this</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">getLastVisibleColumn</span><span class="p">()</span></div><div class='line' id='LC7485'> <span class="p">];</span></div><div class='line' id='LC7486'><span class="p">};</span></div><div class='line' id='LC7487'><br/></div><div class='line' id='LC7488'><span class="nx">Walkontable</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">getSetting</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">key</span><span class="p">,</span> <span class="nx">param1</span><span class="p">,</span> <span class="nx">param2</span><span class="p">,</span> <span class="nx">param3</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7489'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">wtSettings</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="nx">key</span><span class="p">,</span> <span class="nx">param1</span><span class="p">,</span> <span class="nx">param2</span><span class="p">,</span> <span class="nx">param3</span><span class="p">);</span></div><div class='line' id='LC7490'><span class="p">};</span></div><div class='line' id='LC7491'><br/></div><div class='line' id='LC7492'><span class="nx">Walkontable</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">hasSetting</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">key</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7493'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">wtSettings</span><span class="p">.</span><span class="nx">has</span><span class="p">(</span><span class="nx">key</span><span class="p">);</span></div><div class='line' id='LC7494'><span class="p">};</span></div><div class='line' id='LC7495'><br/></div><div class='line' id='LC7496'><span class="nx">Walkontable</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">destroy</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC7497'> <span class="nx">$</span><span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">body</span><span class="p">).</span><span class="nx">off</span><span class="p">(</span><span class="s1">'.'</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">guid</span><span class="p">);</span></div><div class='line' id='LC7498'> <span class="k">this</span><span class="p">.</span><span class="nx">wtScrollbars</span><span class="p">.</span><span class="nx">destroy</span><span class="p">();</span></div><div class='line' id='LC7499'> <span class="nx">clearTimeout</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">wheelTimeout</span><span class="p">);</span></div><div class='line' id='LC7500'> <span class="nx">clearTimeout</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">dblClickTimeout</span><span class="p">);</span></div><div class='line' id='LC7501'><span class="p">};</span></div><div class='line' id='LC7502'><span class="kd">function</span> <span class="nx">WalkontableDom</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC7503'><span class="p">}</span></div><div class='line' id='LC7504'><br/></div><div class='line' id='LC7505'><span class="c1">//goes up the DOM tree (including given element) until it finds an element that matches the nodeName</span></div><div class='line' id='LC7506'><span class="nx">WalkontableDom</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">closest</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">elem</span><span class="p">,</span> <span class="nx">nodeNames</span><span class="p">,</span> <span class="nx">until</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7507'> <span class="k">while</span> <span class="p">(</span><span class="nx">elem</span> <span class="o">!=</span> <span class="kc">null</span> <span class="o">&&</span> <span class="nx">elem</span> <span class="o">!==</span> <span class="nx">until</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7508'> <span class="k">if</span> <span class="p">(</span><span class="nx">elem</span><span class="p">.</span><span class="nx">nodeType</span> <span class="o">===</span> <span class="mi">1</span> <span class="o">&&</span> <span class="nx">nodeNames</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="nx">elem</span><span class="p">.</span><span class="nx">nodeName</span><span class="p">)</span> <span class="o">></span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7509'> <span class="k">return</span> <span class="nx">elem</span><span class="p">;</span></div><div class='line' id='LC7510'> <span class="p">}</span></div><div class='line' id='LC7511'> <span class="nx">elem</span> <span class="o">=</span> <span class="nx">elem</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">;</span></div><div class='line' id='LC7512'> <span class="p">}</span></div><div class='line' id='LC7513'> <span class="k">return</span> <span class="kc">null</span><span class="p">;</span></div><div class='line' id='LC7514'><span class="p">};</span></div><div class='line' id='LC7515'><br/></div><div class='line' id='LC7516'><span class="c1">//goes up the DOM tree and checks if element is child of another element</span></div><div class='line' id='LC7517'><span class="nx">WalkontableDom</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">isChildOf</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">child</span><span class="p">,</span> <span class="nx">parent</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7518'> <span class="kd">var</span> <span class="nx">node</span> <span class="o">=</span> <span class="nx">child</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">;</span></div><div class='line' id='LC7519'> <span class="k">while</span> <span class="p">(</span><span class="nx">node</span> <span class="o">!=</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7520'> <span class="k">if</span> <span class="p">(</span><span class="nx">node</span> <span class="o">==</span> <span class="nx">parent</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7521'> <span class="k">return</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC7522'> <span class="p">}</span></div><div class='line' id='LC7523'> <span class="nx">node</span> <span class="o">=</span> <span class="nx">node</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">;</span></div><div class='line' id='LC7524'> <span class="p">}</span></div><div class='line' id='LC7525'> <span class="k">return</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC7526'><span class="p">};</span></div><div class='line' id='LC7527'><br/></div><div class='line' id='LC7528'><span class="cm">/**</span></div><div class='line' id='LC7529'><span class="cm"> * Counts index of element within its parent</span></div><div class='line' id='LC7530'><span class="cm"> * WARNING: for performance reasons, assumes there are only element nodes (no text nodes). This is true for Walkotnable</span></div><div class='line' id='LC7531'><span class="cm"> * Otherwise would need to check for nodeType or use previousElementSibling</span></div><div class='line' id='LC7532'><span class="cm"> * @see http://jsperf.com/sibling-index/10</span></div><div class='line' id='LC7533'><span class="cm"> * @param {Element} elem</span></div><div class='line' id='LC7534'><span class="cm"> * @return {Number}</span></div><div class='line' id='LC7535'><span class="cm"> */</span></div><div class='line' id='LC7536'><span class="nx">WalkontableDom</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">index</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">elem</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7537'> <span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC7538'> <span class="k">while</span> <span class="p">(</span><span class="nx">elem</span> <span class="o">=</span> <span class="nx">elem</span><span class="p">.</span><span class="nx">previousSibling</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7539'> <span class="o">++</span><span class="nx">i</span></div><div class='line' id='LC7540'> <span class="p">}</span></div><div class='line' id='LC7541'> <span class="k">return</span> <span class="nx">i</span><span class="p">;</span></div><div class='line' id='LC7542'><span class="p">};</span></div><div class='line' id='LC7543'><br/></div><div class='line' id='LC7544'><span class="k">if</span> <span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">documentElement</span><span class="p">.</span><span class="nx">classList</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7545'> <span class="c1">// HTML5 classList API</span></div><div class='line' id='LC7546'> <span class="nx">WalkontableDom</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">hasClass</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">ele</span><span class="p">,</span> <span class="nx">cls</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7547'> <span class="k">return</span> <span class="nx">ele</span><span class="p">.</span><span class="nx">classList</span><span class="p">.</span><span class="nx">contains</span><span class="p">(</span><span class="nx">cls</span><span class="p">);</span></div><div class='line' id='LC7548'> <span class="p">};</span></div><div class='line' id='LC7549'><br/></div><div class='line' id='LC7550'> <span class="nx">WalkontableDom</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">addClass</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">ele</span><span class="p">,</span> <span class="nx">cls</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7551'> <span class="nx">ele</span><span class="p">.</span><span class="nx">classList</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="nx">cls</span><span class="p">);</span></div><div class='line' id='LC7552'> <span class="p">};</span></div><div class='line' id='LC7553'><br/></div><div class='line' id='LC7554'> <span class="nx">WalkontableDom</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">removeClass</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">ele</span><span class="p">,</span> <span class="nx">cls</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7555'> <span class="nx">ele</span><span class="p">.</span><span class="nx">classList</span><span class="p">.</span><span class="nx">remove</span><span class="p">(</span><span class="nx">cls</span><span class="p">);</span></div><div class='line' id='LC7556'> <span class="p">};</span></div><div class='line' id='LC7557'><span class="p">}</span></div><div class='line' id='LC7558'><span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC7559'> <span class="c1">//http://snipplr.com/view/3561/addclass-removeclass-hasclass/</span></div><div class='line' id='LC7560'> <span class="nx">WalkontableDom</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">hasClass</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">ele</span><span class="p">,</span> <span class="nx">cls</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7561'> <span class="k">return</span> <span class="nx">ele</span><span class="p">.</span><span class="nx">className</span><span class="p">.</span><span class="nx">match</span><span class="p">(</span><span class="k">new</span> <span class="nb">RegExp</span><span class="p">(</span><span class="s1">'(\\s|^)'</span> <span class="o">+</span> <span class="nx">cls</span> <span class="o">+</span> <span class="s1">'(\\s|$)'</span><span class="p">));</span></div><div class='line' id='LC7562'> <span class="p">};</span></div><div class='line' id='LC7563'><br/></div><div class='line' id='LC7564'> <span class="nx">WalkontableDom</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">addClass</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">ele</span><span class="p">,</span> <span class="nx">cls</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7565'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">hasClass</span><span class="p">(</span><span class="nx">ele</span><span class="p">,</span> <span class="nx">cls</span><span class="p">))</span> <span class="nx">ele</span><span class="p">.</span><span class="nx">className</span> <span class="o">+=</span> <span class="s2">" "</span> <span class="o">+</span> <span class="nx">cls</span><span class="p">;</span></div><div class='line' id='LC7566'> <span class="p">};</span></div><div class='line' id='LC7567'><br/></div><div class='line' id='LC7568'> <span class="nx">WalkontableDom</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">removeClass</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">ele</span><span class="p">,</span> <span class="nx">cls</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7569'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">hasClass</span><span class="p">(</span><span class="nx">ele</span><span class="p">,</span> <span class="nx">cls</span><span class="p">))</span> <span class="p">{</span> <span class="c1">//is this really needed?</span></div><div class='line' id='LC7570'> <span class="kd">var</span> <span class="nx">reg</span> <span class="o">=</span> <span class="k">new</span> <span class="nb">RegExp</span><span class="p">(</span><span class="s1">'(\\s|^)'</span> <span class="o">+</span> <span class="nx">cls</span> <span class="o">+</span> <span class="s1">'(\\s|$)'</span><span class="p">);</span></div><div class='line' id='LC7571'> <span class="nx">ele</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="nx">ele</span><span class="p">.</span><span class="nx">className</span><span class="p">.</span><span class="nx">replace</span><span class="p">(</span><span class="nx">reg</span><span class="p">,</span> <span class="s1">' '</span><span class="p">).</span><span class="nx">replace</span><span class="p">(</span><span class="sr">/^\s\s*/</span><span class="p">,</span> <span class="s1">''</span><span class="p">).</span><span class="nx">replace</span><span class="p">(</span><span class="sr">/\s\s*$/</span><span class="p">,</span> <span class="s1">''</span><span class="p">);</span> <span class="c1">//last 2 replaces do right trim (see http://blog.stevenlevithan.com/archives/faster-trim-javascript)</span></div><div class='line' id='LC7572'> <span class="p">}</span></div><div class='line' id='LC7573'> <span class="p">};</span></div><div class='line' id='LC7574'><span class="p">}</span></div><div class='line' id='LC7575'><br/></div><div class='line' id='LC7576'><span class="cm">/*//http://net.tutsplus.com/tutorials/javascript-ajax/javascript-from-null-cross-browser-event-binding/</span></div><div class='line' id='LC7577'><span class="cm"> WalkontableDom.prototype.addEvent = (function () {</span></div><div class='line' id='LC7578'><span class="cm"> var that = this;</span></div><div class='line' id='LC7579'><span class="cm"> if (document.addEventListener) {</span></div><div class='line' id='LC7580'><span class="cm"> return function (elem, type, cb) {</span></div><div class='line' id='LC7581'><span class="cm"> if ((elem && !elem.length) || elem === window) {</span></div><div class='line' id='LC7582'><span class="cm"> elem.addEventListener(type, cb, false);</span></div><div class='line' id='LC7583'><span class="cm"> }</span></div><div class='line' id='LC7584'><span class="cm"> else if (elem && elem.length) {</span></div><div class='line' id='LC7585'><span class="cm"> var len = elem.length;</span></div><div class='line' id='LC7586'><span class="cm"> for (var i = 0; i < len; i++) {</span></div><div class='line' id='LC7587'><span class="cm"> that.addEvent(elem[i], type, cb);</span></div><div class='line' id='LC7588'><span class="cm"> }</span></div><div class='line' id='LC7589'><span class="cm"> }</span></div><div class='line' id='LC7590'><span class="cm"> };</span></div><div class='line' id='LC7591'><span class="cm"> }</span></div><div class='line' id='LC7592'><span class="cm"> else {</span></div><div class='line' id='LC7593'><span class="cm"> return function (elem, type, cb) {</span></div><div class='line' id='LC7594'><span class="cm"> if ((elem && !elem.length) || elem === window) {</span></div><div class='line' id='LC7595'><span class="cm"> elem.attachEvent('on' + type, function () {</span></div><div class='line' id='LC7596'><br/></div><div class='line' id='LC7597'><span class="cm"> //normalize</span></div><div class='line' id='LC7598'><span class="cm"> //http://stackoverflow.com/questions/4643249/cross-browser-event-object-normalization</span></div><div class='line' id='LC7599'><span class="cm"> var e = window['event'];</span></div><div class='line' id='LC7600'><span class="cm"> e.target = e.srcElement;</span></div><div class='line' id='LC7601'><span class="cm"> //e.offsetX = e.layerX;</span></div><div class='line' id='LC7602'><span class="cm"> //e.offsetY = e.layerY;</span></div><div class='line' id='LC7603'><span class="cm"> e.relatedTarget = e.relatedTarget || e.type == 'mouseover' ? e.fromElement : e.toElement;</span></div><div class='line' id='LC7604'><span class="cm"> if (e.target.nodeType === 3) e.target = e.target.parentNode; //Safari bug</span></div><div class='line' id='LC7605'><br/></div><div class='line' id='LC7606'><span class="cm"> return cb.call(elem, e)</span></div><div class='line' id='LC7607'><span class="cm"> });</span></div><div class='line' id='LC7608'><span class="cm"> }</span></div><div class='line' id='LC7609'><span class="cm"> else if (elem.length) {</span></div><div class='line' id='LC7610'><span class="cm"> var len = elem.length;</span></div><div class='line' id='LC7611'><span class="cm"> for (var i = 0; i < len; i++) {</span></div><div class='line' id='LC7612'><span class="cm"> that.addEvent(elem[i], type, cb);</span></div><div class='line' id='LC7613'><span class="cm"> }</span></div><div class='line' id='LC7614'><span class="cm"> }</span></div><div class='line' id='LC7615'><span class="cm"> };</span></div><div class='line' id='LC7616'><span class="cm"> }</span></div><div class='line' id='LC7617'><span class="cm"> })();</span></div><div class='line' id='LC7618'><br/></div><div class='line' id='LC7619'><span class="cm"> WalkontableDom.prototype.triggerEvent = function (element, eventName, target) {</span></div><div class='line' id='LC7620'><span class="cm"> var event;</span></div><div class='line' id='LC7621'><span class="cm"> if (document.createEvent) {</span></div><div class='line' id='LC7622'><span class="cm"> event = document.createEvent("MouseEvents");</span></div><div class='line' id='LC7623'><span class="cm"> event.initEvent(eventName, true, true);</span></div><div class='line' id='LC7624'><span class="cm"> } else {</span></div><div class='line' id='LC7625'><span class="cm"> event = document.createEventObject();</span></div><div class='line' id='LC7626'><span class="cm"> event.eventType = eventName;</span></div><div class='line' id='LC7627'><span class="cm"> }</span></div><div class='line' id='LC7628'><br/></div><div class='line' id='LC7629'><span class="cm"> event.eventName = eventName;</span></div><div class='line' id='LC7630'><span class="cm"> event.target = target;</span></div><div class='line' id='LC7631'><br/></div><div class='line' id='LC7632'><span class="cm"> if (document.createEvent) {</span></div><div class='line' id='LC7633'><span class="cm"> target.dispatchEvent(event);</span></div><div class='line' id='LC7634'><span class="cm"> } else {</span></div><div class='line' id='LC7635'><span class="cm"> target.fireEvent("on" + event.eventType, event);</span></div><div class='line' id='LC7636'><span class="cm"> }</span></div><div class='line' id='LC7637'><span class="cm"> };*/</span></div><div class='line' id='LC7638'><br/></div><div class='line' id='LC7639'><span class="nx">WalkontableDom</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">removeTextNodes</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">elem</span><span class="p">,</span> <span class="nx">parent</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7640'> <span class="k">if</span> <span class="p">(</span><span class="nx">elem</span><span class="p">.</span><span class="nx">nodeType</span> <span class="o">===</span> <span class="mi">3</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7641'> <span class="nx">parent</span><span class="p">.</span><span class="nx">removeChild</span><span class="p">(</span><span class="nx">elem</span><span class="p">);</span> <span class="c1">//bye text nodes!</span></div><div class='line' id='LC7642'> <span class="p">}</span></div><div class='line' id='LC7643'> <span class="k">else</span> <span class="k">if</span> <span class="p">([</span><span class="s1">'TABLE'</span><span class="p">,</span> <span class="s1">'THEAD'</span><span class="p">,</span> <span class="s1">'TBODY'</span><span class="p">,</span> <span class="s1">'TFOOT'</span><span class="p">,</span> <span class="s1">'TR'</span><span class="p">].</span><span class="nx">indexOf</span><span class="p">(</span><span class="nx">elem</span><span class="p">.</span><span class="nx">nodeName</span><span class="p">)</span> <span class="o">></span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7644'> <span class="kd">var</span> <span class="nx">childs</span> <span class="o">=</span> <span class="nx">elem</span><span class="p">.</span><span class="nx">childNodes</span><span class="p">;</span></div><div class='line' id='LC7645'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="nx">childs</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span> <span class="nx">i</span> <span class="o">>=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span><span class="o">--</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7646'> <span class="k">this</span><span class="p">.</span><span class="nx">removeTextNodes</span><span class="p">(</span><span class="nx">childs</span><span class="p">[</span><span class="nx">i</span><span class="p">],</span> <span class="nx">elem</span><span class="p">);</span></div><div class='line' id='LC7647'> <span class="p">}</span></div><div class='line' id='LC7648'> <span class="p">}</span></div><div class='line' id='LC7649'><span class="p">};</span></div><div class='line' id='LC7650'><br/></div><div class='line' id='LC7651'><span class="cm">/**</span></div><div class='line' id='LC7652'><span class="cm"> * Remove childs function</span></div><div class='line' id='LC7653'><span class="cm"> * WARNING - this doesn't unload events and data attached by jQuery</span></div><div class='line' id='LC7654'><span class="cm"> * http://jsperf.com/jquery-html-vs-empty-vs-innerhtml/9</span></div><div class='line' id='LC7655'><span class="cm"> * http://jsperf.com/jquery-html-vs-empty-vs-innerhtml/11 - no siginificant improvement with Chrome remove() method</span></div><div class='line' id='LC7656'><span class="cm"> * @param element</span></div><div class='line' id='LC7657'><span class="cm"> * @returns {void}</span></div><div class='line' id='LC7658'><span class="cm"> */</span></div><div class='line' id='LC7659'><span class="c1">//</span></div><div class='line' id='LC7660'><span class="nx">WalkontableDom</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">empty</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">element</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7661'> <span class="kd">var</span> <span class="nx">child</span><span class="p">;</span></div><div class='line' id='LC7662'> <span class="k">while</span> <span class="p">(</span><span class="nx">child</span> <span class="o">=</span> <span class="nx">element</span><span class="p">.</span><span class="nx">lastChild</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7663'> <span class="nx">element</span><span class="p">.</span><span class="nx">removeChild</span><span class="p">(</span><span class="nx">child</span><span class="p">);</span></div><div class='line' id='LC7664'> <span class="p">}</span></div><div class='line' id='LC7665'><span class="p">};</span></div><div class='line' id='LC7666'><br/></div><div class='line' id='LC7667'><span class="nx">WalkontableDom</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">HTML_CHARACTERS</span> <span class="o">=</span> <span class="sr">/(<(.*)>|&(.*);)/</span><span class="p">;</span></div><div class='line' id='LC7668'><br/></div><div class='line' id='LC7669'><span class="cm">/**</span></div><div class='line' id='LC7670'><span class="cm"> * Insert content into element trying avoid innerHTML method.</span></div><div class='line' id='LC7671'><span class="cm"> * @return {void}</span></div><div class='line' id='LC7672'><span class="cm"> */</span></div><div class='line' id='LC7673'><span class="nx">WalkontableDom</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">fastInnerHTML</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">element</span><span class="p">,</span> <span class="nx">content</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7674'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">HTML_CHARACTERS</span><span class="p">.</span><span class="nx">test</span><span class="p">(</span><span class="nx">content</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC7675'> <span class="nx">element</span><span class="p">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="nx">content</span><span class="p">;</span></div><div class='line' id='LC7676'> <span class="p">}</span></div><div class='line' id='LC7677'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC7678'> <span class="k">this</span><span class="p">.</span><span class="nx">fastInnerText</span><span class="p">(</span><span class="nx">element</span><span class="p">,</span> <span class="nx">content</span><span class="p">);</span></div><div class='line' id='LC7679'> <span class="p">}</span></div><div class='line' id='LC7680'><span class="p">};</span></div><div class='line' id='LC7681'><br/></div><div class='line' id='LC7682'><span class="cm">/**</span></div><div class='line' id='LC7683'><span class="cm"> * Insert text content into element</span></div><div class='line' id='LC7684'><span class="cm"> * @return {void}</span></div><div class='line' id='LC7685'><span class="cm"> */</span></div><div class='line' id='LC7686'><span class="k">if</span> <span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">createTextNode</span><span class="p">(</span><span class="s1">'test'</span><span class="p">).</span><span class="nx">textContent</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//STANDARDS</span></div><div class='line' id='LC7687'> <span class="nx">WalkontableDom</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">fastInnerText</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">element</span><span class="p">,</span> <span class="nx">content</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7688'> <span class="kd">var</span> <span class="nx">child</span> <span class="o">=</span> <span class="nx">element</span><span class="p">.</span><span class="nx">firstChild</span><span class="p">;</span></div><div class='line' id='LC7689'> <span class="k">if</span> <span class="p">(</span><span class="nx">child</span> <span class="o">&&</span> <span class="nx">child</span><span class="p">.</span><span class="nx">nodeType</span> <span class="o">===</span> <span class="mi">3</span> <span class="o">&&</span> <span class="nx">child</span><span class="p">.</span><span class="nx">nextSibling</span> <span class="o">===</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7690'> <span class="c1">//fast lane - replace existing text node</span></div><div class='line' id='LC7691'> <span class="c1">//http://jsperf.com/replace-text-vs-reuse</span></div><div class='line' id='LC7692'> <span class="nx">child</span><span class="p">.</span><span class="nx">textContent</span> <span class="o">=</span> <span class="nx">content</span><span class="p">;</span></div><div class='line' id='LC7693'> <span class="p">}</span></div><div class='line' id='LC7694'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC7695'> <span class="c1">//slow lane - empty element and insert a text node</span></div><div class='line' id='LC7696'> <span class="k">this</span><span class="p">.</span><span class="nx">empty</span><span class="p">(</span><span class="nx">element</span><span class="p">);</span></div><div class='line' id='LC7697'> <span class="nx">element</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">createTextNode</span><span class="p">(</span><span class="nx">content</span><span class="p">));</span></div><div class='line' id='LC7698'> <span class="p">}</span></div><div class='line' id='LC7699'> <span class="p">};</span></div><div class='line' id='LC7700'><span class="p">}</span></div><div class='line' id='LC7701'><span class="k">else</span> <span class="p">{</span> <span class="c1">//IE8</span></div><div class='line' id='LC7702'> <span class="nx">WalkontableDom</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">fastInnerText</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">element</span><span class="p">,</span> <span class="nx">content</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7703'> <span class="kd">var</span> <span class="nx">child</span> <span class="o">=</span> <span class="nx">element</span><span class="p">.</span><span class="nx">firstChild</span><span class="p">;</span></div><div class='line' id='LC7704'> <span class="k">if</span> <span class="p">(</span><span class="nx">child</span> <span class="o">&&</span> <span class="nx">child</span><span class="p">.</span><span class="nx">nodeType</span> <span class="o">===</span> <span class="mi">3</span> <span class="o">&&</span> <span class="nx">child</span><span class="p">.</span><span class="nx">nextSibling</span> <span class="o">===</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7705'> <span class="c1">//fast lane - replace existing text node</span></div><div class='line' id='LC7706'> <span class="c1">//http://jsperf.com/replace-text-vs-reuse</span></div><div class='line' id='LC7707'> <span class="nx">child</span><span class="p">.</span><span class="nx">data</span> <span class="o">=</span> <span class="nx">content</span><span class="p">;</span></div><div class='line' id='LC7708'> <span class="p">}</span></div><div class='line' id='LC7709'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC7710'> <span class="c1">//slow lane - empty element and insert a text node</span></div><div class='line' id='LC7711'> <span class="k">this</span><span class="p">.</span><span class="nx">empty</span><span class="p">(</span><span class="nx">element</span><span class="p">);</span></div><div class='line' id='LC7712'> <span class="nx">element</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">createTextNode</span><span class="p">(</span><span class="nx">content</span><span class="p">));</span></div><div class='line' id='LC7713'> <span class="p">}</span></div><div class='line' id='LC7714'> <span class="p">};</span></div><div class='line' id='LC7715'><span class="p">}</span></div><div class='line' id='LC7716'><br/></div><div class='line' id='LC7717'><span class="cm">/**</span></div><div class='line' id='LC7718'><span class="cm"> * Returns true if element is attached to the DOM and visible, false otherwise</span></div><div class='line' id='LC7719'><span class="cm"> * @param elem</span></div><div class='line' id='LC7720'><span class="cm"> * @returns {boolean}</span></div><div class='line' id='LC7721'><span class="cm"> */</span></div><div class='line' id='LC7722'><span class="nx">WalkontableDom</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">isVisible</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">elem</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7723'> <span class="c1">//fast method</span></div><div class='line' id='LC7724'> <span class="k">try</span> <span class="p">{</span><span class="c1">//try/catch performance is not a problem here: http://jsperf.com/try-catch-performance-overhead/7</span></div><div class='line' id='LC7725'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">elem</span><span class="p">.</span><span class="nx">offsetParent</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7726'> <span class="k">return</span> <span class="kc">false</span><span class="p">;</span> <span class="c1">//fixes problem with UI Bootstrap <tabs> directive</span></div><div class='line' id='LC7727'> <span class="p">}</span></div><div class='line' id='LC7728'> <span class="p">}</span></div><div class='line' id='LC7729'> <span class="k">catch</span> <span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7730'> <span class="k">return</span> <span class="kc">false</span><span class="p">;</span> <span class="c1">//IE8 throws "Unspecified error" when offsetParent is not found - we catch it here</span></div><div class='line' id='LC7731'> <span class="p">}</span></div><div class='line' id='LC7732'><br/></div><div class='line' id='LC7733'><span class="c1">// if (elem.offsetWidth > 0 || (elem.parentNode && elem.parentNode.offsetWidth > 0)) { //IE10 was mistaken here</span></div><div class='line' id='LC7734'> <span class="k">if</span> <span class="p">(</span><span class="nx">elem</span><span class="p">.</span><span class="nx">offsetWidth</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7735'> <span class="k">return</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC7736'> <span class="p">}</span></div><div class='line' id='LC7737'><br/></div><div class='line' id='LC7738'> <span class="c1">//slow method</span></div><div class='line' id='LC7739'> <span class="kd">var</span> <span class="nx">next</span> <span class="o">=</span> <span class="nx">elem</span><span class="p">;</span></div><div class='line' id='LC7740'> <span class="k">while</span> <span class="p">(</span><span class="nx">next</span> <span class="o">!==</span> <span class="nb">document</span><span class="p">.</span><span class="nx">documentElement</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//until <html> reached</span></div><div class='line' id='LC7741'> <span class="k">if</span> <span class="p">(</span><span class="nx">next</span> <span class="o">===</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//parent detached from DOM</span></div><div class='line' id='LC7742'> <span class="k">return</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC7743'> <span class="p">}</span></div><div class='line' id='LC7744'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">next</span><span class="p">.</span><span class="nx">nodeType</span> <span class="o">===</span> <span class="mi">11</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7745'> <span class="k">return</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC7746'> <span class="p">}</span></div><div class='line' id='LC7747'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">next</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">display</span> <span class="o">===</span> <span class="s1">'none'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7748'> <span class="k">return</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC7749'> <span class="p">}</span></div><div class='line' id='LC7750'> <span class="nx">next</span> <span class="o">=</span> <span class="nx">next</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">;</span></div><div class='line' id='LC7751'> <span class="p">}</span></div><div class='line' id='LC7752'> <span class="k">return</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC7753'><span class="p">};</span></div><div class='line' id='LC7754'><br/></div><div class='line' id='LC7755'><span class="cm">/**</span></div><div class='line' id='LC7756'><span class="cm"> * Returns elements top and left offset relative to the document. In our usage case compatible with jQuery but 2x faster</span></div><div class='line' id='LC7757'><span class="cm"> * @param {HTMLElement} elem</span></div><div class='line' id='LC7758'><span class="cm"> * @return {Object}</span></div><div class='line' id='LC7759'><span class="cm"> */</span></div><div class='line' id='LC7760'><span class="nx">WalkontableDom</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">offset</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">elem</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7761'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">hasCaptionProblem</span><span class="p">()</span> <span class="o">&&</span> <span class="nx">elem</span><span class="p">.</span><span class="nx">firstChild</span> <span class="o">&&</span> <span class="nx">elem</span><span class="p">.</span><span class="nx">firstChild</span><span class="p">.</span><span class="nx">nodeName</span> <span class="o">===</span> <span class="s1">'CAPTION'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7762'> <span class="c1">//fixes problem with Firefox ignoring <caption> in TABLE offset (see also WalkontableDom.prototype.outerHeight)</span></div><div class='line' id='LC7763'> <span class="c1">//http://jsperf.com/offset-vs-getboundingclientrect/8</span></div><div class='line' id='LC7764'> <span class="kd">var</span> <span class="nx">box</span> <span class="o">=</span> <span class="nx">elem</span><span class="p">.</span><span class="nx">getBoundingClientRect</span><span class="p">();</span></div><div class='line' id='LC7765'> <span class="k">return</span> <span class="p">{</span></div><div class='line' id='LC7766'> <span class="nx">top</span><span class="o">:</span> <span class="nx">box</span><span class="p">.</span><span class="nx">top</span> <span class="o">+</span> <span class="p">(</span><span class="nb">window</span><span class="p">.</span><span class="nx">pageYOffset</span> <span class="o">||</span> <span class="nb">document</span><span class="p">.</span><span class="nx">documentElement</span><span class="p">.</span><span class="nx">scrollTop</span><span class="p">)</span> <span class="o">-</span> <span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">documentElement</span><span class="p">.</span><span class="nx">clientTop</span> <span class="o">||</span> <span class="mi">0</span><span class="p">),</span></div><div class='line' id='LC7767'> <span class="nx">left</span><span class="o">:</span> <span class="nx">box</span><span class="p">.</span><span class="nx">left</span> <span class="o">+</span> <span class="p">(</span><span class="nb">window</span><span class="p">.</span><span class="nx">pageXOffset</span> <span class="o">||</span> <span class="nb">document</span><span class="p">.</span><span class="nx">documentElement</span><span class="p">.</span><span class="nx">scrollLeft</span><span class="p">)</span> <span class="o">-</span> <span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">documentElement</span><span class="p">.</span><span class="nx">clientLeft</span> <span class="o">||</span> <span class="mi">0</span><span class="p">)</span></div><div class='line' id='LC7768'> <span class="p">};</span></div><div class='line' id='LC7769'> <span class="p">}</span></div><div class='line' id='LC7770'><br/></div><div class='line' id='LC7771'> <span class="kd">var</span> <span class="nx">offsetLeft</span> <span class="o">=</span> <span class="nx">elem</span><span class="p">.</span><span class="nx">offsetLeft</span></div><div class='line' id='LC7772'> <span class="p">,</span> <span class="nx">offsetTop</span> <span class="o">=</span> <span class="nx">elem</span><span class="p">.</span><span class="nx">offsetTop</span></div><div class='line' id='LC7773'> <span class="p">,</span> <span class="nx">lastElem</span> <span class="o">=</span> <span class="nx">elem</span><span class="p">;</span></div><div class='line' id='LC7774'><br/></div><div class='line' id='LC7775'> <span class="k">while</span> <span class="p">(</span><span class="nx">elem</span> <span class="o">=</span> <span class="nx">elem</span><span class="p">.</span><span class="nx">offsetParent</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7776'> <span class="k">if</span> <span class="p">(</span><span class="nx">elem</span> <span class="o">===</span> <span class="nb">document</span><span class="p">.</span><span class="nx">body</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//from my observation, document.body always has scrollLeft/scrollTop == 0</span></div><div class='line' id='LC7777'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC7778'> <span class="p">}</span></div><div class='line' id='LC7779'> <span class="nx">offsetLeft</span> <span class="o">+=</span> <span class="nx">elem</span><span class="p">.</span><span class="nx">offsetLeft</span><span class="p">;</span></div><div class='line' id='LC7780'> <span class="nx">offsetTop</span> <span class="o">+=</span> <span class="nx">elem</span><span class="p">.</span><span class="nx">offsetTop</span><span class="p">;</span></div><div class='line' id='LC7781'> <span class="nx">lastElem</span> <span class="o">=</span> <span class="nx">elem</span><span class="p">;</span></div><div class='line' id='LC7782'> <span class="p">}</span></div><div class='line' id='LC7783'><br/></div><div class='line' id='LC7784'> <span class="k">if</span> <span class="p">(</span><span class="nx">lastElem</span> <span class="o">&&</span> <span class="nx">lastElem</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">position</span> <span class="o">===</span> <span class="s1">'fixed'</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//slow - http://jsperf.com/offset-vs-getboundingclientrect/6</span></div><div class='line' id='LC7785'> <span class="c1">//if(lastElem !== document.body) { //faster but does gives false positive in Firefox</span></div><div class='line' id='LC7786'> <span class="nx">offsetLeft</span> <span class="o">+=</span> <span class="nb">window</span><span class="p">.</span><span class="nx">pageXOffset</span> <span class="o">||</span> <span class="nb">document</span><span class="p">.</span><span class="nx">documentElement</span><span class="p">.</span><span class="nx">scrollLeft</span><span class="p">;</span></div><div class='line' id='LC7787'> <span class="nx">offsetTop</span> <span class="o">+=</span> <span class="nb">window</span><span class="p">.</span><span class="nx">pageYOffset</span> <span class="o">||</span> <span class="nb">document</span><span class="p">.</span><span class="nx">documentElement</span><span class="p">.</span><span class="nx">scrollTop</span><span class="p">;</span></div><div class='line' id='LC7788'> <span class="p">}</span></div><div class='line' id='LC7789'><br/></div><div class='line' id='LC7790'> <span class="k">return</span> <span class="p">{</span></div><div class='line' id='LC7791'> <span class="nx">left</span><span class="o">:</span> <span class="nx">offsetLeft</span><span class="p">,</span></div><div class='line' id='LC7792'> <span class="nx">top</span><span class="o">:</span> <span class="nx">offsetTop</span></div><div class='line' id='LC7793'> <span class="p">};</span></div><div class='line' id='LC7794'><span class="p">};</span></div><div class='line' id='LC7795'><br/></div><div class='line' id='LC7796'><span class="nx">WalkontableDom</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">getComputedStyle</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">elem</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7797'> <span class="k">return</span> <span class="nx">elem</span><span class="p">.</span><span class="nx">currentStyle</span> <span class="o">||</span> <span class="nb">document</span><span class="p">.</span><span class="nx">defaultView</span><span class="p">.</span><span class="nx">getComputedStyle</span><span class="p">(</span><span class="nx">elem</span><span class="p">);</span></div><div class='line' id='LC7798'><span class="p">};</span></div><div class='line' id='LC7799'><br/></div><div class='line' id='LC7800'><span class="nx">WalkontableDom</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">outerWidth</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">elem</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7801'> <span class="k">return</span> <span class="nx">elem</span><span class="p">.</span><span class="nx">offsetWidth</span><span class="p">;</span></div><div class='line' id='LC7802'><span class="p">};</span></div><div class='line' id='LC7803'><br/></div><div class='line' id='LC7804'><span class="nx">WalkontableDom</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">outerHeight</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">elem</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7805'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">hasCaptionProblem</span><span class="p">()</span> <span class="o">&&</span> <span class="nx">elem</span><span class="p">.</span><span class="nx">firstChild</span> <span class="o">&&</span> <span class="nx">elem</span><span class="p">.</span><span class="nx">firstChild</span><span class="p">.</span><span class="nx">nodeName</span> <span class="o">===</span> <span class="s1">'CAPTION'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7806'> <span class="c1">//fixes problem with Firefox ignoring <caption> in TABLE.offsetHeight</span></div><div class='line' id='LC7807'> <span class="c1">//jQuery (1.10.1) still has this unsolved</span></div><div class='line' id='LC7808'> <span class="c1">//may be better to just switch to getBoundingClientRect</span></div><div class='line' id='LC7809'> <span class="c1">//http://bililite.com/blog/2009/03/27/finding-the-size-of-a-table/</span></div><div class='line' id='LC7810'> <span class="c1">//http://lists.w3.org/Archives/Public/www-style/2009Oct/0089.html</span></div><div class='line' id='LC7811'> <span class="c1">//http://bugs.jquery.com/ticket/2196</span></div><div class='line' id='LC7812'> <span class="c1">//http://lists.w3.org/Archives/Public/www-style/2009Oct/0140.html#start140</span></div><div class='line' id='LC7813'> <span class="k">return</span> <span class="nx">elem</span><span class="p">.</span><span class="nx">offsetHeight</span> <span class="o">+</span> <span class="nx">elem</span><span class="p">.</span><span class="nx">firstChild</span><span class="p">.</span><span class="nx">offsetHeight</span><span class="p">;</span></div><div class='line' id='LC7814'> <span class="p">}</span></div><div class='line' id='LC7815'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC7816'> <span class="k">return</span> <span class="nx">elem</span><span class="p">.</span><span class="nx">offsetHeight</span><span class="p">;</span></div><div class='line' id='LC7817'> <span class="p">}</span></div><div class='line' id='LC7818'><span class="p">};</span></div><div class='line' id='LC7819'><br/></div><div class='line' id='LC7820'><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC7821'> <span class="kd">var</span> <span class="nx">hasCaptionProblem</span><span class="p">;</span></div><div class='line' id='LC7822'><br/></div><div class='line' id='LC7823'> <span class="kd">function</span> <span class="nx">detectCaptionProblem</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC7824'> <span class="kd">var</span> <span class="nx">TABLE</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'TABLE'</span><span class="p">);</span></div><div class='line' id='LC7825'> <span class="nx">TABLE</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">borderSpacing</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC7826'> <span class="nx">TABLE</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">borderWidth</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC7827'> <span class="nx">TABLE</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">padding</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC7828'> <span class="kd">var</span> <span class="nx">TBODY</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'TBODY'</span><span class="p">);</span></div><div class='line' id='LC7829'> <span class="nx">TABLE</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">TBODY</span><span class="p">);</span></div><div class='line' id='LC7830'> <span class="nx">TBODY</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'TR'</span><span class="p">));</span></div><div class='line' id='LC7831'> <span class="nx">TBODY</span><span class="p">.</span><span class="nx">firstChild</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'TD'</span><span class="p">));</span></div><div class='line' id='LC7832'> <span class="nx">TBODY</span><span class="p">.</span><span class="nx">firstChild</span><span class="p">.</span><span class="nx">firstChild</span><span class="p">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="s1">'<tr><td>t<br>t</td></tr>'</span><span class="p">;</span></div><div class='line' id='LC7833'><br/></div><div class='line' id='LC7834'> <span class="kd">var</span> <span class="nx">CAPTION</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'CAPTION'</span><span class="p">);</span></div><div class='line' id='LC7835'> <span class="nx">CAPTION</span><span class="p">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="s1">'c<br>c<br>c<br>c'</span><span class="p">;</span></div><div class='line' id='LC7836'> <span class="nx">CAPTION</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">padding</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC7837'> <span class="nx">CAPTION</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">margin</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC7838'> <span class="nx">TABLE</span><span class="p">.</span><span class="nx">insertBefore</span><span class="p">(</span><span class="nx">CAPTION</span><span class="p">,</span> <span class="nx">TBODY</span><span class="p">);</span></div><div class='line' id='LC7839'><br/></div><div class='line' id='LC7840'> <span class="nb">document</span><span class="p">.</span><span class="nx">body</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">TABLE</span><span class="p">);</span></div><div class='line' id='LC7841'> <span class="nx">hasCaptionProblem</span> <span class="o">=</span> <span class="p">(</span><span class="nx">TABLE</span><span class="p">.</span><span class="nx">offsetHeight</span> <span class="o"><</span> <span class="mi">2</span> <span class="o">*</span> <span class="nx">TABLE</span><span class="p">.</span><span class="nx">lastChild</span><span class="p">.</span><span class="nx">offsetHeight</span><span class="p">);</span> <span class="c1">//boolean</span></div><div class='line' id='LC7842'> <span class="nb">document</span><span class="p">.</span><span class="nx">body</span><span class="p">.</span><span class="nx">removeChild</span><span class="p">(</span><span class="nx">TABLE</span><span class="p">);</span></div><div class='line' id='LC7843'> <span class="p">}</span></div><div class='line' id='LC7844'><br/></div><div class='line' id='LC7845'> <span class="nx">WalkontableDom</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">hasCaptionProblem</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC7846'> <span class="k">if</span> <span class="p">(</span><span class="nx">hasCaptionProblem</span> <span class="o">===</span> <span class="k">void</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7847'> <span class="nx">detectCaptionProblem</span><span class="p">();</span></div><div class='line' id='LC7848'> <span class="p">}</span></div><div class='line' id='LC7849'> <span class="k">return</span> <span class="nx">hasCaptionProblem</span><span class="p">;</span></div><div class='line' id='LC7850'> <span class="p">};</span></div><div class='line' id='LC7851'><span class="p">})();</span></div><div class='line' id='LC7852'><br/></div><div class='line' id='LC7853'><span class="kd">function</span> <span class="nx">WalkontableEvent</span><span class="p">(</span><span class="nx">instance</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7854'> <span class="kd">var</span> <span class="nx">that</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC7855'><br/></div><div class='line' id='LC7856'> <span class="c1">//reference to instance</span></div><div class='line' id='LC7857'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">;</span></div><div class='line' id='LC7858'><br/></div><div class='line' id='LC7859'> <span class="k">this</span><span class="p">.</span><span class="nx">wtDom</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">;</span></div><div class='line' id='LC7860'><br/></div><div class='line' id='LC7861'> <span class="kd">var</span> <span class="nx">dblClickOrigin</span> <span class="o">=</span> <span class="p">[</span><span class="kc">null</span><span class="p">,</span> <span class="kc">null</span><span class="p">,</span> <span class="kc">null</span><span class="p">,</span> <span class="kc">null</span><span class="p">];</span></div><div class='line' id='LC7862'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">dblClickTimeout</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span></div><div class='line' id='LC7863'><br/></div><div class='line' id='LC7864'> <span class="kd">var</span> <span class="nx">onMouseDown</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7865'> <span class="kd">var</span> <span class="nx">cell</span> <span class="o">=</span> <span class="nx">that</span><span class="p">.</span><span class="nx">parentCell</span><span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">target</span><span class="p">);</span></div><div class='line' id='LC7866'><br/></div><div class='line' id='LC7867'> <span class="k">if</span> <span class="p">(</span><span class="nx">cell</span><span class="p">.</span><span class="nx">TD</span> <span class="o">&&</span> <span class="nx">cell</span><span class="p">.</span><span class="nx">TD</span><span class="p">.</span><span class="nx">nodeName</span> <span class="o">===</span> <span class="s1">'TD'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7868'> <span class="k">if</span> <span class="p">(</span><span class="nx">that</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">hasSetting</span><span class="p">(</span><span class="s1">'onCellMouseDown'</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC7869'> <span class="nx">that</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'onCellMouseDown'</span><span class="p">,</span> <span class="nx">event</span><span class="p">,</span> <span class="nx">cell</span><span class="p">.</span><span class="nx">coords</span><span class="p">,</span> <span class="nx">cell</span><span class="p">.</span><span class="nx">TD</span><span class="p">);</span></div><div class='line' id='LC7870'> <span class="p">}</span></div><div class='line' id='LC7871'> <span class="p">}</span></div><div class='line' id='LC7872'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">that</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">hasClass</span><span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">target</span><span class="p">,</span> <span class="s1">'corner'</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC7873'> <span class="nx">that</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'onCellCornerMouseDown'</span><span class="p">,</span> <span class="nx">event</span><span class="p">,</span> <span class="nx">event</span><span class="p">.</span><span class="nx">target</span><span class="p">);</span></div><div class='line' id='LC7874'> <span class="p">}</span></div><div class='line' id='LC7875'><br/></div><div class='line' id='LC7876'> <span class="k">if</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">button</span> <span class="o">!==</span> <span class="mi">2</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//if not right mouse button</span></div><div class='line' id='LC7877'> <span class="k">if</span> <span class="p">(</span><span class="nx">cell</span><span class="p">.</span><span class="nx">TD</span> <span class="o">&&</span> <span class="nx">cell</span><span class="p">.</span><span class="nx">TD</span><span class="p">.</span><span class="nx">nodeName</span> <span class="o">===</span> <span class="s1">'TD'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7878'> <span class="nx">dblClickOrigin</span><span class="p">.</span><span class="nx">shift</span><span class="p">();</span></div><div class='line' id='LC7879'> <span class="nx">dblClickOrigin</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">cell</span><span class="p">.</span><span class="nx">TD</span><span class="p">);</span></div><div class='line' id='LC7880'> <span class="p">}</span></div><div class='line' id='LC7881'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">that</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">hasClass</span><span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">target</span><span class="p">,</span> <span class="s1">'corner'</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC7882'> <span class="nx">dblClickOrigin</span><span class="p">.</span><span class="nx">shift</span><span class="p">();</span></div><div class='line' id='LC7883'> <span class="nx">dblClickOrigin</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">target</span><span class="p">);</span></div><div class='line' id='LC7884'> <span class="p">}</span></div><div class='line' id='LC7885'> <span class="p">}</span></div><div class='line' id='LC7886'> <span class="p">};</span></div><div class='line' id='LC7887'><br/></div><div class='line' id='LC7888'> <span class="kd">var</span> <span class="nx">lastMouseOver</span><span class="p">;</span></div><div class='line' id='LC7889'> <span class="kd">var</span> <span class="nx">onMouseOver</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7890'> <span class="k">if</span> <span class="p">(</span><span class="nx">that</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">hasSetting</span><span class="p">(</span><span class="s1">'onCellMouseOver'</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC7891'> <span class="kd">var</span> <span class="nx">TABLE</span> <span class="o">=</span> <span class="nx">that</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">TABLE</span><span class="p">;</span></div><div class='line' id='LC7892'> <span class="kd">var</span> <span class="nx">TD</span> <span class="o">=</span> <span class="nx">that</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">closest</span><span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">target</span><span class="p">,</span> <span class="p">[</span><span class="s1">'TD'</span><span class="p">,</span> <span class="s1">'TH'</span><span class="p">],</span> <span class="nx">TABLE</span><span class="p">);</span></div><div class='line' id='LC7893'> <span class="k">if</span> <span class="p">(</span><span class="nx">TD</span> <span class="o">&&</span> <span class="nx">TD</span> <span class="o">!==</span> <span class="nx">lastMouseOver</span> <span class="o">&&</span> <span class="nx">that</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">isChildOf</span><span class="p">(</span><span class="nx">TD</span><span class="p">,</span> <span class="nx">TABLE</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC7894'> <span class="nx">lastMouseOver</span> <span class="o">=</span> <span class="nx">TD</span><span class="p">;</span></div><div class='line' id='LC7895'> <span class="k">if</span> <span class="p">(</span><span class="nx">TD</span><span class="p">.</span><span class="nx">nodeName</span> <span class="o">===</span> <span class="s1">'TD'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7896'> <span class="nx">that</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'onCellMouseOver'</span><span class="p">,</span> <span class="nx">event</span><span class="p">,</span> <span class="nx">that</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">getCoords</span><span class="p">(</span><span class="nx">TD</span><span class="p">),</span> <span class="nx">TD</span><span class="p">);</span></div><div class='line' id='LC7897'> <span class="p">}</span></div><div class='line' id='LC7898'> <span class="p">}</span></div><div class='line' id='LC7899'> <span class="p">}</span></div><div class='line' id='LC7900'> <span class="p">};</span></div><div class='line' id='LC7901'><br/></div><div class='line' id='LC7902'><span class="cm">/* var lastMouseOut;</span></div><div class='line' id='LC7903'><span class="cm"> var onMouseOut = function (event) {</span></div><div class='line' id='LC7904'><span class="cm"> if (that.instance.hasSetting('onCellMouseOut')) {</span></div><div class='line' id='LC7905'><span class="cm"> var TABLE = that.instance.wtTable.TABLE;</span></div><div class='line' id='LC7906'><span class="cm"> var TD = that.wtDom.closest(event.target, ['TD', 'TH'], TABLE);</span></div><div class='line' id='LC7907'><span class="cm"> if (TD && TD !== lastMouseOut && that.wtDom.isChildOf(TD, TABLE)) {</span></div><div class='line' id='LC7908'><span class="cm"> lastMouseOut = TD;</span></div><div class='line' id='LC7909'><span class="cm"> if (TD.nodeName === 'TD') {</span></div><div class='line' id='LC7910'><span class="cm"> that.instance.getSetting('onCellMouseOut', event, that.instance.wtTable.getCoords(TD), TD);</span></div><div class='line' id='LC7911'><span class="cm"> }</span></div><div class='line' id='LC7912'><span class="cm"> }</span></div><div class='line' id='LC7913'><span class="cm"> }</span></div><div class='line' id='LC7914'><span class="cm"> };*/</span></div><div class='line' id='LC7915'><br/></div><div class='line' id='LC7916'> <span class="kd">var</span> <span class="nx">onMouseUp</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7917'> <span class="k">if</span> <span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">button</span> <span class="o">!==</span> <span class="mi">2</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//if not right mouse button</span></div><div class='line' id='LC7918'> <span class="kd">var</span> <span class="nx">cell</span> <span class="o">=</span> <span class="nx">that</span><span class="p">.</span><span class="nx">parentCell</span><span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">target</span><span class="p">);</span></div><div class='line' id='LC7919'><br/></div><div class='line' id='LC7920'> <span class="k">if</span> <span class="p">(</span><span class="nx">cell</span><span class="p">.</span><span class="nx">TD</span> <span class="o">&&</span> <span class="nx">cell</span><span class="p">.</span><span class="nx">TD</span><span class="p">.</span><span class="nx">nodeName</span> <span class="o">===</span> <span class="s1">'TD'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7921'> <span class="nx">dblClickOrigin</span><span class="p">.</span><span class="nx">shift</span><span class="p">();</span></div><div class='line' id='LC7922'> <span class="nx">dblClickOrigin</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">cell</span><span class="p">.</span><span class="nx">TD</span><span class="p">);</span></div><div class='line' id='LC7923'> <span class="p">}</span></div><div class='line' id='LC7924'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC7925'> <span class="nx">dblClickOrigin</span><span class="p">.</span><span class="nx">shift</span><span class="p">();</span></div><div class='line' id='LC7926'> <span class="nx">dblClickOrigin</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">target</span><span class="p">);</span></div><div class='line' id='LC7927'> <span class="p">}</span></div><div class='line' id='LC7928'><br/></div><div class='line' id='LC7929'> <span class="k">if</span> <span class="p">(</span><span class="nx">dblClickOrigin</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">!==</span> <span class="kc">null</span> <span class="o">&&</span> <span class="nx">dblClickOrigin</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">===</span> <span class="nx">dblClickOrigin</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span> <span class="p">{</span></div><div class='line' id='LC7930'> <span class="k">if</span> <span class="p">(</span><span class="nx">that</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">dblClickTimeout</span> <span class="o">&&</span> <span class="nx">dblClickOrigin</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">===</span> <span class="nx">dblClickOrigin</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">&&</span> <span class="nx">dblClickOrigin</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">===</span> <span class="nx">dblClickOrigin</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="p">{</span></div><div class='line' id='LC7931'> <span class="k">if</span> <span class="p">(</span><span class="nx">cell</span><span class="p">.</span><span class="nx">TD</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7932'> <span class="nx">that</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'onCellDblClick'</span><span class="p">,</span> <span class="nx">event</span><span class="p">,</span> <span class="nx">cell</span><span class="p">.</span><span class="nx">coords</span><span class="p">,</span> <span class="nx">cell</span><span class="p">.</span><span class="nx">TD</span><span class="p">);</span></div><div class='line' id='LC7933'> <span class="p">}</span></div><div class='line' id='LC7934'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">that</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">hasClass</span><span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">target</span><span class="p">,</span> <span class="s1">'corner'</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC7935'> <span class="nx">that</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'onCellCornerDblClick'</span><span class="p">,</span> <span class="nx">event</span><span class="p">,</span> <span class="nx">cell</span><span class="p">.</span><span class="nx">coords</span><span class="p">,</span> <span class="nx">cell</span><span class="p">.</span><span class="nx">TD</span><span class="p">);</span></div><div class='line' id='LC7936'> <span class="p">}</span></div><div class='line' id='LC7937'><br/></div><div class='line' id='LC7938'> <span class="nx">clearTimeout</span><span class="p">(</span><span class="nx">that</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">dblClickTimeout</span><span class="p">);</span></div><div class='line' id='LC7939'> <span class="nx">that</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">dblClickTimeout</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span></div><div class='line' id='LC7940'> <span class="p">}</span></div><div class='line' id='LC7941'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC7942'> <span class="nx">clearTimeout</span><span class="p">(</span><span class="nx">that</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">dblClickTimeout</span><span class="p">);</span></div><div class='line' id='LC7943'> <span class="nx">that</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">dblClickTimeout</span> <span class="o">=</span> <span class="nx">setTimeout</span><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC7944'> <span class="nx">that</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">dblClickTimeout</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span></div><div class='line' id='LC7945'> <span class="p">},</span> <span class="mi">500</span><span class="p">);</span></div><div class='line' id='LC7946'> <span class="p">}</span></div><div class='line' id='LC7947'> <span class="p">}</span></div><div class='line' id='LC7948'> <span class="p">}</span></div><div class='line' id='LC7949'> <span class="p">};</span></div><div class='line' id='LC7950'><br/></div><div class='line' id='LC7951'> <span class="nx">$</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">parent</span><span class="p">).</span><span class="nx">on</span><span class="p">(</span><span class="s1">'mousedown'</span><span class="p">,</span> <span class="nx">onMouseDown</span><span class="p">);</span></div><div class='line' id='LC7952'> <span class="nx">$</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">TABLE</span><span class="p">).</span><span class="nx">on</span><span class="p">(</span><span class="s1">'mouseover'</span><span class="p">,</span> <span class="nx">onMouseOver</span><span class="p">);</span></div><div class='line' id='LC7953'><span class="c1">// $(this.instance.wtTable.TABLE).on('mouseout', onMouseOut);</span></div><div class='line' id='LC7954'> <span class="nx">$</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">parent</span><span class="p">).</span><span class="nx">on</span><span class="p">(</span><span class="s1">'mouseup'</span><span class="p">,</span> <span class="nx">onMouseUp</span><span class="p">);</span></div><div class='line' id='LC7955'><span class="p">}</span></div><div class='line' id='LC7956'><br/></div><div class='line' id='LC7957'><span class="nx">WalkontableEvent</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">parentCell</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">elem</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7958'> <span class="kd">var</span> <span class="nx">cell</span> <span class="o">=</span> <span class="p">{};</span></div><div class='line' id='LC7959'> <span class="kd">var</span> <span class="nx">TABLE</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">TABLE</span><span class="p">;</span></div><div class='line' id='LC7960'> <span class="kd">var</span> <span class="nx">TD</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">closest</span><span class="p">(</span><span class="nx">elem</span><span class="p">,</span> <span class="p">[</span><span class="s1">'TD'</span><span class="p">,</span> <span class="s1">'TH'</span><span class="p">],</span> <span class="nx">TABLE</span><span class="p">);</span></div><div class='line' id='LC7961'> <span class="k">if</span> <span class="p">(</span><span class="nx">TD</span> <span class="o">&&</span> <span class="k">this</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">isChildOf</span><span class="p">(</span><span class="nx">TD</span><span class="p">,</span> <span class="nx">TABLE</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC7962'> <span class="nx">cell</span><span class="p">.</span><span class="nx">coords</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">getCoords</span><span class="p">(</span><span class="nx">TD</span><span class="p">);</span></div><div class='line' id='LC7963'> <span class="nx">cell</span><span class="p">.</span><span class="nx">TD</span> <span class="o">=</span> <span class="nx">TD</span><span class="p">;</span></div><div class='line' id='LC7964'> <span class="p">}</span></div><div class='line' id='LC7965'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">hasClass</span><span class="p">(</span><span class="nx">elem</span><span class="p">,</span> <span class="s1">'wtBorder'</span><span class="p">)</span> <span class="o">&&</span> <span class="k">this</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">hasClass</span><span class="p">(</span><span class="nx">elem</span><span class="p">,</span> <span class="s1">'current'</span><span class="p">)</span> <span class="o">&&</span> <span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">hasClass</span><span class="p">(</span><span class="nx">elem</span><span class="p">,</span> <span class="s1">'corner'</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC7966'> <span class="nx">cell</span><span class="p">.</span><span class="nx">coords</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">selections</span><span class="p">.</span><span class="nx">current</span><span class="p">.</span><span class="nx">selected</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span></div><div class='line' id='LC7967'> <span class="nx">cell</span><span class="p">.</span><span class="nx">TD</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">getCell</span><span class="p">(</span><span class="nx">cell</span><span class="p">.</span><span class="nx">coords</span><span class="p">);</span></div><div class='line' id='LC7968'> <span class="p">}</span></div><div class='line' id='LC7969'> <span class="k">return</span> <span class="nx">cell</span><span class="p">;</span></div><div class='line' id='LC7970'><span class="p">};</span></div><div class='line' id='LC7971'><span class="kd">function</span> <span class="nx">walkontableRangesIntersect</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC7972'> <span class="kd">var</span> <span class="nx">from</span> <span class="o">=</span> <span class="nx">arguments</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span></div><div class='line' id='LC7973'> <span class="kd">var</span> <span class="nx">to</span> <span class="o">=</span> <span class="nx">arguments</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span></div><div class='line' id='LC7974'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span> <span class="nx">ilen</span> <span class="o">=</span> <span class="nx">arguments</span><span class="p">.</span><span class="nx">length</span> <span class="o">/</span> <span class="mi">2</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">ilen</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7975'> <span class="k">if</span> <span class="p">(</span><span class="nx">from</span> <span class="o"><=</span> <span class="nx">arguments</span><span class="p">[</span><span class="mi">2</span> <span class="o">*</span> <span class="nx">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">&&</span> <span class="nx">to</span> <span class="o">>=</span> <span class="nx">arguments</span><span class="p">[</span><span class="mi">2</span> <span class="o">*</span> <span class="nx">i</span><span class="p">])</span> <span class="p">{</span></div><div class='line' id='LC7976'> <span class="k">return</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC7977'> <span class="p">}</span></div><div class='line' id='LC7978'> <span class="p">}</span></div><div class='line' id='LC7979'> <span class="k">return</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC7980'><span class="p">}</span></div><div class='line' id='LC7981'><span class="c1">//http://stackoverflow.com/questions/3629183/why-doesnt-indexof-work-on-an-array-ie8</span></div><div class='line' id='LC7982'><span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7983'> <span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">indexOf</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">elt</span> <span class="cm">/*, from*/</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7984'> <span class="kd">var</span> <span class="nx">len</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">length</span> <span class="o">>>></span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC7985'><br/></div><div class='line' id='LC7986'> <span class="kd">var</span> <span class="nx">from</span> <span class="o">=</span> <span class="nb">Number</span><span class="p">(</span><span class="nx">arguments</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="o">||</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC7987'> <span class="nx">from</span> <span class="o">=</span> <span class="p">(</span><span class="nx">from</span> <span class="o"><</span> <span class="mi">0</span><span class="p">)</span></div><div class='line' id='LC7988'> <span class="o">?</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">ceil</span><span class="p">(</span><span class="nx">from</span><span class="p">)</span></div><div class='line' id='LC7989'> <span class="o">:</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">floor</span><span class="p">(</span><span class="nx">from</span><span class="p">);</span></div><div class='line' id='LC7990'> <span class="k">if</span> <span class="p">(</span><span class="nx">from</span> <span class="o"><</span> <span class="mi">0</span><span class="p">)</span></div><div class='line' id='LC7991'> <span class="nx">from</span> <span class="o">+=</span> <span class="nx">len</span><span class="p">;</span></div><div class='line' id='LC7992'><br/></div><div class='line' id='LC7993'> <span class="k">for</span> <span class="p">(;</span> <span class="nx">from</span> <span class="o"><</span> <span class="nx">len</span><span class="p">;</span> <span class="nx">from</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC7994'> <span class="k">if</span> <span class="p">(</span><span class="nx">from</span> <span class="k">in</span> <span class="k">this</span> <span class="o">&&</span></div><div class='line' id='LC7995'> <span class="k">this</span><span class="p">[</span><span class="nx">from</span><span class="p">]</span> <span class="o">===</span> <span class="nx">elt</span><span class="p">)</span></div><div class='line' id='LC7996'> <span class="k">return</span> <span class="nx">from</span><span class="p">;</span></div><div class='line' id='LC7997'> <span class="p">}</span></div><div class='line' id='LC7998'> <span class="k">return</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC7999'> <span class="p">};</span></div><div class='line' id='LC8000'><span class="p">}</span></div><div class='line' id='LC8001'><br/></div><div class='line' id='LC8002'><span class="cm">/**</span></div><div class='line' id='LC8003'><span class="cm"> * http://notes.jetienne.com/2011/05/18/cancelRequestAnimFrame-for-paul-irish-requestAnimFrame.html</span></div><div class='line' id='LC8004'><span class="cm"> */</span></div><div class='line' id='LC8005'><span class="nb">window</span><span class="p">.</span><span class="nx">requestAnimFrame</span> <span class="o">=</span> <span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8006'> <span class="k">return</span> <span class="nb">window</span><span class="p">.</span><span class="nx">requestAnimationFrame</span> <span class="o">||</span></div><div class='line' id='LC8007'> <span class="nb">window</span><span class="p">.</span><span class="nx">webkitRequestAnimationFrame</span> <span class="o">||</span></div><div class='line' id='LC8008'> <span class="nb">window</span><span class="p">.</span><span class="nx">mozRequestAnimationFrame</span> <span class="o">||</span></div><div class='line' id='LC8009'> <span class="nb">window</span><span class="p">.</span><span class="nx">oRequestAnimationFrame</span> <span class="o">||</span></div><div class='line' id='LC8010'> <span class="nb">window</span><span class="p">.</span><span class="nx">msRequestAnimationFrame</span> <span class="o">||</span></div><div class='line' id='LC8011'> <span class="kd">function</span> <span class="p">(</span><span class="cm">/* function */</span> <span class="nx">callback</span><span class="p">,</span> <span class="cm">/* DOMElement */</span> <span class="nx">element</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8012'> <span class="k">return</span> <span class="nb">window</span><span class="p">.</span><span class="nx">setTimeout</span><span class="p">(</span><span class="nx">callback</span><span class="p">,</span> <span class="mi">1000</span> <span class="o">/</span> <span class="mi">60</span><span class="p">);</span></div><div class='line' id='LC8013'> <span class="p">};</span></div><div class='line' id='LC8014'><span class="p">})();</span></div><div class='line' id='LC8015'><br/></div><div class='line' id='LC8016'><span class="nb">window</span><span class="p">.</span><span class="nx">cancelRequestAnimFrame</span> <span class="o">=</span> <span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8017'> <span class="k">return</span> <span class="nb">window</span><span class="p">.</span><span class="nx">cancelAnimationFrame</span> <span class="o">||</span></div><div class='line' id='LC8018'> <span class="nb">window</span><span class="p">.</span><span class="nx">webkitCancelRequestAnimationFrame</span> <span class="o">||</span></div><div class='line' id='LC8019'> <span class="nb">window</span><span class="p">.</span><span class="nx">mozCancelRequestAnimationFrame</span> <span class="o">||</span></div><div class='line' id='LC8020'> <span class="nb">window</span><span class="p">.</span><span class="nx">oCancelRequestAnimationFrame</span> <span class="o">||</span></div><div class='line' id='LC8021'> <span class="nb">window</span><span class="p">.</span><span class="nx">msCancelRequestAnimationFrame</span> <span class="o">||</span></div><div class='line' id='LC8022'> <span class="nx">clearTimeout</span></div><div class='line' id='LC8023'><span class="p">})();</span></div><div class='line' id='LC8024'><br/></div><div class='line' id='LC8025'><span class="c1">//http://snipplr.com/view/13523/</span></div><div class='line' id='LC8026'><span class="c1">//modified for speed</span></div><div class='line' id='LC8027'><span class="c1">//http://jsperf.com/getcomputedstyle-vs-style-vs-css/8</span></div><div class='line' id='LC8028'><span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nb">window</span><span class="p">.</span><span class="nx">getComputedStyle</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8029'> <span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8030'> <span class="kd">var</span> <span class="nx">elem</span><span class="p">;</span></div><div class='line' id='LC8031'><br/></div><div class='line' id='LC8032'> <span class="kd">var</span> <span class="nx">styleObj</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC8033'> <span class="nx">getPropertyValue</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">getPropertyValue</span><span class="p">(</span><span class="nx">prop</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8034'> <span class="k">if</span> <span class="p">(</span><span class="nx">prop</span> <span class="o">==</span> <span class="s1">'float'</span><span class="p">)</span> <span class="nx">prop</span> <span class="o">=</span> <span class="s1">'styleFloat'</span><span class="p">;</span></div><div class='line' id='LC8035'> <span class="k">return</span> <span class="nx">elem</span><span class="p">.</span><span class="nx">currentStyle</span><span class="p">[</span><span class="nx">prop</span><span class="p">.</span><span class="nx">toUpperCase</span><span class="p">()]</span> <span class="o">||</span> <span class="kc">null</span><span class="p">;</span></div><div class='line' id='LC8036'> <span class="p">}</span></div><div class='line' id='LC8037'> <span class="p">}</span></div><div class='line' id='LC8038'><br/></div><div class='line' id='LC8039'> <span class="nb">window</span><span class="p">.</span><span class="nx">getComputedStyle</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8040'> <span class="nx">elem</span> <span class="o">=</span> <span class="nx">el</span><span class="p">;</span></div><div class='line' id='LC8041'> <span class="k">return</span> <span class="nx">styleObj</span><span class="p">;</span></div><div class='line' id='LC8042'> <span class="p">}</span></div><div class='line' id='LC8043'> <span class="p">})();</span></div><div class='line' id='LC8044'><span class="p">}</span></div><div class='line' id='LC8045'><span class="cm">/**</span></div><div class='line' id='LC8046'><span class="cm"> * WalkontableRowFilter</span></div><div class='line' id='LC8047'><span class="cm"> * @constructor</span></div><div class='line' id='LC8048'><span class="cm"> */</span></div><div class='line' id='LC8049'><span class="kd">function</span> <span class="nx">WalkontableRowFilter</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8050'><span class="p">}</span></div><div class='line' id='LC8051'><br/></div><div class='line' id='LC8052'><span class="nx">WalkontableRowFilter</span><span class="p">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WalkontableCellFilter</span><span class="p">();</span></div><div class='line' id='LC8053'><br/></div><div class='line' id='LC8054'><span class="nx">WalkontableRowFilter</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">readSettings</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">instance</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8055'> <span class="k">this</span><span class="p">.</span><span class="nx">offset</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">wtSettings</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">offsetRow</span><span class="p">;</span></div><div class='line' id='LC8056'> <span class="k">this</span><span class="p">.</span><span class="nx">total</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'totalRows'</span><span class="p">);</span></div><div class='line' id='LC8057'> <span class="k">this</span><span class="p">.</span><span class="nx">fixedCount</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'fixedRowsTop'</span><span class="p">);</span></div><div class='line' id='LC8058'><span class="p">};</span></div><div class='line' id='LC8059'><span class="cm">/**</span></div><div class='line' id='LC8060'><span class="cm"> * WalkontableRowStrategy</span></div><div class='line' id='LC8061'><span class="cm"> * @param containerSizeFn</span></div><div class='line' id='LC8062'><span class="cm"> * @param sizeAtIndex</span></div><div class='line' id='LC8063'><span class="cm"> * @constructor</span></div><div class='line' id='LC8064'><span class="cm"> */</span></div><div class='line' id='LC8065'><span class="kd">function</span> <span class="nx">WalkontableRowStrategy</span><span class="p">(</span><span class="nx">containerSizeFn</span><span class="p">,</span> <span class="nx">sizeAtIndex</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8066'> <span class="k">this</span><span class="p">.</span><span class="nx">containerSizeFn</span> <span class="o">=</span> <span class="nx">containerSizeFn</span><span class="p">;</span></div><div class='line' id='LC8067'> <span class="k">this</span><span class="p">.</span><span class="nx">sizeAtIndex</span> <span class="o">=</span> <span class="nx">sizeAtIndex</span><span class="p">;</span></div><div class='line' id='LC8068'> <span class="k">this</span><span class="p">.</span><span class="nx">cellSizesSum</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC8069'> <span class="k">this</span><span class="p">.</span><span class="nx">cellSizes</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC8070'> <span class="k">this</span><span class="p">.</span><span class="nx">cellCount</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC8071'> <span class="k">this</span><span class="p">.</span><span class="nx">remainingSize</span> <span class="o">=</span> <span class="o">-</span><span class="kc">Infinity</span><span class="p">;</span></div><div class='line' id='LC8072'><span class="p">}</span></div><div class='line' id='LC8073'><br/></div><div class='line' id='LC8074'><span class="nx">WalkontableRowStrategy</span><span class="p">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WalkontableCellStrategy</span><span class="p">();</span></div><div class='line' id='LC8075'><br/></div><div class='line' id='LC8076'><span class="nx">WalkontableRowStrategy</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">add</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">i</span><span class="p">,</span> <span class="nx">TD</span><span class="p">,</span> <span class="nx">reverse</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8077'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">remainingSize</span> <span class="o"><</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8078'> <span class="kd">var</span> <span class="nx">size</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">sizeAtIndex</span><span class="p">(</span><span class="nx">i</span><span class="p">,</span> <span class="nx">TD</span><span class="p">);</span></div><div class='line' id='LC8079'> <span class="k">if</span> <span class="p">(</span><span class="nx">size</span> <span class="o">===</span> <span class="k">void</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8080'> <span class="k">return</span><span class="p">;</span> <span class="c1">//total rows exceeded</span></div><div class='line' id='LC8081'> <span class="p">}</span></div><div class='line' id='LC8082'> <span class="kd">var</span> <span class="nx">containerSize</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getContainerSize</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">cellSizesSum</span> <span class="o">+</span> <span class="nx">size</span><span class="p">);</span></div><div class='line' id='LC8083'> <span class="k">if</span> <span class="p">(</span><span class="nx">reverse</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8084'> <span class="k">this</span><span class="p">.</span><span class="nx">cellSizes</span><span class="p">.</span><span class="nx">unshift</span><span class="p">(</span><span class="nx">size</span><span class="p">);</span></div><div class='line' id='LC8085'> <span class="p">}</span></div><div class='line' id='LC8086'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC8087'> <span class="k">this</span><span class="p">.</span><span class="nx">cellSizes</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">size</span><span class="p">);</span></div><div class='line' id='LC8088'> <span class="p">}</span></div><div class='line' id='LC8089'> <span class="k">this</span><span class="p">.</span><span class="nx">cellSizesSum</span> <span class="o">+=</span> <span class="nx">size</span><span class="p">;</span></div><div class='line' id='LC8090'> <span class="k">this</span><span class="p">.</span><span class="nx">cellCount</span><span class="o">++</span><span class="p">;</span></div><div class='line' id='LC8091'> <span class="k">this</span><span class="p">.</span><span class="nx">remainingSize</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cellSizesSum</span> <span class="o">-</span> <span class="nx">containerSize</span><span class="p">;</span></div><div class='line' id='LC8092'><br/></div><div class='line' id='LC8093'> <span class="k">if</span> <span class="p">(</span><span class="nx">reverse</span> <span class="o">&&</span> <span class="k">this</span><span class="p">.</span><span class="nx">remainingSize</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//something is outside of the screen, maybe even some full rows?</span></div><div class='line' id='LC8094'> <span class="k">while</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">cellCount</span> <span class="o">></span> <span class="mi">0</span> <span class="o">&&</span> <span class="k">this</span><span class="p">.</span><span class="nx">cellSizes</span><span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">cellCount</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span> <span class="o"><</span> <span class="k">this</span><span class="p">.</span><span class="nx">remainingSize</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//this row is completely off screen!</span></div><div class='line' id='LC8095'> <span class="k">this</span><span class="p">.</span><span class="nx">cellSizesSum</span> <span class="o">-=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cellSizes</span><span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">cellCount</span> <span class="o">-</span> <span class="mi">1</span><span class="p">];</span></div><div class='line' id='LC8096'> <span class="k">this</span><span class="p">.</span><span class="nx">cellCount</span><span class="o">--</span><span class="p">;</span></div><div class='line' id='LC8097'> <span class="k">this</span><span class="p">.</span><span class="nx">cellSizes</span><span class="p">.</span><span class="nx">length</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cellCount</span><span class="p">;</span> <span class="c1">//remove it from array</span></div><div class='line' id='LC8098'> <span class="p">}</span></div><div class='line' id='LC8099'> <span class="p">}</span></div><div class='line' id='LC8100'> <span class="p">}</span></div><div class='line' id='LC8101'><span class="p">};</span></div><div class='line' id='LC8102'><br/></div><div class='line' id='LC8103'><span class="nx">WalkontableRowStrategy</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">remove</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8104'> <span class="kd">var</span> <span class="nx">size</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cellSizes</span><span class="p">.</span><span class="nx">pop</span><span class="p">();</span></div><div class='line' id='LC8105'> <span class="k">this</span><span class="p">.</span><span class="nx">cellSizesSum</span> <span class="o">-=</span> <span class="nx">size</span><span class="p">;</span></div><div class='line' id='LC8106'> <span class="k">this</span><span class="p">.</span><span class="nx">cellCount</span><span class="o">--</span><span class="p">;</span></div><div class='line' id='LC8107'> <span class="k">this</span><span class="p">.</span><span class="nx">remainingSize</span> <span class="o">+=</span> <span class="nx">size</span><span class="p">;</span></div><div class='line' id='LC8108'><span class="p">};</span></div><div class='line' id='LC8109'><span class="kd">function</span> <span class="nx">WalkontableScroll</span><span class="p">(</span><span class="nx">instance</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8110'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">;</span></div><div class='line' id='LC8111'><span class="p">}</span></div><div class='line' id='LC8112'><br/></div><div class='line' id='LC8113'><span class="nx">WalkontableScroll</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">scrollVertical</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">delta</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8114'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">drawn</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8115'> <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s1">'scrollVertical can only be called after table was drawn to DOM'</span><span class="p">);</span></div><div class='line' id='LC8116'> <span class="p">}</span></div><div class='line' id='LC8117'><br/></div><div class='line' id='LC8118'> <span class="kd">var</span> <span class="nx">instance</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span></div><div class='line' id='LC8119'> <span class="p">,</span> <span class="nx">newOffset</span></div><div class='line' id='LC8120'> <span class="p">,</span> <span class="nx">offset</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'offsetRow'</span><span class="p">)</span></div><div class='line' id='LC8121'> <span class="p">,</span> <span class="nx">fixedCount</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'fixedRowsTop'</span><span class="p">)</span></div><div class='line' id='LC8122'> <span class="p">,</span> <span class="nx">total</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'totalRows'</span><span class="p">)</span></div><div class='line' id='LC8123'> <span class="p">,</span> <span class="nx">maxSize</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">wtViewport</span><span class="p">.</span><span class="nx">getViewportHeight</span><span class="p">();</span></div><div class='line' id='LC8124'><br/></div><div class='line' id='LC8125'> <span class="k">if</span> <span class="p">(</span><span class="nx">total</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8126'> <span class="nx">newOffset</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">scrollLogicVertical</span><span class="p">(</span><span class="nx">delta</span><span class="p">,</span> <span class="nx">offset</span><span class="p">,</span> <span class="nx">total</span><span class="p">,</span> <span class="nx">fixedCount</span><span class="p">,</span> <span class="nx">maxSize</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">row</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8127'> <span class="k">if</span> <span class="p">(</span><span class="nx">row</span> <span class="o">-</span> <span class="nx">offset</span> <span class="o"><</span> <span class="nx">fixedCount</span> <span class="o">&&</span> <span class="nx">row</span> <span class="o">-</span> <span class="nx">offset</span> <span class="o">>=</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8128'> <span class="k">return</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'rowHeight'</span><span class="p">,</span> <span class="nx">row</span> <span class="o">-</span> <span class="nx">offset</span><span class="p">);</span></div><div class='line' id='LC8129'> <span class="p">}</span></div><div class='line' id='LC8130'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC8131'> <span class="k">return</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'rowHeight'</span><span class="p">,</span> <span class="nx">row</span><span class="p">);</span></div><div class='line' id='LC8132'> <span class="p">}</span></div><div class='line' id='LC8133'> <span class="p">},</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">isReverse</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8134'> <span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">verticalRenderReverse</span> <span class="o">=</span> <span class="nx">isReverse</span><span class="p">;</span></div><div class='line' id='LC8135'> <span class="p">});</span></div><div class='line' id='LC8136'> <span class="p">}</span></div><div class='line' id='LC8137'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC8138'> <span class="nx">newOffset</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC8139'> <span class="p">}</span></div><div class='line' id='LC8140'><br/></div><div class='line' id='LC8141'> <span class="k">if</span> <span class="p">(</span><span class="nx">newOffset</span> <span class="o">!==</span> <span class="nx">offset</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8142'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtScrollbars</span><span class="p">.</span><span class="nx">vertical</span><span class="p">.</span><span class="nx">scrollTo</span><span class="p">(</span><span class="nx">newOffset</span><span class="p">);</span></div><div class='line' id='LC8143'> <span class="p">}</span></div><div class='line' id='LC8144'> <span class="k">return</span> <span class="nx">instance</span><span class="p">;</span></div><div class='line' id='LC8145'><span class="p">};</span></div><div class='line' id='LC8146'><br/></div><div class='line' id='LC8147'><span class="nx">WalkontableScroll</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">scrollHorizontal</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">delta</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8148'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">drawn</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8149'> <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s1">'scrollHorizontal can only be called after table was drawn to DOM'</span><span class="p">);</span></div><div class='line' id='LC8150'> <span class="p">}</span></div><div class='line' id='LC8151'><br/></div><div class='line' id='LC8152'> <span class="kd">var</span> <span class="nx">instance</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span></div><div class='line' id='LC8153'> <span class="p">,</span> <span class="nx">newOffset</span></div><div class='line' id='LC8154'> <span class="p">,</span> <span class="nx">offset</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'offsetColumn'</span><span class="p">)</span></div><div class='line' id='LC8155'> <span class="p">,</span> <span class="nx">fixedCount</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'fixedColumnsLeft'</span><span class="p">)</span></div><div class='line' id='LC8156'> <span class="p">,</span> <span class="nx">total</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'totalColumns'</span><span class="p">)</span></div><div class='line' id='LC8157'> <span class="p">,</span> <span class="nx">maxSize</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">wtViewport</span><span class="p">.</span><span class="nx">getViewportWidth</span><span class="p">();</span></div><div class='line' id='LC8158'><br/></div><div class='line' id='LC8159'> <span class="k">if</span> <span class="p">(</span><span class="nx">total</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8160'> <span class="nx">newOffset</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">scrollLogicHorizontal</span><span class="p">(</span><span class="nx">delta</span><span class="p">,</span> <span class="nx">offset</span><span class="p">,</span> <span class="nx">total</span><span class="p">,</span> <span class="nx">fixedCount</span><span class="p">,</span> <span class="nx">maxSize</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">col</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8161'> <span class="k">if</span> <span class="p">(</span><span class="nx">col</span> <span class="o">-</span> <span class="nx">offset</span> <span class="o"><</span> <span class="nx">fixedCount</span> <span class="o">&&</span> <span class="nx">col</span> <span class="o">-</span> <span class="nx">offset</span> <span class="o">>=</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8162'> <span class="k">return</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'columnWidth'</span><span class="p">,</span> <span class="nx">col</span> <span class="o">-</span> <span class="nx">offset</span><span class="p">);</span></div><div class='line' id='LC8163'> <span class="p">}</span></div><div class='line' id='LC8164'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC8165'> <span class="k">return</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'columnWidth'</span><span class="p">,</span> <span class="nx">col</span><span class="p">);</span></div><div class='line' id='LC8166'> <span class="p">}</span></div><div class='line' id='LC8167'> <span class="p">});</span></div><div class='line' id='LC8168'> <span class="p">}</span></div><div class='line' id='LC8169'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC8170'> <span class="nx">newOffset</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC8171'> <span class="p">}</span></div><div class='line' id='LC8172'><br/></div><div class='line' id='LC8173'> <span class="k">if</span> <span class="p">(</span><span class="nx">newOffset</span> <span class="o">!==</span> <span class="nx">offset</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8174'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtScrollbars</span><span class="p">.</span><span class="nx">horizontal</span><span class="p">.</span><span class="nx">scrollTo</span><span class="p">(</span><span class="nx">newOffset</span><span class="p">);</span></div><div class='line' id='LC8175'> <span class="p">}</span></div><div class='line' id='LC8176'> <span class="k">return</span> <span class="nx">instance</span><span class="p">;</span></div><div class='line' id='LC8177'><span class="p">};</span></div><div class='line' id='LC8178'><br/></div><div class='line' id='LC8179'><span class="nx">WalkontableScroll</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">scrollLogicVertical</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">delta</span><span class="p">,</span> <span class="nx">offset</span><span class="p">,</span> <span class="nx">total</span><span class="p">,</span> <span class="nx">fixedCount</span><span class="p">,</span> <span class="nx">maxSize</span><span class="p">,</span> <span class="nx">cellSizeFn</span><span class="p">,</span> <span class="nx">setReverseRenderFn</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8180'> <span class="kd">var</span> <span class="nx">newOffset</span> <span class="o">=</span> <span class="nx">offset</span> <span class="o">+</span> <span class="nx">delta</span><span class="p">;</span></div><div class='line' id='LC8181'><br/></div><div class='line' id='LC8182'> <span class="k">if</span> <span class="p">(</span><span class="nx">newOffset</span> <span class="o">>=</span> <span class="nx">total</span> <span class="o">-</span> <span class="nx">fixedCount</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8183'> <span class="nx">newOffset</span> <span class="o">=</span> <span class="nx">total</span> <span class="o">-</span> <span class="nx">fixedCount</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC8184'> <span class="nx">setReverseRenderFn</span><span class="p">(</span><span class="kc">true</span><span class="p">);</span></div><div class='line' id='LC8185'> <span class="p">}</span></div><div class='line' id='LC8186'><br/></div><div class='line' id='LC8187'> <span class="k">if</span> <span class="p">(</span><span class="nx">newOffset</span> <span class="o"><</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8188'> <span class="nx">newOffset</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC8189'> <span class="p">}</span></div><div class='line' id='LC8190'><br/></div><div class='line' id='LC8191'> <span class="k">return</span> <span class="nx">newOffset</span><span class="p">;</span></div><div class='line' id='LC8192'><span class="p">};</span></div><div class='line' id='LC8193'><br/></div><div class='line' id='LC8194'><span class="nx">WalkontableScroll</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">scrollLogicHorizontal</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">delta</span><span class="p">,</span> <span class="nx">offset</span><span class="p">,</span> <span class="nx">total</span><span class="p">,</span> <span class="nx">fixedCount</span><span class="p">,</span> <span class="nx">maxSize</span><span class="p">,</span> <span class="nx">cellSizeFn</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8195'> <span class="kd">var</span> <span class="nx">newOffset</span> <span class="o">=</span> <span class="nx">offset</span> <span class="o">+</span> <span class="nx">delta</span></div><div class='line' id='LC8196'> <span class="p">,</span> <span class="nx">sum</span> <span class="o">=</span> <span class="mi">0</span></div><div class='line' id='LC8197'> <span class="p">,</span> <span class="nx">col</span><span class="p">;</span></div><div class='line' id='LC8198'><br/></div><div class='line' id='LC8199'> <span class="k">if</span> <span class="p">(</span><span class="nx">newOffset</span> <span class="o">></span> <span class="nx">fixedCount</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8200'> <span class="k">if</span> <span class="p">(</span><span class="nx">newOffset</span> <span class="o">>=</span> <span class="nx">total</span> <span class="o">-</span> <span class="nx">fixedCount</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8201'> <span class="nx">newOffset</span> <span class="o">=</span> <span class="nx">total</span> <span class="o">-</span> <span class="nx">fixedCount</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC8202'> <span class="p">}</span></div><div class='line' id='LC8203'><br/></div><div class='line' id='LC8204'> <span class="nx">col</span> <span class="o">=</span> <span class="nx">newOffset</span><span class="p">;</span></div><div class='line' id='LC8205'> <span class="k">while</span> <span class="p">(</span><span class="nx">sum</span> <span class="o"><</span> <span class="nx">maxSize</span> <span class="o">&&</span> <span class="nx">col</span> <span class="o"><</span> <span class="nx">total</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8206'> <span class="nx">sum</span> <span class="o">+=</span> <span class="nx">cellSizeFn</span><span class="p">(</span><span class="nx">col</span><span class="p">);</span></div><div class='line' id='LC8207'> <span class="nx">col</span><span class="o">++</span><span class="p">;</span></div><div class='line' id='LC8208'> <span class="p">}</span></div><div class='line' id='LC8209'><br/></div><div class='line' id='LC8210'> <span class="k">if</span> <span class="p">(</span><span class="nx">sum</span> <span class="o"><</span> <span class="nx">maxSize</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8211'> <span class="k">while</span> <span class="p">(</span><span class="nx">newOffset</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8212'> <span class="c1">//if sum still less than available width, we cannot scroll that far (must move offset to the left)</span></div><div class='line' id='LC8213'> <span class="nx">sum</span> <span class="o">+=</span> <span class="nx">cellSizeFn</span><span class="p">(</span><span class="nx">newOffset</span> <span class="o">-</span> <span class="mi">1</span><span class="p">);</span></div><div class='line' id='LC8214'> <span class="k">if</span> <span class="p">(</span><span class="nx">sum</span> <span class="o"><</span> <span class="nx">maxSize</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8215'> <span class="nx">newOffset</span><span class="o">--</span><span class="p">;</span></div><div class='line' id='LC8216'> <span class="p">}</span></div><div class='line' id='LC8217'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC8218'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC8219'> <span class="p">}</span></div><div class='line' id='LC8220'> <span class="p">}</span></div><div class='line' id='LC8221'> <span class="p">}</span></div><div class='line' id='LC8222'> <span class="p">}</span></div><div class='line' id='LC8223'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">newOffset</span> <span class="o"><</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8224'> <span class="nx">newOffset</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC8225'> <span class="p">}</span></div><div class='line' id='LC8226'><br/></div><div class='line' id='LC8227'> <span class="k">return</span> <span class="nx">newOffset</span><span class="p">;</span></div><div class='line' id='LC8228'><span class="p">};</span></div><div class='line' id='LC8229'><br/></div><div class='line' id='LC8230'><span class="cm">/**</span></div><div class='line' id='LC8231'><span class="cm"> * Scrolls viewport to a cell by minimum number of cells</span></div><div class='line' id='LC8232'><span class="cm"> */</span></div><div class='line' id='LC8233'><span class="nx">WalkontableScroll</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">scrollViewport</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">coords</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8234'> <span class="kd">var</span> <span class="nx">offsetRow</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'offsetRow'</span><span class="p">)</span></div><div class='line' id='LC8235'> <span class="p">,</span> <span class="nx">offsetColumn</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'offsetColumn'</span><span class="p">)</span></div><div class='line' id='LC8236'> <span class="p">,</span> <span class="nx">lastVisibleRow</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">getLastVisibleRow</span><span class="p">()</span></div><div class='line' id='LC8237'> <span class="p">,</span> <span class="nx">totalRows</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'totalRows'</span><span class="p">)</span></div><div class='line' id='LC8238'> <span class="p">,</span> <span class="nx">totalColumns</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'totalColumns'</span><span class="p">)</span></div><div class='line' id='LC8239'> <span class="p">,</span> <span class="nx">fixedRowsTop</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'fixedRowsTop'</span><span class="p">)</span></div><div class='line' id='LC8240'> <span class="p">,</span> <span class="nx">fixedColumnsLeft</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'fixedColumnsLeft'</span><span class="p">);</span></div><div class='line' id='LC8241'><br/></div><div class='line' id='LC8242'> <span class="k">if</span> <span class="p">(</span><span class="nx">coords</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o"><</span> <span class="mi">0</span> <span class="o">||</span> <span class="nx">coords</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">></span> <span class="nx">totalRows</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8243'> <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s1">'row '</span> <span class="o">+</span> <span class="nx">coords</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="s1">' does not exist'</span><span class="p">);</span></div><div class='line' id='LC8244'> <span class="p">}</span></div><div class='line' id='LC8245'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">coords</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o"><</span> <span class="mi">0</span> <span class="o">||</span> <span class="nx">coords</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">></span> <span class="nx">totalColumns</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8246'> <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s1">'column '</span> <span class="o">+</span> <span class="nx">coords</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">+</span> <span class="s1">' does not exist'</span><span class="p">);</span></div><div class='line' id='LC8247'> <span class="p">}</span></div><div class='line' id='LC8248'><br/></div><div class='line' id='LC8249'> <span class="k">if</span> <span class="p">(</span><span class="nx">coords</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">></span> <span class="nx">lastVisibleRow</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8250'><span class="c1">// this.scrollVertical(coords[0] - lastVisibleRow + 1);</span></div><div class='line' id='LC8251'> <span class="k">this</span><span class="p">.</span><span class="nx">scrollVertical</span><span class="p">(</span><span class="nx">coords</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">-</span> <span class="nx">fixedRowsTop</span> <span class="o">-</span> <span class="nx">offsetRow</span><span class="p">);</span></div><div class='line' id='LC8252'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">verticalRenderReverse</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC8253'> <span class="p">}</span></div><div class='line' id='LC8254'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">coords</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">===</span> <span class="nx">lastVisibleRow</span> <span class="o">&&</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">rowStrategy</span><span class="p">.</span><span class="nx">isLastIncomplete</span><span class="p">())</span> <span class="p">{</span></div><div class='line' id='LC8255'><span class="c1">// this.scrollVertical(coords[0] - lastVisibleRow + 1);</span></div><div class='line' id='LC8256'> <span class="k">this</span><span class="p">.</span><span class="nx">scrollVertical</span><span class="p">(</span><span class="nx">coords</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">-</span> <span class="nx">fixedRowsTop</span> <span class="o">-</span> <span class="nx">offsetRow</span><span class="p">);</span></div><div class='line' id='LC8257'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">verticalRenderReverse</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC8258'> <span class="p">}</span></div><div class='line' id='LC8259'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">coords</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">-</span> <span class="nx">fixedRowsTop</span> <span class="o"><</span> <span class="nx">offsetRow</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8260'> <span class="k">this</span><span class="p">.</span><span class="nx">scrollVertical</span><span class="p">(</span><span class="nx">coords</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">-</span> <span class="nx">fixedRowsTop</span> <span class="o">-</span> <span class="nx">offsetRow</span><span class="p">);</span></div><div class='line' id='LC8261'> <span class="p">}</span></div><div class='line' id='LC8262'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC8263'> <span class="k">this</span><span class="p">.</span><span class="nx">scrollVertical</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span> <span class="c1">//Craig's issue: remove row from the last scroll page should scroll viewport a row up if needed</span></div><div class='line' id='LC8264'> <span class="p">}</span></div><div class='line' id='LC8265'><br/></div><div class='line' id='LC8266'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">isColumnBeforeViewport</span><span class="p">(</span><span class="nx">coords</span><span class="p">[</span><span class="mi">1</span><span class="p">]))</span> <span class="p">{</span></div><div class='line' id='LC8267'> <span class="c1">//scroll left</span></div><div class='line' id='LC8268'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtScrollbars</span><span class="p">.</span><span class="nx">horizontal</span><span class="p">.</span><span class="nx">scrollTo</span><span class="p">(</span><span class="nx">coords</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="nx">fixedColumnsLeft</span><span class="p">);</span></div><div class='line' id='LC8269'> <span class="p">}</span></div><div class='line' id='LC8270'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">isColumnAfterViewport</span><span class="p">(</span><span class="nx">coords</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="o">||</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">getLastVisibleColumn</span><span class="p">()</span> <span class="o">===</span> <span class="nx">coords</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">&&</span> <span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">isLastColumnFullyVisible</span><span class="p">()))</span> <span class="p">{</span></div><div class='line' id='LC8271'> <span class="c1">//scroll right</span></div><div class='line' id='LC8272'> <span class="kd">var</span> <span class="nx">sum</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC8273'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">fixedColumnsLeft</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8274'> <span class="nx">sum</span> <span class="o">+=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'columnWidth'</span><span class="p">,</span> <span class="nx">i</span><span class="p">);</span></div><div class='line' id='LC8275'> <span class="p">}</span></div><div class='line' id='LC8276'> <span class="kd">var</span> <span class="nx">scrollTo</span> <span class="o">=</span> <span class="nx">coords</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span></div><div class='line' id='LC8277'> <span class="nx">sum</span> <span class="o">+=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'columnWidth'</span><span class="p">,</span> <span class="nx">scrollTo</span><span class="p">);</span></div><div class='line' id='LC8278'> <span class="kd">var</span> <span class="nx">available</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtViewport</span><span class="p">.</span><span class="nx">getViewportWidth</span><span class="p">();</span></div><div class='line' id='LC8279'> <span class="k">if</span> <span class="p">(</span><span class="nx">sum</span> <span class="o"><</span> <span class="nx">available</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8280'> <span class="kd">var</span> <span class="nx">next</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'columnWidth'</span><span class="p">,</span> <span class="nx">scrollTo</span> <span class="o">-</span> <span class="mi">1</span><span class="p">);</span></div><div class='line' id='LC8281'> <span class="k">while</span> <span class="p">(</span><span class="nx">sum</span> <span class="o">+</span> <span class="nx">next</span> <span class="o"><</span> <span class="nx">available</span> <span class="o">&&</span> <span class="nx">scrollTo</span> <span class="o">>=</span> <span class="nx">fixedColumnsLeft</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8282'> <span class="nx">scrollTo</span><span class="o">--</span><span class="p">;</span></div><div class='line' id='LC8283'> <span class="nx">sum</span> <span class="o">+=</span> <span class="nx">next</span><span class="p">;</span></div><div class='line' id='LC8284'> <span class="p">}</span></div><div class='line' id='LC8285'> <span class="p">}</span></div><div class='line' id='LC8286'><br/></div><div class='line' id='LC8287'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtScrollbars</span><span class="p">.</span><span class="nx">horizontal</span><span class="p">.</span><span class="nx">scrollTo</span><span class="p">(</span><span class="nx">scrollTo</span> <span class="o">-</span> <span class="nx">fixedColumnsLeft</span><span class="p">);</span></div><div class='line' id='LC8288'> <span class="p">}</span></div><div class='line' id='LC8289'> <span class="cm">/*else {</span></div><div class='line' id='LC8290'><span class="cm"> //no scroll</span></div><div class='line' id='LC8291'><span class="cm"> }*/</span></div><div class='line' id='LC8292'><br/></div><div class='line' id='LC8293'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">;</span></div><div class='line' id='LC8294'><span class="p">};</span></div><div class='line' id='LC8295'><br/></div><div class='line' id='LC8296'><span class="kd">function</span> <span class="nx">WalkontableScrollbar</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8297'><span class="p">}</span></div><div class='line' id='LC8298'><br/></div><div class='line' id='LC8299'><span class="nx">WalkontableScrollbar</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">init</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8300'> <span class="kd">var</span> <span class="nx">that</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC8301'><br/></div><div class='line' id='LC8302'> <span class="c1">//reference to instance</span></div><div class='line' id='LC8303'> <span class="k">this</span><span class="p">.</span><span class="nx">$table</span> <span class="o">=</span> <span class="nx">$</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">TABLE</span><span class="p">);</span></div><div class='line' id='LC8304'><br/></div><div class='line' id='LC8305'> <span class="c1">//create elements</span></div><div class='line' id='LC8306'> <span class="k">this</span><span class="p">.</span><span class="nx">slider</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'DIV'</span><span class="p">);</span></div><div class='line' id='LC8307'> <span class="k">this</span><span class="p">.</span><span class="nx">sliderStyle</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">slider</span><span class="p">.</span><span class="nx">style</span><span class="p">;</span></div><div class='line' id='LC8308'> <span class="k">this</span><span class="p">.</span><span class="nx">sliderStyle</span><span class="p">.</span><span class="nx">position</span> <span class="o">=</span> <span class="s1">'absolute'</span><span class="p">;</span></div><div class='line' id='LC8309'> <span class="k">this</span><span class="p">.</span><span class="nx">sliderStyle</span><span class="p">.</span><span class="nx">top</span> <span class="o">=</span> <span class="s1">'0'</span><span class="p">;</span></div><div class='line' id='LC8310'> <span class="k">this</span><span class="p">.</span><span class="nx">sliderStyle</span><span class="p">.</span><span class="nx">left</span> <span class="o">=</span> <span class="s1">'0'</span><span class="p">;</span></div><div class='line' id='LC8311'> <span class="k">this</span><span class="p">.</span><span class="nx">sliderStyle</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s1">'none'</span><span class="p">;</span></div><div class='line' id='LC8312'> <span class="k">this</span><span class="p">.</span><span class="nx">slider</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="s1">'dragdealer '</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">type</span><span class="p">;</span></div><div class='line' id='LC8313'><br/></div><div class='line' id='LC8314'> <span class="k">this</span><span class="p">.</span><span class="nx">handle</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'DIV'</span><span class="p">);</span></div><div class='line' id='LC8315'> <span class="k">this</span><span class="p">.</span><span class="nx">handleStyle</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">handle</span><span class="p">.</span><span class="nx">style</span><span class="p">;</span></div><div class='line' id='LC8316'> <span class="k">this</span><span class="p">.</span><span class="nx">handle</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="s1">'handle'</span><span class="p">;</span></div><div class='line' id='LC8317'><br/></div><div class='line' id='LC8318'> <span class="k">this</span><span class="p">.</span><span class="nx">slider</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">handle</span><span class="p">);</span></div><div class='line' id='LC8319'> <span class="k">this</span><span class="p">.</span><span class="nx">container</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">parent</span><span class="p">;</span></div><div class='line' id='LC8320'> <span class="k">this</span><span class="p">.</span><span class="nx">container</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">slider</span><span class="p">);</span></div><div class='line' id='LC8321'><br/></div><div class='line' id='LC8322'> <span class="kd">var</span> <span class="nx">firstRun</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC8323'> <span class="k">this</span><span class="p">.</span><span class="nx">dragTimeout</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span></div><div class='line' id='LC8324'> <span class="kd">var</span> <span class="nx">dragDelta</span><span class="p">;</span></div><div class='line' id='LC8325'> <span class="kd">var</span> <span class="nx">dragRender</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8326'> <span class="nx">that</span><span class="p">.</span><span class="nx">onScroll</span><span class="p">(</span><span class="nx">dragDelta</span><span class="p">);</span></div><div class='line' id='LC8327'> <span class="p">};</span></div><div class='line' id='LC8328'><br/></div><div class='line' id='LC8329'> <span class="k">this</span><span class="p">.</span><span class="nx">dragdealer</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Dragdealer</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">slider</span><span class="p">,</span> <span class="p">{</span></div><div class='line' id='LC8330'> <span class="nx">vertical</span><span class="o">:</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">type</span> <span class="o">===</span> <span class="s1">'vertical'</span><span class="p">),</span></div><div class='line' id='LC8331'> <span class="nx">horizontal</span><span class="o">:</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">type</span> <span class="o">===</span> <span class="s1">'horizontal'</span><span class="p">),</span></div><div class='line' id='LC8332'> <span class="nx">slide</span><span class="o">:</span> <span class="kc">false</span><span class="p">,</span></div><div class='line' id='LC8333'> <span class="nx">speed</span><span class="o">:</span> <span class="mi">100</span><span class="p">,</span></div><div class='line' id='LC8334'> <span class="nx">animationCallback</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">x</span><span class="p">,</span> <span class="nx">y</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8335'> <span class="k">if</span> <span class="p">(</span><span class="nx">firstRun</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8336'> <span class="nx">firstRun</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC8337'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC8338'> <span class="p">}</span></div><div class='line' id='LC8339'> <span class="nx">that</span><span class="p">.</span><span class="nx">skipRefresh</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC8340'> <span class="nx">dragDelta</span> <span class="o">=</span> <span class="nx">that</span><span class="p">.</span><span class="nx">type</span> <span class="o">===</span> <span class="s1">'vertical'</span> <span class="o">?</span> <span class="nx">y</span> <span class="o">:</span> <span class="nx">x</span><span class="p">;</span></div><div class='line' id='LC8341'> <span class="k">if</span> <span class="p">(</span><span class="nx">that</span><span class="p">.</span><span class="nx">dragTimeout</span> <span class="o">===</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8342'> <span class="nx">that</span><span class="p">.</span><span class="nx">dragTimeout</span> <span class="o">=</span> <span class="nx">setInterval</span><span class="p">(</span><span class="nx">dragRender</span><span class="p">,</span> <span class="mi">100</span><span class="p">);</span></div><div class='line' id='LC8343'> <span class="nx">dragRender</span><span class="p">();</span></div><div class='line' id='LC8344'> <span class="p">}</span></div><div class='line' id='LC8345'> <span class="p">},</span></div><div class='line' id='LC8346'> <span class="nx">callback</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">x</span><span class="p">,</span> <span class="nx">y</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8347'> <span class="nx">that</span><span class="p">.</span><span class="nx">skipRefresh</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC8348'> <span class="nx">clearInterval</span><span class="p">(</span><span class="nx">that</span><span class="p">.</span><span class="nx">dragTimeout</span><span class="p">);</span></div><div class='line' id='LC8349'> <span class="nx">that</span><span class="p">.</span><span class="nx">dragTimeout</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span></div><div class='line' id='LC8350'> <span class="nx">dragDelta</span> <span class="o">=</span> <span class="nx">that</span><span class="p">.</span><span class="nx">type</span> <span class="o">===</span> <span class="s1">'vertical'</span> <span class="o">?</span> <span class="nx">y</span> <span class="o">:</span> <span class="nx">x</span><span class="p">;</span></div><div class='line' id='LC8351'> <span class="nx">that</span><span class="p">.</span><span class="nx">onScroll</span><span class="p">(</span><span class="nx">dragDelta</span><span class="p">);</span></div><div class='line' id='LC8352'> <span class="p">}</span></div><div class='line' id='LC8353'> <span class="p">});</span></div><div class='line' id='LC8354'> <span class="k">this</span><span class="p">.</span><span class="nx">skipRefresh</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC8355'><span class="p">};</span></div><div class='line' id='LC8356'><br/></div><div class='line' id='LC8357'><span class="nx">WalkontableScrollbar</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">onScroll</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">delta</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8358'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">drawn</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8359'> <span class="k">this</span><span class="p">.</span><span class="nx">readSettings</span><span class="p">();</span></div><div class='line' id='LC8360'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">total</span> <span class="o">></span> <span class="k">this</span><span class="p">.</span><span class="nx">visibleCount</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8361'> <span class="kd">var</span> <span class="nx">newOffset</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">round</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">handlePosition</span> <span class="o">*</span> <span class="k">this</span><span class="p">.</span><span class="nx">total</span> <span class="o">/</span> <span class="k">this</span><span class="p">.</span><span class="nx">sliderSize</span><span class="p">);</span></div><div class='line' id='LC8362'><br/></div><div class='line' id='LC8363'> <span class="k">if</span> <span class="p">(</span><span class="nx">delta</span> <span class="o">===</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8364'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">type</span> <span class="o">===</span> <span class="s1">'vertical'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8365'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">scrollVertical</span><span class="p">(</span><span class="kc">Infinity</span><span class="p">).</span><span class="nx">draw</span><span class="p">();</span></div><div class='line' id='LC8366'> <span class="p">}</span></div><div class='line' id='LC8367'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC8368'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">scrollHorizontal</span><span class="p">(</span><span class="kc">Infinity</span><span class="p">).</span><span class="nx">draw</span><span class="p">();</span></div><div class='line' id='LC8369'> <span class="p">}</span></div><div class='line' id='LC8370'> <span class="p">}</span></div><div class='line' id='LC8371'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">newOffset</span> <span class="o">!==</span> <span class="k">this</span><span class="p">.</span><span class="nx">offset</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//is new offset different than old offset</span></div><div class='line' id='LC8372'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">type</span> <span class="o">===</span> <span class="s1">'vertical'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8373'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">scrollVertical</span><span class="p">(</span><span class="nx">newOffset</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">offset</span><span class="p">).</span><span class="nx">draw</span><span class="p">();</span></div><div class='line' id='LC8374'> <span class="p">}</span></div><div class='line' id='LC8375'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC8376'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">scrollHorizontal</span><span class="p">(</span><span class="nx">newOffset</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">offset</span><span class="p">).</span><span class="nx">draw</span><span class="p">();</span></div><div class='line' id='LC8377'> <span class="p">}</span></div><div class='line' id='LC8378'> <span class="p">}</span></div><div class='line' id='LC8379'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC8380'> <span class="k">this</span><span class="p">.</span><span class="nx">refresh</span><span class="p">();</span></div><div class='line' id='LC8381'> <span class="p">}</span></div><div class='line' id='LC8382'> <span class="p">}</span></div><div class='line' id='LC8383'> <span class="p">}</span></div><div class='line' id='LC8384'><span class="p">};</span></div><div class='line' id='LC8385'><br/></div><div class='line' id='LC8386'><span class="cm">/**</span></div><div class='line' id='LC8387'><span class="cm"> * Returns what part of the scroller should the handle take</span></div><div class='line' id='LC8388'><span class="cm"> * @param viewportCount {Number} number of visible rows or columns</span></div><div class='line' id='LC8389'><span class="cm"> * @param totalCount {Number} total number of rows or columns</span></div><div class='line' id='LC8390'><span class="cm"> * @return {Number} 0..1</span></div><div class='line' id='LC8391'><span class="cm"> */</span></div><div class='line' id='LC8392'><span class="nx">WalkontableScrollbar</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">getHandleSizeRatio</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">viewportCount</span><span class="p">,</span> <span class="nx">totalCount</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8393'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">totalCount</span> <span class="o">||</span> <span class="nx">viewportCount</span> <span class="o">></span> <span class="nx">totalCount</span> <span class="o">||</span> <span class="nx">viewportCount</span> <span class="o">==</span> <span class="nx">totalCount</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8394'> <span class="k">return</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC8395'> <span class="p">}</span></div><div class='line' id='LC8396'> <span class="k">return</span> <span class="mi">1</span> <span class="o">/</span> <span class="nx">totalCount</span><span class="p">;</span></div><div class='line' id='LC8397'><span class="p">};</span></div><div class='line' id='LC8398'><br/></div><div class='line' id='LC8399'><span class="nx">WalkontableScrollbar</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">prepare</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8400'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">skipRefresh</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8401'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC8402'> <span class="p">}</span></div><div class='line' id='LC8403'> <span class="kd">var</span> <span class="nx">ratio</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getHandleSizeRatio</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">visibleCount</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">total</span><span class="p">);</span></div><div class='line' id='LC8404'> <span class="k">if</span> <span class="p">(((</span><span class="nx">ratio</span> <span class="o">===</span> <span class="mi">1</span> <span class="o">||</span> <span class="nb">isNaN</span><span class="p">(</span><span class="nx">ratio</span><span class="p">))</span> <span class="o">&&</span> <span class="k">this</span><span class="p">.</span><span class="nx">scrollMode</span> <span class="o">===</span> <span class="s1">'auto'</span><span class="p">)</span> <span class="o">||</span> <span class="k">this</span><span class="p">.</span><span class="nx">scrollMode</span> <span class="o">===</span> <span class="s1">'none'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8405'> <span class="c1">//isNaN is needed because ratio equals NaN when totalRows/totalColumns equals 0</span></div><div class='line' id='LC8406'> <span class="k">this</span><span class="p">.</span><span class="nx">visible</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC8407'> <span class="p">}</span></div><div class='line' id='LC8408'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC8409'> <span class="k">this</span><span class="p">.</span><span class="nx">visible</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC8410'> <span class="p">}</span></div><div class='line' id='LC8411'><span class="p">};</span></div><div class='line' id='LC8412'><br/></div><div class='line' id='LC8413'><span class="nx">WalkontableScrollbar</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">refresh</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8414'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">skipRefresh</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8415'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC8416'> <span class="p">}</span></div><div class='line' id='LC8417'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">visible</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8418'> <span class="k">this</span><span class="p">.</span><span class="nx">sliderStyle</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s1">'none'</span><span class="p">;</span></div><div class='line' id='LC8419'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC8420'> <span class="p">}</span></div><div class='line' id='LC8421'><br/></div><div class='line' id='LC8422'> <span class="kd">var</span> <span class="nx">ratio</span></div><div class='line' id='LC8423'> <span class="p">,</span> <span class="nx">sliderSize</span></div><div class='line' id='LC8424'> <span class="p">,</span> <span class="nx">handleSize</span></div><div class='line' id='LC8425'> <span class="p">,</span> <span class="nx">handlePosition</span></div><div class='line' id='LC8426'> <span class="p">,</span> <span class="nx">visibleCount</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">visibleCount</span></div><div class='line' id='LC8427'> <span class="p">,</span> <span class="nx">tableWidth</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtViewport</span><span class="p">.</span><span class="nx">getWorkspaceWidth</span><span class="p">()</span></div><div class='line' id='LC8428'> <span class="p">,</span> <span class="nx">tableHeight</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtViewport</span><span class="p">.</span><span class="nx">getWorkspaceHeight</span><span class="p">();</span></div><div class='line' id='LC8429'><br/></div><div class='line' id='LC8430'> <span class="k">if</span> <span class="p">(</span><span class="nx">tableWidth</span> <span class="o">===</span> <span class="kc">Infinity</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8431'> <span class="nx">tableWidth</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtViewport</span><span class="p">.</span><span class="nx">getWorkspaceActualWidth</span><span class="p">();</span></div><div class='line' id='LC8432'> <span class="p">}</span></div><div class='line' id='LC8433'><br/></div><div class='line' id='LC8434'> <span class="k">if</span> <span class="p">(</span><span class="nx">tableHeight</span> <span class="o">===</span> <span class="kc">Infinity</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8435'> <span class="nx">tableHeight</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtViewport</span><span class="p">.</span><span class="nx">getWorkspaceActualHeight</span><span class="p">();</span></div><div class='line' id='LC8436'> <span class="p">}</span></div><div class='line' id='LC8437'><br/></div><div class='line' id='LC8438'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">type</span> <span class="o">===</span> <span class="s1">'vertical'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8439'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">rowStrategy</span><span class="p">.</span><span class="nx">isLastIncomplete</span><span class="p">())</span> <span class="p">{</span></div><div class='line' id='LC8440'> <span class="nx">visibleCount</span><span class="o">--</span><span class="p">;</span></div><div class='line' id='LC8441'> <span class="p">}</span></div><div class='line' id='LC8442'><br/></div><div class='line' id='LC8443'> <span class="nx">sliderSize</span> <span class="o">=</span> <span class="nx">tableHeight</span> <span class="o">-</span> <span class="mi">2</span><span class="p">;</span> <span class="c1">//2 is sliders border-width</span></div><div class='line' id='LC8444'><br/></div><div class='line' id='LC8445'> <span class="k">this</span><span class="p">.</span><span class="nx">sliderStyle</span><span class="p">.</span><span class="nx">top</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">offset</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">$table</span><span class="p">[</span><span class="mi">0</span><span class="p">]).</span><span class="nx">top</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">offset</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">container</span><span class="p">).</span><span class="nx">top</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC8446'> <span class="k">this</span><span class="p">.</span><span class="nx">sliderStyle</span><span class="p">.</span><span class="nx">left</span> <span class="o">=</span> <span class="nx">tableWidth</span> <span class="o">-</span> <span class="mi">1</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span> <span class="c1">//1 is sliders border-width</span></div><div class='line' id='LC8447'> <span class="k">this</span><span class="p">.</span><span class="nx">sliderStyle</span><span class="p">.</span><span class="nx">height</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="nx">sliderSize</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC8448'> <span class="p">}</span></div><div class='line' id='LC8449'> <span class="k">else</span> <span class="p">{</span> <span class="c1">//horizontal</span></div><div class='line' id='LC8450'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">columnStrategy</span><span class="p">.</span><span class="nx">isLastIncomplete</span><span class="p">())</span> <span class="p">{</span></div><div class='line' id='LC8451'> <span class="nx">visibleCount</span><span class="o">--</span><span class="p">;</span></div><div class='line' id='LC8452'> <span class="p">}</span></div><div class='line' id='LC8453'><br/></div><div class='line' id='LC8454'> <span class="nx">sliderSize</span> <span class="o">=</span> <span class="nx">tableWidth</span> <span class="o">-</span> <span class="mi">2</span><span class="p">;</span> <span class="c1">//2 is sliders border-width</span></div><div class='line' id='LC8455'><br/></div><div class='line' id='LC8456'> <span class="k">this</span><span class="p">.</span><span class="nx">sliderStyle</span><span class="p">.</span><span class="nx">left</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">offset</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">$table</span><span class="p">[</span><span class="mi">0</span><span class="p">]).</span><span class="nx">left</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">offset</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">container</span><span class="p">).</span><span class="nx">left</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC8457'> <span class="k">this</span><span class="p">.</span><span class="nx">sliderStyle</span><span class="p">.</span><span class="nx">top</span> <span class="o">=</span> <span class="nx">tableHeight</span> <span class="o">-</span> <span class="mi">1</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span> <span class="c1">//1 is sliders border-width</span></div><div class='line' id='LC8458'> <span class="k">this</span><span class="p">.</span><span class="nx">sliderStyle</span><span class="p">.</span><span class="nx">width</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="nx">sliderSize</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC8459'> <span class="p">}</span></div><div class='line' id='LC8460'><br/></div><div class='line' id='LC8461'> <span class="nx">ratio</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getHandleSizeRatio</span><span class="p">(</span><span class="nx">visibleCount</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">total</span><span class="p">);</span></div><div class='line' id='LC8462'> <span class="nx">handleSize</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">round</span><span class="p">(</span><span class="nx">sliderSize</span> <span class="o">*</span> <span class="nx">ratio</span><span class="p">);</span></div><div class='line' id='LC8463'> <span class="k">if</span> <span class="p">(</span><span class="nx">handleSize</span> <span class="o"><</span> <span class="mi">10</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8464'> <span class="nx">handleSize</span> <span class="o">=</span> <span class="mi">15</span><span class="p">;</span></div><div class='line' id='LC8465'> <span class="p">}</span></div><div class='line' id='LC8466'><br/></div><div class='line' id='LC8467'> <span class="nx">handlePosition</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">floor</span><span class="p">(</span><span class="nx">sliderSize</span> <span class="o">*</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">offset</span> <span class="o">/</span> <span class="k">this</span><span class="p">.</span><span class="nx">total</span><span class="p">));</span></div><div class='line' id='LC8468'> <span class="k">if</span> <span class="p">(</span><span class="nx">handleSize</span> <span class="o">+</span> <span class="nx">handlePosition</span> <span class="o">></span> <span class="nx">sliderSize</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8469'> <span class="nx">handlePosition</span> <span class="o">=</span> <span class="nx">sliderSize</span> <span class="o">-</span> <span class="nx">handleSize</span><span class="p">;</span></div><div class='line' id='LC8470'> <span class="p">}</span></div><div class='line' id='LC8471'><br/></div><div class='line' id='LC8472'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">type</span> <span class="o">===</span> <span class="s1">'vertical'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8473'> <span class="k">this</span><span class="p">.</span><span class="nx">handleStyle</span><span class="p">.</span><span class="nx">height</span> <span class="o">=</span> <span class="nx">handleSize</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC8474'> <span class="k">this</span><span class="p">.</span><span class="nx">handleStyle</span><span class="p">.</span><span class="nx">top</span> <span class="o">=</span> <span class="nx">handlePosition</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC8475'><br/></div><div class='line' id='LC8476'> <span class="p">}</span></div><div class='line' id='LC8477'> <span class="k">else</span> <span class="p">{</span> <span class="c1">//horizontal</span></div><div class='line' id='LC8478'> <span class="k">this</span><span class="p">.</span><span class="nx">handleStyle</span><span class="p">.</span><span class="nx">width</span> <span class="o">=</span> <span class="nx">handleSize</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC8479'> <span class="k">this</span><span class="p">.</span><span class="nx">handleStyle</span><span class="p">.</span><span class="nx">left</span> <span class="o">=</span> <span class="nx">handlePosition</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC8480'> <span class="p">}</span></div><div class='line' id='LC8481'><br/></div><div class='line' id='LC8482'> <span class="k">this</span><span class="p">.</span><span class="nx">sliderStyle</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s1">'block'</span><span class="p">;</span></div><div class='line' id='LC8483'><span class="p">};</span></div><div class='line' id='LC8484'><br/></div><div class='line' id='LC8485'><span class="nx">WalkontableScrollbar</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">destroy</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8486'> <span class="nx">clearInterval</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">dragdealer</span><span class="p">.</span><span class="nx">interval</span><span class="p">);</span></div><div class='line' id='LC8487'><span class="p">};</span></div><div class='line' id='LC8488'><br/></div><div class='line' id='LC8489'><span class="c1">///</span></div><div class='line' id='LC8490'><br/></div><div class='line' id='LC8491'><span class="kd">var</span> <span class="nx">WalkontableVerticalScrollbar</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">instance</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8492'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">;</span></div><div class='line' id='LC8493'> <span class="k">this</span><span class="p">.</span><span class="nx">type</span> <span class="o">=</span> <span class="s1">'vertical'</span><span class="p">;</span></div><div class='line' id='LC8494'> <span class="k">this</span><span class="p">.</span><span class="nx">init</span><span class="p">();</span></div><div class='line' id='LC8495'><span class="p">};</span></div><div class='line' id='LC8496'><br/></div><div class='line' id='LC8497'><span class="nx">WalkontableVerticalScrollbar</span><span class="p">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WalkontableScrollbar</span><span class="p">();</span></div><div class='line' id='LC8498'><br/></div><div class='line' id='LC8499'><span class="nx">WalkontableVerticalScrollbar</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">scrollTo</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">cell</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8500'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">update</span><span class="p">(</span><span class="s1">'offsetRow'</span><span class="p">,</span> <span class="nx">cell</span><span class="p">);</span></div><div class='line' id='LC8501'><span class="p">};</span></div><div class='line' id='LC8502'><br/></div><div class='line' id='LC8503'><span class="nx">WalkontableVerticalScrollbar</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">readSettings</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8504'> <span class="k">this</span><span class="p">.</span><span class="nx">scrollMode</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'scrollV'</span><span class="p">);</span></div><div class='line' id='LC8505'> <span class="k">this</span><span class="p">.</span><span class="nx">offset</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'offsetRow'</span><span class="p">);</span></div><div class='line' id='LC8506'> <span class="k">this</span><span class="p">.</span><span class="nx">total</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'totalRows'</span><span class="p">);</span></div><div class='line' id='LC8507'> <span class="k">this</span><span class="p">.</span><span class="nx">visibleCount</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">rowStrategy</span><span class="p">.</span><span class="nx">countVisible</span><span class="p">();</span></div><div class='line' id='LC8508'> <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">visibleCount</span> <span class="o">></span> <span class="mi">1</span> <span class="o">&&</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">rowStrategy</span><span class="p">.</span><span class="nx">isLastIncomplete</span><span class="p">())</span> <span class="p">{</span></div><div class='line' id='LC8509'> <span class="k">this</span><span class="p">.</span><span class="nx">visibleCount</span><span class="o">--</span><span class="p">;</span></div><div class='line' id='LC8510'> <span class="p">}</span></div><div class='line' id='LC8511'> <span class="k">this</span><span class="p">.</span><span class="nx">handlePosition</span> <span class="o">=</span> <span class="nb">parseInt</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">handleStyle</span><span class="p">.</span><span class="nx">top</span><span class="p">,</span> <span class="mi">10</span><span class="p">);</span></div><div class='line' id='LC8512'> <span class="k">this</span><span class="p">.</span><span class="nx">sliderSize</span> <span class="o">=</span> <span class="nb">parseInt</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">sliderStyle</span><span class="p">.</span><span class="nx">height</span><span class="p">,</span> <span class="mi">10</span><span class="p">);</span></div><div class='line' id='LC8513'> <span class="k">this</span><span class="p">.</span><span class="nx">fixedCount</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'fixedRowsTop'</span><span class="p">);</span></div><div class='line' id='LC8514'><span class="p">};</span></div><div class='line' id='LC8515'><br/></div><div class='line' id='LC8516'><span class="c1">///</span></div><div class='line' id='LC8517'><br/></div><div class='line' id='LC8518'><span class="kd">var</span> <span class="nx">WalkontableHorizontalScrollbar</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">instance</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8519'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">;</span></div><div class='line' id='LC8520'> <span class="k">this</span><span class="p">.</span><span class="nx">type</span> <span class="o">=</span> <span class="s1">'horizontal'</span><span class="p">;</span></div><div class='line' id='LC8521'> <span class="k">this</span><span class="p">.</span><span class="nx">init</span><span class="p">();</span></div><div class='line' id='LC8522'><span class="p">};</span></div><div class='line' id='LC8523'><br/></div><div class='line' id='LC8524'><span class="nx">WalkontableHorizontalScrollbar</span><span class="p">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WalkontableScrollbar</span><span class="p">();</span></div><div class='line' id='LC8525'><br/></div><div class='line' id='LC8526'><span class="nx">WalkontableHorizontalScrollbar</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">scrollTo</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">cell</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8527'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">update</span><span class="p">(</span><span class="s1">'offsetColumn'</span><span class="p">,</span> <span class="nx">cell</span><span class="p">);</span></div><div class='line' id='LC8528'><span class="p">};</span></div><div class='line' id='LC8529'><br/></div><div class='line' id='LC8530'><span class="nx">WalkontableHorizontalScrollbar</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">readSettings</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8531'> <span class="k">this</span><span class="p">.</span><span class="nx">scrollMode</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'scrollH'</span><span class="p">);</span></div><div class='line' id='LC8532'> <span class="k">this</span><span class="p">.</span><span class="nx">offset</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'offsetColumn'</span><span class="p">);</span></div><div class='line' id='LC8533'> <span class="k">this</span><span class="p">.</span><span class="nx">total</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'totalColumns'</span><span class="p">);</span></div><div class='line' id='LC8534'> <span class="k">this</span><span class="p">.</span><span class="nx">visibleCount</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">columnStrategy</span><span class="p">.</span><span class="nx">countVisible</span><span class="p">();</span></div><div class='line' id='LC8535'> <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">visibleCount</span> <span class="o">></span> <span class="mi">1</span> <span class="o">&&</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">columnStrategy</span><span class="p">.</span><span class="nx">isLastIncomplete</span><span class="p">())</span> <span class="p">{</span></div><div class='line' id='LC8536'> <span class="k">this</span><span class="p">.</span><span class="nx">visibleCount</span><span class="o">--</span><span class="p">;</span></div><div class='line' id='LC8537'> <span class="p">}</span></div><div class='line' id='LC8538'> <span class="k">this</span><span class="p">.</span><span class="nx">handlePosition</span> <span class="o">=</span> <span class="nb">parseInt</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">handleStyle</span><span class="p">.</span><span class="nx">left</span><span class="p">,</span> <span class="mi">10</span><span class="p">);</span></div><div class='line' id='LC8539'> <span class="k">this</span><span class="p">.</span><span class="nx">sliderSize</span> <span class="o">=</span> <span class="nb">parseInt</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">sliderStyle</span><span class="p">.</span><span class="nx">width</span><span class="p">,</span> <span class="mi">10</span><span class="p">);</span></div><div class='line' id='LC8540'> <span class="k">this</span><span class="p">.</span><span class="nx">fixedCount</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'fixedColumnsLeft'</span><span class="p">);</span></div><div class='line' id='LC8541'><span class="p">};</span></div><div class='line' id='LC8542'><span class="kd">function</span> <span class="nx">WalkontableScrollbarNative</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8543'> <span class="k">this</span><span class="p">.</span><span class="nx">lastWindowScrollPosition</span> <span class="o">=</span> <span class="kc">NaN</span><span class="p">;</span></div><div class='line' id='LC8544'><span class="p">}</span></div><div class='line' id='LC8545'><br/></div><div class='line' id='LC8546'><span class="nx">WalkontableScrollbarNative</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">init</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8547'> <span class="k">this</span><span class="p">.</span><span class="nx">fixedContainer</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">TABLE</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">;</span></div><div class='line' id='LC8548'> <span class="k">this</span><span class="p">.</span><span class="nx">fixed</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">TABLE</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">;</span></div><div class='line' id='LC8549'> <span class="k">this</span><span class="p">.</span><span class="nx">TABLE</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">TABLE</span><span class="p">;</span></div><div class='line' id='LC8550'> <span class="k">this</span><span class="p">.</span><span class="nx">$scrollHandler</span> <span class="o">=</span> <span class="nx">$</span><span class="p">(</span><span class="nb">window</span><span class="p">);</span> <span class="c1">//in future remove jQuery from here</span></div><div class='line' id='LC8551'><br/></div><div class='line' id='LC8552'> <span class="kd">var</span> <span class="nx">that</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC8553'> <span class="k">this</span><span class="p">.</span><span class="nx">$scrollHandler</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'scroll.walkontable'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8554'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">that</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">parent</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8555'> <span class="c1">//Walkontable was detached from DOM, but this handler was not removed</span></div><div class='line' id='LC8556'> <span class="nx">that</span><span class="p">.</span><span class="nx">destroy</span><span class="p">();</span></div><div class='line' id='LC8557'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC8558'> <span class="p">}</span></div><div class='line' id='LC8559'><br/></div><div class='line' id='LC8560'> <span class="nx">that</span><span class="p">.</span><span class="nx">onScroll</span><span class="p">();</span></div><div class='line' id='LC8561'> <span class="p">});</span></div><div class='line' id='LC8562'><br/></div><div class='line' id='LC8563'> <span class="k">this</span><span class="p">.</span><span class="nx">readSettings</span><span class="p">();</span></div><div class='line' id='LC8564'><span class="p">};</span></div><div class='line' id='LC8565'><br/></div><div class='line' id='LC8566'><span class="nx">WalkontableScrollbarNative</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">onScroll</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8567'> <span class="k">this</span><span class="p">.</span><span class="nx">readSettings</span><span class="p">();</span></div><div class='line' id='LC8568'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">windowScrollPosition</span> <span class="o">===</span> <span class="k">this</span><span class="p">.</span><span class="nx">lastWindowScrollPosition</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8569'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC8570'> <span class="p">}</span></div><div class='line' id='LC8571'> <span class="k">this</span><span class="p">.</span><span class="nx">lastWindowScrollPosition</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">windowScrollPosition</span><span class="p">;</span></div><div class='line' id='LC8572'><br/></div><div class='line' id='LC8573'> <span class="kd">var</span> <span class="nx">scrollDelta</span><span class="p">;</span></div><div class='line' id='LC8574'> <span class="kd">var</span> <span class="nx">newOffset</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC8575'><br/></div><div class='line' id='LC8576'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">windowScrollPosition</span> <span class="o">></span> <span class="k">this</span><span class="p">.</span><span class="nx">tableParentOffset</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8577'> <span class="nx">scrollDelta</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">windowScrollPosition</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">tableParentOffset</span><span class="p">;</span></div><div class='line' id='LC8578'> <span class="nx">newOffset</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">ceil</span><span class="p">(</span><span class="nx">scrollDelta</span> <span class="o">/</span> <span class="mi">20</span><span class="p">,</span> <span class="mi">10</span><span class="p">);</span></div><div class='line' id='LC8579'> <span class="nx">newOffset</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">min</span><span class="p">(</span><span class="nx">newOffset</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">total</span><span class="p">)</span></div><div class='line' id='LC8580'> <span class="p">}</span></div><div class='line' id='LC8581'><br/></div><div class='line' id='LC8582'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">update</span><span class="p">(</span><span class="s1">'offsetRow'</span><span class="p">,</span> <span class="nx">newOffset</span><span class="p">);</span></div><div class='line' id='LC8583'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">draw</span><span class="p">();</span></div><div class='line' id='LC8584'><span class="p">};</span></div><div class='line' id='LC8585'><br/></div><div class='line' id='LC8586'><span class="nx">WalkontableScrollbarNative</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">prepare</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8587'><span class="p">};</span></div><div class='line' id='LC8588'><br/></div><div class='line' id='LC8589'><span class="nx">WalkontableScrollbarNative</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">availableSize</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8590'> <span class="kd">var</span> <span class="nx">availableSize</span><span class="p">;</span></div><div class='line' id='LC8591'><br/></div><div class='line' id='LC8592'> <span class="c1">//var last = this.getLastCell();</span></div><div class='line' id='LC8593'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">windowScrollPosition</span> <span class="o">></span> <span class="k">this</span><span class="p">.</span><span class="nx">tableParentOffset</span> <span class="cm">/*&& last > -1*/</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//last -1 means that viewport is scrolled behind the table</span></div><div class='line' id='LC8594'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">getLastVisibleRow</span><span class="p">()</span> <span class="o">===</span> <span class="k">this</span><span class="p">.</span><span class="nx">total</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8595'> <span class="nx">availableSize</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">outerHeight</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">TABLE</span><span class="p">);</span></div><div class='line' id='LC8596'> <span class="p">}</span></div><div class='line' id='LC8597'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC8598'> <span class="nx">availableSize</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">windowSize</span><span class="p">;</span></div><div class='line' id='LC8599'> <span class="p">}</span></div><div class='line' id='LC8600'> <span class="p">}</span></div><div class='line' id='LC8601'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC8602'> <span class="nx">availableSize</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">windowSize</span> <span class="o">-</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">tableParentOffset</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">windowScrollPosition</span><span class="p">);</span></div><div class='line' id='LC8603'> <span class="p">}</span></div><div class='line' id='LC8604'><br/></div><div class='line' id='LC8605'> <span class="k">return</span> <span class="nx">availableSize</span><span class="p">;</span></div><div class='line' id='LC8606'><span class="p">};</span></div><div class='line' id='LC8607'><br/></div><div class='line' id='LC8608'><span class="nx">WalkontableScrollbarNative</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">refresh</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8609'> <span class="kd">var</span> <span class="nx">last</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getLastCell</span><span class="p">();</span></div><div class='line' id='LC8610'> <span class="k">this</span><span class="p">.</span><span class="nx">measureBefore</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">offset</span> <span class="o">*</span> <span class="k">this</span><span class="p">.</span><span class="nx">cellSize</span><span class="p">;</span></div><div class='line' id='LC8611'> <span class="k">this</span><span class="p">.</span><span class="nx">measureInside</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getTableSize</span><span class="p">();</span></div><div class='line' id='LC8612'> <span class="k">if</span> <span class="p">(</span><span class="nx">last</span> <span class="o">===</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//last -1 means that viewport is scrolled behind the table</span></div><div class='line' id='LC8613'> <span class="k">this</span><span class="p">.</span><span class="nx">measureAfter</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC8614'> <span class="p">}</span></div><div class='line' id='LC8615'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC8616'> <span class="k">this</span><span class="p">.</span><span class="nx">measureAfter</span> <span class="o">=</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">total</span> <span class="o">-</span> <span class="nx">last</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="o">*</span> <span class="k">this</span><span class="p">.</span><span class="nx">cellSize</span><span class="p">;</span></div><div class='line' id='LC8617'> <span class="p">}</span></div><div class='line' id='LC8618'> <span class="k">this</span><span class="p">.</span><span class="nx">applyToDOM</span><span class="p">();</span></div><div class='line' id='LC8619'><span class="p">};</span></div><div class='line' id='LC8620'><br/></div><div class='line' id='LC8621'><span class="nx">WalkontableScrollbarNative</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">destroy</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8622'> <span class="k">this</span><span class="p">.</span><span class="nx">$scrollHandler</span><span class="p">.</span><span class="nx">off</span><span class="p">(</span><span class="s1">'scroll.walkontable'</span><span class="p">);</span></div><div class='line' id='LC8623'><span class="p">};</span></div><div class='line' id='LC8624'><br/></div><div class='line' id='LC8625'><span class="c1">///</span></div><div class='line' id='LC8626'><br/></div><div class='line' id='LC8627'><span class="kd">var</span> <span class="nx">WalkontableVerticalScrollbarNative</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">instance</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8628'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">;</span></div><div class='line' id='LC8629'> <span class="k">this</span><span class="p">.</span><span class="nx">type</span> <span class="o">=</span> <span class="s1">'vertical'</span><span class="p">;</span></div><div class='line' id='LC8630'> <span class="k">this</span><span class="p">.</span><span class="nx">cellSize</span> <span class="o">=</span> <span class="mi">20</span><span class="p">;</span></div><div class='line' id='LC8631'> <span class="k">this</span><span class="p">.</span><span class="nx">init</span><span class="p">();</span></div><div class='line' id='LC8632'><span class="p">};</span></div><div class='line' id='LC8633'><br/></div><div class='line' id='LC8634'><span class="nx">WalkontableVerticalScrollbarNative</span><span class="p">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WalkontableScrollbarNative</span><span class="p">();</span></div><div class='line' id='LC8635'><br/></div><div class='line' id='LC8636'><span class="nx">WalkontableVerticalScrollbarNative</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">getLastCell</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8637'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">getLastVisibleRow</span><span class="p">();</span></div><div class='line' id='LC8638'><span class="p">};</span></div><div class='line' id='LC8639'><br/></div><div class='line' id='LC8640'><span class="nx">WalkontableVerticalScrollbarNative</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">getTableSize</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8641'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">outerHeight</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">TABLE</span><span class="p">);</span></div><div class='line' id='LC8642'><span class="p">};</span></div><div class='line' id='LC8643'><br/></div><div class='line' id='LC8644'><span class="nx">WalkontableVerticalScrollbarNative</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">applyToDOM</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8645'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">windowScrollPosition</span> <span class="o">></span> <span class="k">this</span><span class="p">.</span><span class="nx">tableParentOffset</span> <span class="cm">/*&& last > -1*/</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//last -1 means that viewport is scrolled behind the table</span></div><div class='line' id='LC8646'> <span class="k">this</span><span class="p">.</span><span class="nx">fixed</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">position</span> <span class="o">=</span> <span class="s1">'fixed'</span><span class="p">;</span></div><div class='line' id='LC8647'> <span class="k">this</span><span class="p">.</span><span class="nx">fixed</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">top</span> <span class="o">=</span> <span class="s1">'0'</span><span class="p">;</span></div><div class='line' id='LC8648'> <span class="k">this</span><span class="p">.</span><span class="nx">fixed</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">left</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">tableParentOtherOffset</span><span class="p">;</span></div><div class='line' id='LC8649'> <span class="p">}</span></div><div class='line' id='LC8650'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC8651'> <span class="k">this</span><span class="p">.</span><span class="nx">fixed</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">position</span> <span class="o">=</span> <span class="s1">'relative'</span><span class="p">;</span></div><div class='line' id='LC8652'> <span class="p">}</span></div><div class='line' id='LC8653'><br/></div><div class='line' id='LC8654'> <span class="kd">var</span> <span class="nx">debug</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC8655'> <span class="k">if</span> <span class="p">(</span><span class="nx">debug</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8656'> <span class="c1">//this.fixedContainer.style.borderTop = this.measureBefore + 'px solid red';</span></div><div class='line' id='LC8657'> <span class="c1">//this.fixedContainer.style.borderBottom = (this.tableSize + this.measureAfter) + 'px solid blue';</span></div><div class='line' id='LC8658'> <span class="p">}</span></div><div class='line' id='LC8659'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC8660'> <span class="k">this</span><span class="p">.</span><span class="nx">fixedContainer</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">paddingTop</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">measureBefore</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC8661'> <span class="k">this</span><span class="p">.</span><span class="nx">fixedContainer</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">paddingBottom</span> <span class="o">=</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">measureInside</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">measureAfter</span><span class="p">)</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC8662'> <span class="p">}</span></div><div class='line' id='LC8663'><span class="p">};</span></div><div class='line' id='LC8664'><br/></div><div class='line' id='LC8665'><span class="nx">WalkontableVerticalScrollbarNative</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">scrollTo</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">cell</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8666'> <span class="k">this</span><span class="p">.</span><span class="nx">$scrollHandler</span><span class="p">.</span><span class="nx">scrollTop</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">tableParentOffset</span> <span class="o">+</span> <span class="nx">cell</span> <span class="o">*</span> <span class="k">this</span><span class="p">.</span><span class="nx">cellSize</span><span class="p">);</span></div><div class='line' id='LC8667'><span class="p">};</span></div><div class='line' id='LC8668'><br/></div><div class='line' id='LC8669'><span class="nx">WalkontableVerticalScrollbarNative</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">readSettings</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8670'> <span class="kd">var</span> <span class="nx">offset</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">offset</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">fixedContainer</span><span class="p">);</span></div><div class='line' id='LC8671'> <span class="k">this</span><span class="p">.</span><span class="nx">tableParentOffset</span> <span class="o">=</span> <span class="nx">offset</span><span class="p">.</span><span class="nx">top</span><span class="p">;</span></div><div class='line' id='LC8672'> <span class="k">this</span><span class="p">.</span><span class="nx">tableParentOtherOffset</span> <span class="o">=</span> <span class="nx">offset</span><span class="p">.</span><span class="nx">left</span><span class="p">;</span></div><div class='line' id='LC8673'> <span class="k">this</span><span class="p">.</span><span class="nx">windowSize</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">$scrollHandler</span><span class="p">.</span><span class="nx">height</span><span class="p">();</span></div><div class='line' id='LC8674'> <span class="k">this</span><span class="p">.</span><span class="nx">windowScrollPosition</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">$scrollHandler</span><span class="p">.</span><span class="nx">scrollTop</span><span class="p">();</span></div><div class='line' id='LC8675'> <span class="k">this</span><span class="p">.</span><span class="nx">offset</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'offsetRow'</span><span class="p">);</span></div><div class='line' id='LC8676'> <span class="k">this</span><span class="p">.</span><span class="nx">total</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'totalRows'</span><span class="p">);</span></div><div class='line' id='LC8677'><span class="p">};</span></div><div class='line' id='LC8678'><br/></div><div class='line' id='LC8679'><span class="c1">///</span></div><div class='line' id='LC8680'><br/></div><div class='line' id='LC8681'><span class="kd">var</span> <span class="nx">WalkontableHorizontalScrollbarNative</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">instance</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8682'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">;</span></div><div class='line' id='LC8683'> <span class="k">this</span><span class="p">.</span><span class="nx">type</span> <span class="o">=</span> <span class="s1">'horizontal'</span><span class="p">;</span></div><div class='line' id='LC8684'> <span class="k">this</span><span class="p">.</span><span class="nx">cellSize</span> <span class="o">=</span> <span class="mi">50</span><span class="p">;</span></div><div class='line' id='LC8685'> <span class="k">this</span><span class="p">.</span><span class="nx">init</span><span class="p">();</span></div><div class='line' id='LC8686'><span class="p">};</span></div><div class='line' id='LC8687'><br/></div><div class='line' id='LC8688'><span class="nx">WalkontableHorizontalScrollbarNative</span><span class="p">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WalkontableScrollbarNative</span><span class="p">();</span></div><div class='line' id='LC8689'><br/></div><div class='line' id='LC8690'><span class="nx">WalkontableHorizontalScrollbarNative</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">getLastCell</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8691'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">getLastVisibleColumn</span><span class="p">();</span></div><div class='line' id='LC8692'><span class="p">};</span></div><div class='line' id='LC8693'><br/></div><div class='line' id='LC8694'><span class="nx">WalkontableHorizontalScrollbarNative</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">getTableSize</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8695'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">outerWidth</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">TABLE</span><span class="p">);</span></div><div class='line' id='LC8696'><span class="p">};</span></div><div class='line' id='LC8697'><br/></div><div class='line' id='LC8698'><span class="nx">WalkontableHorizontalScrollbarNative</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">applyToDOM</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8699'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">windowScrollPosition</span> <span class="o">></span> <span class="k">this</span><span class="p">.</span><span class="nx">tableParentOffset</span> <span class="cm">/*&& last > -1*/</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//last -1 means that viewport is scrolled behind the table</span></div><div class='line' id='LC8700'> <span class="k">this</span><span class="p">.</span><span class="nx">fixed</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">position</span> <span class="o">=</span> <span class="s1">'fixed'</span><span class="p">;</span></div><div class='line' id='LC8701'> <span class="k">this</span><span class="p">.</span><span class="nx">fixed</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">left</span> <span class="o">=</span> <span class="s1">'0'</span><span class="p">;</span></div><div class='line' id='LC8702'> <span class="k">this</span><span class="p">.</span><span class="nx">fixed</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">top</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">tableParentOtherOffset</span><span class="p">;</span></div><div class='line' id='LC8703'> <span class="p">}</span></div><div class='line' id='LC8704'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC8705'> <span class="k">this</span><span class="p">.</span><span class="nx">fixed</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">position</span> <span class="o">=</span> <span class="s1">'relative'</span><span class="p">;</span></div><div class='line' id='LC8706'> <span class="p">}</span></div><div class='line' id='LC8707'><br/></div><div class='line' id='LC8708'> <span class="kd">var</span> <span class="nx">debug</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC8709'> <span class="k">if</span> <span class="p">(</span><span class="nx">debug</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8710'> <span class="c1">//this.fixedContainer.style.borderLeft = this.measureBefore + 'px solid red';</span></div><div class='line' id='LC8711'> <span class="c1">//this.fixedContainer.style.borderBottom = (this.tableSize + this.measureAfter) + 'px solid blue';</span></div><div class='line' id='LC8712'> <span class="p">}</span></div><div class='line' id='LC8713'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC8714'> <span class="k">this</span><span class="p">.</span><span class="nx">fixedContainer</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">paddingLeft</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">measureBefore</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC8715'> <span class="k">this</span><span class="p">.</span><span class="nx">fixedContainer</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">paddingRight</span> <span class="o">=</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">measureInside</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">measureAfter</span><span class="p">)</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC8716'> <span class="p">}</span></div><div class='line' id='LC8717'><span class="p">};</span></div><div class='line' id='LC8718'><br/></div><div class='line' id='LC8719'><span class="nx">WalkontableHorizontalScrollbarNative</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">scrollTo</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">cell</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8720'> <span class="k">this</span><span class="p">.</span><span class="nx">$scrollHandler</span><span class="p">.</span><span class="nx">scrollLeft</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">tableParentOffset</span> <span class="o">+</span> <span class="nx">cell</span> <span class="o">*</span> <span class="k">this</span><span class="p">.</span><span class="nx">cellSize</span><span class="p">);</span></div><div class='line' id='LC8721'><span class="p">};</span></div><div class='line' id='LC8722'><br/></div><div class='line' id='LC8723'><span class="nx">WalkontableHorizontalScrollbarNative</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">readSettings</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8724'> <span class="kd">var</span> <span class="nx">offset</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">offset</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">fixedContainer</span><span class="p">);</span></div><div class='line' id='LC8725'> <span class="k">this</span><span class="p">.</span><span class="nx">tableParentOffset</span> <span class="o">=</span> <span class="nx">offset</span><span class="p">.</span><span class="nx">left</span><span class="p">;</span></div><div class='line' id='LC8726'> <span class="k">this</span><span class="p">.</span><span class="nx">tableParentOtherOffset</span> <span class="o">=</span> <span class="nx">offset</span><span class="p">.</span><span class="nx">top</span><span class="p">;</span></div><div class='line' id='LC8727'> <span class="k">this</span><span class="p">.</span><span class="nx">windowSize</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">$scrollHandler</span><span class="p">.</span><span class="nx">width</span><span class="p">();</span></div><div class='line' id='LC8728'> <span class="k">this</span><span class="p">.</span><span class="nx">windowScrollPosition</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">$scrollHandler</span><span class="p">.</span><span class="nx">scrollLeft</span><span class="p">();</span></div><div class='line' id='LC8729'> <span class="k">this</span><span class="p">.</span><span class="nx">offset</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'offsetColumn'</span><span class="p">);</span></div><div class='line' id='LC8730'> <span class="k">this</span><span class="p">.</span><span class="nx">total</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'totalColumns'</span><span class="p">);</span></div><div class='line' id='LC8731'><span class="p">};</span></div><div class='line' id='LC8732'><span class="kd">function</span> <span class="nx">WalkontableScrollbars</span><span class="p">(</span><span class="nx">instance</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8733'> <span class="k">switch</span> <span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'scrollbarModelV'</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC8734'> <span class="k">case</span> <span class="s1">'dragdealer'</span><span class="o">:</span></div><div class='line' id='LC8735'> <span class="k">this</span><span class="p">.</span><span class="nx">vertical</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WalkontableVerticalScrollbar</span><span class="p">(</span><span class="nx">instance</span><span class="p">);</span></div><div class='line' id='LC8736'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC8737'><br/></div><div class='line' id='LC8738'> <span class="k">case</span> <span class="s1">'native'</span><span class="o">:</span></div><div class='line' id='LC8739'> <span class="k">this</span><span class="p">.</span><span class="nx">vertical</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WalkontableVerticalScrollbarNative</span><span class="p">(</span><span class="nx">instance</span><span class="p">);</span></div><div class='line' id='LC8740'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC8741'> <span class="p">}</span></div><div class='line' id='LC8742'><br/></div><div class='line' id='LC8743'> <span class="k">switch</span> <span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'scrollbarModelH'</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC8744'> <span class="k">case</span> <span class="s1">'dragdealer'</span><span class="o">:</span></div><div class='line' id='LC8745'> <span class="k">this</span><span class="p">.</span><span class="nx">horizontal</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WalkontableHorizontalScrollbar</span><span class="p">(</span><span class="nx">instance</span><span class="p">);</span></div><div class='line' id='LC8746'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC8747'><br/></div><div class='line' id='LC8748'> <span class="k">case</span> <span class="s1">'native'</span><span class="o">:</span></div><div class='line' id='LC8749'> <span class="k">this</span><span class="p">.</span><span class="nx">horizontal</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WalkontableHorizontalScrollbarNative</span><span class="p">(</span><span class="nx">instance</span><span class="p">);</span></div><div class='line' id='LC8750'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC8751'> <span class="p">}</span></div><div class='line' id='LC8752'><span class="p">}</span></div><div class='line' id='LC8753'><br/></div><div class='line' id='LC8754'><span class="nx">WalkontableScrollbars</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">destroy</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8755'> <span class="k">this</span><span class="p">.</span><span class="nx">vertical</span><span class="p">.</span><span class="nx">destroy</span><span class="p">();</span></div><div class='line' id='LC8756'> <span class="k">this</span><span class="p">.</span><span class="nx">horizontal</span><span class="p">.</span><span class="nx">destroy</span><span class="p">();</span></div><div class='line' id='LC8757'><span class="p">};</span></div><div class='line' id='LC8758'><br/></div><div class='line' id='LC8759'><span class="nx">WalkontableScrollbars</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">refresh</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8760'> <span class="k">this</span><span class="p">.</span><span class="nx">horizontal</span><span class="p">.</span><span class="nx">readSettings</span><span class="p">();</span></div><div class='line' id='LC8761'> <span class="k">this</span><span class="p">.</span><span class="nx">vertical</span><span class="p">.</span><span class="nx">readSettings</span><span class="p">();</span></div><div class='line' id='LC8762'> <span class="k">this</span><span class="p">.</span><span class="nx">horizontal</span><span class="p">.</span><span class="nx">prepare</span><span class="p">();</span></div><div class='line' id='LC8763'> <span class="k">this</span><span class="p">.</span><span class="nx">vertical</span><span class="p">.</span><span class="nx">prepare</span><span class="p">();</span></div><div class='line' id='LC8764'> <span class="k">this</span><span class="p">.</span><span class="nx">horizontal</span><span class="p">.</span><span class="nx">refresh</span><span class="p">();</span></div><div class='line' id='LC8765'> <span class="k">this</span><span class="p">.</span><span class="nx">vertical</span><span class="p">.</span><span class="nx">refresh</span><span class="p">();</span></div><div class='line' id='LC8766'><span class="p">};</span></div><div class='line' id='LC8767'><span class="kd">function</span> <span class="nx">WalkontableSelection</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">settings</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8768'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">;</span></div><div class='line' id='LC8769'> <span class="k">this</span><span class="p">.</span><span class="nx">settings</span> <span class="o">=</span> <span class="nx">settings</span><span class="p">;</span></div><div class='line' id='LC8770'> <span class="k">this</span><span class="p">.</span><span class="nx">selected</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC8771'> <span class="k">if</span> <span class="p">(</span><span class="nx">settings</span><span class="p">.</span><span class="nx">border</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8772'> <span class="k">this</span><span class="p">.</span><span class="nx">border</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WalkontableBorder</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">settings</span><span class="p">);</span></div><div class='line' id='LC8773'> <span class="p">}</span></div><div class='line' id='LC8774'><span class="p">}</span></div><div class='line' id='LC8775'><br/></div><div class='line' id='LC8776'><span class="nx">WalkontableSelection</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">add</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">coords</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8777'> <span class="k">this</span><span class="p">.</span><span class="nx">selected</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">coords</span><span class="p">);</span></div><div class='line' id='LC8778'><span class="p">};</span></div><div class='line' id='LC8779'><br/></div><div class='line' id='LC8780'><span class="nx">WalkontableSelection</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">clear</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8781'> <span class="k">this</span><span class="p">.</span><span class="nx">selected</span><span class="p">.</span><span class="nx">length</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="c1">//http://jsperf.com/clear-arrayxxx</span></div><div class='line' id='LC8782'><span class="p">};</span></div><div class='line' id='LC8783'><br/></div><div class='line' id='LC8784'><span class="cm">/**</span></div><div class='line' id='LC8785'><span class="cm"> * Returns the top left (TL) and bottom right (BR) selection coordinates</span></div><div class='line' id='LC8786'><span class="cm"> * @returns {Object}</span></div><div class='line' id='LC8787'><span class="cm"> */</span></div><div class='line' id='LC8788'><span class="nx">WalkontableSelection</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">getCorners</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8789'> <span class="kd">var</span> <span class="nx">minRow</span></div><div class='line' id='LC8790'> <span class="p">,</span> <span class="nx">minColumn</span></div><div class='line' id='LC8791'> <span class="p">,</span> <span class="nx">maxRow</span></div><div class='line' id='LC8792'> <span class="p">,</span> <span class="nx">maxColumn</span></div><div class='line' id='LC8793'> <span class="p">,</span> <span class="nx">i</span></div><div class='line' id='LC8794'> <span class="p">,</span> <span class="nx">ilen</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">selected</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span></div><div class='line' id='LC8795'><br/></div><div class='line' id='LC8796'> <span class="k">if</span> <span class="p">(</span><span class="nx">ilen</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8797'> <span class="nx">minRow</span> <span class="o">=</span> <span class="nx">maxRow</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">selected</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">];</span></div><div class='line' id='LC8798'> <span class="nx">minColumn</span> <span class="o">=</span> <span class="nx">maxColumn</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">selected</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">];</span></div><div class='line' id='LC8799'><br/></div><div class='line' id='LC8800'> <span class="k">if</span> <span class="p">(</span><span class="nx">ilen</span> <span class="o">></span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8801'> <span class="k">for</span> <span class="p">(</span><span class="nx">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">ilen</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8802'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">selected</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o"><</span> <span class="nx">minRow</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8803'> <span class="nx">minRow</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">selected</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="mi">0</span><span class="p">];</span></div><div class='line' id='LC8804'> <span class="p">}</span></div><div class='line' id='LC8805'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">selected</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">></span> <span class="nx">maxRow</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8806'> <span class="nx">maxRow</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">selected</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="mi">0</span><span class="p">];</span></div><div class='line' id='LC8807'> <span class="p">}</span></div><div class='line' id='LC8808'><br/></div><div class='line' id='LC8809'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">selected</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> <span class="o"><</span> <span class="nx">minColumn</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8810'> <span class="nx">minColumn</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">selected</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="mi">1</span><span class="p">];</span></div><div class='line' id='LC8811'> <span class="p">}</span></div><div class='line' id='LC8812'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">selected</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> <span class="o">></span> <span class="nx">maxColumn</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8813'> <span class="nx">maxColumn</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">selected</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="mi">1</span><span class="p">];</span></div><div class='line' id='LC8814'> <span class="p">}</span></div><div class='line' id='LC8815'> <span class="p">}</span></div><div class='line' id='LC8816'> <span class="p">}</span></div><div class='line' id='LC8817'> <span class="p">}</span></div><div class='line' id='LC8818'><br/></div><div class='line' id='LC8819'> <span class="k">return</span> <span class="p">[</span><span class="nx">minRow</span><span class="p">,</span> <span class="nx">minColumn</span><span class="p">,</span> <span class="nx">maxRow</span><span class="p">,</span> <span class="nx">maxColumn</span><span class="p">];</span></div><div class='line' id='LC8820'><span class="p">};</span></div><div class='line' id='LC8821'><br/></div><div class='line' id='LC8822'><span class="nx">WalkontableSelection</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">draw</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8823'> <span class="kd">var</span> <span class="nx">corners</span><span class="p">,</span> <span class="nx">r</span><span class="p">,</span> <span class="nx">c</span><span class="p">,</span> <span class="nx">source_r</span><span class="p">,</span> <span class="nx">source_c</span><span class="p">;</span></div><div class='line' id='LC8824'><br/></div><div class='line' id='LC8825'> <span class="kd">var</span> <span class="nx">visibleRows</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">rowStrategy</span><span class="p">.</span><span class="nx">countVisible</span><span class="p">()</span></div><div class='line' id='LC8826'> <span class="p">,</span> <span class="nx">visibleColumns</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">columnStrategy</span><span class="p">.</span><span class="nx">countVisible</span><span class="p">();</span></div><div class='line' id='LC8827'><br/></div><div class='line' id='LC8828'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">selected</span><span class="p">.</span><span class="nx">length</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8829'> <span class="nx">corners</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getCorners</span><span class="p">();</span></div><div class='line' id='LC8830'><br/></div><div class='line' id='LC8831'> <span class="k">for</span> <span class="p">(</span><span class="nx">r</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">r</span> <span class="o"><</span> <span class="nx">visibleRows</span><span class="p">;</span> <span class="nx">r</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8832'> <span class="k">for</span> <span class="p">(</span><span class="nx">c</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">c</span> <span class="o"><</span> <span class="nx">visibleColumns</span><span class="p">;</span> <span class="nx">c</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8833'> <span class="nx">source_r</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">rowFilter</span><span class="p">.</span><span class="nx">visibleToSource</span><span class="p">(</span><span class="nx">r</span><span class="p">);</span></div><div class='line' id='LC8834'> <span class="nx">source_c</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">columnFilter</span><span class="p">.</span><span class="nx">visibleToSource</span><span class="p">(</span><span class="nx">c</span><span class="p">);</span></div><div class='line' id='LC8835'><br/></div><div class='line' id='LC8836'> <span class="k">if</span> <span class="p">(</span><span class="nx">source_r</span> <span class="o">>=</span> <span class="nx">corners</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">&&</span> <span class="nx">source_r</span> <span class="o"><=</span> <span class="nx">corners</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">&&</span> <span class="nx">source_c</span> <span class="o">>=</span> <span class="nx">corners</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">&&</span> <span class="nx">source_c</span> <span class="o"><=</span> <span class="nx">corners</span><span class="p">[</span><span class="mi">3</span><span class="p">])</span> <span class="p">{</span></div><div class='line' id='LC8837'> <span class="c1">//selected cell</span></div><div class='line' id='LC8838'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">currentCellCache</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="nx">r</span><span class="p">,</span> <span class="nx">c</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">className</span><span class="p">);</span></div><div class='line' id='LC8839'> <span class="p">}</span></div><div class='line' id='LC8840'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">source_r</span> <span class="o">>=</span> <span class="nx">corners</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">&&</span> <span class="nx">source_r</span> <span class="o"><=</span> <span class="nx">corners</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span> <span class="p">{</span></div><div class='line' id='LC8841'> <span class="c1">//selection is in this row</span></div><div class='line' id='LC8842'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">currentCellCache</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="nx">r</span><span class="p">,</span> <span class="nx">c</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">highlightRowClassName</span><span class="p">);</span></div><div class='line' id='LC8843'> <span class="p">}</span></div><div class='line' id='LC8844'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">source_c</span> <span class="o">>=</span> <span class="nx">corners</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">&&</span> <span class="nx">source_c</span> <span class="o"><=</span> <span class="nx">corners</span><span class="p">[</span><span class="mi">3</span><span class="p">])</span> <span class="p">{</span></div><div class='line' id='LC8845'> <span class="c1">//selection is in this column</span></div><div class='line' id='LC8846'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">currentCellCache</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="nx">r</span><span class="p">,</span> <span class="nx">c</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">highlightColumnClassName</span><span class="p">);</span></div><div class='line' id='LC8847'> <span class="p">}</span></div><div class='line' id='LC8848'> <span class="p">}</span></div><div class='line' id='LC8849'> <span class="p">}</span></div><div class='line' id='LC8850'><br/></div><div class='line' id='LC8851'> <span class="k">this</span><span class="p">.</span><span class="nx">border</span> <span class="o">&&</span> <span class="k">this</span><span class="p">.</span><span class="nx">border</span><span class="p">.</span><span class="nx">appear</span><span class="p">(</span><span class="nx">corners</span><span class="p">);</span> <span class="c1">//warning! border.appear modifies corners!</span></div><div class='line' id='LC8852'> <span class="p">}</span></div><div class='line' id='LC8853'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC8854'> <span class="k">this</span><span class="p">.</span><span class="nx">border</span> <span class="o">&&</span> <span class="k">this</span><span class="p">.</span><span class="nx">border</span><span class="p">.</span><span class="nx">disappear</span><span class="p">();</span></div><div class='line' id='LC8855'> <span class="p">}</span></div><div class='line' id='LC8856'><span class="p">};</span></div><div class='line' id='LC8857'><br/></div><div class='line' id='LC8858'><span class="kd">function</span> <span class="nx">WalkontableSettings</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">settings</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8859'> <span class="kd">var</span> <span class="nx">that</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC8860'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">;</span></div><div class='line' id='LC8861'><br/></div><div class='line' id='LC8862'> <span class="c1">//default settings. void 0 means it is required, null means it can be empty</span></div><div class='line' id='LC8863'> <span class="k">this</span><span class="p">.</span><span class="nx">defaults</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC8864'> <span class="nx">table</span><span class="o">:</span> <span class="k">void</span> <span class="mi">0</span><span class="p">,</span></div><div class='line' id='LC8865'><br/></div><div class='line' id='LC8866'> <span class="c1">//presentation mode</span></div><div class='line' id='LC8867'> <span class="nx">scrollH</span><span class="o">:</span> <span class="s1">'auto'</span><span class="p">,</span> <span class="c1">//values: scroll (always show scrollbar), auto (show scrollbar if table does not fit in the container), none (never show scrollbar)</span></div><div class='line' id='LC8868'> <span class="nx">scrollV</span><span class="o">:</span> <span class="s1">'auto'</span><span class="p">,</span> <span class="c1">//values: see above</span></div><div class='line' id='LC8869'> <span class="nx">scrollbarModelH</span><span class="o">:</span> <span class="s1">'dragdealer'</span><span class="p">,</span> <span class="c1">//values: dragdealer, native</span></div><div class='line' id='LC8870'> <span class="nx">scrollbarModelV</span><span class="o">:</span> <span class="s1">'dragdealer'</span><span class="p">,</span> <span class="c1">//values: dragdealer, native</span></div><div class='line' id='LC8871'> <span class="nx">stretchH</span><span class="o">:</span> <span class="s1">'hybrid'</span><span class="p">,</span> <span class="c1">//values: hybrid, all, last, none</span></div><div class='line' id='LC8872'> <span class="nx">currentRowClassName</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span></div><div class='line' id='LC8873'> <span class="nx">currentColumnClassName</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span></div><div class='line' id='LC8874'><br/></div><div class='line' id='LC8875'> <span class="c1">//data source</span></div><div class='line' id='LC8876'> <span class="nx">data</span><span class="o">:</span> <span class="k">void</span> <span class="mi">0</span><span class="p">,</span></div><div class='line' id='LC8877'> <span class="nx">offsetRow</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span></div><div class='line' id='LC8878'> <span class="nx">offsetColumn</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span></div><div class='line' id='LC8879'> <span class="nx">fixedColumnsLeft</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span></div><div class='line' id='LC8880'> <span class="nx">fixedRowsTop</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span></div><div class='line' id='LC8881'> <span class="nx">rowHeaders</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8882'> <span class="k">return</span> <span class="p">[]</span></div><div class='line' id='LC8883'> <span class="p">},</span> <span class="c1">//this must be array of functions: [function (row, TH) {}]</span></div><div class='line' id='LC8884'> <span class="nx">columnHeaders</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC8885'> <span class="k">return</span> <span class="p">[]</span></div><div class='line' id='LC8886'> <span class="p">},</span> <span class="c1">//this must be array of functions: [function (column, TH) {}]</span></div><div class='line' id='LC8887'> <span class="nx">totalRows</span><span class="o">:</span> <span class="k">void</span> <span class="mi">0</span><span class="p">,</span></div><div class='line' id='LC8888'> <span class="nx">totalColumns</span><span class="o">:</span> <span class="k">void</span> <span class="mi">0</span><span class="p">,</span></div><div class='line' id='LC8889'> <span class="nx">width</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span></div><div class='line' id='LC8890'> <span class="nx">height</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span></div><div class='line' id='LC8891'> <span class="nx">cellRenderer</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="nx">column</span><span class="p">,</span> <span class="nx">TD</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8892'> <span class="kd">var</span> <span class="nx">cellData</span> <span class="o">=</span> <span class="nx">that</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'data'</span><span class="p">,</span> <span class="nx">row</span><span class="p">,</span> <span class="nx">column</span><span class="p">);</span></div><div class='line' id='LC8893'> <span class="nx">that</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">fastInnerText</span><span class="p">(</span><span class="nx">TD</span><span class="p">,</span> <span class="nx">cellData</span> <span class="o">===</span> <span class="k">void</span> <span class="mi">0</span> <span class="o">||</span> <span class="nx">cellData</span> <span class="o">===</span> <span class="kc">null</span> <span class="o">?</span> <span class="s1">''</span> <span class="o">:</span> <span class="nx">cellData</span><span class="p">);</span></div><div class='line' id='LC8894'> <span class="p">},</span></div><div class='line' id='LC8895'> <span class="nx">columnWidth</span><span class="o">:</span> <span class="mi">50</span><span class="p">,</span></div><div class='line' id='LC8896'> <span class="nx">selections</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span></div><div class='line' id='LC8897'> <span class="nx">hideBorderOnMouseDownOver</span><span class="o">:</span> <span class="kc">false</span><span class="p">,</span></div><div class='line' id='LC8898'><br/></div><div class='line' id='LC8899'> <span class="c1">//callbacks</span></div><div class='line' id='LC8900'> <span class="nx">onCellMouseDown</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span></div><div class='line' id='LC8901'> <span class="nx">onCellMouseOver</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span></div><div class='line' id='LC8902'><span class="c1">// onCellMouseOut: null,</span></div><div class='line' id='LC8903'> <span class="nx">onCellDblClick</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span></div><div class='line' id='LC8904'> <span class="nx">onCellCornerMouseDown</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span></div><div class='line' id='LC8905'> <span class="nx">onCellCornerDblClick</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span></div><div class='line' id='LC8906'> <span class="nx">beforeDraw</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span></div><div class='line' id='LC8907'> <span class="nx">onDraw</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span></div><div class='line' id='LC8908'><br/></div><div class='line' id='LC8909'> <span class="c1">//constants</span></div><div class='line' id='LC8910'> <span class="nx">scrollbarWidth</span><span class="o">:</span> <span class="mi">10</span><span class="p">,</span></div><div class='line' id='LC8911'> <span class="nx">scrollbarHeight</span><span class="o">:</span> <span class="mi">10</span></div><div class='line' id='LC8912'> <span class="p">};</span></div><div class='line' id='LC8913'><br/></div><div class='line' id='LC8914'> <span class="c1">//reference to settings</span></div><div class='line' id='LC8915'> <span class="k">this</span><span class="p">.</span><span class="nx">settings</span> <span class="o">=</span> <span class="p">{};</span></div><div class='line' id='LC8916'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="k">in</span> <span class="k">this</span><span class="p">.</span><span class="nx">defaults</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8917'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">defaults</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">i</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC8918'> <span class="k">if</span> <span class="p">(</span><span class="nx">settings</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">!==</span> <span class="k">void</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8919'> <span class="k">this</span><span class="p">.</span><span class="nx">settings</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">=</span> <span class="nx">settings</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span></div><div class='line' id='LC8920'> <span class="p">}</span></div><div class='line' id='LC8921'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">defaults</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">===</span> <span class="k">void</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8922'> <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s1">'A required setting "'</span> <span class="o">+</span> <span class="nx">i</span> <span class="o">+</span> <span class="s1">'" was not provided'</span><span class="p">);</span></div><div class='line' id='LC8923'> <span class="p">}</span></div><div class='line' id='LC8924'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC8925'> <span class="k">this</span><span class="p">.</span><span class="nx">settings</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">defaults</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span></div><div class='line' id='LC8926'> <span class="p">}</span></div><div class='line' id='LC8927'> <span class="p">}</span></div><div class='line' id='LC8928'> <span class="p">}</span></div><div class='line' id='LC8929'><span class="p">}</span></div><div class='line' id='LC8930'><br/></div><div class='line' id='LC8931'><span class="cm">/**</span></div><div class='line' id='LC8932'><span class="cm"> * generic methods</span></div><div class='line' id='LC8933'><span class="cm"> */</span></div><div class='line' id='LC8934'><br/></div><div class='line' id='LC8935'><span class="nx">WalkontableSettings</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">update</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">settings</span><span class="p">,</span> <span class="nx">value</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8936'> <span class="k">if</span> <span class="p">(</span><span class="nx">value</span> <span class="o">===</span> <span class="k">void</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//settings is object</span></div><div class='line' id='LC8937'> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="k">in</span> <span class="nx">settings</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8938'> <span class="k">if</span> <span class="p">(</span><span class="nx">settings</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">i</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC8939'> <span class="k">this</span><span class="p">.</span><span class="nx">settings</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">=</span> <span class="nx">settings</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span></div><div class='line' id='LC8940'> <span class="p">}</span></div><div class='line' id='LC8941'> <span class="p">}</span></div><div class='line' id='LC8942'> <span class="p">}</span></div><div class='line' id='LC8943'> <span class="k">else</span> <span class="p">{</span> <span class="c1">//if value is defined then settings is the key</span></div><div class='line' id='LC8944'> <span class="k">this</span><span class="p">.</span><span class="nx">settings</span><span class="p">[</span><span class="nx">settings</span><span class="p">]</span> <span class="o">=</span> <span class="nx">value</span><span class="p">;</span></div><div class='line' id='LC8945'> <span class="p">}</span></div><div class='line' id='LC8946'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">;</span></div><div class='line' id='LC8947'><span class="p">};</span></div><div class='line' id='LC8948'><br/></div><div class='line' id='LC8949'><span class="nx">WalkontableSettings</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">getSetting</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">key</span><span class="p">,</span> <span class="nx">param1</span><span class="p">,</span> <span class="nx">param2</span><span class="p">,</span> <span class="nx">param3</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8950'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">[</span><span class="nx">key</span><span class="p">])</span> <span class="p">{</span></div><div class='line' id='LC8951'> <span class="k">return</span> <span class="k">this</span><span class="p">[</span><span class="nx">key</span><span class="p">](</span><span class="nx">param1</span><span class="p">,</span> <span class="nx">param2</span><span class="p">,</span> <span class="nx">param3</span><span class="p">);</span></div><div class='line' id='LC8952'> <span class="p">}</span></div><div class='line' id='LC8953'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC8954'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">_getSetting</span><span class="p">(</span><span class="nx">key</span><span class="p">,</span> <span class="nx">param1</span><span class="p">,</span> <span class="nx">param2</span><span class="p">,</span> <span class="nx">param3</span><span class="p">);</span></div><div class='line' id='LC8955'> <span class="p">}</span></div><div class='line' id='LC8956'><span class="p">};</span></div><div class='line' id='LC8957'><br/></div><div class='line' id='LC8958'><span class="nx">WalkontableSettings</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">_getSetting</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">key</span><span class="p">,</span> <span class="nx">param1</span><span class="p">,</span> <span class="nx">param2</span><span class="p">,</span> <span class="nx">param3</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8959'> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="k">this</span><span class="p">.</span><span class="nx">settings</span><span class="p">[</span><span class="nx">key</span><span class="p">]</span> <span class="o">===</span> <span class="s1">'function'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8960'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">settings</span><span class="p">[</span><span class="nx">key</span><span class="p">](</span><span class="nx">param1</span><span class="p">,</span> <span class="nx">param2</span><span class="p">,</span> <span class="nx">param3</span><span class="p">);</span></div><div class='line' id='LC8961'> <span class="p">}</span></div><div class='line' id='LC8962'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">param1</span> <span class="o">!==</span> <span class="k">void</span> <span class="mi">0</span> <span class="o">&&</span> <span class="nb">Object</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">toString</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">settings</span><span class="p">[</span><span class="nx">key</span><span class="p">])</span> <span class="o">===</span> <span class="s1">'[object Array]'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8963'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">settings</span><span class="p">[</span><span class="nx">key</span><span class="p">][</span><span class="nx">param1</span><span class="p">];</span></div><div class='line' id='LC8964'> <span class="p">}</span></div><div class='line' id='LC8965'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC8966'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">settings</span><span class="p">[</span><span class="nx">key</span><span class="p">];</span></div><div class='line' id='LC8967'> <span class="p">}</span></div><div class='line' id='LC8968'><span class="p">};</span></div><div class='line' id='LC8969'><br/></div><div class='line' id='LC8970'><span class="nx">WalkontableSettings</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">has</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">key</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8971'> <span class="k">return</span> <span class="o">!!</span><span class="k">this</span><span class="p">.</span><span class="nx">settings</span><span class="p">[</span><span class="nx">key</span><span class="p">]</span></div><div class='line' id='LC8972'><span class="p">};</span></div><div class='line' id='LC8973'><br/></div><div class='line' id='LC8974'><span class="cm">/**</span></div><div class='line' id='LC8975'><span class="cm"> * specific methods</span></div><div class='line' id='LC8976'><span class="cm"> */</span></div><div class='line' id='LC8977'><br/></div><div class='line' id='LC8978'><span class="nx">WalkontableSettings</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">rowHeight</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">row</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8979'> <span class="kd">var</span> <span class="nx">visible_r</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">rowFilter</span><span class="p">.</span><span class="nx">sourceToVisible</span><span class="p">(</span><span class="nx">row</span><span class="p">);</span></div><div class='line' id='LC8980'> <span class="kd">var</span> <span class="nx">size</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">rowStrategy</span><span class="p">.</span><span class="nx">getSize</span><span class="p">(</span><span class="nx">visible_r</span><span class="p">);</span></div><div class='line' id='LC8981'> <span class="k">if</span> <span class="p">(</span><span class="nx">size</span> <span class="o">!==</span> <span class="k">void</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8982'> <span class="k">return</span> <span class="nx">size</span><span class="p">;</span></div><div class='line' id='LC8983'> <span class="p">}</span></div><div class='line' id='LC8984'> <span class="k">return</span> <span class="mi">20</span><span class="p">;</span></div><div class='line' id='LC8985'><span class="p">};</span></div><div class='line' id='LC8986'><span class="cm">/*var FLAG_VISIBLE_HORIZONTAL = 0x1; // 000001</span></div><div class='line' id='LC8987'><span class="cm"> var FLAG_VISIBLE_VERTICAL = 0x2; // 000010</span></div><div class='line' id='LC8988'><span class="cm"> var FLAG_PARTIALLY_VISIBLE_HORIZONTAL = 0x4; // 000100</span></div><div class='line' id='LC8989'><span class="cm"> var FLAG_PARTIALLY_VISIBLE_VERTICAL = 0x8; // 001000</span></div><div class='line' id='LC8990'><span class="cm"> var FLAG_NOT_VISIBLE_HORIZONTAL = 0x10; // 010000</span></div><div class='line' id='LC8991'><span class="cm"> var FLAG_NOT_VISIBLE_VERTICAL = 0x20; // 100000*/</span></div><div class='line' id='LC8992'><br/></div><div class='line' id='LC8993'><span class="kd">function</span> <span class="nx">WalkontableTable</span><span class="p">(</span><span class="nx">instance</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC8994'> <span class="c1">//reference to instance</span></div><div class='line' id='LC8995'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">;</span></div><div class='line' id='LC8996'> <span class="k">this</span><span class="p">.</span><span class="nx">TABLE</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'table'</span><span class="p">);</span></div><div class='line' id='LC8997'> <span class="k">this</span><span class="p">.</span><span class="nx">wtDom</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">;</span></div><div class='line' id='LC8998'> <span class="k">this</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">removeTextNodes</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">TABLE</span><span class="p">);</span></div><div class='line' id='LC8999'><br/></div><div class='line' id='LC9000'> <span class="c1">//wtSpreader</span></div><div class='line' id='LC9001'> <span class="kd">var</span> <span class="nx">parent</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">TABLE</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">;</span></div><div class='line' id='LC9002'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">parent</span> <span class="o">||</span> <span class="nx">parent</span><span class="p">.</span><span class="nx">nodeType</span> <span class="o">!==</span> <span class="mi">1</span> <span class="o">||</span> <span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">hasClass</span><span class="p">(</span><span class="nx">parent</span><span class="p">,</span> <span class="s1">'wtHolder'</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC9003'> <span class="kd">var</span> <span class="nx">spreader</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'DIV'</span><span class="p">);</span></div><div class='line' id='LC9004'> <span class="nx">spreader</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="s1">'wtSpreader'</span><span class="p">;</span></div><div class='line' id='LC9005'> <span class="k">if</span> <span class="p">(</span><span class="nx">parent</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9006'> <span class="nx">parent</span><span class="p">.</span><span class="nx">insertBefore</span><span class="p">(</span><span class="nx">spreader</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">TABLE</span><span class="p">);</span> <span class="c1">//if TABLE is detached (e.g. in Jasmine test), it has no parentNode so we cannot attach holder to it</span></div><div class='line' id='LC9007'> <span class="p">}</span></div><div class='line' id='LC9008'> <span class="nx">spreader</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">TABLE</span><span class="p">);</span></div><div class='line' id='LC9009'> <span class="p">}</span></div><div class='line' id='LC9010'> <span class="k">this</span><span class="p">.</span><span class="nx">spreader</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">TABLE</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">;</span></div><div class='line' id='LC9011'><br/></div><div class='line' id='LC9012'> <span class="c1">//wtHider</span></div><div class='line' id='LC9013'> <span class="nx">parent</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">spreader</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">;</span></div><div class='line' id='LC9014'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">parent</span> <span class="o">||</span> <span class="nx">parent</span><span class="p">.</span><span class="nx">nodeType</span> <span class="o">!==</span> <span class="mi">1</span> <span class="o">||</span> <span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">hasClass</span><span class="p">(</span><span class="nx">parent</span><span class="p">,</span> <span class="s1">'wtHolder'</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC9015'> <span class="kd">var</span> <span class="nx">hider</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'DIV'</span><span class="p">);</span></div><div class='line' id='LC9016'> <span class="nx">hider</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="s1">'wtHider'</span><span class="p">;</span></div><div class='line' id='LC9017'> <span class="k">if</span> <span class="p">(</span><span class="nx">parent</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9018'> <span class="nx">parent</span><span class="p">.</span><span class="nx">insertBefore</span><span class="p">(</span><span class="nx">hider</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">spreader</span><span class="p">);</span> <span class="c1">//if TABLE is detached (e.g. in Jasmine test), it has no parentNode so we cannot attach holder to it</span></div><div class='line' id='LC9019'> <span class="p">}</span></div><div class='line' id='LC9020'> <span class="nx">hider</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">spreader</span><span class="p">);</span></div><div class='line' id='LC9021'> <span class="p">}</span></div><div class='line' id='LC9022'> <span class="k">this</span><span class="p">.</span><span class="nx">hider</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">spreader</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">;</span></div><div class='line' id='LC9023'> <span class="k">this</span><span class="p">.</span><span class="nx">hiderStyle</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">hider</span><span class="p">.</span><span class="nx">style</span><span class="p">;</span></div><div class='line' id='LC9024'> <span class="k">this</span><span class="p">.</span><span class="nx">hiderStyle</span><span class="p">.</span><span class="nx">position</span> <span class="o">=</span> <span class="s1">'relative'</span><span class="p">;</span></div><div class='line' id='LC9025'><br/></div><div class='line' id='LC9026'> <span class="c1">//wtHolder</span></div><div class='line' id='LC9027'> <span class="nx">parent</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">hider</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">;</span></div><div class='line' id='LC9028'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">parent</span> <span class="o">||</span> <span class="nx">parent</span><span class="p">.</span><span class="nx">nodeType</span> <span class="o">!==</span> <span class="mi">1</span> <span class="o">||</span> <span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">hasClass</span><span class="p">(</span><span class="nx">parent</span><span class="p">,</span> <span class="s1">'wtHolder'</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC9029'> <span class="kd">var</span> <span class="nx">holder</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'DIV'</span><span class="p">);</span></div><div class='line' id='LC9030'> <span class="nx">holder</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">position</span> <span class="o">=</span> <span class="s1">'relative'</span><span class="p">;</span></div><div class='line' id='LC9031'> <span class="nx">holder</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="s1">'wtHolder'</span><span class="p">;</span></div><div class='line' id='LC9032'> <span class="k">if</span> <span class="p">(</span><span class="nx">parent</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9033'> <span class="nx">parent</span><span class="p">.</span><span class="nx">insertBefore</span><span class="p">(</span><span class="nx">holder</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">hider</span><span class="p">);</span> <span class="c1">//if TABLE is detached (e.g. in Jasmine test), it has no parentNode so we cannot attach holder to it</span></div><div class='line' id='LC9034'> <span class="p">}</span></div><div class='line' id='LC9035'> <span class="nx">holder</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">hider</span><span class="p">);</span></div><div class='line' id='LC9036'> <span class="p">}</span></div><div class='line' id='LC9037'> <span class="k">this</span><span class="p">.</span><span class="nx">parent</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">hider</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">;</span></div><div class='line' id='LC9038'><br/></div><div class='line' id='LC9039'> <span class="c1">//bootstrap from settings</span></div><div class='line' id='LC9040'> <span class="k">this</span><span class="p">.</span><span class="nx">TBODY</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">TABLE</span><span class="p">.</span><span class="nx">getElementsByTagName</span><span class="p">(</span><span class="s1">'TBODY'</span><span class="p">)[</span><span class="mi">0</span><span class="p">];</span></div><div class='line' id='LC9041'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">TBODY</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9042'> <span class="k">this</span><span class="p">.</span><span class="nx">TBODY</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'TBODY'</span><span class="p">);</span></div><div class='line' id='LC9043'> <span class="k">this</span><span class="p">.</span><span class="nx">TABLE</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">TBODY</span><span class="p">);</span></div><div class='line' id='LC9044'> <span class="p">}</span></div><div class='line' id='LC9045'> <span class="k">this</span><span class="p">.</span><span class="nx">THEAD</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">TABLE</span><span class="p">.</span><span class="nx">getElementsByTagName</span><span class="p">(</span><span class="s1">'THEAD'</span><span class="p">)[</span><span class="mi">0</span><span class="p">];</span></div><div class='line' id='LC9046'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">THEAD</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9047'> <span class="k">this</span><span class="p">.</span><span class="nx">THEAD</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'THEAD'</span><span class="p">);</span></div><div class='line' id='LC9048'> <span class="k">this</span><span class="p">.</span><span class="nx">TABLE</span><span class="p">.</span><span class="nx">insertBefore</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">THEAD</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">TBODY</span><span class="p">);</span></div><div class='line' id='LC9049'> <span class="p">}</span></div><div class='line' id='LC9050'> <span class="k">this</span><span class="p">.</span><span class="nx">COLGROUP</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">TABLE</span><span class="p">.</span><span class="nx">getElementsByTagName</span><span class="p">(</span><span class="s1">'COLGROUP'</span><span class="p">)[</span><span class="mi">0</span><span class="p">];</span></div><div class='line' id='LC9051'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">COLGROUP</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9052'> <span class="k">this</span><span class="p">.</span><span class="nx">COLGROUP</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'COLGROUP'</span><span class="p">);</span></div><div class='line' id='LC9053'> <span class="k">this</span><span class="p">.</span><span class="nx">TABLE</span><span class="p">.</span><span class="nx">insertBefore</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">COLGROUP</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">THEAD</span><span class="p">);</span></div><div class='line' id='LC9054'> <span class="p">}</span></div><div class='line' id='LC9055'><br/></div><div class='line' id='LC9056'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'columnHeaders'</span><span class="p">).</span><span class="nx">length</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9057'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">THEAD</span><span class="p">.</span><span class="nx">childNodes</span><span class="p">.</span><span class="nx">length</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9058'> <span class="kd">var</span> <span class="nx">TR</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'TR'</span><span class="p">);</span></div><div class='line' id='LC9059'> <span class="k">this</span><span class="p">.</span><span class="nx">THEAD</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">TR</span><span class="p">);</span></div><div class='line' id='LC9060'> <span class="p">}</span></div><div class='line' id='LC9061'> <span class="p">}</span></div><div class='line' id='LC9062'><br/></div><div class='line' id='LC9063'> <span class="k">this</span><span class="p">.</span><span class="nx">colgroupChildrenLength</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">COLGROUP</span><span class="p">.</span><span class="nx">childNodes</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span></div><div class='line' id='LC9064'> <span class="k">this</span><span class="p">.</span><span class="nx">theadChildrenLength</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">THEAD</span><span class="p">.</span><span class="nx">firstChild</span> <span class="o">?</span> <span class="k">this</span><span class="p">.</span><span class="nx">THEAD</span><span class="p">.</span><span class="nx">firstChild</span><span class="p">.</span><span class="nx">childNodes</span><span class="p">.</span><span class="nx">length</span> <span class="o">:</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC9065'> <span class="k">this</span><span class="p">.</span><span class="nx">tbodyChildrenLength</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">TBODY</span><span class="p">.</span><span class="nx">childNodes</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span></div><div class='line' id='LC9066'><br/></div><div class='line' id='LC9067'> <span class="k">this</span><span class="p">.</span><span class="nx">oldCellCache</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WalkontableClassNameCache</span><span class="p">();</span></div><div class='line' id='LC9068'> <span class="k">this</span><span class="p">.</span><span class="nx">currentCellCache</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WalkontableClassNameCache</span><span class="p">();</span></div><div class='line' id='LC9069'><br/></div><div class='line' id='LC9070'> <span class="k">this</span><span class="p">.</span><span class="nx">rowFilter</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WalkontableRowFilter</span><span class="p">();</span></div><div class='line' id='LC9071'> <span class="k">this</span><span class="p">.</span><span class="nx">columnFilter</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WalkontableColumnFilter</span><span class="p">();</span></div><div class='line' id='LC9072'><br/></div><div class='line' id='LC9073'> <span class="k">this</span><span class="p">.</span><span class="nx">verticalRenderReverse</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC9074'><span class="p">}</span></div><div class='line' id='LC9075'><br/></div><div class='line' id='LC9076'><span class="nx">WalkontableTable</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">refreshHiderDimensions</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC9077'> <span class="kd">var</span> <span class="nx">height</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtViewport</span><span class="p">.</span><span class="nx">getWorkspaceHeight</span><span class="p">();</span></div><div class='line' id='LC9078'> <span class="kd">var</span> <span class="nx">width</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtViewport</span><span class="p">.</span><span class="nx">getWorkspaceWidth</span><span class="p">();</span></div><div class='line' id='LC9079'><br/></div><div class='line' id='LC9080'> <span class="kd">var</span> <span class="nx">spreaderStyle</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">spreader</span><span class="p">.</span><span class="nx">style</span><span class="p">;</span></div><div class='line' id='LC9081'><br/></div><div class='line' id='LC9082'> <span class="k">if</span> <span class="p">(</span><span class="nx">height</span> <span class="o">!==</span> <span class="kc">Infinity</span> <span class="o">||</span> <span class="nx">width</span> <span class="o">!==</span> <span class="kc">Infinity</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9083'> <span class="k">if</span> <span class="p">(</span><span class="nx">height</span> <span class="o">===</span> <span class="kc">Infinity</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9084'> <span class="nx">height</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtViewport</span><span class="p">.</span><span class="nx">getWorkspaceActualHeight</span><span class="p">();</span></div><div class='line' id='LC9085'> <span class="p">}</span></div><div class='line' id='LC9086'> <span class="k">if</span> <span class="p">(</span><span class="nx">width</span> <span class="o">===</span> <span class="kc">Infinity</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9087'> <span class="nx">width</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtViewport</span><span class="p">.</span><span class="nx">getWorkspaceActualWidth</span><span class="p">();</span></div><div class='line' id='LC9088'> <span class="p">}</span></div><div class='line' id='LC9089'><br/></div><div class='line' id='LC9090'> <span class="k">this</span><span class="p">.</span><span class="nx">hiderStyle</span><span class="p">.</span><span class="nx">overflow</span> <span class="o">=</span> <span class="s1">'hidden'</span><span class="p">;</span></div><div class='line' id='LC9091'><br/></div><div class='line' id='LC9092'> <span class="nx">spreaderStyle</span><span class="p">.</span><span class="nx">position</span> <span class="o">=</span> <span class="s1">'absolute'</span><span class="p">;</span></div><div class='line' id='LC9093'> <span class="nx">spreaderStyle</span><span class="p">.</span><span class="nx">top</span> <span class="o">=</span> <span class="s1">'0'</span><span class="p">;</span></div><div class='line' id='LC9094'> <span class="nx">spreaderStyle</span><span class="p">.</span><span class="nx">left</span> <span class="o">=</span> <span class="s1">'0'</span><span class="p">;</span></div><div class='line' id='LC9095'><br/></div><div class='line' id='LC9096'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'scrollbarModelV'</span><span class="p">)</span> <span class="o">===</span> <span class="s1">'dragdealer'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9097'> <span class="nx">spreaderStyle</span><span class="p">.</span><span class="nx">height</span> <span class="o">=</span> <span class="s1">'4000px'</span><span class="p">;</span></div><div class='line' id='LC9098'> <span class="p">}</span></div><div class='line' id='LC9099'><br/></div><div class='line' id='LC9100'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'scrollbarModelH'</span><span class="p">)</span> <span class="o">===</span> <span class="s1">'dragdealer'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9101'> <span class="nx">spreaderStyle</span><span class="p">.</span><span class="nx">width</span> <span class="o">=</span> <span class="s1">'4000px'</span><span class="p">;</span></div><div class='line' id='LC9102'> <span class="p">}</span></div><div class='line' id='LC9103'><br/></div><div class='line' id='LC9104'> <span class="k">if</span> <span class="p">(</span><span class="nx">height</span> <span class="o"><</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//this happens with WalkontableScrollbarNative and causes "Invalid argument" error in IE8</span></div><div class='line' id='LC9105'> <span class="nx">height</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC9106'> <span class="p">}</span></div><div class='line' id='LC9107'><br/></div><div class='line' id='LC9108'> <span class="k">this</span><span class="p">.</span><span class="nx">hiderStyle</span><span class="p">.</span><span class="nx">height</span> <span class="o">=</span> <span class="nx">height</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC9109'> <span class="k">this</span><span class="p">.</span><span class="nx">hiderStyle</span><span class="p">.</span><span class="nx">width</span> <span class="o">=</span> <span class="nx">width</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC9110'> <span class="p">}</span></div><div class='line' id='LC9111'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC9112'> <span class="nx">spreaderStyle</span><span class="p">.</span><span class="nx">position</span> <span class="o">=</span> <span class="s1">'relative'</span><span class="p">;</span></div><div class='line' id='LC9113'> <span class="nx">spreaderStyle</span><span class="p">.</span><span class="nx">width</span> <span class="o">=</span> <span class="s1">'auto'</span><span class="p">;</span></div><div class='line' id='LC9114'> <span class="nx">spreaderStyle</span><span class="p">.</span><span class="nx">height</span> <span class="o">=</span> <span class="s1">'auto'</span><span class="p">;</span></div><div class='line' id='LC9115'> <span class="p">}</span></div><div class='line' id='LC9116'><span class="p">};</span></div><div class='line' id='LC9117'><br/></div><div class='line' id='LC9118'><span class="nx">WalkontableTable</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">refreshStretching</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC9119'> <span class="kd">var</span> <span class="nx">instance</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span></div><div class='line' id='LC9120'> <span class="p">,</span> <span class="nx">stretchH</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'stretchH'</span><span class="p">)</span></div><div class='line' id='LC9121'> <span class="p">,</span> <span class="nx">totalRows</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'totalRows'</span><span class="p">)</span></div><div class='line' id='LC9122'> <span class="p">,</span> <span class="nx">totalColumns</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'totalColumns'</span><span class="p">)</span></div><div class='line' id='LC9123'> <span class="p">,</span> <span class="nx">offsetColumn</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'offsetColumn'</span><span class="p">);</span></div><div class='line' id='LC9124'><br/></div><div class='line' id='LC9125'> <span class="kd">var</span> <span class="nx">containerWidthFn</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">cacheWidth</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9126'> <span class="k">return</span> <span class="nx">that</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtViewport</span><span class="p">.</span><span class="nx">getViewportWidth</span><span class="p">(</span><span class="nx">cacheWidth</span><span class="p">);</span></div><div class='line' id='LC9127'> <span class="p">};</span></div><div class='line' id='LC9128'><br/></div><div class='line' id='LC9129'> <span class="kd">var</span> <span class="nx">that</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC9130'><br/></div><div class='line' id='LC9131'> <span class="kd">var</span> <span class="nx">columnWidthFn</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">i</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9132'> <span class="kd">var</span> <span class="nx">source_c</span> <span class="o">=</span> <span class="nx">that</span><span class="p">.</span><span class="nx">columnFilter</span><span class="p">.</span><span class="nx">visibleToSource</span><span class="p">(</span><span class="nx">i</span><span class="p">);</span></div><div class='line' id='LC9133'> <span class="k">if</span> <span class="p">(</span><span class="nx">source_c</span> <span class="o"><</span> <span class="nx">totalColumns</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9134'> <span class="k">return</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'columnWidth'</span><span class="p">,</span> <span class="nx">source_c</span><span class="p">);</span></div><div class='line' id='LC9135'> <span class="p">}</span></div><div class='line' id='LC9136'> <span class="p">};</span></div><div class='line' id='LC9137'><br/></div><div class='line' id='LC9138'> <span class="k">if</span> <span class="p">(</span><span class="nx">stretchH</span> <span class="o">===</span> <span class="s1">'hybrid'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9139'> <span class="k">if</span> <span class="p">(</span><span class="nx">offsetColumn</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9140'> <span class="nx">stretchH</span> <span class="o">=</span> <span class="s1">'last'</span><span class="p">;</span></div><div class='line' id='LC9141'> <span class="p">}</span></div><div class='line' id='LC9142'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC9143'> <span class="nx">stretchH</span> <span class="o">=</span> <span class="s1">'none'</span><span class="p">;</span></div><div class='line' id='LC9144'> <span class="p">}</span></div><div class='line' id='LC9145'> <span class="p">}</span></div><div class='line' id='LC9146'><br/></div><div class='line' id='LC9147'> <span class="kd">var</span> <span class="nx">containerHeightFn</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">cacheHeight</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9148'> <span class="k">return</span> <span class="nx">that</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtViewport</span><span class="p">.</span><span class="nx">getViewportHeight</span><span class="p">(</span><span class="nx">cacheHeight</span><span class="p">);</span></div><div class='line' id='LC9149'> <span class="p">};</span></div><div class='line' id='LC9150'><br/></div><div class='line' id='LC9151'> <span class="kd">var</span> <span class="nx">rowHeightFn</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">i</span><span class="p">,</span> <span class="nx">TD</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9152'> <span class="kd">var</span> <span class="nx">source_r</span> <span class="o">=</span> <span class="nx">that</span><span class="p">.</span><span class="nx">rowFilter</span><span class="p">.</span><span class="nx">visibleToSource</span><span class="p">(</span><span class="nx">i</span><span class="p">);</span></div><div class='line' id='LC9153'> <span class="k">if</span> <span class="p">(</span><span class="nx">source_r</span> <span class="o"><</span> <span class="nx">totalRows</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9154'> <span class="k">if</span> <span class="p">(</span><span class="nx">that</span><span class="p">.</span><span class="nx">verticalRenderReverse</span> <span class="o">&&</span> <span class="nx">i</span> <span class="o">===</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9155'> <span class="k">return</span> <span class="nx">that</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">outerHeight</span><span class="p">(</span><span class="nx">TD</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC9156'> <span class="p">}</span></div><div class='line' id='LC9157'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC9158'> <span class="k">return</span> <span class="nx">that</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">outerHeight</span><span class="p">(</span><span class="nx">TD</span><span class="p">);</span></div><div class='line' id='LC9159'> <span class="p">}</span></div><div class='line' id='LC9160'> <span class="p">}</span></div><div class='line' id='LC9161'> <span class="p">};</span></div><div class='line' id='LC9162'><br/></div><div class='line' id='LC9163'> <span class="k">this</span><span class="p">.</span><span class="nx">columnStrategy</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WalkontableColumnStrategy</span><span class="p">(</span><span class="nx">containerWidthFn</span><span class="p">,</span> <span class="nx">columnWidthFn</span><span class="p">,</span> <span class="nx">stretchH</span><span class="p">);</span></div><div class='line' id='LC9164'> <span class="k">this</span><span class="p">.</span><span class="nx">rowStrategy</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WalkontableRowStrategy</span><span class="p">(</span><span class="nx">containerHeightFn</span><span class="p">,</span> <span class="nx">rowHeightFn</span><span class="p">);</span></div><div class='line' id='LC9165'><span class="p">};</span></div><div class='line' id='LC9166'><br/></div><div class='line' id='LC9167'><span class="nx">WalkontableTable</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">adjustAvailableNodes</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC9168'> <span class="kd">var</span> <span class="nx">displayTds</span></div><div class='line' id='LC9169'> <span class="p">,</span> <span class="nx">rowHeaders</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'rowHeaders'</span><span class="p">)</span></div><div class='line' id='LC9170'> <span class="p">,</span> <span class="nx">displayThs</span> <span class="o">=</span> <span class="nx">rowHeaders</span><span class="p">.</span><span class="nx">length</span></div><div class='line' id='LC9171'> <span class="p">,</span> <span class="nx">columnHeaders</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'columnHeaders'</span><span class="p">)</span></div><div class='line' id='LC9172'> <span class="p">,</span> <span class="nx">TR</span></div><div class='line' id='LC9173'> <span class="p">,</span> <span class="nx">TD</span></div><div class='line' id='LC9174'> <span class="p">,</span> <span class="nx">c</span><span class="p">;</span></div><div class='line' id='LC9175'><br/></div><div class='line' id='LC9176'> <span class="c1">//adjust COLGROUP</span></div><div class='line' id='LC9177'> <span class="k">while</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">colgroupChildrenLength</span> <span class="o"><</span> <span class="nx">displayThs</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9178'> <span class="k">this</span><span class="p">.</span><span class="nx">COLGROUP</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'COL'</span><span class="p">));</span></div><div class='line' id='LC9179'> <span class="k">this</span><span class="p">.</span><span class="nx">colgroupChildrenLength</span><span class="o">++</span><span class="p">;</span></div><div class='line' id='LC9180'> <span class="p">}</span></div><div class='line' id='LC9181'><br/></div><div class='line' id='LC9182'> <span class="k">this</span><span class="p">.</span><span class="nx">refreshStretching</span><span class="p">();</span></div><div class='line' id='LC9183'> <span class="nx">displayTds</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">columnStrategy</span><span class="p">.</span><span class="nx">cellCount</span><span class="p">;</span></div><div class='line' id='LC9184'><br/></div><div class='line' id='LC9185'> <span class="c1">//adjust COLGROUP</span></div><div class='line' id='LC9186'> <span class="k">while</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">colgroupChildrenLength</span> <span class="o"><</span> <span class="nx">displayTds</span> <span class="o">+</span> <span class="nx">displayThs</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9187'> <span class="k">this</span><span class="p">.</span><span class="nx">COLGROUP</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'COL'</span><span class="p">));</span></div><div class='line' id='LC9188'> <span class="k">this</span><span class="p">.</span><span class="nx">colgroupChildrenLength</span><span class="o">++</span><span class="p">;</span></div><div class='line' id='LC9189'> <span class="p">}</span></div><div class='line' id='LC9190'> <span class="k">while</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">colgroupChildrenLength</span> <span class="o">></span> <span class="nx">displayTds</span> <span class="o">+</span> <span class="nx">displayThs</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9191'> <span class="k">this</span><span class="p">.</span><span class="nx">COLGROUP</span><span class="p">.</span><span class="nx">removeChild</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">COLGROUP</span><span class="p">.</span><span class="nx">lastChild</span><span class="p">);</span></div><div class='line' id='LC9192'> <span class="k">this</span><span class="p">.</span><span class="nx">colgroupChildrenLength</span><span class="o">--</span><span class="p">;</span></div><div class='line' id='LC9193'> <span class="p">}</span></div><div class='line' id='LC9194'><br/></div><div class='line' id='LC9195'> <span class="c1">//adjust THEAD</span></div><div class='line' id='LC9196'> <span class="nx">TR</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">THEAD</span><span class="p">.</span><span class="nx">firstChild</span><span class="p">;</span></div><div class='line' id='LC9197'> <span class="k">if</span> <span class="p">(</span><span class="nx">columnHeaders</span><span class="p">.</span><span class="nx">length</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9198'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">TR</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9199'> <span class="nx">TR</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'TR'</span><span class="p">);</span></div><div class='line' id='LC9200'> <span class="k">this</span><span class="p">.</span><span class="nx">THEAD</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">TR</span><span class="p">);</span></div><div class='line' id='LC9201'> <span class="p">}</span></div><div class='line' id='LC9202'><br/></div><div class='line' id='LC9203'> <span class="k">this</span><span class="p">.</span><span class="nx">theadChildrenLength</span> <span class="o">=</span> <span class="nx">TR</span><span class="p">.</span><span class="nx">childNodes</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span></div><div class='line' id='LC9204'> <span class="k">while</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">theadChildrenLength</span> <span class="o"><</span> <span class="nx">displayTds</span> <span class="o">+</span> <span class="nx">displayThs</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9205'> <span class="nx">TR</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'TH'</span><span class="p">));</span></div><div class='line' id='LC9206'> <span class="k">this</span><span class="p">.</span><span class="nx">theadChildrenLength</span><span class="o">++</span><span class="p">;</span></div><div class='line' id='LC9207'> <span class="p">}</span></div><div class='line' id='LC9208'> <span class="k">while</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">theadChildrenLength</span> <span class="o">></span> <span class="nx">displayTds</span> <span class="o">+</span> <span class="nx">displayThs</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9209'> <span class="nx">TR</span><span class="p">.</span><span class="nx">removeChild</span><span class="p">(</span><span class="nx">TR</span><span class="p">.</span><span class="nx">lastChild</span><span class="p">);</span></div><div class='line' id='LC9210'> <span class="k">this</span><span class="p">.</span><span class="nx">theadChildrenLength</span><span class="o">--</span><span class="p">;</span></div><div class='line' id='LC9211'> <span class="p">}</span></div><div class='line' id='LC9212'> <span class="p">}</span></div><div class='line' id='LC9213'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">TR</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9214'> <span class="k">this</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">empty</span><span class="p">(</span><span class="nx">TR</span><span class="p">);</span></div><div class='line' id='LC9215'> <span class="p">}</span></div><div class='line' id='LC9216'><br/></div><div class='line' id='LC9217'> <span class="c1">//draw COLGROUP</span></div><div class='line' id='LC9218'> <span class="k">for</span> <span class="p">(</span><span class="nx">c</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">c</span> <span class="o"><</span> <span class="k">this</span><span class="p">.</span><span class="nx">colgroupChildrenLength</span><span class="p">;</span> <span class="nx">c</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9219'> <span class="k">if</span> <span class="p">(</span><span class="nx">c</span> <span class="o"><</span> <span class="nx">displayThs</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9220'> <span class="k">this</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">COLGROUP</span><span class="p">.</span><span class="nx">childNodes</span><span class="p">[</span><span class="nx">c</span><span class="p">],</span> <span class="s1">'rowHeader'</span><span class="p">);</span></div><div class='line' id='LC9221'> <span class="p">}</span></div><div class='line' id='LC9222'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC9223'> <span class="k">this</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">removeClass</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">COLGROUP</span><span class="p">.</span><span class="nx">childNodes</span><span class="p">[</span><span class="nx">c</span><span class="p">],</span> <span class="s1">'rowHeader'</span><span class="p">);</span></div><div class='line' id='LC9224'> <span class="p">}</span></div><div class='line' id='LC9225'> <span class="p">}</span></div><div class='line' id='LC9226'><br/></div><div class='line' id='LC9227'> <span class="c1">//draw THEAD</span></div><div class='line' id='LC9228'> <span class="k">if</span> <span class="p">(</span><span class="nx">columnHeaders</span><span class="p">.</span><span class="nx">length</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9229'> <span class="nx">TR</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">THEAD</span><span class="p">.</span><span class="nx">firstChild</span><span class="p">;</span></div><div class='line' id='LC9230'> <span class="k">if</span> <span class="p">(</span><span class="nx">displayThs</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9231'> <span class="nx">TD</span> <span class="o">=</span> <span class="nx">TR</span><span class="p">.</span><span class="nx">firstChild</span><span class="p">;</span> <span class="c1">//actually it is TH but let's reuse single variable</span></div><div class='line' id='LC9232'> <span class="k">for</span> <span class="p">(</span><span class="nx">c</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">c</span> <span class="o"><</span> <span class="nx">displayThs</span><span class="p">;</span> <span class="nx">c</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9233'> <span class="nx">rowHeaders</span><span class="p">[</span><span class="nx">c</span><span class="p">](</span><span class="o">-</span><span class="nx">displayThs</span> <span class="o">+</span> <span class="nx">c</span><span class="p">,</span> <span class="nx">TD</span><span class="p">);</span></div><div class='line' id='LC9234'> <span class="nx">TD</span> <span class="o">=</span> <span class="nx">TD</span><span class="p">.</span><span class="nx">nextSibling</span><span class="p">;</span></div><div class='line' id='LC9235'> <span class="p">}</span></div><div class='line' id='LC9236'> <span class="p">}</span></div><div class='line' id='LC9237'> <span class="p">}</span></div><div class='line' id='LC9238'><br/></div><div class='line' id='LC9239'> <span class="k">for</span> <span class="p">(</span><span class="nx">c</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">c</span> <span class="o"><</span> <span class="nx">displayTds</span><span class="p">;</span> <span class="nx">c</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9240'> <span class="k">if</span> <span class="p">(</span><span class="nx">columnHeaders</span><span class="p">.</span><span class="nx">length</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9241'> <span class="nx">columnHeaders</span><span class="p">[</span><span class="mi">0</span><span class="p">](</span><span class="k">this</span><span class="p">.</span><span class="nx">columnFilter</span><span class="p">.</span><span class="nx">visibleToSource</span><span class="p">(</span><span class="nx">c</span><span class="p">),</span> <span class="nx">TR</span><span class="p">.</span><span class="nx">childNodes</span><span class="p">[</span><span class="nx">displayThs</span> <span class="o">+</span> <span class="nx">c</span><span class="p">]);</span></div><div class='line' id='LC9242'> <span class="p">}</span></div><div class='line' id='LC9243'> <span class="p">}</span></div><div class='line' id='LC9244'><span class="p">};</span></div><div class='line' id='LC9245'><br/></div><div class='line' id='LC9246'><span class="nx">WalkontableTable</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">adjustColumns</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">TR</span><span class="p">,</span> <span class="nx">desiredCount</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9247'> <span class="kd">var</span> <span class="nx">count</span> <span class="o">=</span> <span class="nx">TR</span><span class="p">.</span><span class="nx">childNodes</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span></div><div class='line' id='LC9248'> <span class="k">while</span> <span class="p">(</span><span class="nx">count</span> <span class="o"><</span> <span class="nx">desiredCount</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9249'> <span class="kd">var</span> <span class="nx">TD</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'TD'</span><span class="p">);</span></div><div class='line' id='LC9250'> <span class="nx">TR</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">TD</span><span class="p">);</span></div><div class='line' id='LC9251'> <span class="nx">count</span><span class="o">++</span><span class="p">;</span></div><div class='line' id='LC9252'> <span class="p">}</span></div><div class='line' id='LC9253'> <span class="k">while</span> <span class="p">(</span><span class="nx">count</span> <span class="o">></span> <span class="nx">desiredCount</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9254'> <span class="nx">TR</span><span class="p">.</span><span class="nx">removeChild</span><span class="p">(</span><span class="nx">TR</span><span class="p">.</span><span class="nx">lastChild</span><span class="p">);</span></div><div class='line' id='LC9255'> <span class="nx">count</span><span class="o">--</span><span class="p">;</span></div><div class='line' id='LC9256'> <span class="p">}</span></div><div class='line' id='LC9257'><span class="p">};</span></div><div class='line' id='LC9258'><br/></div><div class='line' id='LC9259'><span class="nx">WalkontableTable</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">draw</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">selectionsOnly</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9260'> <span class="k">this</span><span class="p">.</span><span class="nx">rowFilter</span><span class="p">.</span><span class="nx">readSettings</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">);</span></div><div class='line' id='LC9261'> <span class="k">this</span><span class="p">.</span><span class="nx">columnFilter</span><span class="p">.</span><span class="nx">readSettings</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">);</span></div><div class='line' id='LC9262'><br/></div><div class='line' id='LC9263'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">selectionsOnly</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9264'> <span class="k">this</span><span class="p">.</span><span class="nx">tableOffset</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">offset</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">TABLE</span><span class="p">);</span></div><div class='line' id='LC9265'> <span class="k">this</span><span class="p">.</span><span class="nx">_doDraw</span><span class="p">();</span></div><div class='line' id='LC9266'> <span class="p">}</span></div><div class='line' id='LC9267'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC9268'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtScrollbars</span><span class="p">.</span><span class="nx">refresh</span><span class="p">();</span></div><div class='line' id='LC9269'> <span class="p">}</span></div><div class='line' id='LC9270'><br/></div><div class='line' id='LC9271'> <span class="k">this</span><span class="p">.</span><span class="nx">refreshPositions</span><span class="p">(</span><span class="nx">selectionsOnly</span><span class="p">);</span></div><div class='line' id='LC9272'><br/></div><div class='line' id='LC9273'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">drawn</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC9274'> <span class="k">return</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC9275'><span class="p">};</span></div><div class='line' id='LC9276'><br/></div><div class='line' id='LC9277'><span class="nx">WalkontableTable</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">_doDraw</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC9278'> <span class="kd">var</span> <span class="nx">r</span> <span class="o">=</span> <span class="mi">0</span></div><div class='line' id='LC9279'> <span class="p">,</span> <span class="nx">source_r</span></div><div class='line' id='LC9280'> <span class="p">,</span> <span class="nx">c</span></div><div class='line' id='LC9281'> <span class="p">,</span> <span class="nx">source_c</span></div><div class='line' id='LC9282'> <span class="p">,</span> <span class="nx">offsetRow</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'offsetRow'</span><span class="p">)</span></div><div class='line' id='LC9283'> <span class="p">,</span> <span class="nx">totalRows</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'totalRows'</span><span class="p">)</span></div><div class='line' id='LC9284'> <span class="p">,</span> <span class="nx">totalColumns</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'totalColumns'</span><span class="p">)</span></div><div class='line' id='LC9285'> <span class="p">,</span> <span class="nx">displayTds</span></div><div class='line' id='LC9286'> <span class="p">,</span> <span class="nx">rowHeaders</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'rowHeaders'</span><span class="p">)</span></div><div class='line' id='LC9287'> <span class="p">,</span> <span class="nx">displayThs</span> <span class="o">=</span> <span class="nx">rowHeaders</span><span class="p">.</span><span class="nx">length</span></div><div class='line' id='LC9288'> <span class="p">,</span> <span class="nx">TR</span></div><div class='line' id='LC9289'> <span class="p">,</span> <span class="nx">TD</span></div><div class='line' id='LC9290'> <span class="p">,</span> <span class="nx">TH</span></div><div class='line' id='LC9291'> <span class="p">,</span> <span class="nx">adjusted</span> <span class="o">=</span> <span class="kc">false</span></div><div class='line' id='LC9292'> <span class="p">,</span> <span class="nx">workspaceWidth</span></div><div class='line' id='LC9293'> <span class="p">,</span> <span class="nx">mustBeInViewport</span><span class="p">;</span></div><div class='line' id='LC9294'><br/></div><div class='line' id='LC9295'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">verticalRenderReverse</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9296'> <span class="nx">mustBeInViewport</span> <span class="o">=</span> <span class="nx">offsetRow</span><span class="p">;</span></div><div class='line' id='LC9297'> <span class="p">}</span></div><div class='line' id='LC9298'><br/></div><div class='line' id='LC9299'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtViewport</span><span class="p">.</span><span class="nx">resetSettings</span><span class="p">();</span></div><div class='line' id='LC9300'><br/></div><div class='line' id='LC9301'> <span class="kd">var</span> <span class="nx">noPartial</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC9302'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">verticalRenderReverse</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9303'> <span class="k">if</span> <span class="p">(</span><span class="nx">offsetRow</span> <span class="o">===</span> <span class="nx">totalRows</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">rowFilter</span><span class="p">.</span><span class="nx">fixedCount</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9304'> <span class="nx">noPartial</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC9305'> <span class="p">}</span></div><div class='line' id='LC9306'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC9307'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">update</span><span class="p">(</span><span class="s1">'offsetRow'</span><span class="p">,</span> <span class="nx">offsetRow</span> <span class="o">+</span> <span class="mi">1</span><span class="p">);</span> <span class="c1">//if we are scrolling reverse</span></div><div class='line' id='LC9308'> <span class="k">this</span><span class="p">.</span><span class="nx">rowFilter</span><span class="p">.</span><span class="nx">readSettings</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">);</span></div><div class='line' id='LC9309'> <span class="p">}</span></div><div class='line' id='LC9310'> <span class="p">}</span></div><div class='line' id='LC9311'><br/></div><div class='line' id='LC9312'> <span class="c1">//draw TBODY</span></div><div class='line' id='LC9313'> <span class="k">if</span> <span class="p">(</span><span class="nx">totalColumns</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9314'> <span class="nx">source_r</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">rowFilter</span><span class="p">.</span><span class="nx">visibleToSource</span><span class="p">(</span><span class="nx">r</span><span class="p">);</span></div><div class='line' id='LC9315'><br/></div><div class='line' id='LC9316'> <span class="kd">var</span> <span class="nx">first</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC9317'><br/></div><div class='line' id='LC9318'> <span class="k">while</span> <span class="p">(</span><span class="nx">source_r</span> <span class="o"><</span> <span class="nx">totalRows</span> <span class="o">&&</span> <span class="nx">source_r</span> <span class="o">>=</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9319'> <span class="k">if</span> <span class="p">(</span><span class="nx">r</span> <span class="o">>=</span> <span class="k">this</span><span class="p">.</span><span class="nx">tbodyChildrenLength</span> <span class="o">||</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">verticalRenderReverse</span> <span class="o">&&</span> <span class="nx">r</span> <span class="o">>=</span> <span class="k">this</span><span class="p">.</span><span class="nx">rowFilter</span><span class="p">.</span><span class="nx">fixedCount</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC9320'> <span class="nx">TR</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'TR'</span><span class="p">);</span></div><div class='line' id='LC9321'> <span class="k">for</span> <span class="p">(</span><span class="nx">c</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">c</span> <span class="o"><</span> <span class="nx">displayThs</span><span class="p">;</span> <span class="nx">c</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9322'> <span class="nx">TR</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'TH'</span><span class="p">));</span></div><div class='line' id='LC9323'> <span class="p">}</span></div><div class='line' id='LC9324'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">verticalRenderReverse</span> <span class="o">&&</span> <span class="nx">r</span> <span class="o">>=</span> <span class="k">this</span><span class="p">.</span><span class="nx">rowFilter</span><span class="p">.</span><span class="nx">fixedCount</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9325'> <span class="k">this</span><span class="p">.</span><span class="nx">TBODY</span><span class="p">.</span><span class="nx">insertBefore</span><span class="p">(</span><span class="nx">TR</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">TBODY</span><span class="p">.</span><span class="nx">childNodes</span><span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">rowFilter</span><span class="p">.</span><span class="nx">fixedCount</span><span class="p">]</span> <span class="o">||</span> <span class="k">this</span><span class="p">.</span><span class="nx">TBODY</span><span class="p">.</span><span class="nx">firstChild</span><span class="p">);</span></div><div class='line' id='LC9326'> <span class="p">}</span></div><div class='line' id='LC9327'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC9328'> <span class="k">this</span><span class="p">.</span><span class="nx">TBODY</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">TR</span><span class="p">);</span></div><div class='line' id='LC9329'> <span class="p">}</span></div><div class='line' id='LC9330'> <span class="k">this</span><span class="p">.</span><span class="nx">tbodyChildrenLength</span><span class="o">++</span><span class="p">;</span></div><div class='line' id='LC9331'> <span class="p">}</span></div><div class='line' id='LC9332'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">r</span> <span class="o">===</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9333'> <span class="nx">TR</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">TBODY</span><span class="p">.</span><span class="nx">firstChild</span><span class="p">;</span></div><div class='line' id='LC9334'> <span class="p">}</span></div><div class='line' id='LC9335'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC9336'> <span class="nx">TR</span> <span class="o">=</span> <span class="nx">TR</span><span class="p">.</span><span class="nx">nextSibling</span><span class="p">;</span> <span class="c1">//http://jsperf.com/nextsibling-vs-indexed-childnodes</span></div><div class='line' id='LC9337'> <span class="p">}</span></div><div class='line' id='LC9338'><br/></div><div class='line' id='LC9339'> <span class="c1">//TH</span></div><div class='line' id='LC9340'> <span class="nx">TH</span> <span class="o">=</span> <span class="nx">TR</span><span class="p">.</span><span class="nx">firstChild</span><span class="p">;</span></div><div class='line' id='LC9341'> <span class="k">for</span> <span class="p">(</span><span class="nx">c</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">c</span> <span class="o"><</span> <span class="nx">displayThs</span><span class="p">;</span> <span class="nx">c</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9342'><br/></div><div class='line' id='LC9343'> <span class="c1">//If the number of row headers increased we need to replace TD with TH</span></div><div class='line' id='LC9344'> <span class="k">if</span> <span class="p">(</span><span class="nx">TH</span><span class="p">.</span><span class="nx">nodeName</span> <span class="o">==</span> <span class="s1">'TD'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9345'> <span class="nx">TD</span> <span class="o">=</span> <span class="nx">TH</span><span class="p">;</span></div><div class='line' id='LC9346'> <span class="nx">TH</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'TH'</span><span class="p">);</span></div><div class='line' id='LC9347'> <span class="nx">TR</span><span class="p">.</span><span class="nx">insertBefore</span><span class="p">(</span><span class="nx">TH</span><span class="p">,</span> <span class="nx">TD</span><span class="p">);</span></div><div class='line' id='LC9348'> <span class="nx">TR</span><span class="p">.</span><span class="nx">removeChild</span><span class="p">(</span><span class="nx">TD</span><span class="p">);</span></div><div class='line' id='LC9349'> <span class="p">}</span></div><div class='line' id='LC9350'><br/></div><div class='line' id='LC9351'> <span class="nx">rowHeaders</span><span class="p">[</span><span class="nx">c</span><span class="p">](</span><span class="nx">source_r</span><span class="p">,</span> <span class="nx">TH</span><span class="p">);</span> <span class="c1">//actually TH</span></div><div class='line' id='LC9352'> <span class="nx">TH</span> <span class="o">=</span> <span class="nx">TH</span><span class="p">.</span><span class="nx">nextSibling</span><span class="p">;</span> <span class="c1">//http://jsperf.com/nextsibling-vs-indexed-childnodes</span></div><div class='line' id='LC9353'> <span class="p">}</span></div><div class='line' id='LC9354'><br/></div><div class='line' id='LC9355'> <span class="k">if</span> <span class="p">(</span><span class="nx">first</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9356'><span class="c1">// if (r === 0) {</span></div><div class='line' id='LC9357'> <span class="nx">first</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC9358'><br/></div><div class='line' id='LC9359'> <span class="k">this</span><span class="p">.</span><span class="nx">adjustAvailableNodes</span><span class="p">();</span></div><div class='line' id='LC9360'> <span class="nx">adjusted</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC9361'> <span class="nx">displayTds</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">columnStrategy</span><span class="p">.</span><span class="nx">cellCount</span><span class="p">;</span></div><div class='line' id='LC9362'><br/></div><div class='line' id='LC9363'> <span class="c1">//TD</span></div><div class='line' id='LC9364'> <span class="k">this</span><span class="p">.</span><span class="nx">adjustColumns</span><span class="p">(</span><span class="nx">TR</span><span class="p">,</span> <span class="nx">displayTds</span> <span class="o">+</span> <span class="nx">displayThs</span><span class="p">);</span></div><div class='line' id='LC9365'><br/></div><div class='line' id='LC9366'> <span class="nx">workspaceWidth</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtViewport</span><span class="p">.</span><span class="nx">getWorkspaceWidth</span><span class="p">();</span></div><div class='line' id='LC9367'> <span class="k">this</span><span class="p">.</span><span class="nx">columnStrategy</span><span class="p">.</span><span class="nx">stretch</span><span class="p">();</span></div><div class='line' id='LC9368'> <span class="k">for</span> <span class="p">(</span><span class="nx">c</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">c</span> <span class="o"><</span> <span class="nx">displayTds</span><span class="p">;</span> <span class="nx">c</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9369'> <span class="k">this</span><span class="p">.</span><span class="nx">COLGROUP</span><span class="p">.</span><span class="nx">childNodes</span><span class="p">[</span><span class="nx">c</span> <span class="o">+</span> <span class="nx">displayThs</span><span class="p">].</span><span class="nx">style</span><span class="p">.</span><span class="nx">width</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">columnStrategy</span><span class="p">.</span><span class="nx">getSize</span><span class="p">(</span><span class="nx">c</span><span class="p">)</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC9370'> <span class="p">}</span></div><div class='line' id='LC9371'> <span class="p">}</span></div><div class='line' id='LC9372'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC9373'> <span class="c1">//TD</span></div><div class='line' id='LC9374'> <span class="k">this</span><span class="p">.</span><span class="nx">adjustColumns</span><span class="p">(</span><span class="nx">TR</span><span class="p">,</span> <span class="nx">displayTds</span> <span class="o">+</span> <span class="nx">displayThs</span><span class="p">);</span></div><div class='line' id='LC9375'> <span class="p">}</span></div><div class='line' id='LC9376'><br/></div><div class='line' id='LC9377'> <span class="k">for</span> <span class="p">(</span><span class="nx">c</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">c</span> <span class="o"><</span> <span class="nx">displayTds</span><span class="p">;</span> <span class="nx">c</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9378'> <span class="nx">source_c</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">columnFilter</span><span class="p">.</span><span class="nx">visibleToSource</span><span class="p">(</span><span class="nx">c</span><span class="p">);</span></div><div class='line' id='LC9379'> <span class="k">if</span> <span class="p">(</span><span class="nx">c</span> <span class="o">===</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9380'> <span class="nx">TD</span> <span class="o">=</span> <span class="nx">TR</span><span class="p">.</span><span class="nx">childNodes</span><span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">columnFilter</span><span class="p">.</span><span class="nx">sourceColumnToVisibleRowHeadedColumn</span><span class="p">(</span><span class="nx">source_c</span><span class="p">)];</span></div><div class='line' id='LC9381'> <span class="p">}</span></div><div class='line' id='LC9382'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC9383'> <span class="nx">TD</span> <span class="o">=</span> <span class="nx">TD</span><span class="p">.</span><span class="nx">nextSibling</span><span class="p">;</span> <span class="c1">//http://jsperf.com/nextsibling-vs-indexed-childnodes</span></div><div class='line' id='LC9384'> <span class="p">}</span></div><div class='line' id='LC9385'><br/></div><div class='line' id='LC9386'> <span class="c1">//If the number of headers has been reduced, we need to replace excess TH with TD</span></div><div class='line' id='LC9387'> <span class="k">if</span> <span class="p">(</span><span class="nx">TD</span><span class="p">.</span><span class="nx">nodeName</span> <span class="o">==</span> <span class="s1">'TH'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9388'> <span class="nx">TH</span> <span class="o">=</span> <span class="nx">TD</span><span class="p">;</span></div><div class='line' id='LC9389'> <span class="nx">TD</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'TD'</span><span class="p">);</span></div><div class='line' id='LC9390'> <span class="nx">TR</span><span class="p">.</span><span class="nx">insertBefore</span><span class="p">(</span><span class="nx">TD</span><span class="p">,</span> <span class="nx">TH</span><span class="p">);</span></div><div class='line' id='LC9391'> <span class="nx">TR</span><span class="p">.</span><span class="nx">removeChild</span><span class="p">(</span><span class="nx">TH</span><span class="p">);</span></div><div class='line' id='LC9392'> <span class="p">}</span></div><div class='line' id='LC9393'><br/></div><div class='line' id='LC9394'> <span class="nx">TD</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="s1">''</span><span class="p">;</span></div><div class='line' id='LC9395'> <span class="nx">TD</span><span class="p">.</span><span class="nx">removeAttribute</span><span class="p">(</span><span class="s1">'style'</span><span class="p">);</span></div><div class='line' id='LC9396'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'cellRenderer'</span><span class="p">,</span> <span class="nx">source_r</span><span class="p">,</span> <span class="nx">source_c</span><span class="p">,</span> <span class="nx">TD</span><span class="p">);</span></div><div class='line' id='LC9397'> <span class="p">}</span></div><div class='line' id='LC9398'><br/></div><div class='line' id='LC9399'> <span class="nx">offsetRow</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'offsetRow'</span><span class="p">);</span> <span class="c1">//refresh the value</span></div><div class='line' id='LC9400'><br/></div><div class='line' id='LC9401'> <span class="c1">//after last column is rendered, check if last cell is fully displayed</span></div><div class='line' id='LC9402'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">verticalRenderReverse</span> <span class="o">&&</span> <span class="nx">noPartial</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9403'> <span class="k">if</span> <span class="p">(</span><span class="o">-</span><span class="k">this</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">outerHeight</span><span class="p">(</span><span class="nx">TR</span><span class="p">.</span><span class="nx">firstChild</span><span class="p">)</span> <span class="o"><</span> <span class="k">this</span><span class="p">.</span><span class="nx">rowStrategy</span><span class="p">.</span><span class="nx">remainingSize</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9404'> <span class="k">this</span><span class="p">.</span><span class="nx">TBODY</span><span class="p">.</span><span class="nx">removeChild</span><span class="p">(</span><span class="nx">TR</span><span class="p">);</span></div><div class='line' id='LC9405'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">update</span><span class="p">(</span><span class="s1">'offsetRow'</span><span class="p">,</span> <span class="nx">offsetRow</span> <span class="o">+</span> <span class="mi">1</span><span class="p">);</span></div><div class='line' id='LC9406'> <span class="k">this</span><span class="p">.</span><span class="nx">tbodyChildrenLength</span><span class="o">--</span><span class="p">;</span></div><div class='line' id='LC9407'> <span class="k">this</span><span class="p">.</span><span class="nx">rowFilter</span><span class="p">.</span><span class="nx">readSettings</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">);</span></div><div class='line' id='LC9408'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC9409'><br/></div><div class='line' id='LC9410'> <span class="p">}</span></div><div class='line' id='LC9411'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC9412'> <span class="k">this</span><span class="p">.</span><span class="nx">rowStrategy</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="nx">r</span><span class="p">,</span> <span class="nx">TD</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">verticalRenderReverse</span><span class="p">);</span></div><div class='line' id='LC9413'> <span class="p">}</span></div><div class='line' id='LC9414'> <span class="p">}</span></div><div class='line' id='LC9415'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC9416'> <span class="k">this</span><span class="p">.</span><span class="nx">rowStrategy</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="nx">r</span><span class="p">,</span> <span class="nx">TD</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">verticalRenderReverse</span><span class="p">);</span></div><div class='line' id='LC9417'><br/></div><div class='line' id='LC9418'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">rowStrategy</span><span class="p">.</span><span class="nx">isLastIncomplete</span><span class="p">())</span> <span class="p">{</span></div><div class='line' id='LC9419'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">verticalRenderReverse</span> <span class="o">&&</span> <span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">isRowInViewport</span><span class="p">(</span><span class="nx">mustBeInViewport</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC9420'> <span class="c1">//we failed because one of the cells was by far too large. Recover by rendering from top</span></div><div class='line' id='LC9421'> <span class="k">this</span><span class="p">.</span><span class="nx">verticalRenderReverse</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC9422'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">update</span><span class="p">(</span><span class="s1">'offsetRow'</span><span class="p">,</span> <span class="nx">mustBeInViewport</span><span class="p">);</span></div><div class='line' id='LC9423'> <span class="k">this</span><span class="p">.</span><span class="nx">draw</span><span class="p">();</span></div><div class='line' id='LC9424'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC9425'> <span class="p">}</span></div><div class='line' id='LC9426'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC9427'> <span class="p">}</span></div><div class='line' id='LC9428'> <span class="p">}</span></div><div class='line' id='LC9429'><br/></div><div class='line' id='LC9430'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">verticalRenderReverse</span> <span class="o">&&</span> <span class="nx">r</span> <span class="o">>=</span> <span class="k">this</span><span class="p">.</span><span class="nx">rowFilter</span><span class="p">.</span><span class="nx">fixedCount</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9431'> <span class="k">if</span> <span class="p">(</span><span class="nx">offsetRow</span> <span class="o">===</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9432'> <span class="k">break</span><span class="p">;</span></div><div class='line' id='LC9433'> <span class="p">}</span></div><div class='line' id='LC9434'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">update</span><span class="p">(</span><span class="s1">'offsetRow'</span><span class="p">,</span> <span class="nx">offsetRow</span> <span class="o">-</span> <span class="mi">1</span><span class="p">);</span></div><div class='line' id='LC9435'> <span class="k">this</span><span class="p">.</span><span class="nx">rowFilter</span><span class="p">.</span><span class="nx">readSettings</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">);</span></div><div class='line' id='LC9436'> <span class="p">}</span></div><div class='line' id='LC9437'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC9438'> <span class="nx">r</span><span class="o">++</span><span class="p">;</span></div><div class='line' id='LC9439'> <span class="p">}</span></div><div class='line' id='LC9440'><br/></div><div class='line' id='LC9441'> <span class="nx">source_r</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">rowFilter</span><span class="p">.</span><span class="nx">visibleToSource</span><span class="p">(</span><span class="nx">r</span><span class="p">);</span></div><div class='line' id='LC9442'> <span class="p">}</span></div><div class='line' id='LC9443'> <span class="p">}</span></div><div class='line' id='LC9444'><br/></div><div class='line' id='LC9445'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">adjusted</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9446'> <span class="k">this</span><span class="p">.</span><span class="nx">adjustAvailableNodes</span><span class="p">();</span></div><div class='line' id='LC9447'> <span class="p">}</span></div><div class='line' id='LC9448'><br/></div><div class='line' id='LC9449'> <span class="nx">r</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">rowStrategy</span><span class="p">.</span><span class="nx">countVisible</span><span class="p">();</span></div><div class='line' id='LC9450'> <span class="k">while</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">tbodyChildrenLength</span> <span class="o">></span> <span class="nx">r</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9451'> <span class="k">this</span><span class="p">.</span><span class="nx">TBODY</span><span class="p">.</span><span class="nx">removeChild</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">TBODY</span><span class="p">.</span><span class="nx">lastChild</span><span class="p">);</span></div><div class='line' id='LC9452'> <span class="k">this</span><span class="p">.</span><span class="nx">tbodyChildrenLength</span><span class="o">--</span><span class="p">;</span></div><div class='line' id='LC9453'> <span class="p">}</span></div><div class='line' id='LC9454'><br/></div><div class='line' id='LC9455'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtScrollbars</span><span class="p">.</span><span class="nx">refresh</span><span class="p">();</span></div><div class='line' id='LC9456'><br/></div><div class='line' id='LC9457'> <span class="k">if</span> <span class="p">(</span><span class="nx">workspaceWidth</span> <span class="o">!==</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtViewport</span><span class="p">.</span><span class="nx">getWorkspaceWidth</span><span class="p">())</span> <span class="p">{</span></div><div class='line' id='LC9458'> <span class="c1">//workspace width changed though to shown/hidden vertical scrollbar. Let's reapply stretching</span></div><div class='line' id='LC9459'> <span class="k">this</span><span class="p">.</span><span class="nx">columnStrategy</span><span class="p">.</span><span class="nx">stretch</span><span class="p">();</span></div><div class='line' id='LC9460'> <span class="k">for</span> <span class="p">(</span><span class="nx">c</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">c</span> <span class="o"><</span> <span class="k">this</span><span class="p">.</span><span class="nx">columnStrategy</span><span class="p">.</span><span class="nx">cellCount</span><span class="p">;</span> <span class="nx">c</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9461'> <span class="k">this</span><span class="p">.</span><span class="nx">COLGROUP</span><span class="p">.</span><span class="nx">childNodes</span><span class="p">[</span><span class="nx">c</span> <span class="o">+</span> <span class="nx">displayThs</span><span class="p">].</span><span class="nx">style</span><span class="p">.</span><span class="nx">width</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">columnStrategy</span><span class="p">.</span><span class="nx">getSize</span><span class="p">(</span><span class="nx">c</span><span class="p">)</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC9462'> <span class="p">}</span></div><div class='line' id='LC9463'> <span class="p">}</span></div><div class='line' id='LC9464'><br/></div><div class='line' id='LC9465'> <span class="k">this</span><span class="p">.</span><span class="nx">verticalRenderReverse</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC9466'><span class="p">};</span></div><div class='line' id='LC9467'><br/></div><div class='line' id='LC9468'><span class="nx">WalkontableTable</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">refreshPositions</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">selectionsOnly</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9469'> <span class="k">this</span><span class="p">.</span><span class="nx">refreshHiderDimensions</span><span class="p">();</span></div><div class='line' id='LC9470'> <span class="k">this</span><span class="p">.</span><span class="nx">refreshSelections</span><span class="p">(</span><span class="nx">selectionsOnly</span><span class="p">);</span></div><div class='line' id='LC9471'><span class="p">};</span></div><div class='line' id='LC9472'><br/></div><div class='line' id='LC9473'><span class="nx">WalkontableTable</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">refreshSelections</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">selectionsOnly</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9474'> <span class="kd">var</span> <span class="nx">vr</span></div><div class='line' id='LC9475'> <span class="p">,</span> <span class="nx">r</span></div><div class='line' id='LC9476'> <span class="p">,</span> <span class="nx">vc</span></div><div class='line' id='LC9477'> <span class="p">,</span> <span class="nx">c</span></div><div class='line' id='LC9478'> <span class="p">,</span> <span class="nx">s</span></div><div class='line' id='LC9479'> <span class="p">,</span> <span class="nx">slen</span></div><div class='line' id='LC9480'> <span class="p">,</span> <span class="nx">classNames</span> <span class="o">=</span> <span class="p">[]</span></div><div class='line' id='LC9481'> <span class="p">,</span> <span class="nx">visibleRows</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">rowStrategy</span><span class="p">.</span><span class="nx">countVisible</span><span class="p">()</span></div><div class='line' id='LC9482'> <span class="p">,</span> <span class="nx">visibleColumns</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">columnStrategy</span><span class="p">.</span><span class="nx">countVisible</span><span class="p">();</span></div><div class='line' id='LC9483'><br/></div><div class='line' id='LC9484'> <span class="k">this</span><span class="p">.</span><span class="nx">oldCellCache</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">currentCellCache</span><span class="p">;</span></div><div class='line' id='LC9485'> <span class="k">this</span><span class="p">.</span><span class="nx">currentCellCache</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WalkontableClassNameCache</span><span class="p">();</span></div><div class='line' id='LC9486'><br/></div><div class='line' id='LC9487'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">selections</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9488'> <span class="k">for</span> <span class="p">(</span><span class="nx">r</span> <span class="k">in</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">selections</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9489'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">selections</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">r</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC9490'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">selections</span><span class="p">[</span><span class="nx">r</span><span class="p">].</span><span class="nx">draw</span><span class="p">();</span></div><div class='line' id='LC9491'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">selections</span><span class="p">[</span><span class="nx">r</span><span class="p">].</span><span class="nx">settings</span><span class="p">.</span><span class="nx">className</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9492'> <span class="nx">classNames</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">selections</span><span class="p">[</span><span class="nx">r</span><span class="p">].</span><span class="nx">settings</span><span class="p">.</span><span class="nx">className</span><span class="p">);</span></div><div class='line' id='LC9493'> <span class="p">}</span></div><div class='line' id='LC9494'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">selections</span><span class="p">[</span><span class="nx">r</span><span class="p">].</span><span class="nx">settings</span><span class="p">.</span><span class="nx">highlightRowClassName</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9495'> <span class="nx">classNames</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">selections</span><span class="p">[</span><span class="nx">r</span><span class="p">].</span><span class="nx">settings</span><span class="p">.</span><span class="nx">highlightRowClassName</span><span class="p">);</span></div><div class='line' id='LC9496'> <span class="p">}</span></div><div class='line' id='LC9497'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">selections</span><span class="p">[</span><span class="nx">r</span><span class="p">].</span><span class="nx">settings</span><span class="p">.</span><span class="nx">highlightColumnClassName</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9498'> <span class="nx">classNames</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">selections</span><span class="p">[</span><span class="nx">r</span><span class="p">].</span><span class="nx">settings</span><span class="p">.</span><span class="nx">highlightColumnClassName</span><span class="p">);</span></div><div class='line' id='LC9499'> <span class="p">}</span></div><div class='line' id='LC9500'> <span class="p">}</span></div><div class='line' id='LC9501'> <span class="p">}</span></div><div class='line' id='LC9502'> <span class="p">}</span></div><div class='line' id='LC9503'><br/></div><div class='line' id='LC9504'> <span class="nx">slen</span> <span class="o">=</span> <span class="nx">classNames</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span></div><div class='line' id='LC9505'><br/></div><div class='line' id='LC9506'> <span class="k">for</span> <span class="p">(</span><span class="nx">vr</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">vr</span> <span class="o"><</span> <span class="nx">visibleRows</span><span class="p">;</span> <span class="nx">vr</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9507'> <span class="k">for</span> <span class="p">(</span><span class="nx">vc</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">vc</span> <span class="o"><</span> <span class="nx">visibleColumns</span><span class="p">;</span> <span class="nx">vc</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9508'> <span class="nx">r</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">rowFilter</span><span class="p">.</span><span class="nx">visibleToSource</span><span class="p">(</span><span class="nx">vr</span><span class="p">);</span></div><div class='line' id='LC9509'> <span class="nx">c</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">columnFilter</span><span class="p">.</span><span class="nx">visibleToSource</span><span class="p">(</span><span class="nx">vc</span><span class="p">);</span></div><div class='line' id='LC9510'> <span class="k">for</span> <span class="p">(</span><span class="nx">s</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">s</span> <span class="o"><</span> <span class="nx">slen</span><span class="p">;</span> <span class="nx">s</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9511'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">currentCellCache</span><span class="p">.</span><span class="nx">test</span><span class="p">(</span><span class="nx">vr</span><span class="p">,</span> <span class="nx">vc</span><span class="p">,</span> <span class="nx">classNames</span><span class="p">[</span><span class="nx">s</span><span class="p">]))</span> <span class="p">{</span></div><div class='line' id='LC9512'> <span class="k">this</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">getCell</span><span class="p">([</span><span class="nx">r</span><span class="p">,</span> <span class="nx">c</span><span class="p">]),</span> <span class="nx">classNames</span><span class="p">[</span><span class="nx">s</span><span class="p">]);</span></div><div class='line' id='LC9513'> <span class="p">}</span></div><div class='line' id='LC9514'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">selectionsOnly</span> <span class="o">&&</span> <span class="k">this</span><span class="p">.</span><span class="nx">oldCellCache</span><span class="p">.</span><span class="nx">test</span><span class="p">(</span><span class="nx">vr</span><span class="p">,</span> <span class="nx">vc</span><span class="p">,</span> <span class="nx">classNames</span><span class="p">[</span><span class="nx">s</span><span class="p">]))</span> <span class="p">{</span></div><div class='line' id='LC9515'> <span class="k">this</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">removeClass</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">getCell</span><span class="p">([</span><span class="nx">r</span><span class="p">,</span> <span class="nx">c</span><span class="p">]),</span> <span class="nx">classNames</span><span class="p">[</span><span class="nx">s</span><span class="p">]);</span></div><div class='line' id='LC9516'> <span class="p">}</span></div><div class='line' id='LC9517'> <span class="p">}</span></div><div class='line' id='LC9518'> <span class="p">}</span></div><div class='line' id='LC9519'> <span class="p">}</span></div><div class='line' id='LC9520'><span class="p">};</span></div><div class='line' id='LC9521'><br/></div><div class='line' id='LC9522'><span class="cm">/**</span></div><div class='line' id='LC9523'><span class="cm"> * getCell</span></div><div class='line' id='LC9524'><span class="cm"> * @param {Array} coords</span></div><div class='line' id='LC9525'><span class="cm"> * @return {Object} HTMLElement on success or {Number} one of the exit codes on error:</span></div><div class='line' id='LC9526'><span class="cm"> * -1 row before viewport</span></div><div class='line' id='LC9527'><span class="cm"> * -2 row after viewport</span></div><div class='line' id='LC9528'><span class="cm"> * -3 column before viewport</span></div><div class='line' id='LC9529'><span class="cm"> * -4 column after viewport</span></div><div class='line' id='LC9530'><span class="cm"> *</span></div><div class='line' id='LC9531'><span class="cm"> */</span></div><div class='line' id='LC9532'><span class="nx">WalkontableTable</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">getCell</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">coords</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9533'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">isRowBeforeViewport</span><span class="p">(</span><span class="nx">coords</span><span class="p">[</span><span class="mi">0</span><span class="p">]))</span> <span class="p">{</span></div><div class='line' id='LC9534'> <span class="k">return</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span> <span class="c1">//row before viewport</span></div><div class='line' id='LC9535'> <span class="p">}</span></div><div class='line' id='LC9536'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">isRowAfterViewport</span><span class="p">(</span><span class="nx">coords</span><span class="p">[</span><span class="mi">0</span><span class="p">]))</span> <span class="p">{</span></div><div class='line' id='LC9537'> <span class="k">return</span> <span class="o">-</span><span class="mi">2</span><span class="p">;</span> <span class="c1">//row after viewport</span></div><div class='line' id='LC9538'> <span class="p">}</span></div><div class='line' id='LC9539'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC9540'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">isColumnBeforeViewport</span><span class="p">(</span><span class="nx">coords</span><span class="p">[</span><span class="mi">1</span><span class="p">]))</span> <span class="p">{</span></div><div class='line' id='LC9541'> <span class="k">return</span> <span class="o">-</span><span class="mi">3</span><span class="p">;</span> <span class="c1">//column before viewport</span></div><div class='line' id='LC9542'> <span class="p">}</span></div><div class='line' id='LC9543'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">isColumnAfterViewport</span><span class="p">(</span><span class="nx">coords</span><span class="p">[</span><span class="mi">1</span><span class="p">]))</span> <span class="p">{</span></div><div class='line' id='LC9544'> <span class="k">return</span> <span class="o">-</span><span class="mi">4</span><span class="p">;</span> <span class="c1">//column after viewport</span></div><div class='line' id='LC9545'> <span class="p">}</span></div><div class='line' id='LC9546'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC9547'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">TBODY</span><span class="p">.</span><span class="nx">childNodes</span><span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">rowFilter</span><span class="p">.</span><span class="nx">sourceToVisible</span><span class="p">(</span><span class="nx">coords</span><span class="p">[</span><span class="mi">0</span><span class="p">])].</span><span class="nx">childNodes</span><span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">columnFilter</span><span class="p">.</span><span class="nx">sourceColumnToVisibleRowHeadedColumn</span><span class="p">(</span><span class="nx">coords</span><span class="p">[</span><span class="mi">1</span><span class="p">])];</span></div><div class='line' id='LC9548'> <span class="p">}</span></div><div class='line' id='LC9549'> <span class="p">}</span></div><div class='line' id='LC9550'><span class="p">};</span></div><div class='line' id='LC9551'><br/></div><div class='line' id='LC9552'><span class="nx">WalkontableTable</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">getCoords</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">TD</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9553'> <span class="k">return</span> <span class="p">[</span></div><div class='line' id='LC9554'> <span class="k">this</span><span class="p">.</span><span class="nx">rowFilter</span><span class="p">.</span><span class="nx">visibleToSource</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">index</span><span class="p">(</span><span class="nx">TD</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">)),</span></div><div class='line' id='LC9555'> <span class="k">this</span><span class="p">.</span><span class="nx">columnFilter</span><span class="p">.</span><span class="nx">visibleRowHeadedColumnToSourceColumn</span><span class="p">(</span><span class="nx">TD</span><span class="p">.</span><span class="nx">cellIndex</span><span class="p">)</span></div><div class='line' id='LC9556'> <span class="p">];</span></div><div class='line' id='LC9557'><span class="p">};</span></div><div class='line' id='LC9558'><br/></div><div class='line' id='LC9559'><span class="c1">//returns -1 if no row is visible</span></div><div class='line' id='LC9560'><span class="nx">WalkontableTable</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">getLastVisibleRow</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC9561'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">rowFilter</span><span class="p">.</span><span class="nx">visibleToSource</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">rowStrategy</span><span class="p">.</span><span class="nx">cellCount</span> <span class="o">-</span> <span class="mi">1</span><span class="p">);</span></div><div class='line' id='LC9562'><span class="p">};</span></div><div class='line' id='LC9563'><br/></div><div class='line' id='LC9564'><span class="c1">//returns -1 if no column is visible</span></div><div class='line' id='LC9565'><span class="nx">WalkontableTable</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">getLastVisibleColumn</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC9566'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">columnFilter</span><span class="p">.</span><span class="nx">visibleToSource</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">columnStrategy</span><span class="p">.</span><span class="nx">cellCount</span> <span class="o">-</span> <span class="mi">1</span><span class="p">);</span></div><div class='line' id='LC9567'><span class="p">};</span></div><div class='line' id='LC9568'><br/></div><div class='line' id='LC9569'><span class="nx">WalkontableTable</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">isRowBeforeViewport</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">r</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9570'> <span class="k">return</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">rowFilter</span><span class="p">.</span><span class="nx">sourceToVisible</span><span class="p">(</span><span class="nx">r</span><span class="p">)</span> <span class="o"><</span> <span class="k">this</span><span class="p">.</span><span class="nx">rowFilter</span><span class="p">.</span><span class="nx">fixedCount</span> <span class="o">&&</span> <span class="nx">r</span> <span class="o">>=</span> <span class="k">this</span><span class="p">.</span><span class="nx">rowFilter</span><span class="p">.</span><span class="nx">fixedCount</span><span class="p">);</span></div><div class='line' id='LC9571'><span class="p">};</span></div><div class='line' id='LC9572'><br/></div><div class='line' id='LC9573'><span class="nx">WalkontableTable</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">isRowAfterViewport</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">r</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9574'> <span class="k">return</span> <span class="p">(</span><span class="nx">r</span> <span class="o">></span> <span class="k">this</span><span class="p">.</span><span class="nx">getLastVisibleRow</span><span class="p">());</span></div><div class='line' id='LC9575'><span class="p">};</span></div><div class='line' id='LC9576'><br/></div><div class='line' id='LC9577'><span class="nx">WalkontableTable</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">isColumnBeforeViewport</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">c</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9578'> <span class="k">return</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">columnFilter</span><span class="p">.</span><span class="nx">sourceToVisible</span><span class="p">(</span><span class="nx">c</span><span class="p">)</span> <span class="o"><</span> <span class="k">this</span><span class="p">.</span><span class="nx">columnFilter</span><span class="p">.</span><span class="nx">fixedCount</span> <span class="o">&&</span> <span class="nx">c</span> <span class="o">>=</span> <span class="k">this</span><span class="p">.</span><span class="nx">columnFilter</span><span class="p">.</span><span class="nx">fixedCount</span><span class="p">);</span></div><div class='line' id='LC9579'><span class="p">};</span></div><div class='line' id='LC9580'><br/></div><div class='line' id='LC9581'><span class="nx">WalkontableTable</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">isColumnAfterViewport</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">c</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9582'> <span class="k">return</span> <span class="p">(</span><span class="nx">c</span> <span class="o">></span> <span class="k">this</span><span class="p">.</span><span class="nx">getLastVisibleColumn</span><span class="p">());</span></div><div class='line' id='LC9583'><span class="p">};</span></div><div class='line' id='LC9584'><br/></div><div class='line' id='LC9585'><span class="nx">WalkontableTable</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">isRowInViewport</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">r</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9586'> <span class="k">return</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">isRowBeforeViewport</span><span class="p">(</span><span class="nx">r</span><span class="p">)</span> <span class="o">&&</span> <span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">isRowAfterViewport</span><span class="p">(</span><span class="nx">r</span><span class="p">));</span></div><div class='line' id='LC9587'><span class="p">};</span></div><div class='line' id='LC9588'><br/></div><div class='line' id='LC9589'><span class="nx">WalkontableTable</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">isColumnInViewport</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">c</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9590'> <span class="k">return</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">isColumnBeforeViewport</span><span class="p">(</span><span class="nx">c</span><span class="p">)</span> <span class="o">&&</span> <span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">isColumnAfterViewport</span><span class="p">(</span><span class="nx">c</span><span class="p">));</span></div><div class='line' id='LC9591'><span class="p">};</span></div><div class='line' id='LC9592'><br/></div><div class='line' id='LC9593'><span class="nx">WalkontableTable</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">isLastRowFullyVisible</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC9594'> <span class="k">return</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">getLastVisibleRow</span><span class="p">()</span> <span class="o">===</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'totalRows'</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span> <span class="o">&&</span> <span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">rowStrategy</span><span class="p">.</span><span class="nx">isLastIncomplete</span><span class="p">());</span></div><div class='line' id='LC9595'><span class="p">};</span></div><div class='line' id='LC9596'><br/></div><div class='line' id='LC9597'><span class="nx">WalkontableTable</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">isLastColumnFullyVisible</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC9598'> <span class="k">return</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">getLastVisibleColumn</span><span class="p">()</span> <span class="o">===</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'totalColumns'</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span> <span class="o">&&</span> <span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">columnStrategy</span><span class="p">.</span><span class="nx">isLastIncomplete</span><span class="p">());</span></div><div class='line' id='LC9599'><span class="p">};</span></div><div class='line' id='LC9600'><br/></div><div class='line' id='LC9601'><span class="kd">function</span> <span class="nx">WalkontableViewport</span><span class="p">(</span><span class="nx">instance</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9602'> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span> <span class="o">=</span> <span class="nx">instance</span><span class="p">;</span></div><div class='line' id='LC9603'> <span class="k">this</span><span class="p">.</span><span class="nx">resetSettings</span><span class="p">();</span></div><div class='line' id='LC9604'><span class="p">}</span></div><div class='line' id='LC9605'><br/></div><div class='line' id='LC9606'><span class="cm">/*WalkontableViewport.prototype.isInSightVertical = function () {</span></div><div class='line' id='LC9607'><span class="cm"> //is table outside viewport bottom edge</span></div><div class='line' id='LC9608'><span class="cm"> if (tableTop > windowHeight + scrollTop) {</span></div><div class='line' id='LC9609'><span class="cm"> return -1;</span></div><div class='line' id='LC9610'><span class="cm"> }</span></div><div class='line' id='LC9611'><br/></div><div class='line' id='LC9612'><span class="cm"> //is table outside viewport top edge</span></div><div class='line' id='LC9613'><span class="cm"> else if (scrollTop > tableTop + tableFakeHeight) {</span></div><div class='line' id='LC9614'><span class="cm"> return -2;</span></div><div class='line' id='LC9615'><span class="cm"> }</span></div><div class='line' id='LC9616'><br/></div><div class='line' id='LC9617'><span class="cm"> //table is in viewport but how much exactly?</span></div><div class='line' id='LC9618'><span class="cm"> else {</span></div><div class='line' id='LC9619'><br/></div><div class='line' id='LC9620'><span class="cm"> }</span></div><div class='line' id='LC9621'><span class="cm">};*/</span></div><div class='line' id='LC9622'><br/></div><div class='line' id='LC9623'><span class="c1">//used by scrollbar</span></div><div class='line' id='LC9624'><span class="nx">WalkontableViewport</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">getWorkspaceHeight</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">proposedHeight</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9625'> <span class="kd">var</span> <span class="nx">height</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'height'</span><span class="p">);</span></div><div class='line' id='LC9626'><br/></div><div class='line' id='LC9627'> <span class="k">if</span> <span class="p">(</span><span class="nx">height</span> <span class="o">===</span> <span class="kc">Infinity</span> <span class="o">||</span> <span class="nx">height</span> <span class="o">===</span> <span class="k">void</span> <span class="mi">0</span> <span class="o">||</span> <span class="nx">height</span> <span class="o">===</span> <span class="kc">null</span> <span class="o">||</span> <span class="nx">height</span> <span class="o"><</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9628'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtScrollbars</span><span class="p">.</span><span class="nx">vertical</span> <span class="k">instanceof</span> <span class="nx">WalkontableScrollbarNative</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9629'> <span class="nx">height</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtScrollbars</span><span class="p">.</span><span class="nx">vertical</span><span class="p">.</span><span class="nx">availableSize</span><span class="p">();</span></div><div class='line' id='LC9630'> <span class="p">}</span></div><div class='line' id='LC9631'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC9632'> <span class="nx">height</span> <span class="o">=</span> <span class="kc">Infinity</span><span class="p">;</span></div><div class='line' id='LC9633'> <span class="p">}</span></div><div class='line' id='LC9634'> <span class="p">}</span></div><div class='line' id='LC9635'><br/></div><div class='line' id='LC9636'> <span class="k">if</span> <span class="p">(</span><span class="nx">height</span> <span class="o">!==</span> <span class="kc">Infinity</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9637'> <span class="k">if</span> <span class="p">(</span><span class="nx">proposedHeight</span> <span class="o">>=</span> <span class="nx">height</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9638'> <span class="nx">height</span> <span class="o">-=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'scrollbarHeight'</span><span class="p">);</span></div><div class='line' id='LC9639'> <span class="p">}</span></div><div class='line' id='LC9640'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtScrollbars</span><span class="p">.</span><span class="nx">horizontal</span><span class="p">.</span><span class="nx">visible</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9641'> <span class="nx">height</span> <span class="o">-=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'scrollbarHeight'</span><span class="p">);</span></div><div class='line' id='LC9642'> <span class="p">}</span></div><div class='line' id='LC9643'> <span class="p">}</span></div><div class='line' id='LC9644'><br/></div><div class='line' id='LC9645'> <span class="k">return</span> <span class="nx">height</span><span class="p">;</span></div><div class='line' id='LC9646'><span class="p">};</span></div><div class='line' id='LC9647'><br/></div><div class='line' id='LC9648'><span class="nx">WalkontableViewport</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">getWorkspaceWidth</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">proposedWidth</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9649'> <span class="kd">var</span> <span class="nx">width</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'width'</span><span class="p">);</span></div><div class='line' id='LC9650'><br/></div><div class='line' id='LC9651'> <span class="k">if</span> <span class="p">(</span><span class="nx">width</span> <span class="o">===</span> <span class="kc">Infinity</span> <span class="o">||</span> <span class="nx">width</span> <span class="o">===</span> <span class="k">void</span> <span class="mi">0</span> <span class="o">||</span> <span class="nx">width</span> <span class="o">===</span> <span class="kc">null</span> <span class="o">||</span> <span class="nx">width</span> <span class="o"><</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9652'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtScrollbars</span><span class="p">.</span><span class="nx">horizontal</span> <span class="k">instanceof</span> <span class="nx">WalkontableScrollbarNative</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9653'> <span class="nx">width</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtScrollbars</span><span class="p">.</span><span class="nx">horizontal</span><span class="p">.</span><span class="nx">availableSize</span><span class="p">();</span></div><div class='line' id='LC9654'> <span class="p">}</span></div><div class='line' id='LC9655'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC9656'> <span class="nx">width</span> <span class="o">=</span> <span class="kc">Infinity</span><span class="p">;</span></div><div class='line' id='LC9657'> <span class="p">}</span></div><div class='line' id='LC9658'> <span class="p">}</span></div><div class='line' id='LC9659'><br/></div><div class='line' id='LC9660'> <span class="k">if</span> <span class="p">(</span><span class="nx">width</span> <span class="o">!==</span> <span class="kc">Infinity</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9661'> <span class="k">if</span> <span class="p">(</span><span class="nx">proposedWidth</span> <span class="o">>=</span> <span class="nx">width</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9662'> <span class="nx">width</span> <span class="o">-=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'scrollbarWidth'</span><span class="p">);</span></div><div class='line' id='LC9663'> <span class="p">}</span></div><div class='line' id='LC9664'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtScrollbars</span><span class="p">.</span><span class="nx">vertical</span><span class="p">.</span><span class="nx">visible</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9665'> <span class="nx">width</span> <span class="o">-=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'scrollbarWidth'</span><span class="p">);</span></div><div class='line' id='LC9666'> <span class="p">}</span></div><div class='line' id='LC9667'> <span class="p">}</span></div><div class='line' id='LC9668'> <span class="k">return</span> <span class="nx">width</span><span class="p">;</span></div><div class='line' id='LC9669'><span class="p">};</span></div><div class='line' id='LC9670'><br/></div><div class='line' id='LC9671'><span class="nx">WalkontableViewport</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">getWorkspaceActualHeight</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC9672'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">outerHeight</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">TABLE</span><span class="p">);</span></div><div class='line' id='LC9673'><span class="p">};</span></div><div class='line' id='LC9674'><br/></div><div class='line' id='LC9675'><span class="nx">WalkontableViewport</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">getWorkspaceActualWidth</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC9676'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">outerWidth</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">TABLE</span><span class="p">)</span> <span class="o">||</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">outerWidth</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">TBODY</span><span class="p">)</span> <span class="o">||</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">outerWidth</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">THEAD</span><span class="p">);</span> <span class="c1">//IE8 reports 0 as <table> offsetWidth;</span></div><div class='line' id='LC9677'><span class="p">};</span></div><div class='line' id='LC9678'><br/></div><div class='line' id='LC9679'><span class="nx">WalkontableViewport</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">getViewportHeight</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">proposedHeight</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9680'> <span class="kd">var</span> <span class="nx">containerHeight</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getWorkspaceHeight</span><span class="p">(</span><span class="nx">proposedHeight</span><span class="p">);</span></div><div class='line' id='LC9681'><br/></div><div class='line' id='LC9682'> <span class="k">if</span> <span class="p">(</span><span class="nx">containerHeight</span> <span class="o">===</span> <span class="kc">Infinity</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9683'> <span class="k">return</span> <span class="nx">containerHeight</span><span class="p">;</span></div><div class='line' id='LC9684'> <span class="p">}</span></div><div class='line' id='LC9685'><br/></div><div class='line' id='LC9686'> <span class="k">if</span> <span class="p">(</span><span class="nb">isNaN</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">columnHeaderHeight</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC9687'> <span class="kd">var</span> <span class="nx">cellOffset</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">offset</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">TBODY</span><span class="p">)</span></div><div class='line' id='LC9688'> <span class="p">,</span> <span class="nx">tableOffset</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">tableOffset</span><span class="p">;</span></div><div class='line' id='LC9689'> <span class="k">this</span><span class="p">.</span><span class="nx">columnHeaderHeight</span> <span class="o">=</span> <span class="nx">cellOffset</span><span class="p">.</span><span class="nx">top</span> <span class="o">-</span> <span class="nx">tableOffset</span><span class="p">.</span><span class="nx">top</span><span class="p">;</span></div><div class='line' id='LC9690'> <span class="p">}</span></div><div class='line' id='LC9691'><br/></div><div class='line' id='LC9692'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">columnHeaderHeight</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9693'> <span class="k">return</span> <span class="nx">containerHeight</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">columnHeaderHeight</span><span class="p">;</span></div><div class='line' id='LC9694'> <span class="p">}</span></div><div class='line' id='LC9695'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC9696'> <span class="k">return</span> <span class="nx">containerHeight</span><span class="p">;</span></div><div class='line' id='LC9697'> <span class="p">}</span></div><div class='line' id='LC9698'><span class="p">};</span></div><div class='line' id='LC9699'><br/></div><div class='line' id='LC9700'><span class="nx">WalkontableViewport</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">getViewportWidth</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">proposedWidth</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9701'> <span class="kd">var</span> <span class="nx">containerWidth</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getWorkspaceWidth</span><span class="p">(</span><span class="nx">proposedWidth</span><span class="p">);</span></div><div class='line' id='LC9702'><br/></div><div class='line' id='LC9703'> <span class="k">if</span> <span class="p">(</span><span class="nx">containerWidth</span> <span class="o">===</span> <span class="kc">Infinity</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9704'> <span class="k">return</span> <span class="nx">containerWidth</span><span class="p">;</span></div><div class='line' id='LC9705'> <span class="p">}</span></div><div class='line' id='LC9706'><br/></div><div class='line' id='LC9707'> <span class="k">if</span> <span class="p">(</span><span class="nb">isNaN</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">rowHeaderWidth</span><span class="p">))</span> <span class="p">{</span></div><div class='line' id='LC9708'> <span class="kd">var</span> <span class="nx">TR</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">TBODY</span> <span class="o">?</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">TBODY</span><span class="p">.</span><span class="nx">firstChild</span> <span class="o">:</span> <span class="kc">null</span><span class="p">;</span></div><div class='line' id='LC9709'> <span class="k">if</span> <span class="p">(</span><span class="nx">TR</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9710'> <span class="kd">var</span> <span class="nx">TD</span> <span class="o">=</span> <span class="nx">TR</span><span class="p">.</span><span class="nx">firstChild</span><span class="p">;</span></div><div class='line' id='LC9711'> <span class="k">this</span><span class="p">.</span><span class="nx">rowHeaderWidth</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC9712'> <span class="k">while</span> <span class="p">(</span><span class="nx">TD</span> <span class="o">&&</span> <span class="nx">TD</span><span class="p">.</span><span class="nx">nodeName</span> <span class="o">===</span> <span class="s1">'TH'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9713'> <span class="k">this</span><span class="p">.</span><span class="nx">rowHeaderWidth</span> <span class="o">+=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtDom</span><span class="p">.</span><span class="nx">outerWidth</span><span class="p">(</span><span class="nx">TD</span><span class="p">);</span></div><div class='line' id='LC9714'> <span class="nx">TD</span> <span class="o">=</span> <span class="nx">TD</span><span class="p">.</span><span class="nx">nextSibling</span><span class="p">;</span></div><div class='line' id='LC9715'> <span class="p">}</span></div><div class='line' id='LC9716'> <span class="p">}</span></div><div class='line' id='LC9717'> <span class="p">}</span></div><div class='line' id='LC9718'><br/></div><div class='line' id='LC9719'> <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">rowHeaderWidth</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9720'> <span class="k">return</span> <span class="nx">containerWidth</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">rowHeaderWidth</span><span class="p">;</span></div><div class='line' id='LC9721'> <span class="p">}</span></div><div class='line' id='LC9722'> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC9723'> <span class="k">return</span> <span class="nx">containerWidth</span><span class="p">;</span></div><div class='line' id='LC9724'> <span class="p">}</span></div><div class='line' id='LC9725'><span class="p">};</span></div><div class='line' id='LC9726'><br/></div><div class='line' id='LC9727'><span class="nx">WalkontableViewport</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">resetSettings</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC9728'> <span class="k">this</span><span class="p">.</span><span class="nx">rowHeaderWidth</span> <span class="o">=</span> <span class="kc">NaN</span><span class="p">;</span></div><div class='line' id='LC9729'> <span class="k">this</span><span class="p">.</span><span class="nx">columnHeaderHeight</span> <span class="o">=</span> <span class="kc">NaN</span><span class="p">;</span></div><div class='line' id='LC9730'><span class="p">};</span></div><div class='line' id='LC9731'><span class="kd">function</span> <span class="nx">WalkontableWheel</span><span class="p">(</span><span class="nx">instance</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9732'> <span class="k">if</span> <span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'scrollbarModelV'</span><span class="p">)</span> <span class="o">===</span> <span class="s1">'native'</span> <span class="o">||</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'scrollbarModelH'</span><span class="p">)</span> <span class="o">===</span> <span class="s1">'native'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9733'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC9734'> <span class="p">}</span></div><div class='line' id='LC9735'><br/></div><div class='line' id='LC9736'> <span class="nx">$</span><span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">TABLE</span><span class="p">).</span><span class="nx">on</span><span class="p">(</span><span class="s1">'mousewheel'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">event</span><span class="p">,</span> <span class="nx">delta</span><span class="p">,</span> <span class="nx">deltaX</span><span class="p">,</span> <span class="nx">deltaY</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9737'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">deltaX</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">deltaY</span> <span class="o">&&</span> <span class="nx">delta</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//we are in IE8, see https://github.com/brandonaaron/jquery-mousewheel/issues/53</span></div><div class='line' id='LC9738'> <span class="nx">deltaY</span> <span class="o">=</span> <span class="nx">delta</span><span class="p">;</span></div><div class='line' id='LC9739'> <span class="p">}</span></div><div class='line' id='LC9740'><br/></div><div class='line' id='LC9741'> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">deltaX</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">deltaY</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//this happens in IE8 test case</span></div><div class='line' id='LC9742'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC9743'> <span class="p">}</span></div><div class='line' id='LC9744'><br/></div><div class='line' id='LC9745'> <span class="k">if</span> <span class="p">(</span><span class="nx">deltaY</span> <span class="o">></span> <span class="mi">0</span> <span class="o">&&</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'offsetRow'</span><span class="p">)</span> <span class="o">===</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9746'> <span class="k">return</span><span class="p">;</span> <span class="c1">//attempt to scroll up when it's already showing first row</span></div><div class='line' id='LC9747'> <span class="p">}</span></div><div class='line' id='LC9748'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">deltaY</span> <span class="o"><</span> <span class="mi">0</span> <span class="o">&&</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">isLastRowFullyVisible</span><span class="p">())</span> <span class="p">{</span></div><div class='line' id='LC9749'> <span class="k">return</span><span class="p">;</span> <span class="c1">//attempt to scroll down when it's already showing last row</span></div><div class='line' id='LC9750'> <span class="p">}</span></div><div class='line' id='LC9751'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">deltaX</span> <span class="o"><</span> <span class="mi">0</span> <span class="o">&&</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">getSetting</span><span class="p">(</span><span class="s1">'offsetColumn'</span><span class="p">)</span> <span class="o">===</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9752'> <span class="k">return</span><span class="p">;</span> <span class="c1">//attempt to scroll left when it's already showing first column</span></div><div class='line' id='LC9753'> <span class="p">}</span></div><div class='line' id='LC9754'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">deltaX</span> <span class="o">></span> <span class="mi">0</span> <span class="o">&&</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">wtTable</span><span class="p">.</span><span class="nx">isLastColumnFullyVisible</span><span class="p">())</span> <span class="p">{</span></div><div class='line' id='LC9755'> <span class="k">return</span><span class="p">;</span> <span class="c1">//attempt to scroll right when it's already showing last column</span></div><div class='line' id='LC9756'> <span class="p">}</span></div><div class='line' id='LC9757'><br/></div><div class='line' id='LC9758'> <span class="c1">//now we are sure we really want to scroll</span></div><div class='line' id='LC9759'> <span class="nx">clearTimeout</span><span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wheelTimeout</span><span class="p">);</span></div><div class='line' id='LC9760'> <span class="nx">instance</span><span class="p">.</span><span class="nx">wheelTimeout</span> <span class="o">=</span> <span class="nx">setTimeout</span><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span> <span class="c1">//timeout is needed because with fast-wheel scrolling mousewheel event comes dozen times per second</span></div><div class='line' id='LC9761'> <span class="k">if</span> <span class="p">(</span><span class="nx">deltaY</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9762'> <span class="c1">//ceil is needed because jquery-mousewheel reports fractional mousewheel deltas on touchpad scroll</span></div><div class='line' id='LC9763'> <span class="c1">//see http://stackoverflow.com/questions/5527601/normalizing-mousewheel-speed-across-browsers</span></div><div class='line' id='LC9764'> <span class="k">if</span> <span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtScrollbars</span><span class="p">.</span><span class="nx">vertical</span><span class="p">.</span><span class="nx">visible</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// if we see scrollbar</span></div><div class='line' id='LC9765'> <span class="nx">instance</span><span class="p">.</span><span class="nx">scrollVertical</span><span class="p">(</span><span class="o">-</span><span class="nb">Math</span><span class="p">.</span><span class="nx">ceil</span><span class="p">(</span><span class="nx">deltaY</span><span class="p">)).</span><span class="nx">draw</span><span class="p">();</span></div><div class='line' id='LC9766'> <span class="p">}</span></div><div class='line' id='LC9767'> <span class="p">}</span></div><div class='line' id='LC9768'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">deltaX</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC9769'> <span class="k">if</span> <span class="p">(</span><span class="nx">instance</span><span class="p">.</span><span class="nx">wtScrollbars</span><span class="p">.</span><span class="nx">horizontal</span><span class="p">.</span><span class="nx">visible</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// if we see scrollbar</span></div><div class='line' id='LC9770'> <span class="nx">instance</span><span class="p">.</span><span class="nx">scrollHorizontal</span><span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">ceil</span><span class="p">(</span><span class="nx">deltaX</span><span class="p">)).</span><span class="nx">draw</span><span class="p">();</span></div><div class='line' id='LC9771'> <span class="p">}</span></div><div class='line' id='LC9772'> <span class="p">}</span></div><div class='line' id='LC9773'> <span class="p">},</span> <span class="mi">0</span><span class="p">);</span></div><div class='line' id='LC9774'><br/></div><div class='line' id='LC9775'> <span class="nx">event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">();</span></div><div class='line' id='LC9776'> <span class="p">});</span></div><div class='line' id='LC9777'><span class="p">}</span></div><div class='line' id='LC9778'><span class="cm">/**</span></div><div class='line' id='LC9779'><span class="cm"> * Dragdealer JS v0.9.5 - patched by Walkontable at lines 66, 309-310, 339-340</span></div><div class='line' id='LC9780'><span class="cm"> * http://code.ovidiu.ch/dragdealer-js</span></div><div class='line' id='LC9781'><span class="cm"> *</span></div><div class='line' id='LC9782'><span class="cm"> * Copyright (c) 2010, Ovidiu Chereches</span></div><div class='line' id='LC9783'><span class="cm"> * MIT License</span></div><div class='line' id='LC9784'><span class="cm"> * http://legal.ovidiu.ch/licenses/MIT</span></div><div class='line' id='LC9785'><span class="cm"> */</span></div><div class='line' id='LC9786'><br/></div><div class='line' id='LC9787'><span class="cm">/* Cursor */</span></div><div class='line' id='LC9788'><br/></div><div class='line' id='LC9789'><span class="kd">var</span> <span class="nx">Cursor</span> <span class="o">=</span></div><div class='line' id='LC9790'><span class="p">{</span></div><div class='line' id='LC9791'> <span class="nx">x</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">y</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span></div><div class='line' id='LC9792'> <span class="nx">init</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span></div><div class='line' id='LC9793'> <span class="p">{</span></div><div class='line' id='LC9794'> <span class="k">this</span><span class="p">.</span><span class="nx">setEvent</span><span class="p">(</span><span class="s1">'mouse'</span><span class="p">);</span></div><div class='line' id='LC9795'> <span class="k">this</span><span class="p">.</span><span class="nx">setEvent</span><span class="p">(</span><span class="s1">'touch'</span><span class="p">);</span></div><div class='line' id='LC9796'> <span class="p">},</span></div><div class='line' id='LC9797'> <span class="nx">setEvent</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">)</span></div><div class='line' id='LC9798'> <span class="p">{</span></div><div class='line' id='LC9799'> <span class="kd">var</span> <span class="nx">moveHandler</span> <span class="o">=</span> <span class="nb">document</span><span class="p">[</span><span class="s1">'on'</span> <span class="o">+</span> <span class="nx">type</span> <span class="o">+</span> <span class="s1">'move'</span><span class="p">]</span> <span class="o">||</span> <span class="kd">function</span><span class="p">(){};</span></div><div class='line' id='LC9800'> <span class="nb">document</span><span class="p">[</span><span class="s1">'on'</span> <span class="o">+</span> <span class="nx">type</span> <span class="o">+</span> <span class="s1">'move'</span><span class="p">]</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span></div><div class='line' id='LC9801'> <span class="p">{</span></div><div class='line' id='LC9802'> <span class="nx">moveHandler</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span></div><div class='line' id='LC9803'> <span class="nx">Cursor</span><span class="p">.</span><span class="nx">refresh</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span></div><div class='line' id='LC9804'> <span class="p">}</span></div><div class='line' id='LC9805'> <span class="p">},</span></div><div class='line' id='LC9806'> <span class="nx">refresh</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span></div><div class='line' id='LC9807'> <span class="p">{</span></div><div class='line' id='LC9808'> <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nx">e</span><span class="p">)</span></div><div class='line' id='LC9809'> <span class="p">{</span></div><div class='line' id='LC9810'> <span class="nx">e</span> <span class="o">=</span> <span class="nb">window</span><span class="p">.</span><span class="nx">event</span><span class="p">;</span></div><div class='line' id='LC9811'> <span class="p">}</span></div><div class='line' id='LC9812'> <span class="k">if</span><span class="p">(</span><span class="nx">e</span><span class="p">.</span><span class="nx">type</span> <span class="o">==</span> <span class="s1">'mousemove'</span><span class="p">)</span></div><div class='line' id='LC9813'> <span class="p">{</span></div><div class='line' id='LC9814'> <span class="k">this</span><span class="p">.</span><span class="nx">set</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span></div><div class='line' id='LC9815'> <span class="p">}</span></div><div class='line' id='LC9816'> <span class="k">else</span> <span class="k">if</span><span class="p">(</span><span class="nx">e</span><span class="p">.</span><span class="nx">touches</span><span class="p">)</span></div><div class='line' id='LC9817'> <span class="p">{</span></div><div class='line' id='LC9818'> <span class="k">this</span><span class="p">.</span><span class="nx">set</span><span class="p">(</span><span class="nx">e</span><span class="p">.</span><span class="nx">touches</span><span class="p">[</span><span class="mi">0</span><span class="p">]);</span></div><div class='line' id='LC9819'> <span class="p">}</span></div><div class='line' id='LC9820'> <span class="p">},</span></div><div class='line' id='LC9821'> <span class="nx">set</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span></div><div class='line' id='LC9822'> <span class="p">{</span></div><div class='line' id='LC9823'> <span class="k">if</span><span class="p">(</span><span class="nx">e</span><span class="p">.</span><span class="nx">pageX</span> <span class="o">||</span> <span class="nx">e</span><span class="p">.</span><span class="nx">pageY</span><span class="p">)</span></div><div class='line' id='LC9824'> <span class="p">{</span></div><div class='line' id='LC9825'> <span class="k">this</span><span class="p">.</span><span class="nx">x</span> <span class="o">=</span> <span class="nx">e</span><span class="p">.</span><span class="nx">pageX</span><span class="p">;</span></div><div class='line' id='LC9826'> <span class="k">this</span><span class="p">.</span><span class="nx">y</span> <span class="o">=</span> <span class="nx">e</span><span class="p">.</span><span class="nx">pageY</span><span class="p">;</span></div><div class='line' id='LC9827'> <span class="p">}</span></div><div class='line' id='LC9828'> <span class="k">else</span> <span class="k">if</span><span class="p">(</span><span class="nx">e</span><span class="p">.</span><span class="nx">clientX</span> <span class="o">||</span> <span class="nx">e</span><span class="p">.</span><span class="nx">clientY</span><span class="p">)</span></div><div class='line' id='LC9829'> <span class="p">{</span></div><div class='line' id='LC9830'> <span class="k">this</span><span class="p">.</span><span class="nx">x</span> <span class="o">=</span> <span class="nx">e</span><span class="p">.</span><span class="nx">clientX</span> <span class="o">+</span> <span class="nb">document</span><span class="p">.</span><span class="nx">body</span><span class="p">.</span><span class="nx">scrollLeft</span> <span class="o">+</span> <span class="nb">document</span><span class="p">.</span><span class="nx">documentElement</span><span class="p">.</span><span class="nx">scrollLeft</span><span class="p">;</span></div><div class='line' id='LC9831'> <span class="k">this</span><span class="p">.</span><span class="nx">y</span> <span class="o">=</span> <span class="nx">e</span><span class="p">.</span><span class="nx">clientY</span> <span class="o">+</span> <span class="nb">document</span><span class="p">.</span><span class="nx">body</span><span class="p">.</span><span class="nx">scrollTop</span> <span class="o">+</span> <span class="nb">document</span><span class="p">.</span><span class="nx">documentElement</span><span class="p">.</span><span class="nx">scrollTop</span><span class="p">;</span></div><div class='line' id='LC9832'> <span class="p">}</span></div><div class='line' id='LC9833'> <span class="p">}</span></div><div class='line' id='LC9834'><span class="p">};</span></div><div class='line' id='LC9835'><span class="nx">Cursor</span><span class="p">.</span><span class="nx">init</span><span class="p">();</span></div><div class='line' id='LC9836'><br/></div><div class='line' id='LC9837'><span class="cm">/* Position */</span></div><div class='line' id='LC9838'><br/></div><div class='line' id='LC9839'><span class="kd">var</span> <span class="nx">Position</span> <span class="o">=</span></div><div class='line' id='LC9840'><span class="p">{</span></div><div class='line' id='LC9841'> <span class="nx">get</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">obj</span><span class="p">)</span></div><div class='line' id='LC9842'> <span class="p">{</span></div><div class='line' id='LC9843'> <span class="kd">var</span> <span class="nx">curtop</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">curleft</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="c1">//Walkontable patch. Original (var curleft = curtop = 0;) created curtop in global scope</span></div><div class='line' id='LC9844'> <span class="k">if</span><span class="p">(</span><span class="nx">obj</span><span class="p">.</span><span class="nx">offsetParent</span><span class="p">)</span></div><div class='line' id='LC9845'> <span class="p">{</span></div><div class='line' id='LC9846'> <span class="k">do</span></div><div class='line' id='LC9847'> <span class="p">{</span></div><div class='line' id='LC9848'> <span class="nx">curleft</span> <span class="o">+=</span> <span class="nx">obj</span><span class="p">.</span><span class="nx">offsetLeft</span><span class="p">;</span></div><div class='line' id='LC9849'> <span class="nx">curtop</span> <span class="o">+=</span> <span class="nx">obj</span><span class="p">.</span><span class="nx">offsetTop</span><span class="p">;</span></div><div class='line' id='LC9850'> <span class="p">}</span></div><div class='line' id='LC9851'> <span class="k">while</span><span class="p">((</span><span class="nx">obj</span> <span class="o">=</span> <span class="nx">obj</span><span class="p">.</span><span class="nx">offsetParent</span><span class="p">));</span></div><div class='line' id='LC9852'> <span class="p">}</span></div><div class='line' id='LC9853'> <span class="k">return</span> <span class="p">[</span><span class="nx">curleft</span><span class="p">,</span> <span class="nx">curtop</span><span class="p">];</span></div><div class='line' id='LC9854'> <span class="p">}</span></div><div class='line' id='LC9855'><span class="p">};</span></div><div class='line' id='LC9856'><br/></div><div class='line' id='LC9857'><span class="cm">/* Dragdealer */</span></div><div class='line' id='LC9858'><br/></div><div class='line' id='LC9859'><span class="kd">var</span> <span class="nx">Dragdealer</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">wrapper</span><span class="p">,</span> <span class="nx">options</span><span class="p">)</span></div><div class='line' id='LC9860'><span class="p">{</span></div><div class='line' id='LC9861'> <span class="k">if</span><span class="p">(</span><span class="k">typeof</span><span class="p">(</span><span class="nx">wrapper</span><span class="p">)</span> <span class="o">==</span> <span class="s1">'string'</span><span class="p">)</span></div><div class='line' id='LC9862'> <span class="p">{</span></div><div class='line' id='LC9863'> <span class="nx">wrapper</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">getElementById</span><span class="p">(</span><span class="nx">wrapper</span><span class="p">);</span></div><div class='line' id='LC9864'> <span class="p">}</span></div><div class='line' id='LC9865'> <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nx">wrapper</span><span class="p">)</span></div><div class='line' id='LC9866'> <span class="p">{</span></div><div class='line' id='LC9867'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC9868'> <span class="p">}</span></div><div class='line' id='LC9869'> <span class="kd">var</span> <span class="nx">handle</span> <span class="o">=</span> <span class="nx">wrapper</span><span class="p">.</span><span class="nx">getElementsByTagName</span><span class="p">(</span><span class="s1">'div'</span><span class="p">)[</span><span class="mi">0</span><span class="p">];</span></div><div class='line' id='LC9870'> <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nx">handle</span> <span class="o">||</span> <span class="nx">handle</span><span class="p">.</span><span class="nx">className</span><span class="p">.</span><span class="nx">search</span><span class="p">(</span><span class="sr">/(^|\s)handle(\s|$)/</span><span class="p">)</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span></div><div class='line' id='LC9871'> <span class="p">{</span></div><div class='line' id='LC9872'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC9873'> <span class="p">}</span></div><div class='line' id='LC9874'> <span class="k">this</span><span class="p">.</span><span class="nx">init</span><span class="p">(</span><span class="nx">wrapper</span><span class="p">,</span> <span class="nx">handle</span><span class="p">,</span> <span class="nx">options</span> <span class="o">||</span> <span class="p">{});</span></div><div class='line' id='LC9875'> <span class="k">this</span><span class="p">.</span><span class="nx">setup</span><span class="p">();</span></div><div class='line' id='LC9876'><span class="p">};</span></div><div class='line' id='LC9877'><span class="nx">Dragdealer</span><span class="p">.</span><span class="nx">prototype</span> <span class="o">=</span></div><div class='line' id='LC9878'><span class="p">{</span></div><div class='line' id='LC9879'> <span class="nx">init</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">wrapper</span><span class="p">,</span> <span class="nx">handle</span><span class="p">,</span> <span class="nx">options</span><span class="p">)</span></div><div class='line' id='LC9880'> <span class="p">{</span></div><div class='line' id='LC9881'> <span class="k">this</span><span class="p">.</span><span class="nx">wrapper</span> <span class="o">=</span> <span class="nx">wrapper</span><span class="p">;</span></div><div class='line' id='LC9882'> <span class="k">this</span><span class="p">.</span><span class="nx">handle</span> <span class="o">=</span> <span class="nx">handle</span><span class="p">;</span></div><div class='line' id='LC9883'> <span class="k">this</span><span class="p">.</span><span class="nx">options</span> <span class="o">=</span> <span class="nx">options</span><span class="p">;</span></div><div class='line' id='LC9884'><br/></div><div class='line' id='LC9885'> <span class="k">this</span><span class="p">.</span><span class="nx">disabled</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getOption</span><span class="p">(</span><span class="s1">'disabled'</span><span class="p">,</span> <span class="kc">false</span><span class="p">);</span></div><div class='line' id='LC9886'> <span class="k">this</span><span class="p">.</span><span class="nx">horizontal</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getOption</span><span class="p">(</span><span class="s1">'horizontal'</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span></div><div class='line' id='LC9887'> <span class="k">this</span><span class="p">.</span><span class="nx">vertical</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getOption</span><span class="p">(</span><span class="s1">'vertical'</span><span class="p">,</span> <span class="kc">false</span><span class="p">);</span></div><div class='line' id='LC9888'> <span class="k">this</span><span class="p">.</span><span class="nx">slide</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getOption</span><span class="p">(</span><span class="s1">'slide'</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span></div><div class='line' id='LC9889'> <span class="k">this</span><span class="p">.</span><span class="nx">steps</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getOption</span><span class="p">(</span><span class="s1">'steps'</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span></div><div class='line' id='LC9890'> <span class="k">this</span><span class="p">.</span><span class="nx">snap</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getOption</span><span class="p">(</span><span class="s1">'snap'</span><span class="p">,</span> <span class="kc">false</span><span class="p">);</span></div><div class='line' id='LC9891'> <span class="k">this</span><span class="p">.</span><span class="nx">loose</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getOption</span><span class="p">(</span><span class="s1">'loose'</span><span class="p">,</span> <span class="kc">false</span><span class="p">);</span></div><div class='line' id='LC9892'> <span class="k">this</span><span class="p">.</span><span class="nx">speed</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getOption</span><span class="p">(</span><span class="s1">'speed'</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span> <span class="o">/</span> <span class="mi">100</span><span class="p">;</span></div><div class='line' id='LC9893'> <span class="k">this</span><span class="p">.</span><span class="nx">xPrecision</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getOption</span><span class="p">(</span><span class="s1">'xPrecision'</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span></div><div class='line' id='LC9894'> <span class="k">this</span><span class="p">.</span><span class="nx">yPrecision</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getOption</span><span class="p">(</span><span class="s1">'yPrecision'</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span></div><div class='line' id='LC9895'><br/></div><div class='line' id='LC9896'> <span class="k">this</span><span class="p">.</span><span class="nx">callback</span> <span class="o">=</span> <span class="nx">options</span><span class="p">.</span><span class="nx">callback</span> <span class="o">||</span> <span class="kc">null</span><span class="p">;</span></div><div class='line' id='LC9897'> <span class="k">this</span><span class="p">.</span><span class="nx">animationCallback</span> <span class="o">=</span> <span class="nx">options</span><span class="p">.</span><span class="nx">animationCallback</span> <span class="o">||</span> <span class="kc">null</span><span class="p">;</span></div><div class='line' id='LC9898'><br/></div><div class='line' id='LC9899'> <span class="k">this</span><span class="p">.</span><span class="nx">bounds</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC9900'> <span class="nx">left</span><span class="o">:</span> <span class="nx">options</span><span class="p">.</span><span class="nx">left</span> <span class="o">||</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">right</span><span class="o">:</span> <span class="o">-</span><span class="p">(</span><span class="nx">options</span><span class="p">.</span><span class="nx">right</span> <span class="o">||</span> <span class="mi">0</span><span class="p">),</span></div><div class='line' id='LC9901'> <span class="nx">top</span><span class="o">:</span> <span class="nx">options</span><span class="p">.</span><span class="nx">top</span> <span class="o">||</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">bottom</span><span class="o">:</span> <span class="o">-</span><span class="p">(</span><span class="nx">options</span><span class="p">.</span><span class="nx">bottom</span> <span class="o">||</span> <span class="mi">0</span><span class="p">),</span></div><div class='line' id='LC9902'> <span class="nx">x0</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">x1</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">xRange</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span></div><div class='line' id='LC9903'> <span class="nx">y0</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">y1</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">yRange</span><span class="o">:</span> <span class="mi">0</span></div><div class='line' id='LC9904'> <span class="p">};</span></div><div class='line' id='LC9905'> <span class="k">this</span><span class="p">.</span><span class="nx">value</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC9906'> <span class="nx">prev</span><span class="o">:</span> <span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">],</span></div><div class='line' id='LC9907'> <span class="nx">current</span><span class="o">:</span> <span class="p">[</span><span class="nx">options</span><span class="p">.</span><span class="nx">x</span> <span class="o">||</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">options</span><span class="p">.</span><span class="nx">y</span> <span class="o">||</span> <span class="mi">0</span><span class="p">],</span></div><div class='line' id='LC9908'> <span class="nx">target</span><span class="o">:</span> <span class="p">[</span><span class="nx">options</span><span class="p">.</span><span class="nx">x</span> <span class="o">||</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">options</span><span class="p">.</span><span class="nx">y</span> <span class="o">||</span> <span class="mi">0</span><span class="p">]</span></div><div class='line' id='LC9909'> <span class="p">};</span></div><div class='line' id='LC9910'> <span class="k">this</span><span class="p">.</span><span class="nx">offset</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC9911'> <span class="nx">wrapper</span><span class="o">:</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">],</span></div><div class='line' id='LC9912'> <span class="nx">mouse</span><span class="o">:</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">],</span></div><div class='line' id='LC9913'> <span class="nx">prev</span><span class="o">:</span> <span class="p">[</span><span class="o">-</span><span class="mi">999999</span><span class="p">,</span> <span class="o">-</span><span class="mi">999999</span><span class="p">],</span></div><div class='line' id='LC9914'> <span class="nx">current</span><span class="o">:</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">],</span></div><div class='line' id='LC9915'> <span class="nx">target</span><span class="o">:</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">]</span></div><div class='line' id='LC9916'> <span class="p">};</span></div><div class='line' id='LC9917'> <span class="k">this</span><span class="p">.</span><span class="nx">change</span> <span class="o">=</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">];</span></div><div class='line' id='LC9918'><br/></div><div class='line' id='LC9919'> <span class="k">this</span><span class="p">.</span><span class="nx">activity</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC9920'> <span class="k">this</span><span class="p">.</span><span class="nx">dragging</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC9921'> <span class="k">this</span><span class="p">.</span><span class="nx">tapping</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC9922'> <span class="p">},</span></div><div class='line' id='LC9923'> <span class="nx">getOption</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">name</span><span class="p">,</span> <span class="nx">defaultValue</span><span class="p">)</span></div><div class='line' id='LC9924'> <span class="p">{</span></div><div class='line' id='LC9925'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">[</span><span class="nx">name</span><span class="p">]</span> <span class="o">!==</span> <span class="kc">undefined</span> <span class="o">?</span> <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">[</span><span class="nx">name</span><span class="p">]</span> <span class="o">:</span> <span class="nx">defaultValue</span><span class="p">;</span></div><div class='line' id='LC9926'> <span class="p">},</span></div><div class='line' id='LC9927'> <span class="nx">setup</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span></div><div class='line' id='LC9928'> <span class="p">{</span></div><div class='line' id='LC9929'> <span class="k">this</span><span class="p">.</span><span class="nx">setWrapperOffset</span><span class="p">();</span></div><div class='line' id='LC9930'> <span class="k">this</span><span class="p">.</span><span class="nx">setBoundsPadding</span><span class="p">();</span></div><div class='line' id='LC9931'> <span class="k">this</span><span class="p">.</span><span class="nx">setBounds</span><span class="p">();</span></div><div class='line' id='LC9932'> <span class="k">this</span><span class="p">.</span><span class="nx">setSteps</span><span class="p">();</span></div><div class='line' id='LC9933'><br/></div><div class='line' id='LC9934'> <span class="k">this</span><span class="p">.</span><span class="nx">addListeners</span><span class="p">();</span></div><div class='line' id='LC9935'> <span class="p">},</span></div><div class='line' id='LC9936'> <span class="nx">setWrapperOffset</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span></div><div class='line' id='LC9937'> <span class="p">{</span></div><div class='line' id='LC9938'> <span class="k">this</span><span class="p">.</span><span class="nx">offset</span><span class="p">.</span><span class="nx">wrapper</span> <span class="o">=</span> <span class="nx">Position</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">wrapper</span><span class="p">);</span></div><div class='line' id='LC9939'> <span class="p">},</span></div><div class='line' id='LC9940'> <span class="nx">setBoundsPadding</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span></div><div class='line' id='LC9941'> <span class="p">{</span></div><div class='line' id='LC9942'> <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">left</span> <span class="o">&&</span> <span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">right</span><span class="p">)</span></div><div class='line' id='LC9943'> <span class="p">{</span></div><div class='line' id='LC9944'> <span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">left</span> <span class="o">=</span> <span class="nx">Position</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">handle</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">offset</span><span class="p">.</span><span class="nx">wrapper</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span></div><div class='line' id='LC9945'> <span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">right</span> <span class="o">=</span> <span class="o">-</span><span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">left</span><span class="p">;</span></div><div class='line' id='LC9946'> <span class="p">}</span></div><div class='line' id='LC9947'> <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">top</span> <span class="o">&&</span> <span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">bottom</span><span class="p">)</span></div><div class='line' id='LC9948'> <span class="p">{</span></div><div class='line' id='LC9949'> <span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">top</span> <span class="o">=</span> <span class="nx">Position</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">handle</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">offset</span><span class="p">.</span><span class="nx">wrapper</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span></div><div class='line' id='LC9950'> <span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">bottom</span> <span class="o">=</span> <span class="o">-</span><span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">top</span><span class="p">;</span></div><div class='line' id='LC9951'> <span class="p">}</span></div><div class='line' id='LC9952'> <span class="p">},</span></div><div class='line' id='LC9953'> <span class="nx">setBounds</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span></div><div class='line' id='LC9954'> <span class="p">{</span></div><div class='line' id='LC9955'> <span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">x0</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">left</span><span class="p">;</span></div><div class='line' id='LC9956'> <span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">x1</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">wrapper</span><span class="p">.</span><span class="nx">offsetWidth</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">right</span><span class="p">;</span></div><div class='line' id='LC9957'> <span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">xRange</span> <span class="o">=</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">x1</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">x0</span><span class="p">)</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">handle</span><span class="p">.</span><span class="nx">offsetWidth</span><span class="p">;</span></div><div class='line' id='LC9958'><br/></div><div class='line' id='LC9959'> <span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">y0</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">top</span><span class="p">;</span></div><div class='line' id='LC9960'> <span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">y1</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">wrapper</span><span class="p">.</span><span class="nx">offsetHeight</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">bottom</span><span class="p">;</span></div><div class='line' id='LC9961'> <span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">yRange</span> <span class="o">=</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">y1</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">y0</span><span class="p">)</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">handle</span><span class="p">.</span><span class="nx">offsetHeight</span><span class="p">;</span></div><div class='line' id='LC9962'><br/></div><div class='line' id='LC9963'> <span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">xStep</span> <span class="o">=</span> <span class="mi">1</span> <span class="o">/</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">xPrecision</span> <span class="o">||</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">wrapper</span><span class="p">.</span><span class="nx">offsetWidth</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">handle</span><span class="p">.</span><span class="nx">offsetWidth</span><span class="p">));</span></div><div class='line' id='LC9964'> <span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">yStep</span> <span class="o">=</span> <span class="mi">1</span> <span class="o">/</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">yPrecision</span> <span class="o">||</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">wrapper</span><span class="p">.</span><span class="nx">offsetHeight</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">handle</span><span class="p">.</span><span class="nx">offsetHeight</span><span class="p">));</span></div><div class='line' id='LC9965'> <span class="p">},</span></div><div class='line' id='LC9966'> <span class="nx">setSteps</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span></div><div class='line' id='LC9967'> <span class="p">{</span></div><div class='line' id='LC9968'> <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">steps</span> <span class="o">></span> <span class="mi">1</span><span class="p">)</span></div><div class='line' id='LC9969'> <span class="p">{</span></div><div class='line' id='LC9970'> <span class="k">this</span><span class="p">.</span><span class="nx">stepRatios</span> <span class="o">=</span> <span class="p">[];</span></div><div class='line' id='LC9971'> <span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><=</span> <span class="k">this</span><span class="p">.</span><span class="nx">steps</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span></div><div class='line' id='LC9972'> <span class="p">{</span></div><div class='line' id='LC9973'> <span class="k">this</span><span class="p">.</span><span class="nx">stepRatios</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">=</span> <span class="nx">i</span> <span class="o">/</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">steps</span> <span class="o">-</span> <span class="mi">1</span><span class="p">);</span></div><div class='line' id='LC9974'> <span class="p">}</span></div><div class='line' id='LC9975'> <span class="p">}</span></div><div class='line' id='LC9976'> <span class="p">},</span></div><div class='line' id='LC9977'> <span class="nx">addListeners</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span></div><div class='line' id='LC9978'> <span class="p">{</span></div><div class='line' id='LC9979'> <span class="kd">var</span> <span class="nx">self</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></div><div class='line' id='LC9980'><br/></div><div class='line' id='LC9981'> <span class="k">this</span><span class="p">.</span><span class="nx">wrapper</span><span class="p">.</span><span class="nx">onselectstart</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span></div><div class='line' id='LC9982'> <span class="p">{</span></div><div class='line' id='LC9983'> <span class="k">return</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC9984'> <span class="p">}</span></div><div class='line' id='LC9985'> <span class="k">this</span><span class="p">.</span><span class="nx">handle</span><span class="p">.</span><span class="nx">onmousedown</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">handle</span><span class="p">.</span><span class="nx">ontouchstart</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span></div><div class='line' id='LC9986'> <span class="p">{</span></div><div class='line' id='LC9987'> <span class="nx">self</span><span class="p">.</span><span class="nx">handleDownHandler</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span></div><div class='line' id='LC9988'> <span class="p">};</span></div><div class='line' id='LC9989'> <span class="k">this</span><span class="p">.</span><span class="nx">wrapper</span><span class="p">.</span><span class="nx">onmousedown</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">wrapper</span><span class="p">.</span><span class="nx">ontouchstart</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span></div><div class='line' id='LC9990'> <span class="p">{</span></div><div class='line' id='LC9991'> <span class="nx">self</span><span class="p">.</span><span class="nx">wrapperDownHandler</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span></div><div class='line' id='LC9992'> <span class="p">};</span></div><div class='line' id='LC9993'> <span class="kd">var</span> <span class="nx">mouseUpHandler</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">onmouseup</span> <span class="o">||</span> <span class="kd">function</span><span class="p">(){};</span></div><div class='line' id='LC9994'> <span class="nb">document</span><span class="p">.</span><span class="nx">onmouseup</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span></div><div class='line' id='LC9995'> <span class="p">{</span></div><div class='line' id='LC9996'> <span class="nx">mouseUpHandler</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span></div><div class='line' id='LC9997'> <span class="nx">self</span><span class="p">.</span><span class="nx">documentUpHandler</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span></div><div class='line' id='LC9998'> <span class="p">};</span></div><div class='line' id='LC9999'> <span class="kd">var</span> <span class="nx">touchEndHandler</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">ontouchend</span> <span class="o">||</span> <span class="kd">function</span><span class="p">(){};</span></div><div class='line' id='LC10000'> <span class="nb">document</span><span class="p">.</span><span class="nx">ontouchend</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span></div><div class='line' id='LC10001'> <span class="p">{</span></div><div class='line' id='LC10002'> <span class="nx">touchEndHandler</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span></div><div class='line' id='LC10003'> <span class="nx">self</span><span class="p">.</span><span class="nx">documentUpHandler</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span></div><div class='line' id='LC10004'> <span class="p">};</span></div><div class='line' id='LC10005'> <span class="kd">var</span> <span class="nx">resizeHandler</span> <span class="o">=</span> <span class="nb">window</span><span class="p">.</span><span class="nx">onresize</span> <span class="o">||</span> <span class="kd">function</span><span class="p">(){};</span></div><div class='line' id='LC10006'> <span class="nb">window</span><span class="p">.</span><span class="nx">onresize</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span></div><div class='line' id='LC10007'> <span class="p">{</span></div><div class='line' id='LC10008'> <span class="nx">resizeHandler</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span></div><div class='line' id='LC10009'> <span class="nx">self</span><span class="p">.</span><span class="nx">documentResizeHandler</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span></div><div class='line' id='LC10010'> <span class="p">};</span></div><div class='line' id='LC10011'> <span class="k">this</span><span class="p">.</span><span class="nx">wrapper</span><span class="p">.</span><span class="nx">onmousemove</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span></div><div class='line' id='LC10012'> <span class="p">{</span></div><div class='line' id='LC10013'> <span class="nx">self</span><span class="p">.</span><span class="nx">activity</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC10014'> <span class="p">}</span></div><div class='line' id='LC10015'> <span class="k">this</span><span class="p">.</span><span class="nx">wrapper</span><span class="p">.</span><span class="nx">onclick</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span></div><div class='line' id='LC10016'> <span class="p">{</span></div><div class='line' id='LC10017'> <span class="k">return</span> <span class="o">!</span><span class="nx">self</span><span class="p">.</span><span class="nx">activity</span><span class="p">;</span></div><div class='line' id='LC10018'> <span class="p">}</span></div><div class='line' id='LC10019'><br/></div><div class='line' id='LC10020'> <span class="k">this</span><span class="p">.</span><span class="nx">interval</span> <span class="o">=</span> <span class="nx">setInterval</span><span class="p">(</span><span class="kd">function</span><span class="p">(){</span> <span class="nx">self</span><span class="p">.</span><span class="nx">animate</span><span class="p">()</span> <span class="p">},</span> <span class="mi">25</span><span class="p">);</span></div><div class='line' id='LC10021'> <span class="nx">self</span><span class="p">.</span><span class="nx">animate</span><span class="p">(</span><span class="kc">false</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span></div><div class='line' id='LC10022'> <span class="p">},</span></div><div class='line' id='LC10023'> <span class="nx">handleDownHandler</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span></div><div class='line' id='LC10024'> <span class="p">{</span></div><div class='line' id='LC10025'> <span class="k">this</span><span class="p">.</span><span class="nx">activity</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC10026'> <span class="nx">Cursor</span><span class="p">.</span><span class="nx">refresh</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span></div><div class='line' id='LC10027'><br/></div><div class='line' id='LC10028'> <span class="k">this</span><span class="p">.</span><span class="nx">preventDefaults</span><span class="p">(</span><span class="nx">e</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span></div><div class='line' id='LC10029'> <span class="k">this</span><span class="p">.</span><span class="nx">startDrag</span><span class="p">();</span></div><div class='line' id='LC10030'> <span class="k">this</span><span class="p">.</span><span class="nx">cancelEvent</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span></div><div class='line' id='LC10031'> <span class="p">},</span></div><div class='line' id='LC10032'> <span class="nx">wrapperDownHandler</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span></div><div class='line' id='LC10033'> <span class="p">{</span></div><div class='line' id='LC10034'> <span class="nx">Cursor</span><span class="p">.</span><span class="nx">refresh</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span></div><div class='line' id='LC10035'><br/></div><div class='line' id='LC10036'> <span class="k">this</span><span class="p">.</span><span class="nx">preventDefaults</span><span class="p">(</span><span class="nx">e</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span></div><div class='line' id='LC10037'> <span class="k">this</span><span class="p">.</span><span class="nx">startTap</span><span class="p">();</span></div><div class='line' id='LC10038'> <span class="p">},</span></div><div class='line' id='LC10039'> <span class="nx">documentUpHandler</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span></div><div class='line' id='LC10040'> <span class="p">{</span></div><div class='line' id='LC10041'> <span class="k">this</span><span class="p">.</span><span class="nx">stopDrag</span><span class="p">();</span></div><div class='line' id='LC10042'> <span class="k">this</span><span class="p">.</span><span class="nx">stopTap</span><span class="p">();</span></div><div class='line' id='LC10043'> <span class="c1">//this.cancelEvent(e);</span></div><div class='line' id='LC10044'> <span class="p">},</span></div><div class='line' id='LC10045'> <span class="nx">documentResizeHandler</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span></div><div class='line' id='LC10046'> <span class="p">{</span></div><div class='line' id='LC10047'> <span class="k">this</span><span class="p">.</span><span class="nx">setWrapperOffset</span><span class="p">();</span></div><div class='line' id='LC10048'> <span class="k">this</span><span class="p">.</span><span class="nx">setBounds</span><span class="p">();</span></div><div class='line' id='LC10049'><br/></div><div class='line' id='LC10050'> <span class="k">this</span><span class="p">.</span><span class="nx">update</span><span class="p">();</span></div><div class='line' id='LC10051'> <span class="p">},</span></div><div class='line' id='LC10052'> <span class="nx">enable</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span></div><div class='line' id='LC10053'> <span class="p">{</span></div><div class='line' id='LC10054'> <span class="k">this</span><span class="p">.</span><span class="nx">disabled</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC10055'> <span class="k">this</span><span class="p">.</span><span class="nx">handle</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">handle</span><span class="p">.</span><span class="nx">className</span><span class="p">.</span><span class="nx">replace</span><span class="p">(</span><span class="sr">/\s?disabled/g</span><span class="p">,</span> <span class="s1">''</span><span class="p">);</span></div><div class='line' id='LC10056'> <span class="p">},</span></div><div class='line' id='LC10057'> <span class="nx">disable</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span></div><div class='line' id='LC10058'> <span class="p">{</span></div><div class='line' id='LC10059'> <span class="k">this</span><span class="p">.</span><span class="nx">disabled</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC10060'> <span class="k">this</span><span class="p">.</span><span class="nx">handle</span><span class="p">.</span><span class="nx">className</span> <span class="o">+=</span> <span class="s1">' disabled'</span><span class="p">;</span></div><div class='line' id='LC10061'> <span class="p">},</span></div><div class='line' id='LC10062'> <span class="nx">setStep</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">x</span><span class="p">,</span> <span class="nx">y</span><span class="p">,</span> <span class="nx">snap</span><span class="p">)</span></div><div class='line' id='LC10063'> <span class="p">{</span></div><div class='line' id='LC10064'> <span class="k">this</span><span class="p">.</span><span class="nx">setValue</span><span class="p">(</span></div><div class='line' id='LC10065'> <span class="k">this</span><span class="p">.</span><span class="nx">steps</span> <span class="o">&&</span> <span class="nx">x</span> <span class="o">></span> <span class="mi">1</span> <span class="o">?</span> <span class="p">(</span><span class="nx">x</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="o">/</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">steps</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="o">:</span> <span class="mi">0</span><span class="p">,</span></div><div class='line' id='LC10066'> <span class="k">this</span><span class="p">.</span><span class="nx">steps</span> <span class="o">&&</span> <span class="nx">y</span> <span class="o">></span> <span class="mi">1</span> <span class="o">?</span> <span class="p">(</span><span class="nx">y</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="o">/</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">steps</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="o">:</span> <span class="mi">0</span><span class="p">,</span></div><div class='line' id='LC10067'> <span class="nx">snap</span></div><div class='line' id='LC10068'> <span class="p">);</span></div><div class='line' id='LC10069'> <span class="p">},</span></div><div class='line' id='LC10070'> <span class="nx">setValue</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">x</span><span class="p">,</span> <span class="nx">y</span><span class="p">,</span> <span class="nx">snap</span><span class="p">)</span></div><div class='line' id='LC10071'> <span class="p">{</span></div><div class='line' id='LC10072'> <span class="k">this</span><span class="p">.</span><span class="nx">setTargetValue</span><span class="p">([</span><span class="nx">x</span><span class="p">,</span> <span class="nx">y</span> <span class="o">||</span> <span class="mi">0</span><span class="p">]);</span></div><div class='line' id='LC10073'> <span class="k">if</span><span class="p">(</span><span class="nx">snap</span><span class="p">)</span></div><div class='line' id='LC10074'> <span class="p">{</span></div><div class='line' id='LC10075'> <span class="k">this</span><span class="p">.</span><span class="nx">groupCopy</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">value</span><span class="p">.</span><span class="nx">current</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">value</span><span class="p">.</span><span class="nx">target</span><span class="p">);</span></div><div class='line' id='LC10076'> <span class="p">}</span></div><div class='line' id='LC10077'> <span class="p">},</span></div><div class='line' id='LC10078'> <span class="nx">startTap</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">target</span><span class="p">)</span></div><div class='line' id='LC10079'> <span class="p">{</span></div><div class='line' id='LC10080'> <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">disabled</span><span class="p">)</span></div><div class='line' id='LC10081'> <span class="p">{</span></div><div class='line' id='LC10082'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC10083'> <span class="p">}</span></div><div class='line' id='LC10084'> <span class="k">this</span><span class="p">.</span><span class="nx">tapping</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC10085'><br/></div><div class='line' id='LC10086'> <span class="k">this</span><span class="p">.</span><span class="nx">setWrapperOffset</span><span class="p">();</span></div><div class='line' id='LC10087'> <span class="k">this</span><span class="p">.</span><span class="nx">setBounds</span><span class="p">();</span></div><div class='line' id='LC10088'><br/></div><div class='line' id='LC10089'> <span class="k">if</span><span class="p">(</span><span class="nx">target</span> <span class="o">===</span> <span class="kc">undefined</span><span class="p">)</span></div><div class='line' id='LC10090'> <span class="p">{</span></div><div class='line' id='LC10091'> <span class="nx">target</span> <span class="o">=</span> <span class="p">[</span></div><div class='line' id='LC10092'> <span class="nx">Cursor</span><span class="p">.</span><span class="nx">x</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">offset</span><span class="p">.</span><span class="nx">wrapper</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">-</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">handle</span><span class="p">.</span><span class="nx">offsetWidth</span> <span class="o">/</span> <span class="mi">2</span><span class="p">),</span></div><div class='line' id='LC10093'> <span class="nx">Cursor</span><span class="p">.</span><span class="nx">y</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">offset</span><span class="p">.</span><span class="nx">wrapper</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">handle</span><span class="p">.</span><span class="nx">offsetHeight</span> <span class="o">/</span> <span class="mi">2</span><span class="p">)</span></div><div class='line' id='LC10094'> <span class="p">];</span></div><div class='line' id='LC10095'> <span class="p">}</span></div><div class='line' id='LC10096'> <span class="k">this</span><span class="p">.</span><span class="nx">setTargetOffset</span><span class="p">(</span><span class="nx">target</span><span class="p">);</span></div><div class='line' id='LC10097'> <span class="p">},</span></div><div class='line' id='LC10098'> <span class="nx">stopTap</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span></div><div class='line' id='LC10099'> <span class="p">{</span></div><div class='line' id='LC10100'> <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">disabled</span> <span class="o">||</span> <span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">tapping</span><span class="p">)</span></div><div class='line' id='LC10101'> <span class="p">{</span></div><div class='line' id='LC10102'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC10103'> <span class="p">}</span></div><div class='line' id='LC10104'> <span class="k">this</span><span class="p">.</span><span class="nx">tapping</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC10105'><br/></div><div class='line' id='LC10106'> <span class="k">this</span><span class="p">.</span><span class="nx">setTargetValue</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">value</span><span class="p">.</span><span class="nx">current</span><span class="p">);</span></div><div class='line' id='LC10107'> <span class="k">this</span><span class="p">.</span><span class="nx">result</span><span class="p">();</span></div><div class='line' id='LC10108'> <span class="p">},</span></div><div class='line' id='LC10109'> <span class="nx">startDrag</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span></div><div class='line' id='LC10110'> <span class="p">{</span></div><div class='line' id='LC10111'> <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">disabled</span><span class="p">)</span></div><div class='line' id='LC10112'> <span class="p">{</span></div><div class='line' id='LC10113'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC10114'> <span class="p">}</span></div><div class='line' id='LC10115'><br/></div><div class='line' id='LC10116'> <span class="k">this</span><span class="p">.</span><span class="nx">setWrapperOffset</span><span class="p">();</span></div><div class='line' id='LC10117'> <span class="k">this</span><span class="p">.</span><span class="nx">setBounds</span><span class="p">();</span></div><div class='line' id='LC10118'><br/></div><div class='line' id='LC10119'> <span class="k">this</span><span class="p">.</span><span class="nx">offset</span><span class="p">.</span><span class="nx">mouse</span> <span class="o">=</span> <span class="p">[</span></div><div class='line' id='LC10120'> <span class="nx">Cursor</span><span class="p">.</span><span class="nx">x</span> <span class="o">-</span> <span class="nx">Position</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">handle</span><span class="p">)[</span><span class="mi">0</span><span class="p">],</span></div><div class='line' id='LC10121'> <span class="nx">Cursor</span><span class="p">.</span><span class="nx">y</span> <span class="o">-</span> <span class="nx">Position</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">handle</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span></div><div class='line' id='LC10122'> <span class="p">];</span></div><div class='line' id='LC10123'><br/></div><div class='line' id='LC10124'> <span class="k">this</span><span class="p">.</span><span class="nx">dragging</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC10125'> <span class="p">},</span></div><div class='line' id='LC10126'> <span class="nx">stopDrag</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span></div><div class='line' id='LC10127'> <span class="p">{</span></div><div class='line' id='LC10128'> <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">disabled</span> <span class="o">||</span> <span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">dragging</span><span class="p">)</span></div><div class='line' id='LC10129'> <span class="p">{</span></div><div class='line' id='LC10130'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC10131'> <span class="p">}</span></div><div class='line' id='LC10132'> <span class="k">this</span><span class="p">.</span><span class="nx">dragging</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC10133'><br/></div><div class='line' id='LC10134'> <span class="kd">var</span> <span class="nx">target</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">groupClone</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">value</span><span class="p">.</span><span class="nx">current</span><span class="p">);</span></div><div class='line' id='LC10135'> <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">slide</span><span class="p">)</span></div><div class='line' id='LC10136'> <span class="p">{</span></div><div class='line' id='LC10137'> <span class="kd">var</span> <span class="nx">ratioChange</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">change</span><span class="p">;</span></div><div class='line' id='LC10138'> <span class="nx">target</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+=</span> <span class="nx">ratioChange</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">*</span> <span class="mi">4</span><span class="p">;</span></div><div class='line' id='LC10139'> <span class="nx">target</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">+=</span> <span class="nx">ratioChange</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">*</span> <span class="mi">4</span><span class="p">;</span></div><div class='line' id='LC10140'> <span class="p">}</span></div><div class='line' id='LC10141'> <span class="k">this</span><span class="p">.</span><span class="nx">setTargetValue</span><span class="p">(</span><span class="nx">target</span><span class="p">);</span></div><div class='line' id='LC10142'> <span class="k">this</span><span class="p">.</span><span class="nx">result</span><span class="p">();</span></div><div class='line' id='LC10143'> <span class="p">},</span></div><div class='line' id='LC10144'> <span class="nx">feedback</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span></div><div class='line' id='LC10145'> <span class="p">{</span></div><div class='line' id='LC10146'> <span class="kd">var</span> <span class="nx">value</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">value</span><span class="p">.</span><span class="nx">current</span><span class="p">;</span></div><div class='line' id='LC10147'> <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">snap</span> <span class="o">&&</span> <span class="k">this</span><span class="p">.</span><span class="nx">steps</span> <span class="o">></span> <span class="mi">1</span><span class="p">)</span></div><div class='line' id='LC10148'> <span class="p">{</span></div><div class='line' id='LC10149'> <span class="nx">value</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getClosestSteps</span><span class="p">(</span><span class="nx">value</span><span class="p">);</span></div><div class='line' id='LC10150'> <span class="p">}</span></div><div class='line' id='LC10151'> <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">groupCompare</span><span class="p">(</span><span class="nx">value</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">value</span><span class="p">.</span><span class="nx">prev</span><span class="p">))</span></div><div class='line' id='LC10152'> <span class="p">{</span></div><div class='line' id='LC10153'> <span class="k">if</span><span class="p">(</span><span class="k">typeof</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">animationCallback</span><span class="p">)</span> <span class="o">==</span> <span class="s1">'function'</span><span class="p">)</span></div><div class='line' id='LC10154'> <span class="p">{</span></div><div class='line' id='LC10155'> <span class="k">this</span><span class="p">.</span><span class="nx">animationCallback</span><span class="p">(</span><span class="nx">value</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="nx">value</span><span class="p">[</span><span class="mi">1</span><span class="p">]);</span></div><div class='line' id='LC10156'> <span class="p">}</span></div><div class='line' id='LC10157'> <span class="k">this</span><span class="p">.</span><span class="nx">groupCopy</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">value</span><span class="p">.</span><span class="nx">prev</span><span class="p">,</span> <span class="nx">value</span><span class="p">);</span></div><div class='line' id='LC10158'> <span class="p">}</span></div><div class='line' id='LC10159'> <span class="p">},</span></div><div class='line' id='LC10160'> <span class="nx">result</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span></div><div class='line' id='LC10161'> <span class="p">{</span></div><div class='line' id='LC10162'> <span class="k">if</span><span class="p">(</span><span class="k">typeof</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">callback</span><span class="p">)</span> <span class="o">==</span> <span class="s1">'function'</span><span class="p">)</span></div><div class='line' id='LC10163'> <span class="p">{</span></div><div class='line' id='LC10164'> <span class="k">this</span><span class="p">.</span><span class="nx">callback</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">value</span><span class="p">.</span><span class="nx">target</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="k">this</span><span class="p">.</span><span class="nx">value</span><span class="p">.</span><span class="nx">target</span><span class="p">[</span><span class="mi">1</span><span class="p">]);</span></div><div class='line' id='LC10165'> <span class="p">}</span></div><div class='line' id='LC10166'> <span class="p">},</span></div><div class='line' id='LC10167'> <span class="nx">animate</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">direct</span><span class="p">,</span> <span class="nx">first</span><span class="p">)</span></div><div class='line' id='LC10168'> <span class="p">{</span></div><div class='line' id='LC10169'> <span class="k">if</span><span class="p">(</span><span class="nx">direct</span> <span class="o">&&</span> <span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">dragging</span><span class="p">)</span></div><div class='line' id='LC10170'> <span class="p">{</span></div><div class='line' id='LC10171'> <span class="k">return</span><span class="p">;</span></div><div class='line' id='LC10172'> <span class="p">}</span></div><div class='line' id='LC10173'> <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">dragging</span><span class="p">)</span></div><div class='line' id='LC10174'> <span class="p">{</span></div><div class='line' id='LC10175'> <span class="kd">var</span> <span class="nx">prevTarget</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">groupClone</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">value</span><span class="p">.</span><span class="nx">target</span><span class="p">);</span></div><div class='line' id='LC10176'><br/></div><div class='line' id='LC10177'> <span class="kd">var</span> <span class="nx">offset</span> <span class="o">=</span> <span class="p">[</span></div><div class='line' id='LC10178'> <span class="nx">Cursor</span><span class="p">.</span><span class="nx">x</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">offset</span><span class="p">.</span><span class="nx">wrapper</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">offset</span><span class="p">.</span><span class="nx">mouse</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span></div><div class='line' id='LC10179'> <span class="nx">Cursor</span><span class="p">.</span><span class="nx">y</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">offset</span><span class="p">.</span><span class="nx">wrapper</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">offset</span><span class="p">.</span><span class="nx">mouse</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span></div><div class='line' id='LC10180'> <span class="p">];</span></div><div class='line' id='LC10181'> <span class="k">this</span><span class="p">.</span><span class="nx">setTargetOffset</span><span class="p">(</span><span class="nx">offset</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">loose</span><span class="p">);</span></div><div class='line' id='LC10182'><br/></div><div class='line' id='LC10183'> <span class="k">this</span><span class="p">.</span><span class="nx">change</span> <span class="o">=</span> <span class="p">[</span></div><div class='line' id='LC10184'> <span class="k">this</span><span class="p">.</span><span class="nx">value</span><span class="p">.</span><span class="nx">target</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">-</span> <span class="nx">prevTarget</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span></div><div class='line' id='LC10185'> <span class="k">this</span><span class="p">.</span><span class="nx">value</span><span class="p">.</span><span class="nx">target</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="nx">prevTarget</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span></div><div class='line' id='LC10186'> <span class="p">];</span></div><div class='line' id='LC10187'> <span class="p">}</span></div><div class='line' id='LC10188'> <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">dragging</span> <span class="o">||</span> <span class="nx">first</span><span class="p">)</span></div><div class='line' id='LC10189'> <span class="p">{</span></div><div class='line' id='LC10190'> <span class="k">this</span><span class="p">.</span><span class="nx">groupCopy</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">value</span><span class="p">.</span><span class="nx">current</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">value</span><span class="p">.</span><span class="nx">target</span><span class="p">);</span></div><div class='line' id='LC10191'> <span class="p">}</span></div><div class='line' id='LC10192'> <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">dragging</span> <span class="o">||</span> <span class="k">this</span><span class="p">.</span><span class="nx">glide</span><span class="p">()</span> <span class="o">||</span> <span class="nx">first</span><span class="p">)</span></div><div class='line' id='LC10193'> <span class="p">{</span></div><div class='line' id='LC10194'> <span class="k">this</span><span class="p">.</span><span class="nx">update</span><span class="p">();</span></div><div class='line' id='LC10195'> <span class="k">this</span><span class="p">.</span><span class="nx">feedback</span><span class="p">();</span></div><div class='line' id='LC10196'> <span class="p">}</span></div><div class='line' id='LC10197'> <span class="p">},</span></div><div class='line' id='LC10198'> <span class="nx">glide</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span></div><div class='line' id='LC10199'> <span class="p">{</span></div><div class='line' id='LC10200'> <span class="kd">var</span> <span class="nx">diff</span> <span class="o">=</span> <span class="p">[</span></div><div class='line' id='LC10201'> <span class="k">this</span><span class="p">.</span><span class="nx">value</span><span class="p">.</span><span class="nx">target</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">value</span><span class="p">.</span><span class="nx">current</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span></div><div class='line' id='LC10202'> <span class="k">this</span><span class="p">.</span><span class="nx">value</span><span class="p">.</span><span class="nx">target</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">value</span><span class="p">.</span><span class="nx">current</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span></div><div class='line' id='LC10203'> <span class="p">];</span></div><div class='line' id='LC10204'> <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nx">diff</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">diff</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span></div><div class='line' id='LC10205'> <span class="p">{</span></div><div class='line' id='LC10206'> <span class="k">return</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC10207'> <span class="p">}</span></div><div class='line' id='LC10208'> <span class="k">if</span><span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">abs</span><span class="p">(</span><span class="nx">diff</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="o">></span> <span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">xStep</span> <span class="o">||</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">abs</span><span class="p">(</span><span class="nx">diff</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="o">></span> <span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">yStep</span><span class="p">)</span></div><div class='line' id='LC10209'> <span class="p">{</span></div><div class='line' id='LC10210'> <span class="k">this</span><span class="p">.</span><span class="nx">value</span><span class="p">.</span><span class="nx">current</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+=</span> <span class="nx">diff</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">*</span> <span class="k">this</span><span class="p">.</span><span class="nx">speed</span><span class="p">;</span></div><div class='line' id='LC10211'> <span class="k">this</span><span class="p">.</span><span class="nx">value</span><span class="p">.</span><span class="nx">current</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">+=</span> <span class="nx">diff</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">*</span> <span class="k">this</span><span class="p">.</span><span class="nx">speed</span><span class="p">;</span></div><div class='line' id='LC10212'> <span class="p">}</span></div><div class='line' id='LC10213'> <span class="k">else</span></div><div class='line' id='LC10214'> <span class="p">{</span></div><div class='line' id='LC10215'> <span class="k">this</span><span class="p">.</span><span class="nx">groupCopy</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">value</span><span class="p">.</span><span class="nx">current</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">value</span><span class="p">.</span><span class="nx">target</span><span class="p">);</span></div><div class='line' id='LC10216'> <span class="p">}</span></div><div class='line' id='LC10217'> <span class="k">return</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC10218'> <span class="p">},</span></div><div class='line' id='LC10219'> <span class="nx">update</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span></div><div class='line' id='LC10220'> <span class="p">{</span></div><div class='line' id='LC10221'> <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">snap</span><span class="p">)</span></div><div class='line' id='LC10222'> <span class="p">{</span></div><div class='line' id='LC10223'> <span class="k">this</span><span class="p">.</span><span class="nx">offset</span><span class="p">.</span><span class="nx">current</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getOffsetsByRatios</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">value</span><span class="p">.</span><span class="nx">current</span><span class="p">);</span></div><div class='line' id='LC10224'> <span class="p">}</span></div><div class='line' id='LC10225'> <span class="k">else</span></div><div class='line' id='LC10226'> <span class="p">{</span></div><div class='line' id='LC10227'> <span class="k">this</span><span class="p">.</span><span class="nx">offset</span><span class="p">.</span><span class="nx">current</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getOffsetsByRatios</span><span class="p">(</span></div><div class='line' id='LC10228'> <span class="k">this</span><span class="p">.</span><span class="nx">getClosestSteps</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">value</span><span class="p">.</span><span class="nx">current</span><span class="p">)</span></div><div class='line' id='LC10229'> <span class="p">);</span></div><div class='line' id='LC10230'> <span class="p">}</span></div><div class='line' id='LC10231'> <span class="k">this</span><span class="p">.</span><span class="nx">show</span><span class="p">();</span></div><div class='line' id='LC10232'> <span class="p">},</span></div><div class='line' id='LC10233'> <span class="nx">show</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span></div><div class='line' id='LC10234'> <span class="p">{</span></div><div class='line' id='LC10235'> <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">groupCompare</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">offset</span><span class="p">.</span><span class="nx">current</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">offset</span><span class="p">.</span><span class="nx">prev</span><span class="p">))</span></div><div class='line' id='LC10236'> <span class="p">{</span></div><div class='line' id='LC10237'> <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">horizontal</span><span class="p">)</span></div><div class='line' id='LC10238'> <span class="p">{</span></div><div class='line' id='LC10239'> <span class="k">this</span><span class="p">.</span><span class="nx">handle</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">left</span> <span class="o">=</span> <span class="nb">String</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">offset</span><span class="p">.</span><span class="nx">current</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC10240'> <span class="p">}</span></div><div class='line' id='LC10241'> <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">vertical</span><span class="p">)</span></div><div class='line' id='LC10242'> <span class="p">{</span></div><div class='line' id='LC10243'> <span class="k">this</span><span class="p">.</span><span class="nx">handle</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">top</span> <span class="o">=</span> <span class="nb">String</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">offset</span><span class="p">.</span><span class="nx">current</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">;</span></div><div class='line' id='LC10244'> <span class="p">}</span></div><div class='line' id='LC10245'> <span class="k">this</span><span class="p">.</span><span class="nx">groupCopy</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">offset</span><span class="p">.</span><span class="nx">prev</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">offset</span><span class="p">.</span><span class="nx">current</span><span class="p">);</span></div><div class='line' id='LC10246'> <span class="p">}</span></div><div class='line' id='LC10247'> <span class="p">},</span></div><div class='line' id='LC10248'> <span class="nx">setTargetValue</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">value</span><span class="p">,</span> <span class="nx">loose</span><span class="p">)</span></div><div class='line' id='LC10249'> <span class="p">{</span></div><div class='line' id='LC10250'> <span class="kd">var</span> <span class="nx">target</span> <span class="o">=</span> <span class="nx">loose</span> <span class="o">?</span> <span class="k">this</span><span class="p">.</span><span class="nx">getLooseValue</span><span class="p">(</span><span class="nx">value</span><span class="p">)</span> <span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">getProperValue</span><span class="p">(</span><span class="nx">value</span><span class="p">);</span></div><div class='line' id='LC10251'><br/></div><div class='line' id='LC10252'> <span class="k">this</span><span class="p">.</span><span class="nx">groupCopy</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">value</span><span class="p">.</span><span class="nx">target</span><span class="p">,</span> <span class="nx">target</span><span class="p">);</span></div><div class='line' id='LC10253'> <span class="k">this</span><span class="p">.</span><span class="nx">offset</span><span class="p">.</span><span class="nx">target</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getOffsetsByRatios</span><span class="p">(</span><span class="nx">target</span><span class="p">);</span></div><div class='line' id='LC10254'> <span class="p">},</span></div><div class='line' id='LC10255'> <span class="nx">setTargetOffset</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">offset</span><span class="p">,</span> <span class="nx">loose</span><span class="p">)</span></div><div class='line' id='LC10256'> <span class="p">{</span></div><div class='line' id='LC10257'> <span class="kd">var</span> <span class="nx">value</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getRatiosByOffsets</span><span class="p">(</span><span class="nx">offset</span><span class="p">);</span></div><div class='line' id='LC10258'> <span class="kd">var</span> <span class="nx">target</span> <span class="o">=</span> <span class="nx">loose</span> <span class="o">?</span> <span class="k">this</span><span class="p">.</span><span class="nx">getLooseValue</span><span class="p">(</span><span class="nx">value</span><span class="p">)</span> <span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">getProperValue</span><span class="p">(</span><span class="nx">value</span><span class="p">);</span></div><div class='line' id='LC10259'><br/></div><div class='line' id='LC10260'> <span class="k">this</span><span class="p">.</span><span class="nx">groupCopy</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">value</span><span class="p">.</span><span class="nx">target</span><span class="p">,</span> <span class="nx">target</span><span class="p">);</span></div><div class='line' id='LC10261'> <span class="k">this</span><span class="p">.</span><span class="nx">offset</span><span class="p">.</span><span class="nx">target</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getOffsetsByRatios</span><span class="p">(</span><span class="nx">target</span><span class="p">);</span></div><div class='line' id='LC10262'> <span class="p">},</span></div><div class='line' id='LC10263'> <span class="nx">getLooseValue</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">value</span><span class="p">)</span></div><div class='line' id='LC10264'> <span class="p">{</span></div><div class='line' id='LC10265'> <span class="kd">var</span> <span class="nx">proper</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getProperValue</span><span class="p">(</span><span class="nx">value</span><span class="p">);</span></div><div class='line' id='LC10266'> <span class="k">return</span> <span class="p">[</span></div><div class='line' id='LC10267'> <span class="nx">proper</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="p">((</span><span class="nx">value</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">-</span> <span class="nx">proper</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="o">/</span> <span class="mi">4</span><span class="p">),</span></div><div class='line' id='LC10268'> <span class="nx">proper</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">+</span> <span class="p">((</span><span class="nx">value</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="nx">proper</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="o">/</span> <span class="mi">4</span><span class="p">)</span></div><div class='line' id='LC10269'> <span class="p">];</span></div><div class='line' id='LC10270'> <span class="p">},</span></div><div class='line' id='LC10271'> <span class="nx">getProperValue</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">value</span><span class="p">)</span></div><div class='line' id='LC10272'> <span class="p">{</span></div><div class='line' id='LC10273'> <span class="kd">var</span> <span class="nx">proper</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">groupClone</span><span class="p">(</span><span class="nx">value</span><span class="p">);</span></div><div class='line' id='LC10274'><br/></div><div class='line' id='LC10275'> <span class="nx">proper</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="nx">proper</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="mi">0</span><span class="p">);</span></div><div class='line' id='LC10276'> <span class="nx">proper</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="nx">proper</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="mi">0</span><span class="p">);</span></div><div class='line' id='LC10277'> <span class="nx">proper</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">min</span><span class="p">(</span><span class="nx">proper</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="mi">1</span><span class="p">);</span></div><div class='line' id='LC10278'> <span class="nx">proper</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">min</span><span class="p">(</span><span class="nx">proper</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="mi">1</span><span class="p">);</span></div><div class='line' id='LC10279'><br/></div><div class='line' id='LC10280'> <span class="k">if</span><span class="p">((</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">dragging</span> <span class="o">&&</span> <span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">tapping</span><span class="p">)</span> <span class="o">||</span> <span class="k">this</span><span class="p">.</span><span class="nx">snap</span><span class="p">)</span></div><div class='line' id='LC10281'> <span class="p">{</span></div><div class='line' id='LC10282'> <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">steps</span> <span class="o">></span> <span class="mi">1</span><span class="p">)</span></div><div class='line' id='LC10283'> <span class="p">{</span></div><div class='line' id='LC10284'> <span class="nx">proper</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getClosestSteps</span><span class="p">(</span><span class="nx">proper</span><span class="p">);</span></div><div class='line' id='LC10285'> <span class="p">}</span></div><div class='line' id='LC10286'> <span class="p">}</span></div><div class='line' id='LC10287'> <span class="k">return</span> <span class="nx">proper</span><span class="p">;</span></div><div class='line' id='LC10288'> <span class="p">},</span></div><div class='line' id='LC10289'> <span class="nx">getRatiosByOffsets</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">group</span><span class="p">)</span></div><div class='line' id='LC10290'> <span class="p">{</span></div><div class='line' id='LC10291'> <span class="k">return</span> <span class="p">[</span></div><div class='line' id='LC10292'> <span class="k">this</span><span class="p">.</span><span class="nx">getRatioByOffset</span><span class="p">(</span><span class="nx">group</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">xRange</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">x0</span><span class="p">),</span></div><div class='line' id='LC10293'> <span class="k">this</span><span class="p">.</span><span class="nx">getRatioByOffset</span><span class="p">(</span><span class="nx">group</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">yRange</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">y0</span><span class="p">)</span></div><div class='line' id='LC10294'> <span class="p">];</span></div><div class='line' id='LC10295'> <span class="p">},</span></div><div class='line' id='LC10296'> <span class="nx">getRatioByOffset</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">offset</span><span class="p">,</span> <span class="nx">range</span><span class="p">,</span> <span class="nx">padding</span><span class="p">)</span></div><div class='line' id='LC10297'> <span class="p">{</span></div><div class='line' id='LC10298'> <span class="k">return</span> <span class="nx">range</span> <span class="o">?</span> <span class="p">(</span><span class="nx">offset</span> <span class="o">-</span> <span class="nx">padding</span><span class="p">)</span> <span class="o">/</span> <span class="nx">range</span> <span class="o">:</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC10299'> <span class="p">},</span></div><div class='line' id='LC10300'> <span class="nx">getOffsetsByRatios</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">group</span><span class="p">)</span></div><div class='line' id='LC10301'> <span class="p">{</span></div><div class='line' id='LC10302'> <span class="k">return</span> <span class="p">[</span></div><div class='line' id='LC10303'> <span class="k">this</span><span class="p">.</span><span class="nx">getOffsetByRatio</span><span class="p">(</span><span class="nx">group</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">xRange</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">x0</span><span class="p">),</span></div><div class='line' id='LC10304'> <span class="k">this</span><span class="p">.</span><span class="nx">getOffsetByRatio</span><span class="p">(</span><span class="nx">group</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">yRange</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">y0</span><span class="p">)</span></div><div class='line' id='LC10305'> <span class="p">];</span></div><div class='line' id='LC10306'> <span class="p">},</span></div><div class='line' id='LC10307'> <span class="nx">getOffsetByRatio</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">ratio</span><span class="p">,</span> <span class="nx">range</span><span class="p">,</span> <span class="nx">padding</span><span class="p">)</span></div><div class='line' id='LC10308'> <span class="p">{</span></div><div class='line' id='LC10309'> <span class="k">return</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">round</span><span class="p">(</span><span class="nx">ratio</span> <span class="o">*</span> <span class="nx">range</span><span class="p">)</span> <span class="o">+</span> <span class="nx">padding</span><span class="p">;</span></div><div class='line' id='LC10310'> <span class="p">},</span></div><div class='line' id='LC10311'> <span class="nx">getClosestSteps</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">group</span><span class="p">)</span></div><div class='line' id='LC10312'> <span class="p">{</span></div><div class='line' id='LC10313'> <span class="k">return</span> <span class="p">[</span></div><div class='line' id='LC10314'> <span class="k">this</span><span class="p">.</span><span class="nx">getClosestStep</span><span class="p">(</span><span class="nx">group</span><span class="p">[</span><span class="mi">0</span><span class="p">]),</span></div><div class='line' id='LC10315'> <span class="k">this</span><span class="p">.</span><span class="nx">getClosestStep</span><span class="p">(</span><span class="nx">group</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span></div><div class='line' id='LC10316'> <span class="p">];</span></div><div class='line' id='LC10317'> <span class="p">},</span></div><div class='line' id='LC10318'> <span class="nx">getClosestStep</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">value</span><span class="p">)</span></div><div class='line' id='LC10319'> <span class="p">{</span></div><div class='line' id='LC10320'> <span class="kd">var</span> <span class="nx">k</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC10321'> <span class="kd">var</span> <span class="nx">min</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC10322'> <span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><=</span> <span class="k">this</span><span class="p">.</span><span class="nx">steps</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span></div><div class='line' id='LC10323'> <span class="p">{</span></div><div class='line' id='LC10324'> <span class="k">if</span><span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">abs</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">stepRatios</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">-</span> <span class="nx">value</span><span class="p">)</span> <span class="o"><</span> <span class="nx">min</span><span class="p">)</span></div><div class='line' id='LC10325'> <span class="p">{</span></div><div class='line' id='LC10326'> <span class="nx">min</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">abs</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">stepRatios</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">-</span> <span class="nx">value</span><span class="p">);</span></div><div class='line' id='LC10327'> <span class="nx">k</span> <span class="o">=</span> <span class="nx">i</span><span class="p">;</span></div><div class='line' id='LC10328'> <span class="p">}</span></div><div class='line' id='LC10329'> <span class="p">}</span></div><div class='line' id='LC10330'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">stepRatios</span><span class="p">[</span><span class="nx">k</span><span class="p">];</span></div><div class='line' id='LC10331'> <span class="p">},</span></div><div class='line' id='LC10332'> <span class="nx">groupCompare</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">a</span><span class="p">,</span> <span class="nx">b</span><span class="p">)</span></div><div class='line' id='LC10333'> <span class="p">{</span></div><div class='line' id='LC10334'> <span class="k">return</span> <span class="nx">a</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="nx">b</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">&&</span> <span class="nx">a</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="nx">b</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span></div><div class='line' id='LC10335'> <span class="p">},</span></div><div class='line' id='LC10336'> <span class="nx">groupCopy</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">a</span><span class="p">,</span> <span class="nx">b</span><span class="p">)</span></div><div class='line' id='LC10337'> <span class="p">{</span></div><div class='line' id='LC10338'> <span class="nx">a</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="nx">b</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span></div><div class='line' id='LC10339'> <span class="nx">a</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="nx">b</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span></div><div class='line' id='LC10340'> <span class="p">},</span></div><div class='line' id='LC10341'> <span class="nx">groupClone</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">a</span><span class="p">)</span></div><div class='line' id='LC10342'> <span class="p">{</span></div><div class='line' id='LC10343'> <span class="k">return</span> <span class="p">[</span><span class="nx">a</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="nx">a</span><span class="p">[</span><span class="mi">1</span><span class="p">]];</span></div><div class='line' id='LC10344'> <span class="p">},</span></div><div class='line' id='LC10345'> <span class="nx">preventDefaults</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">,</span> <span class="nx">selection</span><span class="p">)</span></div><div class='line' id='LC10346'> <span class="p">{</span></div><div class='line' id='LC10347'> <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nx">e</span><span class="p">)</span></div><div class='line' id='LC10348'> <span class="p">{</span></div><div class='line' id='LC10349'> <span class="nx">e</span> <span class="o">=</span> <span class="nb">window</span><span class="p">.</span><span class="nx">event</span><span class="p">;</span></div><div class='line' id='LC10350'> <span class="p">}</span></div><div class='line' id='LC10351'> <span class="k">if</span><span class="p">(</span><span class="nx">e</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">)</span></div><div class='line' id='LC10352'> <span class="p">{</span></div><div class='line' id='LC10353'> <span class="nx">e</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">();</span></div><div class='line' id='LC10354'> <span class="p">}</span></div><div class='line' id='LC10355'> <span class="nx">e</span><span class="p">.</span><span class="nx">returnValue</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></div><div class='line' id='LC10356'><br/></div><div class='line' id='LC10357'> <span class="k">if</span><span class="p">(</span><span class="nx">selection</span> <span class="o">&&</span> <span class="nb">document</span><span class="p">.</span><span class="nx">selection</span><span class="p">)</span></div><div class='line' id='LC10358'> <span class="p">{</span></div><div class='line' id='LC10359'> <span class="nb">document</span><span class="p">.</span><span class="nx">selection</span><span class="p">.</span><span class="nx">empty</span><span class="p">();</span></div><div class='line' id='LC10360'> <span class="p">}</span></div><div class='line' id='LC10361'> <span class="p">},</span></div><div class='line' id='LC10362'> <span class="nx">cancelEvent</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span></div><div class='line' id='LC10363'> <span class="p">{</span></div><div class='line' id='LC10364'> <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nx">e</span><span class="p">)</span></div><div class='line' id='LC10365'> <span class="p">{</span></div><div class='line' id='LC10366'> <span class="nx">e</span> <span class="o">=</span> <span class="nb">window</span><span class="p">.</span><span class="nx">event</span><span class="p">;</span></div><div class='line' id='LC10367'> <span class="p">}</span></div><div class='line' id='LC10368'> <span class="k">if</span><span class="p">(</span><span class="nx">e</span><span class="p">.</span><span class="nx">stopPropagation</span><span class="p">)</span></div><div class='line' id='LC10369'> <span class="p">{</span></div><div class='line' id='LC10370'> <span class="nx">e</span><span class="p">.</span><span class="nx">stopPropagation</span><span class="p">();</span></div><div class='line' id='LC10371'> <span class="p">}</span></div><div class='line' id='LC10372'> <span class="nx">e</span><span class="p">.</span><span class="nx">cancelBubble</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC10373'> <span class="p">}</span></div><div class='line' id='LC10374'><span class="p">};</span></div><div class='line' id='LC10375'><br/></div><div class='line' id='LC10376'><span class="cm">/**</span></div><div class='line' id='LC10377'><span class="cm"> * jQuery.browser shim that makes Walkontable working with jQuery 1.9+</span></div><div class='line' id='LC10378'><span class="cm"> */</span></div><div class='line' id='LC10379'><span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">jQuery</span><span class="p">.</span><span class="nx">browser</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC10380'> <span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC10381'> <span class="kd">var</span> <span class="nx">matched</span><span class="p">,</span> <span class="nx">browser</span><span class="p">;</span></div><div class='line' id='LC10382'><br/></div><div class='line' id='LC10383'> <span class="cm">/*</span></div><div class='line' id='LC10384'><span class="cm"> * Copyright 2011, John Resig</span></div><div class='line' id='LC10385'><span class="cm"> * Dual licensed under the MIT or GPL Version 2 licenses.</span></div><div class='line' id='LC10386'><span class="cm"> * http://jquery.org/license</span></div><div class='line' id='LC10387'><span class="cm"> */</span></div><div class='line' id='LC10388'> <span class="nx">jQuery</span><span class="p">.</span><span class="nx">uaMatch</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">ua</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC10389'> <span class="nx">ua</span> <span class="o">=</span> <span class="nx">ua</span><span class="p">.</span><span class="nx">toLowerCase</span><span class="p">();</span></div><div class='line' id='LC10390'><br/></div><div class='line' id='LC10391'> <span class="kd">var</span> <span class="nx">match</span> <span class="o">=</span> <span class="sr">/(chrome)[ \/]([\w.]+)/</span><span class="p">.</span><span class="nx">exec</span><span class="p">(</span><span class="nx">ua</span><span class="p">)</span> <span class="o">||</span></div><div class='line' id='LC10392'> <span class="sr">/(webkit)[ \/]([\w.]+)/</span><span class="p">.</span><span class="nx">exec</span><span class="p">(</span><span class="nx">ua</span><span class="p">)</span> <span class="o">||</span></div><div class='line' id='LC10393'> <span class="sr">/(opera)(?:.*version|)[ \/]([\w.]+)/</span><span class="p">.</span><span class="nx">exec</span><span class="p">(</span><span class="nx">ua</span><span class="p">)</span> <span class="o">||</span></div><div class='line' id='LC10394'> <span class="sr">/(msie) ([\w.]+)/</span><span class="p">.</span><span class="nx">exec</span><span class="p">(</span><span class="nx">ua</span><span class="p">)</span> <span class="o">||</span></div><div class='line' id='LC10395'> <span class="nx">ua</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="s2">"compatible"</span><span class="p">)</span> <span class="o"><</span> <span class="mi">0</span> <span class="o">&&</span> <span class="sr">/(mozilla)(?:.*? rv:([\w.]+)|)/</span><span class="p">.</span><span class="nx">exec</span><span class="p">(</span><span class="nx">ua</span><span class="p">)</span> <span class="o">||</span></div><div class='line' id='LC10396'> <span class="p">[];</span></div><div class='line' id='LC10397'><br/></div><div class='line' id='LC10398'> <span class="k">return</span> <span class="p">{</span></div><div class='line' id='LC10399'> <span class="nx">browser</span><span class="o">:</span> <span class="nx">match</span><span class="p">[</span> <span class="mi">1</span> <span class="p">]</span> <span class="o">||</span> <span class="s2">""</span><span class="p">,</span></div><div class='line' id='LC10400'> <span class="nx">version</span><span class="o">:</span> <span class="nx">match</span><span class="p">[</span> <span class="mi">2</span> <span class="p">]</span> <span class="o">||</span> <span class="s2">"0"</span></div><div class='line' id='LC10401'> <span class="p">};</span></div><div class='line' id='LC10402'> <span class="p">};</span></div><div class='line' id='LC10403'><br/></div><div class='line' id='LC10404'> <span class="nx">matched</span> <span class="o">=</span> <span class="nx">jQuery</span><span class="p">.</span><span class="nx">uaMatch</span><span class="p">(</span><span class="nx">navigator</span><span class="p">.</span><span class="nx">userAgent</span><span class="p">);</span></div><div class='line' id='LC10405'> <span class="nx">browser</span> <span class="o">=</span> <span class="p">{};</span></div><div class='line' id='LC10406'><br/></div><div class='line' id='LC10407'> <span class="k">if</span> <span class="p">(</span><span class="nx">matched</span><span class="p">.</span><span class="nx">browser</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC10408'> <span class="nx">browser</span><span class="p">[</span> <span class="nx">matched</span><span class="p">.</span><span class="nx">browser</span> <span class="p">]</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC10409'> <span class="nx">browser</span><span class="p">.</span><span class="nx">version</span> <span class="o">=</span> <span class="nx">matched</span><span class="p">.</span><span class="nx">version</span><span class="p">;</span></div><div class='line' id='LC10410'> <span class="p">}</span></div><div class='line' id='LC10411'><br/></div><div class='line' id='LC10412'> <span class="c1">// Chrome is Webkit, but Webkit is also Safari.</span></div><div class='line' id='LC10413'> <span class="k">if</span> <span class="p">(</span><span class="nx">browser</span><span class="p">.</span><span class="nx">chrome</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC10414'> <span class="nx">browser</span><span class="p">.</span><span class="nx">webkit</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC10415'> <span class="p">}</span></div><div class='line' id='LC10416'> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">browser</span><span class="p">.</span><span class="nx">webkit</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC10417'> <span class="nx">browser</span><span class="p">.</span><span class="nx">safari</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></div><div class='line' id='LC10418'> <span class="p">}</span></div><div class='line' id='LC10419'><br/></div><div class='line' id='LC10420'> <span class="nx">jQuery</span><span class="p">.</span><span class="nx">browser</span> <span class="o">=</span> <span class="nx">browser</span><span class="p">;</span></div><div class='line' id='LC10421'><br/></div><div class='line' id='LC10422'> <span class="p">})();</span></div><div class='line' id='LC10423'><span class="p">}</span></div><div class='line' id='LC10424'><span class="cm">/*! Copyright (c) 2013 Brandon Aaron (http://brandonaaron.net)</span></div><div class='line' id='LC10425'><span class="cm"> * Licensed under the MIT License (LICENSE.txt).</span></div><div class='line' id='LC10426'><span class="cm"> *</span></div><div class='line' id='LC10427'><span class="cm"> * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.</span></div><div class='line' id='LC10428'><span class="cm"> * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.</span></div><div class='line' id='LC10429'><span class="cm"> * Thanks to: Seamus Leahy for adding deltaX and deltaY</span></div><div class='line' id='LC10430'><span class="cm"> *</span></div><div class='line' id='LC10431'><span class="cm"> * Version: 3.1.3</span></div><div class='line' id='LC10432'><span class="cm"> *</span></div><div class='line' id='LC10433'><span class="cm"> * Requires: 1.2.2+</span></div><div class='line' id='LC10434'><span class="cm"> */</span></div><div class='line' id='LC10435'><br/></div><div class='line' id='LC10436'><span class="p">(</span><span class="kd">function</span> <span class="p">(</span><span class="nx">factory</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC10437'> <span class="k">if</span> <span class="p">(</span> <span class="k">typeof</span> <span class="nx">define</span> <span class="o">===</span> <span class="s1">'function'</span> <span class="o">&&</span> <span class="nx">define</span><span class="p">.</span><span class="nx">amd</span> <span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC10438'> <span class="c1">// AMD. Register as an anonymous module.</span></div><div class='line' id='LC10439'> <span class="nx">define</span><span class="p">([</span><span class="s1">'jquery'</span><span class="p">],</span> <span class="nx">factory</span><span class="p">);</span></div><div class='line' id='LC10440'> <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">exports</span> <span class="o">===</span> <span class="s1">'object'</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC10441'> <span class="c1">// Node/CommonJS style for Browserify</span></div><div class='line' id='LC10442'> <span class="nx">module</span><span class="p">.</span><span class="nx">exports</span> <span class="o">=</span> <span class="nx">factory</span><span class="p">;</span></div><div class='line' id='LC10443'> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC10444'> <span class="c1">// Browser globals</span></div><div class='line' id='LC10445'> <span class="nx">factory</span><span class="p">(</span><span class="nx">jQuery</span><span class="p">);</span></div><div class='line' id='LC10446'> <span class="p">}</span></div><div class='line' id='LC10447'><span class="p">}(</span><span class="kd">function</span> <span class="p">(</span><span class="nx">$</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC10448'><br/></div><div class='line' id='LC10449'> <span class="kd">var</span> <span class="nx">toFix</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'wheel'</span><span class="p">,</span> <span class="s1">'mousewheel'</span><span class="p">,</span> <span class="s1">'DOMMouseScroll'</span><span class="p">,</span> <span class="s1">'MozMousePixelScroll'</span><span class="p">];</span></div><div class='line' id='LC10450'> <span class="kd">var</span> <span class="nx">toBind</span> <span class="o">=</span> <span class="s1">'onwheel'</span> <span class="k">in</span> <span class="nb">document</span> <span class="o">||</span> <span class="nb">document</span><span class="p">.</span><span class="nx">documentMode</span> <span class="o">>=</span> <span class="mi">9</span> <span class="o">?</span> <span class="p">[</span><span class="s1">'wheel'</span><span class="p">]</span> <span class="o">:</span> <span class="p">[</span><span class="s1">'mousewheel'</span><span class="p">,</span> <span class="s1">'DomMouseScroll'</span><span class="p">,</span> <span class="s1">'MozMousePixelScroll'</span><span class="p">];</span></div><div class='line' id='LC10451'> <span class="kd">var</span> <span class="nx">lowestDelta</span><span class="p">,</span> <span class="nx">lowestDeltaXY</span><span class="p">;</span></div><div class='line' id='LC10452'><br/></div><div class='line' id='LC10453'> <span class="k">if</span> <span class="p">(</span> <span class="nx">$</span><span class="p">.</span><span class="nx">event</span><span class="p">.</span><span class="nx">fixHooks</span> <span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC10454'> <span class="k">for</span> <span class="p">(</span> <span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="nx">toFix</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span><span class="p">;</span> <span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC10455'> <span class="nx">$</span><span class="p">.</span><span class="nx">event</span><span class="p">.</span><span class="nx">fixHooks</span><span class="p">[</span> <span class="nx">toFix</span><span class="p">[</span><span class="o">--</span><span class="nx">i</span><span class="p">]</span> <span class="p">]</span> <span class="o">=</span> <span class="nx">$</span><span class="p">.</span><span class="nx">event</span><span class="p">.</span><span class="nx">mouseHooks</span><span class="p">;</span></div><div class='line' id='LC10456'> <span class="p">}</span></div><div class='line' id='LC10457'> <span class="p">}</span></div><div class='line' id='LC10458'><br/></div><div class='line' id='LC10459'> <span class="nx">$</span><span class="p">.</span><span class="nx">event</span><span class="p">.</span><span class="nx">special</span><span class="p">.</span><span class="nx">mousewheel</span> <span class="o">=</span> <span class="p">{</span></div><div class='line' id='LC10460'> <span class="nx">setup</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC10461'> <span class="k">if</span> <span class="p">(</span> <span class="k">this</span><span class="p">.</span><span class="nx">addEventListener</span> <span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC10462'> <span class="k">for</span> <span class="p">(</span> <span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="nx">toBind</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span><span class="p">;</span> <span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC10463'> <span class="k">this</span><span class="p">.</span><span class="nx">addEventListener</span><span class="p">(</span> <span class="nx">toBind</span><span class="p">[</span><span class="o">--</span><span class="nx">i</span><span class="p">],</span> <span class="nx">handler</span><span class="p">,</span> <span class="kc">false</span> <span class="p">);</span></div><div class='line' id='LC10464'> <span class="p">}</span></div><div class='line' id='LC10465'> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC10466'> <span class="k">this</span><span class="p">.</span><span class="nx">onmousewheel</span> <span class="o">=</span> <span class="nx">handler</span><span class="p">;</span></div><div class='line' id='LC10467'> <span class="p">}</span></div><div class='line' id='LC10468'> <span class="p">},</span></div><div class='line' id='LC10469'><br/></div><div class='line' id='LC10470'> <span class="nx">teardown</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC10471'> <span class="k">if</span> <span class="p">(</span> <span class="k">this</span><span class="p">.</span><span class="nx">removeEventListener</span> <span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC10472'> <span class="k">for</span> <span class="p">(</span> <span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="nx">toBind</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span><span class="p">;</span> <span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC10473'> <span class="k">this</span><span class="p">.</span><span class="nx">removeEventListener</span><span class="p">(</span> <span class="nx">toBind</span><span class="p">[</span><span class="o">--</span><span class="nx">i</span><span class="p">],</span> <span class="nx">handler</span><span class="p">,</span> <span class="kc">false</span> <span class="p">);</span></div><div class='line' id='LC10474'> <span class="p">}</span></div><div class='line' id='LC10475'> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></div><div class='line' id='LC10476'> <span class="k">this</span><span class="p">.</span><span class="nx">onmousewheel</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span></div><div class='line' id='LC10477'> <span class="p">}</span></div><div class='line' id='LC10478'> <span class="p">}</span></div><div class='line' id='LC10479'> <span class="p">};</span></div><div class='line' id='LC10480'><br/></div><div class='line' id='LC10481'> <span class="nx">$</span><span class="p">.</span><span class="nx">fn</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span></div><div class='line' id='LC10482'> <span class="nx">mousewheel</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">fn</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC10483'> <span class="k">return</span> <span class="nx">fn</span> <span class="o">?</span> <span class="k">this</span><span class="p">.</span><span class="nx">bind</span><span class="p">(</span><span class="s2">"mousewheel"</span><span class="p">,</span> <span class="nx">fn</span><span class="p">)</span> <span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">trigger</span><span class="p">(</span><span class="s2">"mousewheel"</span><span class="p">);</span></div><div class='line' id='LC10484'> <span class="p">},</span></div><div class='line' id='LC10485'><br/></div><div class='line' id='LC10486'> <span class="nx">unmousewheel</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">fn</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC10487'> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">unbind</span><span class="p">(</span><span class="s2">"mousewheel"</span><span class="p">,</span> <span class="nx">fn</span><span class="p">);</span></div><div class='line' id='LC10488'> <span class="p">}</span></div><div class='line' id='LC10489'> <span class="p">});</span></div><div class='line' id='LC10490'><br/></div><div class='line' id='LC10491'><br/></div><div class='line' id='LC10492'> <span class="kd">function</span> <span class="nx">handler</span><span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC10493'> <span class="kd">var</span> <span class="nx">orgEvent</span> <span class="o">=</span> <span class="nx">event</span> <span class="o">||</span> <span class="nb">window</span><span class="p">.</span><span class="nx">event</span><span class="p">,</span></div><div class='line' id='LC10494'> <span class="nx">args</span> <span class="o">=</span> <span class="p">[].</span><span class="nx">slice</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">arguments</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span></div><div class='line' id='LC10495'> <span class="nx">delta</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span></div><div class='line' id='LC10496'> <span class="nx">deltaX</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span></div><div class='line' id='LC10497'> <span class="nx">deltaY</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span></div><div class='line' id='LC10498'> <span class="nx">absDelta</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span></div><div class='line' id='LC10499'> <span class="nx">absDeltaXY</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span></div><div class='line' id='LC10500'> <span class="nx">fn</span><span class="p">;</span></div><div class='line' id='LC10501'> <span class="nx">event</span> <span class="o">=</span> <span class="nx">$</span><span class="p">.</span><span class="nx">event</span><span class="p">.</span><span class="nx">fix</span><span class="p">(</span><span class="nx">orgEvent</span><span class="p">);</span></div><div class='line' id='LC10502'> <span class="nx">event</span><span class="p">.</span><span class="nx">type</span> <span class="o">=</span> <span class="s2">"mousewheel"</span><span class="p">;</span></div><div class='line' id='LC10503'><br/></div><div class='line' id='LC10504'> <span class="c1">// Old school scrollwheel delta</span></div><div class='line' id='LC10505'> <span class="k">if</span> <span class="p">(</span> <span class="nx">orgEvent</span><span class="p">.</span><span class="nx">wheelDelta</span> <span class="p">)</span> <span class="p">{</span> <span class="nx">delta</span> <span class="o">=</span> <span class="nx">orgEvent</span><span class="p">.</span><span class="nx">wheelDelta</span><span class="p">;</span> <span class="p">}</span></div><div class='line' id='LC10506'> <span class="k">if</span> <span class="p">(</span> <span class="nx">orgEvent</span><span class="p">.</span><span class="nx">detail</span> <span class="p">)</span> <span class="p">{</span> <span class="nx">delta</span> <span class="o">=</span> <span class="nx">orgEvent</span><span class="p">.</span><span class="nx">detail</span> <span class="o">*</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span> <span class="p">}</span></div><div class='line' id='LC10507'><br/></div><div class='line' id='LC10508'> <span class="c1">// New school wheel delta (wheel event)</span></div><div class='line' id='LC10509'> <span class="k">if</span> <span class="p">(</span> <span class="nx">orgEvent</span><span class="p">.</span><span class="nx">deltaY</span> <span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC10510'> <span class="nx">deltaY</span> <span class="o">=</span> <span class="nx">orgEvent</span><span class="p">.</span><span class="nx">deltaY</span> <span class="o">*</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC10511'> <span class="nx">delta</span> <span class="o">=</span> <span class="nx">deltaY</span><span class="p">;</span></div><div class='line' id='LC10512'> <span class="p">}</span></div><div class='line' id='LC10513'> <span class="k">if</span> <span class="p">(</span> <span class="nx">orgEvent</span><span class="p">.</span><span class="nx">deltaX</span> <span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC10514'> <span class="nx">deltaX</span> <span class="o">=</span> <span class="nx">orgEvent</span><span class="p">.</span><span class="nx">deltaX</span><span class="p">;</span></div><div class='line' id='LC10515'> <span class="nx">delta</span> <span class="o">=</span> <span class="nx">deltaX</span> <span class="o">*</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC10516'> <span class="p">}</span></div><div class='line' id='LC10517'><br/></div><div class='line' id='LC10518'> <span class="c1">// Webkit</span></div><div class='line' id='LC10519'> <span class="k">if</span> <span class="p">(</span> <span class="nx">orgEvent</span><span class="p">.</span><span class="nx">wheelDeltaY</span> <span class="o">!==</span> <span class="kc">undefined</span> <span class="p">)</span> <span class="p">{</span> <span class="nx">deltaY</span> <span class="o">=</span> <span class="nx">orgEvent</span><span class="p">.</span><span class="nx">wheelDeltaY</span><span class="p">;</span> <span class="p">}</span></div><div class='line' id='LC10520'> <span class="k">if</span> <span class="p">(</span> <span class="nx">orgEvent</span><span class="p">.</span><span class="nx">wheelDeltaX</span> <span class="o">!==</span> <span class="kc">undefined</span> <span class="p">)</span> <span class="p">{</span> <span class="nx">deltaX</span> <span class="o">=</span> <span class="nx">orgEvent</span><span class="p">.</span><span class="nx">wheelDeltaX</span> <span class="o">*</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span> <span class="p">}</span></div><div class='line' id='LC10521'><br/></div><div class='line' id='LC10522'> <span class="c1">// Look for lowest delta to normalize the delta values</span></div><div class='line' id='LC10523'> <span class="nx">absDelta</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">abs</span><span class="p">(</span><span class="nx">delta</span><span class="p">);</span></div><div class='line' id='LC10524'> <span class="k">if</span> <span class="p">(</span> <span class="o">!</span><span class="nx">lowestDelta</span> <span class="o">||</span> <span class="nx">absDelta</span> <span class="o"><</span> <span class="nx">lowestDelta</span> <span class="p">)</span> <span class="p">{</span> <span class="nx">lowestDelta</span> <span class="o">=</span> <span class="nx">absDelta</span><span class="p">;</span> <span class="p">}</span></div><div class='line' id='LC10525'> <span class="nx">absDeltaXY</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">abs</span><span class="p">(</span><span class="nx">deltaY</span><span class="p">),</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">abs</span><span class="p">(</span><span class="nx">deltaX</span><span class="p">));</span></div><div class='line' id='LC10526'> <span class="k">if</span> <span class="p">(</span> <span class="o">!</span><span class="nx">lowestDeltaXY</span> <span class="o">||</span> <span class="nx">absDeltaXY</span> <span class="o"><</span> <span class="nx">lowestDeltaXY</span> <span class="p">)</span> <span class="p">{</span> <span class="nx">lowestDeltaXY</span> <span class="o">=</span> <span class="nx">absDeltaXY</span><span class="p">;</span> <span class="p">}</span></div><div class='line' id='LC10527'><br/></div><div class='line' id='LC10528'> <span class="c1">// Get a whole value for the deltas</span></div><div class='line' id='LC10529'> <span class="nx">fn</span> <span class="o">=</span> <span class="nx">delta</span> <span class="o">></span> <span class="mi">0</span> <span class="o">?</span> <span class="s1">'floor'</span> <span class="o">:</span> <span class="s1">'ceil'</span><span class="p">;</span></div><div class='line' id='LC10530'> <span class="nx">delta</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">[</span><span class="nx">fn</span><span class="p">](</span><span class="nx">delta</span> <span class="o">/</span> <span class="nx">lowestDelta</span><span class="p">);</span></div><div class='line' id='LC10531'> <span class="nx">deltaX</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">[</span><span class="nx">fn</span><span class="p">](</span><span class="nx">deltaX</span> <span class="o">/</span> <span class="nx">lowestDeltaXY</span><span class="p">);</span></div><div class='line' id='LC10532'> <span class="nx">deltaY</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">[</span><span class="nx">fn</span><span class="p">](</span><span class="nx">deltaY</span> <span class="o">/</span> <span class="nx">lowestDeltaXY</span><span class="p">);</span></div><div class='line' id='LC10533'><br/></div><div class='line' id='LC10534'> <span class="c1">// Add event and delta to the front of the arguments</span></div><div class='line' id='LC10535'> <span class="nx">args</span><span class="p">.</span><span class="nx">unshift</span><span class="p">(</span><span class="nx">event</span><span class="p">,</span> <span class="nx">delta</span><span class="p">,</span> <span class="nx">deltaX</span><span class="p">,</span> <span class="nx">deltaY</span><span class="p">);</span></div><div class='line' id='LC10536'><br/></div><div class='line' id='LC10537'> <span class="k">return</span> <span class="p">(</span><span class="nx">$</span><span class="p">.</span><span class="nx">event</span><span class="p">.</span><span class="nx">dispatch</span> <span class="o">||</span> <span class="nx">$</span><span class="p">.</span><span class="nx">event</span><span class="p">.</span><span class="nx">handle</span><span class="p">).</span><span class="nx">apply</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">args</span><span class="p">);</span></div><div class='line' id='LC10538'> <span class="p">}</span></div><div class='line' id='LC10539'><br/></div><div class='line' id='LC10540'><span class="p">}));</span></div><div class='line' id='LC10541'><br/></div><div class='line' id='LC10542'><span class="p">})(</span><span class="nx">jQuery</span><span class="p">,</span> <span class="nb">window</span><span class="p">,</span> <span class="nx">Handsontable</span><span class="p">);</span></div></pre></div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<a href="#jump-to-line" rel="facebox[.linejump]" data-hotkey="l" class="js-jump-to-line" style="display:none">Jump to Line</a>
|
|
<div id="jump-to-line" style="display:none">
|
|
<form accept-charset="UTF-8" class="js-jump-to-line-form">
|
|
<input class="linejump-input js-jump-to-line-field" type="text" placeholder="Jump to line…" autofocus>
|
|
<button type="submit" class="button">Go</button>
|
|
</form>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div><!-- /.repo-container -->
|
|
<div class="modal-backdrop"></div>
|
|
</div><!-- /.container -->
|
|
</div><!-- /.site -->
|
|
|
|
|
|
</div><!-- /.wrapper -->
|
|
|
|
<div class="container">
|
|
<div class="site-footer">
|
|
<ul class="site-footer-links right">
|
|
<li><a href="https://status.github.com/">Status</a></li>
|
|
<li><a href="http://developer.github.com">API</a></li>
|
|
<li><a href="http://training.github.com">Training</a></li>
|
|
<li><a href="http://shop.github.com">Shop</a></li>
|
|
<li><a href="/blog">Blog</a></li>
|
|
<li><a href="/about">About</a></li>
|
|
|
|
</ul>
|
|
|
|
<a href="/">
|
|
<span class="mega-octicon octicon-mark-github"></span>
|
|
</a>
|
|
|
|
<ul class="site-footer-links">
|
|
<li>© 2013 <span title="0.09307s from fe3.rs.github.com">GitHub</span>, Inc.</li>
|
|
<li><a href="/site/terms">Terms</a></li>
|
|
<li><a href="/site/privacy">Privacy</a></li>
|
|
<li><a href="/security">Security</a></li>
|
|
<li><a href="/contact">Contact</a></li>
|
|
</ul>
|
|
</div><!-- /.site-footer -->
|
|
</div><!-- /.container -->
|
|
|
|
|
|
<div class="fullscreen-overlay js-fullscreen-overlay" id="fullscreen_overlay">
|
|
<div class="fullscreen-container js-fullscreen-container">
|
|
<div class="textarea-wrap">
|
|
<textarea name="fullscreen-contents" id="fullscreen-contents" class="js-fullscreen-contents" placeholder="" data-suggester="fullscreen_suggester"></textarea>
|
|
<div class="suggester-container">
|
|
<div class="suggester fullscreen-suggester js-navigation-container" id="fullscreen_suggester"
|
|
data-url="/warpech/jquery-handsontable/suggestions/commit">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="fullscreen-sidebar">
|
|
<a href="#" class="exit-fullscreen js-exit-fullscreen tooltipped leftwards" title="Exit Zen Mode">
|
|
<span class="mega-octicon octicon-screen-normal"></span>
|
|
</a>
|
|
<a href="#" class="theme-switcher js-theme-switcher tooltipped leftwards"
|
|
title="Switch themes">
|
|
<span class="octicon octicon-color-mode"></span>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div id="ajax-error-message" class="flash flash-error">
|
|
<span class="octicon octicon-alert"></span>
|
|
<a href="#" class="octicon octicon-remove-close close ajax-error-dismiss"></a>
|
|
Something went wrong with that request. Please try again.
|
|
</div>
|
|
|
|
|
|
</body>
|
|
</html>
|
|
|