This commit is contained in:
Atanas Keranov 2018-12-11 17:41:00 +02:00
Родитель 472c89bdac
Коммит 6651bc970c
65 изменённых файлов: 546 добавлений и 15195 удалений

Просмотреть файл

@ -1,7 +1,17 @@
# what's this?
# - http://editorconfig.org
# EditorConfig is awesome: http://EditorConfig.org
root = true
[*]
end_of_line = lf
insert_final_newline = true
[*.js]
end_of_line = lf
charset = utf-8
indent_style = space
indent_size = 4
indent_size = 4
[*.yml]
indent_style = space
indent_size = 2

34
.gitignore поставляемый
Просмотреть файл

@ -1,4 +1,34 @@
.bundle
.dockerignore
.DS_Store
Gemfile.lock
.editorconfig
.jekyll-metadata
.ruby-version
/.asset-cache/
/_assets/
/_common/root/
/_data/
/_includes/
/_layouts/
/_plugins/
/_templates/
/docs-watcher/
/favicon.ico
/fonts/
/styles/
_site
_tempconfig.yml
bs-config.js
build-docs.sh
copy_content.sh
copy_local.sh
Dockerfile
Gemfile
Gemfile.lock
install-npm.sh
knowledge-base.html
robots.txt
search.html
start-docs.sh
watch.sh
watch.sh/_assets/

6401
.spelling

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -1,73 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Error 404</title>
<link rel="shortcut icon" href="/kendo-ui/favicon.ico"/>
<style>
html {
font-family: Roboto, Helvetica, Arial, sans-serif;
line-height: 1.5em;
}
.content {
max-width: 768px;
padding-left: 200px;
margin: 200px auto;
position: relative;
}
.ninja {
position: absolute;
left: 0;
top: 0;
}
h1 {
margin: 0 0 40px;
font: 600 60px/.9 Roboto, Helvetica, Arial, sans-serif;
letter-spacing: -.03em;
}
h2 {
margin: 0 0 20px;
font: 400 28px/1 Roboto, Helvetica, Arial, sans-serif;
letter-spacing: -.035em;
}
ul {
padding: 0 0 0 1.3em;
margin:0;
}
a,
a:visited {
color: #0487c4;
text-decoration: none;
transition: color .2s ease,opacity .2s ease;
}
a:hover,
a:focus {
color: #036c9c;
text-decoration: underline;
}
</style>
</head>
<body>
<div class="content">
<img class="ninja" src="/kendo-ui/images/ninja-icon.png" />
<h1>
Oh, no! <br />
It seems we've lost this page
</h1>
<h2>
Things you can try:
</h2>
<ul>
<li><a href="#" onclick="history.go(-1); return false;">Go back</a> and try another way</li>
<li>Head to the <a href="/kendo-ui">Documentation Homepage</a></li>
<li>Cheer up and <a href="http://www.telerik.com/download">try our products</a>. Some of them are free!</li>
</ul>
</div>
</body>
</html>

23
Gemfile
Просмотреть файл

@ -1,8 +1,17 @@
source 'https://rubygems.org'
# A sample Gemfile
source "https://rubygems.org"
gem 'uglifier', '3.0.4'
gem 'jekyll', '2.0.3'
gem 'jekyll-sitemap', '0.4.1'
gem 'jekyll-assets'
gem 'github-markdown', '0.6.9'
gem 'html-pipeline', '1.9.0'
# gem "rails"
gem 'jekyll', '~> 3.0'
gem 'jekyll-sitemap'
gem 'wdm', '>= 0.1.0'
gem "kramdown"
gem "rouge"
gem "octokit", "~> 4.0"
gem "jekyll-assets"
gem "uglifier"
gem "autoprefixer-rails"
gem "bootstrap-sass"
gem "oga", "~> 2.3"
gem 'html-pipeline'
gem 'github-markdown'

22
LICENSE
Просмотреть файл

@ -1,22 +0,0 @@
The MIT License (MIT)
Copyright (c) 2015 Telerik
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Просмотреть файл

@ -1 +1,78 @@
# reporting-docs
---
title: Telerik Reporting Documentation Repository
publish: false
---
# Telerik Reporting Public Documentation
Welcome to the GitHub repository for [Telerik Reporting](https://www.telerik.com/reporting) documentation. This repository contains the source content — written in Markdown — that we use to power the Telerik Reporting Documentation at [docs.telerik.com/reporting](https://docs.telerik.com/reporting). If you've arrived here wanting to search and use our docs, head over to [docs.telerik.com/reporting](https://docs.telerik.com/reporting) where our content is prettified and searchable.
We believe that the documentation for a product is at its best when the content is a collaboration between the builders and consumers of that product. As such, this documentation is both public, and open sourced under and MIT license (see below). That means you can clone this repository, or read the docs offline.
It also means that you can play a role in making our docs better for everyone, and if helping us make the Telerik Reporting docs better sounds interesting to you, read on.
## Contributing
There are two ways you can contribute to the public Telerik Reporting documentation: either create an issue in this repository, or fork the repo, make the change and send us a pull request!
* **Create an issue** - If you find an issue with our docs that needs to be addressed, the best way to let us know about it is by [creating an issue in this repository](https://github.com/telerik/reporting-docs/issues). When creating an issue, provide a descriptive title, be as specific as possible and link to the document in question (If you can provide a link to the closest anchor to the issue, all the better). Here's an example:
Title: implementer-guide/integration-with-report-viewers.md is missing an image
Description : Example 3 is missing an image right after the code sample.
> Note: When creating issues, please don't modify the assignee or milestone fields. Also, please create one issue per fix or change. "Bundled" entries will be deleted.
* **Send us a pull request** - Creating an issue is great — and we certainly appreciate them — but what we really love are pull requests. So, if you find an issue in the docs, or even feel like creating new content, we'd be happy to have your contributions! If you're just getting started with open source, Git and GitHub, we suggest you first read up on [forking repositories](https://help.github.com/articles/fork-a-repo) and [sending pull requests](https://help.github.com/articles/using-pull-requests).
Start by creating a local clone of our repo either using [GitHub for Windows](http://windows.github.com/), [GitHub for Mac](http://mac.github.com/) or your friendly command-line:
git clone git@github.com:telerik/reporting-docs.git
Then, open up the reporting-docs folder in your favorite text editor. Of course, as you work with the docs, we do ask that you follow a couple of guidelines:
- Fixing grammar, punctuation and other general errors is always appreciated. So are changes that expand on key ideas or correct errors in logic phrasing or otherwise. If your ambitions are greater, however, and you want to add completely new content to the site — like a new tutorial, for instance — we suggest you contact a member of the team first (or enter an issue!).
- Each document in this repo contains a section of YAML Front Matter at the very top. This content, which looks like the text below, is used by our auto-import tool when content is processed for the live documentation site. Please don't edit the content in this section of a document.
---
title: Introduction
page_title: Introduction
description: Introduction
slug: introduction
tags: introduction
published: True
position: 1
---
- When adding content or making changes, please use only standard Markdown syntax, and make sure to preview your additions or changes before sending us a pull request. You can use an online tool like [Dillinger.io](http://dillinger.io/) or [Marked](http://markedapp.com/) on OSX to view what your changes will look like when ported to HTML.
Once you've made your changes, commit, pull, merge, push and [send us a pull request](https://help.github.com/articles/using-pull-requests)! We — and Report Server users everywhere — thank you for improving our documentation!
## Running locally
You can generate a static web site from the Telerik Reporting documentation and browse it locally.
Detailed instructions on how to achieve this can be found in the [docs-seed repository](https://github.com/telerik/docs-seed#local-setup).
## License
The Telerik Reporting Documentation is licensed under an MIT license. This license applies to the markdown (.md) files in this site **ONLY**, and does not convey, override or modify any existing licenses covering the runtime source and components of Telerik Reporting. For information about available licenses for the Telerik Reporting click [here](https://www.telerik.com/purchase/license-agreement/reporting-dlw-s).
### MIT License
Copyright (c) 2012-2018 Telerik EAD
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software" ), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Просмотреть файл

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Contents xmlns:myfunctionlib="urn:myfunctionlib">
<Article Title="Telerik Reporting Documentation" Slug="telerik-reporting-documentation" />
</Contents>

Просмотреть файл

@ -1,245 +0,0 @@
var API_CATEGORIES = ['configuration', 'fields', 'methods', 'events'];
var NESTED_ELEMENT_MARK = '.';
var COLUMNS_STYLE_CLASS_NAME = 'columns';
var API_SUBPAGE_TITLE = 'related-properties';
var MAX_NESTING_LEVEL = 10000;
var DEFAULT_COLUMN_COUNT = 3;
var MINIMUM_CHILDREN_COUNT = 6;
var COLUMN_HEIGHT_TOLLERANCE = 40;
var filterControl = null;
var previousSearch = "";
function findApiCategoryIndex(values) {
var startIndex = -1;
var category = "";
$.each(values, function (index, value) {
if (API_CATEGORIES.indexOf(value.toLowerCase()) > -1) {
startIndex = index;
category = value;
return false;
}
});
return {
index: startIndex,
category: category
};
}
function capitalize(values) {
for (var i = 0; i < 2; i++) {
var value = values[i];
values[i] = value.charAt(0).toUpperCase() + value.slice(1).toLowerCase();
}
}
function separatePageParts(values, breadcrumbs) {
var currentPageParts = values[values.length - 1].split('.');
var previousLink = "";
$.each(currentPageParts, function (index, pagePart) {
previousLink += previousLink !== "" ? "." + pagePart : pagePart;
breadcrumbs.push(previousLink);
});
}
function getBreadcrumbsInfo(values) {
var startIndex = findApiCategoryIndex(values).index;
var breadcrumbs = values.slice(startIndex - 1, values.length - 1);
capitalize(breadcrumbs);
separatePageParts(values, breadcrumbs);
categoryInfo = findApiCategoryIndex(breadcrumbs);
return {
categoryIndex: categoryInfo.index,
category: categoryInfo.category,
breadcrumbs: breadcrumbs
};
}
function shouldBuildBreadCrumbs() {
return $('#markdown-toc').length === 0;
}
function repeat(string, count) {
var result = "";
for (var i = 0; i < count; i++) {
result += string;
}
return result;
}
function buildApiBreadcrumbs() {
var path = $(location).attr('pathname').split('/');
var breadcrumbsInfo = getBreadcrumbsInfo(path);
var breadcrumbs = breadcrumbsInfo.breadcrumbs;
breadcrumbs = breadcrumbs.slice(0, breadcrumbs.length); // Skip the last element
var href = '';
var lastHref = '';
for (var i = 0; i < breadcrumbs.length - 1; i++) {
var backStepsCount = breadcrumbsInfo.categoryIndex - i + 1;
var relativePathBackPath = backStepsCount >= 0 ? repeat("../", backStepsCount) : "";
var breadcrumb = breadcrumbs[i];
href = breadcrumb === breadcrumbsInfo.category ?
lastHref + '#' + breadcrumb :
relativePathBackPath + breadcrumb;
$('.api-breadcrumbs-container').append('<a href="' + href.toLowerCase() + '">' + breadcrumb + '</a>');
if (i < breadcrumbs.length - 2) {
$('.api-breadcrumbs-container').append(' / ');
}
lastHref = href;
}
}
function getMinNestingLevel() {
var minNestingLevel = MAX_NESTING_LEVEL;
var linksSection = $('#' + API_SUBPAGE_TITLE);
if (linksSection.length > 0) {
var list = $(linksSection).next('ul');
list.children().each(function () {
minNestingLevel = Math.min(minNestingLevel, $(this).text().split(NESTED_ELEMENT_MARK).length - 1);
});
}
return minNestingLevel;
}
function styleItems(listItems, category, mainNestingLevel) {
listItems.each(function () {
var itemText = $(this).text();
var styleClassToAdd = itemText.split(NESTED_ELEMENT_MARK).length - 1 === mainNestingLevel ? 'api-icon ' + category : 'nested-list-item';
$(this).addClass(styleClassToAdd);
});
}
function getVisibleChildrenCount(list) {
return list.children().not('li.hide-api-link').length;
}
function getTotalParentHeight(list) {
var totalHeight = 0;
list.children().each(function () {
totalHeight += $(this).outerHeight(true);
});
return totalHeight;
}
function arrangeColumns(list, columnsCount) {
columnsCount = columnsCount ? columnsCount : DEFAULT_COLUMN_COUNT;
var listItemsCount = getVisibleChildrenCount(list);
list.removeClass(COLUMNS_STYLE_CLASS_NAME);
if (listItemsCount > MINIMUM_CHILDREN_COUNT) {
var averageItemHeight = list.data('item-height');
if (!averageItemHeight) {
averageItemHeight = getTotalParentHeight(list) / listItemsCount;
}
var desiredItemsCount = listItemsCount / columnsCount;
list.addClass(COLUMNS_STYLE_CLASS_NAME);
list.height(averageItemHeight * desiredItemsCount + COLUMN_HEIGHT_TOLLERANCE);
list.data('item-height', averageItemHeight);
} else {
list.css('height', '');
}
}
function setupColumnsInternal(category, subCategory, mainNestingLevel) {
var headerSelector = $('#' + category);
if (headerSelector.length > 0) {
var list = $(headerSelector).next('ul');
var listItems = list.children();
styleItems(listItems, subCategory, mainNestingLevel);
arrangeColumns(list);
}
}
function setupColumns() {
for (var i = 0; i < API_CATEGORIES.length; i++) {
setupColumnsInternal(API_CATEGORIES[i], API_CATEGORIES[i], 0);
}
var subCategory = $('#page-article article:first-child').attr('class');
if (subCategory) {
var mainNestingLevel = getMinNestingLevel();
setupColumnsInternal(API_SUBPAGE_TITLE, subCategory.toLowerCase(), mainNestingLevel);
}
}
function enumerateCategories() {
var lists = [];
for (var i = 0; i < API_CATEGORIES.length; i++) {
var headerSelector = $('#' + API_CATEGORIES[i]);
if (headerSelector.length > 0) {
var list = $(headerSelector).next('ul');
var listItems = list.children();
lists.push(list);
}
}
return lists;
}
function filter() {
var text = filterControl.val().toLowerCase();
if (text === previousSearch) {
return;
}
$.each(enumerateCategories(), function (index, list) {
list.removeClass('hide-api-container');
list.prev('h2').removeClass('hide-api-container');
list.children().each(function () {
$(this).removeClass('hide-api-link');
if ($(this).text().toLowerCase().indexOf(text) === -1) {
$(this).addClass('hide-api-link');
}
});
var listItemsCount = getVisibleChildrenCount(list);
if (listItemsCount === 0) {
list.addClass('hide-api-container');
list.prev('h2').addClass('hide-api-container');
} else {
arrangeColumns(list, DEFAULT_COLUMN_COUNT);
}
});
previousSearch = text;
}
function ensureCorrectNavigation() {
var hash = window.location.hash;
if (hash !== "") {
var hashIndex = hash.indexOf('#');
var dashIndex = hash.indexOf('-');
if (hashIndex > -1 && hashIndex < dashIndex) {
var newPath = hash.replace('#', '/').replace('-', '/').toLowerCase();
window.location.replace(window.location.origin + window.location.pathname + newPath);
return true;
}
}
return false;
}
$(document).ready(function () {
if (!ensureCorrectNavigation()) {
setupColumns();
if (shouldBuildBreadCrumbs()) {
buildApiBreadcrumbs();
}
filterControl = $('#api-filter input.search');
if (filterControl.length > 0) {
filterControl.on('keyup', function () { filter(); });
}
}
});

Просмотреть файл

@ -1,524 +0,0 @@
function scrollNodeIntoView(li) {
var container = $("#page-nav")[0];
var top = li[0].offsetTop;
var bottom = top + li.find(">div").outerHeight();
var containerTop = container.scrollTop;
var containerHeight = container.clientHeight;
if (top < containerTop || bottom > containerHeight + containerTop) {
container.scrollTop = top - containerHeight / 2;
}
}
function selectNode(hash, scroll) {
var li = $("#page-tree li:has(>div>span>div>a[href='" + hash + "'])");
if (li.length) {
var treeview = $("#page-tree").data("kendoTreeView");
var topicNode = li.closest(".current-topic");
treeview.select(li);
topicNode.find("li").removeClass("path");
li.parentsUntil(topicNode).addClass("path");
if (scroll) {
scrollNodeIntoView(li);
}
}
}
function expandNavigation(url) {
return function expand(e) {
if (e.node) {
return;
}
var segments = url.split("/");
var treeview = this;
var dataSource = this.dataSource;
var node;
for (var idx = 0; idx < segments.length; idx++) {
node = dataSource.get(segments[idx]);
node.set("expanded", true);
dataSource = node.children;
}
var li = this.element.find("li[data-uid='" + node.uid + "']");
scrollNodeIntoView(li);
this.select(li);
if (location.pathname.indexOf("/api/") < 0) {
li.addClass("current-topic");
$("h2").each(function() {
var hash = $(this).find("a").attr("href");
$(".current-topic>ul>li:first-child>div>span.k-in").addClass("k-state-selected");
var state = $(".k-state-selected");
if (state.length > 1) {
$(".k-state-selected").first().removeClass("k-state-selected");
}
var h2Node = treeview.append({ path: hash, text: kendo.htmlEncode($(this).text()) }, li);
if (location.hash.replace("#", "") === hash.replace("#", "")) {
selectNode(hash);
}
$(this).nextUntil("h2", "h3").each(function() {
var hash = $(this).find("a").attr("href");
treeview.append({ path: hash, text: kendo.htmlEncode($(this).text()) }, h2Node);
if (location.hash.replace("#", "") === hash.replace("#", "")) {
selectNode(hash);
$("h1").css("font-weight", "bold");
}
});
});
}
this.unbind("dataBound", expand);
};
}
$(window).on("hashchange", function() {
selectNode(location.hash, false);
});
if (location.pathname.indexOf("/api/") < 0) {
$(function() {
var headings = $("h2,h3");
var fixedHeaderHeight = $("#page-header").height();
$(document).on("scroll", function() {
var scrollOffset = $(document).scrollTop() + fixedHeaderHeight;
var current = headings.filter(function() {
return $(this).offset().top + this.offsetHeight - scrollOffset > 0;
}).first();
if (current.length) {
selectNode(current.find("a").attr("href"), true);
}
});
});
}
function navigationTemplate(root) {
return function(data) {
var item = data.item;
var text = item.text;
if (item.hasChildren) {
return text;
}
var url = item.path;
if (location.pathname.indexOf(".html") < 0) {
url = url.replace(".html", "");
}
var icon = item.isNew === true ? '<span class="new-navigation-item">NEW</span>' : '';
if (url.indexOf("#") < 0) {
while (item = item.parentNode()) {
url = item.path + "/" + url;
}
return formatNavigationTemplate(icon, root + url, text);
} else {
return formatNavigationTemplate(icon, url, text);
}
};
}
function formatNavigationTemplate(icon, url, text){
return '<div class="navigation-item-content">' + icon + '<a href="' + url + '">' + text + "</a></div>" ;
}
function preventParentSelection(e) {
var node = this.dataItem(e.node);
if (node.path.indexOf("#") < 0 && node.hasChildren) {
e.preventDefault();
this.toggle(e.node);
}
}
$(function(){
$("pre[data-lang^=tab-]").each(function() {
if (this.parentNode.className.indexOf("k-content") >= 0) {
return;
}
var langs = $(this).nextUntil(":not(pre)", "pre").add(this);
var tabs = $.map(langs, function(item) {
var title = $(item).attr("data-lang").replace("tab-", "");
return $("<li>").text(title);
});
if (tabs.length < 2) {
return;
}
tabs[0].addClass("k-state-active");
var tabstrip = $("<div>")
.insertBefore(this)
.append($("<ul>").append(tabs))
.append(langs);
langs.wrap("<div>");
tabstrip.kendoTabStrip({ animation: false });
});
$(document).on("click", ".current-topic > div a", false);
$("pre").addClass("prettyprint");
prettyPrint();
$("#markdown-toc")
.on("click", "a", function() {
$(".section > ul").hide();
})
.each(function() {
var ul = $("<ul>");
$("#page-article h2").each(function() {
var h2 = $(this);
if (!/fields|configuration|properties|events|methods/i.test(h2.text())) {
return;
}
$("<li>")
.addClass("section")
.append(h2.children().clone())
.appendTo(ul)
.mouseenter(function() {
var children = $(this).children("ul");
if (!children.length) {
children = $("<ul>");
h2.nextUntil("h2").filter("h3").each(function(){
$("<li>").append($(this).children().clone()).appendTo(children);
});
if (children.children().length) {
children.appendTo(this);
}
}
children.show();
})
.mouseleave(function() {
$(this).children("ul").hide();
});
});
ul.appendTo(this);
});
// do not scroll main page when page-nav is scrolled
$('#page-nav').on('DOMMouseScroll mousewheel', function(ev) {
var element = $(this),
scrollTop = this.scrollTop,
scrollHeight = this.scrollHeight,
height = element.innerHeight(),
delta = ev.originalEvent.wheelDelta,
up = delta > 0;
var prevent = function() {
ev.stopPropagation();
ev.preventDefault();
ev.returnValue = false;
return false;
}
if (!up && -delta > scrollHeight - height - scrollTop) {
// Scrolling down, but this will take us past the bottom.
element.scrollTop(scrollHeight);
return prevent();
} else if (up && delta > scrollTop) {
// Scrolling up, but this will take us past the top.
element.scrollTop(0);
return prevent();
}
});
});
var dojoApi = (function($) {
var dojoApi = {
configuration: {
url: "https://dojo.telerik.com/",
currentKendoVersion: kendo.version
},
post: function (snippet) {
if (!snippet.match(/<html>/i)) {
snippet = dojoApi.wrapInHtml(snippet);
}
snippet = dojoApi.fixLineEndings(snippet);
var form = $('<form method="post" style="display: none;" target="_blank" action="' + dojoApi.configuration.url + '" />').appendTo(document.body);
$("<input name='snippet'>").val(window.btoa(encodeURIComponent(snippet))).appendTo(form);
form.submit();
},
fixLineEndings: function (code) {
return code.replace(/\n/g, "&#10;");
},
showHintButton: function (element, text) {
element = $(element);
$("<button type='button'>")
.text(text)
.addClass("btn btn-action dojo-submit-button")
.insertBefore(element);
},
wrapInHtml: function(snippet) {
var angular = ' <script src="https://kendo.cdn.telerik.com/kendo-version/js/angular.min.js"></script>\n';
var jszip = ' <script src="https://kendo.cdn.telerik.com/kendo-version/js/jszip.min.js"></script>\n';
if (!(/ng-app/i).test(snippet)) {
angular = '';
}
if (!(/ooxml|excel|spreadsheet/i).test(snippet)) {
jszip = '';
}
var result = ('<!DOCTYPE html>\n'+
'<html>\n'+
'<head>\n'+
' <meta charset="utf-8"/>\n'+
' <title>Kendo UI Snippet</title>\n\n'+
' <link rel="stylesheet" href="https://kendo.cdn.telerik.com/kendo-version/styles/kendo.common.min.css"/>\n'+
' <link rel="stylesheet" href="https://kendo.cdn.telerik.com/kendo-version/styles/kendo.rtl.min.css"/>\n'+
' <link rel="stylesheet" href="https://kendo.cdn.telerik.com/kendo-version/styles/kendo.silver.min.css"/>\n'+
' <link rel="stylesheet" href="https://kendo.cdn.telerik.com/kendo-version/styles/kendo.mobile.all.min.css"/>\n\n'+
' <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>\n'+
angular + jszip +
' <script src="https://kendo.cdn.telerik.com/kendo-version/js/kendo.all.min.js"></script>\n'+
'</head>\n'+
'<body>\n \n'+
snippet+ '\n' +
'</body>\n'+
'</html>').replace(/kendo-version/g, dojoApi.configuration.currentKendoVersion);
return result;
},
addButtons: function(element) {
if (!$(element).parent().prev().is(".action-buttons")) {
$('<div class="action-buttons">'+
'<button class="btn btn-edit" title="Edit example">Edit</button>'+
'<button class="btn btn-run" title="Run example">Preview</button>'+
'<a href="https://dojo.telerik.com" class="btn btn-dojo" title="Open example in Kendo UI Dojo">Open In Dojo</a>'+
'</div>').insertBefore(element);
}
},
editSnippet: function(element) {
reset();
var pre = $(element).parent().nextAll("pre:first");
if (isCodeMirrorCurrent(pre)) {
showCodeMirror();
} else {
destroyCodeMirror();
createCodeMirror(pre);
}
pre.hide();
$(element).addClass("active-button");
$(element).next().removeClass("active-button");
},
runSnippet: function(element) {
reset();
var pre = $(element).parent().nextAll("pre:first");
var iframe = $('<iframe class="snippet-runner">').attr("src", 'javascript:""');
var snippet = null;
if (isCodeMirrorCurrent(pre)) {
snippet = codemirror.getValue();
hideCodeMirror();
iframe.show().insertAfter(codemirror.display.wrapper);
} else {
snippet = pre.text();
destroyCodeMirror();
iframe.show().insertAfter(pre);
}
iframe.on("load", function() {
iframe.height(iframe.contents().height());
});
pre.hide();
snippet = snippet.replace(/<script>(.*?)<\/script>/, "<script>try { $1 } catch(e) { document.write(e.toString()); }</script>");
var html = template({ version: kendo.version, snippet: snippet, html: /<html>/i.test(snippet) });
var contents = iframe.contents();
contents[0].open();
contents[0].write(html);
contents[0].close();
$(element).addClass("active-button");
$(element).prev().removeClass("active-button");
},
openSnippet: function(element) {
var snippet = null;
var pre = $(element).parent().nextAll("pre:first");
if (isCodeMirrorCurrent(pre)) {
snippet = codemirror.getValue();
} else {
snippet = pre.text();
}
dojoApi.post(snippet);
}
};
var template = kendo.template(
'# if (!html) { #<!doctype html>' +
'<html>' +
'<head>' +
'<meta charset="utf-8"/>' +
'<meta http-equiv="X-UA-Compatible" content="IE=edge"/>' +
'<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"/>' +
'<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>' +
'<style>' +
'body {' +
'font-family: Helvetica, Arial, sans-serif;' +
'font-size: 14px' +
'}' +
'</style>' +
'<link rel="stylesheet" href="https://kendo.cdn.telerik.com/${version}/styles/kendo.common.min.css"/>' +
'<link rel="stylesheet" href="https://kendo.cdn.telerik.com/${version}/styles/kendo.silver.min.css"/>' +
'<link rel="stylesheet" href="https://kendo.cdn.telerik.com/${version}/styles/kendo.mobile.all.min.css"/>' +
'<link rel="stylesheet" href="https://kendo.cdn.telerik.com/${version}/styles/kendo.rtl.min.css">' +
'<script src="https://kendo.cdn.telerik.com/${version}/js/jszip.min.js"></script>' +
'# if ((/ng-app/i).test(snippet)) { # <script src="https://kendo.cdn.telerik.com/${version}/js/angular.min.js"></script> # } #' +
'<script src="https://kendo.cdn.telerik.com/${version}/js/kendo.all.min.js"></script>' +
'<script src="https://kendo.cdn.telerik.com/${version}/js/kendo.timezones.min.js"></script>' +
'# } #<script>' +
'if (typeof kendo !== "undefined") kendo.mobile.Application.prototype.options.browserHistory = false;' +
'window.onerror = function(message, url, line) {' +
'document.write("<span style=\\"color:red;font-family:monospace\\">" + message + " at line " + line + "</span>");' +
'};' +
'window.onunload = function() {' +
'kendo.destroy(document.body);' +
'};' +
'</script>' +
'# if (!html) { #</head>' +
'<body>' +
'# } # #= snippet #' +
'# if (!html) { #</body>' +
'</html> # } #'
);
var codemirror = null;
function destroyCodeMirror() {
if (codemirror) {
$(codemirror.display.wrapper).remove();
codemirror = null;
}
}
function hideCodeMirror() {
if (codemirror) {
$(codemirror.display.wrapper).hide();
}
}
function showCodeMirror() {
if (codemirror) {
$(codemirror.display.wrapper).show();
}
}
function createCodeMirror(pre) {
codemirror = CodeMirror(function(element) {
$(element).insertAfter(pre);
}, {
value: pre.text(),
scrollbarStyle: "null",
lineNumbers: true,
mode: "htmlmixed"
});
}
function isCodeMirrorCurrent(pre) {
return codemirror && codemirror.display.wrapper.previousSibling === pre[0];
}
function reset() {
$("pre.prettyprint").show();
$(".snippet-runner").remove();
$(".btn-edit").removeClass("active-button");
$(".btn-run").removeClass("active-button");
}
return dojoApi;
})(jQuery);
$(function(){
$(".toggle-nav").click(function() {
$("#page-search").removeClass("search-visibility");
$("#page-inner-content").removeClass("move-inner-content");
$("#page-nav").toggleClass("nav-visibility");
});
$(".show-search").click(function() {
$("#page-nav").removeClass("nav-visibility");
$("#page-search").toggleClass("search-visibility");
$("#page-inner-content").toggleClass("move-inner-content");
});
$("body").find(".prettyprint[data-lang=html]").each(function() {
if (this.parentNode.className.indexOf("k-content") < 0) {
dojoApi.addButtons(this);
}
});
$("body").on("click", ".btn-edit", function(e) {
e.preventDefault();
dojoApi.editSnippet(this);
});
$("body").on("click", ".btn-run", function(e) {
e.preventDefault();
dojoApi.runSnippet(this);
});
$("body").on("click", ".btn-dojo", function(e) {
e.preventDefault();
dojoApi.openSnippet(this);
});
});

Просмотреть файл

@ -1,506 +0,0 @@
//===============================================================================================================
// System : Sandcastle Help File Builder
// File : branding.js
// Author : Eric Woodruff (Eric@EWoodruff.us)
// Updated : 05/15/2014
// Note : Copyright 2014, Eric Woodruff, All rights reserved
// Portions Copyright 2010-2014 Microsoft, All rights reserved
//
// This file contains the methods necessary to implement the language filtering, collapsible section, and
// copy to clipboard options.
//
// This code is published under the Microsoft Public License (Ms-PL). A copy of the license should be
// distributed with the code. It can also be found at the project website: http://SHFB.CodePlex.com. This
// notice, the author's name, and all copyright notices must remain intact in all applications, documentation,
// and source files.
//
// Date Who Comments
// ==============================================================================================================
// 05/04/2014 EFW Created the code based on the MS Help Viewer script
//===============================================================================================================
// The IDs of all code snippet sets on the same page are stored so that we can keep them in synch when a tab is
// selected.
var allTabSetIds = new Array();
// The IDs of language-specific text (LST) spans are used as dictionary keys so that we can get access to the
// spans and update them when the user changes to a different language tab. The values of the dictionary
// objects are pipe separated language-specific attributes (lang1=value|lang2=value|lang3=value). The language
// ID can be specific (cs, vb, cpp, etc.) or may be a neutral entry (nu) which specifies text common to multiple
// languages. If a language is not present and there is no neutral entry, the span is hidden for all languages
// to which it does not apply.
var allLSTSetIds = new Object();
// Help 1 persistence support. This code must appear inline.
var isHelp1;
var curLoc = document.location + ".";
if(curLoc.indexOf("mk:@MSITStore") == 0)
{
isHelp1 = true;
curLoc = "ms-its:" + curLoc.substring(14, curLoc.length - 1);
document.location.replace(curLoc);
}
else
if(curLoc.indexOf("ms-its:") == 0)
isHelp1 = true;
else
isHelp1 = false;
// The OnLoad method
function OnLoad(defaultLanguage)
{
var defLang;
if(typeof (defaultLanguage) == "undefined" || defaultLanguage == null || defaultLanguage == "")
defLang = "vb";
else
defLang = defaultLanguage;
// In MS Help Viewer, the transform the topic is ran through can move the footer. Move it back where it
// belongs if necessary.
try
{
var footer = document.getElementById("pageFooter")
if(footer)
{
var footerParent = document.body;
if(footer.parentElement != footerParent)
{
footer.parentElement.removeChild(footer);
footerParent.appendChild(footer);
}
}
}
catch(e)
{
}
var language = GetCookie("CodeSnippetContainerLanguage", defLang);
// If LST exists on the page, set the LST to show the user selected programming language
UpdateLST(language);
// If code snippet groups exist, set the current language for them
if(allTabSetIds.length > 0)
{
var i = 0;
while(i < allTabSetIds.length)
{
var tabCount = 1;
// The tab count may vary so find the last one in this set
while(document.getElementById(allTabSetIds[i] + "_tab" + tabCount) != null)
tabCount++;
tabCount--;
// If not grouped, skip it
if(tabCount < 2)
{
// Disable the Copy Code link if in Chrome
if(navigator.userAgent.toLowerCase().indexOf("chrome") != -1)
document.getElementById(allTabSetIds[i] + "_copyCode").style.display = "none";
}
else
SetCurrentLanguage(allTabSetIds[i], language, tabCount);
i++;
}
}
InitializeToc();
}
// This is just a place holder. The website script implements this function to initialize it's in-page TOC pane
function InitializeToc()
{
}
// This function executes in the OnLoad event and ChangeTab action on code snippets. The function parameter
// is the user chosen programming language. This function iterates through the "allLSTSetIds" dictionary object
// to update the node value of the LST span tag per the user's chosen programming language.
function UpdateLST(language)
{
for(var lstMember in allLSTSetIds)
{
var devLangSpan = document.getElementById(lstMember);
if(devLangSpan != null)
{
// There may be a carriage return before the LST span in the content so the replace function below
// is used to trim the whitespace at the end of the previous node of the current LST node.
if(devLangSpan.previousSibling != null && devLangSpan.previousSibling.nodeValue != null)
devLangSpan.previousSibling.nodeValue = devLangSpan.previousSibling.nodeValue.replace(/\s+$/, "");
var langs = allLSTSetIds[lstMember].split("|");
var k = 0;
var keyValue;
while(k < langs.length)
{
keyValue = langs[k].split("=");
if(keyValue[0] == language)
{
devLangSpan.innerHTML = keyValue[1];
break;
}
k++;
}
// If not found, default to the neutral language. If there is no neutral language entry, clear the
// content to hide it.
if(k >= langs.length)
{
if(language != "nu")
{
k = 0;
while(k < langs.length)
{
keyValue = langs[k].split("=");
if(keyValue[0] == "nu")
{
devLangSpan.innerHTML = keyValue[1];
break;
}
k++;
}
}
if(k >= langs.length)
devLangSpan.innerHTML = "";
}
}
}
}
// Get the specified cookie. If not found, return the specified default value.
function GetCookie(cookieName, defaultValue)
{
if(isHelp1)
{
try
{
var globals = Help1Globals;
var value = globals.Load(cookieName);
if(value == null)
value = defaultValue;
return value;
}
catch(e)
{
return defaultValue;
}
}
var cookie = document.cookie.split("; ");
for(var i = 0; i < cookie.length; i++)
{
var crumb = cookie[i].split("=");
if(cookieName == crumb[0])
return unescape(crumb[1])
}
return defaultValue;
}
// Set the specified cookie to the specified value
function SetCookie(name, value)
{
if(isHelp1)
{
try
{
var globals = Help1Globals;
globals.Save(name, value);
}
catch(e)
{
}
return;
}
var today = new Date();
today.setTime(today.getTime());
// Set the expiration time to be 60 days from now (in milliseconds)
var expires_date = new Date(today.getTime() + (60 * 1000 * 60 * 60 * 24));
document.cookie = name + "=" + escape(value) + ";expires=" + expires_date.toGMTString() + ";path=/";
}
// Add a language-specific text ID
function AddLanguageSpecificTextSet(lstId)
{
var keyValue = lstId.split("?")
allLSTSetIds[keyValue[0]] = keyValue[1];
}
// Add a language tab set ID
function AddLanguageTabSet(tabSetId)
{
allTabSetIds.push(tabSetId);
}
// Switch the active tab for all of other code snippets
function ChangeTab(tabSetId, language, snippetIdx, snippetCount)
{
SetCookie("CodeSnippetContainerLanguage", language);
SetActiveTab(tabSetId, snippetIdx, snippetCount);
// If LST exists on the page, set the LST to show the user selected programming language
UpdateLST(language);
var i = 0;
while(i < allTabSetIds.length)
{
// We just care about other snippets
if(allTabSetIds[i] != tabSetId)
{
// Other tab sets may not have the same number of tabs
var tabCount = 1;
while(document.getElementById(allTabSetIds[i] + "_tab" + tabCount) != null)
tabCount++;
tabCount--;
// If not grouped, skip it
if(tabCount > 1)
SetCurrentLanguage(allTabSetIds[i], language, tabCount);
}
i++;
}
}
// Sets the current language in the specified tab set
function SetCurrentLanguage(tabSetId, language, tabCount)
{
var tabIndex = 1;
while(tabIndex <= tabCount)
{
var tabTemp = document.getElementById(tabSetId + "_tab" + tabIndex);
if(tabTemp != null && tabTemp.innerHTML.indexOf("'" + language + "'") != -1)
break;
tabIndex++;
}
if(tabIndex > tabCount)
{
// Select the first non-disabled tab
tabIndex = 1;
if(document.getElementById(tabSetId + "_tab1").className == "codeSnippetContainerTabPhantom")
{
tabIndex++;
while(tabIndex <= tabCount)
{
var tab = document.getElementById(tabSetId + "_tab" + tabIndex);
if(tab.className != "codeSnippetContainerTabPhantom")
{
tab.className = "codeSnippetContainerTabActive";
document.getElementById(tabSetId + "_code_Div" + j).style.display = "block";
break;
}
tabIndex++;
}
}
}
SetActiveTab(tabSetId, tabIndex, tabCount);
}
// Set the active tab within a tab set
function SetActiveTab(tabSetId, tabIndex, tabCount)
{
var i = 1;
while(i <= tabCount)
{
var tabTemp = document.getElementById(tabSetId + "_tab" + i);
if(tabTemp.className == "codeSnippetContainerTabActive")
tabTemp.className = "codeSnippetContainerTab";
else
if(tabTemp.className == "codeSnippetContainerTabPhantom")
tabTemp.style.display = "none";
var codeTemp = document.getElementById(tabSetId + "_code_Div" + i);
if(codeTemp.style.display != "none")
codeTemp.style.display = "none";
i++;
}
// Phantom tabs are shown or hidden as needed
if(document.getElementById(tabSetId + "_tab" + tabIndex).className != "codeSnippetContainerTabPhantom")
document.getElementById(tabSetId + "_tab" + tabIndex).className = "codeSnippetContainerTabActive";
else
document.getElementById(tabSetId + "_tab" + tabIndex).style.display = "block";
document.getElementById(tabSetId + "_code_Div" + tabIndex).style.display = "block";
// Show copy code button if not in Chrome
if(navigator.userAgent.toLowerCase().indexOf("chrome") == -1)
document.getElementById(tabSetId + "_copyCode").style.display = "inline";
else
document.getElementById(tabSetId + "_copyCode").style.display = "none";
}
// Copy the code from the active tab of the given tab set to the clipboard
function CopyToClipboard(tabSetId)
{
var tabTemp, contentId;
var i = 1;
do
{
contentId = tabSetId + "_code_Div" + i;
tabTemp = document.getElementById(contentId);
if(tabTemp != null && tabTemp.style.display != "none")
break;
i++;
} while(tabTemp != null);
if(tabTemp == null)
return;
if(window.clipboardData)
{
try
{
window.clipboardData.setData("Text", document.getElementById(contentId).innerText);
}
catch(e)
{
alert("Permission denied. Enable copying to the clipboard.");
}
}
else if(window.netscape)
{
try
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var clip = Components.classes["@mozilla.org/widget/clipboard;1"].createInstance(
Components.interfaces.nsIClipboard);
if(!clip)
return;
var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(
Components.interfaces.nsITransferable);
if(!trans)
return;
trans.addDataFlavor("text/unicode");
var str = new Object();
var len = new Object();
var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(
Components.interfaces.nsISupportsString);
var copytext = document.getElementById(contentId).textContent;
str.data = copytext;
trans.setTransferData("text/unicode", str, copytext.length * 2);
var clipid = Components.interfaces.nsIClipboard;
clip.setData(trans, null, clipid.kGlobalClipboard);
}
catch(e)
{
alert("Permission denied. Enter \"about:config\" in the address bar and double-click the \"signed.applets.codebase_principal_support\" setting to enable copying to the clipboard.");
}
}
}
// Expand or collapse a section
function SectionExpandCollapse(togglePrefix)
{
var image = document.getElementById(togglePrefix + "Toggle");
var section = document.getElementById(togglePrefix + "Section");
if(image != null && section != null)
if(section.style.display == "")
{
image.src = image.src.replace("SectionExpanded.png", "SectionCollapsed.png");
section.style.display = "none";
}
else
{
image.src = image.src.replace("SectionCollapsed.png", "SectionExpanded.png");
section.style.display = "";
}
}
// Expand or collapse a section when it has the focus and Enter is hit
function SectionExpandCollapse_CheckKey(togglePrefix, eventArgs)
{
if(eventArgs.keyCode == 13)
SectionExpandCollapse(togglePrefix);
}
// Help 1 persistence object. This requires a hidden input element on the page with a class of "userDataStyle"
// defined in the style sheet that implements the user data binary behavior:
// <input type="hidden" id="userDataCache" class="userDataStyle" />
var Help1Globals =
{
UserDataCache: function()
{
var userData = document.getElementById("userDataCache");
return userData;
},
Load: function(key)
{
var userData = this.UserDataCache();
userData.load("userDataSettings");
var value = userData.getAttribute(key);
return value;
},
Save: function(key, value)
{
var userData = this.UserDataCache();
userData.setAttribute(key, value);
userData.save("userDataSettings");
}
};

5
_assets/javascripts/dojo.js поставляемый
Просмотреть файл

@ -1,5 +0,0 @@
jQuery(function() {
$("body").find(".prettyprint").not("[data-lang=pseudo]").each(function() {
dojoApi.addButtons(this);
});
});

Просмотреть файл

@ -1,407 +0,0 @@
$(document).ready(function () {
var Feedback = {};
var $window = $(window);
var cookieVariablesNames = ['feedbackSubmitted', 'path', 'uuid'];
var defaultFormValues = {
email: "",
inaccurateContent: false,
inaccurateOutdatedContentText: "",
otherMoreInformation: false,
otherMoreInformationText: "",
textErrors: false,
typosLinksElementsText: "",
outdatedSample: false,
inaccurateOutdatedCodeSamplesText: "",
otherFeedback: false,
textFeedback: "",
acceptFeedbackContact: false
};
$("#feedback-checkbox-area").click(function (e) {
$("span.k-tooltip-validation").remove();
});
var formIsProcessing = false;
//Util functions
var generateUUID = function () {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
});
};
var getCookieByName = function (name) {
//This is very crude, but necessary because currently there is some kind of url rewriting going on
//so the cookies are set for a base path but then additional navigation is done with url rewriting
//so we set the cookie name as complete path to avoid a problem where the cookie is set for multiple pages.
if (name === "yesNoFeedback") {
name = currentPath;
}
var match = document.cookie.match(new RegExp(name + '=([^;]+)'));
if (match) return match[1];
};
//Init utility variables
var rawLocationObject = $(location);
var currentPath = rawLocationObject[0].origin + rawLocationObject[0].pathname;
var popupNotification = $("#popupNotification").kendoNotification().data("kendoNotification");
var formPopupNotification = $("#feedback-form-popup-container").kendoNotification({
appendTo: "#feedback-form-window"
}).data("kendoNotification");
var setCookieByName = function (name, value) {
var cookieUUID = getCookieByName("uuid");
if (!cookieUUID) {
document.cookie = "uuid=" + generateUUID() + "; path=/";
}
//This is very crude, but necessary because currently there is some kind of url rewriting going on
//so the cookies are set for a base path but then additional navigation is done with url rewriting
//so we set the cookie name as complete path to avoid a problem where the cookie is set for multiple pages.
if (name === "yesNoFeedback") {
name = currentPath;
}
document.cookie = name + "=" + value + ";";
};
//Feedback menu controls
var feedbackButtonsContainer = $("#helpful-buttons-container");
var feedbackSubmittedContainer = $("#feedback-submitted-container");
var toggleFeedbackButtons = function (toggle) {
if (toggle) {
feedbackButtonsContainer.show();
feedbackSubmittedContainer.hide();
} else {
feedbackButtonsContainer.hide();
feedbackSubmittedContainer.show();
}
};
var hideFeedback = function () {
$("#feedback-container").hide();
};
if (getCookieByName("yesNoFeedback")) {
hideFeedback();
} else {
toggleFeedbackButtons(true);
}
//FORM
//Init the form popup window
var win = $("#feedback-form-window").kendoWindow({
actions: ["Close"],
draggable: true,
modal: true,
pinned: false,
visible: false,
title: false,
resizable: false,
width: "500px"
}).data("kendoWindow");
//Init form
var feedbackForm = $("#feedback-form");
var formModel = kendo.observable(defaultFormValues);
var isFormModelEmpty = function () {
var isModelDefault = true;
for (var key in defaultFormValues) {
if (key === 'email') {
continue;
}
var isValueEqual = formModel[key] === defaultFormValues[key];
if (!isValueEqual) {
isModelDefault = false;
break;
}
}
return isModelDefault;
};
var isFormModelSatisfied = function (key, formValue) {
var value = formModel[key];
if (value) {
return formValue && formValue.length > 0;
} else {
return true;
}
}
//Bind model to form
kendo.bind($("div#feedback-form-window"), formModel);
//Attach to form submit to adjust variables and send request
var emptyFormValidator = $("#feedback-checkbox-area").kendoValidator({
validateOnBlur: false,
messages: {
// defines a message for the custom validation rule
emptyForm: "You need to provide some feedback before submitting the form."
},
rules: {
emptyForm: function (input) {
return !isFormModelEmpty();
}
}
}).data("kendoValidator");
var emailValidator = $("#feedback-email-input").kendoValidator({
validateOnBlur: false,
messages: {
email: "Invalid email address."
},
rules: {
email: function (input) {
if (input.val().length > 0) {
var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(input.val());
}
return true;
}
}
}).data("kendoValidator");
// text validation is disabled for the new design of the form. In order to enable it
// it must be reworked!!!
var textAreaValidator = function (selector, formModelKey) {
return $(selector).kendoValidator({
validateOnBlur: false,
messages: {
emptyValidation: "Please provide some additional information.",
htmlValidation: "HTML tags are not allowed in this field.",
messageLength: "The message length must not exceed 2500 characters.",
whiteSpaces: "Using only white spaces is not allowed in this field.",
feedbackValidation: "Please select a category and provide some additional information."
},
rules: {
emptyValidation: function (input) {
var text = input.val();
return isFormModelSatisfied(formModelKey, text);
},
htmlValidation: function (input) {
var text = input.val();
var matches = text.match(/(<([^>]+)>)/ig);
if (matches != null) {
return false;
}
return true;
},
messageLength: function (input) {
var text = input.val();
if (text.length > 2500) {
return false;
}
return true;
},
whiteSpaces: function (input) {
var text = input.val();
if (text.length > 0) {
return $.trim(text) !== "";
}
return true;
},
feedbackValidation: function (input) {
var text = input.val();
if (text.length > 0) {
return formModel[formModelKey];
}
return true;
}
}
}).data("kendoValidator");
}
feedbackForm.submit(function (e) {
e.preventDefault();
if (formIsProcessing) {
return;
}
formIsProcessing = true;
if (textAreaValidator("#feedback-code-sample-text-input", "outdatedSample").validate() &&
textAreaValidator("#feedback-more-information-text-input", "otherMoreInformation").validate() &&
textAreaValidator("#feedback-text-errors-text-input", "textErrors").validate() &&
textAreaValidator("#feedback-inaccurate-content-text-input", "inaccurateContent").validate() &&
textAreaValidator("#feedback-other-text-input", "otherFeedback").validate() &&
emptyFormValidator.validate() &&
emailValidator.validate()) {
win.close();
setCookieByName("submittingFeedback");
formModel.yesNoFeedback = getCookieByName("yesNoFeedback") || "Not submitted";
formModel.uuid = getCookieByName("uuid");
formModel.path = currentPath;
formModel.sheetId = $("#hidden-sheet-id").val();
formModel.email = formModel.acceptFeedbackContact ? formModel.email : '';
$.ajax({
url: "https://baas.kinvey.com/rpc/kid_Hk57KwIFf/custom/saveFeedback",
method: "POST",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(formModel),
crossDomain: true,
beforeSend: function (xhr) {
xhr.setRequestHeader("Authorization", "Basic " + btoa("feedback:feedback"));
},
success: function (data) {
formIsProcessing = false;
}
});
} else {
formIsProcessing = false;
}
});
//Attach to close button inside form window
$("#form-close-button").click(function () {
win.close();
});
//Attach to submit button inside form window
$("#form-submit-button").click(function () {
feedbackForm.submit();
});
//Init buttons
$("#yesButton").click(function () {
setCookieByName("yesNoFeedback", "Yes");
toggleFeedbackButtons(false);
Feedback.closeFeedback();
Feedback.hideFeedbackForm();
Feedback.adjustNavigationPosition();
});
$("#noButton").click(function () {
setCookieByName("yesNoFeedback", "No");
toggleFeedbackButtons(false);
Feedback.closeFeedback();
Feedback.hideFeedbackForm();
Feedback.adjustNavigationPosition();
win.center().open();
});
$("#additional-feedback-button").click(function () {
win.center().open();
});
var windowHeight = $window.height();
var headerHeight = $(".TK-Hat").outerHeight() + $("#page-header").outerHeight();
var footerHeight = $("#feedback-section").outerHeight() + $("footer").outerHeight();
var articleHeight = windowHeight - (headerHeight + footerHeight);
var feedbackOffsetTop = document.body.scrollHeight - footerHeight;
var shouldOverlayFeedback = !getCookieByName("yesNoFeedback") && !getCookieByName("yesNoFeedbackClosed");
var showingFeedbackBar = false;
var scrollFold = $window.scrollTop() + windowHeight;
var feedbackPinned = false;
function updateVariables() {
windowHeight = $window.height();
headerHeight = $(".TK-Hat").outerHeight() + $("#page-header").outerHeight();
footerHeight = $("#feedback-section").outerHeight() + $("footer").outerHeight();
articleHeight = windowHeight - (headerHeight + footerHeight);
feedbackOffsetTop = document.body.scrollHeight - footerHeight;
scrollFold = $window.scrollTop() + windowHeight;
}
Feedback = $.extend(Feedback, {
init: function () {
Feedback._events();
Feedback.adjustArticleHeight();
updateVariables();
Feedback.adjustNavigationPosition();
if (shouldOverlayFeedback) {
showingFeedbackBar = true;
window.setTimeout(function () {
showingFeedbackBar = false;
Feedback.adjustFeedbackPoistion();
Feedback.adjustNavigationPosition();
}, 10000);
}
},
// #region events
_events: function () {
$window.scroll(Feedback._window_scroll);
$window.resize(Feedback._window_resize);
$("#close-button").click(Feedback._button_click);
},
_window_scroll: function () {
updateVariables();
scrollFold = $window.scrollTop() + windowHeight;
Feedback.adjustFeedbackPoistion();
Feedback.adjustNavigationPosition();
},
_window_resize: function () {
updateVariables();
Feedback.adjustArticleHeight();
Feedback.adjustFeedbackPoistion();
Feedback.adjustNavigationPosition();
},
_button_click: function () {
Feedback.closeFeedback();
Feedback.adjustNavigationPosition();
},
// #endregion
// #region adjusters
adjustNavigationPosition: function Feedback_adjustNavigationPosition() {
var bottom = 0;
if (!window.matchMedia('(max-width: 1200px)').matches) {
bottom = Math.max(feedbackPinned ? $("#feedback-section").outerHeight() : 0, scrollFold - feedbackOffsetTop);
}
$("#page-nav").css("bottom", bottom);
},
adjustArticleHeight: function Feedback_adjustArticleHeight() {
$("#page-article").css("min-height", articleHeight);
},
adjustFeedbackPoistion: function Feedback_adjustFeedbackPosition() {
if (!shouldOverlayFeedback || showingFeedbackBar) {
return;
}
if (scrollFold - $("#feedback-section").outerHeight() < feedbackOffsetTop) {
Feedback.pinFeedback();
}
else {
Feedback.unpinFeedback();
}
},
// #endregion
// #region feedback bar
pinFeedback: function Feedback_pinFeedback() {
feedbackPinned = true;
$("#feedback-section").addClass("fixed");
$("#feedback-section-dummy").show();
},
unpinFeedback: function Feedback_unpinFeedback() {
feedbackPinned = false;
$("#feedback-section").removeClass("fixed");
$("#feedback-section-dummy").hide();
},
closeFeedback: function Feedback_closeFeedback() {
shouldOverlayFeedback = false;
setCookieByName("yesNoFeedbackClosed");
Feedback.unpinFeedback();
},
hideFeedbackForm: function Feedback_hideFeedbackForm() {
$("#feedback-section").addClass("hide-feedback-form");
}
// #endregion
});
Feedback.init();
});

Просмотреть файл

@ -1,148 +0,0 @@
//===============================================================================================================
// System : Color Syntax Highlighter
// File : Highlight.js
// Author : Eric Woodruff (Eric@EWoodruff.us)
// Updated : 10/21/2012
// Note : Copyright 2006-2012, Eric Woodruff, All rights reserved
//
// This contains the script to expand and collapse the regions in the syntax highlighted code.
//
// This is a customized version for the Sandcastle Help File Builder. It overrides the CopyCode() function
// from the Hana, Prototype, and VS2005 presentation styles to remove the line numbering and collapsible
// region elements. The VS2010 style does not currently use the CopyCode() function in here as it has its own
// version for copying the code.
//===============================================================================================================
// Expand/collapse a region
function HighlightExpandCollapse(showId, hideId)
{
var showSpan = document.getElementById(showId), hideSpan = document.getElementById(hideId);
showSpan.style.display = "inline";
hideSpan.style.display = "none";
}
// Copy the code from a colorized code block to the clipboard.
function CopyCode(key)
{
var idx, line, block, htmlLines, lines, codeText, hasLineNos, hasRegions, clip, trans,
copyObject, clipID;
var reLineNo = /^\s*\d{1,4}/;
var reRegion = /^\s*\d{1,4}\+.*?\d{1,4}-/;
var reRegionText = /^\+.*?\-/;
// Find the table row element containing the code
var trElements = document.getElementsByTagName("tr");
for(idx = 0; idx < trElements.length; idx++)
if(key.parentNode.parentNode.parentNode == trElements[idx].parentNode)
{
block = trElements[idx].nextSibling;
break;
}
if(block.innerText != undefined)
codeText = block.innerText;
else
codeText = block.textContent;
hasLineNos = block.innerHTML.indexOf("highlight-lineno");
hasRegions = block.innerHTML.indexOf("highlight-collapsebox");
htmlLines = block.innerHTML.split("\n");
lines = codeText.split("\n");
// Remove the line numbering and collapsible regions if present
if(hasLineNos != -1 || hasRegions != -1)
{
codeText = "";
for(idx = 0; idx < lines.length; idx++)
{
line = lines[idx];
if(hasRegions && reRegion.test(line))
line = line.replace(reRegion, "");
else
{
line = line.replace(reLineNo, "");
// Lines in expanded blocks have an extra space
if(htmlLines[idx].indexOf("highlight-expanded") != -1 ||
htmlLines[idx].indexOf("highlight-endblock") != -1)
line = line.substr(1);
}
if(hasRegions && reRegionText.test(line))
line = line.replace(reRegionText, "");
codeText += line;
// Not all browsers keep the line feed when split
if(line[line.length - 1] != "\n")
codeText += "\n";
}
}
// IE or FireFox/Netscape?
if(window.clipboardData)
window.clipboardData.setData("Text", codeText);
else
if(window.netscape)
{
// Give unrestricted access to browser APIs using XPConnect
try
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
}
catch(e)
{
alert("Universal Connect was refused, cannot copy to clipboard. Go to about:config and set " +
"signed.applets.codebase_principal_support to true to enable clipboard support.");
return;
}
// Creates an instance of nsIClipboard
clip = Components.classes["@mozilla.org/widget/clipboard;1"].createInstance(
Components.interfaces.nsIClipboard);
// Creates an instance of nsITransferable
if(clip)
trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(
Components.interfaces.nsITransferable);
if(!trans)
{
alert("Copy to Clipboard is not supported by this browser");
return;
}
// Register the data flavor
trans.addDataFlavor("text/unicode");
// Create object to hold the data
copyObject = new Object();
// Creates an instance of nsISupportsString
copyObject = Components.classes["@mozilla.org/supports-string;1"].createInstance(
Components.interfaces.nsISupportsString);
// Assign the data to be copied
copyObject.data = codeText;
// Add data objects to transferable
trans.setTransferData("text/unicode", copyObject, codeText.length * 2);
clipID = Components.interfaces.nsIClipboard;
if(!clipID)
{
alert("Copy to Clipboard is not supported by this browser");
return;
}
// Transfer the data to the clipboard
clip.setData(trans, null, clipID.kGlobalClipboard);
}
else
alert("Copy to Clipboard is not supported by this browser");
}

Просмотреть файл

@ -1,18 +0,0 @@
var KB_DEFAULT_QUERY = 'knowledge-base';
$(document).ready(function () {
var footer = $("#feedback-section").height() + $("footer").height() + 40
var windowHeight = $(window).height();
$("#page-article").css("min-height", windowHeight - 121 - footer);
})
function searchInternal() {
search();
$("#page-search table.gsc-above-wrapper-area-container > tbody > tr > td.gsc-result-info-container").append("<h2 id='latest-articles'>Latest Articles</h2>");
}
function onSearchInternal() {
$("#latest-articles").hide();
$("#page-search .gsc-result-info").show();
}

Просмотреть файл

@ -1,30 +0,0 @@
!function(){var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;
(function(){function S(a){function d(e){var b=e.charCodeAt(0);if(b!==92)return b;var a=e.charAt(1);return(b=r[a])?b:"0"<=a&&a<="7"?parseInt(e.substring(1),8):a==="u"||a==="x"?parseInt(e.substring(2),16):e.charCodeAt(1)}function g(e){if(e<32)return(e<16?"\\x0":"\\x")+e.toString(16);e=String.fromCharCode(e);return e==="\\"||e==="-"||e==="]"||e==="^"?"\\"+e:e}function b(e){var b=e.substring(1,e.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),e=[],a=
b[0]==="^",c=["["];a&&c.push("^");for(var a=a?1:0,f=b.length;a<f;++a){var h=b[a];if(/\\[bdsw]/i.test(h))c.push(h);else{var h=d(h),l;a+2<f&&"-"===b[a+1]?(l=d(b[a+2]),a+=2):l=h;e.push([h,l]);l<65||h>122||(l<65||h>90||e.push([Math.max(65,h)|32,Math.min(l,90)|32]),l<97||h>122||e.push([Math.max(97,h)&-33,Math.min(l,122)&-33]))}}e.sort(function(e,a){return e[0]-a[0]||a[1]-e[1]});b=[];f=[];for(a=0;a<e.length;++a)h=e[a],h[0]<=f[1]+1?f[1]=Math.max(f[1],h[1]):b.push(f=h);for(a=0;a<b.length;++a)h=b[a],c.push(g(h[0])),
h[1]>h[0]&&(h[1]+1>h[0]&&c.push("-"),c.push(g(h[1])));c.push("]");return c.join("")}function s(e){for(var a=e.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),c=a.length,d=[],f=0,h=0;f<c;++f){var l=a[f];l==="("?++h:"\\"===l.charAt(0)&&(l=+l.substring(1))&&(l<=h?d[l]=-1:a[f]=g(l))}for(f=1;f<d.length;++f)-1===d[f]&&(d[f]=++x);for(h=f=0;f<c;++f)l=a[f],l==="("?(++h,d[h]||(a[f]="(?:")):"\\"===l.charAt(0)&&(l=+l.substring(1))&&l<=h&&
(a[f]="\\"+d[l]);for(f=0;f<c;++f)"^"===a[f]&&"^"!==a[f+1]&&(a[f]="");if(e.ignoreCase&&m)for(f=0;f<c;++f)l=a[f],e=l.charAt(0),l.length>=2&&e==="["?a[f]=b(l):e!=="\\"&&(a[f]=l.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return a.join("")}for(var x=0,m=!1,j=!1,k=0,c=a.length;k<c;++k){var i=a[k];if(i.ignoreCase)j=!0;else if(/[a-z]/i.test(i.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi,""))){m=!0;j=!1;break}}for(var r={b:8,t:9,n:10,v:11,
f:12,r:13},n=[],k=0,c=a.length;k<c;++k){i=a[k];if(i.global||i.multiline)throw Error(""+i);n.push("(?:"+s(i)+")")}return RegExp(n.join("|"),j?"gi":"g")}function T(a,d){function g(a){var c=a.nodeType;if(c==1){if(!b.test(a.className)){for(c=a.firstChild;c;c=c.nextSibling)g(c);c=a.nodeName.toLowerCase();if("br"===c||"li"===c)s[j]="\n",m[j<<1]=x++,m[j++<<1|1]=a}}else if(c==3||c==4)c=a.nodeValue,c.length&&(c=d?c.replace(/\r\n?/g,"\n"):c.replace(/[\t\n\r ]+/g," "),s[j]=c,m[j<<1]=x,x+=c.length,m[j++<<1|1]=
a)}var b=/(?:^|\s)nocode(?:\s|$)/,s=[],x=0,m=[],j=0;g(a);return{a:s.join("").replace(/\n$/,""),d:m}}function H(a,d,g,b){d&&(a={a:d,e:a},g(a),b.push.apply(b,a.g))}function U(a){for(var d=void 0,g=a.firstChild;g;g=g.nextSibling)var b=g.nodeType,d=b===1?d?a:g:b===3?V.test(g.nodeValue)?a:d:d;return d===a?void 0:d}function C(a,d){function g(a){for(var j=a.e,k=[j,"pln"],c=0,i=a.a.match(s)||[],r={},n=0,e=i.length;n<e;++n){var z=i[n],w=r[z],t=void 0,f;if(typeof w==="string")f=!1;else{var h=b[z.charAt(0)];
if(h)t=z.match(h[1]),w=h[0];else{for(f=0;f<x;++f)if(h=d[f],t=z.match(h[1])){w=h[0];break}t||(w="pln")}if((f=w.length>=5&&"lang-"===w.substring(0,5))&&!(t&&typeof t[1]==="string"))f=!1,w="src";f||(r[z]=w)}h=c;c+=z.length;if(f){f=t[1];var l=z.indexOf(f),B=l+f.length;t[2]&&(B=z.length-t[2].length,l=B-f.length);w=w.substring(5);H(j+h,z.substring(0,l),g,k);H(j+h+l,f,I(w,f),k);H(j+h+B,z.substring(B),g,k)}else k.push(j+h,w)}a.g=k}var b={},s;(function(){for(var g=a.concat(d),j=[],k={},c=0,i=g.length;c<i;++c){var r=
g[c],n=r[3];if(n)for(var e=n.length;--e>=0;)b[n.charAt(e)]=r;r=r[1];n=""+r;k.hasOwnProperty(n)||(j.push(r),k[n]=q)}j.push(/[\S\s]/);s=S(j)})();var x=d.length;return g}function v(a){var d=[],g=[];a.tripleQuotedStrings?d.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?d.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,
q,"'\"`"]):d.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&g.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var b=a.hashComments;b&&(a.cStyleComments?(b>1?d.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):d.push(["com",/^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),g.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/,q])):d.push(["com",
/^#[^\n\r]*/,q,"#"]));a.cStyleComments&&(g.push(["com",/^\/\/[^\n\r]*/,q]),g.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));if(b=a.regexLiterals){var s=(b=b>1?"":"\n\r")?".":"[\\S\\s]";g.push(["lang-regex",RegExp("^(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<<?=?|>>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*("+("/(?=[^/*"+b+"])(?:[^/\\x5B\\x5C"+b+"]|\\x5C"+s+"|\\x5B(?:[^\\x5C\\x5D"+b+"]|\\x5C"+
s+")*(?:\\x5D|$))+/")+")")])}(b=a.types)&&g.push(["typ",b]);b=(""+a.keywords).replace(/^ | $/g,"");b.length&&g.push(["kwd",RegExp("^(?:"+b.replace(/[\s,]+/g,"|")+")\\b"),q]);d.push(["pln",/^\s+/,q," \r\n\t\u00a0"]);b="^.[^\\s\\w.$@'\"`/\\\\]*";a.regexLiterals&&(b+="(?!s*/)");g.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,
q],["pun",RegExp(b),q]);return C(d,g)}function J(a,d,g){function b(a){var c=a.nodeType;if(c==1&&!x.test(a.className))if("br"===a.nodeName)s(a),a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)b(a);else if((c==3||c==4)&&g){var d=a.nodeValue,i=d.match(m);if(i)c=d.substring(0,i.index),a.nodeValue=c,(d=d.substring(i.index+i[0].length))&&a.parentNode.insertBefore(j.createTextNode(d),a.nextSibling),s(a),c||a.parentNode.removeChild(a)}}function s(a){function b(a,c){var d=
c?a.cloneNode(!1):a,e=a.parentNode;if(e){var e=b(e,1),g=a.nextSibling;e.appendChild(d);for(var i=g;i;i=g)g=i.nextSibling,e.appendChild(i)}return d}for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),d;(d=a.parentNode)&&d.nodeType===1;)a=d;c.push(a)}for(var x=/(?:^|\s)nocode(?:\s|$)/,m=/\r\n?|\n/,j=a.ownerDocument,k=j.createElement("li");a.firstChild;)k.appendChild(a.firstChild);for(var c=[k],i=0;i<c.length;++i)b(c[i]);d===(d|0)&&c[0].setAttribute("value",d);var r=j.createElement("ol");
r.className="linenums";for(var d=Math.max(0,d-1|0)||0,i=0,n=c.length;i<n;++i)k=c[i],k.className="L"+(i+d)%10,k.firstChild||k.appendChild(j.createTextNode("\u00a0")),r.appendChild(k);a.appendChild(r)}function p(a,d){for(var g=d.length;--g>=0;){var b=d[g];F.hasOwnProperty(b)?D.console&&console.warn("cannot override language handler %s",b):F[b]=a}}function I(a,d){if(!a||!F.hasOwnProperty(a))a=/^\s*</.test(d)?"default-markup":"default-code";return F[a]}function K(a){var d=a.h;try{var g=T(a.c,a.i),b=g.a;
a.a=b;a.d=g.d;a.e=0;I(d,b)(a);var s=/\bMSIE\s(\d+)/.exec(navigator.userAgent),s=s&&+s[1]<=8,d=/\n/g,x=a.a,m=x.length,g=0,j=a.d,k=j.length,b=0,c=a.g,i=c.length,r=0;c[i]=m;var n,e;for(e=n=0;e<i;)c[e]!==c[e+2]?(c[n++]=c[e++],c[n++]=c[e++]):e+=2;i=n;for(e=n=0;e<i;){for(var p=c[e],w=c[e+1],t=e+2;t+2<=i&&c[t+1]===w;)t+=2;c[n++]=p;c[n++]=w;e=t}c.length=n;var f=a.c,h;if(f)h=f.style.display,f.style.display="none";try{for(;b<k;){var l=j[b+2]||m,B=c[r+2]||m,t=Math.min(l,B),A=j[b+1],G;if(A.nodeType!==1&&(G=x.substring(g,
t))){s&&(G=G.replace(d,"\r"));A.nodeValue=G;var L=A.ownerDocument,o=L.createElement("span");o.className=c[r+1];var v=A.parentNode;v.replaceChild(o,A);o.appendChild(A);g<l&&(j[b+1]=A=L.createTextNode(x.substring(t,l)),v.insertBefore(A,o.nextSibling))}g=t;g>=l&&(b+=2);g>=B&&(r+=2)}}finally{if(f)f.style.display=h}}catch(u){D.console&&console.log(u&&u.stack||u)}}var D=window,y=["break,continue,do,else,for,if,return,while"],E=[[y,"auto,case,char,const,default,double,enum,extern,float,goto,inline,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],
"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],M=[E,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,delegate,dynamic_cast,explicit,export,friend,generic,late_check,mutable,namespace,nullptr,property,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],N=[E,"abstract,assert,boolean,byte,extends,final,finally,implements,import,instanceof,interface,null,native,package,strictfp,super,synchronized,throws,transient"],
O=[N,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,internal,into,is,let,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where"],E=[E,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],P=[y,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],
Q=[y,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],W=[y,"as,assert,const,copy,drop,enum,extern,fail,false,fn,impl,let,log,loop,match,mod,move,mut,priv,pub,pure,ref,self,static,struct,true,trait,type,unsafe,use"],y=[y,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],R=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/,
V=/\S/,X=v({keywords:[M,O,E,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",P,Q,y],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),F={};p(X,["default-code"]);p(C([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",
/^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);p(C([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],
["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);p(C([],[["atv",/^[\S\s]+/]]),["uq.val"]);p(v({keywords:M,hashComments:!0,cStyleComments:!0,types:R}),["c","cc","cpp","cxx","cyc","m"]);p(v({keywords:"null,true,false"}),["json"]);p(v({keywords:O,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:R}),
["cs"]);p(v({keywords:N,cStyleComments:!0}),["java"]);p(v({keywords:y,hashComments:!0,multiLineStrings:!0}),["bash","bsh","csh","sh"]);p(v({keywords:P,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),["cv","py","python"]);p(v({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:2}),["perl","pl","pm"]);p(v({keywords:Q,
hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb","ruby"]);p(v({keywords:E,cStyleComments:!0,regexLiterals:!0}),["javascript","js"]);p(v({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes",hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);p(v({keywords:W,cStyleComments:!0,multilineStrings:!0}),["rc","rs","rust"]);
p(C([],[["str",/^[\S\s]+/]]),["regex"]);var Y=D.PR={createSimpleLexer:C,registerLangHandler:p,sourceDecorator:v,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ",prettyPrintOne:D.prettyPrintOne=function(a,d,g){var b=document.createElement("div");b.innerHTML="<pre>"+a+"</pre>";b=b.firstChild;g&&J(b,g,!0);K({h:d,j:g,c:b,i:1});
return b.innerHTML},prettyPrint:D.prettyPrint=function(a,d){function g(){for(var b=D.PR_SHOULD_USE_CONTINUATION?c.now()+250:Infinity;i<p.length&&c.now()<b;i++){for(var d=p[i],j=h,k=d;k=k.previousSibling;){var m=k.nodeType,o=(m===7||m===8)&&k.nodeValue;if(o?!/^\??prettify\b/.test(o):m!==3||/\S/.test(k.nodeValue))break;if(o){j={};o.replace(/\b(\w+)=([\w%+\-.:]+)/g,function(a,b,c){j[b]=c});break}}k=d.className;if((j!==h||e.test(k))&&!v.test(k)){m=!1;for(o=d.parentNode;o;o=o.parentNode)if(f.test(o.tagName)&&
o.className&&e.test(o.className)){m=!0;break}if(!m){d.className+=" prettyprinted";m=j.lang;if(!m){var m=k.match(n),y;if(!m&&(y=U(d))&&t.test(y.tagName))m=y.className.match(n);m&&(m=m[1])}if(w.test(d.tagName))o=1;else var o=d.currentStyle,u=s.defaultView,o=(o=o?o.whiteSpace:u&&u.getComputedStyle?u.getComputedStyle(d,q).getPropertyValue("white-space"):0)&&"pre"===o.substring(0,3);u=j.linenums;if(!(u=u==="true"||+u))u=(u=k.match(/\blinenums\b(?::(\d+))?/))?u[1]&&u[1].length?+u[1]:!0:!1;u&&J(d,u,o);r=
{h:m,c:d,j:u,i:o};K(r)}}}i<p.length?setTimeout(g,250):"function"===typeof a&&a()}for(var b=d||document.body,s=b.ownerDocument||document,b=[b.getElementsByTagName("pre"),b.getElementsByTagName("code"),b.getElementsByTagName("xmp")],p=[],m=0;m<b.length;++m)for(var j=0,k=b[m].length;j<k;++j)p.push(b[m][j]);var b=q,c=Date;c.now||(c={now:function(){return+new Date}});var i=0,r,n=/\blang(?:uage)?-([\w.]+)(?!\S)/,e=/\bprettyprint\b/,v=/\bprettyprinted\b/,w=/pre|xmp/i,t=/^code$/i,f=/^(?:pre|code|xmp)$/i,
h={};g()}};typeof define==="function"&&define.amd&&define("google-code-prettify",[],function(){return Y})})();}()

Просмотреть файл

@ -1,171 +0,0 @@
var PAGE_FILTER = " more:pagemap:metatags-restype:";
var GCSE_ELEMENT_NAME = "google-search";
var viewModel = kendo.observable({
kb: false,
docs: false,
api: false,
label: "",
filterValues: [],
getFilter: function () {
var filterExpression = '';
for (var i = 0; i < this.filterValues.length; i++) {
if (filterExpression !== '') {
filterExpression += ',';
}
filterExpression += this.filterValues[i];
}
return filterExpression;
},
updateLabel: function () {
var label = "";
this.filterValues = [];
if ((this.kb && this.docs && this.api) || (!this.kb && !this.docs && !this.api)) {
label = "Search all";
} else {
if (this.docs) {
label += "DOCS";
this.filterValues.push('documentation');
}
if (this.kb) {
label += (label ? " / " : "") + "KB";
this.filterValues.push('kb');
}
if (this.api) {
label += (label ? " / " : "") + "API";
this.filterValues.push('api');
}
label = "Search in " + label;
}
this.set("label", label)
}
});
var searchTerms = "";
function search_loaded() {
$("#page-search table.gsc-search-box > tbody > tr")
.append($("<td id='refine-search-container'><div id='refine-search-button' class='unselectable'><span id='refine-search-label' data-bind='text: label'></span><span class='k-icon k-i-arrow-chevron-down'></span></div></td>"));
var popup = $("#refine-search-popup").kendoPopup({
anchor: $("#page-search table.gsc-search-box"),
origin: "bottom right",
position: "top right",
}).data("kendoPopup");
$("#page-search #refine-search-button").on("click", function () {
popup.toggle();
});
viewModel.updateLabel();
kendo.bind($("#page-search"), viewModel);
kendo.bind($("#refine-search-popup"), viewModel);
$(".custom-checkbox input[type='checkbox']").change(function () {
viewModel.updateLabel();
});
prepareSearch();
searchInternal();
}
function searchInternal() {}
function onSearchInternal() {}
function search() {
var element = google.search.cse.element.getElement(GCSE_ELEMENT_NAME);
if (element) {
searchTerms = $(".gsc-input-box .gsc-input").val();
var filterExpression = viewModel.getFilter();
trackSearchQuery(filterExpression, searchTerms);
filterExpression = filterExpression !== '' ? PAGE_FILTER + filterExpression : '';
element.execute(searchTerms + filterExpression);
$(".gsc-input-box .gsc-input").val(searchTerms);
}
onSearchInternal();
}
function closePopup() {
var popup = $("#refine-search-popup").data("kendoPopup");
popup.close();
}
function prepareSearch() {
var oldInput = $('.gsc-input input[type="text"]');
oldInput.off('keydown');
oldInput.off('blur');
oldInput.off('focus');
var newInput = oldInput.clone();
oldInput.replaceWith(newInput);
newInput.on('keydown', function (e) {
if (e.keyCode == 13) { // Enter
closePopup();
search();
return false;
}
})
.on('blur', function() {
$this = $(this);
if(!$this.val().length) {
$this.removeClass('input-focused');
}
}).on('focus', function() {
$(this).addClass('input-focused');
});
var oldSearchButton = $('.gsc-search-button button.gsc-search-button.gsc-search-button-v2');
oldSearchButton.off('click');
var newSearchButton = oldSearchButton.clone();
oldSearchButton.replaceWith(newSearchButton);
newSearchButton.on('click', function () {
closePopup();
search();
return false;
});
var searchButtonParent = $('td.gsc-search-button');
searchButtonParent.on('click', function () {
closePopup();
search();
return false;
});
$("#page-search").on("click", "a.gs-title", function (e) {
trackSearchResult($(e.target).data("ctorig"));
})
}
function trackSearchQuery(filter, query) {
trackItem("docs-search-terms", filter, query);
}
function trackSearchResult(link) {
trackItem("docs-search-results", searchTerms, link);
}
function trackItem(category, action, label) {
dataLayer.push({
'event': 'virtualEvent',
'eventCategory': category,
'eventAction': action,
'eventLabel': label,
});
}
window.__gcse = {
callback: search_loaded
};

Просмотреть файл

@ -1,312 +0,0 @@
#feedback-section-dummy {
height: 50px;
color: #FFFFFF;
display: none;
}
#feedback-section {
background-color: #1976d2;
color: #FFFFFF;
font-family: Roboto, Helvetica, Arial, sans-serif;
}
#feedback-section.fixed {
position: fixed;
bottom: 0;
right: 0;
left: 0;
opacity: .9;
z-index: 1015;
}
#close-button {
display: none;
right: 1.2em;
bottom: 14px;
position: absolute;
cursor: pointer;
}
#feedback-section.fixed #close-button {
display: block;
height: 14px;
width: 14px;
}
#close-button img {
width: 14px;
height: 14px;
}
#feedback-section .side-title {
font-size: 14px;
margin-bottom: 0;
margin-right: 15px;
flex: 1;
}
footer,
#feedback-menu-container {
margin-left: 18%;
padding: 13px 4em 13px 0;
padding-left: 6em;
}
#feedback-menu-container {
max-width: 930px;
}
@-webkit-keyframes hide-feedback-form-animation {
0% { opacity: 1; }
100% { opacity: 0; height: 0; }
}
@-moz-keyframes hide-feedback-form-animation {
0% { opacity: 1; }
100% { opacity: 0; height: 0; }
}
@-o-keyframes hide-feedback-form-animation {
0% { opacity: 1; }
100% { opacity: 0; height: 0; }
}
@keyframes hide-feedback-form-animation {
0% { opacity: 1; }
100% { opacity: 0; height: 0; }
}
.hide-feedback-form {
-webkit-animation: hide-feedback-form-animation 1s ease-out;
-moz-animation: hide-feedback-form-animation 1s ease-out;
-o-animation: hide-feedback-form-animation 1s ease-out;
animation: hide-feedback-form-animation 1s ease-out;
animation-fill-mode: forwards;
animation-delay: 2s;
}
@media (max-width: 1200px) {
footer,
#feedback-menu-container {
margin-left: 0;
padding-left: 2em;
}
#feedback-section.fixed {
position: static;
bottom: 0;
right: 0;
left: 0;
opacity: 1;
}
#feedback-section-dummy {
display: none !important;
}
}
#helpful-buttons-container,
#feedback-submitted-container {
font-size: 14px;
width: 100%;
text-decoration: none;
display: flex;
align-items: center;
}
#helpful-buttons-container .button {
text-transform: uppercase;
text-align: center;
color: #b4daff;
cursor: pointer;
transition-property: background-color, color;
transition-duration: 0.2s;
transition-timing-function: ease;
}
#yesButton {
margin-right: 10px;
}
#noButton {
margin-left: 10px;
}
#helpful-buttons-container .button:hover {
text-decoration: none;
color: #FFFFFF;
}
.k-widget.k-window.k-window-titleless {
width: 460px !important;
top: 50% !important;
left: 50% !important;
margin-left: -230px;
margin-top: -250px;
background-color: #FFFFFF;
border: none;
position: fixed;
box-sizing: border-box;
}
@media (max-width: 460px) {
.k-widget.k-window.k-window-titleless {
padding: 0;
margin: 0;
width: 100% !important;
height: 100% !important;
top: 0 !important;
left: 0 !important;
}
#feedback-form-window button {
margin-top: 15px !important;
}
}
#feedback-form-window {
max-height: 580px !important;
padding: 30px 15px 30px 30px;
display: -webkit-flex;
display: flex;
-webkit-flex-direction: column;
flex-direction: column;
}
#feedback-form-window>* {
padding-right: 15px;
}
#feedback-form {
-webkit-flex: 1;
-moz-flex: 1;
overflow: auto;
}
#feedback-form span.required-field:after {
content: "* required";
font-size: 11px;
float: right;
}
#feedback-form-window input::-webkit-input-placeholder,
#feedback-form-window textarea::-webkit-input-placeholder,
#feedback-form-window input:-moz-placeholder,
#feedback-form-window textarea:-moz-placeholder,
#feedback-form-window input::-moz-placeholder,
#feedback-form-window textarea::-moz-placeholder,
#feedback-form-window input:-ms-input-placeholder,
#feedback-form-window textarea:-ms-input-placeholder {
color: #d9d9d9;
}
#feedback-form-window .feedback-extw__title {
margin: 0;
font-size: 24px;
}
#feedback-form-window .feedback-extw__subtitle {
margin-top: 0;
margin-bottom: 0;
font-size: 1.5em;
font-weight: bold;
color: #000;
text-decoration: none;
}
#feedback-form-window p:nth-child(2) {
margin-top: 10px;
margin-bottom: 20px;
font-size: 1.12em;
font-weight: bold;
color: #000;
text-decoration: none;
}
#feedback-form textarea {
margin: 12px 0 0px !important;
margin-top: 2px !important;
}
#feedback-checkbox-area label {
display: block;
margin: 5px 0 0;
padding: 5px 0 0;
}
#feedback-checkbox-area #feedback-email-input{
margin-top: 20px !important;
}
#feedback-extw__checkbox:after {
content: "";
display: block;
clear: both;
}
#feedback-form .checkbox__input {
float: left;
}
#feedback-form .checkbox__text {
line-height: 18px;
margin-left: 5px;
}
#feedback-form .feedback-extw__textarea,
#feedback-form .feedback-extw__input {
padding: 10px;
border: 1px solid #d9d9d9;
width: 100%;
box-sizing: border-box;
font: inherit;
font-style: italic;
}
#feedback-form .feedback-extw__textarea {
resize: none;
}
#feedback-form .feedback-extw__input,
#feedback-form .feedback-extw__textarea {
margin: 12px 0 6px;
}
#feedback-form-window button {
margin-top: 30px;
line-height: 0.933em;
font-size: 15px;
font-weight: bold;
text-align: center;
border-radius: 2px;
padding: 0.667em 2.000em;
background-color: #015991;
color: #fff;
border-width: 0;
cursor: pointer;
background-clip: padding-box;
border: 1px solid #015991;
transition-property: background-color, color;
transition-duration: 0.2s;
transition-timing-function: ease;
}
#feedback-form-window button:hover {
background-color: #013a5e;
}
#form-submit-button {
margin-left: 5px;
}
button#form-close-button {
background-color: #fff;
color: #555;
border: 1px solid #ccc;
}
button#form-close-button:hover {
background-color: #ccc;
}
#feedback-form span.k-tooltip {
border: 0;
color: #ff0000;
font-style: italic;
font-size: 12px;
padding: 0 0 6px !important;
}

