@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.
Files changed (108) hide show
  1. package/lib/common/BaseGenerator.d.ts +5 -7
  2. package/lib/common/BaseGenerator.d.ts.map +1 -1
  3. package/lib/common/BaseGenerator.js +38 -57
  4. package/lib/common/JsonManager.d.ts +1 -1
  5. package/lib/common/JsonManager.d.ts.map +1 -1
  6. package/lib/common/JsonManager.js +6 -2
  7. package/lib/common/ServeJsonManager.js +6 -2
  8. package/lib/common/YeomanConfiguration.d.ts +2 -0
  9. package/lib/common/YeomanConfiguration.d.ts.map +1 -1
  10. package/lib/common/YeomanConfiguration.js +8 -1
  11. package/lib/common/dependencies.json +228 -0
  12. package/lib/common/spsay.d.ts +1 -1
  13. package/lib/common/spsay.d.ts.map +1 -1
  14. package/lib/common/spsay.js +9 -9
  15. package/lib/common/utilities.d.ts.map +1 -1
  16. package/lib/common/utilities.js +21 -16
  17. package/lib/generators/adaptiveCardExtension/index.d.ts.map +1 -1
  18. package/lib/generators/adaptiveCardExtension/index.js +19 -16
  19. package/lib/generators/adaptiveCardExtension/templates/manifestTemplate/baseTemplate/{componentClassName}.manifest.json +3 -3
  20. package/lib/generators/adaptiveCardExtension/templates/manifestTemplate/imageTemplate/{componentClassName}.manifest.json +1 -2
  21. package/lib/generators/adaptiveCardExtension/templates/none/quickView/QuickView.ts +1 -1
  22. package/lib/generators/app/index.d.ts.map +1 -1
  23. package/lib/generators/app/index.js +13 -3
  24. package/lib/generators/applicationCustomizer/index.d.ts.map +1 -1
  25. package/lib/generators/applicationCustomizer/index.js +10 -7
  26. package/lib/generators/applicationCustomizer/templates/none/{componentClassName}.ts +3 -1
  27. package/lib/generators/commandSet/index.d.ts.map +1 -1
  28. package/lib/generators/commandSet/index.js +10 -7
  29. package/lib/generators/commandSet/templates/none/{componentClassName}.ts +27 -13
  30. package/lib/generators/component/BaseComponentGenerator.d.ts +3 -0
  31. package/lib/generators/component/BaseComponentGenerator.d.ts.map +1 -1
  32. package/lib/generators/component/BaseComponentGenerator.js +94 -76
  33. package/lib/generators/component/index.d.ts.map +1 -1
  34. package/lib/generators/component/index.js +20 -25
  35. package/lib/generators/component/templates/eslint/default.eslintrc.js +5 -0
  36. package/lib/generators/component/templates/eslint/react.eslintrc.js +5 -0
  37. package/lib/generators/extension/BaseExtensionGenerator.d.ts +2 -2
  38. package/lib/generators/extension/BaseExtensionGenerator.d.ts.map +1 -1
  39. package/lib/generators/extension/BaseExtensionGenerator.js +14 -8
  40. package/lib/generators/extension/index.d.ts +2 -1
  41. package/lib/generators/extension/index.d.ts.map +1 -1
  42. package/lib/generators/extension/index.js +24 -15
  43. package/lib/generators/fieldCustomizer/index.d.ts.map +1 -1
  44. package/lib/generators/fieldCustomizer/index.js +10 -7
  45. package/lib/generators/fieldCustomizer/templates/minimal/{componentClassName}.module.scss +1 -1
  46. package/lib/generators/fieldCustomizer/templates/minimal/{componentClassName}.ts +1 -1
  47. package/lib/generators/fieldCustomizer/templates/none/{componentClassName}.module.scss +1 -1
  48. package/lib/generators/fieldCustomizer/templates/none/{componentClassName}.ts +1 -1
  49. package/lib/generators/fieldCustomizer/templates/react/components/{componentName}.module.scss +1 -1
  50. package/lib/generators/fieldCustomizer/templates/react/components/{componentName}.tsx +1 -1
  51. package/lib/generators/formCustomizer/index.d.ts +24 -0
  52. package/lib/generators/formCustomizer/index.d.ts.map +1 -0
  53. package/lib/generators/formCustomizer/index.js +142 -0
  54. package/lib/generators/formCustomizer/templates/base/{componentClassName}.manifest.json +17 -0
  55. package/lib/generators/formCustomizer/templates/loc/en-us.js +7 -0
  56. package/lib/generators/formCustomizer/templates/loc/myStrings.d.ts +10 -0
  57. package/lib/generators/formCustomizer/templates/none/{componentClassName}.module.scss +5 -0
  58. package/lib/generators/formCustomizer/templates/none/{componentClassName}.ts +53 -0
  59. package/lib/generators/formCustomizer/templates/react/components/{componentName}.module.scss +5 -0
  60. package/lib/generators/formCustomizer/templates/react/components/{componentName}.tsx +28 -0
  61. package/lib/generators/formCustomizer/templates/react/{componentClassName}.ts +64 -0
  62. package/lib/generators/library/index.d.ts.map +1 -1
  63. package/lib/generators/library/index.js +10 -7
  64. package/lib/generators/searchQueryModifier/index.d.ts.map +1 -1
  65. package/lib/generators/searchQueryModifier/index.js +10 -7
  66. package/lib/generators/solution/heft.package.json +14 -0
  67. package/lib/generators/solution/index.d.ts +1 -0
  68. package/lib/generators/solution/index.d.ts.map +1 -1
  69. package/lib/generators/solution/index.js +102 -68
  70. package/lib/generators/solution/{initial.package.json → non-heft.package.json} +0 -0
  71. package/lib/generators/solution/templates/base/README.md +10 -10
  72. package/lib/generators/solution/templates/base/_gitignore +1 -0
  73. package/lib/generators/solution/templates/{base → gulp}/.vscode/launch.json +0 -0
  74. package/lib/generators/solution/templates/{base → gulp}/_npmignore +0 -0
  75. package/lib/generators/solution/templates/{base → gulp}/gulpfile.js +0 -0
  76. package/lib/generators/solution/templates/{base → gulp}/src/index.ts +0 -0
  77. package/lib/generators/solution/templates/heft/_npmignore +16 -0
  78. package/lib/generators/solution/templates/heft/config/rig.json +7 -0
  79. package/lib/generators/solution/templates/heft/config/typescript.json +21 -0
  80. package/lib/generators/solution/templates/heft/tsconfig.json +6 -0
  81. package/lib/generators/solution/templates/spo/tsconfig.json +1 -1
  82. package/lib/generators/webpart/index.d.ts.map +1 -1
  83. package/lib/generators/webpart/index.js +10 -7
  84. package/lib/generators/webpart/initial.teamsManifest.json +6 -0
  85. package/lib/generators/webpart/templates/minimal/{componentClassName}.ts +3 -4
  86. package/lib/generators/webpart/templates/none/{componentClassName}.ts +14 -9
  87. package/lib/generators/webpart/templates/react/components/{componentName}.tsx +8 -8
  88. package/lib/generators/webpart/templates/react/{componentClassName}.ts +12 -9
  89. package/package.json +5 -5
  90. package/lib/common/dependency/adaptiveCardExtension/firstParty.json +0 -13
  91. package/lib/common/dependency/adaptiveCardExtension/firstPartyPlusBeta.json +0 -13
  92. package/lib/common/dependency/applicationCustomizer.json +0 -6
  93. package/lib/common/dependency/applicationCustomizerPlusBeta.json +0 -6
  94. package/lib/common/dependency/commandSet.json +0 -6
  95. package/lib/common/dependency/commandSetPlusBeta.json +0 -6
  96. package/lib/common/dependency/extension/firstParty.json +0 -12
  97. package/lib/common/dependency/extension/firstPartyPlusBeta.json +0 -12
  98. package/lib/common/dependency/fieldCustomizer.json +0 -5
  99. package/lib/common/dependency/fieldCustomizerPlusBeta.json +0 -5
  100. package/lib/common/dependency/library/firstParty.json +0 -9
  101. package/lib/common/dependency/library/firstPartyPlusBeta.json +0 -9
  102. package/lib/common/dependency/react.json +0 -11
  103. package/lib/common/dependency/searchQueryModifier.json +0 -5
  104. package/lib/common/dependency/searchQueryModifierPlusBeta.json +0 -5
  105. package/lib/common/dependency/thirdParty.json +0 -8
  106. package/lib/common/dependency/webpart/firstParty.json +0 -15
  107. package/lib/common/dependency/webpart/firstPartyPlusBeta.json +0 -15
  108. 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;IAIpB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAkE1B,WAAW,IAAI,IAAI;IAGnB,OAAO,IAAI,IAAI;IAGf,OAAO,IAAI,IAAI;IAGf,GAAG,IAAI,IAAI;IAIlB,OAAO,CAAC,aAAa;CAGtB"}
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.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
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 Promise.resolve();
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
- return this.prompt([
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
- ]).then((answers) => {
104
- const componentType = answers.componentType || this.config.get('componentType');
105
- if (componentType === 'webpart') {
106
- this.config.set('componentType', 'webpart');
107
- }
108
- else if (componentType === 'extension') {
109
- this.config.set('componentType', 'extension');
110
- }
111
- else if (componentType === 'adaptiveCardExtension') {
112
- this.config.set('componentType', 'adaptiveCardExtension');
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 */
@@ -0,0 +1,5 @@
1
+ require('@rushstack/eslint-config/patch/modern-module-resolution');
2
+ module.exports = {
3
+ extends: ['@microsoft/eslint-config-spfx/lib/profiles/default'],
4
+ parserOptions: { tsconfigRootDir: __dirname }
5
+ };
@@ -0,0 +1,5 @@
1
+ require('@rushstack/eslint-config/patch/modern-module-resolution');
2
+ module.exports = {
3
+ extends: ['@microsoft/eslint-config-spfx/lib/profiles/react'],
4
+ parserOptions: { tsconfigRootDir: __dirname }
5
+ };
@@ -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;AAE1B,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,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAI1B,WAAW,IAAI,IAAI;IAQnB,OAAO,CAAC,UAAU,GAAE,OAAc,GAAG,IAAI;IAoBzC,OAAO,IAAI,IAAI;IAItB,SAAS,CAAC,QAAQ,CAAC,0BAA0B,IAAI,OAAO;IAExD,SAAS,CAAC,cAAc,IAAI,OAAO;IAKnC,OAAO,CAAC,2BAA2B;CAgBpC"}
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.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
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
- if (!this.hasElementsXml()) {
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
- export interface IExtensionOptions extends FieldCustomizer.IFieldCustomizerOptions, CommandSet.ICommandSetOptions, ApplicationCustomizer.IApplicationCustomizerOptions {
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;AAE1D,MAAM,WAAW,iBACf,SAAQ,eAAe,CAAC,uBAAuB,EAC7C,UAAU,CAAC,kBAAkB,EAC7B,qBAAqB,CAAC,6BAA6B;IACrD,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,CAON;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;IAIpB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IA4D1B,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
+ {"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.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
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 Promise.resolve();
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
- return this.prompt([
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
- ]).then((answers) => {
91
- const extensionType = answers.extensionType || this.config.get('extensionType');
101
+ ]);
102
+ const extensionType = answers.extensionType || this.config.get('extensionType');
103
+ if (validExtensionTypes.has(extensionType)) {
92
104
  this.config.set('extensionType', extensionType);
93
- if (!(extensionType === 'FieldCustomizer' ||
94
- extensionType === 'ListViewCommandSet' ||
95
- extensionType === 'ApplicationCustomizer' ||
96
- extensionType === 'SearchQueryModifier')) {
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;IAIpB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ1B,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
+ {"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.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
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 (!this.shouldExecute()) {
48
- return Promise.resolve();
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
- /* no-op */
94
+ super.end();
92
95
  }
93
96
  includeClientSideInstances() {
94
97
  return false;
@@ -1,3 +1,3 @@
1
- .<%= componentName %> {
1
+ .<%= componentNameCamelCase %> {
2
2
  color: inherit;
3
3
  }
@@ -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.<%= componentName %>);
23
+ event.domElement.classList.add(styles.<%= componentNameCamelCase %>);
24
24
  }
25
25
 
26
26
  public onDisposeCell(event: IFieldCustomizerCellEventParameters): void {
@@ -1,4 +1,4 @@
1
- .<%= componentName %> {
1
+ .<%= componentNameCamelCase %> {
2
2
  background-color: "[theme:themePrimary, default:#0078d4]";
3
3
  color: "[theme:white, default:#ffffff]";
4
4
  text-align: center;
@@ -37,7 +37,7 @@ export default class <%= componentClassName %>
37
37
 
38
38
  event.domElement.innerText = text;
39
39
 
40
- event.domElement.classList.add(styles.<%= componentName %>);
40
+ event.domElement.classList.add(styles.<%= componentNameCamelCase %>);
41
41
  }
42
42
 
43
43
  public onDisposeCell(event: IFieldCustomizerCellEventParameters): void {
@@ -1,4 +1,4 @@
1
- .<%= componentName %> {
1
+ .<%= componentNameCamelCase %> {
2
2
  background-color: "[theme:themePrimary, default:#0078d4]";
3
3
  color: "[theme:white, default:#ffffff]";
4
4
  text-align: center;
@@ -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.<%= componentName %>}>
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
+ }
@@ -0,0 +1,7 @@
1
+ define([], function() {
2
+ return {
3
+ "Save": "Save",
4
+ "Cancel": "Cancel",
5
+ "Close": "Close"
6
+ }
7
+ });
@@ -0,0 +1,10 @@
1
+ declare interface I<%= componentStrings %> {
2
+ Save: string;
3
+ Cancel: string;
4
+ Close: string;
5
+ }
6
+
7
+ declare module '<%= componentStrings %>' {
8
+ const strings: I<%= componentStrings %>;
9
+ export = strings;
10
+ }
@@ -0,0 +1,5 @@
1
+ .<%= componentNameCamelCase %> {
2
+ background-color: "[theme:white, default:#ffffff]";
3
+ color: "[theme:themePrimary, default:#0078d4]";
4
+ padding: 0.5rem;
5
+ }