@pnp/spfx-property-controls 3.21.0 → 3.22.0-beta.1921141

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 (38) hide show
  1. package/CHANGELOG.json +9 -0
  2. package/lib/PropertyFieldBrandFontPicker.d.ts +2 -0
  3. package/lib/PropertyFieldBrandFontPicker.d.ts.map +1 -0
  4. package/lib/PropertyFieldBrandFontPicker.js +2 -0
  5. package/lib/PropertyFieldBrandFontPicker.js.map +1 -0
  6. package/lib/common/telemetry/version.d.ts.map +1 -1
  7. package/lib/common/telemetry/version.js +1 -1
  8. package/lib/common/telemetry/version.js.map +1 -1
  9. package/lib/index.d.ts +1 -0
  10. package/lib/index.d.ts.map +1 -1
  11. package/lib/index.js +1 -0
  12. package/lib/index.js.map +1 -1
  13. package/lib/propertyFields/brandFontPicker/IPropertyFieldBrandFontPicker.d.ts +117 -0
  14. package/lib/propertyFields/brandFontPicker/IPropertyFieldBrandFontPicker.d.ts.map +1 -0
  15. package/lib/propertyFields/brandFontPicker/IPropertyFieldBrandFontPicker.js +2 -0
  16. package/lib/propertyFields/brandFontPicker/IPropertyFieldBrandFontPicker.js.map +1 -0
  17. package/lib/propertyFields/brandFontPicker/IPropertyFieldBrandFontPickerHost.d.ts +29 -0
  18. package/lib/propertyFields/brandFontPicker/IPropertyFieldBrandFontPickerHost.d.ts.map +1 -0
  19. package/lib/propertyFields/brandFontPicker/IPropertyFieldBrandFontPickerHost.js +2 -0
  20. package/lib/propertyFields/brandFontPicker/IPropertyFieldBrandFontPickerHost.js.map +1 -0
  21. package/lib/propertyFields/brandFontPicker/PropertyFieldBrandFontPicker.d.ts +9 -0
  22. package/lib/propertyFields/brandFontPicker/PropertyFieldBrandFontPicker.d.ts.map +1 -0
  23. package/lib/propertyFields/brandFontPicker/PropertyFieldBrandFontPicker.js +107 -0
  24. package/lib/propertyFields/brandFontPicker/PropertyFieldBrandFontPicker.js.map +1 -0
  25. package/lib/propertyFields/brandFontPicker/PropertyFieldBrandFontPickerHost.d.ts +28 -0
  26. package/lib/propertyFields/brandFontPicker/PropertyFieldBrandFontPickerHost.d.ts.map +1 -0
  27. package/lib/propertyFields/brandFontPicker/PropertyFieldBrandFontPickerHost.js +223 -0
  28. package/lib/propertyFields/brandFontPicker/PropertyFieldBrandFontPickerHost.js.map +1 -0
  29. package/lib/propertyFields/brandFontPicker/index.d.ts +6 -0
  30. package/lib/propertyFields/brandFontPicker/index.d.ts.map +1 -0
  31. package/lib/propertyFields/brandFontPicker/index.js +6 -0
  32. package/lib/propertyFields/brandFontPicker/index.js.map +1 -0
  33. package/lib/services/BrandCenterService.d.ts +46 -0
  34. package/lib/services/BrandCenterService.d.ts.map +1 -0
  35. package/lib/services/BrandCenterService.js +282 -0
  36. package/lib/services/BrandCenterService.js.map +1 -0
  37. package/package.json +2 -2
  38. package/release/manifests/bd19c378-ab07-4eaa-9bb6-0e329932d8bf.manifest.json +1 -1