Просмотреть файл

@ -1,174 +0,0 @@
#page-edit-link {
margin-top: 80px !important;
}
.api-breadcrumbs-container {
padding: 10px 2em 0 18%;
font-family: Roboto, Helvetica, Arial, sans-serif;
max-width: 930px;
margin: 30px 1em 0 6em;
}
@media (max-width: 1200px) {
.api-breadcrumbs-container {
padding-left: 0;
margin-left: 2em;
}
}
#api-filter ~ h2:first-of-type {
margin-top: 30px;
}
.api-breadcrumbs-container + #page-article h2 {
margin-top: 0;
}
.api-breadcrumbs-container + #page-article h2 {
margin-top: 0;
}
.api-breadcrumbs-container + #page-article {
padding-top: 0;
margin-top: 0;
}
h2 a:first-child + a code:before {
content: '-';
margin-right: 7px;
color: #cccccc;
}
#markdown-toc+#page-article ul, #related-properties+ul {
list-style-type: none;
margin-left: -18px;
}
#markdown-toc+#page-article ul>li, #related-properties+ul>li {
margin-right: 25px;
width: 33%;
}
#markdown-toc .section>a {
background: transparent !important;
}
.nested-list-item {
font-size: 12px;
list-style-type: none;
}
.hide-api-container, .hide-api-link {
display: none;
}
.columns {
display: flex;
flex-direction: column;
flex-wrap: wrap;
overflow-wrap: break-word;
}
.api-icon {
position: relative;
margin-top: 10px;
margin-bottom: 6px;
font-weight: 500;
}
.api-icon:after {
position: absolute;
top: 2px;
left: -8px;
height: 0;
width: 0;
content: "";
border: 2px solid #fff;
border-color: #fff #fff transparent transparent;
}
.api-icon:before {
position: absolute;
width: 14px;
height: 14px;
top: 2px;
right: 18px;
bottom: -2px;
left: -18px;
content: "C";
color: #fff;
font-size: 8px;
line-height: 15px;
font-weight: 900;
font-family: 'Roboto', sans-serif;
text-align: center;
vertical-align: middle;
}
.configuration:before {
background-color: #1ab125;
content: "C";
}
.fields:before {
background-color: #0060be;
content: "F";
}
.methods:before {
background-color: #f57c00;
content: "M";
}
.events:before {
background-color: #ff4081;
content: "E";
}
#api-filter {
margin: 30px 0;
width: 270px;
}
#api-filter .search {
padding: 7px 5px 7px 25px;
width: 100%;
}
#api-filter .search-icon{
position: absolute;
margin-top: 9px;
margin-left: 8px;
font-size: 12px;
color: #b8b8b8;
}
#api-filter input[type="search"] {
border-radius: 1px;
border-width: 1px;
border-style: solid;
border-color: #b8b8b8;
}
#api-filter input[type="search"]:focus{
outline: none;
}
#api-filter input[type="search"]::-webkit-search-decoration,
#api-filter input[type="search"]::-webkit-search-cancel-button,
#api-filter input[type="search"]::-webkit-search-results-button,
#api-filter input[type="search"]::-webkit-search-results-decoration {
display: none;
}
#page-inner-content {
min-height: 100%;
}
footer {
position: absolute;
bottom: 0;
left:0;
right: 0;
margin-bottom: 0;
}

