@coxwave/tap-kit-types 2.5.5 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +61 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -178,6 +178,58 @@ type ContainerConfig = {
|
|
|
178
178
|
sidebarConfig?: SidebarConfig;
|
|
179
179
|
};
|
|
180
180
|
|
|
181
|
+
/**
|
|
182
|
+
* Feature Flags Type Definitions
|
|
183
|
+
*
|
|
184
|
+
* Extensible feature flag system using dot notation for namespacing.
|
|
185
|
+
* Flags are optional booleans - undefined means "use default behavior".
|
|
186
|
+
*
|
|
187
|
+
* Naming convention: "domain.subdomain.feature"
|
|
188
|
+
* Examples:
|
|
189
|
+
* - "material.pdf.download" - PDF download in material viewer
|
|
190
|
+
* - "quiz.enabled" - Quiz feature availability
|
|
191
|
+
* - "chat.attachment" - File attachment in chat
|
|
192
|
+
*
|
|
193
|
+
* @example
|
|
194
|
+
* const flags: FeatureFlags = {
|
|
195
|
+
* "material.pdf.download": false, // Disable PDF download
|
|
196
|
+
* };
|
|
197
|
+
*/
|
|
198
|
+
/**
|
|
199
|
+
* Known feature flag keys (for type safety and autocomplete)
|
|
200
|
+
*
|
|
201
|
+
* When adding new flags:
|
|
202
|
+
* 1. Add the key to this union type
|
|
203
|
+
* 2. Document the flag's purpose in JSDoc
|
|
204
|
+
*/
|
|
205
|
+
type FeatureFlagKey =
|
|
206
|
+
/**
|
|
207
|
+
* Enable/disable PDF download button in material viewer
|
|
208
|
+
* @default true (download enabled)
|
|
209
|
+
*/
|
|
210
|
+
"material.pdf.download";
|
|
211
|
+
/**
|
|
212
|
+
* Feature flags object type
|
|
213
|
+
*
|
|
214
|
+
* All flags are optional - undefined means "use default behavior"
|
|
215
|
+
* false = explicitly disabled
|
|
216
|
+
* true = explicitly enabled
|
|
217
|
+
*/
|
|
218
|
+
type FeatureFlags = Partial<Record<FeatureFlagKey, boolean>>;
|
|
219
|
+
/**
|
|
220
|
+
* Helper to check if a feature is enabled
|
|
221
|
+
*
|
|
222
|
+
* @param flags - Feature flags object
|
|
223
|
+
* @param key - Feature flag key to check
|
|
224
|
+
* @param defaultValue - Default value if flag is undefined (default: true)
|
|
225
|
+
* @returns Whether the feature is enabled
|
|
226
|
+
*
|
|
227
|
+
* @example
|
|
228
|
+
* const canDownload = isFeatureEnabled(flags, "material.pdf.download"); // default true
|
|
229
|
+
* const quizEnabled = isFeatureEnabled(flags, "quiz.enabled", false); // default false
|
|
230
|
+
*/
|
|
231
|
+
declare function isFeatureEnabled(flags: FeatureFlags | undefined, key: FeatureFlagKey, defaultValue?: boolean): boolean;
|
|
232
|
+
|
|
181
233
|
type TapMessageType = "tap:ready" | "tap:close" | "timeline:seek" | "alarm:click" | "alarm:fadeIn" | "popUp:open" | "popUp:close" | "material:view:open" | "material:view:close" | "material:view:error" | "html:view:open" | "html:view:close" | "container:mode:change" | "container:mode:change:ack" | "container:layout:state:changed" | "viewport:resize" | "config:update" | "config:request" | "GA_EVENT" | "tutor:info";
|
|
182
234
|
type TapMessage = TapReadyMessage | TapCloseMessage | TimelineSeekMessage | AlarmClickMessage | AlarmFadeInMessage | PopUpOpenMessage | PopUpCloseMessage | MaterialViewOpenMessage | MaterialViewCloseMessage | MaterialViewErrorMessage | HtmlViewOpenMessage | HtmlViewCloseMessage | ContainerModeChangeMessage | ContainerModeChangeAckMessage | ContainerLayoutStateChangedMessage | ViewportResizeMessage | ConfigUpdateMessage | ConfigRequestMessage | GAEventMessage | TutorInfoMessage;
|
|
183
235
|
interface TapReadyMessage {
|
|
@@ -225,6 +277,8 @@ interface MaterialViewOpenMessage {
|
|
|
225
277
|
title?: string;
|
|
226
278
|
/** Text phrases to highlight in PDF (from reference_string parsing) */
|
|
227
279
|
highlightPhrases?: string[];
|
|
280
|
+
/** Feature flags for viewer behavior (e.g., "material.pdf.download": false) */
|
|
281
|
+
flags?: FeatureFlags;
|
|
228
282
|
nonce?: string | number;
|
|
229
283
|
}
|
|
230
284
|
/**
|
|
@@ -3661,6 +3715,12 @@ interface MaterialViewConfig {
|
|
|
3661
3715
|
* Optional title for the viewer header
|
|
3662
3716
|
*/
|
|
3663
3717
|
title?: string;
|
|
3718
|
+
|
|
3719
|
+
/**
|
|
3720
|
+
* Feature flags for viewer behavior
|
|
3721
|
+
* @example { "material.pdf.download": false } // Disable download button
|
|
3722
|
+
*/
|
|
3723
|
+
flags?: FeatureFlags;
|
|
3664
3724
|
}
|
|
3665
3725
|
|
|
3666
3726
|
/**
|
|
@@ -3872,4 +3932,4 @@ declare global {
|
|
|
3872
3932
|
function cancelIdleCallback(handle: number): void;
|
|
3873
3933
|
}
|
|
3874
3934
|
|
|
3875
|
-
export { ALARM_DURATION, type AlarmClickMessage, AlarmClickSchema, type AlarmElement, type AlarmElementProps, AlarmElementPropsSchema, AlarmElementSchema, type AlarmFadeInMessage, AlarmFadeInSchema, AlarmMessageInstanceSchema, type AlarmMessageInstanceType, type AlarmPayload, type AlarmType, type CSSStyle, CSSStyleSchema, type ConfigRequestMessage, ConfigRequestSchema, type ConfigUpdateKey, type ConfigUpdateMessage, type ConfigUpdateOptions, type ConfigUpdatePayload, ConfigUpdateSchema, type ContainerConfig, type ContainerLayoutStateChangedMessage, ContainerLayoutStateChangedSchema, type ContainerModeChangeAckMessage, ContainerModeChangeAckSchema, type ContainerModeChangeMessage, ContainerModeChangeSchema, type ContainerVisibility, type Course, type DisplayMode, type EventManager, type FloatingConfig, type GAEventMessage, GAEventSchema, type HtmlViewCloseMessage, HtmlViewCloseSchema, type HtmlViewConfig, type HtmlViewOpenMessage, HtmlViewOpenSchema, type ITapButtonElement, type ITapContainerElement, type ITapHtmlViewerElement, type ITapKitElement, type ITapMaterialViewerElement, TapKitInitializationError as InitializationError, type LayoutMode, type MaterialViewCloseMessage, MaterialViewCloseSchema, type MaterialViewConfig, type MaterialViewErrorMessage, MaterialViewErrorSchema, type MaterialViewOpenMessage, MaterialViewOpenSchema, MaterialViewerError, type PopUpCloseMessage, PopUpCloseSchema, type PopUpOpenMessage, PopUpOpenSchema, type PositionType, type SeekTimelineParamsType, type ShortcutKeyPropertiesType, type SidebarConfig, type SyncableConfigKey, TAP_BUTTON_CLICK_EVENT, TAP_ERROR_MARKER, type TapButtonAttributes, type TapButtonClickEventDetail, type TapCloseMessage, TapCloseSchema, type TapContainerAttributes, type TapErrorOptions, type TapHtmlViewerAttributes, type TapKitConfig, TapKitConfigurationError, type TapKitConstructor, type TapKitElement, type TapKitElementEventMap, TapKitError, TapKitIframeError, type TapKitInitParams, TapKitInitializationError, type TapKitInstance, TapKitLoaderError, TapKitMessageError, type TapMaterialViewerAttributes, type TapMessage, type TapMessageRecord, TapMessageSchema, type TapMessageType, type TapReadyMessage, TapReadySchema, type TimelineSeekMessage, TimelineSeekSchema, type TutorInfoMessage, TutorInfoSchema, type VideoController, type VideoPlayerAdapter, type VideoPlayerConfig, type ViewportResizeMessage, ViewportResizeSchema };
|
|
3935
|
+
export { ALARM_DURATION, type AlarmClickMessage, AlarmClickSchema, type AlarmElement, type AlarmElementProps, AlarmElementPropsSchema, AlarmElementSchema, type AlarmFadeInMessage, AlarmFadeInSchema, AlarmMessageInstanceSchema, type AlarmMessageInstanceType, type AlarmPayload, type AlarmType, type CSSStyle, CSSStyleSchema, type ConfigRequestMessage, ConfigRequestSchema, type ConfigUpdateKey, type ConfigUpdateMessage, type ConfigUpdateOptions, type ConfigUpdatePayload, ConfigUpdateSchema, type ContainerConfig, type ContainerLayoutStateChangedMessage, ContainerLayoutStateChangedSchema, type ContainerModeChangeAckMessage, ContainerModeChangeAckSchema, type ContainerModeChangeMessage, ContainerModeChangeSchema, type ContainerVisibility, type Course, type DisplayMode, type EventManager, type FeatureFlagKey, type FeatureFlags, type FloatingConfig, type GAEventMessage, GAEventSchema, type HtmlViewCloseMessage, HtmlViewCloseSchema, type HtmlViewConfig, type HtmlViewOpenMessage, HtmlViewOpenSchema, type ITapButtonElement, type ITapContainerElement, type ITapHtmlViewerElement, type ITapKitElement, type ITapMaterialViewerElement, TapKitInitializationError as InitializationError, type LayoutMode, type MaterialViewCloseMessage, MaterialViewCloseSchema, type MaterialViewConfig, type MaterialViewErrorMessage, MaterialViewErrorSchema, type MaterialViewOpenMessage, MaterialViewOpenSchema, MaterialViewerError, type PopUpCloseMessage, PopUpCloseSchema, type PopUpOpenMessage, PopUpOpenSchema, type PositionType, type SeekTimelineParamsType, type ShortcutKeyPropertiesType, type SidebarConfig, type SyncableConfigKey, TAP_BUTTON_CLICK_EVENT, TAP_ERROR_MARKER, type TapButtonAttributes, type TapButtonClickEventDetail, type TapCloseMessage, TapCloseSchema, type TapContainerAttributes, type TapErrorOptions, type TapHtmlViewerAttributes, type TapKitConfig, TapKitConfigurationError, type TapKitConstructor, type TapKitElement, type TapKitElementEventMap, TapKitError, TapKitIframeError, type TapKitInitParams, TapKitInitializationError, type TapKitInstance, TapKitLoaderError, TapKitMessageError, type TapMaterialViewerAttributes, type TapMessage, type TapMessageRecord, TapMessageSchema, type TapMessageType, type TapReadyMessage, TapReadySchema, type TimelineSeekMessage, TimelineSeekSchema, type TutorInfoMessage, TutorInfoSchema, type VideoController, type VideoPlayerAdapter, type VideoPlayerConfig, type ViewportResizeMessage, ViewportResizeSchema, isFeatureEnabled };
|
package/dist/index.js
CHANGED
|
@@ -2,6 +2,12 @@ var __defProp = Object.defineProperty;
|
|
|
2
2
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
3
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
4
|
|
|
5
|
+
// src/feature-flags.ts
|
|
6
|
+
function isFeatureEnabled(flags, key, defaultValue = true) {
|
|
7
|
+
if (!flags) return defaultValue;
|
|
8
|
+
return flags[key] ?? defaultValue;
|
|
9
|
+
}
|
|
10
|
+
|
|
5
11
|
// src/errors.ts
|
|
6
12
|
var TAP_ERROR_MARKER = "__tap_sdk_error__";
|
|
7
13
|
var TapKitError = class _TapKitError extends Error {
|
|
@@ -920,6 +926,6 @@ var TapMessageSchema = union([
|
|
|
920
926
|
// src/tap-button.d.ts
|
|
921
927
|
var TAP_BUTTON_CLICK_EVENT = "tap-button:click";
|
|
922
928
|
|
|
923
|
-
export { ALARM_DURATION, AlarmClickSchema, AlarmElementPropsSchema, AlarmElementSchema, AlarmFadeInSchema, AlarmMessageInstanceSchema, CSSStyleSchema, ConfigRequestSchema, ConfigUpdateSchema, ContainerLayoutStateChangedSchema, ContainerModeChangeAckSchema, ContainerModeChangeSchema, GAEventSchema, HtmlViewCloseSchema, HtmlViewOpenSchema, TapKitInitializationError as InitializationError, MaterialViewCloseSchema, MaterialViewErrorSchema, MaterialViewOpenSchema, MaterialViewerError, PopUpCloseSchema, PopUpOpenSchema, TAP_BUTTON_CLICK_EVENT, TAP_ERROR_MARKER, TapCloseSchema, TapKitConfigurationError, TapKitError, TapKitIframeError, TapKitInitializationError, TapKitLoaderError, TapKitMessageError, TapMessageSchema, TapReadySchema, TimelineSeekSchema, TutorInfoSchema, ViewportResizeSchema };
|
|
929
|
+
export { ALARM_DURATION, AlarmClickSchema, AlarmElementPropsSchema, AlarmElementSchema, AlarmFadeInSchema, AlarmMessageInstanceSchema, CSSStyleSchema, ConfigRequestSchema, ConfigUpdateSchema, ContainerLayoutStateChangedSchema, ContainerModeChangeAckSchema, ContainerModeChangeSchema, GAEventSchema, HtmlViewCloseSchema, HtmlViewOpenSchema, TapKitInitializationError as InitializationError, MaterialViewCloseSchema, MaterialViewErrorSchema, MaterialViewOpenSchema, MaterialViewerError, PopUpCloseSchema, PopUpOpenSchema, TAP_BUTTON_CLICK_EVENT, TAP_ERROR_MARKER, TapCloseSchema, TapKitConfigurationError, TapKitError, TapKitIframeError, TapKitInitializationError, TapKitLoaderError, TapKitMessageError, TapMessageSchema, TapReadySchema, TimelineSeekSchema, TutorInfoSchema, ViewportResizeSchema, isFeatureEnabled };
|
|
924
930
|
//# sourceMappingURL=index.js.map
|
|
925
931
|
//# sourceMappingURL=index.js.map
|