@microsoft/generator-sharepoint 1.14.0 → 1.15.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/common/BaseGenerator.d.ts +5 -7
- package/lib/common/BaseGenerator.d.ts.map +1 -1
- package/lib/common/BaseGenerator.js +38 -57
- package/lib/common/JsonManager.d.ts +1 -1
- package/lib/common/JsonManager.d.ts.map +1 -1
- package/lib/common/JsonManager.js +6 -2
- package/lib/common/ServeJsonManager.js +6 -2
- package/lib/common/YeomanConfiguration.d.ts +2 -0
- package/lib/common/YeomanConfiguration.d.ts.map +1 -1
- package/lib/common/YeomanConfiguration.js +8 -1
- package/lib/common/dependencies.json +228 -0
- package/lib/common/spsay.d.ts +1 -1
- package/lib/common/spsay.d.ts.map +1 -1
- package/lib/common/spsay.js +9 -9
- package/lib/common/utilities.d.ts.map +1 -1
- package/lib/common/utilities.js +21 -16
- package/lib/generators/adaptiveCardExtension/index.d.ts.map +1 -1
- package/lib/generators/adaptiveCardExtension/index.js +19 -16
- package/lib/generators/adaptiveCardExtension/templates/manifestTemplate/baseTemplate/{componentClassName}.manifest.json +3 -3
- package/lib/generators/adaptiveCardExtension/templates/manifestTemplate/imageTemplate/{componentClassName}.manifest.json +1 -2
- package/lib/generators/adaptiveCardExtension/templates/none/quickView/QuickView.ts +1 -1
- package/lib/generators/app/index.d.ts.map +1 -1
- package/lib/generators/app/index.js +13 -3
- package/lib/generators/applicationCustomizer/index.d.ts.map +1 -1
- package/lib/generators/applicationCustomizer/index.js +10 -7
- package/lib/generators/applicationCustomizer/templates/none/{componentClassName}.ts +3 -1
- package/lib/generators/commandSet/index.d.ts.map +1 -1
- package/lib/generators/commandSet/index.js +10 -7
- package/lib/generators/commandSet/templates/none/{componentClassName}.ts +27 -13
- package/lib/generators/component/BaseComponentGenerator.d.ts +3 -0
- package/lib/generators/component/BaseComponentGenerator.d.ts.map +1 -1
- package/lib/generators/component/BaseComponentGenerator.js +94 -76
- package/lib/generators/component/index.d.ts.map +1 -1
- package/lib/generators/component/index.js +20 -25
- package/lib/generators/component/templates/eslint/default.eslintrc.js +5 -0
- package/lib/generators/component/templates/eslint/react.eslintrc.js +5 -0
- package/lib/generators/extension/BaseExtensionGenerator.d.ts +2 -2
- package/lib/generators/extension/BaseExtensionGenerator.d.ts.map +1 -1
- package/lib/generators/extension/BaseExtensionGenerator.js +14 -8
- package/lib/generators/extension/index.d.ts +2 -1
- package/lib/generators/extension/index.d.ts.map +1 -1
- package/lib/generators/extension/index.js +24 -15
- package/lib/generators/fieldCustomizer/index.d.ts.map +1 -1
- package/lib/generators/fieldCustomizer/index.js +10 -7
- package/lib/generators/fieldCustomizer/templates/minimal/{componentClassName}.module.scss +1 -1
- package/lib/generators/fieldCustomizer/templates/minimal/{componentClassName}.ts +1 -1
- package/lib/generators/fieldCustomizer/templates/none/{componentClassName}.module.scss +1 -1
- package/lib/generators/fieldCustomizer/templates/none/{componentClassName}.ts +1 -1
- package/lib/generators/fieldCustomizer/templates/react/components/{componentName}.module.scss +1 -1
- package/lib/generators/fieldCustomizer/templates/react/components/{componentName}.tsx +1 -1
- package/lib/generators/formCustomizer/index.d.ts +24 -0
- package/lib/generators/formCustomizer/index.d.ts.map +1 -0
- package/lib/generators/formCustomizer/index.js +142 -0
- package/lib/generators/formCustomizer/templates/base/{componentClassName}.manifest.json +17 -0
- package/lib/generators/formCustomizer/templates/loc/en-us.js +7 -0
- package/lib/generators/formCustomizer/templates/loc/myStrings.d.ts +10 -0
- package/lib/generators/formCustomizer/templates/none/{componentClassName}.module.scss +5 -0
- package/lib/generators/formCustomizer/templates/none/{componentClassName}.ts +53 -0
- package/lib/generators/formCustomizer/templates/react/components/{componentName}.module.scss +5 -0
- package/lib/generators/formCustomizer/templates/react/components/{componentName}.tsx +28 -0
- package/lib/generators/formCustomizer/templates/react/{componentClassName}.ts +64 -0
- package/lib/generators/library/index.d.ts.map +1 -1
- package/lib/generators/library/index.js +10 -7
- package/lib/generators/searchQueryModifier/index.d.ts.map +1 -1
- package/lib/generators/searchQueryModifier/index.js +10 -7
- package/lib/generators/solution/heft.package.json +14 -0
- package/lib/generators/solution/index.d.ts +1 -0
- package/lib/generators/solution/index.d.ts.map +1 -1
- package/lib/generators/solution/index.js +102 -68
- package/lib/generators/solution/{initial.package.json → non-heft.package.json} +0 -0
- package/lib/generators/solution/templates/base/README.md +10 -10
- package/lib/generators/solution/templates/base/_gitignore +1 -0
- package/lib/generators/solution/templates/{base → gulp}/.vscode/launch.json +0 -0
- package/lib/generators/solution/templates/{base → gulp}/_npmignore +0 -0
- package/lib/generators/solution/templates/{base → gulp}/gulpfile.js +0 -0
- package/lib/generators/solution/templates/{base → gulp}/src/index.ts +0 -0
- package/lib/generators/solution/templates/heft/_npmignore +16 -0
- package/lib/generators/solution/templates/heft/config/rig.json +7 -0
- package/lib/generators/solution/templates/heft/config/typescript.json +21 -0
- package/lib/generators/solution/templates/heft/tsconfig.json +6 -0
- package/lib/generators/solution/templates/spo/tsconfig.json +1 -1
- package/lib/generators/webpart/index.d.ts.map +1 -1
- package/lib/generators/webpart/index.js +10 -7
- package/lib/generators/webpart/initial.teamsManifest.json +6 -0
- package/lib/generators/webpart/templates/minimal/{componentClassName}.ts +3 -4
- package/lib/generators/webpart/templates/none/{componentClassName}.ts +14 -9
- package/lib/generators/webpart/templates/react/components/{componentName}.tsx +8 -8
- package/lib/generators/webpart/templates/react/{componentClassName}.ts +12 -9
- package/package.json +5 -5
- package/lib/common/dependency/adaptiveCardExtension/firstParty.json +0 -13
- package/lib/common/dependency/adaptiveCardExtension/firstPartyPlusBeta.json +0 -13
- package/lib/common/dependency/applicationCustomizer.json +0 -6
- package/lib/common/dependency/applicationCustomizerPlusBeta.json +0 -6
- package/lib/common/dependency/commandSet.json +0 -6
- package/lib/common/dependency/commandSetPlusBeta.json +0 -6
- package/lib/common/dependency/extension/firstParty.json +0 -12
- package/lib/common/dependency/extension/firstPartyPlusBeta.json +0 -12
- package/lib/common/dependency/fieldCustomizer.json +0 -5
- package/lib/common/dependency/fieldCustomizerPlusBeta.json +0 -5
- package/lib/common/dependency/library/firstParty.json +0 -9
- package/lib/common/dependency/library/firstPartyPlusBeta.json +0 -9
- package/lib/common/dependency/react.json +0 -11
- package/lib/common/dependency/searchQueryModifier.json +0 -5
- package/lib/common/dependency/searchQueryModifierPlusBeta.json +0 -5
- package/lib/common/dependency/thirdParty.json +0 -8
- package/lib/common/dependency/webpart/firstParty.json +0 -15
- package/lib/common/dependency/webpart/firstPartyPlusBeta.json +0 -15
- package/lib/generators/solution/templates/base/tslint.json +0 -29
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/component/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAGzE,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAE1C,OAAO,KAAK,qBAAqB,MAAM,0BAA0B,CAAC;AAGlE,MAAM,WAAW,yBACf,SAAQ,OAAO,CAAC,eAAe,EAC7B,SAAS,CAAC,iBAAiB,EAC3B,qBAAqB,CAAC,WAAW;IACnC,aAAa,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,uBAAuB,CAAC;CAC9E;AAED,wBAAgB,WAAW,CAAC,QAAQ,SAAS,YAAY,EAAE,QAAQ,EACjE,IAAI,EAAE,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,EACvC,OAAO,EAAE,YAAY,GACpB,IAAI,CAEN;AAED,wBAAgB,aAAa,CAAC,QAAQ,SAAS,YAAY,EAAE,QAAQ,EACnE,SAAS,EAAE,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAC3C,IAAI,CAUN;AAED;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,aAAa,CAAC,yBAAyB,EAAE,EAAE,CAAC;IAC1F,SAAgB,YAAY,EAAE,MAAM,CAAyB;IAEtD,YAAY,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/component/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAGzE,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAE1C,OAAO,KAAK,qBAAqB,MAAM,0BAA0B,CAAC;AAGlE,MAAM,WAAW,yBACf,SAAQ,OAAO,CAAC,eAAe,EAC7B,SAAS,CAAC,iBAAiB,EAC3B,qBAAqB,CAAC,WAAW;IACnC,aAAa,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,uBAAuB,CAAC;CAC9E;AAED,wBAAgB,WAAW,CAAC,QAAQ,SAAS,YAAY,EAAE,QAAQ,EACjE,IAAI,EAAE,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,EACvC,OAAO,EAAE,YAAY,GACpB,IAAI,CAEN;AAED,wBAAgB,aAAa,CAAC,QAAQ,SAAS,YAAY,EAAE,QAAQ,EACnE,SAAS,EAAE,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAC3C,IAAI,CAUN;AAED;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,aAAa,CAAC,yBAAyB,EAAE,EAAE,CAAC;IAC1F,SAAgB,YAAY,EAAE,MAAM,CAAyB;IAEtD,YAAY,IAAI,IAAI;IAId,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IA8DhC,WAAW,IAAI,IAAI;IAGnB,OAAO,IAAI,IAAI;IAGf,OAAO,IAAI,IAAI;IAGf,GAAG,IAAI,IAAI;IAIlB,OAAO,CAAC,aAAa;CAGtB"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -14,7 +18,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
14
18
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
19
|
if (mod && mod.__esModule) return mod;
|
|
16
20
|
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
22
|
__setModuleDefault(result, mod);
|
|
19
23
|
return result;
|
|
20
24
|
};
|
|
@@ -57,10 +61,10 @@ class ComponentSelectorGenerator extends BaseGenerator_1.BaseGenerator {
|
|
|
57
61
|
initializing() {
|
|
58
62
|
/* no-op */
|
|
59
63
|
}
|
|
60
|
-
prompting() {
|
|
64
|
+
async prompting() {
|
|
61
65
|
this.ensureCorrectFolder();
|
|
62
66
|
if (!this.shouldExecute()) {
|
|
63
|
-
return
|
|
67
|
+
return;
|
|
64
68
|
}
|
|
65
69
|
let choices;
|
|
66
70
|
if (this.config.get('isDomainIsolated')) {
|
|
@@ -91,7 +95,7 @@ class ComponentSelectorGenerator extends BaseGenerator_1.BaseGenerator {
|
|
|
91
95
|
}
|
|
92
96
|
];
|
|
93
97
|
}
|
|
94
|
-
|
|
98
|
+
const answers = await this.prompt([
|
|
95
99
|
{
|
|
96
100
|
type: 'list',
|
|
97
101
|
name: 'componentType',
|
|
@@ -100,27 +104,18 @@ class ComponentSelectorGenerator extends BaseGenerator_1.BaseGenerator {
|
|
|
100
104
|
message: 'Which type of client-side component to create?',
|
|
101
105
|
choices: choices
|
|
102
106
|
}
|
|
103
|
-
])
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
this.config.
|
|
113
|
-
}
|
|
114
|
-
else if (componentType === 'library') {
|
|
115
|
-
this.config.set('componentType', 'library');
|
|
116
|
-
}
|
|
117
|
-
else {
|
|
118
|
-
this.log(colors_1.default.red(`Invalid componentType: "${componentType}"`));
|
|
119
|
-
if (this.config.get('extensionType')) {
|
|
120
|
-
this.log(colors_1.default.red(`Invalid extensionType: "${this.config.get('extensionType')}"`));
|
|
121
|
-
}
|
|
107
|
+
]);
|
|
108
|
+
const validComponentTypes = new Set(choices.map((choice) => choice.value));
|
|
109
|
+
const componentType = answers.componentType || this.config.get('componentType');
|
|
110
|
+
if (validComponentTypes.has(componentType)) {
|
|
111
|
+
this.config.set('componentType', componentType);
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
this.log(colors_1.default.red(`Invalid componentType: "${componentType}"`));
|
|
115
|
+
if (this.config.get('extensionType')) {
|
|
116
|
+
this.log(colors_1.default.red(`Invalid extensionType: "${this.config.get('extensionType')}"`));
|
|
122
117
|
}
|
|
123
|
-
}
|
|
118
|
+
}
|
|
124
119
|
}
|
|
125
120
|
configuring() {
|
|
126
121
|
/* no-op */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BaseGenerator, IBaseOptions } from '../../common/BaseGenerator';
|
|
2
2
|
import * as BaseComponent from '../component/BaseComponentGenerator';
|
|
3
|
-
export declare type AvailableExtensions = 'ApplicationCustomizer' | 'CommandSet' | 'FieldCustomizer' | 'SearchQueryModifier';
|
|
3
|
+
export declare type AvailableExtensions = 'ApplicationCustomizer' | 'CommandSet' | 'FieldCustomizer' | 'SearchQueryModifier' | 'FormCustomizer';
|
|
4
4
|
export interface IBaseExtensionOptions extends BaseComponent.IBaseComponentOptions {
|
|
5
5
|
}
|
|
6
6
|
export interface IBaseExtensionContext extends BaseComponent.IBaseComponentContext {
|
|
@@ -8,11 +8,11 @@ export interface IBaseExtensionContext extends BaseComponent.IBaseComponentConte
|
|
|
8
8
|
export declare function defineOptions<TOptions extends IBaseOptions, TContext>(generator: BaseGenerator<TOptions, TContext>, type?: string): void;
|
|
9
9
|
export declare abstract class BaseExtensionGenerator<IOptions extends IBaseExtensionOptions, IContext extends IBaseExtensionContext> extends BaseComponent.BaseComponentGenerator<IOptions, IContext> {
|
|
10
10
|
protected readonly folderName: string;
|
|
11
|
-
prompting(): Promise<void>;
|
|
12
11
|
configuring(): void;
|
|
13
12
|
writing(shouldCopy?: boolean): void;
|
|
14
13
|
install(): void;
|
|
15
14
|
protected abstract includeClientSideInstances(): boolean;
|
|
15
|
+
protected addFeature(): void;
|
|
16
16
|
protected hasElementsXml(): boolean;
|
|
17
17
|
private _getFeatureFrameworkDocsUrl;
|
|
18
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseExtensionGenerator.d.ts","sourceRoot":"","sources":["../../../src/generators/extension/BaseExtensionGenerator.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,KAAK,aAAa,MAAM,qCAAqC,CAAC;AAErE,oBAAY,mBAAmB,GAC3B,uBAAuB,GACvB,YAAY,GACZ,iBAAiB,GACjB,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"BaseExtensionGenerator.d.ts","sourceRoot":"","sources":["../../../src/generators/extension/BaseExtensionGenerator.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,KAAK,aAAa,MAAM,qCAAqC,CAAC;AAErE,oBAAY,mBAAmB,GAC3B,uBAAuB,GACvB,YAAY,GACZ,iBAAiB,GACjB,qBAAqB,GACrB,gBAAgB,CAAC;AAErB,MAAM,WAAW,qBAAsB,SAAQ,aAAa,CAAC,qBAAqB;CAAG;AACrF,MAAM,WAAW,qBAAsB,SAAQ,aAAa,CAAC,qBAAqB;CAAG;AAErF,wBAAgB,aAAa,CAAC,QAAQ,SAAS,YAAY,EAAE,QAAQ,EACnE,SAAS,EAAE,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAC5C,IAAI,GAAE,MAAoB,GACzB,IAAI,CAEN;AAED,8BAAsB,sBAAsB,CAC1C,QAAQ,SAAS,qBAAqB,EACtC,QAAQ,SAAS,qBAAqB,CACtC,SAAQ,aAAa,CAAC,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAChE,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAgB;IAE9C,WAAW,IAAI,IAAI;IAMnB,OAAO,CAAC,UAAU,GAAE,OAAc,GAAG,IAAI;IAoBzC,OAAO,IAAI,IAAI;IAItB,SAAS,CAAC,QAAQ,CAAC,0BAA0B,IAAI,OAAO;IAExD,SAAS,CAAC,UAAU,IAAI,IAAI;IAM5B,SAAS,CAAC,cAAc,IAAI,OAAO;IAKnC,OAAO,CAAC,2BAA2B;CAkBpC"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -14,7 +18,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
14
18
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
19
|
if (mod && mod.__esModule) return mod;
|
|
16
20
|
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
22
|
__setModuleDefault(result, mod);
|
|
19
23
|
return result;
|
|
20
24
|
};
|
|
@@ -37,15 +41,10 @@ class BaseExtensionGenerator extends BaseComponent.BaseComponentGenerator {
|
|
|
37
41
|
super(...arguments);
|
|
38
42
|
this.folderName = 'extensions';
|
|
39
43
|
}
|
|
40
|
-
prompting() {
|
|
41
|
-
return super.prompting();
|
|
42
|
-
}
|
|
43
44
|
configuring() {
|
|
44
45
|
super.configuring();
|
|
45
46
|
this.ensureDependencyGroup('extension');
|
|
46
|
-
|
|
47
|
-
this.packageSolutionJson.addExtensionFeature(Utils.generateGuid(), this.includeClientSideInstances());
|
|
48
|
-
}
|
|
47
|
+
this.addFeature();
|
|
49
48
|
}
|
|
50
49
|
writing(shouldCopy = true) {
|
|
51
50
|
super.writing(shouldCopy);
|
|
@@ -65,6 +64,11 @@ class BaseExtensionGenerator extends BaseComponent.BaseComponentGenerator {
|
|
|
65
64
|
install() {
|
|
66
65
|
super.install();
|
|
67
66
|
}
|
|
67
|
+
addFeature() {
|
|
68
|
+
if (!this.hasElementsXml()) {
|
|
69
|
+
this.packageSolutionJson.addExtensionFeature(Utils.generateGuid(), this.includeClientSideInstances());
|
|
70
|
+
}
|
|
71
|
+
}
|
|
68
72
|
hasElementsXml() {
|
|
69
73
|
const elementsXmlPath = path.join(this.destinationRoot(), 'sharepoint', 'assets', 'elements.xml');
|
|
70
74
|
return node_core_library_1.FileSystem.exists(elementsXmlPath);
|
|
@@ -80,6 +84,8 @@ class BaseExtensionGenerator extends BaseComponent.BaseComponentGenerator {
|
|
|
80
84
|
return 'https://aka.ms/spfx/extensions/tutorial/helloworld3';
|
|
81
85
|
case 'SearchQueryModifier':
|
|
82
86
|
return 'https://aka.ms/spfx/extensions/search';
|
|
87
|
+
case 'FormCustomizer':
|
|
88
|
+
return ''; // TODO: add form customizer docs url
|
|
83
89
|
default:
|
|
84
90
|
return '';
|
|
85
91
|
}
|
|
@@ -3,7 +3,8 @@ import * as ApplicationCustomizer from '../applicationCustomizer';
|
|
|
3
3
|
import * as CommandSet from '../commandSet';
|
|
4
4
|
import * as FieldCustomizer from '../fieldCustomizer';
|
|
5
5
|
import * as BaseExtension from './BaseExtensionGenerator';
|
|
6
|
-
|
|
6
|
+
import * as FormCustomizer from '../formCustomizer';
|
|
7
|
+
export interface IExtensionOptions extends FieldCustomizer.IFieldCustomizerOptions, CommandSet.ICommandSetOptions, ApplicationCustomizer.IApplicationCustomizerOptions, FormCustomizer.IFormCustomizerOptions {
|
|
7
8
|
extensionType: BaseExtension.AvailableExtensions;
|
|
8
9
|
}
|
|
9
10
|
export declare function defineOptions<TOptions extends IBaseOptions, TContext>(generator: BaseGenerator<TOptions, TContext>): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/extension/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAEzE,OAAO,KAAK,qBAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,UAAU,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,eAAe,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/extension/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAEzE,OAAO,KAAK,qBAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,UAAU,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,eAAe,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,cAAc,MAAM,mBAAmB,CAAC;AAEpD,MAAM,WAAW,iBACf,SAAQ,eAAe,CAAC,uBAAuB,EAC7C,UAAU,CAAC,kBAAkB,EAC7B,qBAAqB,CAAC,6BAA6B,EACnD,cAAc,CAAC,sBAAsB;IACvC,aAAa,EAAE,aAAa,CAAC,mBAAmB,CAAC;CAClD;AAED,wBAAgB,aAAa,CAAC,QAAQ,SAAS,YAAY,EAAE,QAAQ,EACnE,SAAS,EAAE,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAC3C,IAAI,CAQN;AAED,wBAAgB,WAAW,CAAC,QAAQ,SAAS,YAAY,EAAE,QAAQ,EACjE,IAAI,EAAE,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,EACvC,OAAO,EAAE,YAAY,GACpB,IAAI,CAEN;AAED;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,aAAa,CAAC,iBAAiB,EAAE,EAAE,CAAC;IAClF,SAAgB,YAAY,EAAE,MAAM,CAAyB;IAEtD,YAAY,IAAI,IAAI;IAId,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IA8DhC,WAAW,IAAI,IAAI;IAGnB,OAAO,IAAI,IAAI;IAGf,OAAO,IAAI,IAAI;IAGf,GAAG,IAAI,IAAI;IAIlB,SAAS,aAAa,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,EAAE,iBAAiB;IAIzE,OAAO,CAAC,aAAa;CAGtB"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -14,7 +18,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
14
18
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
19
|
if (mod && mod.__esModule) return mod;
|
|
16
20
|
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
22
|
__setModuleDefault(result, mod);
|
|
19
23
|
return result;
|
|
20
24
|
};
|
|
@@ -29,11 +33,13 @@ const BaseGenerator_1 = require("../../common/BaseGenerator");
|
|
|
29
33
|
const Utils = __importStar(require("../../common/utilities"));
|
|
30
34
|
const CommandSet = __importStar(require("../commandSet"));
|
|
31
35
|
const FieldCustomizer = __importStar(require("../fieldCustomizer"));
|
|
36
|
+
const FormCustomizer = __importStar(require("../formCustomizer"));
|
|
32
37
|
function defineOptions(generator) {
|
|
33
38
|
FieldCustomizer.defineOptions(generator);
|
|
34
39
|
CommandSet.defineOptions(generator);
|
|
40
|
+
FormCustomizer.defineOptions(generator);
|
|
35
41
|
generator.option('extension-type', {
|
|
36
|
-
description: `The type of extension. Currently "ApplicationCustomizer", "FieldCustomizer", "ListViewCommandSet", or "SearchQueryModifier" (beta)`,
|
|
42
|
+
description: `The type of extension. Currently "ApplicationCustomizer", "FieldCustomizer", "ListViewCommandSet", "FormCustomizer", or "SearchQueryModifier" (beta)`,
|
|
37
43
|
type: String
|
|
38
44
|
});
|
|
39
45
|
}
|
|
@@ -53,10 +59,10 @@ class ExtensionSelectorGenerator extends BaseGenerator_1.BaseGenerator {
|
|
|
53
59
|
initializing() {
|
|
54
60
|
/* no-op */
|
|
55
61
|
}
|
|
56
|
-
prompting() {
|
|
62
|
+
async prompting() {
|
|
57
63
|
this.ensureCorrectFolder();
|
|
58
64
|
if (!this.shouldExecute()) {
|
|
59
|
-
return
|
|
65
|
+
return;
|
|
60
66
|
}
|
|
61
67
|
const choices = [
|
|
62
68
|
{
|
|
@@ -70,6 +76,10 @@ class ExtensionSelectorGenerator extends BaseGenerator_1.BaseGenerator {
|
|
|
70
76
|
{
|
|
71
77
|
name: 'ListView Command Set',
|
|
72
78
|
value: 'ListViewCommandSet'
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
name: 'Form Customizer',
|
|
82
|
+
value: 'FormCustomizer'
|
|
73
83
|
}
|
|
74
84
|
];
|
|
75
85
|
if (this.config.get('plusBeta') === true) {
|
|
@@ -78,7 +88,8 @@ class ExtensionSelectorGenerator extends BaseGenerator_1.BaseGenerator {
|
|
|
78
88
|
value: 'SearchQueryModifier'
|
|
79
89
|
});
|
|
80
90
|
}
|
|
81
|
-
|
|
91
|
+
const validExtensionTypes = new Set(choices.map((choice) => choice.value));
|
|
92
|
+
const answers = await this.prompt([
|
|
82
93
|
{
|
|
83
94
|
type: 'list',
|
|
84
95
|
name: 'extensionType',
|
|
@@ -87,16 +98,14 @@ class ExtensionSelectorGenerator extends BaseGenerator_1.BaseGenerator {
|
|
|
87
98
|
message: 'Which type of client-side extension to create?',
|
|
88
99
|
choices
|
|
89
100
|
}
|
|
90
|
-
])
|
|
91
|
-
|
|
101
|
+
]);
|
|
102
|
+
const extensionType = answers.extensionType || this.config.get('extensionType');
|
|
103
|
+
if (validExtensionTypes.has(extensionType)) {
|
|
92
104
|
this.config.set('extensionType', extensionType);
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
this.log(colors_1.default.red(`Invalid extensionType: "${extensionType}"`));
|
|
98
|
-
}
|
|
99
|
-
});
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
this.log(colors_1.default.red(`Invalid extensionType: "${extensionType}"`));
|
|
108
|
+
}
|
|
100
109
|
}
|
|
101
110
|
configuring() {
|
|
102
111
|
/* no-op */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/fieldCustomizer/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAG7F,OAAO,KAAK,aAAa,MAAM,qCAAqC,CAAC;AAErE,MAAM,WAAW,uBAAwB,SAAQ,aAAa,CAAC,qBAAqB;CAAG;AACvF,MAAM,WAAW,uBAAwB,SAAQ,aAAa,CAAC,qBAAqB;IAClF,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,WAAW,CAAC,QAAQ,SAAS,YAAY,EAAE,QAAQ,EACjE,IAAI,EAAE,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,EACvC,OAAO,EAAE,YAAY,GACpB,IAAI,CAEN;AAED,wBAAgB,aAAa,CAAC,QAAQ,SAAS,YAAY,EAAE,QAAQ,EACnE,SAAS,EAAE,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAC3C,IAAI,CAEN;AAED,qBAAa,wBAAyB,SAAQ,aAAa,CAAC,sBAAsB,CAChF,uBAAuB,EACvB,uBAAuB,CACxB;IACC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAsB;IAC7D,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAqB;IACxD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,CAAwB;IAE1E,YAAY,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/fieldCustomizer/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAG7F,OAAO,KAAK,aAAa,MAAM,qCAAqC,CAAC;AAErE,MAAM,WAAW,uBAAwB,SAAQ,aAAa,CAAC,qBAAqB;CAAG;AACvF,MAAM,WAAW,uBAAwB,SAAQ,aAAa,CAAC,qBAAqB;IAClF,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,WAAW,CAAC,QAAQ,SAAS,YAAY,EAAE,QAAQ,EACjE,IAAI,EAAE,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,EACvC,OAAO,EAAE,YAAY,GACpB,IAAI,CAEN;AAED,wBAAgB,aAAa,CAAC,QAAQ,SAAS,YAAY,EAAE,QAAQ,EACnE,SAAS,EAAE,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAC3C,IAAI,CAEN;AAED,qBAAa,wBAAyB,SAAQ,aAAa,CAAC,sBAAsB,CAChF,uBAAuB,EACvB,uBAAuB,CACxB;IACC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAsB;IAC7D,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAqB;IACxD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,CAAwB;IAE1E,YAAY,IAAI,IAAI;IAId,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAOhC,WAAW,IAAI,IAAI;IAoBnB,OAAO,IAAI,IAAI;IAuBf,OAAO,IAAI,IAAI;IAMf,GAAG,IAAI,IAAI;IAIlB,SAAS,aAAa,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,EAAE,uBAAuB;IAK/E,SAAS,CAAC,0BAA0B,IAAI,OAAO;IAI/C,OAAO,CAAC,aAAa;CAOtB"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -14,7 +18,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
14
18
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
19
|
if (mod && mod.__esModule) return mod;
|
|
16
20
|
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
22
|
__setModuleDefault(result, mod);
|
|
19
23
|
return result;
|
|
20
24
|
};
|
|
@@ -42,12 +46,11 @@ class FieldCustomizerGenerator extends BaseExtension.BaseExtensionGenerator {
|
|
|
42
46
|
initializing() {
|
|
43
47
|
/* no-op */
|
|
44
48
|
}
|
|
45
|
-
prompting() {
|
|
49
|
+
async prompting() {
|
|
46
50
|
this.ensureCorrectFolder();
|
|
47
|
-
if (
|
|
48
|
-
|
|
51
|
+
if (this.shouldExecute()) {
|
|
52
|
+
await super.prompting();
|
|
49
53
|
}
|
|
50
|
-
return super.prompting();
|
|
51
54
|
}
|
|
52
55
|
configuring() {
|
|
53
56
|
if (this.shouldExecute()) {
|
|
@@ -88,7 +91,7 @@ class FieldCustomizerGenerator extends BaseExtension.BaseExtensionGenerator {
|
|
|
88
91
|
}
|
|
89
92
|
}
|
|
90
93
|
end() {
|
|
91
|
-
|
|
94
|
+
super.end();
|
|
92
95
|
}
|
|
93
96
|
includeClientSideInstances() {
|
|
94
97
|
return false;
|
|
@@ -20,7 +20,7 @@ export default class <%= componentClassName %>
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
public onRenderCell(event: IFieldCustomizerCellEventParameters): void {
|
|
23
|
-
event.domElement.classList.add(styles.<%=
|
|
23
|
+
event.domElement.classList.add(styles.<%= componentNameCamelCase %>);
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
public onDisposeCell(event: IFieldCustomizerCellEventParameters): void {
|
|
@@ -37,7 +37,7 @@ export default class <%= componentClassName %>
|
|
|
37
37
|
|
|
38
38
|
event.domElement.innerText = text;
|
|
39
39
|
|
|
40
|
-
event.domElement.classList.add(styles.<%=
|
|
40
|
+
event.domElement.classList.add(styles.<%= componentNameCamelCase %>);
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
public onDisposeCell(event: IFieldCustomizerCellEventParameters): void {
|
|
@@ -20,7 +20,7 @@ export default class <%= componentName %> extends React.Component<I<%= component
|
|
|
20
20
|
|
|
21
21
|
public render(): React.ReactElement<{}> {
|
|
22
22
|
return (
|
|
23
|
-
<div className={styles.<%=
|
|
23
|
+
<div className={styles.<%= componentNameCamelCase %>}>
|
|
24
24
|
{ this.props.text }
|
|
25
25
|
</div>
|
|
26
26
|
);
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { IBaseOptions, BaseGenerator, AvailableTemplates } from '../../common/BaseGenerator';
|
|
2
|
+
import * as BaseExtension from '../extension/BaseExtensionGenerator';
|
|
3
|
+
export interface IFormCustomizerOptions extends BaseExtension.IBaseExtensionOptions {
|
|
4
|
+
}
|
|
5
|
+
export interface IFormCustomizerContext extends BaseExtension.IBaseExtensionContext {
|
|
6
|
+
}
|
|
7
|
+
export declare function composeWith<TOptions extends IBaseOptions, TContext>(base: BaseGenerator<TOptions, TContext>, options: IBaseOptions): void;
|
|
8
|
+
export declare function defineOptions<TOptions extends IBaseOptions, TContext>(generator: BaseGenerator<TOptions, TContext>): void;
|
|
9
|
+
export declare class FormCustomizerGenerator extends BaseExtension.BaseExtensionGenerator<IFormCustomizerOptions, IFormCustomizerContext> {
|
|
10
|
+
protected readonly friendlyName: string;
|
|
11
|
+
protected readonly codeName: string;
|
|
12
|
+
protected readonly allowedTemplates: AvailableTemplates[];
|
|
13
|
+
initializing(): void;
|
|
14
|
+
prompting(): Promise<void>;
|
|
15
|
+
configuring(): void;
|
|
16
|
+
writing(): void;
|
|
17
|
+
install(): void;
|
|
18
|
+
end(): void;
|
|
19
|
+
protected constructor(args: string | string[], options: IFormCustomizerOptions);
|
|
20
|
+
protected addFeature(): void;
|
|
21
|
+
protected includeClientSideInstances(): boolean;
|
|
22
|
+
private shouldExecute;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/formCustomizer/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAI7F,OAAO,KAAK,aAAa,MAAM,qCAAqC,CAAC;AAErE,MAAM,WAAW,sBAAuB,SAAQ,aAAa,CAAC,qBAAqB;CAAG;AACtF,MAAM,WAAW,sBAAuB,SAAQ,aAAa,CAAC,qBAAqB;CAAG;AAEtF,wBAAgB,WAAW,CAAC,QAAQ,SAAS,YAAY,EAAE,QAAQ,EACjE,IAAI,EAAE,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,EACvC,OAAO,EAAE,YAAY,GACpB,IAAI,CAEN;AAED,wBAAgB,aAAa,CAAC,QAAQ,SAAS,YAAY,EAAE,QAAQ,EACnE,SAAS,EAAE,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAC3C,IAAI,CAEN;AAED,qBAAa,uBAAwB,SAAQ,aAAa,CAAC,sBAAsB,CAC/E,sBAAsB,EACtB,sBAAsB,CACvB;IACC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAqB;IAC5D,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAoB;IACvD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,CAAqB;IAEvE,YAAY,IAAI,IAAI;IAIpB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ1B,WAAW,IAAI,IAAI;IAgDnB,OAAO,IAAI,IAAI;IAgBf,OAAO,IAAI,IAAI;IAMf,GAAG,IAAI,IAAI;IAIlB,SAAS,aAAa,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,EAAE,sBAAsB;IAK9E,SAAS,CAAC,UAAU,IAAI,IAAI;IAY5B,SAAS,CAAC,0BAA0B,IAAI,OAAO;IAI/C,OAAO,CAAC,aAAa;CAOtB"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.FormCustomizerGenerator = exports.defineOptions = exports.composeWith = void 0;
|
|
27
|
+
const path = __importStar(require("path"));
|
|
28
|
+
const Utils = __importStar(require("../../common/utilities"));
|
|
29
|
+
const YeomanConfiguration_1 = require("../../common/YeomanConfiguration");
|
|
30
|
+
const BaseExtension = __importStar(require("../extension/BaseExtensionGenerator"));
|
|
31
|
+
function composeWith(base, options) {
|
|
32
|
+
Utils.compose(path.basename(__dirname), base, options);
|
|
33
|
+
}
|
|
34
|
+
exports.composeWith = composeWith;
|
|
35
|
+
function defineOptions(generator) {
|
|
36
|
+
BaseExtension.defineOptions(generator, 'Form Customizer');
|
|
37
|
+
}
|
|
38
|
+
exports.defineOptions = defineOptions;
|
|
39
|
+
class FormCustomizerGenerator extends BaseExtension.BaseExtensionGenerator {
|
|
40
|
+
constructor(args, options) {
|
|
41
|
+
super(args, options);
|
|
42
|
+
this.friendlyName = 'Form Customizer';
|
|
43
|
+
this.codeName = 'FormCustomizer';
|
|
44
|
+
this.allowedTemplates = ['react', 'none'];
|
|
45
|
+
defineOptions(this);
|
|
46
|
+
}
|
|
47
|
+
initializing() {
|
|
48
|
+
/* no-op */
|
|
49
|
+
}
|
|
50
|
+
prompting() {
|
|
51
|
+
this.ensureCorrectFolder();
|
|
52
|
+
if (!this.shouldExecute()) {
|
|
53
|
+
return Promise.resolve();
|
|
54
|
+
}
|
|
55
|
+
return super.prompting();
|
|
56
|
+
}
|
|
57
|
+
configuring() {
|
|
58
|
+
if (this.shouldExecute()) {
|
|
59
|
+
super.configuring();
|
|
60
|
+
this.ensureDependencyGroup('formCustomizer');
|
|
61
|
+
// New Form
|
|
62
|
+
this.serveJson.addConfiguration(`${this.context.componentNameCamelCase}_NewForm`, {
|
|
63
|
+
pageUrl: 'https://contoso.sharepoint.com/sites/mySite/_layouts/15/SPListForm.aspx',
|
|
64
|
+
formCustomizer: {
|
|
65
|
+
componentId: this.context.componentId,
|
|
66
|
+
PageType: 8,
|
|
67
|
+
RootFolder: '/sites/mySite/Lists/MyList',
|
|
68
|
+
properties: {
|
|
69
|
+
sampleText: 'Value'
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
// Edit Form
|
|
74
|
+
this.serveJson.addConfiguration(`${this.context.componentNameCamelCase}_EditForm`, {
|
|
75
|
+
pageUrl: 'https://contoso.sharepoint.com/sites/mySite/_layouts/15/SPListForm.aspx',
|
|
76
|
+
formCustomizer: {
|
|
77
|
+
componentId: this.context.componentId,
|
|
78
|
+
PageType: 6,
|
|
79
|
+
RootFolder: '/sites/mySite/Lists/MyList',
|
|
80
|
+
ID: 1,
|
|
81
|
+
properties: {
|
|
82
|
+
sampleText: 'Value'
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
// View Form
|
|
87
|
+
this.serveJson.addConfiguration(`${this.context.componentNameCamelCase}_ViewForm`, {
|
|
88
|
+
pageUrl: 'https://contoso.sharepoint.com/sites/mySite/_layouts/15/SPListForm.aspx',
|
|
89
|
+
formCustomizer: {
|
|
90
|
+
componentId: this.context.componentId,
|
|
91
|
+
PageType: 4,
|
|
92
|
+
RootFolder: '/sites/mySite/Lists/MyList',
|
|
93
|
+
ID: 1,
|
|
94
|
+
properties: {
|
|
95
|
+
sampleText: 'Value'
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
writing() {
|
|
102
|
+
if (this.shouldExecute()) {
|
|
103
|
+
super.writing(false);
|
|
104
|
+
const dest = this._getOutputFolder(this.context.componentNameCamelCase);
|
|
105
|
+
const template = this.context.template;
|
|
106
|
+
this.copyTemplate(path.join(this.sourceRoot(), template), dest);
|
|
107
|
+
if (template !== 'minimal') {
|
|
108
|
+
this.copyTemplate(path.join(this.sourceRoot(), 'loc'), path.join(dest, 'loc'));
|
|
109
|
+
}
|
|
110
|
+
this.copyTemplate(path.join(this.sourceRoot(), 'base'), dest);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
install() {
|
|
114
|
+
if (this.shouldExecute()) {
|
|
115
|
+
super.install();
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
end() {
|
|
119
|
+
super.end();
|
|
120
|
+
}
|
|
121
|
+
addFeature() {
|
|
122
|
+
if (!this.hasElementsXml()) {
|
|
123
|
+
const solutionName = YeomanConfiguration_1.YeomanConfiguration.libraryName;
|
|
124
|
+
this.packageSolutionJson.addFeature(Utils.generateGuid(), `${solutionName} Feature`, `The feature that activates elements of the ${solutionName} solution.`, false);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
includeClientSideInstances() {
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
shouldExecute() {
|
|
131
|
+
return (this.config.get('environment') === 'spo' &&
|
|
132
|
+
this.config.get('componentType') === 'extension' &&
|
|
133
|
+
this.config.get('extensionType') === 'FormCustomizer');
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
exports.FormCustomizerGenerator = FormCustomizerGenerator;
|
|
137
|
+
// Yeoman expects exports of this type, which overrides the TS exports above
|
|
138
|
+
// Ensure that anything marked as export above is also listed here
|
|
139
|
+
module.exports = FormCustomizerGenerator;
|
|
140
|
+
module.exports.defineOptions = defineOptions;
|
|
141
|
+
module.exports.composeWith = composeWith;
|
|
142
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://developer.microsoft.com/json-schemas/spfx/client-side-extension-manifest.schema.json",
|
|
3
|
+
|
|
4
|
+
"id": "<%= componentId %>",
|
|
5
|
+
"alias": "<%= componentAlias %>",
|
|
6
|
+
"componentType": "Extension",
|
|
7
|
+
"extensionType": "FormCustomizer",
|
|
8
|
+
|
|
9
|
+
// The "*" signifies that the version should be taken from the package.json
|
|
10
|
+
"version": "*",
|
|
11
|
+
"manifestVersion": 2,
|
|
12
|
+
|
|
13
|
+
// If true, the component can only be installed on sites where Custom Script is allowed.
|
|
14
|
+
// Components that allow authors to embed arbitrary script code should set this to true.
|
|
15
|
+
// https://support.office.com/en-us/article/Turn-scripting-capabilities-on-or-off-1f2c515f-5d7e-448a-9fd7-835da935584f
|
|
16
|
+
"requiresCustomScript": false
|
|
17
|
+
}
|