Просмотреть файл

@ -1,602 +0,0 @@
.subHeading {
font-family: 'Segoe UI Semibold' , 'Segoe UI' , 'Lucida Grande' , Verdana, Arial, Helvetica, sans-serif;
}
h5, h6 {
font-family: 'Segoe UI Semibold' , 'Segoe UI' , 'Lucida Grande' , Verdana, Arial, Helvetica, sans-serif;
}
a, a:link {
text-decoration: none;
color: #1364c4;
}
a:visited, a:active {
text-decoration: none;
color: #03697a;
}
a:hover {
text-decoration: none;
color: #3390b1;
}
img {
border: 0;
}
q {
font-style: italic;
}
table {
border-collapse: collapse;
padding: 0;
margin-bottom: 15px;
font-size: 15px;
width: 100%;
}
th {
background-color: #ededed;
color: #636363;
text-align: left;
padding-top: 5px;
padding-bottom: 5px;
border-bottom: 1px solid #dbdbdb;
margin: 10px;
}
td {
color: #2a2a2a;
vertical-align: top;
}
table p:last-child {
padding-bottom: 0;
}
table.members {
width: 100%;
}
table.members td {
min-width: 72px;
}
table.members img {
padding-right: 5px;
}
div.alert img {
padding-right: 5px;
}
ol {
margin-top: 0px;
margin-bottom: 10px;
}
ol ol {
list-style-type: lower-alpha;
}
ol ol ol {
list-style-type: lower-roman;
}
ul {
margin-top: 0px;
margin-bottom: 10px;
}
.noBullet {
list-style-type: none;
padding-left: 20px;
}
ul ul {
list-style-type: circle;
}
ul ul ul {
list-style-type: square;
}
dl {
margin-top: 0px;
margin-bottom: 10px;
}
dt {
font-weight: bold;
margin-top: 5px;
}
dd {
margin-left: 20px;
margin-bottom: 5px;
}
pre {
font-family: Consolas, Courier, monospace;
overflow: auto;
}
.topicContent {
padding: 10px 10px 15px 10px;
overflow: visible;
}
.iconColumn {
width: 100px;
}
.seeAlsoStyle {
}
table.titleTable td {
padding-top: 10px;
border-width: 0px;
}
td.titleColumn {
font-family: 'Segoe UI' , 'Lucida Grande' , Verdana, Arial, Helvetica, sans-serif;
font-size: 2.5em;
font-weight: normal;
margin-top: 0px;
padding-left: 0px;
color: #000;
vertical-align: middle;
}
td.logoColumn {
padding-left: 0px;
padding-right: 10px;
vertical-align: middle;
width: 1px;
}
td.logoColumn img {
margin-top: 10px;
}
td.logoColumnAbove {
padding: 0px 10px 0px 0px;
vertical-align: middle;
}
span.selflink {
color: #000066;
}
div.preliminary {
margin-top: 1em;
margin-bottom: 1em;
font-weight: bold;
color: #333333;
}
div.caption {
font-weight: bold;
font-size: 1em; /*12pt*/
color: #003399;
padding-top: 5px;
padding-bottom: 5px;
}
.procedureSubHeading {
font-size: 1.1em; /*13.5pt*/
font-weight: bold;
}
.summary {
}
/* Collapsible region styles */
.collapsibleAreaRegion {
margin-top: 15px;
margin-bottom: 15px;
}
.collapseToggle {
padding-right: 5px;
}
.collapsibleRegionTitle {
font-family: 'Segoe UI Semibold' , 'Segoe UI' , 'Lucida Grande' , Verdana, Arial, Helvetica, sans-serif !important;
font-style: normal !important;
font-size: 1.769em;
margin-top: 9px;
margin-bottom: 19px;
padding-top: 20px;
padding-bottom: 5px;
cursor: pointer;
}
.collapsibleSection {
margin-top: 5px;
}
/* Syntax and code snippet styles */
.codeSnippetContainer {
min-width: 260px;
margin-top: 10px;
}
.codeSnippetContainerTabs {
height: 23px;
vertical-align: middle;
position: relative;
z-index: 1;
}
.codeSnippetContainerTab {
padding: 0px 15px;
width: auto;
height: 22px;
color: #2a2a2a;
font-family: "Segoe UI" , "Lucida Grande" , Verdana, Arial, Helvetica, sans-serif !important;
font-size: 12px;
font-style: normal !important;
vertical-align: baseline;
float: left;
}
.codeSnippetContainerTabActive {
background: #f8f8f8;
padding: 0px 15px;
width: auto;
height: 22px;
color: #000000;
font-family: "Segoe UI" , "Lucida Grande" , Verdana, Arial, Helvetica, sans-serif !important;
font-size: 12px;
font-style: normal !important;
vertical-align: baseline;
border-top-color: #939393;
border-right-color: #939393;
border-left-color: #939393;
border-top-width: 1px;
border-right-width: 1px;
border-left-width: 1px;
border-top-style: solid;
border-right-style: solid;
border-left-style: solid;
float: left;
}
.codeSnippetContainerTabPhantom {
background: #f8f8f8;
padding: 0px 15px;
width: auto;
height: 22px;
color: #000000;
font-family: "Segoe UI" , "Lucida Grande" , Verdana, Arial, Helvetica, sans-serif !important;
font-size: 12px;
font-style: normal !important;
vertical-align: baseline;
border-top-color: #939393;
border-right-color: #939393;
border-left-color: #939393;
border-top-width: 1px;
border-right-width: 1px;
border-left-width: 1px;
border-top-style: solid;
border-right-style: solid;
border-left-style: solid;
float: left;
display: none;
}
.codeSnippetContainerTabSingle {
background: #f8f8f8;
padding: 2px 15px 0px 15px;
width: auto;
height: 20px;
color: #000000;
font-family: "Segoe UI" , "Lucida Grande" , Verdana, Arial, Helvetica, sans-serif !important;
font-size: 12px;
font-weight: bold;
font-style: normal !important;
vertical-align: baseline;
border-top-color: #939393;
border-right-color: #939393;
border-left-color: #939393;
border-top-width: 1px;
border-right-width: 1px;
border-left-width: 1px;
border-top-style: solid;
border-right-style: solid;
border-left-style: solid;
float: left;
}
.codeSnippetContainerTab a {
top: 2px;
color: #000000;
font-weight: bold;
text-decoration: none;
position: relative;
}
.codeSnippetContainerTab a:link {
color: #000000;
}
.codeSnippetContainerTab a:hover {
color: #136460;
}
.codeSnippetContainerTabActive a {
top: 2px;
color: #000000;
font-weight: bold;
text-decoration: none;
position: relative;
cursor: default;
}
.codeSnippetContainerTabActive a:link {
color: #000000;
}
.codeSnippetContainerTabActive a:hover {
color: #000000;
}
.codeSnippetContainerTabPhantom a {
top: 2px;
color: #000000;
font-weight: bold;
text-decoration: none;
position: relative;
cursor: default;
}
.codeSnippetContainerTabPhantom a:link {
color: #000000;
}
.codeSnippetContainerCodeContainer {
border: 1px solid #939393;
top: -1px;
margin-bottom: 12px;
position: relative;
}
.codeSnippetToolBar {
width: auto;
height: auto;
}
.codeSnippetToolBarText {
top: -8px;
width: auto;
height: 0px;
padding-right: 0px;
padding-left: 0px;
vertical-align: top;
float: right;
position: relative;
}
.codeSnippetToolBarText a {
color: #1364c4;
text-decoration: none;
padding-left: 8px;
padding-right: 8px;
font-family: "Segoe UI" , "Lucida Grande" , Verdana, Arial, Helvetica, sans-serif !important;
font-size: 13px;
font-style: normal !important;
text-decoration: none;
margin-right: 10px;
margin-left: 0px;
background-color: #ffffff;
}
.codeSnippetToolBarText a:link {
color: #1364c4;
}
.codeSnippetContainerCode {
margin: 0px;
padding: 10px;
width: auto;
}
.codeSnippetContainerCode div {
margin: 0px;
padding: 0px;
}
.codeSnippetContainerCode pre {
margin: 0px;
padding: 5px;
overflow: auto;
font-family: Consolas, Courier, monospace !important;
font-style: normal;
font-weight: normal;
-ms-word-wrap: normal;
}
/* Keyword and phrase styles */
span.code, span.command {
font-family: Consolas, Courier, monospace;
color: #000066;
}
span.ui {
font-weight: bold;
}
span.math {
font-style: italic;
}
span.input {
font-weight: bold;
}
span.term {
font-style: italic;
}
span.label {
font-weight: bold;
}
span.foreignPhrase, span.phrase {
font-style: italic;
}
span.placeholder {
font-style: italic;
}
span.typeparameter {
font-style: italic;
}
span.identifier {
}
span.keyword {
color: #0000ff;
}
span.parameter {
font-style: italic;
}
dt span.parameter {
font-weight: normal;
}
span.literal, span.literalValue {
color: #cc0000;
}
span.comment {
color: #006633;
}
span.introStyle {
color: #a9a9a9;
}
span.nolink {
font-weight: bold;
}
/* Auto-outline styles */
ul.autoOutline {
}
li.outlineSectionEntry {
}
div.outlineSectionEntrySummary {
}
/* Media styles */
div.mediaNear {
text-align: left;
margin-top: 1em;
margin-bottom: 1em;
}
div.mediaFar {
text-align: right;
margin-top: 1em;
margin-bottom: 1em;
}
div.mediaCenter {
text-align: center;
margin-top: 1em;
margin-bottom: 1em;
}
span.captionLead {
font-weight: bold;
margin-right: .5em;
}
span.media img {
vertical-align: top;
}
/* Glossary styles */
div.glossaryDiv {
}
div.glossaryLetterBar {
}
hr.glossaryRule {
}
h3.glossaryGroupHeading {
color: #808080;
}
div.glossaryGroup {
}
dl.glossaryGroupList {
margin: 0;
color: Black;
}
dt.glossaryEntry {
margin-left: 2em;
}
dd.glossaryEntry {
margin-left: 2em;
margin-bottom: 2em;
}
div.relatedEntry {
margin-bottom: 4px;
}
/* Bibliography styles */
div.bibliographStyle {
padding-top: 5px;
}
span.bibliographyNumber {
}
span.bibliographyAuthor {
font-weight: bold;
}
span.bibliographyTitle {
font-style: italic;
}
span.bibliographyPublisher {
}
sup.citation a:link a:visited a:active {
text-decoration: none;
}
/* Placeholder for the Help 1 user data style class */
.userDataStyle {
}
.tocCollapsed {
background: url('../icons/TocCollapsed.gif') no-repeat scroll center;
width: 17px;
height: 20px;
overflow: hidden;
}
.tocExpanded {
background: url('../icons/TocExpanded.gif') no-repeat scroll center;
width: 17px;
height: 20px;
overflow: hidden;
}
.tocResize {
position: absolute;
top: 90px;
left: 300px;
width: 5px;
height: 20px;
padding-right: 5px;
}
.tocResize img {
border: none;
cursor: pointer;
margin-top: 20px;
}
div#leftNav {
float: left;
margin: 0px -1px 0 0;
width: 280px;
min-height: 10px;
position: relative;
border-right: 1px solid #b6b6b6;
padding-left: 10px;
padding-top: 15px;
}
div#tocNav {
font-family: 'Segoe UI' ,Verdana,Arial;
overflow-x: hidden;
line-height: normal;
margin: -20px 0 0 -4px;
}
div#tocNav > div {
overflow-x: hidden;
white-space: normal;
width: auto;
margin-bottom: 5px;
}
div#leftNav a, div#leftNav a:link, div#leftNav a:visited {
color: #1364c4;
text-decoration: none;
}
div#leftNav a:hover {
color: #3390b1;
}
div#tocNav > div > a, div#tocNav > div > a:link, div#tocNav > div > a:visited {
display: block;
margin-left: 18px;
overflow: hidden;
}
div#tocNav > div.current > a, div#tocNav > div.current > a:link, div#tocNav > div.current > a:visited {
color: #000;
font-weight: bold;
text-decoration: none;
}
div#tocNav > div > a.tocExpanded, div#tocNav > div > a.tocCollapsed {
float: left;
display: inline-block;
margin-left: 0;
vertical-align: top;
}
.toclevel0:first-child {
margin-top: 16px;
}
div#tocNav > div.toclevel1 {
padding-left: 17px;
}
div#tocNav > div.toclevel2 {
padding-left: 34px;
}
div#tocNav > div.toclevel3 {
padding-left: 51px;
}
div#tocNav > div.toclevel4 {
padding-left: 68px;
}
div#tocNav > div.toclevel5 {
padding-left: 85px;
}
div#tocNav > div.toclevel6 {
padding-left: 102px;
}
div#tocNav > div.toclevel7 {
padding-left: 119px;
}
div#tocNav > div.toclevel8 {
padding-left: 136px;
}
div#tocNav > div.toclevel9 {
padding-left: 153px;
}
div#tocNav > div.toclevel10 {
padding-left: 170px;
}

Просмотреть файл

