Deleting old tutorials to replace with GA versions
This commit is contained in:
parent
7473299173
commit
0855d8fb12
|
@ -1,25 +0,0 @@
|
||||||
# EditorConfig helps developers define and maintain consistent
|
|
||||||
# coding styles between different editors and IDEs
|
|
||||||
# editorconfig.org
|
|
||||||
|
|
||||||
root = true
|
|
||||||
|
|
||||||
|
|
||||||
[*]
|
|
||||||
|
|
||||||
# change these settings to your own preference
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 2
|
|
||||||
|
|
||||||
# we recommend you to keep these unchanged
|
|
||||||
end_of_line = lf
|
|
||||||
charset = utf-8
|
|
||||||
trim_trailing_whitespace = true
|
|
||||||
insert_final_newline = true
|
|
||||||
|
|
||||||
[*.md]
|
|
||||||
trim_trailing_whitespace = false
|
|
||||||
|
|
||||||
[{package,bower}.json]
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 2
|
|
|
@ -1 +0,0 @@
|
||||||
* text=auto
|
|
|
@ -1,32 +0,0 @@
|
||||||
# Logs
|
|
||||||
logs
|
|
||||||
*.log
|
|
||||||
npm-debug.log*
|
|
||||||
|
|
||||||
# Dependency directories
|
|
||||||
node_modules
|
|
||||||
|
|
||||||
# Build generated files
|
|
||||||
dist
|
|
||||||
lib
|
|
||||||
solution
|
|
||||||
temp
|
|
||||||
*.sppkg
|
|
||||||
|
|
||||||
# Coverage directory used by tools like istanbul
|
|
||||||
coverage
|
|
||||||
|
|
||||||
# OSX
|
|
||||||
.DS_Store
|
|
||||||
|
|
||||||
# Visual Studio files
|
|
||||||
.ntvs_analysis.dat
|
|
||||||
.vs
|
|
||||||
bin
|
|
||||||
obj
|
|
||||||
|
|
||||||
# Resx Generated Code
|
|
||||||
*.resx.ts
|
|
||||||
|
|
||||||
# Styles Generated Code
|
|
||||||
*.scss.ts
|
|
|
@ -1,14 +0,0 @@
|
||||||
# Folders
|
|
||||||
.vscode
|
|
||||||
coverage
|
|
||||||
node_modules
|
|
||||||
sharepoint
|
|
||||||
src
|
|
||||||
temp
|
|
||||||
|
|
||||||
# Files
|
|
||||||
*.csproj
|
|
||||||
.git*
|
|
||||||
.yo-rc.json
|
|
||||||
gulpfile.js
|
|
||||||
tsconfig.json
|
|
|
@ -1,3 +0,0 @@
|
||||||
{
|
|
||||||
"vsicons.presets.angular": false
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
{
|
|
||||||
"@microsoft/generator-sharepoint": {
|
|
||||||
"libraryName": "documentcardexample-webpart",
|
|
||||||
"libraryId": "b4e4902a-c29a-4e1f-b70e-101338549764",
|
|
||||||
"framework": "react"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,26 +0,0 @@
|
||||||
## documentcardexample-webpart
|
|
||||||
|
|
||||||
This is where you include your web part docs.
|
|
||||||
|
|
||||||
### Building the code
|
|
||||||
|
|
||||||
```bash
|
|
||||||
git clone the repo
|
|
||||||
npm i
|
|
||||||
npm i -g gulp
|
|
||||||
gulp
|
|
||||||
```
|
|
||||||
|
|
||||||
This package produces the following:
|
|
||||||
|
|
||||||
* lib/* commonjs components - this allows this package to be reused from other packages.
|
|
||||||
* dist/* - a single bundle containing the components used for uploading to a cdn pointing a registered Sharepoint webpart library to.
|
|
||||||
* example/* a test page that hosts all components in this package.
|
|
||||||
|
|
||||||
### Build options
|
|
||||||
|
|
||||||
gulp clean - TODO
|
|
||||||
gulp test - TODO
|
|
||||||
gulp watch - TODO
|
|
||||||
gulp build - TODO
|
|
||||||
gulp deploy - TODO
|
|
|
@ -1,13 +0,0 @@
|
||||||
{
|
|
||||||
"entries": [
|
|
||||||
{
|
|
||||||
"entry": "./lib/webparts/documentCardExample/DocumentCardExampleWebPart.js",
|
|
||||||
"manifest": "./src/webparts/documentCardExample/DocumentCardExampleWebPart.manifest.json",
|
|
||||||
"outputPath": "./dist/document-card-example.bundle.js"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"externals": {},
|
|
||||||
"localizedResources": {
|
|
||||||
"documentCardExampleStrings": "webparts/documentCardExample/loc/{locale}.js"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,6 +0,0 @@
|
||||||
{
|
|
||||||
"workingDir": "./temp/deploy/",
|
|
||||||
"account": "<!-- STORAGE ACCOUNT NAME -->",
|
|
||||||
"container": "documentcardexample-webpart",
|
|
||||||
"accessKey": "<!-- ACCESS KEY -->"
|
|
||||||
}
|
|
|
@ -1,10 +0,0 @@
|
||||||
{
|
|
||||||
"solution": {
|
|
||||||
"name": "documentcardexample-webpart-client-side-solution",
|
|
||||||
"id": "b4e4902a-c29a-4e1f-b70e-101338549764",
|
|
||||||
"version": "1.0.0.0"
|
|
||||||
},
|
|
||||||
"paths": {
|
|
||||||
"zippedPackage": "solution/documentcardexample-webpart.sppkg"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,3 +0,0 @@
|
||||||
{
|
|
||||||
"deployCdnPath": "temp/deploy"
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
{
|
|
||||||
"port": 4321,
|
|
||||||
"initialPage": "https://localhost:5432/workbench",
|
|
||||||
"https": true,
|
|
||||||
"api": {
|
|
||||||
"port": 5432,
|
|
||||||
"entryPath": "node_modules/@microsoft/sp-webpart-workbench/lib/api/"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,50 +0,0 @@
|
||||||
{
|
|
||||||
// Display errors as warnings
|
|
||||||
"displayAsWarning": true,
|
|
||||||
// The TSLint task may have been configured with several custom lint rules
|
|
||||||
// before this config file is read (for example lint rules from the tslint-microsoft-contrib
|
|
||||||
// project). If true, this flag will deactivate any of these rules.
|
|
||||||
"removeExistingRules": true,
|
|
||||||
// When true, the TSLint task is configured with some default TSLint "rules.":
|
|
||||||
"useDefaultConfigAsBase": false,
|
|
||||||
// Since removeExistingRules=true and useDefaultConfigAsBase=false, there will be no lint rules
|
|
||||||
// which are active, other than the list of rules below.
|
|
||||||
"lintConfig": {
|
|
||||||
// Opt-in to Lint rules which help to eliminate bugs in JavaScript
|
|
||||||
"rules": {
|
|
||||||
"class-name": false,
|
|
||||||
"export-name": false,
|
|
||||||
"forin": false,
|
|
||||||
"label-position": false,
|
|
||||||
"label-undefined": false,
|
|
||||||
"member-access": true,
|
|
||||||
"no-arg": false,
|
|
||||||
"no-console": false,
|
|
||||||
"no-construct": false,
|
|
||||||
"no-duplicate-case": true,
|
|
||||||
"no-duplicate-key": false,
|
|
||||||
"no-duplicate-variable": true,
|
|
||||||
"no-eval": false,
|
|
||||||
"no-function-expression": true,
|
|
||||||
"no-internal-module": true,
|
|
||||||
"no-shadowed-variable": true,
|
|
||||||
"no-switch-case-fall-through": true,
|
|
||||||
"no-unnecessary-semicolons": true,
|
|
||||||
"no-unused-expression": true,
|
|
||||||
"no-unused-imports": true,
|
|
||||||
"no-unused-variable": true,
|
|
||||||
"no-unreachable": true,
|
|
||||||
"no-use-before-declare": true,
|
|
||||||
"no-with-statement": true,
|
|
||||||
"semicolon": true,
|
|
||||||
"trailing-comma": false,
|
|
||||||
"typedef": false,
|
|
||||||
"typedef-whitespace": false,
|
|
||||||
"use-named-parameter": true,
|
|
||||||
"valid-typeof": true,
|
|
||||||
"variable-name": false,
|
|
||||||
"whitespace": false,
|
|
||||||
"prefer-const": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,3 +0,0 @@
|
||||||
{
|
|
||||||
"cdnBasePath": "<!-- PATH TO CDN -->"
|
|
||||||
}
|
|
|
@ -1,6 +0,0 @@
|
||||||
'use strict';
|
|
||||||
|
|
||||||
const gulp = require('gulp');
|
|
||||||
const build = require('@microsoft/sp-build-web');
|
|
||||||
|
|
||||||
build.initialize(gulp);
|
|
|
@ -1,36 +0,0 @@
|
||||||
{
|
|
||||||
"name": "documentcardexample-webpart",
|
|
||||||
"version": "0.0.1",
|
|
||||||
"private": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.10.0"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"@microsoft/sp-client-base": "~0.7.0",
|
|
||||||
"@microsoft/sp-client-preview": "~0.9.0",
|
|
||||||
"@microsoft/sp-core-library": "~0.1.2",
|
|
||||||
"@microsoft/sp-webpart-base": "~0.4.0",
|
|
||||||
"@types/react": "0.14.46",
|
|
||||||
"@types/react-addons-shallow-compare": "0.14.17",
|
|
||||||
"@types/react-addons-test-utils": "0.14.15",
|
|
||||||
"@types/react-addons-update": "0.14.14",
|
|
||||||
"@types/react-dom": "0.14.18",
|
|
||||||
"@types/webpack-env": ">=1.12.1 <1.14.0",
|
|
||||||
"office-ui-fabric-react": "0.69.0",
|
|
||||||
"react": "0.14.8",
|
|
||||||
"react-dom": "0.14.8"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"@microsoft/sp-build-web": "~0.9.0",
|
|
||||||
"@microsoft/sp-module-interfaces": "~0.7.0",
|
|
||||||
"@microsoft/sp-webpart-workbench": "~0.8.0",
|
|
||||||
"gulp": "~3.9.1",
|
|
||||||
"@types/chai": ">=3.4.34 <3.6.0",
|
|
||||||
"@types/mocha": ">=2.2.33 <2.6.0"
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"build": "gulp bundle",
|
|
||||||
"clean": "gulp clean",
|
|
||||||
"test": "gulp test"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,5 +0,0 @@
|
||||||
var context = require.context('.', true, /.+\.test\.js?$/);
|
|
||||||
|
|
||||||
context.keys().forEach(context);
|
|
||||||
|
|
||||||
module.exports = context;
|
|
|
@ -1,20 +0,0 @@
|
||||||
{
|
|
||||||
"$schema": "../../../node_modules/@microsoft/sp-module-interfaces/lib/manifestSchemas/jsonSchemas/clientSideComponentManifestSchema.json",
|
|
||||||
|
|
||||||
"id": "8345b481-e876-4ed4-864f-2a5e75839642",
|
|
||||||
"alias": "DocumentCardExampleWebPart",
|
|
||||||
"componentType": "WebPart",
|
|
||||||
"version": "0.0.1",
|
|
||||||
"manifestVersion": 2,
|
|
||||||
|
|
||||||
"preconfiguredEntries": [{
|
|
||||||
"groupId": "8345b481-e876-4ed4-864f-2a5e75839642",
|
|
||||||
"group": { "default": "Under Development" },
|
|
||||||
"title": { "default": "DocumentCardExample" },
|
|
||||||
"description": { "default": "DocumentCardExample description" },
|
|
||||||
"officeFabricIconFontName": "Page",
|
|
||||||
"properties": {
|
|
||||||
"description": "DocumentCardExample"
|
|
||||||
}
|
|
||||||
}]
|
|
||||||
}
|
|
|
@ -1,54 +0,0 @@
|
||||||
require('set-webpack-public-path!');
|
|
||||||
import * as React from 'react';
|
|
||||||
import * as ReactDom from 'react-dom';
|
|
||||||
import { Version } from '@microsoft/sp-core-library';
|
|
||||||
import {
|
|
||||||
BaseClientSideWebPart,
|
|
||||||
IPropertyPaneConfiguration,
|
|
||||||
PropertyPaneTextField
|
|
||||||
} from '@microsoft/sp-webpart-base';
|
|
||||||
|
|
||||||
import * as strings from 'documentCardExampleStrings';
|
|
||||||
import DocumentCardExample from './components/DocumentCardExample';
|
|
||||||
import { IDocumentCardExampleProps } from './components/IDocumentCardExampleProps';
|
|
||||||
import { IDocumentCardExampleWebPartProps } from './IDocumentCardExampleWebPartProps';
|
|
||||||
|
|
||||||
export default class DocumentCardExampleWebPart extends BaseClientSideWebPart<IDocumentCardExampleWebPartProps> {
|
|
||||||
|
|
||||||
public render(): void {
|
|
||||||
const element: React.ReactElement<IDocumentCardExampleProps > = React.createElement(
|
|
||||||
DocumentCardExample,
|
|
||||||
{
|
|
||||||
description: this.properties.description
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
ReactDom.render(element, this.domElement);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected get dataVersion(): Version {
|
|
||||||
return Version.parse('1.0');
|
|
||||||
}
|
|
||||||
|
|
||||||
protected getPropertyPaneConfiguration(): IPropertyPaneConfiguration {
|
|
||||||
return {
|
|
||||||
pages: [
|
|
||||||
{
|
|
||||||
header: {
|
|
||||||
description: strings.PropertyPaneDescription
|
|
||||||
},
|
|
||||||
groups: [
|
|
||||||
{
|
|
||||||
groupName: strings.BasicGroupName,
|
|
||||||
groupFields: [
|
|
||||||
PropertyPaneTextField('description', {
|
|
||||||
label: strings.DescriptionFieldLabel
|
|
||||||
})
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,3 +0,0 @@
|
||||||
export interface IDocumentCardExampleWebPartProps {
|
|
||||||
description: string;
|
|
||||||
}
|
|
Binary file not shown.
Before Width: | Height: | Size: 80 KiB |
|
@ -1,23 +0,0 @@
|
||||||
.helloWorld {
|
|
||||||
|
|
||||||
.container {
|
|
||||||
max-width: 700px;
|
|
||||||
margin: 0px auto;
|
|
||||||
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2), 0 25px 50px 0 rgba(0, 0, 0, 0.1);
|
|
||||||
}
|
|
||||||
|
|
||||||
.row {
|
|
||||||
padding: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.listItem {
|
|
||||||
max-width: 715px;
|
|
||||||
margin: 5px auto 5px auto;
|
|
||||||
box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.2), 0 25px 50px 0 rgba(0, 0, 0, 0.1);
|
|
||||||
}
|
|
||||||
|
|
||||||
.button {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,42 +0,0 @@
|
||||||
import * as React from 'react';
|
|
||||||
import { css } from 'office-ui-fabric-react';
|
|
||||||
import styles from './DocumentCardExample.module.scss';
|
|
||||||
import { IDocumentCardExampleProps } from './IDocumentCardExampleProps';
|
|
||||||
import {
|
|
||||||
DocumentCard,
|
|
||||||
DocumentCardPreview,
|
|
||||||
DocumentCardTitle,
|
|
||||||
DocumentCardActivity,
|
|
||||||
IDocumentCardPreviewProps
|
|
||||||
} from 'office-ui-fabric-react/lib/DocumentCard';
|
|
||||||
|
|
||||||
export default class DocumentCardExample extends React.Component<IDocumentCardExampleProps, void> {
|
|
||||||
public render(): JSX.Element {
|
|
||||||
const previewProps: IDocumentCardPreviewProps = {
|
|
||||||
previewImages: [
|
|
||||||
{
|
|
||||||
previewImageSrc: String(require('document-preview.png')),
|
|
||||||
iconSrc: String(require('icon-ppt.png')),
|
|
||||||
width: 318,
|
|
||||||
height: 196,
|
|
||||||
accentColor: '#ce4b1f'
|
|
||||||
}
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
return (
|
|
||||||
<DocumentCard onClickHref='http://bing.com'>
|
|
||||||
<DocumentCardPreview { ...previewProps } />
|
|
||||||
<DocumentCardTitle title='Revenue stream proposal fiscal year 2016 version02.pptx' />
|
|
||||||
<DocumentCardActivity
|
|
||||||
activity='Created Feb 23, 2016'
|
|
||||||
people={
|
|
||||||
[
|
|
||||||
{ name: 'Kat Larrson', profileImageSrc: String(require('avatar-kat.png')) }
|
|
||||||
]
|
|
||||||
}
|
|
||||||
/>
|
|
||||||
</DocumentCard>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,3 +0,0 @@
|
||||||
export interface IDocumentCardExampleProps {
|
|
||||||
description: string;
|
|
||||||
}
|
|
Binary file not shown.
Before Width: | Height: | Size: 29 KiB |
Binary file not shown.
Before Width: | Height: | Size: 943 B |
|
@ -1,7 +0,0 @@
|
||||||
define([], function() {
|
|
||||||
return {
|
|
||||||
"PropertyPaneDescription": "Description",
|
|
||||||
"BasicGroupName": "Group Name",
|
|
||||||
"DescriptionFieldLabel": "Description Field"
|
|
||||||
}
|
|
||||||
});
|
|
|
@ -1,10 +0,0 @@
|
||||||
declare interface IDocumentCardExampleStrings {
|
|
||||||
PropertyPaneDescription: string;
|
|
||||||
BasicGroupName: string;
|
|
||||||
DescriptionFieldLabel: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'documentCardExampleStrings' {
|
|
||||||
const strings: IDocumentCardExampleStrings;
|
|
||||||
export = strings;
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
/// <reference types="mocha" />
|
|
||||||
|
|
||||||
import { assert } from 'chai';
|
|
||||||
|
|
||||||
describe('DocumentCardExampleWebPart', () => {
|
|
||||||
it('should do something', () => {
|
|
||||||
assert.ok(true);
|
|
||||||
});
|
|
||||||
});
|
|
|
@ -1,13 +0,0 @@
|
||||||
{
|
|
||||||
"compilerOptions": {
|
|
||||||
"target": "es5",
|
|
||||||
"forceConsistentCasingInFileNames": true,
|
|
||||||
"module": "commonjs",
|
|
||||||
"jsx": "react",
|
|
||||||
"declaration": true,
|
|
||||||
"sourceMap": true,
|
|
||||||
"types": [
|
|
||||||
"webpack-env"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,5 +0,0 @@
|
||||||
// Type definitions for Microsoft ODSP projects
|
|
||||||
// Project: ODSP
|
|
||||||
|
|
||||||
/* Global definition for UNIT_TEST builds */
|
|
||||||
declare const UNIT_TEST: boolean;
|
|
|
@ -1,15 +0,0 @@
|
||||||
// Type definitions for assertion-error 1.0.0
|
|
||||||
// Project: https://github.com/chaijs/assertion-error
|
|
||||||
// Definitions by: Bart van der Schoor <https://github.com/Bartvds>
|
|
||||||
// Definitions: https://github.com/borisyankov/DefinitelyTyped
|
|
||||||
|
|
||||||
declare module 'assertion-error' {
|
|
||||||
class AssertionError implements Error {
|
|
||||||
constructor(message: string, props?: any, ssf?: Function);
|
|
||||||
name: string;
|
|
||||||
message: string;
|
|
||||||
showDiff: boolean;
|
|
||||||
stack: string;
|
|
||||||
}
|
|
||||||
export = AssertionError;
|
|
||||||
}
|
|
|
@ -1,631 +0,0 @@
|
||||||
// Type definitions for Knockout v3.2.0
|
|
||||||
// Project: http://knockoutjs.com
|
|
||||||
// Definitions by: Boris Yankov <https://github.com/borisyankov/>, Igor Oleinikov <https://github.com/Igorbek/>, Clément Bourgeois <https://github.com/moonpyk/>
|
|
||||||
// Definitions: https://github.com/borisyankov/DefinitelyTyped
|
|
||||||
|
|
||||||
|
|
||||||
interface KnockoutSubscribableFunctions<T> {
|
|
||||||
[key: string]: KnockoutBindingHandler;
|
|
||||||
|
|
||||||
notifySubscribers(valueToWrite?: T, event?: string): void;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutComputedFunctions<T> {
|
|
||||||
[key: string]: KnockoutBindingHandler;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutObservableFunctions<T> {
|
|
||||||
[key: string]: KnockoutBindingHandler;
|
|
||||||
|
|
||||||
equalityComparer(a: any, b: any): boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutObservableArrayFunctions<T> {
|
|
||||||
// General Array functions
|
|
||||||
indexOf(searchElement: T, fromIndex?: number): number;
|
|
||||||
slice(start: number, end?: number): T[];
|
|
||||||
splice(start: number): T[];
|
|
||||||
splice(start: number, deleteCount: number, ...items: T[]): T[];
|
|
||||||
pop(): T;
|
|
||||||
push(...items: T[]): void;
|
|
||||||
shift(): T;
|
|
||||||
unshift(...items: T[]): number;
|
|
||||||
reverse(): KnockoutObservableArray<T>;
|
|
||||||
sort(): KnockoutObservableArray<T>;
|
|
||||||
sort(compareFunction: (left: T, right: T) => number): KnockoutObservableArray<T>;
|
|
||||||
|
|
||||||
// Ko specific
|
|
||||||
[key: string]: KnockoutBindingHandler;
|
|
||||||
|
|
||||||
replace(oldItem: T, newItem: T): void;
|
|
||||||
|
|
||||||
remove(item: T): T[];
|
|
||||||
remove(removeFunction: (item: T) => boolean): T[];
|
|
||||||
removeAll(items: T[]): T[];
|
|
||||||
removeAll(): T[];
|
|
||||||
|
|
||||||
destroy(item: T): void;
|
|
||||||
destroy(destroyFunction: (item: T) => boolean): void;
|
|
||||||
destroyAll(items: T[]): void;
|
|
||||||
destroyAll(): void;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutSubscribableStatic {
|
|
||||||
fn: KnockoutSubscribableFunctions<any>;
|
|
||||||
|
|
||||||
new <T>(): KnockoutSubscribable<T>;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutSubscription {
|
|
||||||
dispose(): void;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutSubscribable<T> extends KnockoutSubscribableFunctions<T> {
|
|
||||||
subscribe(callback: (newValue: T) => void, target?: any, event?: string): KnockoutSubscription;
|
|
||||||
subscribe<TEvent>(callback: (newValue: TEvent) => void, target: any, event: string): KnockoutSubscription;
|
|
||||||
extend(requestedExtenders: { [key: string]: any; }): KnockoutSubscribable<T>;
|
|
||||||
getSubscriptionsCount(): number;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutComputedStatic {
|
|
||||||
fn: KnockoutComputedFunctions<any>;
|
|
||||||
|
|
||||||
<T>(): KnockoutComputed<T>;
|
|
||||||
<T>(func: () => T, context?: any, options?: any): KnockoutComputed<T>;
|
|
||||||
<T>(def: KnockoutComputedDefine<T>, context?: any): KnockoutComputed<T>;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutComputed<T> extends KnockoutObservable<T>, KnockoutComputedFunctions<T> {
|
|
||||||
fn: KnockoutComputedFunctions<any>;
|
|
||||||
|
|
||||||
dispose(): void;
|
|
||||||
isActive(): boolean;
|
|
||||||
getDependenciesCount(): number;
|
|
||||||
extend(requestedExtenders: { [key: string]: any; }): KnockoutComputed<T>;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutObservableArrayStatic {
|
|
||||||
fn: KnockoutObservableArrayFunctions<any>;
|
|
||||||
|
|
||||||
<T>(value?: T[]): KnockoutObservableArray<T>;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutObservableArray<T> extends KnockoutObservable<T[]>, KnockoutObservableArrayFunctions<T> {
|
|
||||||
extend(requestedExtenders: { [key: string]: any; }): KnockoutObservableArray<T>;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutObservableStatic {
|
|
||||||
fn: KnockoutObservableFunctions<any>;
|
|
||||||
|
|
||||||
<T>(value?: T): KnockoutObservable<T>;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutObservable<T> extends KnockoutSubscribable<T>, KnockoutObservableFunctions<T> {
|
|
||||||
(): T;
|
|
||||||
(value: T): void;
|
|
||||||
|
|
||||||
peek(): T;
|
|
||||||
valueHasMutated?:{(): void;};
|
|
||||||
valueWillMutate?:{(): void;};
|
|
||||||
extend(requestedExtenders: { [key: string]: any; }): KnockoutObservable<T>;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutComputedDefine<T> {
|
|
||||||
read(): T;
|
|
||||||
write? (value: T): void;
|
|
||||||
disposeWhenNodeIsRemoved?: Node;
|
|
||||||
disposeWhen? (): boolean;
|
|
||||||
owner?: any;
|
|
||||||
deferEvaluation?: boolean;
|
|
||||||
pure?: boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutBindingContext {
|
|
||||||
$parent: any;
|
|
||||||
$parents: any[];
|
|
||||||
$root: any;
|
|
||||||
$data: any;
|
|
||||||
$rawData: any | KnockoutObservable<any>;
|
|
||||||
$index?: KnockoutObservable<number>;
|
|
||||||
$parentContext?: KnockoutBindingContext;
|
|
||||||
$component: any;
|
|
||||||
$componentTemplateNodes: Node[];
|
|
||||||
|
|
||||||
extend(properties: any): any;
|
|
||||||
createChildContext(dataItemOrAccessor: any, dataItemAlias?: any, extendCallback?: Function): any;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutAllBindingsAccessor {
|
|
||||||
(): any;
|
|
||||||
get(name: string): any;
|
|
||||||
has(name: string): boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutBindingHandler {
|
|
||||||
after?: Array<string>;
|
|
||||||
init?: (element: any, valueAccessor: () => any, allBindingsAccessor?: KnockoutAllBindingsAccessor, viewModel?: any, bindingContext?: KnockoutBindingContext) => void | { controlsDescendantBindings: boolean; };
|
|
||||||
update?: (element: any, valueAccessor: () => any, allBindingsAccessor?: KnockoutAllBindingsAccessor, viewModel?: any, bindingContext?: KnockoutBindingContext) => void;
|
|
||||||
options?: any;
|
|
||||||
preprocess?: (value: string, name: string, addBindingCallback?: (name: string, value: string) => void) => string;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutBindingHandlers {
|
|
||||||
[bindingHandler: string]: KnockoutBindingHandler;
|
|
||||||
|
|
||||||
// Controlling text and appearance
|
|
||||||
visible: KnockoutBindingHandler;
|
|
||||||
text: KnockoutBindingHandler;
|
|
||||||
html: KnockoutBindingHandler;
|
|
||||||
css: KnockoutBindingHandler;
|
|
||||||
style: KnockoutBindingHandler;
|
|
||||||
attr: KnockoutBindingHandler;
|
|
||||||
|
|
||||||
// Control Flow
|
|
||||||
foreach: KnockoutBindingHandler;
|
|
||||||
if: KnockoutBindingHandler;
|
|
||||||
ifnot: KnockoutBindingHandler;
|
|
||||||
with: KnockoutBindingHandler;
|
|
||||||
|
|
||||||
// Working with form fields
|
|
||||||
click: KnockoutBindingHandler;
|
|
||||||
event: KnockoutBindingHandler;
|
|
||||||
submit: KnockoutBindingHandler;
|
|
||||||
enable: KnockoutBindingHandler;
|
|
||||||
disable: KnockoutBindingHandler;
|
|
||||||
value: KnockoutBindingHandler;
|
|
||||||
textInput: KnockoutBindingHandler;
|
|
||||||
hasfocus: KnockoutBindingHandler;
|
|
||||||
checked: KnockoutBindingHandler;
|
|
||||||
options: KnockoutBindingHandler;
|
|
||||||
selectedOptions: KnockoutBindingHandler;
|
|
||||||
uniqueName: KnockoutBindingHandler;
|
|
||||||
|
|
||||||
// Rendering templates
|
|
||||||
template: KnockoutBindingHandler;
|
|
||||||
|
|
||||||
// Components (new for v3.2)
|
|
||||||
component: KnockoutBindingHandler;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutMemoization {
|
|
||||||
memoize(callback: () => string): string;
|
|
||||||
unmemoize(memoId: string, callbackParams: any[]): boolean;
|
|
||||||
unmemoizeDomNodeAndDescendants(domNode: any, extraCallbackParamsArray: any[]): boolean;
|
|
||||||
parseMemoText(memoText: string): string;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutVirtualElement {}
|
|
||||||
|
|
||||||
interface KnockoutVirtualElements {
|
|
||||||
allowedBindings: { [bindingName: string]: boolean; };
|
|
||||||
emptyNode(node: KnockoutVirtualElement ): void;
|
|
||||||
firstChild(node: KnockoutVirtualElement ): KnockoutVirtualElement;
|
|
||||||
insertAfter( container: KnockoutVirtualElement, nodeToInsert: Node, insertAfter: Node ): void;
|
|
||||||
nextSibling(node: KnockoutVirtualElement): Node;
|
|
||||||
prepend(node: KnockoutVirtualElement, toInsert: Node ): void;
|
|
||||||
setDomNodeChildren(node: KnockoutVirtualElement, newChildren: { length: number;[index: number]: Node; } ): void;
|
|
||||||
childNodes(node: KnockoutVirtualElement ): Node[];
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutExtenders {
|
|
||||||
throttle(target: any, timeout: number): KnockoutComputed<any>;
|
|
||||||
notify(target: any, notifyWhen: string): any;
|
|
||||||
|
|
||||||
rateLimit(target: any, timeout: number): any;
|
|
||||||
rateLimit(target: any, options: { timeout: number; method?: string; }): any;
|
|
||||||
|
|
||||||
trackArrayChanges(target: any): any;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// NOTE TO MAINTAINERS AND CONTRIBUTORS : pay attention to only include symbols that are
|
|
||||||
// publicly exported in the minified version of ko, without that you can give the false
|
|
||||||
// impression that some functions will be available in production builds.
|
|
||||||
//
|
|
||||||
interface KnockoutUtils {
|
|
||||||
//////////////////////////////////
|
|
||||||
// utils.domData.js
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
domData: {
|
|
||||||
get (node: Element, key: string): any;
|
|
||||||
|
|
||||||
set (node: Element, key: string, value: any): void;
|
|
||||||
|
|
||||||
getAll(node: Element, createIfNotFound: boolean): any;
|
|
||||||
|
|
||||||
clear(node: Element): boolean;
|
|
||||||
};
|
|
||||||
|
|
||||||
//////////////////////////////////
|
|
||||||
// utils.domNodeDisposal.js
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
domNodeDisposal: {
|
|
||||||
addDisposeCallback(node: Element, callback: Function): void;
|
|
||||||
|
|
||||||
removeDisposeCallback(node: Element, callback: Function): void;
|
|
||||||
|
|
||||||
cleanNode(node: Node): Element;
|
|
||||||
|
|
||||||
removeNode(node: Node): void;
|
|
||||||
};
|
|
||||||
|
|
||||||
addOrRemoveItem<T>(array: T[] | KnockoutObservable<T>, value: T, included: T): void;
|
|
||||||
|
|
||||||
arrayFilter<T>(array: T[], predicate: (item: T) => boolean): T[];
|
|
||||||
|
|
||||||
arrayFirst<T>(array: T[], predicate: (item: T) => boolean, predicateOwner?: any): T;
|
|
||||||
|
|
||||||
arrayForEach<T>(array: T[], action: (item: T, index: number) => void): void;
|
|
||||||
|
|
||||||
arrayGetDistinctValues<T>(array: T[]): T[];
|
|
||||||
|
|
||||||
arrayIndexOf<T>(array: T[], item: T): number;
|
|
||||||
|
|
||||||
arrayMap<T, U>(array: T[], mapping: (item: T) => U): U[];
|
|
||||||
|
|
||||||
arrayPushAll<T>(array: T[] | KnockoutObservableArray<T>, valuesToPush: T[]): T[];
|
|
||||||
|
|
||||||
arrayRemoveItem(array: any[], itemToRemove: any): void;
|
|
||||||
|
|
||||||
compareArrays<T>(a: T[], b: T[]): Array<KnockoutArrayChange<T>>;
|
|
||||||
|
|
||||||
extend(target: Object, source: Object): Object;
|
|
||||||
|
|
||||||
fieldsIncludedWithJsonPost: any[];
|
|
||||||
|
|
||||||
getFormFields(form: any, fieldName: string): any[];
|
|
||||||
|
|
||||||
objectForEach(obj: any, action: (key: any, value: any) => void): void;
|
|
||||||
|
|
||||||
parseHtmlFragment(html: string): any[];
|
|
||||||
|
|
||||||
parseJson(jsonString: string): any;
|
|
||||||
|
|
||||||
postJson(urlOrForm: any, data: any, options: any): void;
|
|
||||||
|
|
||||||
peekObservable<T>(value: KnockoutObservable<T>): T;
|
|
||||||
|
|
||||||
range(min: any, max: any): any;
|
|
||||||
|
|
||||||
registerEventHandler(element: any, eventType: any, handler: Function): void;
|
|
||||||
|
|
||||||
setHtml(node: Element, html: () => string): void;
|
|
||||||
|
|
||||||
setHtml(node: Element, html: string): void;
|
|
||||||
|
|
||||||
setTextContent(element: any, textContent: string | KnockoutObservable<string>): void;
|
|
||||||
|
|
||||||
stringifyJson(data: any, replacer?: Function, space?: string): string;
|
|
||||||
|
|
||||||
toggleDomNodeCssClass(node: any, className: string, shouldHaveClass: boolean): void;
|
|
||||||
|
|
||||||
triggerEvent(element: any, eventType: any): void;
|
|
||||||
|
|
||||||
unwrapObservable<T>(value: KnockoutObservable<T> | T): T;
|
|
||||||
|
|
||||||
// NOT PART OF THE MINIFIED API SURFACE (ONLY IN knockout-{version}.debug.js) https://github.com/SteveSanderson/knockout/issues/670
|
|
||||||
// forceRefresh(node: any): void;
|
|
||||||
// ieVersion: number;
|
|
||||||
// isIe6: boolean;
|
|
||||||
// isIe7: boolean;
|
|
||||||
// jQueryHtmlParse(html: string): any[];
|
|
||||||
// makeArray(arrayLikeObject: any): any[];
|
|
||||||
// moveCleanedNodesToContainerElement(nodes: any[]): HTMLElement;
|
|
||||||
// replaceDomNodes(nodeToReplaceOrNodeArray: any, newNodesArray: any[]): void;
|
|
||||||
// setDomNodeChildren(domNode: any, childNodes: any[]): void;
|
|
||||||
// setElementName(element: any, name: string): void;
|
|
||||||
// setOptionNodeSelectionState(optionNode: any, isSelected: boolean): void;
|
|
||||||
// simpleHtmlParse(html: string): any[];
|
|
||||||
// stringStartsWith(str: string, startsWith: string): boolean;
|
|
||||||
// stringTokenize(str: string, delimiter: string): string[];
|
|
||||||
// stringTrim(str: string): string;
|
|
||||||
// tagNameLower(element: any): string;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutArrayChange<T> {
|
|
||||||
status: string;
|
|
||||||
value: T;
|
|
||||||
index: number;
|
|
||||||
moved?: number;
|
|
||||||
}
|
|
||||||
|
|
||||||
//////////////////////////////////
|
|
||||||
// templateSources.js
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
interface KnockoutTemplateSourcesDomElement {
|
|
||||||
text(): any;
|
|
||||||
text(value: any): void;
|
|
||||||
|
|
||||||
data(key: string): any;
|
|
||||||
data(key: string, value: any): any;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutTemplateAnonymous extends KnockoutTemplateSourcesDomElement {
|
|
||||||
nodes(): any;
|
|
||||||
nodes(value: any): void;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutTemplateSources {
|
|
||||||
|
|
||||||
domElement: {
|
|
||||||
prototype: KnockoutTemplateSourcesDomElement
|
|
||||||
new (element: Element): KnockoutTemplateSourcesDomElement
|
|
||||||
};
|
|
||||||
|
|
||||||
anonymousTemplate: {
|
|
||||||
prototype: KnockoutTemplateAnonymous;
|
|
||||||
new (element: Element): KnockoutTemplateAnonymous;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
//////////////////////////////////
|
|
||||||
// nativeTemplateEngine.js
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
interface KnockoutNativeTemplateEngine {
|
|
||||||
|
|
||||||
renderTemplateSource(templateSource: Object, bindingContext?: KnockoutBindingContext, options?: Object): any[];
|
|
||||||
}
|
|
||||||
|
|
||||||
//////////////////////////////////
|
|
||||||
// templateEngine.js
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
interface KnockoutTemplateEngine extends KnockoutNativeTemplateEngine {
|
|
||||||
|
|
||||||
createJavaScriptEvaluatorBlock(script: string): string;
|
|
||||||
|
|
||||||
makeTemplateSource(template: any, templateDocument?: Document): any;
|
|
||||||
|
|
||||||
renderTemplate(template: any, bindingContext: KnockoutBindingContext, options: Object, templateDocument: Document): any;
|
|
||||||
|
|
||||||
isTemplateRewritten(template: any, templateDocument: Document): boolean;
|
|
||||||
|
|
||||||
rewriteTemplate(template: any, rewriterCallback: Function, templateDocument: Document): void;
|
|
||||||
}
|
|
||||||
|
|
||||||
/////////////////////////////////
|
|
||||||
|
|
||||||
interface KnockoutStatic {
|
|
||||||
utils: KnockoutUtils;
|
|
||||||
memoization: KnockoutMemoization;
|
|
||||||
|
|
||||||
bindingHandlers: KnockoutBindingHandlers;
|
|
||||||
getBindingHandler(handler: string): KnockoutBindingHandler;
|
|
||||||
|
|
||||||
virtualElements: KnockoutVirtualElements;
|
|
||||||
extenders: KnockoutExtenders;
|
|
||||||
|
|
||||||
applyBindings(viewModelOrBindingContext?: any, rootNode?: any): void;
|
|
||||||
applyBindingsToDescendants(viewModelOrBindingContext: any, rootNode: any): void;
|
|
||||||
applyBindingAccessorsToNode(node: Node, bindings: (bindingContext: KnockoutBindingContext, node: Node) => {}, bindingContext: KnockoutBindingContext): void;
|
|
||||||
applyBindingAccessorsToNode(node: Node, bindings: {}, bindingContext: KnockoutBindingContext): void;
|
|
||||||
applyBindingAccessorsToNode(node: Node, bindings: (bindingContext: KnockoutBindingContext, node: Node) => {}, viewModel: any): void;
|
|
||||||
applyBindingAccessorsToNode(node: Node, bindings: {}, viewModel: any): void;
|
|
||||||
applyBindingsToNode(node: Node, bindings: any, viewModelOrBindingContext?: any): any;
|
|
||||||
|
|
||||||
subscribable: KnockoutSubscribableStatic;
|
|
||||||
observable: KnockoutObservableStatic;
|
|
||||||
|
|
||||||
computed: KnockoutComputedStatic;
|
|
||||||
pureComputed<T>(evaluatorFunction: () => T, context?: any): KnockoutComputed<T>;
|
|
||||||
pureComputed<T>(options: KnockoutComputedDefine<T>, context?: any): KnockoutComputed<T>;
|
|
||||||
|
|
||||||
observableArray: KnockoutObservableArrayStatic;
|
|
||||||
|
|
||||||
contextFor(node: any): any;
|
|
||||||
isSubscribable(instance: any): boolean;
|
|
||||||
toJSON(viewModel: any, replacer?: Function, space?: any): string;
|
|
||||||
toJS(viewModel: any): any;
|
|
||||||
isObservable(instance: any): boolean;
|
|
||||||
isWriteableObservable(instance: any): boolean;
|
|
||||||
isComputed(instance: any): boolean;
|
|
||||||
dataFor(node: any): any;
|
|
||||||
removeNode(node: Element): void;
|
|
||||||
cleanNode(node: Element): Element;
|
|
||||||
renderTemplate(template: Function, viewModel: any, options?: any, target?: any, renderMode?: any): any;
|
|
||||||
renderTemplate(template: string, viewModel: any, options?: any, target?: any, renderMode?: any): any;
|
|
||||||
unwrap<T>(value: KnockoutObservable<T> | T): T;
|
|
||||||
|
|
||||||
computedContext: KnockoutComputedContext;
|
|
||||||
|
|
||||||
//////////////////////////////////
|
|
||||||
// templateSources.js
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
templateSources: KnockoutTemplateSources;
|
|
||||||
|
|
||||||
//////////////////////////////////
|
|
||||||
// templateEngine.js
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
templateEngine: {
|
|
||||||
|
|
||||||
prototype: KnockoutTemplateEngine;
|
|
||||||
|
|
||||||
new (): KnockoutTemplateEngine;
|
|
||||||
};
|
|
||||||
|
|
||||||
//////////////////////////////////
|
|
||||||
// templateRewriting.js
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
templateRewriting: {
|
|
||||||
|
|
||||||
ensureTemplateIsRewritten(template: Node, templateEngine: KnockoutTemplateEngine, templateDocument: Document): any;
|
|
||||||
ensureTemplateIsRewritten(template: string, templateEngine: KnockoutTemplateEngine, templateDocument: Document): any;
|
|
||||||
|
|
||||||
memoizeBindingAttributeSyntax(htmlString: string, templateEngine: KnockoutTemplateEngine): any;
|
|
||||||
|
|
||||||
applyMemoizedBindingsToNextSibling(bindings: any, nodeName: string): string;
|
|
||||||
};
|
|
||||||
|
|
||||||
//////////////////////////////////
|
|
||||||
// nativeTemplateEngine.js
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
nativeTemplateEngine: {
|
|
||||||
|
|
||||||
prototype: KnockoutNativeTemplateEngine;
|
|
||||||
|
|
||||||
new (): KnockoutNativeTemplateEngine;
|
|
||||||
|
|
||||||
instance: KnockoutNativeTemplateEngine;
|
|
||||||
};
|
|
||||||
|
|
||||||
//////////////////////////////////
|
|
||||||
// jqueryTmplTemplateEngine.js
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
jqueryTmplTemplateEngine: {
|
|
||||||
|
|
||||||
prototype: KnockoutTemplateEngine;
|
|
||||||
|
|
||||||
renderTemplateSource(templateSource: Object, bindingContext: KnockoutBindingContext, options: Object): Node[];
|
|
||||||
|
|
||||||
createJavaScriptEvaluatorBlock(script: string): string;
|
|
||||||
|
|
||||||
addTemplate(templateName: string, templateMarkup: string): void;
|
|
||||||
};
|
|
||||||
|
|
||||||
//////////////////////////////////
|
|
||||||
// templating.js
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
setTemplateEngine(templateEngine: KnockoutNativeTemplateEngine): void;
|
|
||||||
|
|
||||||
renderTemplate(template: Function, dataOrBindingContext: KnockoutBindingContext, options: Object, targetNodeOrNodeArray: Node, renderMode: string): any;
|
|
||||||
renderTemplate(template: any, dataOrBindingContext: KnockoutBindingContext, options: Object, targetNodeOrNodeArray: Node, renderMode: string): any;
|
|
||||||
renderTemplate(template: Function, dataOrBindingContext: any, options: Object, targetNodeOrNodeArray: Node, renderMode: string): any;
|
|
||||||
renderTemplate(template: any, dataOrBindingContext: any, options: Object, targetNodeOrNodeArray: Node, renderMode: string): any;
|
|
||||||
renderTemplate(template: Function, dataOrBindingContext: KnockoutBindingContext, options: Object, targetNodeOrNodeArray: Node[], renderMode: string): any;
|
|
||||||
renderTemplate(template: any, dataOrBindingContext: KnockoutBindingContext, options: Object, targetNodeOrNodeArray: Node[], renderMode: string): any;
|
|
||||||
renderTemplate(template: Function, dataOrBindingContext: any, options: Object, targetNodeOrNodeArray: Node[], renderMode: string): any;
|
|
||||||
renderTemplate(template: any, dataOrBindingContext: any, options: Object, targetNodeOrNodeArray: Node[], renderMode: string): any;
|
|
||||||
|
|
||||||
renderTemplateForEach(template: Function, arrayOrObservableArray: any[], options: Object, targetNode: Node, parentBindingContext: KnockoutBindingContext): any;
|
|
||||||
renderTemplateForEach(template: any, arrayOrObservableArray: any[], options: Object, targetNode: Node, parentBindingContext: KnockoutBindingContext): any;
|
|
||||||
renderTemplateForEach(template: Function, arrayOrObservableArray: KnockoutObservable<any>, options: Object, targetNode: Node, parentBindingContext: KnockoutBindingContext): any;
|
|
||||||
renderTemplateForEach(template: any, arrayOrObservableArray: KnockoutObservable<any>, options: Object, targetNode: Node, parentBindingContext: KnockoutBindingContext): any;
|
|
||||||
|
|
||||||
expressionRewriting: {
|
|
||||||
bindingRewriteValidators: any;
|
|
||||||
parseObjectLiteral: { (objectLiteralString: string): any[] }
|
|
||||||
};
|
|
||||||
|
|
||||||
/////////////////////////////////
|
|
||||||
|
|
||||||
bindingProvider: {
|
|
||||||
instance: KnockoutBindingProvider;
|
|
||||||
new (): KnockoutBindingProvider;
|
|
||||||
}
|
|
||||||
|
|
||||||
/////////////////////////////////
|
|
||||||
// selectExtensions.js
|
|
||||||
/////////////////////////////////
|
|
||||||
|
|
||||||
selectExtensions: {
|
|
||||||
|
|
||||||
readValue(element: HTMLElement): any;
|
|
||||||
|
|
||||||
writeValue(element: HTMLElement, value: any): void;
|
|
||||||
};
|
|
||||||
|
|
||||||
components: KnockoutComponents;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutBindingProvider {
|
|
||||||
nodeHasBindings(node: Node): boolean;
|
|
||||||
getBindings(node: Node, bindingContext: KnockoutBindingContext): {};
|
|
||||||
getBindingAccessors?(node: Node, bindingContext: KnockoutBindingContext): { [key: string]: string; };
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutComputedContext {
|
|
||||||
getDependenciesCount(): number;
|
|
||||||
isInitial: () => boolean;
|
|
||||||
isSleeping: boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// refactored types into a namespace to reduce global pollution
|
|
||||||
// and used Union Types to simplify overloads (requires TypeScript 1.4)
|
|
||||||
//
|
|
||||||
declare module KnockoutComponentTypes {
|
|
||||||
|
|
||||||
interface Config {
|
|
||||||
viewModel?: ViewModelFunction | ViewModelSharedInstance | ViewModelFactoryFunction | AMDModule;
|
|
||||||
template: string | Node[]| DocumentFragment | TemplateElement | AMDModule;
|
|
||||||
synchronous?: boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface ComponentConfig {
|
|
||||||
viewModel?: ViewModelFunction | ViewModelSharedInstance | ViewModelFactoryFunction | AMDModule;
|
|
||||||
template: any;
|
|
||||||
createViewModel?: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface EmptyConfig {
|
|
||||||
}
|
|
||||||
|
|
||||||
// common AMD type
|
|
||||||
interface AMDModule {
|
|
||||||
require: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
// viewmodel types
|
|
||||||
interface ViewModelFunction {
|
|
||||||
(params?: any): any;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface ViewModelSharedInstance {
|
|
||||||
instance: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface ViewModelFactoryFunction {
|
|
||||||
createViewModel: (params?: any, componentInfo?: ComponentInfo) => any;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface ComponentInfo {
|
|
||||||
element: Node;
|
|
||||||
templateNodes: Node[];
|
|
||||||
}
|
|
||||||
|
|
||||||
interface TemplateElement {
|
|
||||||
element: string | Node;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface Loader {
|
|
||||||
getConfig? (componentName: string, callback: (result: ComponentConfig) => void): void;
|
|
||||||
loadComponent? (componentName: string, config: ComponentConfig, callback: (result: Definition) => void): void;
|
|
||||||
loadTemplate? (componentName: string, templateConfig: any, callback: (result: Node[]) => void): void;
|
|
||||||
loadViewModel? (componentName: string, viewModelConfig: any, callback: (result: any) => void): void;
|
|
||||||
suppressLoaderExceptions?: boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface Definition {
|
|
||||||
template: Node[];
|
|
||||||
createViewModel? (params: any, options: { element: Node; }): any;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutComponents {
|
|
||||||
// overloads for register method:
|
|
||||||
register(componentName: string, config: KnockoutComponentTypes.Config | KnockoutComponentTypes.EmptyConfig): void;
|
|
||||||
|
|
||||||
isRegistered(componentName: string): boolean;
|
|
||||||
unregister(componentName: string): void;
|
|
||||||
get(componentName: string, callback: (definition: KnockoutComponentTypes.Definition) => void): void;
|
|
||||||
clearCachedDefinition(componentName: string): void
|
|
||||||
defaultLoader: KnockoutComponentTypes.Loader;
|
|
||||||
loaders: KnockoutComponentTypes.Loader[];
|
|
||||||
getComponentNameForNode(node: Node): string;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare var ko: KnockoutStatic;
|
|
||||||
|
|
||||||
declare module "knockout" {
|
|
||||||
export = ko;
|
|
||||||
}
|
|
|
@ -1,3 +0,0 @@
|
||||||
/// <reference path="@ms/odsp.d.ts" />
|
|
||||||
/// <reference path="assertion-error/assertion-error.d.ts" />
|
|
||||||
/// <reference path="knockout/knockout.d.ts" />
|
|
|
@ -1,25 +0,0 @@
|
||||||
# EditorConfig helps developers define and maintain consistent
|
|
||||||
# coding styles between different editors and IDEs
|
|
||||||
# editorconfig.org
|
|
||||||
|
|
||||||
root = true
|
|
||||||
|
|
||||||
|
|
||||||
[*]
|
|
||||||
|
|
||||||
# change these settings to your own preference
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 2
|
|
||||||
|
|
||||||
# we recommend you to keep these unchanged
|
|
||||||
end_of_line = lf
|
|
||||||
charset = utf-8
|
|
||||||
trim_trailing_whitespace = true
|
|
||||||
insert_final_newline = true
|
|
||||||
|
|
||||||
[*.md]
|
|
||||||
trim_trailing_whitespace = false
|
|
||||||
|
|
||||||
[{package,bower}.json]
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 2
|
|
|
@ -1 +0,0 @@
|
||||||
* text=auto
|
|
|
@ -1,32 +0,0 @@
|
||||||
# Logs
|
|
||||||
logs
|
|
||||||
*.log
|
|
||||||
npm-debug.log*
|
|
||||||
|
|
||||||
# Dependency directories
|
|
||||||
node_modules
|
|
||||||
|
|
||||||
# Build generated files
|
|
||||||
dist
|
|
||||||
lib
|
|
||||||
solution
|
|
||||||
temp
|
|
||||||
*.sppkg
|
|
||||||
|
|
||||||
# Coverage directory used by tools like istanbul
|
|
||||||
coverage
|
|
||||||
|
|
||||||
# OSX
|
|
||||||
.DS_Store
|
|
||||||
|
|
||||||
# Visual Studio files
|
|
||||||
.ntvs_analysis.dat
|
|
||||||
.vs
|
|
||||||
bin
|
|
||||||
obj
|
|
||||||
|
|
||||||
# Resx Generated Code
|
|
||||||
*.resx.ts
|
|
||||||
|
|
||||||
# Styles Generated Code
|
|
||||||
*.scss.ts
|
|
|
@ -1,14 +0,0 @@
|
||||||
# Folders
|
|
||||||
.vscode
|
|
||||||
coverage
|
|
||||||
node_modules
|
|
||||||
sharepoint
|
|
||||||
src
|
|
||||||
temp
|
|
||||||
|
|
||||||
# Files
|
|
||||||
*.csproj
|
|
||||||
.git*
|
|
||||||
.yo-rc.json
|
|
||||||
gulpfile.js
|
|
||||||
tsconfig.json
|
|
|
@ -1,3 +0,0 @@
|
||||||
{
|
|
||||||
"vsicons.presets.angular": false
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
{
|
|
||||||
"@microsoft/generator-sharepoint": {
|
|
||||||
"libraryName": "helloworld-webpart",
|
|
||||||
"libraryId": "c3669cfe-23b2-44ef-87cb-9ae6c36f5b80",
|
|
||||||
"framework": "none"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,26 +0,0 @@
|
||||||
## helloworld-webpart
|
|
||||||
|
|
||||||
This is where you include your web part docs.
|
|
||||||
|
|
||||||
### Building the code
|
|
||||||
|
|
||||||
```bash
|
|
||||||
git clone the repo
|
|
||||||
npm i
|
|
||||||
npm i -g gulp
|
|
||||||
gulp
|
|
||||||
```
|
|
||||||
|
|
||||||
This package produces the following:
|
|
||||||
|
|
||||||
* lib/* commonjs components - this allows this package to be reused from other packages.
|
|
||||||
* dist/* - a single bundle containing the components used for uploading to a cdn pointing a registered Sharepoint webpart library to.
|
|
||||||
* example/* a test page that hosts all components in this package.
|
|
||||||
|
|
||||||
### Build options
|
|
||||||
|
|
||||||
gulp clean - TODO
|
|
||||||
gulp test - TODO
|
|
||||||
gulp watch - TODO
|
|
||||||
gulp build - TODO
|
|
||||||
gulp deploy - TODO
|
|
|
@ -1,13 +0,0 @@
|
||||||
{
|
|
||||||
"entries": [
|
|
||||||
{
|
|
||||||
"entry": "./lib/webparts/helloWorld/HelloWorldWebPart.js",
|
|
||||||
"manifest": "./src/webparts/helloWorld/HelloWorldWebPart.manifest.json",
|
|
||||||
"outputPath": "./dist/hello-world.bundle.js"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"externals": {},
|
|
||||||
"localizedResources": {
|
|
||||||
"helloWorldStrings": "webparts/helloWorld/loc/{locale}.js"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,6 +0,0 @@
|
||||||
{
|
|
||||||
"workingDir": "./temp/deploy/",
|
|
||||||
"account": "<!-- STORAGE ACCOUNT NAME -->",
|
|
||||||
"container": "helloworld-webpart",
|
|
||||||
"accessKey": "<!-- ACCESS KEY -->"
|
|
||||||
}
|
|
|
@ -1,10 +0,0 @@
|
||||||
{
|
|
||||||
"solution": {
|
|
||||||
"name": "helloworld-webpart-client-side-solution",
|
|
||||||
"id": "c3669cfe-23b2-44ef-87cb-9ae6c36f5b80",
|
|
||||||
"version": "1.0.0.0"
|
|
||||||
},
|
|
||||||
"paths": {
|
|
||||||
"zippedPackage": "solution/helloworld-webpart.sppkg"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,3 +0,0 @@
|
||||||
{
|
|
||||||
"deployCdnPath": "temp/deploy"
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
{
|
|
||||||
"port": 4321,
|
|
||||||
"initialPage": "https://localhost:5432/workbench",
|
|
||||||
"https": true,
|
|
||||||
"api": {
|
|
||||||
"port": 5432,
|
|
||||||
"entryPath": "node_modules/@microsoft/sp-webpart-workbench/lib/api/"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,50 +0,0 @@
|
||||||
{
|
|
||||||
// Display errors as warnings
|
|
||||||
"displayAsWarning": true,
|
|
||||||
// The TSLint task may have been configured with several custom lint rules
|
|
||||||
// before this config file is read (for example lint rules from the tslint-microsoft-contrib
|
|
||||||
// project). If true, this flag will deactivate any of these rules.
|
|
||||||
"removeExistingRules": true,
|
|
||||||
// When true, the TSLint task is configured with some default TSLint "rules.":
|
|
||||||
"useDefaultConfigAsBase": false,
|
|
||||||
// Since removeExistingRules=true and useDefaultConfigAsBase=false, there will be no lint rules
|
|
||||||
// which are active, other than the list of rules below.
|
|
||||||
"lintConfig": {
|
|
||||||
// Opt-in to Lint rules which help to eliminate bugs in JavaScript
|
|
||||||
"rules": {
|
|
||||||
"class-name": false,
|
|
||||||
"export-name": false,
|
|
||||||
"forin": false,
|
|
||||||
"label-position": false,
|
|
||||||
"label-undefined": false,
|
|
||||||
"member-access": true,
|
|
||||||
"no-arg": false,
|
|
||||||
"no-console": false,
|
|
||||||
"no-construct": false,
|
|
||||||
"no-duplicate-case": true,
|
|
||||||
"no-duplicate-key": false,
|
|
||||||
"no-duplicate-variable": true,
|
|
||||||
"no-eval": false,
|
|
||||||
"no-function-expression": true,
|
|
||||||
"no-internal-module": true,
|
|
||||||
"no-shadowed-variable": true,
|
|
||||||
"no-switch-case-fall-through": true,
|
|
||||||
"no-unnecessary-semicolons": true,
|
|
||||||
"no-unused-expression": true,
|
|
||||||
"no-unused-imports": true,
|
|
||||||
"no-unused-variable": true,
|
|
||||||
"no-unreachable": true,
|
|
||||||
"no-use-before-declare": true,
|
|
||||||
"no-with-statement": true,
|
|
||||||
"semicolon": true,
|
|
||||||
"trailing-comma": false,
|
|
||||||
"typedef": false,
|
|
||||||
"typedef-whitespace": false,
|
|
||||||
"use-named-parameter": true,
|
|
||||||
"valid-typeof": true,
|
|
||||||
"variable-name": false,
|
|
||||||
"whitespace": false,
|
|
||||||
"prefer-const": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,3 +0,0 @@
|
||||||
{
|
|
||||||
"cdnBasePath": "<!-- PATH TO CDN -->"
|
|
||||||
}
|
|
|
@ -1,6 +0,0 @@
|
||||||
'use strict';
|
|
||||||
|
|
||||||
const gulp = require('gulp');
|
|
||||||
const build = require('@microsoft/sp-build-web');
|
|
||||||
|
|
||||||
build.initialize(gulp);
|
|
|
@ -1,29 +0,0 @@
|
||||||
{
|
|
||||||
"name": "helloworld-webpart",
|
|
||||||
"version": "0.0.1",
|
|
||||||
"private": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.10.0"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"@microsoft/sp-client-base": "~0.7.0",
|
|
||||||
"@microsoft/sp-client-preview": "~0.9.0",
|
|
||||||
"@microsoft/sp-core-library": "~0.1.2",
|
|
||||||
"@microsoft/sp-webpart-base": "~0.4.0",
|
|
||||||
"@types/lodash": "^4.14.50",
|
|
||||||
"@types/webpack-env": ">=1.12.1 <1.14.0"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"@microsoft/sp-build-web": "~0.9.0",
|
|
||||||
"@microsoft/sp-module-interfaces": "~0.7.0",
|
|
||||||
"@microsoft/sp-webpart-workbench": "~0.8.0",
|
|
||||||
"gulp": "~3.9.1",
|
|
||||||
"@types/chai": ">=3.4.34 <3.6.0",
|
|
||||||
"@types/mocha": ">=2.2.33 <2.6.0"
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"build": "gulp bundle",
|
|
||||||
"clean": "gulp clean",
|
|
||||||
"test": "gulp test"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,5 +0,0 @@
|
||||||
var context = require.context('.', true, /.+\.test\.js?$/);
|
|
||||||
|
|
||||||
context.keys().forEach(context);
|
|
||||||
|
|
||||||
module.exports = context;
|
|
|
@ -1,67 +0,0 @@
|
||||||
@import "~/office-ui-fabric-react/dist/sass/Fabric.Common";
|
|
||||||
|
|
||||||
.row {
|
|
||||||
@include ms-Grid-row;
|
|
||||||
@include ms-bgColor-themeDark;
|
|
||||||
@include ms-fontColor-white;
|
|
||||||
|
|
||||||
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2), 0 25px 50px 0 rgba(0, 0, 0, 0.1);
|
|
||||||
max-width: 700px;
|
|
||||||
margin: 0 auto;
|
|
||||||
padding: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.column {
|
|
||||||
@include ms-Grid-col;
|
|
||||||
@include ms-u-lg10;
|
|
||||||
@include ms-u-xl8;
|
|
||||||
@include ms-u-lgPush1;
|
|
||||||
@include ms-u-xlPush2;
|
|
||||||
}
|
|
||||||
|
|
||||||
.title {
|
|
||||||
@include ms-font-xl;
|
|
||||||
@include ms-fontColor-white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.subtitle {
|
|
||||||
@include ms-font-l;
|
|
||||||
@include ms-fontColor-white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.description {
|
|
||||||
@include ms-font-l;
|
|
||||||
@include ms-fontColor-white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.button {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.list {
|
|
||||||
color: #333333;
|
|
||||||
font-family: 'Segoe UI Regular WestEuropean', 'Segoe UI', Tahoma, Arial, sans-serif;
|
|
||||||
font-size: 14px;
|
|
||||||
font-weight: normal;
|
|
||||||
box-sizing: border-box;
|
|
||||||
margin: 10;
|
|
||||||
padding: 10;
|
|
||||||
line-height: 50px;
|
|
||||||
list-style-type: none;
|
|
||||||
box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.2), 0 25px 50px 0 rgba(0, 0, 0, 0.1);
|
|
||||||
}
|
|
||||||
|
|
||||||
.listItem {
|
|
||||||
color: #333333;
|
|
||||||
vertical-align: center;
|
|
||||||
font-family: 'Segoe UI Regular WestEuropean', 'Segoe UI', Tahoma, Arial, sans-serif;
|
|
||||||
font-size: 14px;
|
|
||||||
font-weight: normal;
|
|
||||||
box-sizing: border-box;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
box-shadow: none;
|
|
||||||
*zoom: 1;
|
|
||||||
padding: 9px 28px 3px;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
|
@ -1,24 +0,0 @@
|
||||||
{
|
|
||||||
"$schema": "../../../node_modules/@microsoft/sp-module-interfaces/lib/manifestSchemas/jsonSchemas/clientSideComponentManifestSchema.json",
|
|
||||||
|
|
||||||
"id": "b1a93a79-848c-4e9a-8457-c5a3bec319bb",
|
|
||||||
"alias": "HelloWorldWebPart",
|
|
||||||
"componentType": "WebPart",
|
|
||||||
"version": "0.0.1",
|
|
||||||
"manifestVersion": 2,
|
|
||||||
|
|
||||||
"preconfiguredEntries": [{
|
|
||||||
"groupId": "b1a93a79-848c-4e9a-8457-c5a3bec319bb",
|
|
||||||
"group": { "default": "Under Development" },
|
|
||||||
"title": { "default": "HelloWorld" },
|
|
||||||
"description": { "default": "HelloWorld description" },
|
|
||||||
"officeFabricIconFontName": "Page",
|
|
||||||
"properties": {
|
|
||||||
"description": "HelloWorld",
|
|
||||||
"test": "Multi-line text field",
|
|
||||||
"test1": true,
|
|
||||||
"test2": "2",
|
|
||||||
"test3": true
|
|
||||||
}
|
|
||||||
}]
|
|
||||||
}
|
|
|
@ -1,157 +0,0 @@
|
||||||
import { Version } from '@microsoft/sp-core-library';
|
|
||||||
import {
|
|
||||||
BaseClientSideWebPart,
|
|
||||||
IPropertyPaneConfiguration,
|
|
||||||
PropertyPaneTextField,
|
|
||||||
PropertyPaneCheckbox,
|
|
||||||
PropertyPaneDropdown,
|
|
||||||
PropertyPaneToggle
|
|
||||||
} from '@microsoft/sp-webpart-base';
|
|
||||||
|
|
||||||
import { escape } from '@microsoft/sp-lodash-subset';
|
|
||||||
|
|
||||||
import styles from './HelloWorld.module.scss';
|
|
||||||
import * as strings from 'helloWorldStrings';
|
|
||||||
import { IHelloWorldWebPartProps } from './IHelloWorldWebPartProps';
|
|
||||||
import MockHttpClient from './MockHttpClient';
|
|
||||||
import {
|
|
||||||
SPHttpClient
|
|
||||||
} from '@microsoft/sp-http';
|
|
||||||
import {
|
|
||||||
Environment,
|
|
||||||
EnvironmentType
|
|
||||||
} from '@microsoft/sp-core-library';
|
|
||||||
|
|
||||||
export interface ISPLists {
|
|
||||||
value: ISPList[];
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface ISPList {
|
|
||||||
Title: string;
|
|
||||||
Id: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
export default class HelloWorldWebPart extends BaseClientSideWebPart<IHelloWorldWebPartProps> {
|
|
||||||
|
|
||||||
public render(): void {
|
|
||||||
this.domElement.innerHTML = `
|
|
||||||
<div class="${styles.row}">
|
|
||||||
<div class="${styles.column}">
|
|
||||||
<span class="${styles.title}">
|
|
||||||
Welcome to SharePoint!
|
|
||||||
</span>
|
|
||||||
<p class="${styles.subtitle}">
|
|
||||||
Customize SharePoint experiences using Web Parts.
|
|
||||||
</p>
|
|
||||||
<p class="${styles.description}">
|
|
||||||
${escape(this.properties.description)}
|
|
||||||
</p>
|
|
||||||
<p class="${styles.description}">
|
|
||||||
${escape(this.properties.test2)}
|
|
||||||
</p>
|
|
||||||
<p class="ms-font-l ms-fontColor-white">Loading from ${this.context.pageContext.web.title}</p>
|
|
||||||
<a class="ms-Button ${styles.button}" href="https://github.com/SharePoint/sp-dev-docs/wiki">
|
|
||||||
<span class="ms-Button-label">
|
|
||||||
Learn more
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="spListContainer" />`;
|
|
||||||
|
|
||||||
this._renderListAsync();
|
|
||||||
}
|
|
||||||
|
|
||||||
private _getMockListData(): Promise<ISPLists> {
|
|
||||||
return MockHttpClient.get(this.context.pageContext.web.absoluteUrl)
|
|
||||||
.then((data: ISPList[]) => {
|
|
||||||
var listData: ISPLists = { value: data };
|
|
||||||
return listData;
|
|
||||||
}) as Promise<ISPLists>;
|
|
||||||
}
|
|
||||||
|
|
||||||
private _getListData(): Promise<ISPLists> {
|
|
||||||
return this.context.spHttpClient.get(this.context.pageContext.web.absoluteUrl + `/_api/web/lists?$filter=Hidden eq false`, SPHttpClient.configurations.v1)
|
|
||||||
.then((response: Response) => {
|
|
||||||
return response.json();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private _renderListAsync(): void {
|
|
||||||
// Local environment
|
|
||||||
if (Environment.type === EnvironmentType.Local) {
|
|
||||||
this._getMockListData().then((response) => {
|
|
||||||
this._renderList(response.value);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else if (Environment.type == EnvironmentType.SharePoint ||
|
|
||||||
Environment.type == EnvironmentType.ClassicSharePoint) {
|
|
||||||
this._getListData()
|
|
||||||
.then((response) => {
|
|
||||||
this._renderList(response.value);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private _renderList(items: ISPList[]): void {
|
|
||||||
let html: string = '';
|
|
||||||
items.forEach((item: ISPList) => {
|
|
||||||
html += `
|
|
||||||
<ul class="${styles.list}">
|
|
||||||
<li class="${styles.listItem}">
|
|
||||||
<span class="ms-font-l">${item.Title}</span>
|
|
||||||
</li>
|
|
||||||
</ul>`;
|
|
||||||
});
|
|
||||||
|
|
||||||
const listContainer: Element = this.domElement.querySelector('#spListContainer');
|
|
||||||
listContainer.innerHTML = html;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected get dataVersion(): Version {
|
|
||||||
return Version.parse('1.0');
|
|
||||||
}
|
|
||||||
|
|
||||||
protected getPropertyPaneConfiguration(): IPropertyPaneConfiguration {
|
|
||||||
return {
|
|
||||||
pages: [
|
|
||||||
{
|
|
||||||
header: {
|
|
||||||
description: strings.PropertyPaneDescription
|
|
||||||
},
|
|
||||||
groups: [
|
|
||||||
{
|
|
||||||
groupName: strings.BasicGroupName,
|
|
||||||
groupFields: [
|
|
||||||
PropertyPaneTextField('description', {
|
|
||||||
label: 'Description'
|
|
||||||
}),
|
|
||||||
PropertyPaneTextField('test', {
|
|
||||||
label: 'Multi-line Text Field',
|
|
||||||
multiline: true
|
|
||||||
}),
|
|
||||||
PropertyPaneCheckbox('test1', {
|
|
||||||
text: 'Checkbox'
|
|
||||||
}),
|
|
||||||
PropertyPaneDropdown('test2', {
|
|
||||||
label: 'Dropdown',
|
|
||||||
options: [
|
|
||||||
{ key: '1', text: 'One' },
|
|
||||||
{ key: '2', text: 'Two' },
|
|
||||||
{ key: '3', text: 'Three' },
|
|
||||||
{ key: '4', text: 'Four' }
|
|
||||||
]
|
|
||||||
}),
|
|
||||||
PropertyPaneToggle('test3', {
|
|
||||||
label: 'Toggle',
|
|
||||||
onText: 'On',
|
|
||||||
offText: 'Off'
|
|
||||||
})
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
export interface IHelloWorldWebPartProps {
|
|
||||||
description: string;
|
|
||||||
test: string;
|
|
||||||
test1: boolean;
|
|
||||||
test2: string;
|
|
||||||
test3: boolean;
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
import { ISPList } from './HelloWorldWebPart';
|
|
||||||
|
|
||||||
export default class MockHttpClient {
|
|
||||||
|
|
||||||
private static _items: ISPList[] = [{ Title: 'Mock List', Id: '1' },
|
|
||||||
{ Title: 'Mock List 2', Id: '2' },
|
|
||||||
{ Title: 'Mock List 3', Id: '3' }];
|
|
||||||
|
|
||||||
public static get(restUrl: string, options?: any): Promise<ISPList[]> {
|
|
||||||
return new Promise<ISPList[]>((resolve) => {
|
|
||||||
resolve(MockHttpClient._items);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
define([], function() {
|
|
||||||
return {
|
|
||||||
"PropertyPaneDescription": "Description",
|
|
||||||
"BasicGroupName": "Group Name",
|
|
||||||
"DescriptionFieldLabel": "Description Field"
|
|
||||||
}
|
|
||||||
});
|
|
|
@ -1,10 +0,0 @@
|
||||||
declare interface IHelloWorldStrings {
|
|
||||||
PropertyPaneDescription: string;
|
|
||||||
BasicGroupName: string;
|
|
||||||
DescriptionFieldLabel: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'helloWorldStrings' {
|
|
||||||
const strings: IHelloWorldStrings;
|
|
||||||
export = strings;
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
/// <reference types="mocha" />
|
|
||||||
|
|
||||||
import { assert } from 'chai';
|
|
||||||
|
|
||||||
describe('HelloWorldWebPart', () => {
|
|
||||||
it('should do something', () => {
|
|
||||||
assert.ok(true);
|
|
||||||
});
|
|
||||||
});
|
|
|
@ -1,13 +0,0 @@
|
||||||
{
|
|
||||||
"compilerOptions": {
|
|
||||||
"target": "es5",
|
|
||||||
"forceConsistentCasingInFileNames": true,
|
|
||||||
"module": "commonjs",
|
|
||||||
"jsx": "react",
|
|
||||||
"declaration": true,
|
|
||||||
"sourceMap": true,
|
|
||||||
"types": [
|
|
||||||
"webpack-env"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,5 +0,0 @@
|
||||||
// Type definitions for Microsoft ODSP projects
|
|
||||||
// Project: ODSP
|
|
||||||
|
|
||||||
/* Global definition for UNIT_TEST builds */
|
|
||||||
declare const UNIT_TEST: boolean;
|
|
|
@ -1,15 +0,0 @@
|
||||||
// Type definitions for assertion-error 1.0.0
|
|
||||||
// Project: https://github.com/chaijs/assertion-error
|
|
||||||
// Definitions by: Bart van der Schoor <https://github.com/Bartvds>
|
|
||||||
// Definitions: https://github.com/borisyankov/DefinitelyTyped
|
|
||||||
|
|
||||||
declare module 'assertion-error' {
|
|
||||||
class AssertionError implements Error {
|
|
||||||
constructor(message: string, props?: any, ssf?: Function);
|
|
||||||
name: string;
|
|
||||||
message: string;
|
|
||||||
showDiff: boolean;
|
|
||||||
stack: string;
|
|
||||||
}
|
|
||||||
export = AssertionError;
|
|
||||||
}
|
|
|
@ -1,631 +0,0 @@
|
||||||
// Type definitions for Knockout v3.2.0
|
|
||||||
// Project: http://knockoutjs.com
|
|
||||||
// Definitions by: Boris Yankov <https://github.com/borisyankov/>, Igor Oleinikov <https://github.com/Igorbek/>, Clément Bourgeois <https://github.com/moonpyk/>
|
|
||||||
// Definitions: https://github.com/borisyankov/DefinitelyTyped
|
|
||||||
|
|
||||||
|
|
||||||
interface KnockoutSubscribableFunctions<T> {
|
|
||||||
[key: string]: KnockoutBindingHandler;
|
|
||||||
|
|
||||||
notifySubscribers(valueToWrite?: T, event?: string): void;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutComputedFunctions<T> {
|
|
||||||
[key: string]: KnockoutBindingHandler;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutObservableFunctions<T> {
|
|
||||||
[key: string]: KnockoutBindingHandler;
|
|
||||||
|
|
||||||
equalityComparer(a: any, b: any): boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutObservableArrayFunctions<T> {
|
|
||||||
// General Array functions
|
|
||||||
indexOf(searchElement: T, fromIndex?: number): number;
|
|
||||||
slice(start: number, end?: number): T[];
|
|
||||||
splice(start: number): T[];
|
|
||||||
splice(start: number, deleteCount: number, ...items: T[]): T[];
|
|
||||||
pop(): T;
|
|
||||||
push(...items: T[]): void;
|
|
||||||
shift(): T;
|
|
||||||
unshift(...items: T[]): number;
|
|
||||||
reverse(): KnockoutObservableArray<T>;
|
|
||||||
sort(): KnockoutObservableArray<T>;
|
|
||||||
sort(compareFunction: (left: T, right: T) => number): KnockoutObservableArray<T>;
|
|
||||||
|
|
||||||
// Ko specific
|
|
||||||
[key: string]: KnockoutBindingHandler;
|
|
||||||
|
|
||||||
replace(oldItem: T, newItem: T): void;
|
|
||||||
|
|
||||||
remove(item: T): T[];
|
|
||||||
remove(removeFunction: (item: T) => boolean): T[];
|
|
||||||
removeAll(items: T[]): T[];
|
|
||||||
removeAll(): T[];
|
|
||||||
|
|
||||||
destroy(item: T): void;
|
|
||||||
destroy(destroyFunction: (item: T) => boolean): void;
|
|
||||||
destroyAll(items: T[]): void;
|
|
||||||
destroyAll(): void;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutSubscribableStatic {
|
|
||||||
fn: KnockoutSubscribableFunctions<any>;
|
|
||||||
|
|
||||||
new <T>(): KnockoutSubscribable<T>;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutSubscription {
|
|
||||||
dispose(): void;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutSubscribable<T> extends KnockoutSubscribableFunctions<T> {
|
|
||||||
subscribe(callback: (newValue: T) => void, target?: any, event?: string): KnockoutSubscription;
|
|
||||||
subscribe<TEvent>(callback: (newValue: TEvent) => void, target: any, event: string): KnockoutSubscription;
|
|
||||||
extend(requestedExtenders: { [key: string]: any; }): KnockoutSubscribable<T>;
|
|
||||||
getSubscriptionsCount(): number;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutComputedStatic {
|
|
||||||
fn: KnockoutComputedFunctions<any>;
|
|
||||||
|
|
||||||
<T>(): KnockoutComputed<T>;
|
|
||||||
<T>(func: () => T, context?: any, options?: any): KnockoutComputed<T>;
|
|
||||||
<T>(def: KnockoutComputedDefine<T>, context?: any): KnockoutComputed<T>;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutComputed<T> extends KnockoutObservable<T>, KnockoutComputedFunctions<T> {
|
|
||||||
fn: KnockoutComputedFunctions<any>;
|
|
||||||
|
|
||||||
dispose(): void;
|
|
||||||
isActive(): boolean;
|
|
||||||
getDependenciesCount(): number;
|
|
||||||
extend(requestedExtenders: { [key: string]: any; }): KnockoutComputed<T>;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutObservableArrayStatic {
|
|
||||||
fn: KnockoutObservableArrayFunctions<any>;
|
|
||||||
|
|
||||||
<T>(value?: T[]): KnockoutObservableArray<T>;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutObservableArray<T> extends KnockoutObservable<T[]>, KnockoutObservableArrayFunctions<T> {
|
|
||||||
extend(requestedExtenders: { [key: string]: any; }): KnockoutObservableArray<T>;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutObservableStatic {
|
|
||||||
fn: KnockoutObservableFunctions<any>;
|
|
||||||
|
|
||||||
<T>(value?: T): KnockoutObservable<T>;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutObservable<T> extends KnockoutSubscribable<T>, KnockoutObservableFunctions<T> {
|
|
||||||
(): T;
|
|
||||||
(value: T): void;
|
|
||||||
|
|
||||||
peek(): T;
|
|
||||||
valueHasMutated?:{(): void;};
|
|
||||||
valueWillMutate?:{(): void;};
|
|
||||||
extend(requestedExtenders: { [key: string]: any; }): KnockoutObservable<T>;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutComputedDefine<T> {
|
|
||||||
read(): T;
|
|
||||||
write? (value: T): void;
|
|
||||||
disposeWhenNodeIsRemoved?: Node;
|
|
||||||
disposeWhen? (): boolean;
|
|
||||||
owner?: any;
|
|
||||||
deferEvaluation?: boolean;
|
|
||||||
pure?: boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutBindingContext {
|
|
||||||
$parent: any;
|
|
||||||
$parents: any[];
|
|
||||||
$root: any;
|
|
||||||
$data: any;
|
|
||||||
$rawData: any | KnockoutObservable<any>;
|
|
||||||
$index?: KnockoutObservable<number>;
|
|
||||||
$parentContext?: KnockoutBindingContext;
|
|
||||||
$component: any;
|
|
||||||
$componentTemplateNodes: Node[];
|
|
||||||
|
|
||||||
extend(properties: any): any;
|
|
||||||
createChildContext(dataItemOrAccessor: any, dataItemAlias?: any, extendCallback?: Function): any;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutAllBindingsAccessor {
|
|
||||||
(): any;
|
|
||||||
get(name: string): any;
|
|
||||||
has(name: string): boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutBindingHandler {
|
|
||||||
after?: Array<string>;
|
|
||||||
init?: (element: any, valueAccessor: () => any, allBindingsAccessor?: KnockoutAllBindingsAccessor, viewModel?: any, bindingContext?: KnockoutBindingContext) => void | { controlsDescendantBindings: boolean; };
|
|
||||||
update?: (element: any, valueAccessor: () => any, allBindingsAccessor?: KnockoutAllBindingsAccessor, viewModel?: any, bindingContext?: KnockoutBindingContext) => void;
|
|
||||||
options?: any;
|
|
||||||
preprocess?: (value: string, name: string, addBindingCallback?: (name: string, value: string) => void) => string;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutBindingHandlers {
|
|
||||||
[bindingHandler: string]: KnockoutBindingHandler;
|
|
||||||
|
|
||||||
// Controlling text and appearance
|
|
||||||
visible: KnockoutBindingHandler;
|
|
||||||
text: KnockoutBindingHandler;
|
|
||||||
html: KnockoutBindingHandler;
|
|
||||||
css: KnockoutBindingHandler;
|
|
||||||
style: KnockoutBindingHandler;
|
|
||||||
attr: KnockoutBindingHandler;
|
|
||||||
|
|
||||||
// Control Flow
|
|
||||||
foreach: KnockoutBindingHandler;
|
|
||||||
if: KnockoutBindingHandler;
|
|
||||||
ifnot: KnockoutBindingHandler;
|
|
||||||
with: KnockoutBindingHandler;
|
|
||||||
|
|
||||||
// Working with form fields
|
|
||||||
click: KnockoutBindingHandler;
|
|
||||||
event: KnockoutBindingHandler;
|
|
||||||
submit: KnockoutBindingHandler;
|
|
||||||
enable: KnockoutBindingHandler;
|
|
||||||
disable: KnockoutBindingHandler;
|
|
||||||
value: KnockoutBindingHandler;
|
|
||||||
textInput: KnockoutBindingHandler;
|
|
||||||
hasfocus: KnockoutBindingHandler;
|
|
||||||
checked: KnockoutBindingHandler;
|
|
||||||
options: KnockoutBindingHandler;
|
|
||||||
selectedOptions: KnockoutBindingHandler;
|
|
||||||
uniqueName: KnockoutBindingHandler;
|
|
||||||
|
|
||||||
// Rendering templates
|
|
||||||
template: KnockoutBindingHandler;
|
|
||||||
|
|
||||||
// Components (new for v3.2)
|
|
||||||
component: KnockoutBindingHandler;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutMemoization {
|
|
||||||
memoize(callback: () => string): string;
|
|
||||||
unmemoize(memoId: string, callbackParams: any[]): boolean;
|
|
||||||
unmemoizeDomNodeAndDescendants(domNode: any, extraCallbackParamsArray: any[]): boolean;
|
|
||||||
parseMemoText(memoText: string): string;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutVirtualElement {}
|
|
||||||
|
|
||||||
interface KnockoutVirtualElements {
|
|
||||||
allowedBindings: { [bindingName: string]: boolean; };
|
|
||||||
emptyNode(node: KnockoutVirtualElement ): void;
|
|
||||||
firstChild(node: KnockoutVirtualElement ): KnockoutVirtualElement;
|
|
||||||
insertAfter( container: KnockoutVirtualElement, nodeToInsert: Node, insertAfter: Node ): void;
|
|
||||||
nextSibling(node: KnockoutVirtualElement): Node;
|
|
||||||
prepend(node: KnockoutVirtualElement, toInsert: Node ): void;
|
|
||||||
setDomNodeChildren(node: KnockoutVirtualElement, newChildren: { length: number;[index: number]: Node; } ): void;
|
|
||||||
childNodes(node: KnockoutVirtualElement ): Node[];
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutExtenders {
|
|
||||||
throttle(target: any, timeout: number): KnockoutComputed<any>;
|
|
||||||
notify(target: any, notifyWhen: string): any;
|
|
||||||
|
|
||||||
rateLimit(target: any, timeout: number): any;
|
|
||||||
rateLimit(target: any, options: { timeout: number; method?: string; }): any;
|
|
||||||
|
|
||||||
trackArrayChanges(target: any): any;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// NOTE TO MAINTAINERS AND CONTRIBUTORS : pay attention to only include symbols that are
|
|
||||||
// publicly exported in the minified version of ko, without that you can give the false
|
|
||||||
// impression that some functions will be available in production builds.
|
|
||||||
//
|
|
||||||
interface KnockoutUtils {
|
|
||||||
//////////////////////////////////
|
|
||||||
// utils.domData.js
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
domData: {
|
|
||||||
get (node: Element, key: string): any;
|
|
||||||
|
|
||||||
set (node: Element, key: string, value: any): void;
|
|
||||||
|
|
||||||
getAll(node: Element, createIfNotFound: boolean): any;
|
|
||||||
|
|
||||||
clear(node: Element): boolean;
|
|
||||||
};
|
|
||||||
|
|
||||||
//////////////////////////////////
|
|
||||||
// utils.domNodeDisposal.js
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
domNodeDisposal: {
|
|
||||||
addDisposeCallback(node: Element, callback: Function): void;
|
|
||||||
|
|
||||||
removeDisposeCallback(node: Element, callback: Function): void;
|
|
||||||
|
|
||||||
cleanNode(node: Node): Element;
|
|
||||||
|
|
||||||
removeNode(node: Node): void;
|
|
||||||
};
|
|
||||||
|
|
||||||
addOrRemoveItem<T>(array: T[] | KnockoutObservable<T>, value: T, included: T): void;
|
|
||||||
|
|
||||||
arrayFilter<T>(array: T[], predicate: (item: T) => boolean): T[];
|
|
||||||
|
|
||||||
arrayFirst<T>(array: T[], predicate: (item: T) => boolean, predicateOwner?: any): T;
|
|
||||||
|
|
||||||
arrayForEach<T>(array: T[], action: (item: T, index: number) => void): void;
|
|
||||||
|
|
||||||
arrayGetDistinctValues<T>(array: T[]): T[];
|
|
||||||
|
|
||||||
arrayIndexOf<T>(array: T[], item: T): number;
|
|
||||||
|
|
||||||
arrayMap<T, U>(array: T[], mapping: (item: T) => U): U[];
|
|
||||||
|
|
||||||
arrayPushAll<T>(array: T[] | KnockoutObservableArray<T>, valuesToPush: T[]): T[];
|
|
||||||
|
|
||||||
arrayRemoveItem(array: any[], itemToRemove: any): void;
|
|
||||||
|
|
||||||
compareArrays<T>(a: T[], b: T[]): Array<KnockoutArrayChange<T>>;
|
|
||||||
|
|
||||||
extend(target: Object, source: Object): Object;
|
|
||||||
|
|
||||||
fieldsIncludedWithJsonPost: any[];
|
|
||||||
|
|
||||||
getFormFields(form: any, fieldName: string): any[];
|
|
||||||
|
|
||||||
objectForEach(obj: any, action: (key: any, value: any) => void): void;
|
|
||||||
|
|
||||||
parseHtmlFragment(html: string): any[];
|
|
||||||
|
|
||||||
parseJson(jsonString: string): any;
|
|
||||||
|
|
||||||
postJson(urlOrForm: any, data: any, options: any): void;
|
|
||||||
|
|
||||||
peekObservable<T>(value: KnockoutObservable<T>): T;
|
|
||||||
|
|
||||||
range(min: any, max: any): any;
|
|
||||||
|
|
||||||
registerEventHandler(element: any, eventType: any, handler: Function): void;
|
|
||||||
|
|
||||||
setHtml(node: Element, html: () => string): void;
|
|
||||||
|
|
||||||
setHtml(node: Element, html: string): void;
|
|
||||||
|
|
||||||
setTextContent(element: any, textContent: string | KnockoutObservable<string>): void;
|
|
||||||
|
|
||||||
stringifyJson(data: any, replacer?: Function, space?: string): string;
|
|
||||||
|
|
||||||
toggleDomNodeCssClass(node: any, className: string, shouldHaveClass: boolean): void;
|
|
||||||
|
|
||||||
triggerEvent(element: any, eventType: any): void;
|
|
||||||
|
|
||||||
unwrapObservable<T>(value: KnockoutObservable<T> | T): T;
|
|
||||||
|
|
||||||
// NOT PART OF THE MINIFIED API SURFACE (ONLY IN knockout-{version}.debug.js) https://github.com/SteveSanderson/knockout/issues/670
|
|
||||||
// forceRefresh(node: any): void;
|
|
||||||
// ieVersion: number;
|
|
||||||
// isIe6: boolean;
|
|
||||||
// isIe7: boolean;
|
|
||||||
// jQueryHtmlParse(html: string): any[];
|
|
||||||
// makeArray(arrayLikeObject: any): any[];
|
|
||||||
// moveCleanedNodesToContainerElement(nodes: any[]): HTMLElement;
|
|
||||||
// replaceDomNodes(nodeToReplaceOrNodeArray: any, newNodesArray: any[]): void;
|
|
||||||
// setDomNodeChildren(domNode: any, childNodes: any[]): void;
|
|
||||||
// setElementName(element: any, name: string): void;
|
|
||||||
// setOptionNodeSelectionState(optionNode: any, isSelected: boolean): void;
|
|
||||||
// simpleHtmlParse(html: string): any[];
|
|
||||||
// stringStartsWith(str: string, startsWith: string): boolean;
|
|
||||||
// stringTokenize(str: string, delimiter: string): string[];
|
|
||||||
// stringTrim(str: string): string;
|
|
||||||
// tagNameLower(element: any): string;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutArrayChange<T> {
|
|
||||||
status: string;
|
|
||||||
value: T;
|
|
||||||
index: number;
|
|
||||||
moved?: number;
|
|
||||||
}
|
|
||||||
|
|
||||||
//////////////////////////////////
|
|
||||||
// templateSources.js
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
interface KnockoutTemplateSourcesDomElement {
|
|
||||||
text(): any;
|
|
||||||
text(value: any): void;
|
|
||||||
|
|
||||||
data(key: string): any;
|
|
||||||
data(key: string, value: any): any;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutTemplateAnonymous extends KnockoutTemplateSourcesDomElement {
|
|
||||||
nodes(): any;
|
|
||||||
nodes(value: any): void;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutTemplateSources {
|
|
||||||
|
|
||||||
domElement: {
|
|
||||||
prototype: KnockoutTemplateSourcesDomElement
|
|
||||||
new (element: Element): KnockoutTemplateSourcesDomElement
|
|
||||||
};
|
|
||||||
|
|
||||||
anonymousTemplate: {
|
|
||||||
prototype: KnockoutTemplateAnonymous;
|
|
||||||
new (element: Element): KnockoutTemplateAnonymous;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
//////////////////////////////////
|
|
||||||
// nativeTemplateEngine.js
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
interface KnockoutNativeTemplateEngine {
|
|
||||||
|
|
||||||
renderTemplateSource(templateSource: Object, bindingContext?: KnockoutBindingContext, options?: Object): any[];
|
|
||||||
}
|
|
||||||
|
|
||||||
//////////////////////////////////
|
|
||||||
// templateEngine.js
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
interface KnockoutTemplateEngine extends KnockoutNativeTemplateEngine {
|
|
||||||
|
|
||||||
createJavaScriptEvaluatorBlock(script: string): string;
|
|
||||||
|
|
||||||
makeTemplateSource(template: any, templateDocument?: Document): any;
|
|
||||||
|
|
||||||
renderTemplate(template: any, bindingContext: KnockoutBindingContext, options: Object, templateDocument: Document): any;
|
|
||||||
|
|
||||||
isTemplateRewritten(template: any, templateDocument: Document): boolean;
|
|
||||||
|
|
||||||
rewriteTemplate(template: any, rewriterCallback: Function, templateDocument: Document): void;
|
|
||||||
}
|
|
||||||
|
|
||||||
/////////////////////////////////
|
|
||||||
|
|
||||||
interface KnockoutStatic {
|
|
||||||
utils: KnockoutUtils;
|
|
||||||
memoization: KnockoutMemoization;
|
|
||||||
|
|
||||||
bindingHandlers: KnockoutBindingHandlers;
|
|
||||||
getBindingHandler(handler: string): KnockoutBindingHandler;
|
|
||||||
|
|
||||||
virtualElements: KnockoutVirtualElements;
|
|
||||||
extenders: KnockoutExtenders;
|
|
||||||
|
|
||||||
applyBindings(viewModelOrBindingContext?: any, rootNode?: any): void;
|
|
||||||
applyBindingsToDescendants(viewModelOrBindingContext: any, rootNode: any): void;
|
|
||||||
applyBindingAccessorsToNode(node: Node, bindings: (bindingContext: KnockoutBindingContext, node: Node) => {}, bindingContext: KnockoutBindingContext): void;
|
|
||||||
applyBindingAccessorsToNode(node: Node, bindings: {}, bindingContext: KnockoutBindingContext): void;
|
|
||||||
applyBindingAccessorsToNode(node: Node, bindings: (bindingContext: KnockoutBindingContext, node: Node) => {}, viewModel: any): void;
|
|
||||||
applyBindingAccessorsToNode(node: Node, bindings: {}, viewModel: any): void;
|
|
||||||
applyBindingsToNode(node: Node, bindings: any, viewModelOrBindingContext?: any): any;
|
|
||||||
|
|
||||||
subscribable: KnockoutSubscribableStatic;
|
|
||||||
observable: KnockoutObservableStatic;
|
|
||||||
|
|
||||||
computed: KnockoutComputedStatic;
|
|
||||||
pureComputed<T>(evaluatorFunction: () => T, context?: any): KnockoutComputed<T>;
|
|
||||||
pureComputed<T>(options: KnockoutComputedDefine<T>, context?: any): KnockoutComputed<T>;
|
|
||||||
|
|
||||||
observableArray: KnockoutObservableArrayStatic;
|
|
||||||
|
|
||||||
contextFor(node: any): any;
|
|
||||||
isSubscribable(instance: any): boolean;
|
|
||||||
toJSON(viewModel: any, replacer?: Function, space?: any): string;
|
|
||||||
toJS(viewModel: any): any;
|
|
||||||
isObservable(instance: any): boolean;
|
|
||||||
isWriteableObservable(instance: any): boolean;
|
|
||||||
isComputed(instance: any): boolean;
|
|
||||||
dataFor(node: any): any;
|
|
||||||
removeNode(node: Element): void;
|
|
||||||
cleanNode(node: Element): Element;
|
|
||||||
renderTemplate(template: Function, viewModel: any, options?: any, target?: any, renderMode?: any): any;
|
|
||||||
renderTemplate(template: string, viewModel: any, options?: any, target?: any, renderMode?: any): any;
|
|
||||||
unwrap<T>(value: KnockoutObservable<T> | T): T;
|
|
||||||
|
|
||||||
computedContext: KnockoutComputedContext;
|
|
||||||
|
|
||||||
//////////////////////////////////
|
|
||||||
// templateSources.js
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
templateSources: KnockoutTemplateSources;
|
|
||||||
|
|
||||||
//////////////////////////////////
|
|
||||||
// templateEngine.js
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
templateEngine: {
|
|
||||||
|
|
||||||
prototype: KnockoutTemplateEngine;
|
|
||||||
|
|
||||||
new (): KnockoutTemplateEngine;
|
|
||||||
};
|
|
||||||
|
|
||||||
//////////////////////////////////
|
|
||||||
// templateRewriting.js
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
templateRewriting: {
|
|
||||||
|
|
||||||
ensureTemplateIsRewritten(template: Node, templateEngine: KnockoutTemplateEngine, templateDocument: Document): any;
|
|
||||||
ensureTemplateIsRewritten(template: string, templateEngine: KnockoutTemplateEngine, templateDocument: Document): any;
|
|
||||||
|
|
||||||
memoizeBindingAttributeSyntax(htmlString: string, templateEngine: KnockoutTemplateEngine): any;
|
|
||||||
|
|
||||||
applyMemoizedBindingsToNextSibling(bindings: any, nodeName: string): string;
|
|
||||||
};
|
|
||||||
|
|
||||||
//////////////////////////////////
|
|
||||||
// nativeTemplateEngine.js
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
nativeTemplateEngine: {
|
|
||||||
|
|
||||||
prototype: KnockoutNativeTemplateEngine;
|
|
||||||
|
|
||||||
new (): KnockoutNativeTemplateEngine;
|
|
||||||
|
|
||||||
instance: KnockoutNativeTemplateEngine;
|
|
||||||
};
|
|
||||||
|
|
||||||
//////////////////////////////////
|
|
||||||
// jqueryTmplTemplateEngine.js
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
jqueryTmplTemplateEngine: {
|
|
||||||
|
|
||||||
prototype: KnockoutTemplateEngine;
|
|
||||||
|
|
||||||
renderTemplateSource(templateSource: Object, bindingContext: KnockoutBindingContext, options: Object): Node[];
|
|
||||||
|
|
||||||
createJavaScriptEvaluatorBlock(script: string): string;
|
|
||||||
|
|
||||||
addTemplate(templateName: string, templateMarkup: string): void;
|
|
||||||
};
|
|
||||||
|
|
||||||
//////////////////////////////////
|
|
||||||
// templating.js
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
setTemplateEngine(templateEngine: KnockoutNativeTemplateEngine): void;
|
|
||||||
|
|
||||||
renderTemplate(template: Function, dataOrBindingContext: KnockoutBindingContext, options: Object, targetNodeOrNodeArray: Node, renderMode: string): any;
|
|
||||||
renderTemplate(template: any, dataOrBindingContext: KnockoutBindingContext, options: Object, targetNodeOrNodeArray: Node, renderMode: string): any;
|
|
||||||
renderTemplate(template: Function, dataOrBindingContext: any, options: Object, targetNodeOrNodeArray: Node, renderMode: string): any;
|
|
||||||
renderTemplate(template: any, dataOrBindingContext: any, options: Object, targetNodeOrNodeArray: Node, renderMode: string): any;
|
|
||||||
renderTemplate(template: Function, dataOrBindingContext: KnockoutBindingContext, options: Object, targetNodeOrNodeArray: Node[], renderMode: string): any;
|
|
||||||
renderTemplate(template: any, dataOrBindingContext: KnockoutBindingContext, options: Object, targetNodeOrNodeArray: Node[], renderMode: string): any;
|
|
||||||
renderTemplate(template: Function, dataOrBindingContext: any, options: Object, targetNodeOrNodeArray: Node[], renderMode: string): any;
|
|
||||||
renderTemplate(template: any, dataOrBindingContext: any, options: Object, targetNodeOrNodeArray: Node[], renderMode: string): any;
|
|
||||||
|
|
||||||
renderTemplateForEach(template: Function, arrayOrObservableArray: any[], options: Object, targetNode: Node, parentBindingContext: KnockoutBindingContext): any;
|
|
||||||
renderTemplateForEach(template: any, arrayOrObservableArray: any[], options: Object, targetNode: Node, parentBindingContext: KnockoutBindingContext): any;
|
|
||||||
renderTemplateForEach(template: Function, arrayOrObservableArray: KnockoutObservable<any>, options: Object, targetNode: Node, parentBindingContext: KnockoutBindingContext): any;
|
|
||||||
renderTemplateForEach(template: any, arrayOrObservableArray: KnockoutObservable<any>, options: Object, targetNode: Node, parentBindingContext: KnockoutBindingContext): any;
|
|
||||||
|
|
||||||
expressionRewriting: {
|
|
||||||
bindingRewriteValidators: any;
|
|
||||||
parseObjectLiteral: { (objectLiteralString: string): any[] }
|
|
||||||
};
|
|
||||||
|
|
||||||
/////////////////////////////////
|
|
||||||
|
|
||||||
bindingProvider: {
|
|
||||||
instance: KnockoutBindingProvider;
|
|
||||||
new (): KnockoutBindingProvider;
|
|
||||||
}
|
|
||||||
|
|
||||||
/////////////////////////////////
|
|
||||||
// selectExtensions.js
|
|
||||||
/////////////////////////////////
|
|
||||||
|
|
||||||
selectExtensions: {
|
|
||||||
|
|
||||||
readValue(element: HTMLElement): any;
|
|
||||||
|
|
||||||
writeValue(element: HTMLElement, value: any): void;
|
|
||||||
};
|
|
||||||
|
|
||||||
components: KnockoutComponents;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutBindingProvider {
|
|
||||||
nodeHasBindings(node: Node): boolean;
|
|
||||||
getBindings(node: Node, bindingContext: KnockoutBindingContext): {};
|
|
||||||
getBindingAccessors?(node: Node, bindingContext: KnockoutBindingContext): { [key: string]: string; };
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutComputedContext {
|
|
||||||
getDependenciesCount(): number;
|
|
||||||
isInitial: () => boolean;
|
|
||||||
isSleeping: boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// refactored types into a namespace to reduce global pollution
|
|
||||||
// and used Union Types to simplify overloads (requires TypeScript 1.4)
|
|
||||||
//
|
|
||||||
declare module KnockoutComponentTypes {
|
|
||||||
|
|
||||||
interface Config {
|
|
||||||
viewModel?: ViewModelFunction | ViewModelSharedInstance | ViewModelFactoryFunction | AMDModule;
|
|
||||||
template: string | Node[]| DocumentFragment | TemplateElement | AMDModule;
|
|
||||||
synchronous?: boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface ComponentConfig {
|
|
||||||
viewModel?: ViewModelFunction | ViewModelSharedInstance | ViewModelFactoryFunction | AMDModule;
|
|
||||||
template: any;
|
|
||||||
createViewModel?: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface EmptyConfig {
|
|
||||||
}
|
|
||||||
|
|
||||||
// common AMD type
|
|
||||||
interface AMDModule {
|
|
||||||
require: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
// viewmodel types
|
|
||||||
interface ViewModelFunction {
|
|
||||||
(params?: any): any;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface ViewModelSharedInstance {
|
|
||||||
instance: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface ViewModelFactoryFunction {
|
|
||||||
createViewModel: (params?: any, componentInfo?: ComponentInfo) => any;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface ComponentInfo {
|
|
||||||
element: Node;
|
|
||||||
templateNodes: Node[];
|
|
||||||
}
|
|
||||||
|
|
||||||
interface TemplateElement {
|
|
||||||
element: string | Node;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface Loader {
|
|
||||||
getConfig? (componentName: string, callback: (result: ComponentConfig) => void): void;
|
|
||||||
loadComponent? (componentName: string, config: ComponentConfig, callback: (result: Definition) => void): void;
|
|
||||||
loadTemplate? (componentName: string, templateConfig: any, callback: (result: Node[]) => void): void;
|
|
||||||
loadViewModel? (componentName: string, viewModelConfig: any, callback: (result: any) => void): void;
|
|
||||||
suppressLoaderExceptions?: boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface Definition {
|
|
||||||
template: Node[];
|
|
||||||
createViewModel? (params: any, options: { element: Node; }): any;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutComponents {
|
|
||||||
// overloads for register method:
|
|
||||||
register(componentName: string, config: KnockoutComponentTypes.Config | KnockoutComponentTypes.EmptyConfig): void;
|
|
||||||
|
|
||||||
isRegistered(componentName: string): boolean;
|
|
||||||
unregister(componentName: string): void;
|
|
||||||
get(componentName: string, callback: (definition: KnockoutComponentTypes.Definition) => void): void;
|
|
||||||
clearCachedDefinition(componentName: string): void
|
|
||||||
defaultLoader: KnockoutComponentTypes.Loader;
|
|
||||||
loaders: KnockoutComponentTypes.Loader[];
|
|
||||||
getComponentNameForNode(node: Node): string;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare var ko: KnockoutStatic;
|
|
||||||
|
|
||||||
declare module "knockout" {
|
|
||||||
export = ko;
|
|
||||||
}
|
|
|
@ -1,3 +0,0 @@
|
||||||
/// <reference path="@ms/odsp.d.ts" />
|
|
||||||
/// <reference path="assertion-error/assertion-error.d.ts" />
|
|
||||||
/// <reference path="knockout/knockout.d.ts" />
|
|
|
@ -1,25 +0,0 @@
|
||||||
# EditorConfig helps developers define and maintain consistent
|
|
||||||
# coding styles between different editors and IDEs
|
|
||||||
# editorconfig.org
|
|
||||||
|
|
||||||
root = true
|
|
||||||
|
|
||||||
|
|
||||||
[*]
|
|
||||||
|
|
||||||
# change these settings to your own preference
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 2
|
|
||||||
|
|
||||||
# we recommend you to keep these unchanged
|
|
||||||
end_of_line = lf
|
|
||||||
charset = utf-8
|
|
||||||
trim_trailing_whitespace = true
|
|
||||||
insert_final_newline = true
|
|
||||||
|
|
||||||
[*.md]
|
|
||||||
trim_trailing_whitespace = false
|
|
||||||
|
|
||||||
[{package,bower}.json]
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 2
|
|
|
@ -1 +0,0 @@
|
||||||
* text=auto
|
|
|
@ -1,32 +0,0 @@
|
||||||
# Logs
|
|
||||||
logs
|
|
||||||
*.log
|
|
||||||
npm-debug.log*
|
|
||||||
|
|
||||||
# Dependency directories
|
|
||||||
node_modules
|
|
||||||
|
|
||||||
# Build generated files
|
|
||||||
dist
|
|
||||||
lib
|
|
||||||
solution
|
|
||||||
temp
|
|
||||||
*.sppkg
|
|
||||||
|
|
||||||
# Coverage directory used by tools like istanbul
|
|
||||||
coverage
|
|
||||||
|
|
||||||
# OSX
|
|
||||||
.DS_Store
|
|
||||||
|
|
||||||
# Visual Studio files
|
|
||||||
.ntvs_analysis.dat
|
|
||||||
.vs
|
|
||||||
bin
|
|
||||||
obj
|
|
||||||
|
|
||||||
# Resx Generated Code
|
|
||||||
*.resx.ts
|
|
||||||
|
|
||||||
# Styles Generated Code
|
|
||||||
*.scss.ts
|
|
|
@ -1,14 +0,0 @@
|
||||||
# Folders
|
|
||||||
.vscode
|
|
||||||
coverage
|
|
||||||
node_modules
|
|
||||||
sharepoint
|
|
||||||
src
|
|
||||||
temp
|
|
||||||
|
|
||||||
# Files
|
|
||||||
*.csproj
|
|
||||||
.git*
|
|
||||||
.yo-rc.json
|
|
||||||
gulpfile.js
|
|
||||||
tsconfig.json
|
|
|
@ -1,3 +0,0 @@
|
||||||
{
|
|
||||||
"vsicons.presets.angular": false
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
{
|
|
||||||
"@microsoft/generator-sharepoint": {
|
|
||||||
"libraryName": "helloworld-webpart",
|
|
||||||
"libraryId": "59983e63-0fda-46d5-8736-053627a2f110",
|
|
||||||
"framework": "none"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,26 +0,0 @@
|
||||||
## helloworld-webpart
|
|
||||||
|
|
||||||
This is where you include your web part docs.
|
|
||||||
|
|
||||||
### Building the code
|
|
||||||
|
|
||||||
```bash
|
|
||||||
git clone the repo
|
|
||||||
npm i
|
|
||||||
npm i -g gulp
|
|
||||||
gulp
|
|
||||||
```
|
|
||||||
|
|
||||||
This package produces the following:
|
|
||||||
|
|
||||||
* lib/* commonjs components - this allows this package to be reused from other packages.
|
|
||||||
* dist/* - a single bundle containing the components used for uploading to a cdn pointing a registered Sharepoint webpart library to.
|
|
||||||
* example/* a test page that hosts all components in this package.
|
|
||||||
|
|
||||||
### Build options
|
|
||||||
|
|
||||||
gulp clean - TODO
|
|
||||||
gulp test - TODO
|
|
||||||
gulp watch - TODO
|
|
||||||
gulp build - TODO
|
|
||||||
gulp deploy - TODO
|
|
|
@ -1,13 +0,0 @@
|
||||||
{
|
|
||||||
"entries": [
|
|
||||||
{
|
|
||||||
"entry": "./lib/webparts/helloWorld/HelloWorldWebPart.js",
|
|
||||||
"manifest": "./src/webparts/helloWorld/HelloWorldWebPart.manifest.json",
|
|
||||||
"outputPath": "./dist/hello-world.bundle.js"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"externals": {},
|
|
||||||
"localizedResources": {
|
|
||||||
"helloWorldStrings": "webparts/helloWorld/loc/{locale}.js"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,6 +0,0 @@
|
||||||
{
|
|
||||||
"workingDir": "./temp/deploy/",
|
|
||||||
"account": "<!-- STORAGE ACCOUNT NAME -->",
|
|
||||||
"container": "helloworld-webpart",
|
|
||||||
"accessKey": "<!-- ACCESS KEY -->"
|
|
||||||
}
|
|
|
@ -1,10 +0,0 @@
|
||||||
{
|
|
||||||
"solution": {
|
|
||||||
"name": "helloworld-webpart-client-side-solution",
|
|
||||||
"id": "59983e63-0fda-46d5-8736-053627a2f110",
|
|
||||||
"version": "1.0.0.0"
|
|
||||||
},
|
|
||||||
"paths": {
|
|
||||||
"zippedPackage": "solution/helloworld-webpart.sppkg"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,3 +0,0 @@
|
||||||
{
|
|
||||||
"deployCdnPath": "temp/deploy"
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
{
|
|
||||||
"port": 4321,
|
|
||||||
"initialPage": "https://localhost:5432/workbench",
|
|
||||||
"https": true,
|
|
||||||
"api": {
|
|
||||||
"port": 5432,
|
|
||||||
"entryPath": "node_modules/@microsoft/sp-webpart-workbench/lib/api/"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,50 +0,0 @@
|
||||||
{
|
|
||||||
// Display errors as warnings
|
|
||||||
"displayAsWarning": true,
|
|
||||||
// The TSLint task may have been configured with several custom lint rules
|
|
||||||
// before this config file is read (for example lint rules from the tslint-microsoft-contrib
|
|
||||||
// project). If true, this flag will deactivate any of these rules.
|
|
||||||
"removeExistingRules": true,
|
|
||||||
// When true, the TSLint task is configured with some default TSLint "rules.":
|
|
||||||
"useDefaultConfigAsBase": false,
|
|
||||||
// Since removeExistingRules=true and useDefaultConfigAsBase=false, there will be no lint rules
|
|
||||||
// which are active, other than the list of rules below.
|
|
||||||
"lintConfig": {
|
|
||||||
// Opt-in to Lint rules which help to eliminate bugs in JavaScript
|
|
||||||
"rules": {
|
|
||||||
"class-name": false,
|
|
||||||
"export-name": false,
|
|
||||||
"forin": false,
|
|
||||||
"label-position": false,
|
|
||||||
"label-undefined": false,
|
|
||||||
"member-access": true,
|
|
||||||
"no-arg": false,
|
|
||||||
"no-console": false,
|
|
||||||
"no-construct": false,
|
|
||||||
"no-duplicate-case": true,
|
|
||||||
"no-duplicate-key": false,
|
|
||||||
"no-duplicate-variable": true,
|
|
||||||
"no-eval": false,
|
|
||||||
"no-function-expression": true,
|
|
||||||
"no-internal-module": true,
|
|
||||||
"no-shadowed-variable": true,
|
|
||||||
"no-switch-case-fall-through": true,
|
|
||||||
"no-unnecessary-semicolons": true,
|
|
||||||
"no-unused-expression": true,
|
|
||||||
"no-unused-imports": true,
|
|
||||||
"no-unused-variable": true,
|
|
||||||
"no-unreachable": true,
|
|
||||||
"no-use-before-declare": true,
|
|
||||||
"no-with-statement": true,
|
|
||||||
"semicolon": true,
|
|
||||||
"trailing-comma": false,
|
|
||||||
"typedef": false,
|
|
||||||
"typedef-whitespace": false,
|
|
||||||
"use-named-parameter": true,
|
|
||||||
"valid-typeof": true,
|
|
||||||
"variable-name": false,
|
|
||||||
"whitespace": false,
|
|
||||||
"prefer-const": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,3 +0,0 @@
|
||||||
{
|
|
||||||
"cdnBasePath": "<!-- PATH TO CDN -->"
|
|
||||||
}
|
|
|
@ -1,6 +0,0 @@
|
||||||
'use strict';
|
|
||||||
|
|
||||||
const gulp = require('gulp');
|
|
||||||
const build = require('@microsoft/sp-build-web');
|
|
||||||
|
|
||||||
build.initialize(gulp);
|
|
|
@ -1,29 +0,0 @@
|
||||||
{
|
|
||||||
"name": "helloworld-webpart",
|
|
||||||
"version": "0.0.1",
|
|
||||||
"private": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.10.0"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"@microsoft/sp-client-base": "~0.7.0",
|
|
||||||
"@microsoft/sp-client-preview": "~0.9.0",
|
|
||||||
"@microsoft/sp-core-library": "~0.1.2",
|
|
||||||
"@microsoft/sp-webpart-base": "~0.4.0",
|
|
||||||
"@types/lodash": "^4.14.50",
|
|
||||||
"@types/webpack-env": ">=1.12.1 <1.14.0"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"@microsoft/sp-build-web": "~0.9.0",
|
|
||||||
"@microsoft/sp-module-interfaces": "~0.7.0",
|
|
||||||
"@microsoft/sp-webpart-workbench": "~0.8.0",
|
|
||||||
"gulp": "~3.9.1",
|
|
||||||
"@types/chai": ">=3.4.34 <3.6.0",
|
|
||||||
"@types/mocha": ">=2.2.33 <2.6.0"
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"build": "gulp bundle",
|
|
||||||
"clean": "gulp clean",
|
|
||||||
"test": "gulp test"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,5 +0,0 @@
|
||||||
var context = require.context('.', true, /.+\.test\.js?$/);
|
|
||||||
|
|
||||||
context.keys().forEach(context);
|
|
||||||
|
|
||||||
module.exports = context;
|
|
|
@ -1,39 +0,0 @@
|
||||||
@import "~/office-ui-fabric-react/dist/sass/Fabric.Common";
|
|
||||||
|
|
||||||
.row {
|
|
||||||
@include ms-Grid-row;
|
|
||||||
@include ms-bgColor-themeDark;
|
|
||||||
@include ms-fontColor-white;
|
|
||||||
|
|
||||||
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2), 0 25px 50px 0 rgba(0, 0, 0, 0.1);
|
|
||||||
max-width: 700px;
|
|
||||||
margin: 0 auto;
|
|
||||||
padding: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.column {
|
|
||||||
@include ms-Grid-col;
|
|
||||||
@include ms-u-lg10;
|
|
||||||
@include ms-u-xl8;
|
|
||||||
@include ms-u-lgPush1;
|
|
||||||
@include ms-u-xlPush2;
|
|
||||||
}
|
|
||||||
|
|
||||||
.title {
|
|
||||||
@include ms-font-xl;
|
|
||||||
@include ms-fontColor-white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.subtitle {
|
|
||||||
@include ms-font-l;
|
|
||||||
@include ms-fontColor-white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.description {
|
|
||||||
@include ms-font-l;
|
|
||||||
@include ms-fontColor-white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.button {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
|
@ -1,24 +0,0 @@
|
||||||
{
|
|
||||||
"$schema": "../../../node_modules/@microsoft/sp-module-interfaces/lib/manifestSchemas/jsonSchemas/clientSideComponentManifestSchema.json",
|
|
||||||
|
|
||||||
"id": "025133ad-e22f-4aa1-8418-1c68597665f1",
|
|
||||||
"alias": "HelloWorldWebPart",
|
|
||||||
"componentType": "WebPart",
|
|
||||||
"version": "0.0.1",
|
|
||||||
"manifestVersion": 2,
|
|
||||||
|
|
||||||
"preconfiguredEntries": [{
|
|
||||||
"groupId": "025133ad-e22f-4aa1-8418-1c68597665f1",
|
|
||||||
"group": { "default": "Under Development" },
|
|
||||||
"title": { "default": "HelloWorld" },
|
|
||||||
"description": { "default": "HelloWorld description" },
|
|
||||||
"officeFabricIconFontName": "Page",
|
|
||||||
"properties": {
|
|
||||||
"description": "HelloWorld",
|
|
||||||
"test": "Multi-line text field",
|
|
||||||
"test1": true,
|
|
||||||
"test2": "2",
|
|
||||||
"test3": true
|
|
||||||
}
|
|
||||||
}]
|
|
||||||
}
|
|
|
@ -1,88 +0,0 @@
|
||||||
import { Version } from '@microsoft/sp-core-library';
|
|
||||||
import {
|
|
||||||
BaseClientSideWebPart,
|
|
||||||
IPropertyPaneConfiguration,
|
|
||||||
PropertyPaneTextField,
|
|
||||||
PropertyPaneCheckbox,
|
|
||||||
PropertyPaneDropdown,
|
|
||||||
PropertyPaneToggle
|
|
||||||
} from '@microsoft/sp-webpart-base';
|
|
||||||
|
|
||||||
import { escape } from '@microsoft/sp-lodash-subset';
|
|
||||||
|
|
||||||
import styles from './HelloWorld.module.scss';
|
|
||||||
import * as strings from 'helloWorldStrings';
|
|
||||||
import { IHelloWorldWebPartProps } from './IHelloWorldWebPartProps';
|
|
||||||
|
|
||||||
export default class HelloWorldWebPart extends BaseClientSideWebPart<IHelloWorldWebPartProps> {
|
|
||||||
|
|
||||||
public render(): void {
|
|
||||||
this.domElement.innerHTML = `
|
|
||||||
<div class="${styles.row}">
|
|
||||||
<div class="${styles.column}">
|
|
||||||
<span class="${styles.title}">
|
|
||||||
Welcome to SharePoint!
|
|
||||||
</span>
|
|
||||||
<p class="${styles.subtitle}">
|
|
||||||
Customize SharePoint experiences using Web Parts.
|
|
||||||
</p>
|
|
||||||
<p class="${styles.description}">
|
|
||||||
${escape(this.properties.description)}
|
|
||||||
</p>
|
|
||||||
<p class="ms-font-l ms-fontColor-white">${escape(this.properties.test)}</p>
|
|
||||||
<a class="ms-Button ${styles.button}" href="https://github.com/SharePoint/sp-dev-docs/wiki">
|
|
||||||
<span class="ms-Button-label">
|
|
||||||
Learn more
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>`;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected get dataVersion(): Version {
|
|
||||||
return Version.parse('1.0');
|
|
||||||
}
|
|
||||||
|
|
||||||
protected getPropertyPaneConfiguration(): IPropertyPaneConfiguration {
|
|
||||||
return {
|
|
||||||
pages: [
|
|
||||||
{
|
|
||||||
header: {
|
|
||||||
description: strings.PropertyPaneDescription
|
|
||||||
},
|
|
||||||
groups: [
|
|
||||||
{
|
|
||||||
groupName: strings.BasicGroupName,
|
|
||||||
groupFields: [
|
|
||||||
PropertyPaneTextField('description', {
|
|
||||||
label: 'Description'
|
|
||||||
}),
|
|
||||||
PropertyPaneTextField('test', {
|
|
||||||
label: 'Multi-line Text Field',
|
|
||||||
multiline: true
|
|
||||||
}),
|
|
||||||
PropertyPaneCheckbox('test1', {
|
|
||||||
text: 'Checkbox'
|
|
||||||
}),
|
|
||||||
PropertyPaneDropdown('test2', {
|
|
||||||
label: 'Dropdown',
|
|
||||||
options: [
|
|
||||||
{ key: '1', text: 'One' },
|
|
||||||
{ key: '2', text: 'Two' },
|
|
||||||
{ key: '3', text: 'Three' },
|
|
||||||
{ key: '4', text: 'Four' }
|
|
||||||
]
|
|
||||||
}),
|
|
||||||
PropertyPaneToggle('test3', {
|
|
||||||
label: 'Toggle',
|
|
||||||
onText: 'On',
|
|
||||||
offText: 'Off'
|
|
||||||
})
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
export interface IHelloWorldWebPartProps {
|
|
||||||
description: string;
|
|
||||||
test: string;
|
|
||||||
test1: boolean;
|
|
||||||
test2: string;
|
|
||||||
test3: boolean;
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
define([], function() {
|
|
||||||
return {
|
|
||||||
"PropertyPaneDescription": "Description",
|
|
||||||
"BasicGroupName": "Group Name",
|
|
||||||
"DescriptionFieldLabel": "Description Field"
|
|
||||||
}
|
|
||||||
});
|
|
|
@ -1,10 +0,0 @@
|
||||||
declare interface IHelloWorldStrings {
|
|
||||||
PropertyPaneDescription: string;
|
|
||||||
BasicGroupName: string;
|
|
||||||
DescriptionFieldLabel: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'helloWorldStrings' {
|
|
||||||
const strings: IHelloWorldStrings;
|
|
||||||
export = strings;
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
/// <reference types="mocha" />
|
|
||||||
|
|
||||||
import { assert } from 'chai';
|
|
||||||
|
|
||||||
describe('HelloWorldWebPart', () => {
|
|
||||||
it('should do something', () => {
|
|
||||||
assert.ok(true);
|
|
||||||
});
|
|
||||||
});
|
|
|
@ -1,13 +0,0 @@
|
||||||
{
|
|
||||||
"compilerOptions": {
|
|
||||||
"target": "es5",
|
|
||||||
"forceConsistentCasingInFileNames": true,
|
|
||||||
"module": "commonjs",
|
|
||||||
"jsx": "react",
|
|
||||||
"declaration": true,
|
|
||||||
"sourceMap": true,
|
|
||||||
"types": [
|
|
||||||
"webpack-env"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,5 +0,0 @@
|
||||||
// Type definitions for Microsoft ODSP projects
|
|
||||||
// Project: ODSP
|
|
||||||
|
|
||||||
/* Global definition for UNIT_TEST builds */
|
|
||||||
declare const UNIT_TEST: boolean;
|
|
|
@ -1,15 +0,0 @@
|
||||||
// Type definitions for assertion-error 1.0.0
|
|
||||||
// Project: https://github.com/chaijs/assertion-error
|
|
||||||
// Definitions by: Bart van der Schoor <https://github.com/Bartvds>
|
|
||||||
// Definitions: https://github.com/borisyankov/DefinitelyTyped
|
|
||||||
|
|
||||||
declare module 'assertion-error' {
|
|
||||||
class AssertionError implements Error {
|
|
||||||
constructor(message: string, props?: any, ssf?: Function);
|
|
||||||
name: string;
|
|
||||||
message: string;
|
|
||||||
showDiff: boolean;
|
|
||||||
stack: string;
|
|
||||||
}
|
|
||||||
export = AssertionError;
|
|
||||||
}
|
|
|
@ -1,631 +0,0 @@
|
||||||
// Type definitions for Knockout v3.2.0
|
|
||||||
// Project: http://knockoutjs.com
|
|
||||||
// Definitions by: Boris Yankov <https://github.com/borisyankov/>, Igor Oleinikov <https://github.com/Igorbek/>, Clément Bourgeois <https://github.com/moonpyk/>
|
|
||||||
// Definitions: https://github.com/borisyankov/DefinitelyTyped
|
|
||||||
|
|
||||||
|
|
||||||
interface KnockoutSubscribableFunctions<T> {
|
|
||||||
[key: string]: KnockoutBindingHandler;
|
|
||||||
|
|
||||||
notifySubscribers(valueToWrite?: T, event?: string): void;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutComputedFunctions<T> {
|
|
||||||
[key: string]: KnockoutBindingHandler;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutObservableFunctions<T> {
|
|
||||||
[key: string]: KnockoutBindingHandler;
|
|
||||||
|
|
||||||
equalityComparer(a: any, b: any): boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutObservableArrayFunctions<T> {
|
|
||||||
// General Array functions
|
|
||||||
indexOf(searchElement: T, fromIndex?: number): number;
|
|
||||||
slice(start: number, end?: number): T[];
|
|
||||||
splice(start: number): T[];
|
|
||||||
splice(start: number, deleteCount: number, ...items: T[]): T[];
|
|
||||||
pop(): T;
|
|
||||||
push(...items: T[]): void;
|
|
||||||
shift(): T;
|
|
||||||
unshift(...items: T[]): number;
|
|
||||||
reverse(): KnockoutObservableArray<T>;
|
|
||||||
sort(): KnockoutObservableArray<T>;
|
|
||||||
sort(compareFunction: (left: T, right: T) => number): KnockoutObservableArray<T>;
|
|
||||||
|
|
||||||
// Ko specific
|
|
||||||
[key: string]: KnockoutBindingHandler;
|
|
||||||
|
|
||||||
replace(oldItem: T, newItem: T): void;
|
|
||||||
|
|
||||||
remove(item: T): T[];
|
|
||||||
remove(removeFunction: (item: T) => boolean): T[];
|
|
||||||
removeAll(items: T[]): T[];
|
|
||||||
removeAll(): T[];
|
|
||||||
|
|
||||||
destroy(item: T): void;
|
|
||||||
destroy(destroyFunction: (item: T) => boolean): void;
|
|
||||||
destroyAll(items: T[]): void;
|
|
||||||
destroyAll(): void;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutSubscribableStatic {
|
|
||||||
fn: KnockoutSubscribableFunctions<any>;
|
|
||||||
|
|
||||||
new <T>(): KnockoutSubscribable<T>;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutSubscription {
|
|
||||||
dispose(): void;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutSubscribable<T> extends KnockoutSubscribableFunctions<T> {
|
|
||||||
subscribe(callback: (newValue: T) => void, target?: any, event?: string): KnockoutSubscription;
|
|
||||||
subscribe<TEvent>(callback: (newValue: TEvent) => void, target: any, event: string): KnockoutSubscription;
|
|
||||||
extend(requestedExtenders: { [key: string]: any; }): KnockoutSubscribable<T>;
|
|
||||||
getSubscriptionsCount(): number;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutComputedStatic {
|
|
||||||
fn: KnockoutComputedFunctions<any>;
|
|
||||||
|
|
||||||
<T>(): KnockoutComputed<T>;
|
|
||||||
<T>(func: () => T, context?: any, options?: any): KnockoutComputed<T>;
|
|
||||||
<T>(def: KnockoutComputedDefine<T>, context?: any): KnockoutComputed<T>;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutComputed<T> extends KnockoutObservable<T>, KnockoutComputedFunctions<T> {
|
|
||||||
fn: KnockoutComputedFunctions<any>;
|
|
||||||
|
|
||||||
dispose(): void;
|
|
||||||
isActive(): boolean;
|
|
||||||
getDependenciesCount(): number;
|
|
||||||
extend(requestedExtenders: { [key: string]: any; }): KnockoutComputed<T>;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutObservableArrayStatic {
|
|
||||||
fn: KnockoutObservableArrayFunctions<any>;
|
|
||||||
|
|
||||||
<T>(value?: T[]): KnockoutObservableArray<T>;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutObservableArray<T> extends KnockoutObservable<T[]>, KnockoutObservableArrayFunctions<T> {
|
|
||||||
extend(requestedExtenders: { [key: string]: any; }): KnockoutObservableArray<T>;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutObservableStatic {
|
|
||||||
fn: KnockoutObservableFunctions<any>;
|
|
||||||
|
|
||||||
<T>(value?: T): KnockoutObservable<T>;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutObservable<T> extends KnockoutSubscribable<T>, KnockoutObservableFunctions<T> {
|
|
||||||
(): T;
|
|
||||||
(value: T): void;
|
|
||||||
|
|
||||||
peek(): T;
|
|
||||||
valueHasMutated?:{(): void;};
|
|
||||||
valueWillMutate?:{(): void;};
|
|
||||||
extend(requestedExtenders: { [key: string]: any; }): KnockoutObservable<T>;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutComputedDefine<T> {
|
|
||||||
read(): T;
|
|
||||||
write? (value: T): void;
|
|
||||||
disposeWhenNodeIsRemoved?: Node;
|
|
||||||
disposeWhen? (): boolean;
|
|
||||||
owner?: any;
|
|
||||||
deferEvaluation?: boolean;
|
|
||||||
pure?: boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutBindingContext {
|
|
||||||
$parent: any;
|
|
||||||
$parents: any[];
|
|
||||||
$root: any;
|
|
||||||
$data: any;
|
|
||||||
$rawData: any | KnockoutObservable<any>;
|
|
||||||
$index?: KnockoutObservable<number>;
|
|
||||||
$parentContext?: KnockoutBindingContext;
|
|
||||||
$component: any;
|
|
||||||
$componentTemplateNodes: Node[];
|
|
||||||
|
|
||||||
extend(properties: any): any;
|
|
||||||
createChildContext(dataItemOrAccessor: any, dataItemAlias?: any, extendCallback?: Function): any;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutAllBindingsAccessor {
|
|
||||||
(): any;
|
|
||||||
get(name: string): any;
|
|
||||||
has(name: string): boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutBindingHandler {
|
|
||||||
after?: Array<string>;
|
|
||||||
init?: (element: any, valueAccessor: () => any, allBindingsAccessor?: KnockoutAllBindingsAccessor, viewModel?: any, bindingContext?: KnockoutBindingContext) => void | { controlsDescendantBindings: boolean; };
|
|
||||||
update?: (element: any, valueAccessor: () => any, allBindingsAccessor?: KnockoutAllBindingsAccessor, viewModel?: any, bindingContext?: KnockoutBindingContext) => void;
|
|
||||||
options?: any;
|
|
||||||
preprocess?: (value: string, name: string, addBindingCallback?: (name: string, value: string) => void) => string;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutBindingHandlers {
|
|
||||||
[bindingHandler: string]: KnockoutBindingHandler;
|
|
||||||
|
|
||||||
// Controlling text and appearance
|
|
||||||
visible: KnockoutBindingHandler;
|
|
||||||
text: KnockoutBindingHandler;
|
|
||||||
html: KnockoutBindingHandler;
|
|
||||||
css: KnockoutBindingHandler;
|
|
||||||
style: KnockoutBindingHandler;
|
|
||||||
attr: KnockoutBindingHandler;
|
|
||||||
|
|
||||||
// Control Flow
|
|
||||||
foreach: KnockoutBindingHandler;
|
|
||||||
if: KnockoutBindingHandler;
|
|
||||||
ifnot: KnockoutBindingHandler;
|
|
||||||
with: KnockoutBindingHandler;
|
|
||||||
|
|
||||||
// Working with form fields
|
|
||||||
click: KnockoutBindingHandler;
|
|
||||||
event: KnockoutBindingHandler;
|
|
||||||
submit: KnockoutBindingHandler;
|
|
||||||
enable: KnockoutBindingHandler;
|
|
||||||
disable: KnockoutBindingHandler;
|
|
||||||
value: KnockoutBindingHandler;
|
|
||||||
textInput: KnockoutBindingHandler;
|
|
||||||
hasfocus: KnockoutBindingHandler;
|
|
||||||
checked: KnockoutBindingHandler;
|
|
||||||
options: KnockoutBindingHandler;
|
|
||||||
selectedOptions: KnockoutBindingHandler;
|
|
||||||
uniqueName: KnockoutBindingHandler;
|
|
||||||
|
|
||||||
// Rendering templates
|
|
||||||
template: KnockoutBindingHandler;
|
|
||||||
|
|
||||||
// Components (new for v3.2)
|
|
||||||
component: KnockoutBindingHandler;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutMemoization {
|
|
||||||
memoize(callback: () => string): string;
|
|
||||||
unmemoize(memoId: string, callbackParams: any[]): boolean;
|
|
||||||
unmemoizeDomNodeAndDescendants(domNode: any, extraCallbackParamsArray: any[]): boolean;
|
|
||||||
parseMemoText(memoText: string): string;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutVirtualElement {}
|
|
||||||
|
|
||||||
interface KnockoutVirtualElements {
|
|
||||||
allowedBindings: { [bindingName: string]: boolean; };
|
|
||||||
emptyNode(node: KnockoutVirtualElement ): void;
|
|
||||||
firstChild(node: KnockoutVirtualElement ): KnockoutVirtualElement;
|
|
||||||
insertAfter( container: KnockoutVirtualElement, nodeToInsert: Node, insertAfter: Node ): void;
|
|
||||||
nextSibling(node: KnockoutVirtualElement): Node;
|
|
||||||
prepend(node: KnockoutVirtualElement, toInsert: Node ): void;
|
|
||||||
setDomNodeChildren(node: KnockoutVirtualElement, newChildren: { length: number;[index: number]: Node; } ): void;
|
|
||||||
childNodes(node: KnockoutVirtualElement ): Node[];
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutExtenders {
|
|
||||||
throttle(target: any, timeout: number): KnockoutComputed<any>;
|
|
||||||
notify(target: any, notifyWhen: string): any;
|
|
||||||
|
|
||||||
rateLimit(target: any, timeout: number): any;
|
|
||||||
rateLimit(target: any, options: { timeout: number; method?: string; }): any;
|
|
||||||
|
|
||||||
trackArrayChanges(target: any): any;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// NOTE TO MAINTAINERS AND CONTRIBUTORS : pay attention to only include symbols that are
|
|
||||||
// publicly exported in the minified version of ko, without that you can give the false
|
|
||||||
// impression that some functions will be available in production builds.
|
|
||||||
//
|
|
||||||
interface KnockoutUtils {
|
|
||||||
//////////////////////////////////
|
|
||||||
// utils.domData.js
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
domData: {
|
|
||||||
get (node: Element, key: string): any;
|
|
||||||
|
|
||||||
set (node: Element, key: string, value: any): void;
|
|
||||||
|
|
||||||
getAll(node: Element, createIfNotFound: boolean): any;
|
|
||||||
|
|
||||||
clear(node: Element): boolean;
|
|
||||||
};
|
|
||||||
|
|
||||||
//////////////////////////////////
|
|
||||||
// utils.domNodeDisposal.js
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
domNodeDisposal: {
|
|
||||||
addDisposeCallback(node: Element, callback: Function): void;
|
|
||||||
|
|
||||||
removeDisposeCallback(node: Element, callback: Function): void;
|
|
||||||
|
|
||||||
cleanNode(node: Node): Element;
|
|
||||||
|
|
||||||
removeNode(node: Node): void;
|
|
||||||
};
|
|
||||||
|
|
||||||
addOrRemoveItem<T>(array: T[] | KnockoutObservable<T>, value: T, included: T): void;
|
|
||||||
|
|
||||||
arrayFilter<T>(array: T[], predicate: (item: T) => boolean): T[];
|
|
||||||
|
|
||||||
arrayFirst<T>(array: T[], predicate: (item: T) => boolean, predicateOwner?: any): T;
|
|
||||||
|
|
||||||
arrayForEach<T>(array: T[], action: (item: T, index: number) => void): void;
|
|
||||||
|
|
||||||
arrayGetDistinctValues<T>(array: T[]): T[];
|
|
||||||
|
|
||||||
arrayIndexOf<T>(array: T[], item: T): number;
|
|
||||||
|
|
||||||
arrayMap<T, U>(array: T[], mapping: (item: T) => U): U[];
|
|
||||||
|
|
||||||
arrayPushAll<T>(array: T[] | KnockoutObservableArray<T>, valuesToPush: T[]): T[];
|
|
||||||
|
|
||||||
arrayRemoveItem(array: any[], itemToRemove: any): void;
|
|
||||||
|
|
||||||
compareArrays<T>(a: T[], b: T[]): Array<KnockoutArrayChange<T>>;
|
|
||||||
|
|
||||||
extend(target: Object, source: Object): Object;
|
|
||||||
|
|
||||||
fieldsIncludedWithJsonPost: any[];
|
|
||||||
|
|
||||||
getFormFields(form: any, fieldName: string): any[];
|
|
||||||
|
|
||||||
objectForEach(obj: any, action: (key: any, value: any) => void): void;
|
|
||||||
|
|
||||||
parseHtmlFragment(html: string): any[];
|
|
||||||
|
|
||||||
parseJson(jsonString: string): any;
|
|
||||||
|
|
||||||
postJson(urlOrForm: any, data: any, options: any): void;
|
|
||||||
|
|
||||||
peekObservable<T>(value: KnockoutObservable<T>): T;
|
|
||||||
|
|
||||||
range(min: any, max: any): any;
|
|
||||||
|
|
||||||
registerEventHandler(element: any, eventType: any, handler: Function): void;
|
|
||||||
|
|
||||||
setHtml(node: Element, html: () => string): void;
|
|
||||||
|
|
||||||
setHtml(node: Element, html: string): void;
|
|
||||||
|
|
||||||
setTextContent(element: any, textContent: string | KnockoutObservable<string>): void;
|
|
||||||
|
|
||||||
stringifyJson(data: any, replacer?: Function, space?: string): string;
|
|
||||||
|
|
||||||
toggleDomNodeCssClass(node: any, className: string, shouldHaveClass: boolean): void;
|
|
||||||
|
|
||||||
triggerEvent(element: any, eventType: any): void;
|
|
||||||
|
|
||||||
unwrapObservable<T>(value: KnockoutObservable<T> | T): T;
|
|
||||||
|
|
||||||
// NOT PART OF THE MINIFIED API SURFACE (ONLY IN knockout-{version}.debug.js) https://github.com/SteveSanderson/knockout/issues/670
|
|
||||||
// forceRefresh(node: any): void;
|
|
||||||
// ieVersion: number;
|
|
||||||
// isIe6: boolean;
|
|
||||||
// isIe7: boolean;
|
|
||||||
// jQueryHtmlParse(html: string): any[];
|
|
||||||
// makeArray(arrayLikeObject: any): any[];
|
|
||||||
// moveCleanedNodesToContainerElement(nodes: any[]): HTMLElement;
|
|
||||||
// replaceDomNodes(nodeToReplaceOrNodeArray: any, newNodesArray: any[]): void;
|
|
||||||
// setDomNodeChildren(domNode: any, childNodes: any[]): void;
|
|
||||||
// setElementName(element: any, name: string): void;
|
|
||||||
// setOptionNodeSelectionState(optionNode: any, isSelected: boolean): void;
|
|
||||||
// simpleHtmlParse(html: string): any[];
|
|
||||||
// stringStartsWith(str: string, startsWith: string): boolean;
|
|
||||||
// stringTokenize(str: string, delimiter: string): string[];
|
|
||||||
// stringTrim(str: string): string;
|
|
||||||
// tagNameLower(element: any): string;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutArrayChange<T> {
|
|
||||||
status: string;
|
|
||||||
value: T;
|
|
||||||
index: number;
|
|
||||||
moved?: number;
|
|
||||||
}
|
|
||||||
|
|
||||||
//////////////////////////////////
|
|
||||||
// templateSources.js
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
interface KnockoutTemplateSourcesDomElement {
|
|
||||||
text(): any;
|
|
||||||
text(value: any): void;
|
|
||||||
|
|
||||||
data(key: string): any;
|
|
||||||
data(key: string, value: any): any;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutTemplateAnonymous extends KnockoutTemplateSourcesDomElement {
|
|
||||||
nodes(): any;
|
|
||||||
nodes(value: any): void;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutTemplateSources {
|
|
||||||
|
|
||||||
domElement: {
|
|
||||||
prototype: KnockoutTemplateSourcesDomElement
|
|
||||||
new (element: Element): KnockoutTemplateSourcesDomElement
|
|
||||||
};
|
|
||||||
|
|
||||||
anonymousTemplate: {
|
|
||||||
prototype: KnockoutTemplateAnonymous;
|
|
||||||
new (element: Element): KnockoutTemplateAnonymous;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
//////////////////////////////////
|
|
||||||
// nativeTemplateEngine.js
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
interface KnockoutNativeTemplateEngine {
|
|
||||||
|
|
||||||
renderTemplateSource(templateSource: Object, bindingContext?: KnockoutBindingContext, options?: Object): any[];
|
|
||||||
}
|
|
||||||
|
|
||||||
//////////////////////////////////
|
|
||||||
// templateEngine.js
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
interface KnockoutTemplateEngine extends KnockoutNativeTemplateEngine {
|
|
||||||
|
|
||||||
createJavaScriptEvaluatorBlock(script: string): string;
|
|
||||||
|
|
||||||
makeTemplateSource(template: any, templateDocument?: Document): any;
|
|
||||||
|
|
||||||
renderTemplate(template: any, bindingContext: KnockoutBindingContext, options: Object, templateDocument: Document): any;
|
|
||||||
|
|
||||||
isTemplateRewritten(template: any, templateDocument: Document): boolean;
|
|
||||||
|
|
||||||
rewriteTemplate(template: any, rewriterCallback: Function, templateDocument: Document): void;
|
|
||||||
}
|
|
||||||
|
|
||||||
/////////////////////////////////
|
|
||||||
|
|
||||||
interface KnockoutStatic {
|
|
||||||
utils: KnockoutUtils;
|
|
||||||
memoization: KnockoutMemoization;
|
|
||||||
|
|
||||||
bindingHandlers: KnockoutBindingHandlers;
|
|
||||||
getBindingHandler(handler: string): KnockoutBindingHandler;
|
|
||||||
|
|
||||||
virtualElements: KnockoutVirtualElements;
|
|
||||||
extenders: KnockoutExtenders;
|
|
||||||
|
|
||||||
applyBindings(viewModelOrBindingContext?: any, rootNode?: any): void;
|
|
||||||
applyBindingsToDescendants(viewModelOrBindingContext: any, rootNode: any): void;
|
|
||||||
applyBindingAccessorsToNode(node: Node, bindings: (bindingContext: KnockoutBindingContext, node: Node) => {}, bindingContext: KnockoutBindingContext): void;
|
|
||||||
applyBindingAccessorsToNode(node: Node, bindings: {}, bindingContext: KnockoutBindingContext): void;
|
|
||||||
applyBindingAccessorsToNode(node: Node, bindings: (bindingContext: KnockoutBindingContext, node: Node) => {}, viewModel: any): void;
|
|
||||||
applyBindingAccessorsToNode(node: Node, bindings: {}, viewModel: any): void;
|
|
||||||
applyBindingsToNode(node: Node, bindings: any, viewModelOrBindingContext?: any): any;
|
|
||||||
|
|
||||||
subscribable: KnockoutSubscribableStatic;
|
|
||||||
observable: KnockoutObservableStatic;
|
|
||||||
|
|
||||||
computed: KnockoutComputedStatic;
|
|
||||||
pureComputed<T>(evaluatorFunction: () => T, context?: any): KnockoutComputed<T>;
|
|
||||||
pureComputed<T>(options: KnockoutComputedDefine<T>, context?: any): KnockoutComputed<T>;
|
|
||||||
|
|
||||||
observableArray: KnockoutObservableArrayStatic;
|
|
||||||
|
|
||||||
contextFor(node: any): any;
|
|
||||||
isSubscribable(instance: any): boolean;
|
|
||||||
toJSON(viewModel: any, replacer?: Function, space?: any): string;
|
|
||||||
toJS(viewModel: any): any;
|
|
||||||
isObservable(instance: any): boolean;
|
|
||||||
isWriteableObservable(instance: any): boolean;
|
|
||||||
isComputed(instance: any): boolean;
|
|
||||||
dataFor(node: any): any;
|
|
||||||
removeNode(node: Element): void;
|
|
||||||
cleanNode(node: Element): Element;
|
|
||||||
renderTemplate(template: Function, viewModel: any, options?: any, target?: any, renderMode?: any): any;
|
|
||||||
renderTemplate(template: string, viewModel: any, options?: any, target?: any, renderMode?: any): any;
|
|
||||||
unwrap<T>(value: KnockoutObservable<T> | T): T;
|
|
||||||
|
|
||||||
computedContext: KnockoutComputedContext;
|
|
||||||
|
|
||||||
//////////////////////////////////
|
|
||||||
// templateSources.js
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
templateSources: KnockoutTemplateSources;
|
|
||||||
|
|
||||||
//////////////////////////////////
|
|
||||||
// templateEngine.js
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
templateEngine: {
|
|
||||||
|
|
||||||
prototype: KnockoutTemplateEngine;
|
|
||||||
|
|
||||||
new (): KnockoutTemplateEngine;
|
|
||||||
};
|
|
||||||
|
|
||||||
//////////////////////////////////
|
|
||||||
// templateRewriting.js
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
templateRewriting: {
|
|
||||||
|
|
||||||
ensureTemplateIsRewritten(template: Node, templateEngine: KnockoutTemplateEngine, templateDocument: Document): any;
|
|
||||||
ensureTemplateIsRewritten(template: string, templateEngine: KnockoutTemplateEngine, templateDocument: Document): any;
|
|
||||||
|
|
||||||
memoizeBindingAttributeSyntax(htmlString: string, templateEngine: KnockoutTemplateEngine): any;
|
|
||||||
|
|
||||||
applyMemoizedBindingsToNextSibling(bindings: any, nodeName: string): string;
|
|
||||||
};
|
|
||||||
|
|
||||||
//////////////////////////////////
|
|
||||||
// nativeTemplateEngine.js
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
nativeTemplateEngine: {
|
|
||||||
|
|
||||||
prototype: KnockoutNativeTemplateEngine;
|
|
||||||
|
|
||||||
new (): KnockoutNativeTemplateEngine;
|
|
||||||
|
|
||||||
instance: KnockoutNativeTemplateEngine;
|
|
||||||
};
|
|
||||||
|
|
||||||
//////////////////////////////////
|
|
||||||
// jqueryTmplTemplateEngine.js
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
jqueryTmplTemplateEngine: {
|
|
||||||
|
|
||||||
prototype: KnockoutTemplateEngine;
|
|
||||||
|
|
||||||
renderTemplateSource(templateSource: Object, bindingContext: KnockoutBindingContext, options: Object): Node[];
|
|
||||||
|
|
||||||
createJavaScriptEvaluatorBlock(script: string): string;
|
|
||||||
|
|
||||||
addTemplate(templateName: string, templateMarkup: string): void;
|
|
||||||
};
|
|
||||||
|
|
||||||
//////////////////////////////////
|
|
||||||
// templating.js
|
|
||||||
//////////////////////////////////
|
|
||||||
|
|
||||||
setTemplateEngine(templateEngine: KnockoutNativeTemplateEngine): void;
|
|
||||||
|
|
||||||
renderTemplate(template: Function, dataOrBindingContext: KnockoutBindingContext, options: Object, targetNodeOrNodeArray: Node, renderMode: string): any;
|
|
||||||
renderTemplate(template: any, dataOrBindingContext: KnockoutBindingContext, options: Object, targetNodeOrNodeArray: Node, renderMode: string): any;
|
|
||||||
renderTemplate(template: Function, dataOrBindingContext: any, options: Object, targetNodeOrNodeArray: Node, renderMode: string): any;
|
|
||||||
renderTemplate(template: any, dataOrBindingContext: any, options: Object, targetNodeOrNodeArray: Node, renderMode: string): any;
|
|
||||||
renderTemplate(template: Function, dataOrBindingContext: KnockoutBindingContext, options: Object, targetNodeOrNodeArray: Node[], renderMode: string): any;
|
|
||||||
renderTemplate(template: any, dataOrBindingContext: KnockoutBindingContext, options: Object, targetNodeOrNodeArray: Node[], renderMode: string): any;
|
|
||||||
renderTemplate(template: Function, dataOrBindingContext: any, options: Object, targetNodeOrNodeArray: Node[], renderMode: string): any;
|
|
||||||
renderTemplate(template: any, dataOrBindingContext: any, options: Object, targetNodeOrNodeArray: Node[], renderMode: string): any;
|
|
||||||
|
|
||||||
renderTemplateForEach(template: Function, arrayOrObservableArray: any[], options: Object, targetNode: Node, parentBindingContext: KnockoutBindingContext): any;
|
|
||||||
renderTemplateForEach(template: any, arrayOrObservableArray: any[], options: Object, targetNode: Node, parentBindingContext: KnockoutBindingContext): any;
|
|
||||||
renderTemplateForEach(template: Function, arrayOrObservableArray: KnockoutObservable<any>, options: Object, targetNode: Node, parentBindingContext: KnockoutBindingContext): any;
|
|
||||||
renderTemplateForEach(template: any, arrayOrObservableArray: KnockoutObservable<any>, options: Object, targetNode: Node, parentBindingContext: KnockoutBindingContext): any;
|
|
||||||
|
|
||||||
expressionRewriting: {
|
|
||||||
bindingRewriteValidators: any;
|
|
||||||
parseObjectLiteral: { (objectLiteralString: string): any[] }
|
|
||||||
};
|
|
||||||
|
|
||||||
/////////////////////////////////
|
|
||||||
|
|
||||||
bindingProvider: {
|
|
||||||
instance: KnockoutBindingProvider;
|
|
||||||
new (): KnockoutBindingProvider;
|
|
||||||
}
|
|
||||||
|
|
||||||
/////////////////////////////////
|
|
||||||
// selectExtensions.js
|
|
||||||
/////////////////////////////////
|
|
||||||
|
|
||||||
selectExtensions: {
|
|
||||||
|
|
||||||
readValue(element: HTMLElement): any;
|
|
||||||
|
|
||||||
writeValue(element: HTMLElement, value: any): void;
|
|
||||||
};
|
|
||||||
|
|
||||||
components: KnockoutComponents;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutBindingProvider {
|
|
||||||
nodeHasBindings(node: Node): boolean;
|
|
||||||
getBindings(node: Node, bindingContext: KnockoutBindingContext): {};
|
|
||||||
getBindingAccessors?(node: Node, bindingContext: KnockoutBindingContext): { [key: string]: string; };
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutComputedContext {
|
|
||||||
getDependenciesCount(): number;
|
|
||||||
isInitial: () => boolean;
|
|
||||||
isSleeping: boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// refactored types into a namespace to reduce global pollution
|
|
||||||
// and used Union Types to simplify overloads (requires TypeScript 1.4)
|
|
||||||
//
|
|
||||||
declare module KnockoutComponentTypes {
|
|
||||||
|
|
||||||
interface Config {
|
|
||||||
viewModel?: ViewModelFunction | ViewModelSharedInstance | ViewModelFactoryFunction | AMDModule;
|
|
||||||
template: string | Node[]| DocumentFragment | TemplateElement | AMDModule;
|
|
||||||
synchronous?: boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface ComponentConfig {
|
|
||||||
viewModel?: ViewModelFunction | ViewModelSharedInstance | ViewModelFactoryFunction | AMDModule;
|
|
||||||
template: any;
|
|
||||||
createViewModel?: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface EmptyConfig {
|
|
||||||
}
|
|
||||||
|
|
||||||
// common AMD type
|
|
||||||
interface AMDModule {
|
|
||||||
require: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
// viewmodel types
|
|
||||||
interface ViewModelFunction {
|
|
||||||
(params?: any): any;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface ViewModelSharedInstance {
|
|
||||||
instance: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface ViewModelFactoryFunction {
|
|
||||||
createViewModel: (params?: any, componentInfo?: ComponentInfo) => any;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface ComponentInfo {
|
|
||||||
element: Node;
|
|
||||||
templateNodes: Node[];
|
|
||||||
}
|
|
||||||
|
|
||||||
interface TemplateElement {
|
|
||||||
element: string | Node;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface Loader {
|
|
||||||
getConfig? (componentName: string, callback: (result: ComponentConfig) => void): void;
|
|
||||||
loadComponent? (componentName: string, config: ComponentConfig, callback: (result: Definition) => void): void;
|
|
||||||
loadTemplate? (componentName: string, templateConfig: any, callback: (result: Node[]) => void): void;
|
|
||||||
loadViewModel? (componentName: string, viewModelConfig: any, callback: (result: any) => void): void;
|
|
||||||
suppressLoaderExceptions?: boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface Definition {
|
|
||||||
template: Node[];
|
|
||||||
createViewModel? (params: any, options: { element: Node; }): any;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KnockoutComponents {
|
|
||||||
// overloads for register method:
|
|
||||||
register(componentName: string, config: KnockoutComponentTypes.Config | KnockoutComponentTypes.EmptyConfig): void;
|
|
||||||
|
|
||||||
isRegistered(componentName: string): boolean;
|
|
||||||
unregister(componentName: string): void;
|
|
||||||
get(componentName: string, callback: (definition: KnockoutComponentTypes.Definition) => void): void;
|
|
||||||
clearCachedDefinition(componentName: string): void
|
|
||||||
defaultLoader: KnockoutComponentTypes.Loader;
|
|
||||||
loaders: KnockoutComponentTypes.Loader[];
|
|
||||||
getComponentNameForNode(node: Node): string;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare var ko: KnockoutStatic;
|
|
||||||
|
|
||||||
declare module "knockout" {
|
|
||||||
export = ko;
|
|
||||||
}
|
|
|
@ -1,3 +0,0 @@
|
||||||
/// <reference path="@ms/odsp.d.ts" />
|
|
||||||
/// <reference path="assertion-error/assertion-error.d.ts" />
|
|
||||||
/// <reference path="knockout/knockout.d.ts" />
|
|
|
@ -1,25 +0,0 @@
|
||||||
# EditorConfig helps developers define and maintain consistent
|
|
||||||
# coding styles between different editors and IDEs
|
|
||||||
# editorconfig.org
|
|
||||||
|
|
||||||
root = true
|
|
||||||
|
|
||||||
|
|
||||||
[*]
|
|
||||||
|
|
||||||
# change these settings to your own preference
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 2
|
|
||||||
|
|
||||||
# we recommend you to keep these unchanged
|
|
||||||
end_of_line = lf
|
|
||||||
charset = utf-8
|
|
||||||
trim_trailing_whitespace = true
|
|
||||||
insert_final_newline = true
|
|
||||||
|
|
||||||
[*.md]
|
|
||||||
trim_trailing_whitespace = false
|
|
||||||
|
|
||||||
[{package,bower}.json]
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 2
|
|
|
@ -1 +0,0 @@
|
||||||
* text=auto
|
|
|
@ -1,32 +0,0 @@
|
||||||
# Logs
|
|
||||||
logs
|
|
||||||
*.log
|
|
||||||
npm-debug.log*
|
|
||||||
|
|
||||||
# Dependency directories
|
|
||||||
node_modules
|
|
||||||
|
|
||||||
# Build generated files
|
|
||||||
dist
|
|
||||||
lib
|
|
||||||
solution
|
|
||||||
temp
|
|
||||||
*.sppkg
|
|
||||||
|
|
||||||
# Coverage directory used by tools like istanbul
|
|
||||||
coverage
|
|
||||||
|
|
||||||
# OSX
|
|
||||||
.DS_Store
|
|
||||||
|
|
||||||
# Visual Studio files
|
|
||||||
.ntvs_analysis.dat
|
|
||||||
.vs
|
|
||||||
bin
|
|
||||||
obj
|
|
||||||
|
|
||||||
# Resx Generated Code
|
|
||||||
*.resx.ts
|
|
||||||
|
|
||||||
# Styles Generated Code
|
|
||||||
*.scss.ts
|
|
|
@ -1,14 +0,0 @@
|
||||||
# Folders
|
|
||||||
.vscode
|
|
||||||
coverage
|
|
||||||
node_modules
|
|
||||||
sharepoint
|
|
||||||
src
|
|
||||||
temp
|
|
||||||
|
|
||||||
# Files
|
|
||||||
*.csproj
|
|
||||||
.git*
|
|
||||||
.yo-rc.json
|
|
||||||
gulpfile.js
|
|
||||||
tsconfig.json
|
|
|
@ -1,3 +0,0 @@
|
||||||
{
|
|
||||||
"vsicons.presets.angular": false
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
{
|
|
||||||
"@microsoft/generator-sharepoint": {
|
|
||||||
"libraryName": "jquery-webpart",
|
|
||||||
"libraryId": "84338b53-499e-4733-87f8-4b6cbf2a2187",
|
|
||||||
"framework": "none"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,26 +0,0 @@
|
||||||
## jquery-webpart
|
|
||||||
|
|
||||||
This is where you include your web part docs.
|
|
||||||
|
|
||||||
### Building the code
|
|
||||||
|
|
||||||
```bash
|
|
||||||
git clone the repo
|
|
||||||
npm i
|
|
||||||
npm i -g gulp
|
|
||||||
gulp
|
|
||||||
```
|
|
||||||
|
|
||||||
This package produces the following:
|
|
||||||
|
|
||||||
* lib/* commonjs components - this allows this package to be reused from other packages.
|
|
||||||
* dist/* - a single bundle containing the components used for uploading to a cdn pointing a registered Sharepoint webpart library to.
|
|
||||||
* example/* a test page that hosts all components in this package.
|
|
||||||
|
|
||||||
### Build options
|
|
||||||
|
|
||||||
gulp clean - TODO
|
|
||||||
gulp test - TODO
|
|
||||||
gulp watch - TODO
|
|
||||||
gulp build - TODO
|
|
||||||
gulp deploy - TODO
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue