Update online help UI
This commit is contained in:
Родитель
472c89bdac
Коммит
6651bc970c
|
@ -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
|
||||
|
|
|
@ -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
6401
.spelling
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
73
40x.html
73
40x.html
|
@ -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
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
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.
|
||||
|
79
README.md
79
README.md
|
@ -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.
|
||||
|
|
4
TOC.xml
4
TOC.xml
|
@ -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, " ");
|
||||
},
|
||||
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");
|
||||
}
|
||||
};
|
|
@ -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 */
|
||||
|
67
_config.yml
67
_config.yml
|
@ -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 © {{ 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 © {{ 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 …" 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
|
||||
---
|
42
api_sort.rb
42
api_sort.rb
|
@ -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
|
20
build_kb.rb
20
build_kb.rb
|
@ -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"
|
||||
|
|
@ -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
|
||||
---
|
14
package.json
14
package.json
|
@ -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"
|
Загрузка…
Ссылка в новой задаче