;
getProperty(property: P): Promise;
setInstance(instance: T): void;
+ setLazyConstructor(lazyConstructor: () => T | Promise): void;
resetInstance(): void;
}
diff --git a/src/core/utils/style-helpers.ts b/src/core/utils/style-helpers.ts
new file mode 100644
index 000000000..45ed8aa36
--- /dev/null
+++ b/src/core/utils/style-helpers.ts
@@ -0,0 +1,36 @@
+// (C) Copyright 2015 Moodle Pty Ltd.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+/**
+ * Element styles.
+ *
+ * Number styles are interpreted as pixels; any other values should be set as a string.
+ */
+export type CoreStyles = Record;
+
+/**
+ * Render the given styles to be used inline on an element.
+ *
+ * @param styles Styles.
+ * @returns Inline styles.
+ */
+export function renderInlineStyles(styles: CoreStyles): string {
+ return Object
+ .entries(styles)
+ .reduce((renderedStyles, [property, value]) => {
+ const propertyValue = typeof value === 'string' ? value : `${value}px`;
+
+ return `${property}:${propertyValue};${renderedStyles}`;
+ }, '');
+}
diff --git a/src/types/config.d.ts b/src/types/config.d.ts
index ef01af18a..024c0dfb7 100644
--- a/src/types/config.d.ts
+++ b/src/types/config.d.ts
@@ -34,6 +34,8 @@ export interface EnvironmentConfig {
languages: Record;
databaseOptimizations?: Partial;
databaseTableOptimizations?: Record>;
+ disableUserTours?: boolean;
+ disabledUserTours?: string[];
wsservice: string;
demo_sites: Record;
zoomlevels: Record;