package/CHANGELOG.json CHANGED
@@ -1,5 +1,14 @@
1
1
  {
2
2
  "versions": [
3
+ {
4
+ "version": "3.22.0",
5
+ "changes": {
6
+ "new": [],
7
+ "enhancements": [],
8
+ "fixes": []
9
+ },
10
+ "contributions": []
11
+ },
3
12
  {
4
13
  "version": "3.21.0",
5
14
  "changes": {
@@ -0,0 +1,2 @@
1
+ export * from './propertyFields/brandFontPicker';
2
+ //# sourceMappingURL=PropertyFieldBrandFontPicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertyFieldBrandFontPicker.d.ts","sourceRoot":"","sources":["../src/PropertyFieldBrandFontPicker.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './propertyFields/brandFontPicker';
2
+ //# sourceMappingURL=PropertyFieldBrandFontPicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertyFieldBrandFontPicker.js","sourceRoot":"","sources":["../src/PropertyFieldBrandFontPicker.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../src/common/telemetry/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,EAAE,MAAiB,CAAC"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../src/common/telemetry/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,EAAE,MAA8B,CAAC"}
@@ -1,2 +1,2 @@
1
- export const version = "3.21.0";
1
+ export const version = "3.22.0-beta.1921141";
2
2
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/common/telemetry/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAW,QAAQ,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/common/telemetry/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAW,qBAAqB,CAAC"}
package/lib/index.d.ts CHANGED
@@ -8,6 +8,7 @@ export * from './PropertyFieldEnterpriseTermPicker';
8
8
  export * from './PropertyFieldMultiSelect';
9
9
  export * from './PropertyFieldNumber';
10
10
  export * from './PropertyFieldGuid';
11
+ export * from './PropertyFieldBrandFontPicker';
11
12
  export * from './PropertyFieldButtonWithCallout';
12
13
  export * from './PropertyFieldCheckboxWithCallout';
13
14
  export * from './PropertyFieldChoiceGroupWithCallout';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qCAAqC,CAAC;AACpD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oCAAoC,CAAC;AACnD,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAE5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qCAAqC,CAAC;AACpD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAE/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oCAAoC,CAAC;AACnD,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAE5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC"}
package/lib/index.js CHANGED
@@ -8,6 +8,7 @@ export * from './PropertyFieldEnterpriseTermPicker';
8
8
  export * from './PropertyFieldMultiSelect';
9
9
  export * from './PropertyFieldNumber';
10
10
  export * from './PropertyFieldGuid';
11
+ export * from './PropertyFieldBrandFontPicker';
11
12
  export * from './PropertyFieldButtonWithCallout';
12
13
  export * from './PropertyFieldCheckboxWithCallout';
13
14
  export * from './PropertyFieldChoiceGroupWithCallout';
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qCAAqC,CAAC;AACpD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oCAAoC,CAAC;AACnD,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAE5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qCAAqC,CAAC;AACpD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAE/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oCAAoC,CAAC;AACnD,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAE5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,117 @@
1
+ import { IPropertyPaneCustomFieldProps } from '@microsoft/sp-property-pane';
2
+ import { BaseComponentContext } from '@microsoft/sp-component-base';
3
+ /**
4
+ * Brand font token interface
5
+ */
6
+ export interface IBrandFontToken {
7
+ /**
8
+ * The CSS variable name (e.g., "fontFamilyBase")
9
+ */
10
+ name: string;
11
+ /**
12
+ * The display name for the font
13
+ */
14
+ displayName: string;
15
+ /**
16
+ * The font family value (e.g., "Segoe UI, system-ui, sans-serif")
17
+ */
18
+ value: string;
19
+ /**
20
+ * Optional preview text
21
+ */
22
+ preview?: string;
23
+ /**
24
+ * Optional font file URL
25
+ */
26
+ fileUrl?: string;
27
+ /**
28
+ * Font source category
29
+ */
30
+ category?: 'site' | 'organization' | 'microsoft';
31
+ }
32
+ /**
33
+ * Public properties of the PropertyFieldBrandFontPicker custom field
34
+ */
35
+ export interface IPropertyFieldBrandFontPickerProps {
36
+ /**
37
+ * Property field label displayed on top
38
+ */
39
+ label: string;
40
+ /**
41
+ * Defines an onPropertyChange function to raise when the selected value changes.
42
+ * Normally this function must be defined with the 'this.onPropertyChange'
43
+ * method of the web part object.
44
+ */
45
+ onPropertyChange(propertyPath: string, oldValue: any, newValue: any): void;
46
+ /**
47
+ * The initial selected font token name
48
+ */
49
+ initialValue?: string;
50
+ /**
51
+ * Whether the property pane field is enabled or not
52
+ */
53
+ disabled?: boolean;
54
+ /**
55
+ * The context object of the SPFx component
56
+ */
57
+ context: BaseComponentContext;
58
+ /**
59
+ * Custom properties object
60
+ */
61
+ properties?: any;
62
+ /**
63
+ * An unique key that indicates the identity of this control
64
+ */
65
+ key?: string;
66
+ /**
67
+ * Whether the property pane field is visible or not
68
+ */
69
+ isHidden?: boolean;
70
+ /**
71
+ * Custom font tokens to use as fallback or override
72
+ */
73
+ customFontTokens?: IBrandFontToken[];
74
+ /**
75
+ * Callback function that will be called on font tokens loaded
76
+ */
77
+ onFontTokensLoaded?: (tokens: IBrandFontToken[]) => void;
78
+ /**
79
+ * Whether to show preview text in the dropdown
80
+ */
81
+ showPreview?: boolean;
82
+ /**
83
+ * Custom preview text to use
84
+ */
85
+ previewText?: string;
86
+ /**
87
+ * Error message to display when font tokens cannot be loaded
88
+ */
89
+ loadingErrorMessage?: string;
90
+ /**
91
+ * Whether to use system fonts as fallback when Brand Center is not available
92
+ */
93
+ useSystemFallback?: boolean;
94
+ }
95
+ /**
96
+ * Private properties of the PropertyFieldBrandFontPicker custom field.
97
+ * We separate public & private properties to include onRender & onDispose method waited
98
+ * by the PropertyPane control without asking it from the developer
99
+ */
100
+ export interface IPropertyFieldBrandFontPickerPropsInternal extends IPropertyPaneCustomFieldProps {
101
+ label: string;
102
+ initialValue?: string;
103
+ targetProperty: string;
104
+ context: BaseComponentContext;
105
+ onPropertyChange(propertyPath: string, oldValue: any, newValue: any): void;
106
+ properties: any;
107
+ disabled?: boolean;
108
+ key: string;
109
+ isHidden?: boolean;
110
+ customFontTokens?: IBrandFontToken[];
111
+ onFontTokensLoaded?: (tokens: IBrandFontToken[]) => void;
112
+ showPreview?: boolean;
113
+ previewText?: string;
114
+ loadingErrorMessage?: string;
115
+ useSystemFallback?: boolean;
116
+ }
117
+ //# sourceMappingURL=IPropertyFieldBrandFontPicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IPropertyFieldBrandFontPicker.d.ts","sourceRoot":"","sources":["../../../src/propertyFields/brandFontPicker/IPropertyFieldBrandFontPicker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,WAAW,CAAC;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,kCAAkC;IACjD;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;;OAIG;IACH,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC;IAE3E;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,OAAO,EAAE,oBAAoB,CAAC;IAE9B;;OAEG;IACH,UAAU,CAAC,EAAE,GAAG,CAAC;IAEjB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IAErC;;OAEG;IACH,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,IAAI,CAAC;IAEzD;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;GAIG;AACH,MAAM,WAAW,0CAA2C,SAAQ,6BAA6B;IAC/F,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,oBAAoB,CAAC;IAC9B,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC;IAC3E,UAAU,EAAE,GAAG,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,IAAI,CAAC;IACzD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IPropertyFieldBrandFontPicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IPropertyFieldBrandFontPicker.js","sourceRoot":"","sources":["../../../src/propertyFields/brandFontPicker/IPropertyFieldBrandFontPicker.ts"],"names":[],"mappings":""}
@@ -0,0 +1,29 @@
1
+ import { IBrandFontToken } from './IPropertyFieldBrandFontPicker';
2
+ import { BaseComponentContext } from '@microsoft/sp-component-base';
3
+ /**
4
+ * PropertyFieldBrandFontPickerHost properties interface
5
+ */
6
+ export interface IPropertyFieldBrandFontPickerHostProps {
7
+ label: string;
8
+ initialValue?: string;
9
+ targetProperty: string;
10
+ context: BaseComponentContext;
11
+ onSelectionChanged?: (option: IBrandFontToken) => void;
12
+ disabled?: boolean;
13
+ customFontTokens?: IBrandFontToken[];
14
+ onFontTokensLoaded?: (tokens: IBrandFontToken[]) => void;
15
+ showPreview?: boolean;
16
+ previewText?: string;
17
+ loadingErrorMessage?: string;
18
+ useSystemFallback?: boolean;
19
+ }
20
+ /**
21
+ * PropertyFieldBrandFontPickerHost state interface
22
+ */
23
+ export interface IPropertyFieldBrandFontPickerHostState {
24
+ loading: boolean;
25
+ fontTokens: IBrandFontToken[];
26
+ selectedToken?: IBrandFontToken;
27
+ errorMessage?: string;
28
+ }
29
+ //# sourceMappingURL=IPropertyFieldBrandFontPickerHost.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IPropertyFieldBrandFontPickerHost.d.ts","sourceRoot":"","sources":["../../../src/propertyFields/brandFontPicker/IPropertyFieldBrandFontPickerHost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,sCAAsC;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,oBAAoB,CAAC;IAC9B,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,IAAI,CAAC;IACzD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,sCAAsC;IACrD,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IPropertyFieldBrandFontPickerHost.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IPropertyFieldBrandFontPickerHost.js","sourceRoot":"","sources":["../../../src/propertyFields/brandFontPicker/IPropertyFieldBrandFontPickerHost.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { IPropertyPaneField } from '@microsoft/sp-property-pane';
2
+ import { IPropertyFieldBrandFontPickerProps, IPropertyFieldBrandFontPickerPropsInternal } from './IPropertyFieldBrandFontPicker';
3
+ /**
4
+ * Helper method to create a Brand Font Picker on the PropertyPane.
5
+ * @param targetProperty - Target property the Brand Font Picker is associated to.
6
+ * @param properties - Strongly typed Brand Font Picker properties.
7
+ */
8
+ export declare function PropertyFieldBrandFontPicker(targetProperty: string, properties: IPropertyFieldBrandFontPickerProps): IPropertyPaneField<IPropertyFieldBrandFontPickerPropsInternal>;
9
+ //# sourceMappingURL=PropertyFieldBrandFontPicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertyFieldBrandFontPicker.d.ts","sourceRoot":"","sources":["../../../src/propertyFields/brandFontPicker/PropertyFieldBrandFontPicker.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,kBAAkB,EAEnB,MAAM,6BAA6B,CAAC;AAIrC,OAAO,EACL,kCAAkC,EAClC,0CAA0C,EAE3C,MAAM,iCAAiC,CAAC;AAuFzC;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,kCAAkC,GAAG,kBAAkB,CAAC,0CAA0C,CAAC,CAwBnL"}
@@ -0,0 +1,107 @@
1
+ import * as React from 'react';
2
+ import * as ReactDom from 'react-dom';
3
+ import { PropertyPaneFieldType } from '@microsoft/sp-property-pane';
4
+ import { setPropertyValue } from '../../helpers/GeneralHelper';
5
+ import { debounce } from '../../common/util/Util';
6
+ import PropertyFieldBrandFontPickerHost from './PropertyFieldBrandFontPickerHost';
7
+ /**
8
+ * Represents a PropertyFieldBrandFontPicker object
9
+ */
10
+ class PropertyFieldBrandFontPickerBuilder {
11
+ constructor(_targetProperty, _properties) {
12
+ // Properties defined by IPropertyPaneField
13
+ this.type = PropertyPaneFieldType.Custom;
14
+ this._debounce = debounce(); // eslint-disable-line @typescript-eslint/no-explicit-any
15
+ this.targetProperty = _targetProperty;
16
+ this.properties = {
17
+ key: _properties.key,
18
+ label: _properties.label,
19
+ targetProperty: _targetProperty,
20
+ onPropertyChange: _properties.onPropertyChange,
21
+ initialValue: _properties.initialValue,
22
+ disabled: _properties.disabled,
23
+ isHidden: _properties.isHidden,
24
+ context: _properties.context,
25
+ properties: _properties.properties,
26
+ customFontTokens: _properties.customFontTokens,
27
+ onFontTokensLoaded: _properties.onFontTokensLoaded,
28
+ showPreview: _properties.showPreview,
29
+ previewText: _properties.previewText,
30
+ loadingErrorMessage: _properties.loadingErrorMessage,
31
+ useSystemFallback: _properties.useSystemFallback,
32
+ onRender: this.onRender.bind(this),
33
+ onDispose: this.onDispose.bind(this)
34
+ };
35
+ }
36
+ /**
37
+ * Renders the BrandFontPicker field content
38
+ */
39
+ onRender(elem, ctx, changeCallback) {
40
+ if (!this.elem) {
41
+ this.elem = elem;
42
+ }
43
+ this.changeCB = changeCallback;
44
+ const element = React.createElement(PropertyFieldBrandFontPickerHost, {
45
+ label: this.properties.label,
46
+ targetProperty: this.targetProperty,
47
+ context: this.properties.context,
48
+ initialValue: this.properties.initialValue,
49
+ disabled: this.properties.disabled,
50
+ onSelectionChanged: this.onSelectionChanged.bind(this),
51
+ customFontTokens: this.properties.customFontTokens,
52
+ onFontTokensLoaded: this.properties.onFontTokensLoaded,
53
+ showPreview: this.properties.showPreview,
54
+ previewText: this.properties.previewText,
55
+ loadingErrorMessage: this.properties.loadingErrorMessage,
56
+ useSystemFallback: this.properties.useSystemFallback
57
+ });
58
+ ReactDom.render(element, elem);
59
+ }
60
+ /**
61
+ * Disposes the current object
62
+ */
63
+ onDispose(elem) {
64
+ ReactDom.unmountComponentAtNode(elem);
65
+ }
66
+ /**
67
+ * Called when the font selection has been changed
68
+ */
69
+ onSelectionChanged(option) {
70
+ this._debounce(() => {
71
+ setPropertyValue(this.properties.properties, this.targetProperty, option.value);
72
+ this.properties.onPropertyChange(this.targetProperty, this.properties.initialValue, option.value);
73
+ if (typeof this.changeCB !== 'undefined' && this.changeCB !== null) {
74
+ this.changeCB(this.targetProperty, option.value);
75
+ }
76
+ }, 200);
77
+ }
78
+ }
79
+ /**
80
+ * Helper method to create a Brand Font Picker on the PropertyPane.
81
+ * @param targetProperty - Target property the Brand Font Picker is associated to.
82
+ * @param properties - Strongly typed Brand Font Picker properties.
83
+ */
84
+ export function PropertyFieldBrandFontPicker(targetProperty, properties) {
85
+ // Create an internal properties object from the given properties
86
+ const newProperties = {
87
+ label: properties.label,
88
+ onPropertyChange: properties.onPropertyChange,
89
+ context: properties.context,
90
+ initialValue: properties.initialValue,
91
+ disabled: properties.disabled,
92
+ isHidden: properties.isHidden,
93
+ properties: properties.properties,
94
+ customFontTokens: properties.customFontTokens,
95
+ onFontTokensLoaded: properties.onFontTokensLoaded,
96
+ showPreview: properties.showPreview !== false, // Default to true
97
+ previewText: properties.previewText,
98
+ loadingErrorMessage: properties.loadingErrorMessage,
99
+ useSystemFallback: properties.useSystemFallback !== false, // Default to true
100
+ key: properties.key
101
+ };
102
+ // Safely set the property
103
+ setPropertyValue(newProperties.properties, targetProperty, newProperties.initialValue);
104
+ // Create a new instance of the PropertyFieldBrandFontPickerBuilder
105
+ return new PropertyFieldBrandFontPickerBuilder(targetProperty, newProperties);
106
+ }
107
+ //# sourceMappingURL=PropertyFieldBrandFontPicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertyFieldBrandFontPicker.js","sourceRoot":"","sources":["../../../src/propertyFields/brandFontPicker/PropertyFieldBrandFontPicker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import * as React from 'react';
2
+ import { IPropertyFieldBrandFontPickerHostProps, IPropertyFieldBrandFontPickerHostState } from './IPropertyFieldBrandFontPickerHost';
3
+ /**
4
+ * Renders the controls for PropertyFieldBrandFontPicker component
5
+ */
6
+ export default class PropertyFieldBrandFontPickerHost extends React.Component<IPropertyFieldBrandFontPickerHostProps, IPropertyFieldBrandFontPickerHostState> {
7
+ private readonly brandCenterService;
8
+ constructor(props: IPropertyFieldBrandFontPickerHostProps);
9
+ componentDidMount(): void;
10
+ /**
11
+ * Load font tokens from Brand Center or fallback
12
+ */
13
+ private loadFontTokens;
14
+ /**
15
+ * Handle font selection change
16
+ */
17
+ private readonly onSelectionChanged;
18
+ /**
19
+ * Custom render for dropdown option to show font preview
20
+ */
21
+ private readonly onRenderOption;
22
+ /**
23
+ * Custom render for dropdown title to show selected font preview
24
+ */
25
+ private readonly onRenderTitle;
26
+ render(): React.ReactElement<IPropertyFieldBrandFontPickerHostProps>;
27
+ }
28
+ //# sourceMappingURL=PropertyFieldBrandFontPickerHost.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertyFieldBrandFontPickerHost.d.ts","sourceRoot":"","sources":["../../../src/propertyFields/brandFontPicker/PropertyFieldBrandFontPickerHost.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,OAAO,EACL,sCAAsC,EACtC,sCAAsC,EACvC,MAAM,qCAAqC,CAAC;AAI7C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,gCAAiC,SAAQ,KAAK,CAAC,SAAS,CAAC,sCAAsC,EAAE,sCAAsC,CAAC;IAC3J,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;gBAE5C,KAAK,EAAE,sCAAsC;IAclD,iBAAiB,IAAI,IAAI;IAKhC;;OAEG;YACW,cAAc;IAgD5B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAWjC;IAEF;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAsD7B;IAEF;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAuC5B;IAEK,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,sCAAsC,CAAC;CAyF5E"}
@@ -0,0 +1,223 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import * as React from 'react';
11
+ import { Dropdown, DropdownMenuItemType, Label, Spinner, SpinnerSize, MessageBar, MessageBarType } from '@fluentui/react';
12
+ import { BrandCenterService } from '../../services/BrandCenterService';
13
+ /**
14
+ * Renders the controls for PropertyFieldBrandFontPicker component
15
+ */
16
+ export default class PropertyFieldBrandFontPickerHost extends React.Component {
17
+ constructor(props) {
18
+ super(props);
19
+ /**
20
+ * Handle font selection change
21
+ */
22
+ this.onSelectionChanged = (event, option) => {
23
+ if (option && option.itemType !== DropdownMenuItemType.Header) {
24
+ const selectedToken = this.state.fontTokens.find(token => token.name === option.key);
25
+ if (selectedToken) {
26
+ this.setState({ selectedToken });
27
+ if (this.props.onSelectionChanged) {
28
+ this.props.onSelectionChanged(selectedToken);
29
+ }
30
+ }
31
+ }
32
+ };
33
+ /**
34
+ * Custom render for dropdown option to show font preview
35
+ */
36
+ this.onRenderOption = (option) => {
37
+ if (!option) {
38
+ return React.createElement("div", null);
39
+ }
40
+ // Skip rendering for header items
41
+ if (option.itemType === DropdownMenuItemType.Header) {
42
+ return (React.createElement("div", { style: {
43
+ fontWeight: '600',
44
+ color: '#605e5c',
45
+ padding: '8px 12px',
46
+ fontSize: '12px',
47
+ textTransform: 'uppercase',
48
+ letterSpacing: '0.5px'
49
+ } }, option.text));
50
+ }
51
+ const fontToken = this.state.fontTokens.find(token => token.name === option.key);
52
+ const fontValue = (fontToken === null || fontToken === void 0 ? void 0 : fontToken.value) || '';
53
+ return (React.createElement("div", { style: {
54
+ padding: '8px 12px',
55
+ minHeight: '40px',
56
+ display: 'flex',
57
+ flexDirection: 'column',
58
+ justifyContent: 'center'
59
+ } },
60
+ React.createElement("div", { style: {
61
+ fontSize: '14px',
62
+ color: '#323130',
63
+ lineHeight: '20px',
64
+ marginBottom: this.props.showPreview ? '2px' : '0'
65
+ } }, option.text),
66
+ this.props.showPreview && (React.createElement("div", { style: {
67
+ fontFamily: fontValue,
68
+ fontSize: '12px',
69
+ color: '#605e5c',
70
+ lineHeight: '16px'
71
+ } }, "Sample text preview"))));
72
+ };
73
+ /**
74
+ * Custom render for dropdown title to show selected font preview
75
+ */
76
+ this.onRenderTitle = (options) => {
77
+ if (!options || options.length === 0) {
78
+ return React.createElement("div", null);
79
+ }
80
+ const option = options[0];
81
+ const fontToken = this.state.fontTokens.find(token => token.name === option.key);
82
+ const fontValue = (fontToken === null || fontToken === void 0 ? void 0 : fontToken.value) || '';
83
+ return (React.createElement("div", { style: {
84
+ display: 'flex',
85
+ flexDirection: 'column',
86
+ justifyContent: 'center',
87
+ height: '40px',
88
+ paddingLeft: '12px',
89
+ paddingRight: '12px'
90
+ } },
91
+ React.createElement("span", { style: {
92
+ color: '#323130',
93
+ fontSize: '14px',
94
+ lineHeight: '20px'
95
+ } }, option.text),
96
+ this.props.showPreview && (React.createElement("span", { style: {
97
+ fontFamily: fontValue,
98
+ fontSize: '12px',
99
+ color: '#605e5c',
100
+ lineHeight: '16px'
101
+ } }, "Sample text preview"))));
102
+ };
103
+ this.state = {
104
+ loading: true,
105
+ fontTokens: [],
106
+ selectedToken: undefined,
107
+ errorMessage: undefined
108
+ };
109
+ // Initialize the BrandCenterService
110
+ this.brandCenterService = new BrandCenterService(this.props.context);
111
+ }
112
+ componentDidMount() {
113
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
114
+ this.loadFontTokens();
115
+ }
116
+ /**
117
+ * Load font tokens from Brand Center or fallback
118
+ */
119
+ loadFontTokens() {
120
+ return __awaiter(this, void 0, void 0, function* () {
121
+ this.setState({ loading: true, errorMessage: undefined });
122
+ try {
123
+ let fontTokens = [];
124
+ console.log('🎨 Brand Center Font Picker: Starting font token loading...');
125
+ // Check if custom font tokens are provided
126
+ if (this.props.customFontTokens && this.props.customFontTokens.length > 0) {
127
+ fontTokens = this.props.customFontTokens;
128
+ console.log('🎨 Brand Center Font Picker: Using custom font tokens:', fontTokens.length);
129
+ }
130
+ else {
131
+ // Try to load from Brand Center using the service
132
+ console.log('🎨 Brand Center Font Picker: Loading from Brand Center service...');
133
+ fontTokens = yield this.brandCenterService.getFontTokens();
134
+ console.log('🎨 Brand Center Font Picker: Loaded font tokens:', fontTokens.length, fontTokens);
135
+ }
136
+ // Set initial selected token
137
+ let selectedToken;
138
+ if (this.props.initialValue) {
139
+ selectedToken = fontTokens.find(token => token.value === this.props.initialValue);
140
+ }
141
+ this.setState({
142
+ loading: false,
143
+ fontTokens,
144
+ selectedToken,
145
+ errorMessage: undefined
146
+ });
147
+ // Notify parent component
148
+ if (this.props.onFontTokensLoaded) {
149
+ this.props.onFontTokensLoaded(fontTokens);
150
+ }
151
+ }
152
+ catch (error) {
153
+ console.error('Error loading font tokens:', error);
154
+ const errorMessage = this.props.loadingErrorMessage || 'Failed to load font tokens';
155
+ this.setState({
156
+ loading: false,
157
+ fontTokens: [],
158
+ selectedToken: undefined,
159
+ errorMessage
160
+ });
161
+ }
162
+ });
163
+ }
164
+ render() {
165
+ const { label, disabled } = this.props;
166
+ const { loading, fontTokens, selectedToken, errorMessage } = this.state;
167
+ // Group font tokens by category and convert to dropdown options
168
+ const options = [];
169
+ // Group fonts by category
170
+ const categorizedFonts = {
171
+ site: fontTokens.filter(token => token.category === 'site'),
172
+ microsoft: fontTokens.filter(token => token.category === 'microsoft')
173
+ };
174
+ // Add "From this site" section
175
+ if (categorizedFonts.site.length > 0) {
176
+ options.push({
177
+ key: 'site-header',
178
+ text: 'From this site',
179
+ itemType: DropdownMenuItemType.Header
180
+ });
181
+ categorizedFonts.site.forEach(token => {
182
+ options.push({
183
+ key: token.name,
184
+ text: token.displayName
185
+ });
186
+ });
187
+ }
188
+ // Add "From Microsoft" section
189
+ if (categorizedFonts.microsoft.length > 0) {
190
+ options.push({
191
+ key: 'microsoft-header',
192
+ text: 'From Microsoft',
193
+ itemType: DropdownMenuItemType.Header
194
+ });
195
+ categorizedFonts.microsoft.forEach(token => {
196
+ options.push({
197
+ key: token.name,
198
+ text: token.displayName
199
+ });
200
+ });
201
+ }
202
+ const selectedKey = selectedToken ? selectedToken.name : undefined;
203
+ const dropdownStyles = {
204
+ dropdown: {
205
+ width: '100%'
206
+ },
207
+ title: {
208
+ height: '40px',
209
+ lineHeight: '40px'
210
+ },
211
+ callout: {
212
+ maxHeight: '300px'
213
+ }
214
+ };
215
+ return (React.createElement("div", null,
216
+ label && React.createElement(Label, null, label),
217
+ loading && (React.createElement("div", { style: { padding: '10px 0' } },
218
+ React.createElement(Spinner, { size: SpinnerSize.small, label: "Loading font tokens..." }))),
219
+ errorMessage && (React.createElement(MessageBar, { messageBarType: MessageBarType.error, style: { marginBottom: '10px' } }, errorMessage)),
220
+ !loading && !errorMessage && (React.createElement(Dropdown, { options: options, selectedKey: selectedKey, onChange: this.onSelectionChanged, disabled: disabled, placeholder: "Select a font...", styles: dropdownStyles, onRenderOption: this.props.showPreview ? this.onRenderOption : undefined, onRenderTitle: this.props.showPreview ? this.onRenderTitle : undefined }))));
221
+ }
222
+ }
223
+ //# sourceMappingURL=PropertyFieldBrandFontPickerHost.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertyFieldBrandFontPickerHost.js","sourceRoot":"","sources":["../../../src/propertyFields/brandFontPicker/PropertyFieldBrandFontPickerHost.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export * from './PropertyFieldBrandFontPicker';
2
+ export * from './IPropertyFieldBrandFontPicker';
3
+ export * from './PropertyFieldBrandFontPickerHost';
4
+ export * from './IPropertyFieldBrandFontPickerHost';
5
+ export * from '../../services/BrandCenterService';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/propertyFields/brandFontPicker/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,mCAAmC,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from './PropertyFieldBrandFontPicker';
2
+ export * from './IPropertyFieldBrandFontPicker';
3
+ export * from './PropertyFieldBrandFontPickerHost';
4
+ export * from './IPropertyFieldBrandFontPickerHost';
5
+ export * from '../../services/BrandCenterService';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/propertyFields/brandFontPicker/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,mCAAmC,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { BaseComponentContext } from '@microsoft/sp-component-base';
2
+ import { IBrandFontToken } from '../propertyFields/brandFontPicker/IPropertyFieldBrandFontPicker';
3
+ /**
4
+ * Service to interact with SharePoint Brand Center for font tokens
5
+ */
6
+ export declare class BrandCenterService {
7
+ private readonly context;
8
+ constructor(context: BaseComponentContext);
9
+ /**
10
+ * Get font tokens from SharePoint Brand Center
11
+ */
12
+ getFontTokens(): Promise<IBrandFontToken[]>;
13
+ /**
14
+ * Get system font tokens as fallback
15
+ */
16
+ private getSystemFontTokens;
17
+ /**
18
+ * Try to get font tokens using SharePoint Brand Center REST API
19
+ */
20
+ private getFontTokensFromRest;
21
+ /**
22
+ * Fetch site font packages from SharePoint API
23
+ */
24
+ private fetchSiteFontPackages;
25
+ /**
26
+ * Parse the site font packages response
27
+ */
28
+ private parseSiteFontPackagesResponse;
29
+ /**
30
+ * Process JSON response containing font packages
31
+ */
32
+ private processJsonFontPackagesResponse;
33
+ /**
34
+ * Process Atom XML response containing font packages
35
+ */
36
+ private processAtomXmlFontPackagesResponse;
37
+ /**
38
+ * Parse an Atom entry element to extract font package data
39
+ */
40
+ private parseAtomEntry;
41
+ /**
42
+ * Process a site font package and extract font tokens
43
+ */
44
+ private processSiteFontPackage;
45
+ }
46
+ //# sourceMappingURL=BrandCenterService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrandCenterService.d.ts","sourceRoot":"","sources":["../../src/services/BrandCenterService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,iEAAiE,CAAC;AAElG;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;gBAEnC,OAAO,EAAE,oBAAoB;IAIzC;;OAEG;IACU,aAAa,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAYxD;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA0B3B;;OAEG;YACW,qBAAqB;IAanC;;OAEG;YACW,qBAAqB;IA0BnC;;OAEG;YACW,6BAA6B;IAmB3C;;OAEG;YACW,+BAA+B;IAkB7C;;OAEG;YACW,kCAAkC;IAqChD;;OAEG;IACH,OAAO,CAAC,cAAc;IA8BtB;;OAEG;YACW,sBAAsB;CA0ErC"}
@@ -0,0 +1,282 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ /**
11
+ * Service to interact with SharePoint Brand Center for font tokens
12
+ */
13
+ export class BrandCenterService {
14
+ constructor(context) {
15
+ this.context = context;
16
+ }
17
+ /**
18
+ * Get font tokens from SharePoint Brand Center
19
+ */
20
+ getFontTokens() {
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ const siteFontTokens = yield this.getFontTokensFromRest();
23
+ const systemTokens = this.getSystemFontTokens();
24
+ // Combine all font tokens with categories
25
+ const allTokens = [...siteFontTokens, ...systemTokens];
26
+ return allTokens;
27
+ });
28
+ }
29
+ /**
30
+ * Get system font tokens as fallback
31
+ */
32
+ getSystemFontTokens() {
33
+ return [
34
+ {
35
+ name: 'fontFamilyBase',
36
+ displayName: 'Base Font',
37
+ value: 'var(--fontFamilyBase, "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif)',
38
+ preview: 'The quick brown fox jumps over the lazy dog',
39
+ category: 'microsoft'
40
+ },
41
+ {
42
+ name: 'fontFamilyMonospace',
43
+ displayName: 'Monospace Font',
44
+ value: 'var(--fontFamilyMonospace, Consolas, "Courier New", Courier, monospace)',
45
+ preview: 'The quick brown fox jumps over the lazy dog',
46
+ category: 'microsoft'
47
+ },
48
+ {
49
+ name: 'fontFamilyNumeric',
50
+ displayName: 'Numeric Font',
51
+ value: 'var(--fontFamilyNumeric, Bahnschrift, "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif)',
52
+ preview: '0123456789',
53
+ category: 'microsoft'
54
+ }
55
+ ];
56
+ }
57
+ /**
58
+ * Try to get font tokens using SharePoint Brand Center REST API
59
+ */
60
+ getFontTokensFromRest() {
61
+ return __awaiter(this, void 0, void 0, function* () {
62
+ try {
63
+ const spHttpClient = this.context.spHttpClient;
64
+ const currentWebUrl = this.context.pageContext.web.absoluteUrl;
65
+ return yield this.fetchSiteFontPackages(spHttpClient, currentWebUrl);
66
+ }
67
+ catch (error) {
68
+ console.debug('SharePoint Brand Center REST API access not available:', error);
69
+ }
70
+ return [];
71
+ });
72
+ }
73
+ /**
74
+ * Fetch site font packages from SharePoint API
75
+ */
76
+ fetchSiteFontPackages(spHttpClient, currentWebUrl) {
77
+ return __awaiter(this, void 0, void 0, function* () {
78
+ const tokens = [];
79
+ try {
80
+ const siteFontPackagesResponse = yield spHttpClient.get(`${currentWebUrl}/_api/SiteFontPackages`, {
81
+ headers: {
82
+ 'Accept': 'application/json;odata=verbose',
83
+ 'Content-Type': 'application/json;odata=verbose'
84
+ }
85
+ } // eslint-disable-line @typescript-eslint/no-explicit-any
86
+ );
87
+ if (siteFontPackagesResponse.ok) {
88
+ return yield this.parseSiteFontPackagesResponse(siteFontPackagesResponse, currentWebUrl);
89
+ }
90
+ else {
91
+ console.debug(`Site font packages API returned ${siteFontPackagesResponse.status}: ${siteFontPackagesResponse.statusText}`);
92
+ }
93
+ }
94
+ catch (siteFontPackagesError) {
95
+ console.debug('Site font packages not available:', siteFontPackagesError);
96
+ }
97
+ return tokens;
98
+ });
99
+ }
100
+ /**
101
+ * Parse the site font packages response
102
+ */
103
+ parseSiteFontPackagesResponse(response, currentWebUrl) {
104
+ return __awaiter(this, void 0, void 0, function* () {
105
+ const contentType = response.headers.get('content-type');
106
+ // Check if the response is JSON
107
+ if (contentType === null || contentType === void 0 ? void 0 : contentType.includes('application/json')) {
108
+ return yield this.processJsonFontPackagesResponse(response, currentWebUrl);
109
+ }
110
+ // Check if the response is Atom XML feed
111
+ else if (contentType === null || contentType === void 0 ? void 0 : contentType.includes('application/atom+xml')) {
112
+ return yield this.processAtomXmlFontPackagesResponse(response, currentWebUrl);
113
+ }
114
+ else {
115
+ // Response is not JSON or Atom XML, likely an error response
116
+ const responseText = yield response.text();
117
+ console.debug('Site font packages returned unexpected response:', responseText.substring(0, 200));
118
+ return [];
119
+ }
120
+ });
121
+ }
122
+ /**
123
+ * Process JSON response containing font packages
124
+ */
125
+ processJsonFontPackagesResponse(response, currentWebUrl) {
126
+ var _a;
127
+ return __awaiter(this, void 0, void 0, function* () {
128
+ const tokens = [];
129
+ const siteFontPackagesData = yield response.json();
130
+ if ((_a = siteFontPackagesData === null || siteFontPackagesData === void 0 ? void 0 : siteFontPackagesData.d) === null || _a === void 0 ? void 0 : _a.results) {
131
+ for (const fontPackage of siteFontPackagesData.d.results) {
132
+ if (fontPackage.ID && !fontPackage.IsHidden && fontPackage.IsValid) {
133
+ const fontTokens = yield this.processSiteFontPackage(fontPackage, currentWebUrl);
134
+ if (fontTokens.length > 0) {
135
+ tokens.push(...fontTokens);
136
+ }
137
+ }
138
+ }
139
+ }
140
+ return tokens;
141
+ });
142
+ }
143
+ /**
144
+ * Process Atom XML response containing font packages
145
+ */
146
+ processAtomXmlFontPackagesResponse(response, currentWebUrl) {
147
+ return __awaiter(this, void 0, void 0, function* () {
148
+ const tokens = [];
149
+ try {
150
+ const xmlText = yield response.text();
151
+ // Parse the Atom XML feed - look for entry elements
152
+ const parser = new DOMParser();
153
+ const xmlDoc = parser.parseFromString(xmlText, 'text/xml');
154
+ // Check for parsing errors
155
+ const parserErrors = xmlDoc.getElementsByTagName('parsererror');
156
+ if (parserErrors.length > 0) {
157
+ console.debug('XML parsing error:', parserErrors[0].textContent);
158
+ return tokens;
159
+ }
160
+ // Look for entry elements in the Atom feed
161
+ const entries = xmlDoc.getElementsByTagName('entry');
162
+ for (const entry of Array.from(entries)) {
163
+ const fontPackage = this.parseAtomEntry(entry);
164
+ if ((fontPackage === null || fontPackage === void 0 ? void 0 : fontPackage.ID) && !fontPackage.IsHidden && fontPackage.IsValid) {
165
+ const fontTokens = yield this.processSiteFontPackage(fontPackage, currentWebUrl);
166
+ if (fontTokens.length > 0) {
167
+ tokens.push(...fontTokens);
168
+ }
169
+ }
170
+ }
171
+ }
172
+ catch (xmlParseError) {
173
+ console.debug('Could not parse Atom XML response:', xmlParseError);
174
+ }
175
+ return tokens;
176
+ });
177
+ }
178
+ /**
179
+ * Parse an Atom entry element to extract font package data
180
+ */
181
+ parseAtomEntry(entry) {
182
+ try {
183
+ const properties = entry.getElementsByTagName('m:properties')[0];
184
+ if (!properties) {
185
+ return null;
186
+ }
187
+ const getValue = (tagName) => {
188
+ const element = properties.getElementsByTagName(tagName)[0];
189
+ return (element === null || element === void 0 ? void 0 : element.textContent) || null;
190
+ };
191
+ const getBoolValue = (tagName) => {
192
+ const value = getValue(tagName);
193
+ return value === 'true';
194
+ };
195
+ return {
196
+ ID: getValue('d:ID'),
197
+ Title: getValue('d:Title'),
198
+ IsHidden: getBoolValue('d:IsHidden'),
199
+ IsValid: getBoolValue('d:IsValid'),
200
+ PackageJson: getValue('d:PackageJson')
201
+ };
202
+ }
203
+ catch (parseError) {
204
+ console.debug('Could not parse Atom entry:', parseError);
205
+ return null;
206
+ }
207
+ }
208
+ /**
209
+ * Process a site font package and extract font tokens
210
+ */
211
+ processSiteFontPackage(fontPackage, webUrl) {
212
+ return __awaiter(this, void 0, void 0, function* () {
213
+ const tokens = [];
214
+ try {
215
+ // Parse the PackageJson to get font information
216
+ if (fontPackage.PackageJson) {
217
+ const packageData = JSON.parse(fontPackage.PackageJson);
218
+ // Create a single token for the entire font package
219
+ const packageTitle = fontPackage.Title; // Use the title as is
220
+ // Determine the primary font value to use for the package
221
+ let primaryFontValue = `"${packageTitle}", sans-serif`;
222
+ // Try to get the primary font from font slots or faces
223
+ if (packageData.fontSlots) {
224
+ // Prefer body font, then heading, then title, then label
225
+ const preferenceOrder = ['body', 'heading', 'title', 'label'];
226
+ for (const slotName of preferenceOrder) {
227
+ const slot = packageData.fontSlots[slotName];
228
+ if (slot === null || slot === void 0 ? void 0 : slot.fontFamily) {
229
+ primaryFontValue = `"${slot.fontFamily}", sans-serif`;
230
+ break;
231
+ }
232
+ }
233
+ }
234
+ else if (packageData.fontFaces && Array.isArray(packageData.fontFaces) && packageData.fontFaces.length > 0) {
235
+ // Use the first font face if no slots are available
236
+ const firstFontFace = packageData.fontFaces[0];
237
+ if (firstFontFace === null || firstFontFace === void 0 ? void 0 : firstFontFace.fontFamily) {
238
+ primaryFontValue = `"${firstFontFace.fontFamily}", sans-serif`;
239
+ }
240
+ }
241
+ // Create a single token for this font package
242
+ tokens.push({
243
+ name: `siteFontPackage${fontPackage.ID.replace(/[^a-zA-Z0-9]/g, '')}`,
244
+ displayName: packageTitle,
245
+ value: primaryFontValue,
246
+ preview: 'The quick brown fox jumps over the lazy dog',
247
+ fileUrl: `${webUrl}/_api/SiteFontPackages/GetById('${fontPackage.ID}')`,
248
+ category: 'site'
249
+ });
250
+ // If no specific fonts found, create a general token from the package title
251
+ if (tokens.length === 0 && fontPackage.Title) {
252
+ tokens.push({
253
+ name: `siteFontPackage${fontPackage.ID.replace(/[^a-zA-Z0-9]/g, '')}`,
254
+ displayName: `Brand Font: ${packageTitle}`,
255
+ value: `"${packageTitle}", sans-serif`,
256
+ preview: 'The quick brown fox jumps over the lazy dog',
257
+ fileUrl: `${webUrl}/_api/SiteFontPackages/GetById('${fontPackage.ID}')`,
258
+ category: 'site'
259
+ });
260
+ }
261
+ }
262
+ }
263
+ catch (parseError) {
264
+ console.debug(`Could not parse font package ${fontPackage.ID}:`, parseError);
265
+ // Fallback: create token from title if JSON parsing fails
266
+ if (fontPackage.Title) {
267
+ const packageTitle = fontPackage.Title; // Use the title as is
268
+ tokens.push({
269
+ name: `siteFontPackage${fontPackage.ID.replace(/[^a-zA-Z0-9]/g, '')}`,
270
+ displayName: `Brand Font: ${packageTitle}`,
271
+ value: `"${packageTitle}", sans-serif`,
272
+ preview: 'The quick brown fox jumps over the lazy dog',
273
+ fileUrl: `${webUrl}/_api/SiteFontPackages/GetById('${fontPackage.ID}')`,
274
+ category: 'site'
275
+ });
276
+ }
277
+ }
278
+ return tokens;
279
+ });
280
+ }
281
+ }
282
+ //# sourceMappingURL=BrandCenterService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrandCenterService.js","sourceRoot":"","sources":["../../src/services/BrandCenterService.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pnp/spfx-property-controls",
3
3
  "description": "Reusable property pane controls for SharePoint Framework solutions",
4
- "version": "3.21.0",
4
+ "version": "3.22.0-beta.1921141",
5
5
  "engines": {
6
6
  "node": ">=22.14.0 < 23.0.0"
7
7
  },
@@ -94,4 +94,4 @@
94
94
  "main": "lib/index.js",
95
95
  "maintainers": [],
96
96
  "contributors": []
97
- }
97
+ }
@@ -2,7 +2,7 @@
2
2
  "id": "bd19c378-ab07-4eaa-9bb6-0e329932d8bf",
3
3
  "alias": "PropertyControlsTestWebPart",
4
4
  "componentType": "WebPart",
5
- "version": "3.21.0",
5
+ "version": "3.22.0",
6
6
  "manifestVersion": 2,
7
7
  "requiresCustomScript": false,
8
8
  "supportedHosts": [