@microsoft/sp-component-base 1.23.1 → 1.24.0-beta.2
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/dist/467dc675-7cc5-4709-8aac-78e3b71bd2f6.manifest.json +136 -141
- package/dist/{chunk.legacy-third-party-fabric-core-localfont_none_9e84ea19c68fdc8b9094.js → chunk.legacy-third-party-fabric-core-localfont_none_b7f7978a3e90166c361b.js} +1 -1
- package/dist/chunk.teams-apps-client_none_27d3c7c1d01080e4f131.js +2 -0
- package/dist/index-internal-beta.d.ts +30 -8
- package/dist/index-internal-public.d.ts +30 -8
- package/dist/index-internal.d.ts +30 -8
- package/dist/sp-component-base_default_8d535b51fa18aa47002b.js +22 -0
- package/dist/sp-component-base_en-us_8ce25dfb69a7786caece.js +22 -0
- package/dist/sp-component-base_qps-ploc_4fec831895d90df8aa7a.js +22 -0
- package/dist/sp-component-base_qps-ploca_b80610c8dff04dcec755.js +22 -0
- package/dist/tsdoc-metadata.json +1 -1
- package/lib-commonjs/BaseComponent.js +110 -145
- package/lib-commonjs/BaseComponentContext.js +126 -183
- package/lib-commonjs/DynamicDataProvider.js +251 -268
- package/lib-commonjs/DynamicDataSourceManager.js +218 -241
- package/lib-commonjs/DynamicProperty.js +232 -280
- package/lib-commonjs/EnsureIsolatedDomainUrl.js +14 -14
- package/lib-commonjs/IComponentPosition.js +8 -3
- package/lib-commonjs/IComponentPropertyMetadata.js +10 -3
- package/lib-commonjs/ISerializedServerProcessedData.js +24 -21
- package/lib-commonjs/LegacyThirdPartyFabricCoreLoader.js +53 -87
- package/lib-commonjs/PropertyMetadataProcessor.js +117 -150
- package/lib-commonjs/RenderableComponentContext.js +37 -0
- package/lib-commonjs/ShimmerFactory.js +66 -51
- package/lib-commonjs/chunks/legacy-third-party-fabric-core/FabricLocalFont.js +6 -4
- package/lib-commonjs/common/Flights.js +22 -10
- package/lib-commonjs/common/KillSwitches.js +13 -6
- package/lib-commonjs/dataCollector/IWebPartLoadData.js +35 -30
- package/lib-commonjs/dataCollector/WebPartLoadDataCollector.js +82 -91
- package/lib-commonjs/index.js +78 -38
- package/lib-commonjs/teams/DeferredTeamsAppsClient.js +30 -52
- package/lib-commonjs/teams/ITeamsAppCatalog.js +10 -3
- package/lib-commonjs/teams/TeamsAppsClient.js +189 -231
- package/lib-commonjs/test-api/MockComponent.js +38 -23
- package/lib-commonjs/test-api/MockComponentContext.js +21 -14
- package/lib-commonjs/test-api/index.js +21 -7
- package/lib-commonjs/themeProvider/ThemeProvider.js +68 -82
- package/lib-commonjs/themeProvider/themeInterfaces/IFontStyles.js +5 -2
- package/lib-commonjs/themeProvider/themeInterfaces/IPalette.js +10 -3
- package/lib-commonjs/themeProvider/themeInterfaces/ISemanticColors.js +59 -3
- package/lib-commonjs/themeProvider/themeInterfaces/ISemanticTextColors.js +10 -3
- package/lib-commonjs/themeProvider/themeInterfaces/ITheme.js +5 -2
- package/{lib → lib-dts}/BaseComponent.d.ts +8 -8
- package/{lib → lib-dts}/BaseComponentContext.d.ts +5 -5
- package/lib-dts/RenderableComponentContext.d.ts +35 -0
- package/{lib → lib-dts}/index.d.ts +1 -0
- package/lib-esm/BaseComponent.js +123 -0
- package/lib-esm/BaseComponentContext.js +157 -0
- package/lib-esm/DynamicDataProvider.js +401 -0
- package/lib-esm/DynamicDataSourceManager.js +358 -0
- package/lib-esm/DynamicProperty.js +344 -0
- package/{lib → lib-esm}/EnsureIsolatedDomainUrl.js +6 -6
- package/lib-esm/IComponentPosition.js +5 -0
- package/lib-esm/IComponentPropertyMetadata.js +7 -0
- package/lib-esm/ISerializedServerProcessedData.js +24 -0
- package/lib-esm/LegacyThirdPartyFabricCoreLoader.js +76 -0
- package/{lib → lib-esm}/PropertyMetadataProcessor.js +92 -127
- package/lib-esm/RenderableComponentContext.js +26 -0
- package/lib-esm/ShimmerFactory.js +74 -0
- package/{lib → lib-esm}/chunks/legacy-third-party-fabric-core/FabricLocalFont.js +3 -3
- package/{lib → lib-esm}/common/Flights.js +4 -3
- package/{lib → lib-esm}/common/KillSwitches.js +3 -2
- package/lib-esm/dataCollector/IWebPartLoadData.js +33 -0
- package/lib-esm/dataCollector/WebPartLoadDataCollector.js +125 -0
- package/{lib → lib-esm}/index.js +4 -3
- package/lib-esm/teams/DeferredTeamsAppsClient.js +32 -0
- package/lib-esm/teams/ITeamsAppCatalog.js +9 -0
- package/lib-esm/teams/TeamsAppsClient.js +395 -0
- package/lib-esm/test-api/MockComponent.js +38 -0
- package/{lib → lib-esm}/test-api/MockComponentContext.js +10 -11
- package/{lib → lib-esm}/test-api/index.js +2 -1
- package/lib-esm/themeProvider/ThemeProvider.js +79 -0
- package/lib-esm/themeProvider/themeInterfaces/IFontStyles.js +7 -0
- package/lib-esm/themeProvider/themeInterfaces/IPalette.js +7 -0
- package/lib-esm/themeProvider/themeInterfaces/ISemanticColors.js +56 -0
- package/lib-esm/themeProvider/themeInterfaces/ISemanticTextColors.js +7 -0
- package/lib-esm/themeProvider/themeInterfaces/ITheme.js +7 -0
- package/package.json +41 -14
- package/dist/chunk.teams-apps-client_none_f9872389cb6ea9ad28e2.js +0 -2
- package/dist/sp-component-base_default_5ba07be39b0dc8968f7b.js +0 -2
- package/dist/sp-component-base_en-us_eb9bebb3acce0ae83f1c.js +0 -2
- package/dist/sp-component-base_qps-ploc_45f37623d87c3d848f2a.js +0 -2
- package/dist/sp-component-base_qps-ploca_b3f3b7bf97c4185b0fd6.js +0 -2
- package/lib/BaseComponent.d.ts.map +0 -1
- package/lib/BaseComponent.js +0 -161
- package/lib/BaseComponentContext.d.ts.map +0 -1
- package/lib/BaseComponentContext.js +0 -222
- package/lib/DynamicDataProvider.d.ts.map +0 -1
- package/lib/DynamicDataProvider.js +0 -420
- package/lib/DynamicDataSourceManager.d.ts.map +0 -1
- package/lib/DynamicDataSourceManager.js +0 -382
- package/lib/DynamicProperty.d.ts.map +0 -1
- package/lib/DynamicProperty.js +0 -390
- package/lib/EnsureIsolatedDomainUrl.d.ts.map +0 -1
- package/lib/IComponentPosition.d.ts.map +0 -1
- package/lib/IComponentPosition.js +0 -2
- package/lib/IComponentPropertyMetadata.d.ts.map +0 -1
- package/lib/IComponentPropertyMetadata.js +0 -2
- package/lib/ISerializedServerProcessedData.d.ts.map +0 -1
- package/lib/ISerializedServerProcessedData.js +0 -28
- package/lib/LegacyThirdPartyFabricCoreLoader.d.ts.map +0 -1
- package/lib/LegacyThirdPartyFabricCoreLoader.js +0 -90
- package/lib/PropertyMetadataProcessor.d.ts.map +0 -1
- package/lib/ShimmerFactory.d.ts.map +0 -1
- package/lib/ShimmerFactory.js +0 -62
- package/lib/chunks/legacy-third-party-fabric-core/FabricLocalFont.d.ts.map +0 -1
- package/lib/common/Flights.d.ts.map +0 -1
- package/lib/common/KillSwitches.d.ts.map +0 -1
- package/lib/dataCollector/IWebPartLoadData.d.ts.map +0 -1
- package/lib/dataCollector/IWebPartLoadData.js +0 -40
- package/lib/dataCollector/WebPartLoadDataCollector.d.ts.map +0 -1
- package/lib/dataCollector/WebPartLoadDataCollector.js +0 -137
- package/lib/index.d.ts.map +0 -1
- package/lib/teams/DeferredTeamsAppsClient.d.ts.map +0 -1
- package/lib/teams/DeferredTeamsAppsClient.js +0 -39
- package/lib/teams/ITeamsAppCatalog.d.ts.map +0 -1
- package/lib/teams/ITeamsAppCatalog.js +0 -2
- package/lib/teams/TeamsAppsClient.d.ts.map +0 -1
- package/lib/teams/TeamsAppsClient.js +0 -440
- package/lib/test-api/MockComponent.d.ts.map +0 -1
- package/lib/test-api/MockComponent.js +0 -31
- package/lib/test-api/MockComponentContext.d.ts.map +0 -1
- package/lib/test-api/index.d.ts.map +0 -1
- package/lib/themeProvider/ThemeProvider.d.ts.map +0 -1
- package/lib/themeProvider/ThemeProvider.js +0 -99
- package/lib/themeProvider/themeInterfaces/IFontStyles.d.ts.map +0 -1
- package/lib/themeProvider/themeInterfaces/IFontStyles.js +0 -2
- package/lib/themeProvider/themeInterfaces/IPalette.d.ts.map +0 -1
- package/lib/themeProvider/themeInterfaces/IPalette.js +0 -2
- package/lib/themeProvider/themeInterfaces/ISemanticColors.d.ts.map +0 -1
- package/lib/themeProvider/themeInterfaces/ISemanticColors.js +0 -2
- package/lib/themeProvider/themeInterfaces/ISemanticTextColors.d.ts.map +0 -1
- package/lib/themeProvider/themeInterfaces/ISemanticTextColors.js +0 -2
- package/lib/themeProvider/themeInterfaces/ITheme.d.ts.map +0 -1
- package/lib/themeProvider/themeInterfaces/ITheme.js +0 -2
- /package/{lib → lib-dts}/DynamicDataProvider.d.ts +0 -0
- /package/{lib → lib-dts}/DynamicDataSourceManager.d.ts +0 -0
- /package/{lib → lib-dts}/DynamicProperty.d.ts +0 -0
- /package/{lib → lib-dts}/EnsureIsolatedDomainUrl.d.ts +0 -0
- /package/{lib → lib-dts}/IComponentPosition.d.ts +0 -0
- /package/{lib → lib-dts}/IComponentPropertyMetadata.d.ts +0 -0
- /package/{lib → lib-dts}/ISerializedServerProcessedData.d.ts +0 -0
- /package/{lib → lib-dts}/LegacyThirdPartyFabricCoreLoader.d.ts +0 -0
- /package/{lib → lib-dts}/PropertyMetadataProcessor.d.ts +0 -0
- /package/{lib → lib-dts}/ShimmerFactory.d.ts +0 -0
- /package/{lib → lib-dts}/chunks/legacy-third-party-fabric-core/FabricLocalFont.d.ts +0 -0
- /package/{lib → lib-dts}/common/Flights.d.ts +0 -0
- /package/{lib → lib-dts}/common/KillSwitches.d.ts +0 -0
- /package/{lib → lib-dts}/dataCollector/IWebPartLoadData.d.ts +0 -0
- /package/{lib → lib-dts}/dataCollector/WebPartLoadDataCollector.d.ts +0 -0
- /package/{lib → lib-dts}/loc/Strings.resx.d.ts +0 -0
- /package/{lib → lib-dts}/teams/DeferredTeamsAppsClient.d.ts +0 -0
- /package/{lib → lib-dts}/teams/ITeamsAppCatalog.d.ts +0 -0
- /package/{lib → lib-dts}/teams/TeamsAppsClient.d.ts +0 -0
- /package/{lib → lib-dts}/test-api/MockComponent.d.ts +0 -0
- /package/{lib → lib-dts}/test-api/MockComponentContext.d.ts +0 -0
- /package/{lib → lib-dts}/test-api/index.d.ts +0 -0
- /package/{lib → lib-dts}/themeProvider/ThemeProvider.d.ts +0 -0
- /package/{lib → lib-dts}/themeProvider/themeInterfaces/IFontStyles.d.ts +0 -0
- /package/{lib → lib-dts}/themeProvider/themeInterfaces/IPalette.d.ts +0 -0
- /package/{lib → lib-dts}/themeProvider/themeInterfaces/ISemanticColors.d.ts +0 -0
- /package/{lib → lib-dts}/themeProvider/themeInterfaces/ISemanticTextColors.d.ts +0 -0
- /package/{lib → lib-dts}/themeProvider/themeInterfaces/ITheme.d.ts +0 -0
- /package/{lib → lib-esm}/chunks/legacy-third-party-fabric-core/fabric-core-sass/Fabric.LocalFont.global.scss.css +0 -0
- /package/{lib → lib-esm}/chunks/legacy-third-party-fabric-core/fabric-core-sass/Fabric.LocalFontKillSwitchActivated.scss.css +0 -0
- /package/{lib → lib-esm}/chunks/legacy-third-party-fabric-core/fabric-core-shim.global.scss.css +0 -0
- /package/{lib → lib-esm}/chunks/legacy-third-party-fabric-core/fabric-core-shimKillSwitchActivated.scss.css +0 -0
- /package/{lib → lib-esm}/chunks/legacy-third-party-fabric-core/iconDefinitions.css +0 -0
- /package/{lib → lib-esm}/loc/Strings.resx.json +0 -0
- /package/{lib → lib-esm}/sp-component-base.manifest.json +0 -0
- /package/{lib → lib-esm}/styles/shimmer.module.scss.css +0 -0
|
@@ -1,54 +1,47 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
var sp_safehtml_1 = require("@msinternal/sp-safehtml");
|
|
10
|
-
/**
|
|
11
|
-
* The processor to serialize and deserialize the server processed content and component properties
|
|
12
|
-
* based on component metadata.
|
|
13
|
-
*
|
|
14
|
-
* @internal
|
|
15
|
-
*/
|
|
16
|
-
var PropertyMetadataProcessor = /** @class */ (function () {
|
|
17
|
-
function PropertyMetadataProcessor() {
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "PropertyMetadataProcessor", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return PropertyMetadataProcessor;
|
|
18
9
|
}
|
|
10
|
+
});
|
|
11
|
+
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
|
|
12
|
+
const _spcorelibrary = require("@microsoft/sp-core-library");
|
|
13
|
+
const _splodashsubset = /*#__PURE__*/ _interop_require_wildcard._(require("@microsoft/sp-lodash-subset"));
|
|
14
|
+
const _Flights = require("./common/Flights");
|
|
15
|
+
const _spdiagnostics = require("@microsoft/sp-diagnostics");
|
|
16
|
+
const _spsafehtml = require("@msinternal/sp-safehtml");
|
|
17
|
+
class PropertyMetadataProcessor {
|
|
19
18
|
/**
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
var _this = this;
|
|
28
|
-
this._forEachPropertyWithMetaData(propertiesMetadata, properties, function (propPath, metadata, iteration) {
|
|
19
|
+
* Serialize the properties into server processed content as declared in metadata.
|
|
20
|
+
*
|
|
21
|
+
* @param propertiesMetadata - The component properties metadata.
|
|
22
|
+
* @param properties - The component properties. This object will be modified during serialization.
|
|
23
|
+
* @param serverProcessedContent - The serialized server processed content. This object will be modified.
|
|
24
|
+
*/ static serializeServerProcessedData(propertiesMetadata, properties, serverProcessedContent) {
|
|
25
|
+
this._forEachPropertyWithMetaData(propertiesMetadata, properties, (propPath, metadata, iteration)=>{
|
|
29
26
|
// Remove fields with shouldNotPersist metadata
|
|
30
27
|
if (metadata.shouldNotPersist) {
|
|
31
|
-
|
|
28
|
+
_splodashsubset.set(properties, propPath, undefined);
|
|
32
29
|
}
|
|
33
30
|
// Use the property path as the key in server-processed content maps
|
|
34
|
-
|
|
31
|
+
const key = propPath;
|
|
35
32
|
// WARNING: This is critical code. Please do not modify without fully understanding the data pipeline
|
|
36
|
-
|
|
33
|
+
const value = _splodashsubset.get(properties, propPath);
|
|
37
34
|
// Skip if the property is non-string or undefined
|
|
38
35
|
if (serverProcessedContent && typeof value === 'string' && value) {
|
|
39
36
|
if (serverProcessedContent.htmlStrings && metadata.isHtmlString) {
|
|
40
37
|
serverProcessedContent.htmlStrings[key] = value;
|
|
41
|
-
}
|
|
42
|
-
else if (serverProcessedContent.searchablePlainTexts && metadata.isSearchablePlainText) {
|
|
38
|
+
} else if (serverProcessedContent.searchablePlainTexts && metadata.isSearchablePlainText) {
|
|
43
39
|
serverProcessedContent.searchablePlainTexts[key] = value;
|
|
44
|
-
}
|
|
45
|
-
else if (serverProcessedContent.links && metadata.isLink) {
|
|
40
|
+
} else if (serverProcessedContent.links && metadata.isLink) {
|
|
46
41
|
serverProcessedContent.links[key] = value;
|
|
47
|
-
}
|
|
48
|
-
else if (serverProcessedContent.imageSources && metadata.isImageSource) {
|
|
42
|
+
} else if (serverProcessedContent.imageSources && metadata.isImageSource) {
|
|
49
43
|
serverProcessedContent.imageSources[key] = value;
|
|
50
|
-
}
|
|
51
|
-
else if (metadata.isComponentDependency) {
|
|
44
|
+
} else if (metadata.isComponentDependency) {
|
|
52
45
|
if (!serverProcessedContent.componentDependencies) {
|
|
53
46
|
serverProcessedContent.componentDependencies = {};
|
|
54
47
|
}
|
|
@@ -56,75 +49,67 @@ var PropertyMetadataProcessor = /** @class */ (function () {
|
|
|
56
49
|
}
|
|
57
50
|
if (metadata.customMetadata) {
|
|
58
51
|
// Build custom metadata for the given property path
|
|
59
|
-
|
|
52
|
+
const customMetadata = {};
|
|
60
53
|
if (metadata && metadata.customMetadata) {
|
|
61
|
-
|
|
62
|
-
|
|
54
|
+
for (const [propName, customMetadataPropPath] of Object.entries(metadata.customMetadata)){
|
|
55
|
+
let normalizedCustomMetadataPropPath = customMetadataPropPath;
|
|
63
56
|
if (iteration !== undefined && normalizedCustomMetadataPropPath.indexOf('*') !== -1) {
|
|
64
57
|
// Custom metadata should be resolved with current iteration of wildcard
|
|
65
58
|
normalizedCustomMetadataPropPath = normalizedCustomMetadataPropPath.replace('*', iteration.toString());
|
|
66
59
|
}
|
|
67
|
-
|
|
60
|
+
this._validateAndIteratePath(normalizedCustomMetadataPropPath, properties, (fixedPropPath, customIteration)=>{
|
|
68
61
|
// Custom metadata should be resolved without iteration
|
|
69
62
|
if (customIteration === undefined && metadata.customMetadata) {
|
|
70
|
-
|
|
63
|
+
const customValue = _splodashsubset.get(properties, fixedPropPath);
|
|
71
64
|
if (serverProcessedContent && customValue !== undefined) {
|
|
72
65
|
// Insert custom metadata key and value
|
|
73
66
|
if (isFixCustomMetadataKeyKillSwitchActivated()) {
|
|
74
|
-
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
customMetadata_1[propName] = customValue;
|
|
67
|
+
customMetadata[fixedPropPath] = customValue;
|
|
68
|
+
} else {
|
|
69
|
+
customMetadata[propName] = customValue;
|
|
78
70
|
}
|
|
79
71
|
}
|
|
80
72
|
}
|
|
81
73
|
});
|
|
82
|
-
};
|
|
83
|
-
for (var _i = 0, _a = Object.entries(metadata.customMetadata); _i < _a.length; _i++) {
|
|
84
|
-
var _b = _a[_i], propName = _b[0], customMetadataPropPath = _b[1];
|
|
85
|
-
_loop_1(propName, customMetadataPropPath);
|
|
86
74
|
}
|
|
87
75
|
}
|
|
88
76
|
if (!serverProcessedContent.customMetadata) {
|
|
89
77
|
serverProcessedContent.customMetadata = {};
|
|
90
78
|
}
|
|
91
79
|
// Store serialized custom metadata for the given the property path.
|
|
92
|
-
serverProcessedContent.customMetadata[key] =
|
|
80
|
+
serverProcessedContent.customMetadata[key] = customMetadata;
|
|
93
81
|
}
|
|
94
82
|
// Unset the extracted property to avoid duplication
|
|
95
|
-
|
|
83
|
+
_splodashsubset.set(properties, propPath, undefined);
|
|
96
84
|
}
|
|
97
85
|
});
|
|
98
|
-
}
|
|
86
|
+
}
|
|
99
87
|
/**
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
var _this = this;
|
|
110
|
-
var propertyPathsNotInServerProcessedContent = new Set();
|
|
88
|
+
* Reapply the serialized server processed content on the properties based on the metadata.
|
|
89
|
+
* This process will result in the properties bag as it was when the serialization happened.
|
|
90
|
+
*
|
|
91
|
+
* @param propertiesMetadata - The component properties metadata.
|
|
92
|
+
* @param properties - The component properties. This object will be modified during serialization.
|
|
93
|
+
* @param serverProcessedContent - The serialized server processed content.
|
|
94
|
+
* @param manifest - The optional component manifest.
|
|
95
|
+
*/ static reInstateServerProcessedData(propertiesMetadata, properties, serverProcessedContent, manifest) {
|
|
96
|
+
const propertyPathsNotInServerProcessedContent = new Set();
|
|
111
97
|
if (manifest) {
|
|
112
98
|
// @privateRemarks Clear out the properties with isHtmlString metadata for security reasons. We only want to
|
|
113
99
|
// propagate values from the serverProcessed content as they are security sanitized by the server. Note, there is a
|
|
114
100
|
// scenario when an end user can update the list item with whatever data they like. In that case, they can
|
|
115
101
|
// eliminate the serverProcessed content and that can cause a potential security hole. Hence, we always want
|
|
116
102
|
// clear out the property values that have isHtmlString metadata.
|
|
117
|
-
this._forEachPropertyWithMetaData(propertiesMetadata, properties,
|
|
118
|
-
if (!(0,
|
|
103
|
+
this._forEachPropertyWithMetaData(propertiesMetadata, properties, (propPath, metadata)=>{
|
|
104
|
+
if (!(0, _Flights.isServerPropertiesSanitizedEnabled)()) {
|
|
119
105
|
// This is a temporary hack to make sure that the webparts published using the Mobile app keep rendering.
|
|
120
106
|
// Currently, for those pages, the DocumentEmbedWebPart does not have HTMLProperties pupulated. Hence,
|
|
121
107
|
// we are doing this work around to not unset the property bag.
|
|
122
108
|
// (SPPPLAT VSO#289988) tracks removal of this code.
|
|
123
109
|
if (manifest.id !== 'b7dd04e1-19ce-4b24-9132-b60a1c2b910d' && metadata.isHtmlString) {
|
|
124
|
-
|
|
110
|
+
_splodashsubset.set(properties, propPath, undefined);
|
|
125
111
|
}
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
112
|
+
} else {
|
|
128
113
|
// We should always sanitize the deserialized property bag for any property
|
|
129
114
|
// that is marked with propertiesMetadata. It is possible for the content to have been
|
|
130
115
|
// modified at rest and therefore work around the assumption of the serverProcessedContent
|
|
@@ -135,27 +120,26 @@ var PropertyMetadataProcessor = /** @class */ (function () {
|
|
|
135
120
|
// if the data has been incorrectly modified at rest. The web part is expected to handle that.
|
|
136
121
|
//
|
|
137
122
|
// If the path is already undefined then we can skip setting to undefined and the enforcement
|
|
138
|
-
if (manifest.id === 'b7dd04e1-19ce-4b24-9132-b60a1c2b910d' &&
|
|
139
|
-
sp_core_library_1._SPKillSwitch.isActivated('71b68bd4-eb7a-4330-93bd-dc6d382123c1' /* '9/28/2023', 'Do not serverProcessContent sanitization for DocumentEmbedWebPart' */)) {
|
|
123
|
+
if (manifest.id === 'b7dd04e1-19ce-4b24-9132-b60a1c2b910d' && _spcorelibrary._SPKillSwitch.isActivated('71b68bd4-eb7a-4330-93bd-dc6d382123c1' /* '9/28/2023', 'Do not serverProcessContent sanitization for DocumentEmbedWebPart' */ )) {
|
|
140
124
|
return;
|
|
141
125
|
}
|
|
142
126
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
143
|
-
|
|
127
|
+
const propValue = _splodashsubset.get(properties, propPath);
|
|
144
128
|
if (propValue !== undefined) {
|
|
145
|
-
|
|
129
|
+
const qosMonitor = new _spdiagnostics._QosMonitor('PropertyMetadataProcessor.clearMetadataValue');
|
|
146
130
|
if (metadata.isLink) {
|
|
147
131
|
propertyPathsNotInServerProcessedContent.add(propPath);
|
|
148
|
-
if (!
|
|
132
|
+
if (!this._isSafeLink(propValue)) {
|
|
149
133
|
qosMonitor.writeUnexpectedFailure('ClearingLinkProperty', new Error(propPath));
|
|
150
|
-
|
|
134
|
+
_splodashsubset.set(properties, propPath, undefined);
|
|
151
135
|
}
|
|
152
136
|
}
|
|
153
137
|
if (metadata.isHtmlString) {
|
|
154
138
|
propertyPathsNotInServerProcessedContent.add(propPath);
|
|
155
|
-
|
|
139
|
+
const safeHtml = this._getSafeHtml(propValue);
|
|
156
140
|
if (safeHtml !== propValue) {
|
|
157
141
|
qosMonitor.writeUnexpectedFailure('SettingSafeHtml', new Error(propPath));
|
|
158
|
-
|
|
142
|
+
_splodashsubset.set(properties, propPath, safeHtml);
|
|
159
143
|
}
|
|
160
144
|
}
|
|
161
145
|
if (!qosMonitor.hasEnded) {
|
|
@@ -172,22 +156,20 @@ var PropertyMetadataProcessor = /** @class */ (function () {
|
|
|
172
156
|
// back to the web part that has the same shape as when the serialization happened.
|
|
173
157
|
// CustomMetadata is only processed on the server so we do not round trip the data back
|
|
174
158
|
// into the web part properties. This is by design of the feature
|
|
175
|
-
|
|
159
|
+
const htmlMaps = [
|
|
176
160
|
serverProcessedContent.htmlStrings,
|
|
177
161
|
serverProcessedContent.searchablePlainTexts,
|
|
178
162
|
serverProcessedContent.imageSources,
|
|
179
163
|
serverProcessedContent.links,
|
|
180
164
|
serverProcessedContent.componentDependencies
|
|
181
165
|
];
|
|
182
|
-
for (
|
|
183
|
-
var htmlMap = htmlMaps_1[_i];
|
|
166
|
+
for (const htmlMap of htmlMaps){
|
|
184
167
|
if (htmlMap) {
|
|
185
|
-
for (
|
|
186
|
-
var _c = _b[_a], propPath = _c[0], value = _c[1];
|
|
168
|
+
for (const [propPath, value] of Object.entries(htmlMap)){
|
|
187
169
|
// WARNING: This is critical code. Please do not modify without fully understanding the data pipeline
|
|
188
170
|
if (typeof value === 'string') {
|
|
189
|
-
|
|
190
|
-
if ((0,
|
|
171
|
+
_splodashsubset.set(properties, propPath, value);
|
|
172
|
+
if ((0, _Flights.isServerPropertiesSanitizedEnabled)()) {
|
|
191
173
|
propertyPathsNotInServerProcessedContent.delete(propPath);
|
|
192
174
|
}
|
|
193
175
|
}
|
|
@@ -195,107 +177,92 @@ var PropertyMetadataProcessor = /** @class */ (function () {
|
|
|
195
177
|
}
|
|
196
178
|
}
|
|
197
179
|
}
|
|
198
|
-
if ((0,
|
|
199
|
-
|
|
200
|
-
propertyPathsNotInServerProcessedContent.size > 0) {
|
|
201
|
-
var logServerPropertiesMissing = new sp_diagnostics_1._QosMonitor('PropertyMetadataProcessor.serverProcessedContentMissing');
|
|
180
|
+
if ((0, _Flights.isServerPropertiesSanitizedEnabled)() && manifest && propertyPathsNotInServerProcessedContent.size > 0) {
|
|
181
|
+
const logServerPropertiesMissing = new _spdiagnostics._QosMonitor('PropertyMetadataProcessor.serverProcessedContentMissing');
|
|
202
182
|
logServerPropertiesMissing.writeUnexpectedFailure('Missing Content', undefined, {
|
|
203
183
|
manifest: manifest.id,
|
|
204
184
|
properties: Array.from(propertyPathsNotInServerProcessedContent).join(',')
|
|
205
185
|
});
|
|
206
186
|
}
|
|
207
|
-
}
|
|
208
|
-
|
|
187
|
+
}
|
|
188
|
+
static _isSafeLink(link) {
|
|
209
189
|
try {
|
|
210
|
-
|
|
211
|
-
return
|
|
212
|
-
}
|
|
213
|
-
catch (_a) {
|
|
190
|
+
const safeLinkUrl = new URL(link);
|
|
191
|
+
return _spsafehtml.SafeHtml.isSafeLinkProtocol(safeLinkUrl.protocol);
|
|
192
|
+
} catch {
|
|
214
193
|
try {
|
|
215
|
-
|
|
216
|
-
return
|
|
217
|
-
}
|
|
218
|
-
catch (_b) {
|
|
194
|
+
const safeLinkUrl = new URL(link, window.location.origin);
|
|
195
|
+
return _spsafehtml.SafeHtml.isSafeLinkProtocol(safeLinkUrl.protocol);
|
|
196
|
+
} catch {
|
|
219
197
|
return false;
|
|
220
198
|
}
|
|
221
199
|
}
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
return
|
|
225
|
-
}
|
|
200
|
+
}
|
|
201
|
+
static _getSafeHtml(html) {
|
|
202
|
+
return _spsafehtml.SafeHtml.clean(html);
|
|
203
|
+
}
|
|
226
204
|
/**
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
PropertyMetadataProcessor._forEachPropertyWithMetaData = function (propertiesMetadata, properties, metadataProcessor) {
|
|
205
|
+
* Iterates and validates each metadata property before calling metadata processor.
|
|
206
|
+
*
|
|
207
|
+
* @param propertiesMetadata - Component properties metadata.
|
|
208
|
+
* @param properties - Component properties.
|
|
209
|
+
* @param metadataProcessor - Callback handler to to process validated metadata.
|
|
210
|
+
*
|
|
211
|
+
* @internal
|
|
212
|
+
*/ static _forEachPropertyWithMetaData(propertiesMetadata, properties, metadataProcessor) {
|
|
236
213
|
if (propertiesMetadata) {
|
|
237
|
-
|
|
238
|
-
|
|
214
|
+
for (const [propPath, metadata] of Object.entries(propertiesMetadata)){
|
|
215
|
+
this._validateAndIteratePath(propPath, properties, (fixedPropPath, index)=>{
|
|
239
216
|
metadataProcessor(fixedPropPath, metadata, index);
|
|
240
217
|
});
|
|
241
|
-
};
|
|
242
|
-
var this_1 = this;
|
|
243
|
-
for (var _i = 0, _a = Object.entries(propertiesMetadata); _i < _a.length; _i++) {
|
|
244
|
-
var _b = _a[_i], propPath = _b[0], metadata = _b[1];
|
|
245
|
-
_loop_2(propPath, metadata);
|
|
246
218
|
}
|
|
247
219
|
}
|
|
248
|
-
}
|
|
220
|
+
}
|
|
249
221
|
/**
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
var wildcardCount = (propPath.match(/\*/g) || []).length;
|
|
222
|
+
* Validates path and iterate over one or multiple wildcard paths
|
|
223
|
+
*
|
|
224
|
+
* @param propPath - Original property path provided in metadata
|
|
225
|
+
* @param properties - Properties to look for the given path.
|
|
226
|
+
* @param propertyPathHandler - Handler to process validated and fixed path
|
|
227
|
+
*/ static _validateAndIteratePath(propPath, properties, propertyPathHandler) {
|
|
228
|
+
const wildcardCount = (propPath.match(/\*/g) || []).length;
|
|
258
229
|
if (wildcardCount > 1) {
|
|
259
230
|
// Skip if there are more than one asterisks in the path (not supported)
|
|
260
231
|
// eslint-disable-next-line no-console
|
|
261
|
-
console.warn(
|
|
232
|
+
console.warn(`Invalid property path: Multiple wildcards are not supported in property paths.
|
|
233
|
+
Entry with path '${propPath}' got ignored in the properties metadata.`);
|
|
262
234
|
return;
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
var index = propPath.indexOf('[*]');
|
|
235
|
+
} else if (wildcardCount === 1) {
|
|
236
|
+
const index = propPath.indexOf('[*]');
|
|
266
237
|
if (index < -1) {
|
|
267
238
|
// eslint-disable-next-line no-console
|
|
268
|
-
console.warn(
|
|
239
|
+
console.warn(`Invalid property path: Wildcards are only supported inside brackets to select array
|
|
240
|
+
indices as in 'foo[*].bar'. Entry with path '${propPath}' got ignored in the properties metadata.`);
|
|
269
241
|
// Skip if the wildcard is not used for an array (not supported)
|
|
270
242
|
return;
|
|
271
|
-
}
|
|
272
|
-
else {
|
|
243
|
+
} else {
|
|
273
244
|
// Handle the array wildcard by generating each individual property path
|
|
274
|
-
|
|
275
|
-
|
|
245
|
+
const arrayPath = propPath.substr(0, index);
|
|
246
|
+
const arrayInstance = _splodashsubset.get(properties, arrayPath);
|
|
276
247
|
if (!arrayInstance) {
|
|
277
248
|
// eslint-disable-next-line no-console
|
|
278
|
-
console.warn(
|
|
249
|
+
console.warn(`Invalid property path: Could not find an array named '${arrayPath}' in the properties.
|
|
250
|
+
Entry with path '${propPath}' got ignored in the properties metadata.`);
|
|
279
251
|
return;
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
var fixedPropPath = propPath.replace('*', "".concat(i));
|
|
252
|
+
} else {
|
|
253
|
+
for(let i = 0; i < arrayInstance.length; i++){
|
|
254
|
+
const fixedPropPath = propPath.replace('*', `${i}`);
|
|
284
255
|
propertyPathHandler(fixedPropPath, i);
|
|
285
256
|
}
|
|
286
257
|
}
|
|
287
258
|
}
|
|
288
|
-
}
|
|
289
|
-
else {
|
|
259
|
+
} else {
|
|
290
260
|
propertyPathHandler(propPath);
|
|
291
261
|
}
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
}());
|
|
295
|
-
exports.PropertyMetadataProcessor = PropertyMetadataProcessor;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
296
264
|
function isFixCustomMetadataKeyKillSwitchActivated() {
|
|
297
|
-
return
|
|
298
|
-
/* '2022-03-28', 'Fix custom metadata key' */
|
|
299
|
-
);
|
|
265
|
+
return _spcorelibrary._SPKillSwitch.isActivated('bf085c27-422d-4b62-a93a-43efa89e77ee');
|
|
300
266
|
}
|
|
301
|
-
|
|
267
|
+
|
|
268
|
+
//# sourceMappingURL=./PropertyMetadataProcessor.js.map
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return _default;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _interop_require_default = require("@swc/helpers/_/_interop_require_default");
|
|
12
|
+
const _spcorelibrary = require("@microsoft/sp-core-library");
|
|
13
|
+
const _BaseComponentContext = /*#__PURE__*/ _interop_require_default._(require("./BaseComponentContext"));
|
|
14
|
+
/**
|
|
15
|
+
* Base context for component types that render into a DOM element — web parts,
|
|
16
|
+
* Copilot Components, and any future renderable component type.
|
|
17
|
+
*
|
|
18
|
+
* @remarks
|
|
19
|
+
* Extends {@link @microsoft/sp-component-base#BaseComponentContext} with a
|
|
20
|
+
* {@link RenderableComponentContext.domElement | domElement} property. Component
|
|
21
|
+
* types that do not have a dedicated render target (e.g. application
|
|
22
|
+
* customizers, extensions) should continue to extend `BaseComponentContext`
|
|
23
|
+
* directly.
|
|
24
|
+
*
|
|
25
|
+
* @public
|
|
26
|
+
*/ class RenderableComponentContext extends _BaseComponentContext.default {
|
|
27
|
+
/** @internal */ constructor(parameters){
|
|
28
|
+
const { domElement, ...superParameters } = parameters;
|
|
29
|
+
super(superParameters);
|
|
30
|
+
_spcorelibrary.Validate.isNotNullOrUndefined(domElement, 'domElement');
|
|
31
|
+
this.domElement = domElement;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
(0, _spcorelibrary._ES5CompatibleClass)(RenderableComponentContext);
|
|
35
|
+
const _default = RenderableComponentContext;
|
|
36
|
+
|
|
37
|
+
//# sourceMappingURL=./RenderableComponentContext.js.map
|
|
@@ -1,65 +1,80 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
var SHIMMER_RECTANGLE_COUNT = 4;
|
|
10
|
-
var SHIMMER_ELEMENT_COUNT = 2 * SHIMMER_RECTANGLE_COUNT + 1;
|
|
11
|
-
var RECTANGLE_X = 8;
|
|
12
|
-
var SHIMMER_MAIN_RECTANGLE_SIZE_RATIO = 0.9;
|
|
13
|
-
var RECTANGLE_1_LENGTH = 20;
|
|
14
|
-
var RECTANGLE_2_LENGTH = 40;
|
|
15
|
-
var RECTANGLE_3_LENGTH = 90;
|
|
16
|
-
var RECTANGLE_4_LENGTH = 80;
|
|
17
|
-
/**
|
|
18
|
-
* Class to create shimmers for applications.
|
|
19
|
-
*
|
|
20
|
-
* @internal
|
|
21
|
-
*/
|
|
22
|
-
var ShimmerFactory = /** @class */ (function () {
|
|
23
|
-
function ShimmerFactory() {
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return ShimmerFactory;
|
|
24
9
|
}
|
|
10
|
+
});
|
|
11
|
+
const _interop_require_default = require("@swc/helpers/_/_interop_require_default");
|
|
12
|
+
const _shimmermodulescss = /*#__PURE__*/ _interop_require_default._(require("./styles/shimmer.module.scss"));
|
|
13
|
+
// These constants are taken from generic shimmer design.
|
|
14
|
+
const SHIMMER_WIDTH_DEFAULT = 100;
|
|
15
|
+
const SHIMMER_HEIGHT_DEFAULT = 100;
|
|
16
|
+
const SHIMMER_RECTANGLE_HEIGHT_MAX = 16;
|
|
17
|
+
const SHIMMER_RECTANGLE_COUNT = 4;
|
|
18
|
+
const SHIMMER_ELEMENT_COUNT = 2 * SHIMMER_RECTANGLE_COUNT + 1;
|
|
19
|
+
const RECTANGLE_X = 8;
|
|
20
|
+
const SHIMMER_MAIN_RECTANGLE_SIZE_RATIO = 0.9;
|
|
21
|
+
const RECTANGLE_1_LENGTH = 20;
|
|
22
|
+
const RECTANGLE_2_LENGTH = 40;
|
|
23
|
+
const RECTANGLE_3_LENGTH = 90;
|
|
24
|
+
const RECTANGLE_4_LENGTH = 80;
|
|
25
|
+
class ShimmerFactory {
|
|
25
26
|
/**
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
ShimmerFactory.createShimmer = function (width, height, componentTag, loadingMessage, containerMargin) {
|
|
33
|
-
if (containerMargin === void 0) { containerMargin = undefined; }
|
|
27
|
+
* Method that creates a shimmer for applications using an svg.
|
|
28
|
+
* @param width - Width of the shimmer
|
|
29
|
+
* @param height - Height of the shimmer
|
|
30
|
+
* @param componentTag - ID for the shimmer
|
|
31
|
+
* @param loadingMessage - Displays message when the shimmer loads
|
|
32
|
+
*/ static createShimmer(width, height, componentTag, loadingMessage, containerMargin = undefined) {
|
|
34
33
|
width = width || SHIMMER_WIDTH_DEFAULT;
|
|
35
34
|
height = height || SHIMMER_HEIGHT_DEFAULT;
|
|
36
|
-
|
|
37
|
-
shimmerContainerDiv.className =
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
35
|
+
const shimmerContainerDiv = document.createElement('div');
|
|
36
|
+
shimmerContainerDiv.className = _shimmermodulescss.default.shimmerContainer;
|
|
37
|
+
const shimmerDiv = document.createElement('div');
|
|
38
|
+
const mainRectangleHeight = height * SHIMMER_MAIN_RECTANGLE_SIZE_RATIO;
|
|
39
|
+
let rectangleHeight = mainRectangleHeight / SHIMMER_ELEMENT_COUNT;
|
|
41
40
|
rectangleHeight = Math.min(SHIMMER_RECTANGLE_HEIGHT_MAX, rectangleHeight);
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
shimmerDiv.innerHTML =
|
|
41
|
+
const gap = 2 * rectangleHeight;
|
|
42
|
+
const rectangle1Y = rectangleHeight;
|
|
43
|
+
const rectangle2Y = rectangle1Y + gap;
|
|
44
|
+
const rectangle3Y = rectangle2Y + gap;
|
|
45
|
+
const rectangle4Y = rectangle3Y + gap;
|
|
46
|
+
const className = _shimmermodulescss.default.shimmerElementFill;
|
|
47
|
+
shimmerDiv.innerHTML = `<svg width=${width} height=${height} viewBox="0 0 ${width} ${height}" version="1.1"
|
|
48
|
+
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
49
|
+
<title>${loadingMessage}</title>
|
|
50
|
+
<g id=${componentTag}_Shimmer stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
|
51
|
+
<rect x="0" y="0" width=${width} height=${height}></rect>
|
|
52
|
+
${ShimmerFactory._shimmerRect(componentTag + '_1', className, RECTANGLE_X, rectangle1Y, RECTANGLE_1_LENGTH, rectangleHeight)}
|
|
53
|
+
${ShimmerFactory._shimmerRect(componentTag + '_2', className, RECTANGLE_X, rectangle2Y, RECTANGLE_2_LENGTH, rectangleHeight)}
|
|
54
|
+
${ShimmerFactory._shimmerRect(componentTag + '_3', className, RECTANGLE_X, rectangle3Y, RECTANGLE_3_LENGTH, rectangleHeight)}
|
|
55
|
+
${ShimmerFactory._shimmerRect(componentTag + '_4', className, RECTANGLE_X, rectangle4Y, RECTANGLE_4_LENGTH, rectangleHeight)}
|
|
56
|
+
</g>
|
|
57
|
+
</svg>`;
|
|
49
58
|
if (containerMargin !== undefined) {
|
|
50
59
|
shimmerContainerDiv.style.margin = containerMargin + '';
|
|
51
60
|
}
|
|
52
61
|
shimmerContainerDiv.appendChild(shimmerDiv);
|
|
53
|
-
|
|
62
|
+
const shimmerAccessibilityContainerDiv = document.createElement('div');
|
|
54
63
|
shimmerAccessibilityContainerDiv.setAttribute('role', 'status');
|
|
55
64
|
shimmerAccessibilityContainerDiv.setAttribute('aria-live', 'polite');
|
|
56
65
|
shimmerContainerDiv.appendChild(shimmerAccessibilityContainerDiv);
|
|
57
66
|
return shimmerContainerDiv;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
return
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
67
|
+
}
|
|
68
|
+
static _shimmerRect(id, className, x, y, width, height) {
|
|
69
|
+
return `<rect id=${id} class=${className} x=${x} y=${y} width="${width}%" height=${height}>
|
|
70
|
+
<animate
|
|
71
|
+
attributeName="opacity"
|
|
72
|
+
dur="1s"
|
|
73
|
+
values="0.2;0.5;0.9"
|
|
74
|
+
repeatCount="indefinite"
|
|
75
|
+
begin="0"/>
|
|
76
|
+
</rect>`;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
//# sourceMappingURL=./ShimmerFactory.js.map
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Include Fabric here so we aren't dependent on the Fabric CDN
|
|
4
3
|
*
|
|
@@ -11,9 +10,12 @@
|
|
|
11
10
|
*
|
|
12
11
|
* NOTE: Fabric.LocalFont is a modified copy of legacy Fabric that removes the
|
|
13
12
|
* use of Segoe CSS font-face in favor of local fonts (Segoe/SF/Roboto).
|
|
14
|
-
*/
|
|
15
|
-
Object.defineProperty(exports, "__esModule", {
|
|
13
|
+
*/ "use strict";
|
|
14
|
+
Object.defineProperty(exports, "__esModule", {
|
|
15
|
+
value: true
|
|
16
|
+
});
|
|
16
17
|
require("./fabric-core-sass/Fabric.LocalFont.global.scss");
|
|
17
18
|
require("./fabric-core-shim.global.scss");
|
|
18
19
|
require("./iconDefinitions.css");
|
|
19
|
-
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=./FabricLocalFont.js.map
|