@ -1,27 +0,0 @@
logo-bar-reporting.highlight-inline { color: #000066; font-size: 9pt; font-family: Consolas, "Courier New", Courier, monospace; }
.highlight-pre { clear: both; width: 99.5%; background-color: #EFEFF7; padding: 0.4em; font-size: 9pt; font-family: Consolas, "Courier New", Courier, monospace; margin-top: 0px; margin-bottom: 1em; }
.highlight-comment { color: #006633; }
.highlight-literal { color: #CC0000; }
.highlight-number { color: #009966; }
.highlight-keyword { color: #0000FF; }
.highlight-preprocessor { color: #996666; }
.highlight-xml-tag { color: #AA4400 }
.highlight-xml-bracket { color: #0000FF }
.highlight-xml-comment { color: #006633 }
.highlight-xml-cdata { color: #AA0088 }
.highlight-xml-attribute-name { color: #0000FF }
.highlight-xml-attribute-equal { color: #000000 }
.highlight-xml-attribute-value {color: #CC0000 }
.highlight-title { font-weight: bold; margin-top: 1em; margin-bottom: 2px; border-bottom: gray 1px solid; padding-bottom: 3px; }
.highlight-copycode { float: right; padding-right: 10px; font-weight: normal; cursor: pointer; }
.highlight-copycode_h { float: right; padding-right: 10px; font-weight: normal; cursor: pointer; text-decoration: underline}
.highlight-lineno { font-size: 80%; color: black }
.highlight-lnborder { border-right-style: solid; border-right-width: 1px; border-color: gray; padding-right: 4px; margin-right: 4px; width: 4px;}
.highlight-spacer { padding-right: 20px; }
.highlight-spacerShort { padding-right: 5px; }
.highlight-collapsebox { cursor: pointer; color: black; text-align: center; border-style: solid; border-width: 1px; border-color: gray; margin-left: 2px; margin-right: 5px; }
.highlight-collapsed { border-style: solid; border-width: 1px; border-color: gray; margin: 2px; color: gray; }
.highlight-expanded { border-left-style: solid; border-left-width: 1px; border-color: gray; margin-left: 2px; margin-right: 10px; }
.highlight-endblock { border-left-style: solid; border-left-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; border-color: gray; margin-left: 2px; margin-right: 10px; }
.highlight-pshell-cmdlet { color: #5A9EA5; font-weight: bold; }
.highlight-namespace { color: #008284; }

Просмотреть файл

@ -1,673 +0,0 @@
@font-face {
font-family: 'WebComponentsIcons';
src:url('../fonts/WebComponentsIcons.eot');
src:url('../fonts/WebComponentsIcons.eot') format('embedded-opentype'),
url('../fonts/WebComponentsIcons.woff') format('woff'),
url('../fonts/WebComponentsIcons.ttf') format('truetype'),
url('../fonts/WebComponentsIcons.svg') format('svg');
font-weight: normal;
font-style: normal;
}
.WebComponentsIcons {
list-style: none;
margin: 0;
padding: 0;
}
.WebComponentsIcons::after {
content: "";
display: block;
clear: both;
height: 0;
line-height: 0;
}
.WebComponentsIcons li {
margin: 10px;
padding: 10px;
display: block;
float: left;
vertical-align: top;
text-align: center;
width: 140px;
height: 80px;
font-size: 12px;
font-weight: 300;
color: #999;
}
.WebComponentsIcons .k-icon {
display: block;
clear: both;
margin: 0 auto 10px;
color: #656565;
font-size: 32px;
}
#page-article table.obsolete-classes {
width: 100%;
max-width: 900px;
text-align: left;
border-collapse: collapse;
}
#page-article table.obsolete-classes th,
#page-article table.obsolete-classes td {
padding: 10px 0;
border: 0;
border-bottom: 1px solid #ececec;
}
#page-article table.obsolete-classes th {
padding: 5px;
}
#page-article table.obsolete-classes .old-class {
color: #f31700;
}
#page-article table.obsolete-classes .new-class {
color: #5ec232;
}
.ref-icon {
width: 60px;
}
/* ---- */
.k-icon {
width: 1em;
height: 1em;
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
font-size: 16px;
font-family: 'WebComponentsIcons';
font-style: normal;
font-variant: normal;
font-weight: normal;
line-height: 1;
speak: none;
text-transform: none;
text-decoration: none;
display: inline-block;
}
.k-icon::before {
vertical-align: baseline;
}
.k-icon:hover,
.k-icon:focus {
text-decoration: none;
}
.k-i-none::before {
content: "";
display: none;
}
.k-i-arrow-45-up-right::before {content: "\e000";}
.k-i-collapse-ne::before {content: "\e000";}
.k-i-resize-ne::before {content: "\e000";}
.k-i-arrow-45-down-right::before {content: "\e001";}
.k-i-collapse-se::before {content: "\e001";}
.k-i-resize-se::before {content: "\e001";}
.k-i-arrow-45-down-left::before {content: "\e002";}
.k-i-collapse-sw::before {content: "\e002";}
.k-i-resize-sw::before {content: "\e002";}
.k-i-arrow-45-up-left::before {content: "\e003";}
.k-i-collapse-nw::before {content: "\e003";}
.k-i-resize-new::before {content: "\e003";}
.k-i-arrow-60-up::before {content: "\e004";}
.k-i-arrow-60-right::before {content: "\e005";}
.k-i-arrow-60-down::before {content: "\e006";}
.k-i-arrow-60-left::before {content: "\e007";}
.k-i-arrow-end-up::before {content: "\e008";}
.k-i-arrow-end-right::before {content: "\e009";}
.k-i-arrow-end-down::before {content: "\e00a";}
.k-i-arrow-end-left::before {content: "\e00b";}
.k-i-arrow-double-60-up::before {content: "\e00c";}
.k-i-arrow-seek-up::before {content: "\e00c";}
.k-i-arrow-double-60-right::before {content: "\e00d";}
.k-i-arrow-seek-right::before {content: "\e00d";}
.k-i-arrow-double-60-down::before {content: "\e00e";}
.k-i-arrow-seek-down::before {content: "\e00e";}
.k-i-arrow-double-60-left::before {content: "\e00f";}
.k-i-arrows-kpi::before {content: "\e010";}
.k-i-kpi::before {content: "\e010";}
.k-i-arrows-no-change::before {content: "\e011";}
.k-i-arrow-overflow-down::before {content: "\e012";}
.k-i-arrow-chevron-up::before {content: "\e013";}
.k-i-arrow-chevron-right::before {content: "\e014";}
.k-i-arrow-chevron-down::before {content: "\e015";}
.k-i-arrow-chevron-left::before {content: "\e016";}
.k-i-arrow-up::before {content: "\e017";}
.k-i-arrow-right::before {content: "\e018";}
.k-i-arrow-down::before {content: "\e019";}
.k-i-arrow-left::before {content: "\e01a";}
.k-i-arrow-drill::before {content: "\e01b";}
.k-i-arrow-parent::before {content: "\e01c";}
.k-i-arrow-root::before {content: "\e01d";}
.k-i-arrows-resizing::before {content: "\e01e";}
.k-i-arrows-dimensions::before {content: "\e01f";}
.k-i-arrows-swap::before {content: "\e020";}
.k-i-drag-and-drop::before {content: "\e021";}
.k-i-categorize::before {content: "\e022";}
.k-i-grid::before {content: "\e023";}
.k-i-grid-layout::before {content: "\e024";}
.k-i-group::before {content: "\e025";}
.k-i-ungroup::before {content: "\e026";}
.k-i-handler-drag::before {content: "\e027";}
.k-i-layout::before {content: "\e028";}
.k-i-layout-1-by-4::before {content: "\e029";}
.k-i-layout-2-by-2::before {content: "\e02a";}
.k-i-layout-side-by-side::before {content: "\e02b";}
.k-i-layout-stacked::before {content: "\e02c";}
.k-i-columns::before {content: "\e02d";}
.k-i-rows::before {content: "\e02e";}
.k-i-reorder::before {content: "\e02f";}
.k-i-menu::before {content: "\e030";}
.k-i-more-vertical::before {content: "\e031";}
.k-i-more-horizontal::before {content: "\e032";}
.k-i-undo::before {content: "\e100";}
.k-i-redo::before {content: "\e101";}
.k-i-reset::before {content: "\e102";}
.k-i-reload::before {content: "\e103";}
.k-i-refresh::before {content: "\e103";}
.k-i-non-recurrence::before {content: "\e104";}
.k-i-reset-sm::before {content: "\e105";}
.k-i-reload-sm::before {content: "\e106";}
.k-i-refresh-sm::before {content: "\e106";}
.k-i-clock::before {content: "\e107";}
.k-i-calendar::before {content: "\e108";}
.k-i-save::before {content: "\e109";}
.k-i-floppy::before {content: "\e109";}
.k-i-print::before {content: "\e10a";}
.k-i-printer::before {content: "\e10a";}
.k-i-edit::before {content: "\e10b";}
.k-i-pencil::before {content: "\e10b";}
.k-i-delete::before {content: "\e10c";}
.k-i-trash::before {content: "\e10c";}
.k-i-attachment::before {content: "\e10d";}
.k-i-clip::before {content: "\e10d";}
.k-i-attachment-45::before {content: "\e10e";}
.k-i-clip-45::before {content: "\e10e";}
.k-i-link-horizontal::before {content: "\e10f";}
.k-i-hyperlink::before {content: "\e10f";}
.k-i-unlink-horizontal::before {content: "\e110";}
.k-i-hyperlink-remove::before {content: "\e110";}
.k-i-link-vertical::before {content: "\e111";}
.k-i-unlink-vertical::before {content: "\e112";}
.k-i-lock::before {content: "\e113";}
.k-i-unlock::before {content: "\e114";}
.k-i-cancel::before {content: "\e115";}
.k-i-cancel-outline::before {content: "\e116";}
.k-i-cancel-circle::before {content: "\e117";}
.k-i-check::before {content: "\e118";}
.k-i-checkmark::before {content: "\e118";}
.k-i-check-outline::before {content: "\e119";}
.k-i-checkmark-outline::before {content: "\e119";}
.k-i-check-circle::before {content: "\e11a";}
.k-i-checkmark-circle::before {content: "\e11a";}
.k-i-close::before {content: "\e11b";}
.k-i-x::before {content: "\e11b";}
.k-i-close-outline::before {content: "\e11c";}
.k-i-x-outline::before {content: "\e11c";}
.k-i-close-circle::before {content: "\e11d";}
.k-i-x-circle::before {content: "\e11d";}
.k-i-plus::before {content: "\e11e";}
.k-i-plus-outline::before {content: "\e11f";}
.k-i-plus-circle::before {content: "\e120";}
.k-i-minus::before {content: "\e121";}
.k-i-minus-outline::before {content: "\e122";}
.k-i-minus-circle::before {content: "\e123";}
.k-i-sort-asc::before {content: "\e124";}
.k-i-sort-desc::before {content: "\e125";}
.k-i-unsort::before {content: "\e126";}
.k-i-sort-clear::before {content: "\e126";}
.k-i-sort-asc-sm::before {content: "\e127";}
.k-i-sort-desc-sm::before {content: "\e128";}
.k-i-filter::before {content: "\e129";}
.k-i-filter-clear::before {content: "\e12a";}
.k-i-filter-sm::before {content: "\e12b";}
.k-i-filter-sort-asc-sm::before {content: "\e12c";}
.k-i-filter-sort-desc-sm::before {content: "\e12d";}
.k-i-filter-add-expression::before {content: "\e12e";}
.k-i-filter-add-group::before {content: "\e12f";}
.k-i-login::before {content: "\e130";}
.k-i-logout::before {content: "\e131";}
.k-i-download::before {content: "\e132";}
.k-i-upload::before {content: "\e133";}
.k-i-hyperlink-open::before {content: "\e134";}
.k-i-hyperlink-open-sm::before {content: "\e135";}
.k-i-launch::before {content: "\e136";}
.k-i-window::before {content: "\e137";}
.k-i-window-maximize::before {content: "\e137";}
.k-i-windows::before {content: "\e138";}
.k-i-window-restore::before {content: "\e138";}
.k-i-tiles::before {content: "\e138";}
.k-i-window-minimize::before {content: "\e139";}
.k-i-gear::before {content: "\e13a";}
.k-i-cog::before {content: "\e13a";}
.k-i-custom::before {content: "\e13a";}
.k-i-gears::before {content: "\e13b";}
.k-i-cogs::before {content: "\e13b";}
.k-i-wrench::before {content: "\e13c";}
.k-i-settings::before {content: "\e13c";}
.k-i-preview::before {content: "\e13d";}
.k-i-eye::before {content: "\e13d";}
.k-i-zoom::before {content: "\e13e";}
.k-i-search::before {content: "\e13e";}
.k-i-zoom-in::before {content: "\e13f";}
.k-i-zoom-out::before {content: "\e140";}
.k-i-pan::before {content: "\e141";}
.k-i-move::before {content: "\e141";}
.k-i-calculator::before {content: "\e142";}
.k-i-cart::before {content: "\e143";}
.k-i-shopping-cart::before {content: "\e143";}
.k-i-connector::before {content: "\e144";}
.k-i-plus-sm::before {content: "\e145";}
.k-i-minus-sm::before {content: "\e146";}
.k-i-play::before {content: "\e200";}
.k-i-pause::before {content: "\e201";}
.k-i-stop::before {content: "\e202";}
.k-i-rewind::before {content: "\e203";}
.k-i-forward::before {content: "\e204";}
.k-i-volume-down::before {content: "\e205";}
.k-i-volume-up::before {content: "\e206";}
.k-i-volume-off::before {content: "\e207";}
.k-i-hd::before {content: "\e208";}
.k-i-subtitles::before {content: "\e209";}
.k-i-playlist::before {content: "\e20a";}
.k-i-audio::before {content: "\e20b";}
.k-i-heart-outline::before {content: "\e300";}
.k-i-fav-outline::before {content: "\e300";}
.k-i-favorite-outline::before {content: "\e300";}
.k-i-heart::before {content: "\e301";}
.k-i-fav::before {content: "\e301";}
.k-i-favorite::before {content: "\e301";}
.k-i-star-outline::before {content: "\e302";}
.k-i-bookmark-outline::before {content: "\e302";}
.k-i-star::before {content: "\e303";}
.k-i-bookmark::before {content: "\e303";}
.k-i-checkbox::before {content: "\e304";}
.k-i-shape-rect::before {content: "\e304";}
.k-i-checkbox-checked::before {content: "\e305";}
.k-i-tri-state-indeterminate::before {content: "\e306";}
.k-i-tri-state-null::before {content: "\e307";}
.k-i-circle::before {content: "\e308";}
.k-i-radiobutton::before {content: "\e309";}
.k-i-shape-circle::before {content: "\e309";}
.k-i-radiobutton-checked::before {content: "\e30a";}
.k-i-notification::before {content: "\e400";}
.k-i-bell::before {content: "\e400";}
.k-i-information::before {content: "\e401";}
.k-i-info::before {content: "\e401";}
.k-i-question::before {content: "\e402";}
.k-i-help::before {content: "\e402";}
.k-i-warning::before {content: "\e403";}
.k-i-exception::before {content: "\e403";}
.k-i-error::before {content: "\e403";}
.k-i-photo-camera::before {content: "\e500";}
.k-i-image::before {content: "\e501";}
.k-i-photo::before {content: "\e501";}
.k-i-image-export::before {content: "\e502";}
.k-i-photo-export::before {content: "\e502";}
.k-i-zoom-actual-size::before {content: "\e503";}
.k-i-zoom-best-fit::before {content: "\e504";}
.k-i-image-resize::before {content: "\e505";}
.k-i-crop::before {content: "\e506";}
.k-i-mirror::before {content: "\e507";}
.k-i-flip-horizontal::before {content: "\e508";}
.k-i-flip-vertical::before {content: "\e509";}
.k-i-rotate::before {content: "\e50a";}
.k-i-rotate-right::before {content: "\e50b";}
.k-i-rotate-left::before {content: "\e50c";}
.k-i-brush::before {content: "\e50d";}
.k-i-palette::before {content: "\e50e";}
.k-i-paint::before {content: "\e50f";}
.k-i-droplet::before {content: "\e50f";}
.k-i-background::before {content: "\e50f";}
.k-i-line::before {content: "\e510";}
.k-i-shape-line::before {content: "\e510";}
.k-i-brightness-contrast::before {content: "\e511";}
.k-i-saturation::before {content: "\e512";}
.k-i-invert-colors::before {content: "\e513";}
.k-i-transperancy::before {content: "\e514";}
.k-i-opacity::before {content: "\e514";}
.k-i-greyscale::before {content: "\e515";}
.k-i-blur::before {content: "\e516";}
.k-i-sharpen::before {content: "\e517";}
.k-i-shape::before {content: "\e518";}
.k-i-round-corners::before {content: "\e519";}
.k-i-front-element::before {content: "\e51a";}
.k-i-back-element::before {content: "\e51b";}
.k-i-forward-element::before {content: "\e51c";}
.k-i-backward-element::before {content: "\e51d";}
.k-i-align-left-element::before {content: "\e51e";}
.k-i-align-center-element::before {content: "\e51f";}
.k-i-align-right-element::before {content: "\e520";}
.k-i-align-top-element::before {content: "\e521";}
.k-i-align-middle-element::before {content: "\e522";}
.k-i-align-bottom-element::before {content: "\e523";}
.k-i-thumbnails-up::before {content: "\e524";}
.k-i-thumbnails-right::before {content: "\e525";}
.k-i-thumbnails-down::before {content: "\e526";}
.k-i-thumbnails-left::before {content: "\e527";}
.k-i-full-screen::before {content: "\e528";}
.k-i-fullscreen::before {content: "\e528";}
.k-i-full-screen-exit::before {content: "\e529";}
.k-i-fullscreen-exit::before {content: "\e529";}
.k-i-reset-color::before {content: "\e52a";}
.k-i-paint-remove::before {content: "\e52a";}
.k-i-background-remove::before {content: "\e52a";}
.k-i-page-properties::before {content: "\e600";}
.k-i-bold::before {content: "\e601";}
.k-i-italic::before {content: "\e602";}
.k-i-underline::before {content: "\e603";}
.k-i-font-family::before {content: "\e604";}
.k-i-foreground-color::before {content: "\e605";}
.k-i-convert-lowercase::before {content: "\e606";}
.k-i-convert-uppercase::before {content: "\e607";}
.k-i-strikethrough::before {content: "\e608";}
.k-i-sub-script::before {content: "\e609";}
.k-i-sup-script::before {content: "\e60a";}
.k-i-div::before {content: "\e60b";}
.k-i-all::before {content: "\e60c";}
.k-i-h1::before {content: "\e60d";}
.k-i-h2::before {content: "\e60e";}
.k-i-h3::before {content: "\e60f";}
.k-i-h4::before {content: "\e610";}
.k-i-h5::before {content: "\e611";}
.k-i-h6::before {content: "\e612";}
.k-i-list-ordered::before {content: "\e613";}
.k-i-list-numbered::before {content: "\e613";}
.k-i-list-unordered::before {content: "\e614";}
.k-i-list-bulleted::before {content: "\e614";}
.k-i-indent-increase::before {content: "\e615";}
.k-i-indent::before {content: "\e615";}
.k-i-indent-decrease::before {content: "\e616";}
.k-i-outdent::before {content: "\e616";}
.k-i-insert-up::before {content: "\e617";}
.k-i-insert-top::before {content: "\e617";}
.k-i-insert-middle::before {content: "\e618";}
.k-i-insert-down::before {content: "\e619";}
.k-i-insert-bottom::before {content: "\e619";}
.k-i-align-top::before {content: "\e61a";}
.k-i-align-middle::before {content: "\e61b";}
.k-i-align-bottom::before {content: "\e61c";}
.k-i-align-left::before {content: "\e61d";}
.k-i-align-center::before {content: "\e61e";}
.k-i-align-right::before {content: "\e61f";}
.k-i-align-justify::before {content: "\e620";}
.k-i-align-remove::before {content: "\e621";}
.k-i-text-wrap::before {content: "\e622";}
.k-i-rule-horizontal::before {content: "\e623";}
.k-i-table-align-top-left::before {content: "\e624";}
.k-i-table-align-top-center::before {content: "\e625";}
.k-i-table-align-top-right::before {content: "\e626";}
.k-i-table-align-middle-left::before {content: "\e627";}
.k-i-table-align-middle-center::before {content: "\e628";}
.k-i-table-align-middle-right::before {content: "\e629";}
.k-i-table-align-bottom-left::before {content: "\e62a";}
.k-i-table-align-bottom-center::before {content: "\e62b";}
.k-i-table-align-bottom-right::before {content: "\e62c";}
.k-i-table-align-remove::before {content: "\e62d";}
.k-i-borders-all::before {content: "\e62e";}
.k-i-borders-outside::before {content: "\e62f";}
.k-i-borders-inside::before {content: "\e630";}
.k-i-borders-inside-horizontal::before {content: "\e631";}
.k-i-borders-inside-vertical::before {content: "\e632";}
.k-i-border-top::before {content: "\e633";}
.k-i-border-bottom::before {content: "\e634";}
.k-i-border-left::before {content: "\e635";}
.k-i-border-right::before {content: "\e636";}
.k-i-border-no::before {content: "\e637";}
.k-i-borders-show-hide::before {content: "\e638";}
.k-i-form::before {content: "\e639";}
.k-i-border::before {content: "\e639";}
.k-i-form-element::before {content: "\e63a";}
.k-i-code-snippet::before {content: "\e63b";}
.k-i-select-all::before {content: "\e63c";}
.k-i-button::before {content: "\e63d";}
.k-i-select-box::before {content: "\e63e";}
.k-i-calendar-date::before {content: "\e63f";}
.k-i-group-box::before {content: "\e640";}
.k-i-textarea::before {content: "\e641";}
.k-i-textbox::before {content: "\e642";}
.k-i-textbox-hidden::before {content: "\e643";}
.k-i-password::before {content: "\e644";}
.k-i-paragraph-add::before {content: "\e645";}
.k-i-edit-tools::before {content: "\e646";}
.k-i-template-manager::before {content: "\e647";}
.k-i-change-manually::before {content: "\e648";}
.k-i-track-changes::before {content: "\e649";}
.k-i-track-changes-enable::before {content: "\e64a";}
.k-i-track-changes-accept::before {content: "\e64b";}
.k-i-track-changes-accept-all::before {content: "\e64c";}
.k-i-track-changes-reject::before {content: "\e64d";}
.k-i-track-changes-reject-all::before {content: "\e64e";}
.k-i-document-manager::before {content: "\e64f";}
.k-i-custom-icon::before {content: "\e650";}
.k-i-dictionary-add::before {content: "\e651";}
.k-i-image-light-dialog::before {content: "\e652";}
.k-i-image-insert::before {content: "\e652";}
.k-i-image-edit::before {content: "\e653";}
.k-i-image-map-editor::before {content: "\e654";}
.k-i-comment::before {content: "\e655";}
.k-i-comment-remove::before {content: "\e656";}
.k-i-comments-remove-all::before {content: "\e657";}
.k-i-silverlight::before {content: "\e658";}
.k-i-media-manager::before {content: "\e659";}
.k-i-video-external::before {content: "\e65a";}
.k-i-flash-manager::before {content: "\e65b";}
.k-i-find-and-replace::before {content: "\e65c";}
.k-i-find::before {content: "\e65c";}
.k-i-copy::before {content: "\e65d";}
.k-i-files::before {content: "\e65d";}
.k-i-cut::before {content: "\e65e";}
.k-i-paste::before {content: "\e65f";}
.k-i-paste-as-html::before {content: "\e660";}
.k-i-paste-from-word::before {content: "\e661";}
.k-i-paste-from-word-strip-file::before {content: "\e662";}
.k-i-paste-html::before {content: "\e663";}
.k-i-paste-markdown::before {content: "\e664";}
.k-i-paste-plain-text::before {content: "\e665";}
.k-i-apply-format::before {content: "\e666";}
.k-i-clear-css::before {content: "\e667";}
.k-i-copy-format::before {content: "\e668";}
.k-i-strip-all-formating::before {content: "\e669";}
.k-i-strip-css-format::before {content: "\e66a";}
.k-i-strip-font-elements::before {content: "\e66b";}
.k-i-strip-span-elements::before {content: "\e66c";}
.k-i-strip-word-formatting::before {content: "\e66d";}
.k-i-format-code-block::before {content: "\e66e";}
.k-i-style-builder::before {content: "\e66f";}
.k-i-module-manager::before {content: "\e670";}
.k-i-hyperlink-light-dialog::before {content: "\e671";}
.k-i-hyperlink-insert::before {content: "\e671";}
.k-i-hyperlink-globe::before {content: "\e672";}
.k-i-hyperlink-globe-remove::before {content: "\e673";}
.k-i-hyperlink-email::before {content: "\e674";}
.k-i-anchor::before {content: "\e675";}
.k-i-table-light-dialog::before {content: "\e676";}
.k-i-table-insert::before {content: "\e676";}
.k-i-table::before {content: "\e677";}
.k-i-table-properties::before {content: "\e678";}
.k-i-table-cell::before {content: "\e679";}
.k-i-table-cell-properties::before {content: "\e67a";}
.k-i-table-column-insert-left::before {content: "\e67b";}
.k-i-table-column-insert-right::before {content: "\e67c";}
.k-i-table-row-insert-above::before {content: "\e67d";}
.k-i-table-row-insert-below::before {content: "\e67e";}
.k-i-table-column-delete::before {content: "\e67f";}
.k-i-table-row-delete::before {content: "\e680";}
.k-i-table-cell-delete::before {content: "\e681";}
.k-i-table-delete::before {content: "\e682";}
.k-i-cells-merge::before {content: "\e683";}
.k-i-cells-merge-horizontally::before {content: "\e684";}
.k-i-cells-merge-vertically::before {content: "\e685";}
.k-i-cell-split-horizontally::before {content: "\e686";}
.k-i-cell-split-vertically::before {content: "\e687";}
.k-i-table-unmerge::before {content: "\e688";}
.k-i-pane-freeze::before {content: "\e689";}
.k-i-row-freeze::before {content: "\e68a";}
.k-i-column-freeze::before {content: "\e68b";}
.k-i-toolbar-float::before {content: "\e68c";}
.k-i-spell-checker::before {content: "\e68d";}
.k-i-validation-xhtml::before {content: "\e68e";}
.k-i-validation-data::before {content: "\e68f";}
.k-i-toggle-full-screen-mode::before {content: "\e690";}
.k-i-formula-fx::before {content: "\e691";}
.k-i-sum::before {content: "\e692";}
.k-i-symbol::before {content: "\e693";}
.k-i-dollar::before {content: "\e694";}
.k-i-currency::before {content: "\e694";}
.k-i-percent::before {content: "\e695";}
.k-i-custom-format::before {content: "\e696";}
.k-i-decimal-increase::before {content: "\e697";}
.k-i-decimal-decrease::before {content: "\e698";}
.k-i-font-size::before {content: "\e699";}
.k-i-image-absolute-position::before {content: "\e69a";}
.k-i-globe-outline::before {content: "\e700";}
.k-i-globe::before {content: "\e701";}
.k-i-marker-pin::before {content: "\e702";}
.k-i-marker-pin-target::before {content: "\e703";}
.k-i-pin::before {content: "\e704";}
.k-i-unpin::before {content: "\e705";}
.k-i-share::before {content: "\e800";}
.k-i-user::before {content: "\e801";}
.k-i-inbox::before {content: "\e802";}
.k-i-blogger::before {content: "\e803";}
.k-i-blogger-box::before {content: "\e804";}
.k-i-delicious::before {content: "\e805";}
.k-i-delicious-box::before {content: "\e806";}
.k-i-digg::before {content: "\e807";}
.k-i-digg-box::before {content: "\e808";}
.k-i-email::before {content: "\e809";}
.k-i-envelop::before {content: "\e809";}
.k-i-letter::before {content: "\e809";}
.k-i-email-box::before {content: "\e80a";}
.k-i-envelop-box::before {content: "\e80a";}
.k-i-letter-box::before {content: "\e80a";}
.k-i-facebook::before {content: "\e80b";}
.k-i-facebook-box::before {content: "\e80c";}
.k-i-google::before {content: "\e80d";}
.k-i-google-box::before {content: "\e80e";}
.k-i-google-plus::before {content: "\e80f";}
.k-i-google-plus-box::before {content: "\e810";}
.k-i-linkedin::before {content: "\e811";}
.k-i-linkedin-box::before {content: "\e812";}
.k-i-myspace::before {content: "\e813";}
.k-i-myspace-box::before {content: "\e814";}
.k-i-pinterest::before {content: "\e815";}
.k-i-pinterest-box::before {content: "\e816";}
.k-i-reddit::before {content: "\e817";}
.k-i-reddit-box::before {content: "\e818";}
.k-i-stumble-upon::before {content: "\e819";}
.k-i-stumble-upon-box::before {content: "\e81a";}
.k-i-tell-a-friend::before {content: "\e81b";}
.k-i-tell-a-friend-box::before {content: "\e81c";}
.k-i-tumblr::before {content: "\e81d";}
.k-i-tumblr-box::before {content: "\e81e";}
.k-i-twitter::before {content: "\e81f";}
.k-i-twitter-box::before {content: "\e820";}
.k-i-yammer::before {content: "\e821";}
.k-i-yammer-box::before {content: "\e822";}
.k-i-behance::before {content: "\e823";}
.k-i-behance-box::before {content: "\e824";}
.k-i-dribbble::before {content: "\e825";}
.k-i-dribbble-box::before {content: "\e826";}
.k-i-rss::before {content: "\e827";}
.k-i-rss-box::before {content: "\e828";}
.k-i-vimeo::before {content: "\e829";}
.k-i-vimeo-box::before {content: "\e82a";}
.k-i-youtube::before {content: "\e82b";}
.k-i-youtube-box::before {content: "\e82c";}
.k-i-folder::before {content: "\e900";}
.k-i-folder-open::before {content: "\e901";}
.k-i-folder-add::before {content: "\e902";}
.k-i-folder-up::before {content: "\e903";}
.k-i-folder-more::before {content: "\e904";}
.k-i-fields-more::before {content: "\e904";}
.k-i-aggregate-fields::before {content: "\e905";}
.k-i-file::before {content: "\e906";}
.k-i-file-vertical::before {content: "\e906";}
.k-i-file-add::before {content: "\e907";}
.k-i-file-txt::before {content: "\e908";}
.k-i-txt::before {content: "\e908";}
.k-i-file-csv::before {content: "\e909";}
.k-i-csv::before {content: "\e909";}
.k-i-file-excel::before {content: "\e90a";}
.k-i-file-xls::before {content: "\e90a";}
.k-i-excel::before {content: "\e90a";}
.k-i-xls::before {content: "\e90a";}
.k-i-file-word::before {content: "\e90b";}
.k-i-file-doc::before {content: "\e90b";}
.k-i-word::before {content: "\e90b";}
.k-i-doc::before {content: "\e90b";}
.k-i-file-mdb::before {content: "\e90c";}
.k-i-mdb::before {content: "\e90c";}
.k-i-file-ppt::before {content: "\e90d";}
.k-i-ppt::before {content: "\e90d";}
.k-i-file-pdf::before {content: "\e90e";}
.k-i-pdf::before {content: "\e90e";}
.k-i-file-psd::before {content: "\e90f";}
.k-i-psd::before {content: "\e90f";}
.k-i-file-flash::before {content: "\e910";}
.k-i-flash::before {content: "\e910";}
.k-i-file-config::before {content: "\e911";}
.k-i-config::before {content: "\e911";}
.k-i-file-ascx::before {content: "\e912";}
.k-i-ascx::before {content: "\e912";}
.k-i-file-bac::before {content: "\e913";}
.k-i-bac::before {content: "\e913";}
.k-i-file-zip::before {content: "\e914";}
.k-i-zip::before {content: "\e914";}
.k-i-film::before {content: "\e915";}
.k-i-css3::before {content: "\e916";}
.k-i-html5::before {content: "\e917";}
.k-i-html::before {content: "\e918";}
.k-i-source-code::before {content: "\e918";}
.k-i-view-source::before {content: "\e918";}
.k-i-css::before {content: "\e919";}
.k-i-js::before {content: "\e91a";}
.k-i-exe::before {content: "\e91b";}
.k-i-csproj::before {content: "\e91c";}
.k-i-vbproj::before {content: "\e91d";}
.k-i-cs::before {content: "\e91e";}
.k-i-vb::before {content: "\e91f";}
.k-i-sln::before {content: "\e920";}
.k-i-cloud::before {content: "\e921";}
.k-i-file-horizontal::before {content: "\e922";}

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -1,424 +0,0 @@
#docs-introduction {
position: absolute;
top: 79px;
bottom: 0;
width: 100%;
}
#page-header {
background-color: #2a2d33;
color: #fff;
}
#page-top {
position: relative;
width: 100%;
background-color: #f5f7f8;
padding: 0 1em 0 3em;
margin: -15px -1em 0 -3em;
box-sizing: content-box;
zoom: 1;
border-bottom: 1px solid #ebecee;
height: 47px;
}
/* Main Naivation */
#page-tree {
padding: 0;
white-space: normal;
word-break: break-word;
overflow: hidden;
font-family: "Roboto", Helvetica, Arial, sans-serif;
}
#page-nav #page-tree .k-item {
padding-left: 0
}
#page-nav .k-in {
cursor: pointer;
}
#page-nav .k-in,
#page-nav .k-in a {
display: block;
border: 0;
margin: 0;
padding: 7px 10px 7px 40px;
color: #1976d2;
text-decoration: none;
font-size: 13px;
line-height: 15px;
}
#page-nav .k-in a {
margin: -7px -10px -7px -40px;
}
#page-nav .k-state-selected,
#page-nav .k-state-selected a,
#page-nav .k-state-selected a:hover {
background-color: #00b312;
color: #ffffff;
}
/* Treeview Icons */
#page-nav .k-icon,
#page-nav .article {
position: absolute;
margin: 0;
padding: 0;
left: 20px;
top: 5px;
}
#page-nav .k-icon:before {
content: "";
display: none;
}
#page-nav .k-plus, #page-nav .k-i-expand { background: url(../images/plus.png); }
#page-nav .k-minus, #page-nav .k-i-collapse { background: url(../images/minus.png); }
#page-nav .article { top: 6px; background: url(../images/file.png); }
#page-nav .k-state-selected .article { background: url(../images/file-white.png); }
#page-nav .k-group .k-group .k-plus, #page-nav .k-group .k-group .k-i-expand { background: url(../images/folder-close.png); }
#page-nav .k-group .k-group .k-minus, #page-nav .k-group .k-group .k-i-collapse { background: url(../images/folder-open.png); }
/* Nav Level 1 */
#page-nav #page-tree > .k-group > .k-item div {
position: relative;
}
#page-nav #page-tree > .k-group > .k-item > div > .k-in,
#page-nav #page-tree > .k-group > .k-item > div > a {
transition: background-color .1s, padding .1s, font-weight .1s;
padding: 12px 0;
vertical-align: middle;
padding-left: 22px;
padding-right: 36px;
font-weight: 400;
color: #444;
font-size: 14px;
}
#page-nav #page-tree > .k-group > .k-item > div > .k-in a {
padding: 12px 36px 12px 22px;
margin: -12px -36px -12px -22px;
vertical-align: middle;
color: #555;
font-size: 14px;
}
/*#page-nav #page-tree > .k-group > .k-item > div > .k-in .article + a {
padding-left: 40px;
}*/
#page-nav #page-tree > .k-group > .k-item > div > .k-state-selected a {
color: #fff;
background-color: #00b312;
}
#page-nav #page-tree > .k-group > .k-item > div > .k-icon,
#page-nav #page-tree > .k-group > .k-item > div > .k-in .article {
right: 15px;
top: 50%;
left: auto;
-ms-transform: translateY(-50%);
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
}
#page-nav #page-tree > .k-group > .k-item > div > .k-in .article {
display: none;
/* right: auto;
left: 20px;*/
}
#page-nav .k-item .k-in.k-state-hover,
#page-nav .k-item .k-in.k-state-selected:hover {
transition: background-color .1s;
background-color: #e2e4e7;
}
#page-nav #page-tree > .k-group > .k-item {
transition: padding .1s;
box-shadow: inset 0 1px #e8ebef, 0 1px #e8ebef;
background-color: #f3f5f7;
}
#page-nav #page-tree > .k-group > .k-item > div > .k-in,
#page-nav #page-tree > .k-group > .k-item > div > .k-in a {
transition: padding .1s, font-weight .1s;
}
/* Indent Level 3 */
#page-nav .k-group .k-group .k-group .k-in,
#page-nav .k-group .k-group .k-group .k-in a { padding-left: 57px; }
#page-nav .k-group .k-group .k-group .k-in a { margin-left: -57px; }
#page-nav .k-group .k-group .k-group .k-icon,
#page-nav .k-group .k-group .k-group .article { left: 37px; }
/* Indent Level 4 */
#page-nav .k-group .k-group .k-group .k-group .k-in,
#page-nav .k-group .k-group .k-group .k-group .k-in a { padding-left: 74px; }
#page-nav .k-group .k-group .k-group .k-group .k-in a { margin-left: -74px; }
#page-nav .k-group .k-group .k-group .k-group .k-icon,
#page-nav .k-group .k-group .k-group .k-group .article { left: 54px; }
/* Indent Level 5 */
#page-nav .k-group .k-group .k-group .k-group .k-group .k-in,
#page-nav .k-group .k-group .k-group .k-group .k-group .k-in a { padding-left: 91px; }
#page-nav .k-group .k-group .k-group .k-group .k-group .k-in a { margin-left: -91px; }
#page-nav .k-group .k-group .k-group .k-group .k-group .k-icon,
#page-nav .k-group .k-group .k-group .k-group .k-group .article { left: 71px; }
/* Indent Level 6 */
#page-nav .k-group .k-group .k-group .k-group .k-group .k-group .k-in,
#page-nav .k-group .k-group .k-group .k-group .k-group .k-group .k-in a { padding-left: 108px; }
#page-nav .k-group .k-group .k-group .k-group .k-group .k-group .k-in a { margin-left: -108px; }
#page-nav .k-group .k-group .k-group .k-group .k-group .k-group .k-icon,
#page-nav .k-group .k-group .k-group .k-group .k-group .k-group .article { left: 88px; }
/* Current Topic */
#page-nav .current-topic > div > .k-icon {
display: none;
}
#page-nav .current-topic > div .k-in a,
#page-nav #page-tree > .k-group > .current-topic > div .k-in a {
background-color: #00b312;
color: #fff;
}
#page-nav .current-topic > div .k-in .article {
background: url(../images/file-white.png);
z-index: 2;
}
#page-nav .current-topic .k-group .k-in a {
font-size: 12px;
color: #555;
padding-top: 5px;
padding-bottom: 5px;
}
#page-nav #page-tree .current-topic > .k-group {
padding-bottom: 15px;
}
#page-nav #page-tree .current-topic > .k-group > .k-item > div > .k-in a {
font-weight: bold;
font-size: 13px;
}
#page-nav .current-topic .k-state-selected {
background-color: #e2e4e7;
color: #000;
position: relative;
}
#page-nav .current-topic .k-state-selected:before {
content: " ";
position: absolute;
left: 0;
top: 0;
bottom: 0;
width: 3px;
background-color: #00b321;
}
#page-nav .current-topic .k-group .k-state-selected a {
position: relative;
background-color: transparent;
color: #000;
}
#page-nav #page-tree .k-group .current-topic > .k-group > .k-item > div > .k-icon { display: none; z-index: 1; }
#page-nav #page-tree .k-group .k-group .current-topic > .k-group > .k-item > div > .k-icon { display: block; left: 20px; }
#page-nav #page-tree .k-group .k-group .k-group .current-topic > .k-group > .k-item > div > .k-icon { display: block; left: 37px; }
#page-nav #page-tree .k-group .k-group .k-group .k-group .current-topic > .k-group > .k-item > div > .k-icon { display: block; left: 54px; }
#page-nav #page-tree .k-group .k-group .k-group .k-group .k-group .current-topic > .k-group > .k-item > div > .k-icon { display: block; left: 71px; }
#page-nav #page-tree .current-topic > .k-group > .k-item > div > .k-i-collapse { background: url(../images/minus.png); }
#page-nav #page-tree .current-topic > .k-group > .k-item > div > .k-i-expand { background: url(../images/plus.png); }
#page-nav .k-group .current-topic .k-group .k-in a { padding-left: 22px; }
#page-nav .k-group .k-group .current-topic .k-group .k-in a { padding-left: 41px; }
#page-nav .k-group .k-group .k-group .current-topic .k-group .k-in a { padding-left: 58px; }
#page-nav .k-group .k-group .k-group .k-group .current-topic .k-group .k-in a { padding-left: 75px; }
#page-nav .k-group .k-group .k-group .k-group .k-group .current-topic .k-group .k-in a { padding-left: 92px; }
.btn {
margin: 0 4px;
padding: 5px 30px;
border: 1px solid #505156;
color: #fff;
background-color: #2a2d33;
background-clip: padding-box;
font-size: 15px;
font-weight: bold;
text-align: center;
line-height: 1.33334;
position: relative;
display: inline-block;
transition-property: background-color, color;
transition-duration: 0.2s;
transition-timing-function: ease;
border-radius: 2px;
-webkit-appearance: none;
cursor: pointer;
}
.btn:hover {
color: #fff;
background-color: #505156;
}
.btn-primary {
background-color: #ee5315;
border-color: #ee5315;
}
.btn-primary:hover {
background-color: #c2410e;
border-color: #c2410e;
}
.action-buttons {
margin-top: 12px;
border: 1px solid #e8ebef;
border-bottom: 0;
background-color: #fefefe;
}
.action-buttons .btn {
margin: 0;
padding: .72em 1.5em;
border: 0;
border-radius: 0;
line-height: 1.2em;
outline: none;
background-color: transparent;
color: #333;
border-width: 0;
border-right: 1px solid #e8ebef;
font-size: 14px;
}
.action-buttons + pre {
margin-top: 0;
}
.action-buttons .btn:hover {
text-decoration: none;
background-color: #e8ebef;
color: #000;
}
.action-buttons .active-button,
.action-buttons .active-button:hover {
background-color: #e8ebef;
color: #333;
}
.action-buttons .btn-dojo {
float: right;
border-right: 0;
border-left: 1px solid #e8ebef;
padding-left: 2.7em;
background: transparent url(../images/external.png) no-repeat 1.4em 50%;
}
.CodeMirror {
clear: both;
border: 1px solid #ebecee;
height: auto !important;
font-family: "Roboto Mono", "Ubuntu Mono", "Consolas", "Monaco", monospace;
}
.CodeMirror pre {
font-family: "Roboto Mono", "Ubuntu Mono", "Consolas", "Monaco", monospace !important;
}
.CodeMirror-code{
line-height: 18px;
font-size: 13px;
}
.snippet-runner {
border: 1px solid #ebecee;
width: 100%;
min-height: 450px;
box-sizing: border-box;
}
.k-tabstrip .k-tabstrip-items,
.k-tabstrip .k-item {
border-color: #e8ebef;
}
.k-tabstrip .k-tabstrip-items {
background: #fefefe;
}
.k-tabstrip .k-item {
color: #333;
}
.k-tabstrip .k-item:hover {
background-color: #e8ebef;
color: #000;
}
.k-tabstrip .k-item.k-state-active,
.k-tabstrip .k-item.k-state-active:hover {
background-color: #e8ebef;
color: #333;
}
.k-tabstrip,
.prettyprint {
border-color: #e8ebef;
background-color: #f9f9f9;
}
blockquote {
color: #002034;
background: #eef9ff;
border: 1px solid #d9f3ff;
}
blockquote a {
color: #1976d2;
}
blockquote th, blockquote td {
border-color: #F2BB72;
}
pre .nocode { background-color: transparent; color: #000; }
pre .str, /* string */
pre .atv { color: #2db245; } /* attribute value */
pre .kwd { color: #ff3399; } /* keyword */
pre .com { color: #9933cc; } /* comment */
pre .typ { color: #000; } /* type */
pre .lit { color: #0099ff; } /* literal */
pre .pun { color: #333; } /* punctuation */
pre .pln { color: #3e526b; } /* plaintext */
pre .tag { color: #3e526b; } /* html/xml tag */
pre .atn { color: #3e526b; } /* attribute name */
pre .dec { color: #3e526b; } /* decimal */

Просмотреть файл

@ -1,8 +1,13 @@
# The public documentation URL, used for sitemap.xml
url: "https://docs.telerik.com/reporting"
# KB portal info
has_kb_portal: true
old_kb_portal_link: https://www.telerik.com/support/kb/reporting
# Exclude files which should not be in the output
exclude: [README.md,Gemfile,Gemfile.lock,api_sort.rb,build_kb.rb,switch-ruby.cmd,report-designer-translations]
exclude_navigation: [knowledge-base/*]
navigation:
## List your directory names and order here, like this:
knowledge-base:
@ -29,32 +34,10 @@ defaults:
scope:
path: ""
values:
layout: "page"
layout: "documentation"
category: "default"
product: "reporting"
editable: true
-
scope:
path: "knowledge-base"
values:
layout: "kb-page"
## Kendo UI Legacy
type_links:
"kendo.Class": "/api/javascript/class"
"kendo.data.DataSource": "/api/javascript/data/datasource"
"Array": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array"
"Blob": "https://developer.mozilla.org/en/docs/Web/API/Blob"
"File": "https://developer.mozilla.org/en-US/docs/Web/API/File"
"Boolean": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean"
"Function": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function"
"jQuery": "http://api.jquery.com/Types/#jQuery"
"Promise": "http://api.jquery.com/Types/#Promise"
"Object": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object"
"Number": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number"
"String": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String"
"Date": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date"
"Element": "https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement"
# Aliases available in the markdown template. The below will expand {{site.foo}} to Bar in the output
# "foo": "Bar"
@ -64,8 +47,42 @@ ff-sheet-id: '1oqaFdgKdIlX6pbd7aeptzbAUv0tfzrC3UwaubBeEwcg'
# The google services configuration
google_tag_manager: GTM-6X92
google_custom_search: '001595215763381649090:zzabynuukmu'
google_custom_kb_search: '001595215763381649090:2tjzdeu8y54'
gcs_engine: '001595215763381649090:zzabynuukmu'
#google_custom_kb_search: '001595215763381649090:2tjzdeu8y54'
gcs_api_key: 'AIzaSyCcGn_7eOPUgwFwAVq1GuypE_IknfYCCtE'
edit_repo_url: https://github.com/telerik/reporting-docs/edit/master
product: "Telerik Reporting"
platform: reporting
download: http://www.telerik.com/products/reporting/download.aspx
nav:
"Demos": https://demos.telerik.com/reporting
"Release History": https://www.telerik.com/support/whats-new/reporting/release-history
"About": http://www.telerik.com/reporting
"Pricing": https://www.telerik.com/purchase/individual/reporting.aspx
footer:
-
title: "Getting Started"
links:
"Install Now": http://www.telerik.com/products/reporting/download.aspx
"Demos": https://demos.telerik.com/reporting
-
title: "Support Resources"
links:
"Contact Support": https://www.telerik.com/account/support-tickets
-
title: "Community"
links:
"Forums": https://www.telerik.com/forums/reporting
"Blogs": http://www.telerik.com/blogs/tag/reporting
"Feedback Portal": https://feedback.telerik.com/reporting
footer_social:
facebook: https://www.facebook.com/Telerik/
youtube: https://www.youtube.com/user/TelerikInc
linkedin: https://www.linkedin.com/showcase/telerik/
twitter: https://twitter.com/Telerik/
# Assets pipeline configuration
assets:

Просмотреть файл

@ -1,75 +0,0 @@
<div id="feedback-container">
<div id="feedback-section">
{% javascript feedback %}
<span id="popupNotification"></span>
<div id="feedback-menu-container">
<div id="helpful-buttons-container">
<span class="side-title">Is this article helpful?</span>
<a class="button" id="yesButton">Yes</a> /
<a class="button" id="noButton">No</a>
</div>
<div id="feedback-submitted-container">
<span class="side-title">Thank you for your feedback!</span>
</div>
</div>
<div id="feedback-window-container">
<div id="feedback-form-window" style="background-color: white;">
<h1 class="feedback-extw__title">Give article feedback</h1>
<p>Tell us how we can improve this article</p>
<span id="feedback-form-popup-container"></span>
<form id="feedback-form">
<div id="feedback-checkbox-area">
<input id="hidden-sheet-id" type="hidden" value="{{site.ff-sheet-id}}">
<label>
<input type="checkbox" data-bind="checked: outdatedSample" /> Code samples are inaccurate / outdated.
</label>
<span class="required-field" data-bind="visible: outdatedSample"></span>
<textarea id="feedback-code-sample-text-input" placeholder="Please, specify more details ..." class="feedback-extw__textarea"
data-bind="visible: outdatedSample, value: inaccurateOutdatedCodeSamplesText">
</textarea>
<label>
<input type="checkbox" data-bind="checked: otherMoreInformation" /> I expected to find other / more information.
</label>
<span class="required-field" data-bind="visible: otherMoreInformation"></span>
<textarea id="feedback-more-information-text-input" class="feedback-extw__textarea" placeholder="Please, specify what information can be added ..."
data-bind="visible: otherMoreInformation, value: otherMoreInformationText">
</textarea>
<label>
<input type="checkbox" data-bind="checked: textErrors" /> There are typos / broken links / broken page elements.
</label>
<span class="required-field" data-bind="visible: textErrors"></span>
<textarea id="feedback-text-errors-text-input" class="feedback-extw__textarea" placeholder="Please, specify what needs to be fixed ..."
data-bind="visible: textErrors, value: typosLinksElementsText">
</textarea>
<label>
<input type="checkbox" data-bind="checked: inaccurateContent" /> Content is inaccurate / outdated.
</label>
<span class="required-field" data-bind="visible: inaccurateContent"></span>
<textarea id="feedback-inaccurate-content-text-input" class="feedback-extw__textarea" placeholder="Please, specify which content ..."
data-bind="visible: inaccurateContent, value: inaccurateOutdatedContentText"></textarea>
<label>
<input type="checkbox" data-bind="checked: otherFeedback" /> Other
</label>
<span class="required-field" data-bind="visible: otherFeedback"></span>
<textarea id="feedback-other-text-input" placeholder="Please, enter more details or not listed feedback ..." class="feedback-extw__textarea"
data-bind="visible: otherFeedback, value: textFeedback">
</textarea>
<input id="feedback-email-input" type="email" placeholder="email (optional)" data-email-msg="Email format is not valid."
class="feedback-extw__input input" data-bind="value: email" />
<label>
<input type="checkbox" data-bind="checked: acceptFeedbackContact" /> By checking this box you consent to Progress contacting you by email about your response on this page.
</label>
</div>
</form>
<div class="feedback-extw__foot">
<button id="form-submit-button" class="feedback-extw__button button button--action">Send feedback</button>
<button id="form-close-button" class="feedback-extw__button button">Cancel</button>
</div>
</div>
</div>
<a id="close-button" class="button">
<img src="{{site.baseurl}}/images/close-btn.svg" alt="close" />
</a>
</div>
<div id="feedback-section-dummy">Dummy</div>
</div>

Просмотреть файл

@ -1,3 +1,40 @@
<footer>
<p>Copyright &copy; {{ site.time | date: "%Y"}} Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.</p>
</footer>
<div id="footer" class="container-fluid pb-40">
{% include feedback.html %}
<div class="row">
<div class="col-lg-8 col-lg-offset-2">
<div class="row">
<div class="col-md-12 col-lg-10 col-lg-offset-1">
<div class="row">
{% if site.footer %}
{% for column in site.footer %}
<div class="col-sm-{{ 12 | divided_by: site.footer.size }} mb-20">
<h6 class="mt-0 mb-10">{{ column.title }}</h6>
<ul class="list-unstyled">
{% for item in column.links %}
<li><a href="{{ item[1] }}" target="_blank">{{ item[0] }}</a></li>
{% endfor %}
</ul>
</div>
{% endfor %}
{% endif %}
</div>
<div class="row copyright">
<div class="col-sm-4 social-icons">
<span class="sticky">
{% if site.footer_social.facebook %}<a class="social-icon" href="{{ site.footer_social.facebook }}" title="">{% include icons/facebook.svg %}</a>{% endif %}
{% if site.footer_social.twitter %}<a class="social-icon" href="{{ site.footer_social.twitter }}" title="">{% include icons/twitter.svg %}</a>{% endif %}
{% if site.footer_social.youtube %}<a class="social-icon" href="{{ site.footer_social.youtube }}" title="">{% include icons/youtube.svg %}</a>{% endif %}
{% if site.footer_social.linkedin %}<a class="social-icon" href="{{ site.footer_social.linkedin }}" title="">{% include icons/linkedin.svg %}</a>{% endif %}
</span>
</div>
<div class="col-sm-8">
<p>Copyright &copy; {{ site.time | date: '%Y' }} Progress Software Corporation and/or its subsidiaries or affiliates.<br /> All Rights Reserved.</p>
<p>Progress, Telerik, and certain product names used herein are trademarks or registered trademarks of Progress Software Corporation and/or one of its subsidiaries or affiliates in the U.S. and/or other countries. See <a href="https://www.progress.com/legal/trademarks">Trademarks</a> for appropriate markings.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

Просмотреть файл

@ -1,35 +0,0 @@
<aside class="TK-Hat">
<figure class="TK-Hat-Brand">
<a href="https://www.progress.com" class="TK-PRGS-Logo">
<svg xmlns="http://www.w3.org/2000/svg" width="94" height="40" viewBox="0 0 512 120">
<path fill="#5ce500" d="M95.52 29.33v51a3.93 3.93 0 0 1-1.78 3.08l-1.67 1-12.72 7.35-8.59 5-1.78 1V42.6L21.23 15 43.91 1.93 46 .74a3.94 3.94 0 0 1 3.56 0L81 18.9l14.51 8.38v2.05zM58.36 48.72l-9.79-5.66-22.91-13.23a4 4 0 0 0-3.56 0L1.77 41.57 0 42.6l34.49 19.91v39.83l20.3-11.73 1.79-1a3.94 3.94 0 0 0 1.78-3.08V48.72zM0 82.43l23.86 13.78V68.63z"></path>
<path fill="#4b4e52" d="M148.09 27.28h-26v70.48h11.55V70.1h14.57c15.77 0 24.45-7.7 24.45-21.69 0-6.35-2.4-21.12-24.55-21.12m12.78 21.31c0 7.95-4.12 11.19-14.24 11.19h-13v-22.1h14.57c8.56 0 12.71 3.57 12.71 10.91M207 46.41l.87.42-2 10.42-1.35-.42a11.32 11.32 0 0 0-3.34-.51c-10.79 0-11.67 8.59-11.67 19v22.44h-10.64V46h10v6.24c2.73-4.2 6-6.37 10.37-6.9a14.55 14.55 0 0 1 7.76 1.07M233.29 45c-8.42 0-15.16 3.2-19.5 9.27-4.56 6.37-5.23 13.85-5.23 17.74 0 16.36 9.7 26.92 24.73 26.92 18.26 0 24.73-14.71 24.73-27.3 0-7.25-2.15-13.82-6-18.51-4.41-5.31-10.87-8.12-18.7-8.12m0 44.38c-8.37 0-13.57-6.66-13.57-17.37s5.2-17.55 13.57-17.55S247 61.23 247 71.78c0 10.83-5.24 17.56-13.66 17.56m114.55-42.93l.87.42-2 10.42-1.35-.42a11.26 11.26 0 0 0-3.33-.51c-10.78 0-11.66 8.59-11.66 19v22.44h-10.66V46h10v6.24c2.73-4.2 6-6.37 10.37-6.9a14.54 14.54 0 0 1 7.73 1.06m38.4 34.76l-.2.57c-2.23 6.36-7.57 7.7-11.65 7.7-8.09 0-13.3-5.37-13.81-14.09h36.59l.13-1a31.26 31.26 0 0 0 .12-4.12v-.93C396.93 54.78 387.48 45 374 45c-7.9 0-14.37 3.1-18.73 9a30.85 30.85 0 0 0-5.54 18c0 16 9.95 26.74 24.74 26.74 11.45 0 19.33-5.82 22.2-16.38l.33-1.2h-10.7zM361 66.05c.9-7.17 5.81-11.73 12.79-11.73 5.33 0 11.64 3.1 12.52 11.73H361zm-60.7-15.71c-3.45-3.58-8.06-5.39-13.76-5.39-15.69 0-22.83 13.81-22.83 26.63 0 13.16 7.06 26.44 22.83 26.44a18.33 18.33 0 0 0 13.35-5.42c0 2.28-.1 4.45-.16 5.38-.58 8.54-4.68 12.51-12.91 12.51-4.47 0-9.61-1.59-10.6-6l-.22-1h-10.54l.17 1.41c1.1 9.12 9.11 14.79 20.9 14.79 10.34 0 17.7-3.9 21.28-11.26 1.73-3.55 2.6-8.72 2.6-15.37V46h-10.13v4.34zm-13.11 38.15c-3.74 0-12.43-1.69-12.43-17.37 0-10.3 4.87-16.7 12.71-16.7 6.06 0 12.52 4.39 12.52 16.7 0 10.87-4.79 17.37-12.81 17.37m159.67-6.31c0 8.23-6.83 16.53-22.09 16.53-13.5 0-21.53-5.85-22.61-16.45l-.15-1.1h10.52l.21.84c1.29 6.38 7.37 7.72 12.24 7.72 5.34 0 11-1.72 11-6.54 0-2.44-1.59-4.18-4.73-5.16-1.86-.55-4.15-1.2-6.56-1.87-4.16-1.16-8.47-2.38-11.12-3.29-6.56-2.35-10.33-6.93-10.33-12.56 0-10.43 10.16-15.11 20.22-15.11 13.46 0 20.42 5.07 21.3 15.49l.09 1.07H434.5l-.14-.82c-1-6-7-6.9-10.48-6.9-3 0-10 .53-10 5.5 0 2.25 1.93 3.91 5.89 5.06 1.18.33 2.94.78 5 1.31 4.22 1.09 9.48 2.46 12.13 3.37 6.59 2.32 9.93 6.67 9.93 13m49.39 0c0 8.23-6.83 16.53-22.09 16.53-13.5 0-21.53-5.85-22.61-16.45l-.11-1.09H462l.12.74c1.29 6.38 7.37 7.72 12.24 7.72 5.34 0 11-1.72 11-6.54 0-2.44-1.59-4.18-4.72-5.16-1.86-.55-4.15-1.2-6.57-1.87-4.16-1.16-8.46-2.38-11.11-3.29-6.57-2.35-10.33-6.93-10.33-12.56 0-10.43 10.16-15.11 20.22-15.11 13.46 0 20.42 5.07 21.29 15.49l.09 1.07H483.9l-.14-.82c-1-6-7-6.9-10.48-6.9-3 0-9.95.53-9.95 5.5 0 2.25 1.93 3.91 5.89 5.06 1.18.33 2.94.78 5 1.31 4.22 1.09 9.48 2.46 12.13 3.37 6.58 2.32 9.93 6.67 9.93 13m8.43-30.78a7.37 7.37 0 1 1 7.29-7.37 7.23 7.23 0 0 1-7.29 7.37m0-13.49a6.12 6.12 0 1 0 6 6.12 5.91 5.91 0 0 0-6-6.12m-.85 7.49v2.46h-2.17v-7.74h3.62a2.58 2.58 0 0 1 2.86 2.7 2.26 2.26 0 0 1-1.49 2.34l1.77 2.7H506l-1.49-2.46h-.68zm1.21-3.49h-1.21v1.73h1.21a.86.86 0 0 0 1-.85.88.88 0 0 0-1-.89"></path>
</svg>
</a>
</figure>
</aside>
<header id="page-header">
<div class="toggle-nav"><span class="k-icon k-i-menu"></span></div>
{% if page.slug != 'knowledge_base' %}
{% include search.html %}
{% endif %}
<div id="logo-bar">
<a href="{{site.baseurl}}">
<img alt="Reporting logo" class="logo" src="{{site.baseurl}}/images/logo.png">
</a>
</div>
{% if page.slug != 'knowledge_base' %}
<span class="show-search">
<span class="k-icon k-i-search"></span>
</span>
{% endif %}
<div class="nav-buttons">
<a href="http://demos.telerik.com/{{page.product}}/" class="btn demos-btn">Demos</a>
<a href="http://www.telerik.com/{{page.product}}" class="btn about-btn">About</a>
<a href="http://www.telerik.com/purchase/{{page.product}}" class="btn pricing-btn">Pricing</a>
<a href="http://www.telerik.com/download/{{page.product}}" class="btn btn-primary">Try now</a>
</div>
</header>

Просмотреть файл

@ -1,16 +0,0 @@
<style>
#logo-bar {
margin-right: 15px;
}
.k-animation-container {
padding-right: 30px !important;
}
</style>
<h1>Knowledge Base</h1>
{% include search.html %}
{% javascript kb %}
Older KB articles can be found <a target="_blank" href="https://www.telerik.com/support/kb/reporting/">here</a>.

Просмотреть файл

@ -1,42 +1,38 @@
<script>
(function () {
var cx = {% if page.slug == 'knowledge_base' %} '{{site.google_custom_kb_search}}' {% else %} '{{site.google_custom_search}}' {% endif %};
var gcse = document.createElement('script');
gcse.async = true;
gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
'//www.google.com/cse/cse.js?cx=' + cx;
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(gcse, s);
})();
<form action="{{site.baseurl}}/search" method="get">
<div class="search-input-container">
<input id="local-search" placeholder="Search for &hellip;" name="q" />
<div id='refine-search-container'>
<div id='refine-search-button' class='unselectable'>
<span id='refine-search-label' data-bind='text: label'></span>
<span class='k-icon k-i-arrow-chevron-down'></span>
</div>
</div>
<div id="refine-search-popup" style="display: none">
<ul>
<li>
<label class="custom-checkbox unselectable"><input type="checkbox" data-bind="checked: documentation" {% if site.has_kb_portal != true and site.has_api_reference == false %} disabled="true" {% endif %} /><span class="k-icon k-i-check"></span>Search in Documentation</label>
</li>
{% if site.has_kb_portal %}
<li>
<label class="custom-checkbox unselectable"><input type="checkbox" data-bind="checked: kb" /><span class="k-icon k-i-check"></span>Search in Knowledge Base</label>
</li>
{% endif %}
{% if site.has_api_reference != false %}
<li>
<label class="custom-checkbox unselectable"><input type="checkbox" {% if page.res_type == 'api' %} disabled="true" {% endif %} data-bind="checked: api" /><span class="k-icon k-i-check"></span>Search in API Reference</label>
</li>
{% endif %}
</ul>
</div>
</div>
</form>
<script>
var gcsInstance = '{{site.gcs_engine}}';
var gcsKey = '{{site.gcs_api_key}}';
isKbPage = {% if page.res_type == 'kb' %} true {% else %} false {% endif %};
siteHasKbPortal = '{{ site.has_kb_portal }}';
hasApiReference = {% if site.has_api_reference != false %} true {% else %} false {% endif %};
</script>
<div id="page-search">
<script src="https://www.google.com/jsapi"></script>
{% javascript search %}
<script>
$(document).ready(function () {
var propertyNames = {% case page.res_type %} {% when 'kb' %} ['kb'] {% else %} ['docs', 'api', 'kb'] {% endcase %}
for(var i = 0; i < propertyNames.length; i++) {
viewModel.set(propertyNames[i], true);
}
viewModel.updateLabel();
})
</script>
<div id="refine-search-popup" style="display: none">
<ul>
<li>
<label class="custom-checkbox unselectable"><input type="checkbox" {% if page.res_type != 'kb' and page.res_type != 'api' %} disabled="true" {% endif %} data-bind="checked: docs" /><span class="k-icon k-i-check"></span>Search in Documentation</label>
</li>
<li>
<label class="custom-checkbox unselectable"><input type="checkbox" {% if page.res_type == 'kb' %} disabled="true" {% endif %} data-bind="checked: kb" /><span class="k-icon k-i-check"></span>Search in Knowledge Base</label>
</li>
<li>
<label class="custom-checkbox unselectable"><input type="checkbox" {% if page.res_type == 'api' %} disabled="true" {% endif %} data-bind="checked: api" /><span class="k-icon k-i-check"></span>Search in API Reference</label>
</li>
</ul>
</div>
<div class="gcse-search" data-gname="google-search"></div>
</div>
{% javascript "search-results" %}

Просмотреть файл

@ -1,12 +0,0 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
{% capture site_url %}{% if site.url %}{{ site.url }}{% else %}{{ site.github.url }}{% endif %}{% endcapture %}
{% for post in site.html_pages %}
<a href="{{ site_url }}{{ post.url | replace:'.html','' }}">{{ site_url }}{{ post.url | replace:'.html','' }}</a>
{% endfor %}
</body>
</html>

Просмотреть файл

@ -1,42 +0,0 @@
---
layout: index
---
<div id="page-inner-content">
<div id="page-nav">
<div id="page-tree"></div>
<script>
$("#page-tree").kendoTreeView({
dataSource: {
transport: {
read: {
url: "{{site.baseurl}}/{{page.category}}.json",
dataType: "json"
}
},
schema: {
model: {
id: "path",
children: "items",
hasChildren: "items"
}
}
},
messages: {
loading: " "
},
select: preventParentSelection,
template: navigationTemplate("{{site.baseurl}}/"),
dataBound: expandNavigation("{{page.parent_path}}.html")
});
</script>
</div>
{% if page.editable %}<a id="page-edit-link" href="https://github.com/telerik/reporting-docs/edit/master/{{ page.parent_path | replace: '.html','' }}.md"><span class="k-icon k-i-pencil"></span> Edit this page</a>{% endif %}
<div class="api-breadcrumbs-container"></div>
<div id="page-article">
<article class="{{page.sub_category}}">
{{ content }}
</article>
</div>
{% include footer.html %}
</div>

Просмотреть файл

@ -1,64 +0,0 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
{% if page.res_type %}<meta name="restype" content="{{ page.res_type }}">{% else %}<meta name="restype" content="documentation">{% endif %}
<meta name="product" content="{{ page.product }}">
{% if page.component %}<meta name="subproduct" content="{{ page.component }}">{% endif %}
<title>{% if page.page_title %}{{ page.page_title }}{% else %}{{ page.title }}{% endif %}</title>
<link rel="shortcut icon" href="{{site.baseurl}}/favicon.ico"/>
{% if page.description %}<meta name="description" content="{{page.description}}">{% endif %}
<link href="//fonts.googleapis.com/css?family=Roboto:400,500,700,900" rel="stylesheet">
<link href='https://fonts.googleapis.com/css?family=Roboto+Mono:400,500,700' rel='stylesheet' type='text/css'>
<link href="https://kendo.cdn.telerik.com/{{ site.cdnVersion }}/styles/kendo.common.min.css" rel="stylesheet" />
{% stylesheet styles %}
{% stylesheet icon-font %}
{% stylesheet theme %}
{% if page.is_api %}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet" />
{% stylesheet api %}
{% endif %}
<script src="https://code.jquery.com/jquery-1.12.3.min.js"></script>
<script src="https://cdn.cookielaw.org/consent/2fffb1c2-c64a-4fcc-bc19-a4adecbc5ebf.js" type="text/javascript" charset="UTF-8"></script>
<script src="https://kendo.cdn.telerik.com/{{ site.cdnVersion }}/js/kendo.web.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.6.0/codemirror.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.6.0/codemirror.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.6.0/mode/javascript/javascript.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.6.0/mode/css/css.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.6.0/mode/xml/xml.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.6.0/mode/htmlmixed/htmlmixed.min.js"></script>
{% javascript prettify %}
{% javascript app %}
{% if page.editableExample == "true" %}
{% javascript dojo %}
{% endif %}
{% if page.is_api %}
{% javascript api %}
{% endif %}
<!--[if lt IE 9]>
<script>
document.createElement('header');
document.createElement('nav');
document.createElement('section');
document.createElement('article');
document.createElement('aside');
document.createElement('footer');
document.createElement('hgroup');
</script>
<![endif]-->
</head>
<body>
<!-- Google Tag Manager -->
<noscript>
<iframe src="//www.googletagmanager.com/ns.html?id={{site.google_tag_manager}}" height="0" width="0" style="display: none; visibility: hidden"></iframe>
</noscript>
<script>(function(w, d, s, l, i) { w[l] = w[l] || []; w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = '//www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); })(window, document, 'script', 'dataLayer', '{{site.google_tag_manager}}');</script>
<!-- End Google Tag Manager -->
{% include header.html %}
{{ content }}
<script src="https://da189i1jfloii.cloudfront.net/js/kinvey-html5-sdk-3.10.1.min.js"></script>
</body>
</html>

Просмотреть файл

@ -1,48 +0,0 @@
---
layout: index
---
<div id="page-inner-content">
<div id="page-nav">
<div id="page-tree"></div>
<script>
$("#page-tree").kendoTreeView({
dataSource: {
transport: {
read: {
url: "{{site.baseurl}}/{{page.category}}.json",
dataType: "json"
}
},
schema: {
model: {
id: "path",
children: "items",
hasChildren: "items"
}
}
},
messages: {
loading: " "
},
select: preventParentSelection,
template: navigationTemplate("{{site.baseurl}}/")
});
</script>
</div>
{% if page.editable %}<a id="page-edit-link" href="https://github.com/telerik/reporting-docs/edit/master/{{ page.url | replace: '.html','' }}.md"><span class="k-icon k-i-pencil"></span> Edit this page</a>{% endif %}
{% if page.kind == "api" %}<div id="markdown-toc"></div>{% endif %}
<div id="page-article">
<article>
{% if page.title %}
<h1>{{ page.title }}</h1>
{% endif %}
{{ content }}
</article>
</div>
{% if site.ff-sheet-id %}{% include feedback-form.html %}{% endif %}
{% include footer.html %}
</div>

Просмотреть файл

@ -1,44 +1,49 @@
---
layout: index
layout: default
---
<div id="page-inner-content">
<div id="page-nav">
<div id="page-tree"></div>
<script>
$("#page-tree").kendoTreeView({
dataSource: {
transport: {
read: {
url: "{{site.baseurl}}/{{page.category}}.json",
dataType: "json"
}
},
schema: {
model: {
id: "path",
children: "items",
hasChildren: "items"
}
}
},
messages: {
loading: " "
},
select: preventParentSelection,
template: navigationTemplate("{{site.baseurl}}/"),
dataBound: expandNavigation("{{page.url | remove_first: '/' }}")
});
</script>
<div class="container-fluid headbanner">
<div class="row">
<div class="col-lg-8 col-lg-offset-2">
<div class="row">
<div class="col-md-10 col-md-offset-1">
<h1>{{ page.heading }}</h1>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-8 col-lg-offset-2">
<div class="row">
<div class="col-md-10 col-md-offset-1">
{% if page.subheading %}
<p class="lead">
<span class="sticky">{{ page.subheading | replace:'\n','</span> <span class="sticky">' }}</span>
</p>
{% endif %}
</div>
</div>
</div>
{% if page.toc %}
{% include article-toc.html %}
{% endif %}
</div>
</div>
<div class="container-fluid mt-30 mb-60">
<div class="row">
<div class="col-lg-8 col-lg-offset-2">
<div class="row">
<div class="col-md-10 col-md-offset-1">
{{ content }}
</div>
</div>
{% if page.editable %}<a id="page-edit-link" target="_blank" href="https://github.com/telerik/reporting-docs/edit/master{{ page.url | replace: '.html','' }}.md"><span class="k-icon k-i-pencil"></span> Edit this page</a>{% endif %}
{% if page.kind == "api" %}<div id="markdown-toc"></div>{% endif %}
</div>
</div>
<div id="page-article">
<article>
{% if page.slug == 'knowledge_base' %}{% include kb-last-updated-articles.html %} {% else %} {{ content }} {% endif %}
</article>
</div>
{% if page.slug != 'knowledge_base' and page.is_main != true %}{% if site.ff-sheet-id %}{% include feedback-form.html %}{% endif %}{% endif %}
{% include footer.html %}
</div>
</div>

Просмотреть файл

@ -1,35 +1,39 @@
module Reading
class Generator < Jekyll::Generator
def generate(site)
@site = site
@converter = site.getConverterImpl(Jekyll::Converters::Markdown)
@site = site
@converter = site.find_converter_instance(Jekyll::Converters::Markdown)
site.pages.each do |p|
createAlert("tip", p.content)
createAlert("important", p.content)
createAlert("caution", p.content)
end
createAlert("tip", p.content)
createAlert("note", p.content)
createAlert("important", p.content)
createAlert("caution", p.content)
createAlert("warning", p.content)
end
end
def createAlert(alertType, content)
sub_string = content.scan(/(>#{alertType})(.*)/)
if sub_string.count == 0
##puts "no " + alertType + "s"
else
sub_string.each do |s|
block ="<blockquote class='#{alertType}'>" + @converter.convert(s[1]) + "</blockquote>"
slugsInBlock = block.scan(/.*?(%7[Bb]%slug%20([\w-]+)%{2}7[Dd])/)
if slugsInBlock.count > 0
slugsInBlock.each do |slug|
targetPage = @site.pages.find {|p| p.data['slug'] == slug[1]}
if targetPage
block.sub!(slug[0], targetPage.url.sub('.html', ''))
end
end
end
content.sub!(s[0]+s[1], block)
end
end
end
end
def createAlert(alertType, content)
sub_string = content.scan(/(>#{alertType})((.|\n[\w\*\[!^<>|#])*)/)
if sub_string.count == 0
##puts "no " + alertType + "s"
else
sub_string.each do |s|
# puts("s - #{s} ; s1 - #{s[1]}; replaced - #{s[1].gsub(/(^>)/, "")}")
block ="<blockquote class='#{alertType}'>" + @converter.convert(s[1].gsub(/(^>)/x, "")) + "</blockquote>"
slugsInBlock = block.scan(/.*?(%7[Bb]%slug%20([\w-]+)%{2}7[Dd])/)
if slugsInBlock.count > 0
slugsInBlock.each do |slug|
targetPage = @site.pages.find {|p| p.data['slug'] == slug[1]}
if targetPage
link = @site.baseurl + targetPage.url.sub('.html', '')
block.sub!(slug[0], link)
end
end
end
content.sub!(s[0]+s[1], block)
end
end
end
end
end

Просмотреть файл

@ -1,16 +0,0 @@
module Jekyll
module AssetFilter
def Alert(input)
#puts "in" + input
#input.search('blockquote').each do |block|
puts "das#{input}"
# end
"smile#{input}"
end
end
end
Liquid::Template.register_filter(Jekyll::AssetFilter)

Просмотреть файл

@ -1,356 +0,0 @@
require 'kramdown'
module Jekyll
String.class_eval do
def indent(count, char = ' ')
gsub(/([^\n]*)(\n|$)/) do |match|
last_iteration = ($1 == "" && $2 == "")
line = ""
line << (char * count) unless last_iteration
line << $1
line << $2
line
end
end
end
class ApiPage < Page
def initialize(site, base, dir, page_schema)
@site = site
@base = base
@dir = File.join(dir, page_schema.category.downcase)
@name = page_schema.name.downcase + ".md"
self.process(@name)
self.content = page_schema.content
self.data = page_schema.data
self.data['category'] = "default"
self.data['sub_category'] = page_schema.category
self.data['res_type'] = "api"
self.data['layout'] = "api-index"
self.data['parent_path'] = dir
self.data['is_api'] = true
self.data['publish'] = false
end
end
class ApiPageGenerator < Jekyll::Generator
priority :high
safe true
def generate(site)
if site.layouts.key? 'api-index'
api_sub_pages = Array.new
site.pages.each_entry do |page|
if page.path.include? "api/javascript/ui/grid.md"
dir = page.path
dir.sub!(".md", "")
pages = ApiPageParser.new(page.clone).get_pages()
page.data['is_main'] = true
page.data['is_api'] = true
new_content = ""
last_category =""
pages.each_entry do |page_schema|
api_sub_pages << ApiPage.new(site, site.source, dir, page_schema)
if new_content === ""
new_content += page_schema.main_page_header
new_content+= '<div id="api-filter">
<i class="fa fa-search search-icon"></i>
<input type="search" class="search" placeholder="Filter..." />
</div>'
end
if last_category != page_schema.category
last_category = page_schema.category
new_content += "\n## #{last_category}\n"
end
new_content += "#{get_link_for_sub_page(page, page_schema)}\n"
end
page.content = new_content
end
end
api_sub_pages.each_entry do |new_page|
site.pages << new_page
end
end
end
def get_link_for_sub_page(page, sub_page_schema)
text = sub_page_schema.name
link = "* [#{text}](#{page.data['title'].downcase}/#{sub_page_schema.category.downcase}/#{text.downcase})"
end
end
class ApiPageSchema
attr_accessor :name, :content, :category, :data, :main_page_header
def initialize(name, content, category, data, main_page_header)
self.name = name
self.content = content
self.category = category
self.data = data
self.main_page_header = main_page_header
end
end
class ApiPageParser
@@known_types = [:codeblock, :p, :a, :header, :blank, :codespan, :blockquote, :ul, :li, :strong]
@@block_containers = [:blockquote, :ul, :li, :p, :strong ]
@@categories = ['Configuration', 'Fields', 'Methods', 'Events']
def initialize(page)
name = page.name
@name = name.sub!(page.ext, "")
@data = page.data.clone
@markdown = page.content
end
def get_pages()
@pages = parse(@markdown)
end
def parse(markdown)
@pages = Array.new
root = Kramdown::Parser::Markdown.parse(markdown)[0]
header = parse_main_page_header(root)
@@categories.each_entry do |category|
build_pages_for_category(root, category, header)
end
return @pages;
end
def build_pages_for_category(root, category, header)
values = {}
page_schemas = Array.new
category_content = get_category_content(root, category)
each_section(category_content) do |element, index|
page_name = parse_page_name(element).strip
head = "## #{element_raw(element)}"
body = "#{parse_page_body(index, category_content)}"
content = "#{head}\n#{body}"
data = @data.clone;
data['page_title'] = get_page_title(page_name)
data['title'] = page_name
prepare_links_for_page(values, page_name)
page_schemas << ApiPageSchema.new(page_name, content, category, data, header)
end
add_links(page_schemas, values) do |p|
@pages << p
end
end
def prepare_links_for_page(values, page_name)
page_name_split = page_name.split(".")
previous_key = ""
page_name_split.each_entry do |key|
if previous_key != ""
previous_key += ".#{key}"
elsif
previous_key = key
end
if values[previous_key] == nil
values[previous_key] = Array.new
end
if previous_key != page_name
values[previous_key] << page_name
end
end
end
def add_links(pages, values)
pages.each_entry do |page|
links = values[page.name]
if links != nil
links.uniq.each_with_index do |link, index|
add_link(page, link, index)
end
end
yield page
end
end
def add_link(page, link, index)
if index === 0
page.content += "\n\n## Related Properties\n"
end
page.content += "* [#{link}](#{link.downcase})\n"
end
def parse_main_page_header(root)
header_content = ""
root.children.each_entry do |child|
break if child.type == :header && child.options[:level] > 1
header_content += parse_element(child)
end
return header_content
end
def get_category_content(element, category)
start_index = child_index(element, category)
end_index = -1
@@categories.each_entry do |entry|
end_index = child_index(element, entry)
break if end_index > start_index
end
if start_index <= end_index
end_index = element.children.size
end
element.children.slice(start_index..end_index)
end
def get_page_title(string)
return "#{string} - API Reference - Kendo UI #{@data['title']}"
end
def child_index(element, text)
index = element.children.find_index {|e| e.options[:raw_text] == text}
index = element.children.size unless index
index
end
def each_section(section)
section.each_with_index do |element, index|
next if index == 0
break if element.type == :header && element.options[:level] < 3
if element.type == :header && element.options[:level] == 3
yield element, index
end
end
end
def parse_element(element)
description = ""
if element.type === :codeblock
description += element_value(element).indent(4)
end
if element.type === :blank
description += element_text(element) * 2
end
if element.type === :header
description += element_header(element, element.options[:level])
end
if is_block_container_element(element.type)
description += element_block_container(element)
end
return description
end
def parse_page_body(index, siblings)
description = ""
siblings.slice(index + 1, siblings.size).each do |element|
break if element.type == :header && element.options[:level] <= 3
# uncomment to debug
# raise "#{element.type}" unless @@known_types.include?(element.type)
# puts("inspect: #{element.inspect}")
description += parse_element(element)
end
description.strip
end
def is_block_container_element(element_type)
return @@block_containers.include?(element_type)
end
def element_block_container(element)
element_value = ""
if element.type === :blockquote
element_value += "> "
elsif element.type === :li
element_value += "* "
end
element.children.each_entry do |child|
if child.type === :codespan
element_value += element_codespan(child)
elsif child.type === :a
element_value += element_link(child)
elsif is_block_container_element(child.type)
element_value += element_block_container(child)
elsif
element_value += element_text(child)
end
end
if element.type == :li
element_value += "\n"
end
return element_value
end
def find_text_child(element)
element.children.find {|e| e.type == :text } if element
end
def element_text(element)
if element.children.any?
element.children.map { |child| element_text(child) }.join
elsif element.value.is_a? Kramdown::Utils::Entities::Entity
element.value.char()
elsif element.value
element.value
else
""
end
end
def element_link(element)
url = element.attr['href']
text = element_text(element)
element_value = "[#{text}](#{url})"
end
def element_codespan(element)
element_value = "`#{element_text(element)}`"
end
def element_header(element, level)
element_value = "#" * level + " #{element_raw(element)}"
end
def element_raw(element)
element_value = element.options[:raw_text] if element
end
def element_value(element)
element.value if element
end
def parse_page_name(element)
element_value find_text_child(element)
end
end
end

Просмотреть файл

@ -1,14 +0,0 @@
require 'jekyll-assets'
module Jekyll
module AssetsPlugin
class AssetPath
# Monkey patch to_s so it uses the baseurl option istead of assets.baseurl thus avoiding duplication
# Original implementation: https://github.com/ixti/jekyll-assets/blob/master/lib/jekyll/assets_plugin/asset_path.rb#L34
def to_s
"#{@asset.site.baseurl}/assets/#{path}#{query}#{anchor}"
end
end
end
end

Просмотреть файл

@ -1,52 +0,0 @@
class BreadCrumbTag < Liquid::Tag
def render(context)
site = context.registers[:site]
navigation = site.config['navigation']
url = context.environments.first['page']['url'].sub('.html', '')
segments = url.split('/')
html = '<ul>'
html += "<li class=\"link\"><a href=\"#{site.baseurl}/introduction/index\">Home</a></li>"
segments.each_with_index do |segment, index|
next if index == 0
item = {}
if index == segments.size - 1
text = context.environments.first['page']['title'] || segment
html += "<li>#{text}</li>"
else
path = segments.slice(1,index).join('/');
mapping = navigation[path] || {}
pages = site.pages.find_all do |p|
p.dir.sub('/', '') == path
end
pages.sort_by! {|a| [a.data['position'] || 1000000, a.data['title']]}
text = mapping['title'] || segment;
if pages.first
url = pages.first.url.sub('.html', '').sub('/', '')
else
url = path
end
html += "<li class=\"link\"><a href=\"#{site.baseurl}/#{url}\">#{text}</a></li>"
end
end
html += '</ul>'
html
end
end
Liquid::Template.register_tag('breadcrumb', BreadCrumbTag)

Просмотреть файл

@ -1,15 +0,0 @@
class TimeStampTag < Liquid::Block
def initialize(tag_name, markup, tokens)
@text = markup
super
end
def render(context)
contents = super
content = Liquid::Template.parse(contents).render context
# aim for YYYY-MM-DD format https://www.google.com/sitemaps/protocol.html#lastmoddef
`git log -1 --format=%cd --date=short #{content}`.strip
end
end
Liquid::Template.register_tag('timestamp', TimeStampTag)

Просмотреть файл

@ -1,240 +1,106 @@
module Jekyll
require 'html/pipeline'
require 'html/pipeline'
class LangFilter < HTML::Pipeline::Filter
class LangFilter < HTML::Pipeline::Filter
def call
doc.css('pre[lang]').each do |node|
node['data-lang'] = node['lang']
node.remove_attribute('lang')
end
doc
def call
doc.css('pre[lang]').each do |node|
node['data-lang'] = node['lang']
node.remove_attribute('lang')
end
doc
end
class RootRelativeFilter < HTML::Pipeline::Filter
end
def call
doc.search('a').each do |a|
next if a['href'].nil?
class RootRelativeFilter < HTML::Pipeline::Filter
href = a['href'].strip
def call
doc.search('a').each do |a|
next if a['href'].nil?
if href.start_with? '/'
a['href'] = context[:baseurl] + href
end
href = a['href'].strip
if href.start_with? '/'
a['href'] = context[:baseurl] + href unless href.start_with? context[:baseurl]
end
doc.search('img').each do |img|
next if img['src'].nil?
src = img['src'].strip
if src.start_with? '/'
img['src'] = context[:baseurl] + src
end
end
doc
end
doc.search('img').each do |img|
next if img['src'].nil?
src = img['src'].strip
if src.start_with? '/'
img['src'] = context[:baseurl] + src unless src.start_with? context[:baseurl]
end
end
doc
end
class OptionsTitleFilter < HTML::Pipeline::Filter
end
def call
class HeaderLinkFilter < HTML::Pipeline::Filter
doc.css('h1').each do |node|
text = node.text
if text =~ /Options$/
node.content = node.text.split('.').last
end
end
PUNCTUATION_REGEXP = /[^\p{Word}\- ]/u
doc
end
def call()
end
doc.css('h1, h2, h3').each do |heading|
class ApiHeaderIdFilter < HTML::Pipeline::Filter
desc_node = heading.children.first()
if desc_node
id = desc_node.text
else
id = heading.text
end
def call
id = id.downcase.strip
id.gsub!(PUNCTUATION_REGEXP, '') # remove punctuation
id.gsub!(' ', '-') # replace spaces with dash
doc.css('h2').each do |node|
text = node.text
heading['id'] = id
next unless text =~ /^(Configuration|Events|Properties|Methods|Class Methods|Fields)$/
a = Nokogiri::XML::Node.new('a', doc)
a['href'] = "##{id}"
prefix = text.downcase.gsub(' ', '-')
if desc_node
a.children = desc_node
end
node = node.next_element
if next_child = heading.children.first()
next_child.before(a)
else
heading.add_child a
end
until node.nil?
break if node.name == 'h2'
end
if node.name == 'h3'
id = node.text
id.gsub!(/ .*/, '')
id.gsub!(/`[^`]*`/, '')
id.gsub!(/\\/,'')
id.gsub!(/\*[^*]*\*/, '')
node['id'] = "#{prefix}-#{id}"
end
doc
end
end
node = node.next_element
end
class Converters::Markdown::MarkdownProcessor
def initialize(config)
@config = config
context = {
:gfm => false,
:baseurl => @config['baseurl'],
}
if @config['code_lang']
@pipeline = HTML::Pipeline.new [ HTML::Pipeline::MarkdownFilter, LangFilter, RootRelativeFilter, HeaderLinkFilter ], context
else
@pipeline = HTML::Pipeline.new [ HTML::Pipeline::MarkdownFilter, RootRelativeFilter, HeaderLinkFilter ], context
end
end
end
doc
end
end
# based on https://github.com/jch/html-pipeline/blob/master/lib/html/pipeline/toc_filter.rb
class HeaderLinkFilter < HTML::Pipeline::Filter
PUNCTUATION_REGEXP = RUBY_VERSION > "1.9" ? /[^\p{Word}\- ]/u : /[^\w\- ]/
def call()
doc.css('h1, h2, h3').each do |node|
id = node['id']
unless id
id = node.text.downcase
id.gsub!(PUNCTUATION_REGEXP, '') # remove punctuation
id.gsub!(' ', '-') # replace spaces with dash
end
node['id'] = id
a = Nokogiri::XML::Node.new('a', doc)
a['href'] = "##{id}"
a.children = node.children.first()
a_type = Nokogiri::XML::Node.new('a', doc)
a_type.set_attribute('class', 'type-link')
link_node = a.children.first()
if m = /(?<class>[a-zA-Z.].*) : (?<base>[a-zA-Z.].*)/.match(link_node.text)
node.add_child a
if base_link = type_link(m[:base])
link_node.content = m[:class]
a_type.content = m[:base]
a_type['href'] = base_link
base_p = Nokogiri::XML::Node.new('span', doc)
base_p.set_attribute('class', 'type-link')
base_p.content = 'Inherits from '
base_p.add_child a_type
node.add_child base_p
end
else
if first_child = node.children.first()
first_child.before(a)
else
node.add_child a
end
# Link Configuration types
node.css('code').each do |type_node|
try_link_node type_node
end
end
end
# Link Return variables
doc.css('h4').each do |node|
if node.content =~ /^Returns$/i && para = node.next_element
try_link_node para.first_element_child
end
end
# Link parameter types
doc.css('h5 code').each { |node| try_link_node node }
doc
end
def try_link_node(node)
return if node.nil?
links = Nokogiri::XML::NodeSet.new(node.document)
all_types = node.text.split('|')
all_types.each_with_index do |type, index|
code = Nokogiri::XML::Node.new('code', doc)
code.content = type
if index < (all_types.size - 1)
code.content += " |";
end
if type_link = type_link(type)
a = Nokogiri::XML::Node.new('a', doc)
a['href'] = type_link
a.set_attribute('class', 'type-link')
a.add_child code
links.push a
else
links.push code
end
end
node.replace links
end
def type_link(type)
type_links = context[:type_links]
link = type_links[type];
# White-list namespaces with auto-linking enabled
if !link && (type =~ /^kendo\.(drawing|geometry)/ || type =~ /^kendo\.dataviz\.(map|diagram)/)
link = type.gsub('kendo.', '/api/javascript/')
link.gsub!(/[a-z][A-Z]/) { |c| c[0] + '-' + c[1] }
link.gsub!('.', '/')
link.downcase!
end
if link && link.start_with?('/')
link = context[:baseurl] + link
end
link
end
end
class Converters::Markdown::MarkdownProcessor
def initialize(config)
@config = config
context = {
:gfm => false,
:baseurl => @config['baseurl'],
:type_links => @config['type_links']
}
@pipeline = HTML::Pipeline.new [
HTML::Pipeline::MarkdownFilter,
LangFilter,
RootRelativeFilter,
ApiHeaderIdFilter,
OptionsTitleFilter,
HeaderLinkFilter
], context
end
def convert(content)
@pipeline.call(content)[:output].to_s
end
end
def convert(content)
@pipeline.call(content)[:output].to_s
end
end
end

Просмотреть файл

@ -1,84 +1,86 @@
module Jekyll
class NavigationGenerator < Generator
def initialize(config)
@navigation = Hash[(config['navigation'] || {}).map { |key, value| [/^#{key.gsub('*', '.*?')}$/, value] }]
end
class NavigationGenerator < Generator
def initialize(config)
@has_kb_portal = config['has_kb_portal'] == true
@navigation = Hash[(config['navigation'] || {}).map { |key, value| [/^#{key.gsub('*', '.*?')}$/, value] }]
@exclude_navigation = (config['exclude_navigation'] || {}).map { |item| /^#{item.gsub('*', '.*?')}$/ }
end
def categories(site)
categories = {}
def categories(site)
categories = {}
site.pages.each do |page|
category = page.data['category']
site.pages.each do |page|
category = page.data['category']
next if page.data['publish'] == false
next unless category
next if page.data['publish'] == false || page.data['include_in_navigation'] == false || (page.data['kb_portal_root'] == true && @has_kb_portal != true)
next unless category
node = categories[category]
node = categories[category]
unless node
categories[category] = node = []
end
unless node
categories[category] = node = []
end
url = page.url.sub('/', '')
url = page.url.sub('/', '')
next if url.include? "knowledge-base/"
next if @exclude_navigation.any? { |regex| regex.match(url) }
segments = url.split('/')
segments = url.split('/')
segments.each_with_index do |segment, index|
item = node.find { |n| n['path'] == segment }
segments.each_with_index do |segment, index|
item = node.find { |n| n['path'] == segment }
unless item
unless item
item = { 'path' => segment }
item = { 'path' => segment }
if index == segments.size - 1
item['position'] = page.data['position'] if page.data['position']
item['text'] = page.data['title']
item['spriteCssClass'] = 'article'
item['isNew'] = page.data['isNew'] if page.data['isNew']
else
path = segments[0..index].join('/')
navigation_entry = @navigation.find { |key, value| path =~ key }
mapping = navigation_entry ? navigation_entry[1] : {}
item['text'] = mapping['title'] || segment
item['items'] = []
item['isNew'] = mapping['isNew'] if mapping.has_key?('isNew')
item['position'] = mapping['position'] if mapping.has_key?('position')
end
if index == segments.size - 1
item['position'] = page.data['position'] if page.data['position']
item['text'] = page.data['title']
item['spriteCssClass'] = 'article'
item['isNew'] = page.data['isNew'] if page.data['isNew']
else
path = segments[0..index].join('/')
navigation_entry = @navigation.find { |key, value| path =~ key }
mapping = navigation_entry ? navigation_entry[1] : {}
item['text'] = mapping['title'] || segment
item['items'] = []
item['position'] = mapping['position'] if mapping.has_key?('position')
end
node << item
end
node << item
end
node = item['items']
node = item['items']
end
end
end
end
categories.each { |key, value| sort!(value) }
categories.each { |key, value| sort!(value) }
categories
end
categories
end
def generate(site)
categories(site).each do |key, value|
filename = "#{key}.json"
def generate(site)
categories(site).each do |key, value|
filename = "#{key}.json"
FileUtils.mkdir_p(site.dest) unless File.exist?(site.dest)
FileUtils.mkdir_p(site.dest) unless File.exist?(site.dest)
File.write(File.join(site.dest, filename), value.to_json)
File.write(File.join(site.dest, filename), value.to_json)
# Keep the file from being cleaned by Jekyll
site.keep_files << filename
end
end
# Keep the file from being cleaned by Jekyll
site.keep_files << filename
end
end
def sort!(items)
items.each {|item| sort!(item['items']) if item['items'] }
def sort!(items)
items.each {|item| sort!(item['items']) if item['items'] }
# sorty by position, directory or file and then title (ignoring case)
items.sort_by! {|a| [a['position'] || 1000000, a.has_key?('items') ? -1 : 1, a['text'].nil? ? a['path'] : a["text"].downcase]}
end
# sorty by position, directory or file and then title (ignoring case)
items.sort_by! {|a| [a['position'] || 1000000, a.has_key?('items') ? -1 : 1, a['text'].downcase]}
end
end
end
end

Просмотреть файл

@ -1,21 +0,0 @@
module Jekyll
class Page
#https://github.com/jekyll/jekyll/blob/master/lib/jekyll/convertible.rb#L44
def read_yaml(base, name, opts = {})
begin
self.content = File.read(Jekyll.sanitized_path(base, name),
merged_file_read_opts(opts))
if content =~ /\A(---\s*\n.*?\n?)^((---|\.\.\.)\s*$\n?)/m
self.content = $POSTMATCH
self.data = SafeYAML.load($1.gsub(/{{site\.([^}]+)}}/) {|o| site.config[$1]} )
end
rescue SyntaxError => e
Jekyll.logger.warn "YAML Exception reading #{File.join(base, name)}: #{e.message}"
rescue Exception => e
Jekyll.logger.warn "Error reading file #{File.join(base, name)}: #{e.message}"
end
self.data ||= {}
end
end
end

Просмотреть файл

@ -1,123 +0,0 @@
module Jekyll
=begin
LATEX_HEADER = <<-LATEX
\\documentclass{scrartcl}
\\usepackage[utf8x]{inputenc}
\\usepackage[T1]{fontenc}
\\usepackage{listings}
\\usepackage{hyperref}
\\hypersetup{colorlinks=true,urlcolor=blue}
\\begin{document}
\\tableofcontents
LATEX
LATEX_FOOTER = "\\end{document}"
module Pdf
class Node
attr_reader :path, :text
attr_accessor :level
def initialize(path, text)
@path = path
@text = text
@items = {}
end
def add(item)
@items[item.path] = item
item.level = level + 1
end
def child(path)
@items[path]
end
def title
return "" if text.empty?
"#" * level + " " + text + "\n"
end
def toc
title + @items.map { |key, item| item.toc }.join("")
end
def latex
@items.values.map { |item| item.latex }.join("")
end
end
class Page < Node
def initialize(path, text, content)
@path = path
@text = text
@content = content
end
def latex
Kramdown::Document.new(File.read(@content).sub(/---.+---/m, '')).to_latex
end
alias :toc :title
end
end
class PdfGenerator < Generator
def initialize(config)
@mapping = config['mapping'] || {}
end
def generate(site)
root = Pdf::Node.new('/', '')
root.level = 0
site.pages.each do |page|
parent = page.data['category']
next unless parent
url = page.url
segments = url.split('/')
segments.shift
parent = root
segments.each_with_index do |segment, index|
item = parent.child(segment)
unless item
mapped_segment = @mapping[segment] || segment
if index == segments.size - 1
item = Pdf::Page.new(segment, page.data[:nav_title] ? page.data[:nav_title].split('.').last : mapped_segment, page.path)
else
item = Pdf::Node.new(segment, mapped_segment)
end
parent.add(item)
end
parent = item
end
end
latex = File.join(site.dest, "doc.latex")
site.keep_files << latex
File.open latex, 'w' do |out|
out.write LATEX_HEADER
out.write root.latex
out.write LATEX_FOOTER
end
# You need to call that twice. Yes.
system "pdflatex -interaction=batchmode #{latex}"
system "pdflatex -interaction=batchmode #{latex}"
end
end
=end
end

Просмотреть файл

@ -1,4 +1,5 @@
require 'fileutils'
module Jekyll
class RedirectGenerator < Generator
def initialize(config)
@ -6,32 +7,22 @@ module Jekyll
end
def generate(site)
Jekyll.logger.info " Processing redirects..."
site.config['redirect_pages'] = redirect_pages(site)
site.config['redirect_directories'] = redirect_directories(site)
web_config = Page.new(site, site.source, '', 'web.config')
web_config.content = File.read(File.join(site.source, 'web.config'))
web_config.render(Hash.new, site.site_payload)
FileUtils.mkdir_p(site.dest)
File.write(File.join(site.dest, 'web.config'), web_config.output)
write_redirects(site);
site.static_files << web_config
config_name = site.config['nginx_host'] == true ? 'redirects.conf' : 'web.config'
write_redirects(site, config_name)
end
def write_redirects(site)
name = 'redirects.conf'
redirect = Page.new(site, site.source, '', name)
redirect.content = File.read(File.join(site.source, name))
redirect.render(Hash.new, site.site_payload)
def write_redirects(site, name)
config_file = Page.new(site, site.source, '', name)
config_file.content = File.read(File.join(site.source, name))
config_file.render(Hash.new, site.site_payload)
FileUtils.mkdir_p(site.dest)
File.write(File.join(site.dest, name), redirect.output);
FileUtils.mkdir_p(site.dest)
File.write(File.join(site.dest, name), config_file.output);
site.static_files << redirect
site.static_files << config_file
end
def redirect_pages(site)
@ -43,18 +34,7 @@ module Jekyll
{ 'url' => page.url, 'previous_url' => previous_url.uniq }
end
Jekyll.logger.info " #{pages.count} page redirects."
site.pages.each do |page|
if page.url =~ /[A-Z]/
pages.push({
'url' => page.url,
'previous_url' => page.url.downcase.sub('.html', '')
})
end
end
pages
end
@ -65,14 +45,10 @@ module Jekyll
categories.each do |key, category|
category.each do |item|
if item.has_key?('items')
redirect_directories << redirect('', item)
end
redirect_directories << redirect('', item) if item.has_key?('items')
end
end
Jekyll.logger.info " #{redirect_directories.count} directory redirects."
redirect_directories.flatten
end
@ -94,10 +70,7 @@ module Jekyll
end
directory['items'].each do |item|
if item.has_key?('items')
topic = directory['items'].find { |sibling| sibling['path'] == item['path'] + '.html' }
result << redirect(path, item) unless topic
end
result << redirect(path, item) if item.has_key?('items')
end
result
end

Просмотреть файл

Просмотреть файл

@ -4,12 +4,8 @@
{% for post in site.html_pages %}{% unless post.sitemap == false %}
<url>
<loc>{{ site_url }}{{ post.url | replace:'.html','' }}</loc>
{% if post.parent_path and post.is_api %}
<lastmod>{% timestamp %}{{ post.parent_path | append: '.md' }}{% endtimestamp %}</lastmod>
{% else %}
<lastmod>{% timestamp %}{{ post.url | replace_first:'/' | replace:'.html','.md' }}{% endtimestamp %}</lastmod>
{% endif %}
<changefreq>weekly</changefreq>
</url>
{% endunless %}{% endfor %}
</urlset>
</urlset>

Просмотреть файл

@ -4,7 +4,7 @@ module Jekyll
#override the method from the original Jekyll-sitemap gem so it always uses our template instead of using their built-in template
class JekyllSitemap < Jekyll::Generator
def source_path
def source_path
File.expand_path('sitemap.xml', File.dirname(__FILE__))
end
end

Просмотреть файл

@ -1,47 +1,63 @@
class SlugTag < Liquid::Block
@@page_by_slug = nil
class SlugTag < Liquid::Tag
@@page_by_slug = nil
def initialize(tag_name, text, tokens)
@text = text.strip
end
def initialize(tag_name, text, tokens)
@text = text.strip
@template = Liquid::Template.parse(@text)
end
def index_slugs(site)
return if @@page_by_slug
def index_slugs(site)
return if @@page_by_slug
@@page_by_slug = Hash.new
Jekyll.logger.info " Indexing slugs in #{site.pages.length} pages..."
@@page_by_slug = Hash.new
Jekyll.logger.info " Indexing slugs in #{site.pages.length} pages..."
duplicates = false
page = site.pages.each do |p|
slug = p.data['slug']
if (slug)
if @@page_by_slug.has_key?(slug)
Jekyll.logger.warn "Duplicate slug '#{slug}' on #{p.url}"
duplicates = true
end
duplicates = false
site.pages.each do |p|
slug = p.data['slug']
if (slug)
if @@page_by_slug.has_key?(slug)
Jekyll.logger.warn "Duplicate slug '#{slug}' on #{p.url}"
duplicates = true
end
@@page_by_slug[slug] = p
end
end
@@page_by_slug[slug] = p
end
end
if duplicates
raise "Duplicate slugs found. Aborting"
else
Jekyll.logger.info " Done. Found #{@@page_by_slug.length} unique slugs."
end
end
if duplicates
# raise "Duplicate slugs found. Aborting"
else
Jekyll.logger.info " Done. Found #{@@page_by_slug.length} unique slugs."
end
end
def render(context)
index_slugs context.registers[:site]
def render(context)
site = context.registers[:site]
index_slugs site
slug_overrides = site.config['slug_overrides'] || Hash.new
page = @@page_by_slug[@text]
if page
page.url.sub('.html', '')
else
page_url = context.environments.first["page"]["url"]
Jekyll.logger.warn "Slug:", "No page with slug `#{@text}` in #{page_url}. Consider fixing the slug or use normal link."
end
end
@text = @template.render(context)
page = @@page_by_slug[@text]
page_url = context.environments.first["page"]["url"]
if !page && page_url =~ /\.X\//
root_slug = @text.sub(/.*\.X_(.*)/, '\1')
page = @@page_by_slug[root_slug]
end
if page
return site.baseurl + page.url.sub('.html', '')
elsif slug_overrides.has_key? @text
return site.baseurl + slug_overrides[@text]
else
Jekyll.logger.warn "ERROR:", "No page with slug `#{@text}` in #{page_url}. Consider fixing the slug or use normal link."
at_exit do
exit 1
end
end
end
end
Liquid::Template.register_tag('slug', SlugTag)

Просмотреть файл

@ -1,195 +0,0 @@
//This is the companion JS code of the _includes/feedback-form.html
//documentation feedback form. This copy serves as a backup.
//Normally, it resides on a CDN referenced from _includes/feedback-form.html.
$(document).ready(function () {
var cookieVariablesNames = ['feedbackSubmitted','path','uuid'];
var defaultFormValues = {
email: "",
textFeedback: "",
inaccurateContent: false,
wrongInformation: false,
insufficientInformation: false,
textErrors: false,
outdatedSample: false,
};
var formIsProcessing = false;
//Util functions
var generateUUID = function () {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
});
};
var getCookieByName = function(name) {
//This is a very crude, but necessary because currently there is somekind of url rewriting going on
//so the cookies are set for a base path but then additional navigation is done with url rewriting
//so we set the cookie name as complete path to avoid a problem where the cookie is set for multiple pages.
if(name === "yesNoFeedback"){
name = currentPath;
}
var match = document.cookie.match(new RegExp(name + '=([^;]+)'));
if (match) return match[1];
};
//Init utility variables
var currentPath = $(location).attr('href');
var popupNotification = $("#popupNotification").kendoNotification().data("kendoNotification");
var formPopupNotification = $("#feedback-form-popup-container").kendoNotification({
appendTo: "#feedback-form-window"
}).data("kendoNotification");
var setCookieByName = function (name, value) {
var cookieUUID = getCookieByName("uuid");
if(!cookieUUID){
document.cookie = "uuid=" + generateUUID() +"; path=/";
}
//This is a very crude, but necessary because currently there is somekind of url rewriting going on
//so the cookies are set for a base path but then additional navigation is done with url rewriting
//so we set the cookie name as complete path to avoid a problem where the cookie is set for multiple pages.
if(name === "yesNoFeedback"){
name = currentPath;
}
document.cookie = name + "=" + value +";";
};
//Feedback menu controls
var feedbackButtonsContainer = $("#helpful-buttons-container");
var feedbackSubmittedContainer = $("#feedback-submitted-container");
var toggleFeedbackButtons = function (toggle) {
if (toggle) {
feedbackButtonsContainer.show();
feedbackSubmittedContainer.hide();
} else {
feedbackButtonsContainer.hide();
feedbackSubmittedContainer.show();
}
};
var checkIfYesNoSubmitted = function () {
//If cookie for feedback is set hide the buttons
if (getCookieByName("yesNoFeedback")) {
toggleFeedbackButtons(false);
}else{
toggleFeedbackButtons(true);
}
return false;
};
//FORM
//Init the form popup window
var win = $("#feedback-form-window").kendoWindow({
actions: ["Close"],
draggable: false,
height: "700px",
modal: true,
pinned: false,
visible: false,
title: false,
resizable: false,
width: "500px"
}).data("kendoWindow");
//Init form
var feedbackForm = $("#feedback-form");
var formModel = kendo.observable(defaultFormValues);
var isFormModelEmpty = function (){
var isModelDefault = true;
for (var key in defaultFormValues) {
var isValueEqual = formModel[key] === defaultFormValues[key];
if(!isValueEqual){
isModelDefault = false;
break;
}
}
return isModelDefault;
};
//Bind model to form
kendo.bind($("div#feedback-form-window"), formModel);
//Attach to form submit to adjust variables and send request
var validator = feedbackForm.kendoValidator({
messages: {
// defines a message for the custom validation rule
htmlValidation: "HTML tags are not allowed in the input.",
messageLength: "Message must be below 2500 symbols.",
whiteSpaces: "Whitespaces only text is not allowed."
},
rules: {
htmlValidation: function(input) {
if (input.is("[id=feedback-text-input]")) {
var string = input.val();
var matches = string.match(/(<([^>]+)>)/ig);
if(matches != null){
return false;
}
}
return true;
},
messageLength: function(input) {
if (input.is("[id=feedback-text-input]")) {
var string = input.val();
if(string.length > 2500){
return false;
}
}
return true;
},
whiteSpaces: function(input) {
if (input.is("[id=feedback-text-input]")) {
return $.trim(input.val()) !== "";
}
return true;
}
}}).data("kendoValidator")
feedbackForm.submit(function(e) {
e.preventDefault();
//if form is processing do nothing.
if(formIsProcessing){
return;
}
formIsProcessing = true;
if(isFormModelEmpty()){
formPopupNotification.show("Please provide some feedback before submitting the form.", "Error");
formIsProcessing = false;
return;
}
if(validator.validate()) {
win.close();
setCookieByName("submittingFeedback")
formModel.yesNoFeedback = getCookieByName("yesNoFeedback") || "Not submitted";
formModel.uuid = getCookieByName("uuid");
formModel.path = currentPath;
formModel.sheetId = $("#hidden-sheet-id").val();
$.post("http://api.everlive.com/v1/lzrla9wpuk636rdd/functions/saveFeedback", formModel.toJSON(), function () {
formIsProcessing = false;
popupNotification.show("Your feedback was saved. Thank you!", "info");
});
}else {
formIsProcessing = false;
}
});
//Attach to close button inside form window
$("#form-close-button").click(function () {
win.close();
});
//Init buttons
$("#yesButton").click(function () {
setCookieByName("yesNoFeedback", "Yes");
toggleFeedbackButtons(false);
popupNotification.show("Thank you for your feedback!", "info");
});
$("#noButton").click(function () {
setCookieByName("yesNoFeedback", "No");
toggleFeedbackButtons(false);
win.center().open();
});
$("#additional-feedback-button").click(function () {
win.center().open();
});
//Check for the cookie aka state of buttons
checkIfYesNoSubmitted();
});

Просмотреть файл

@ -1,73 +0,0 @@
//This is the code of a Telerik Backend Services Cloud Function
//that collects documentation feedback (Feedback Form) and
//writes it to Google Sheets. It is present here as a backup.
//See _layouts/page.html and _includes/feedback-form.html.
//The AppID is available in the form's JS code.
Everlive.CloudFunction.onRequest(function(request, response, done){
//here adjust the refresh token accordingly
var url = 'https://www.googleapis.com/oauth2/v4/token?refresh_token=1/97NRWe4weZqkKtRWSa5_54Y0iAL5meY2IeMGGAoR11k&grant_type=refresh_token&client_id=246020013776-2va28mc9bdi53ehf6q8a4jq7vr2l72aq.apps.googleusercontent.com&client_secret=CltSTMA_vBJQPQ65YAW4co6v';
var contentType = "application/x-www-form-urlencoded";
var options = {
};
options.contentType = contentType;
var sendErrorMail = function(errorMessage, formData, callback){
console.log(errorMessage);
Everlive.Email.sendEmailFromTemplate('documentationFeedbackError', ['j7p8b5w9u2f6l9b0@platform-telerik.slack.com'], {"ErrMsg":errorMessage, "FormData": formData}, function(err, res) {
callback();
});
};
Everlive.Http.post(
url,
options,
function (error, resp) {
if (error) {
var errorMessage = "Error while authenticating to google, " + JSON.stringify(error) +". Message is: " + request.data.body;
var formData = JSON.stringify(request.data);
sendErrorMail(errorMessage, formData, done);
} else {
console.log('Saving feedback with params: '+JSON.stringify(request.data));
//Here adjust the sheet id
var url = 'https://spreadsheets.google.com/feeds/list/'+request.data.sheetId+'/od6/private/full';
var headers = { "Authorization": "Bearer " + resp.data.access_token };
var contentType = "application/atom+xml";
var data = "<entry xmlns=\"http://www.w3.org/2005/Atom\" xmlns:gsx=\"http://schemas.google.com/spreadsheets/2006/extended\">"+
"<gsx:timestamp>"+new Date()+"</gsx:timestamp>" +
"<gsx:textfeedback>"+request.data.textFeedback+"</gsx:textfeedback>" +
"<gsx:email>"+request.data.email+"</gsx:email>" +
"<gsx:inaccuratecontent>"+request.data.inaccurateContent+"</gsx:inaccuratecontent>" +
"<gsx:wronginformation>"+request.data.wrongInformation+"</gsx:wronginformation>" +
"<gsx:insufficientinformation>"+request.data.insufficientInformation+"</gsx:insufficientinformation>" +
"<gsx:texterrors>"+request.data.textErrors+"</gsx:texterrors>" +
"<gsx:outdatedsample>"+request.data.outdatedSample+"</gsx:outdatedsample>" +
"<gsx:yesnofeedback>"+request.data.yesNoFeedback+"</gsx:yesnofeedback>" +
"<gsx:uuid>"+request.data.uuid+"</gsx:uuid>" +
"<gsx:path>"+request.data.path+"</gsx:path>" +
"</entry>";
var options = {
};
options.body = data;
options.headers = headers;
options.contentType = contentType;
Everlive.Http.post(
url,
options,
function (error, response) {
if (error) {
var errorMessage = "Error while saving feedback in google sheet, " + JSON.stringify(error);
var formData = JSON.stringify(request.data);
sendErrorMail(errorMessage, formData, done);
} else {
done();
}
});
}
});
});

Просмотреть файл

@ -1 +0,0 @@
baseurl: /

Просмотреть файл

@ -1,120 +0,0 @@
#!/bin/bash
# Expecting host name as first parameter
args=("$@")
host=${args[0]}
ok_codes="200 301 302"
count=0
err_count=0
# List of URLs to check: <from> <to>
urls="
/kendo-ui/api/wrappers/jsp /kendo-ui/api/jsp/autoComplete
/kendo-ui/api/web/grid /kendo-ui/api/javascript/ui/grid
/kendo-ui/api/mobile/application /kendo-ui/api/javascript/mobile/application
/kendo-ui/api/mobile/scrollview /kendo-ui/api/javascript/mobile/ui/scrollview
/kendo-ui/api/framework/fx/common /kendo-ui/api/javascript/effects/common
/kendo-ui/api/framework/class /kendo-ui/api/javascript/class
/kendo-ui/api/framework/color /kendo-ui/api/javascript/color
/kendo-ui/api/framework/kendo /kendo-ui/api/javascript/kendo
/kendo-ui/api/framework/layout /kendo-ui/api/javascript/layout
/kendo-ui/api/framework/router /kendo-ui/api/javascript/router
/kendo-ui/api/framework/binder /kendo-ui/api/javascript/data/binder
/kendo-ui/api/framework/datasource /kendo-ui/api/javascript/data/datasource
/kendo-ui/api/framework/node /kendo-ui/api/javascript/data/node
/kendo-ui/api/dataviz/chart /kendo-ui/api/javascript/dataviz/ui/chart
/kendo-ui/api/dataviz/diagram /kendo-ui/api/javascript/dataviz/ui/diagram
/kendo-ui/api/javascript/dataviz/chart /kendo-ui/api/javascript/dataviz/ui/chart
/kendo-ui/api/javascript/dataviz/diagram /kendo-ui/api/javascript/dataviz/ui/diagram
/kendo-ui/api/dataviz/map/layer /kendo-ui/api/javascript/dataviz/map/layer
/kendo-ui/api/javascript/dataviz/drawing/group /kendo-ui/api/javascript/drawing/group
/kendo-ui/api/javascript/dataviz/geometry/point /kendo-ui/api/javascript/geometry/point
/kendo-ui/web/styles-and-layout/appearance-styling /kendo-ui/styles-and-layout/appearance-styling
/kendo-ui/web/grid/overview /kendo-ui/controls/data-management/grid/overview
/kendo-ui/web/treelist/overview /kendo-ui/controls/data-management/treelist/overview
/kendo-ui/web/autocomplete/overview /kendo-ui/controls/editors/autocomplete/overview
/kendo-ui/web/upload/overview /kendo-ui/controls/editors/upload/overview
/kendo-ui/dataviz/chart/overview /kendo-ui/controls/charts/overview
/kendo-ui/dataviz/sparkline/overview /kendo-ui/controls/charts/sparkline/overview
/kendo-ui/dataviz/treemap/overview /kendo-ui/controls/charts/treemap/overview
/kendo-ui/dataviz/stockchart/overview /kendo-ui/controls/charts/stockchart/overview
/kendo-ui/dataviz/lineargauge/overview /kendo-ui/controls/gauges/lineargauge/overview
/kendo-ui/dataviz/diagram/overview /kendo-ui/controls/diagrams-and-maps/diagram/overview
/kendo-ui/dataviz/map/overview /kendo-ui/controls/diagrams-and-maps/map/overview
/kendo-ui/dataviz/barcode/overview /kendo-ui/controls/barcodes/barcode/overview
/kendo-ui/dataviz/qrcode/overview /kendo-ui/controls/barcodes/qrcode/overview
/kendo-ui/web/calendar/overview /kendo-ui/controls/scheduling/calendar/overview
/kendo-ui/web/gantt/overview /kendo-ui/controls/scheduling/gantt/overview
/kendo-ui/web/notification/overview /kendo-ui/controls/layout/notification/overview
/kendo-ui/web/splitter/overview /kendo-ui/controls/layout/splitter/overview
/kendo-ui/web/button/overview /kendo-ui/controls/navigation/button/overview
/kendo-ui/web/menu/overview /kendo-ui/controls/navigation/menu/overview
/kendo-ui/framework/draganddrop/overview /kendo-ui/controls/interactivity/draganddrop/overview
/kendo-ui/framework/fx/overview /kendo-ui/controls/interactivity/fx/overview
/kendo-ui/web/progressbar/overview /kendo-ui/controls/interactivity/progressbar/overview
/kendo-ui/web/sortable/overview /kendo-ui/controls/interactivity/sortable/overview
/kendo-ui/mobile/introduction /kendo-ui/controls/hybrid/introduction
/kendo-ui/webforms/asp-net-hello-jquery /kendo-ui/third-party/tutorials/webforms/asp-net-hello-jquery
/kendo-ui/dataviz/drawing/overview /kendo-ui/framework/drawing/overview
/kendo-ui/framework/drawing/how-to/custom-page-layout /kendo-ui/controls/data-management/grid/how-to/pdf-export/custom-page-layout
/kendo-ui/tutorials/accessibility/accessibility-overview /kendo-ui/accessibility/accessibility-overview
/kendo-ui/getting-started/introduction /kendo-ui/introduction
/kendo-ui/using-kendo-with/introduction /kendo-ui/introduction
/kendo-ui/tutorials/asp.net/kendo-music-store/kendo-music-store-intro /aspnet-mvc/tutorials/tutorial-kendo-music-store/kendo-music-store-intro
/kendo-ui/aspnet-mvc/tutorial-kendo-music-store/kendo-music-store-intro /aspnet-mvc/tutorials/tutorial-kendo-music-store/kendo-music-store-intro
/kendo-ui/aspnet-mvc/tutorial-saleshub/kendo-saleshub-intro /aspnet-mvc/tutorials/tutorial-saleshub/kendo-saleshub-intro
/kendo-ui/ /kendo-ui/introduction
/kendo-ui/api/javascript/ui/RangeSlider /kendo-ui/api/javascript/ui/rangeslider
/kendo-ui/api/javascript/ui/Splitter /kendo-ui/api/javascript/ui/splitter
/kendo-ui/api/framework/validator /kendo-ui/api/javascript/ui/validator
/kendo-ui/controls/data-management/grid/introduction /kendo-ui/controls/data-management/grid/overview
/kendo-ui/api/javascript/mobile/ui/ButtonGroup /kendo-ui/api/javascript/mobile/ui/buttongroup
/kendo-ui/api/javascript/mobile/ui/TabStrip /kendo-ui/api/javascript/mobile/ui/tabstrip
"
#Make `for` iterate over new lines
IFS='
'
echo "Checking documentation redirects on ${host}"
for line in $urls; do
let count=$count+1
url=`echo ${line} | awk '{print $1}'`
url="${host}${url}"
target=`echo ${line} | awk '{print $2}'`
target="${host}${target}"
printf '.'
result=`curl --silent --head -w 'Destination %{url_effective}' --location "${url}"`
result_codes=`echo "${result}" | grep HTTP/1.1 | awk '{print $2}'`
destination=`echo "${result}" | grep Destination | awk '{print $2}'`
if [[ $destination != $target ]]; then
echo ""
echo "FAIL for ${url}"
echo "Expected ${target}"
echo "Actual ${destination}"
let err_count=$err_count+1
continue
fi
while read code; do
if [[ !( $ok_codes =~ $code ) ]]; then
echo ""
echo "FAIL for ${url} with code ${code}"
echo ""
echo "${result}"
echo ""
let err_count=$err_count+1
fi
done <<< "$result_codes"
done
echo ""
echo "Checked ${count} redirects with ${err_count} failures."
exit ${err_count}

Просмотреть файл

@ -1,30 +0,0 @@
#!/bin/sh
usage() {
echo "Usage: $0 -u <url> [-d <depth>]" 1>&2;
exit 1;
}
DEPTH=1
while getopts ":u:d:" o; do
case "${o}" in
u)
URL=${OPTARG}
;;
d)
DEPTH=${OPTARG}
;;
*)
usage
;;
esac
done
shift $((OPTIND-1))
if [ -z "${URL}" ]; then
usage
fi
wget --spider --recursive --level $DEPTH --no-verbose --page-requisites $URL

Просмотреть файл

@ -1,4 +0,0 @@
---
publish: false
layout: all-pages-gsa
---

Просмотреть файл

@ -1,42 +0,0 @@
filename = ARGV.first
def sections_as_key_values(text, re)
text = text.strip
keys = text.scan(re).reject { |value| value.empty? }
values = text.split(re).reject { |value| value.empty? }
raise "keys and values don't match" unless keys.size == values.size
keys.each_with_index.map { |key, index| { :key => key, :value => values[index] } }
end
markdown = File.read(filename)
start = markdown.index("## ")
head = markdown[0..start-1]
markdown = markdown[start..-1]
sections = sections_as_key_values(markdown, /^## .*/)
File.open(filename, "w") do |file|
file.puts(head)
sections.each do |section|
subsections = sections_as_key_values(section[:value], /^### .*/).sort { |a,b| a[:key] <=> b[:key] }
file.puts(section[:key])
file.puts()
subsections.each do |subsection|
file.write(subsection[:key])
file.puts()
file.puts()
file.puts(subsection[:value].strip)
file.puts()
end
end
end

Просмотреть файл

@ -1,20 +0,0 @@
temp_file = "temp_exclude_result.tmp"
File.delete(temp_file) if File.exist?(temp_file)
config_file = "_config.yml"
paths_to_include = ARGV.collect!{|arg| arg += '/' unless arg[-1] == '/'}
orig_config = File.read(config_file)
orig_exlude = orig_config[/(?<=exclude: \[)[^\]]*/].split(',')
all_paths = Dir["*/"].reject{ |f| f["images"] || f[0] == '_' || orig_exlude.include?(f) || paths_to_include.include?(f) || f == "controls/" || f == "knowledge-base/"}
all_controls_paths = Dir["controls/*/"].reject{ |f| f["images"] || f[0] == '_' || orig_exlude.include?(f) || paths_to_include.include?(f)}
exclude = orig_exlude + all_paths + all_controls_paths
exclude_text = "[" + exclude.join(',') + "]"
new_config = orig_config.gsub(/exclude: \[[^\]]*\]/, "exclude: " + exclude_text)
File.write("_tempconfig.yml", new_config)
system "bundle exec jekyll serve --config _tempconfig.yml"

11
introduction.md Normal file
Просмотреть файл

@ -0,0 +1,11 @@
---
title: Introduction
page_title: Progress® Telerik® Reporting Documentation
description: Introduction
slug: introduction
tags: introduction
published: True
position: 100
---
# Welcome to Telerik® Reporting!

Просмотреть файл

@ -1,11 +0,0 @@
---
title: Knowledge Base
description: Knowledge Base
page_title: Knowledge Base
slug: knowledge_base
editable: false
isNew: false
position: 1100
tags: mvc, kendo ui, kb, knowledge, knowledge-base, tutorial
res_type: kb
---

Просмотреть файл

@ -1,14 +0,0 @@
{
"name": "docs",
"version": "1.0.0",
"description": "Docs folder",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"devDependencies": {
"markdown-spellcheck": "0.11.0"
}
}

Просмотреть файл

@ -1,11 +0,0 @@
##
# Permanent redirects
##
##
# Permanent redirects for moved topics
##
##
# Temporary redirects for moved directories
##

Просмотреть файл

@ -1,3 +1,3 @@
User-agent: *
Allow:
Sitemap: http://docs.telerik.com/reporting/sitemap.xml
Sitemap: {{ "sitemap.xml" | absolute_url }}

Просмотреть файл

@ -1,4 +0,0 @@
echo %PATH%
set PATH=c:\Ruby193\bin;%PATH%
echo %PATH%
"C:\Program Files (x86)\Git\git-bash.exe"