@micromag/core 0.4.66 → 0.4.71

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/es/contexts.d.ts CHANGED
@@ -360,6 +360,7 @@ interface PlaybackControlsTheme {
360
360
  progressColor?: unknown;
361
361
  }
362
362
  type MediaElement = HTMLVideoElement | HTMLAudioElement | HTMLMediaElement;
363
+ declare function mediaElementIsPlaying(media: MediaElement | null): boolean;
363
364
  interface PlaybackContext {
364
365
  playing: boolean;
365
366
  completed: boolean;
@@ -526,4 +527,4 @@ interface VisitorProviderProps {
526
527
  }
527
528
  declare function VisitorProvider({ visitor: providedVisitor, children, }: VisitorProviderProps): react_jsx_runtime.JSX.Element;
528
529
 
529
- export { ComponentsContext, ComponentsProvider, ConsentContext, ConsentProvider, ELEMENTS_NAMESPACE, EditorContext, EditorProvider, FIELDS_NAMESPACE, FORMS_NAMESPACE, FieldContext, FieldContextProvider, FieldsContext, FieldsProvider, FieldsValueContext, FieldsValueContextProvider, FontsContext, FontsProvider, GoogleApiClientContext, GoogleApiClientProvider, GoogleKeysContext, GoogleKeysProvider, GoogleMapsClientContext, GoogleMapsClientProvider, MODALS_NAMESPACE, ModalsContext, ModalsProvider, PanelsContext, PanelsProvider, PlaybackContext, PlaybackProvider, SCREENS_NAMESPACE, ScreenContext, ScreenProvider, ScreenSizeContext, ScreenSizeProvider, ScreensContext, ScreensProvider, SettingsContext, SettingsProvider, StoryContext, StoryProvider, TrackingProvider, ViewerContext, ViewerProvider, VisitorContext, VisitorProvider, useComponent, useComponents, useComponentsManager, useConsent, useEditor, useElementComponent, useElementsComponents, useElementsComponentsManager, useFieldComponent, useFieldContext, useFieldDefinition, useFieldsComponents, useFieldsComponentsManager, useFieldsManager, useFieldsValue, useFonts, useFormComponent, useFormsComponents, useFormsComponentsManager, useGetColors, useGoogleApiClient, useGoogleFonts, useGoogleKeys, useGoogleMapsClient, useModalComponent, useModals, useModalsComponents, useModalsComponentsManager, usePanels, usePlaybackContext, usePlaybackMediaRef, useRouteBack, useRoutePush, useScreen, useScreenComponent, useScreenData, useScreenDefinition, useScreenRenderContext, useScreenSize, useScreenState, useScreensComponents, useScreensComponentsManager, useScreensManager, useSetVisitor, useSetting, useSettings, useStory, useStoryContext, useTracking, useViewerContainer, useViewerContext, useViewerEvents, useViewerInteraction, useViewerNavigation, useViewerSize, useViewerWebView, useVisitor, useVisitorContext, withGoogleApiClient, withGoogleMapsClient, withModals, withPanels };
530
+ export { ComponentsContext, ComponentsProvider, ConsentContext, ConsentProvider, ELEMENTS_NAMESPACE, EditorContext, EditorProvider, FIELDS_NAMESPACE, FORMS_NAMESPACE, FieldContext, FieldContextProvider, FieldsContext, FieldsProvider, FieldsValueContext, FieldsValueContextProvider, FontsContext, FontsProvider, GoogleApiClientContext, GoogleApiClientProvider, GoogleKeysContext, GoogleKeysProvider, GoogleMapsClientContext, GoogleMapsClientProvider, MODALS_NAMESPACE, ModalsContext, ModalsProvider, PanelsContext, PanelsProvider, PlaybackContext, PlaybackProvider, SCREENS_NAMESPACE, ScreenContext, ScreenProvider, ScreenSizeContext, ScreenSizeProvider, ScreensContext, ScreensProvider, SettingsContext, SettingsProvider, StoryContext, StoryProvider, TrackingProvider, ViewerContext, ViewerProvider, VisitorContext, VisitorProvider, mediaElementIsPlaying, useComponent, useComponents, useComponentsManager, useConsent, useEditor, useElementComponent, useElementsComponents, useElementsComponentsManager, useFieldComponent, useFieldContext, useFieldDefinition, useFieldsComponents, useFieldsComponentsManager, useFieldsManager, useFieldsValue, useFonts, useFormComponent, useFormsComponents, useFormsComponentsManager, useGetColors, useGoogleApiClient, useGoogleFonts, useGoogleKeys, useGoogleMapsClient, useModalComponent, useModals, useModalsComponents, useModalsComponentsManager, usePanels, usePlaybackContext, usePlaybackMediaRef, useRouteBack, useRoutePush, useScreen, useScreenComponent, useScreenData, useScreenDefinition, useScreenRenderContext, useScreenSize, useScreenState, useScreensComponents, useScreensComponentsManager, useScreensManager, useSetVisitor, useSetting, useSettings, useStory, useStoryContext, useTracking, useViewerContainer, useViewerContext, useViewerEvents, useViewerInteraction, useViewerNavigation, useViewerSize, useViewerWebView, useVisitor, useVisitorContext, withGoogleApiClient, withGoogleMapsClient, withModals, withPanels };
package/es/contexts.js CHANGED
@@ -1072,10 +1072,9 @@ var usePlaybackMediaRef = function usePlaybackMediaRef() {
1072
1072
 
1073
1073
  // Play early in the process
1074
1074
  var currentMedia = mediaRef.current;
1075
- var forcePlayingRef = useRef(false);
1076
- var shouldForcePlaying = active && currentMedia !== null && playing && !forcePlayingRef.current && !mediaElementIsPlaying(currentMedia);
1075
+ var shouldForcePlaying = active && currentMedia !== null && playing && currentMedia.dataset.forcePlaying !== 'true' && !mediaElementIsPlaying(currentMedia);
1077
1076
  if (shouldForcePlaying) {
1078
- forcePlayingRef.current = true;
1077
+ currentMedia.dataset.forcePlaying = 'true';
1079
1078
  currentMedia.play();
1080
1079
  }
1081
1080
 
@@ -1089,7 +1088,7 @@ var usePlaybackMediaRef = function usePlaybackMediaRef() {
1089
1088
  }, [active, background, media, updateKey, setMedia, setIsBackground, isBackground]);
1090
1089
  return {
1091
1090
  ref: mediaRef,
1092
- isCurrent: mediaRef.current === media
1091
+ isCurrent: active || mediaRef.current === media
1093
1092
  };
1094
1093
  };
1095
1094
  function PlaybackProvider(_ref) {
@@ -1632,4 +1631,4 @@ function VisitorProvider(_ref) {
1632
1631
  });
1633
1632
  }
1634
1633
 
1635
- export { ComponentsContext, ComponentsProvider, ConsentContext, ConsentProvider, ELEMENTS_NAMESPACE, EditorContext, EditorProvider, FIELDS_NAMESPACE, FORMS_NAMESPACE, FieldContext, FieldContextProvider, FieldsContext, FieldsProvider, FieldsValueContext, FieldsValueContextProvider, FontsContext, FontsProvider, GoogleApiClientContext, GoogleApiClientProvider, GoogleKeysContext, GoogleKeysProvider, GoogleMapsClientContext, GoogleMapsClientProvider, MODALS_NAMESPACE, ModalsContext, ModalsProvider, PanelsContext, PanelsProvider, PlaybackContext, PlaybackProvider, SCREENS_NAMESPACE, ScreenContext, ScreenProvider, ScreenSizeContext, ScreenSizeProvider, ScreensContext, ScreensProvider, SettingsContext, SettingsProvider, StoryContext, StoryProvider, TrackingProvider, ViewerContext, ViewerProvider, VisitorContext, VisitorProvider, useComponent, useComponents, useComponentsManager, useConsent, useEditor, useElementComponent, useElementsComponents, useElementsComponentsManager, useFieldComponent, useFieldContext, useFieldDefinition, useFieldsComponents, useFieldsComponentsManager, useFieldsManager, useFieldsValue, useFonts, useFormComponent, useFormsComponents, useFormsComponentsManager, useGetColors, useGoogleApiClient, useGoogleFonts, useGoogleKeys, useGoogleMapsClient, useModalComponent, useModals, useModalsComponents, useModalsComponentsManager, usePanels, usePlaybackContext, usePlaybackMediaRef, useRouteBack, useRoutePush, useScreen, useScreenComponent, useScreenData, useScreenDefinition, useScreenRenderContext, useScreenSize, useScreenState, useScreensComponents, useScreensComponentsManager, useScreensManager, useSetVisitor, useSetting, useSettings, useStory, useStoryContext, useTracking, useViewerContainer, useViewerContext, useViewerEvents, useViewerInteraction, useViewerNavigation, useViewerSize, useViewerWebView, useVisitor, useVisitorContext, withGoogleApiClient, withGoogleMapsClient, withModals, withPanels };
1634
+ export { ComponentsContext, ComponentsProvider, ConsentContext, ConsentProvider, ELEMENTS_NAMESPACE, EditorContext, EditorProvider, FIELDS_NAMESPACE, FORMS_NAMESPACE, FieldContext, FieldContextProvider, FieldsContext, FieldsProvider, FieldsValueContext, FieldsValueContextProvider, FontsContext, FontsProvider, GoogleApiClientContext, GoogleApiClientProvider, GoogleKeysContext, GoogleKeysProvider, GoogleMapsClientContext, GoogleMapsClientProvider, MODALS_NAMESPACE, ModalsContext, ModalsProvider, PanelsContext, PanelsProvider, PlaybackContext, PlaybackProvider, SCREENS_NAMESPACE, ScreenContext, ScreenProvider, ScreenSizeContext, ScreenSizeProvider, ScreensContext, ScreensProvider, SettingsContext, SettingsProvider, StoryContext, StoryProvider, TrackingProvider, ViewerContext, ViewerProvider, VisitorContext, VisitorProvider, mediaElementIsPlaying, useComponent, useComponents, useComponentsManager, useConsent, useEditor, useElementComponent, useElementsComponents, useElementsComponentsManager, useFieldComponent, useFieldContext, useFieldDefinition, useFieldsComponents, useFieldsComponentsManager, useFieldsManager, useFieldsValue, useFonts, useFormComponent, useFormsComponents, useFormsComponentsManager, useGetColors, useGoogleApiClient, useGoogleFonts, useGoogleKeys, useGoogleMapsClient, useModalComponent, useModals, useModalsComponents, useModalsComponentsManager, usePanels, usePlaybackContext, usePlaybackMediaRef, useRouteBack, useRoutePush, useScreen, useScreenComponent, useScreenData, useScreenDefinition, useScreenRenderContext, useScreenSize, useScreenState, useScreensComponents, useScreensComponentsManager, useScreensManager, useSetVisitor, useSetting, useSettings, useStory, useStoryContext, useTracking, useViewerContainer, useViewerContext, useViewerEvents, useViewerInteraction, useViewerNavigation, useViewerSize, useViewerWebView, useVisitor, useVisitorContext, withGoogleApiClient, withGoogleMapsClient, withModals, withPanels };
package/es/hooks.d.ts CHANGED
@@ -336,7 +336,7 @@ declare const useThemeParser: () => (story: any) => any;
336
336
 
337
337
  declare const useTrackScreenView: () => (screen?: any, index?: any) => void;
338
338
  declare const useTrackScreenEvent: (type?: any) => (action?: any, label?: any, opts?: any) => void;
339
- declare const useTrackScreenMedia: (type?: any) => (media?: any, action?: any, opts?: any) => void;
339
+ declare const useTrackScreenMedia: (type?: string | null) => (media?: any, action?: any, opts?: any) => void;
340
340
  declare const useTrackEvent: () => (category?: any, action?: any, label?: any, opts?: any) => void;
341
341
  declare const useTrackMedia: (type?: any) => (media?: any, action?: any, opts?: any) => void;
342
342
 
package/es/hooks.js CHANGED
@@ -2398,20 +2398,20 @@ var getScreenOptions = function getScreenOptions(screenContext, opts) {
2398
2398
  };
2399
2399
  };
2400
2400
  var hasTracking = function hasTracking(tracking) {
2401
- return typeof tracking !== 'undefined';
2401
+ return typeof tracking !== 'undefined' && tracking !== null;
2402
2402
  };
2403
2403
  var useTrackScreenView = function useTrackScreenView() {
2404
2404
  var tracking = useTracking();
2405
- if (!hasTracking(tracking)) {
2406
- return function () {};
2407
- }
2408
2405
  return useCallback(function () {
2409
2406
  var screen = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
2410
2407
  var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
2408
+ if (!hasTracking(tracking)) {
2409
+ return;
2410
+ }
2411
2411
  if (screen !== null && index !== null) {
2412
2412
  tracking.trackScreenView(screen, index);
2413
2413
  }
2414
- }, []);
2414
+ }, [tracking]);
2415
2415
  };
2416
2416
  var useTrackScreenEvent = function useTrackScreenEvent() {
2417
2417
  var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
@@ -2435,47 +2435,44 @@ var useTrackScreenEvent = function useTrackScreenEvent() {
2435
2435
  var useTrackScreenMedia = function useTrackScreenMedia() {
2436
2436
  var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
2437
2437
  var tracking = useTracking();
2438
- if (!hasTracking(tracking)) {
2439
- return function () {};
2440
- }
2441
2438
  var screenContext = useScreen();
2442
- if (screenContext.renderContext !== 'view') {
2443
- return function () {};
2444
- }
2445
2439
  return useCallback(function () {
2446
2440
  var media = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
2447
2441
  var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
2448
2442
  var opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
2443
+ if (!hasTracking(tracking) || screenContext.renderContext !== 'view') {
2444
+ return;
2445
+ }
2449
2446
  if (type !== null && media !== null && action !== null) {
2450
2447
  tracking.trackMedia("screen_".concat(type), media, action, _objectSpread(_objectSpread({}, opts), getScreenOptions(screenContext, opts)));
2451
2448
  }
2452
- }, [screenContext]);
2449
+ }, [tracking, screenContext, type]);
2453
2450
  };
2454
2451
  var useTrackEvent = function useTrackEvent() {
2455
2452
  var tracking = useTracking();
2456
- if (!hasTracking(tracking)) {
2457
- return function () {};
2458
- }
2459
2453
  return useCallback(function () {
2460
2454
  var category = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
2461
2455
  var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
2462
2456
  var label = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
2463
2457
  var opts = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
2458
+ if (!hasTracking(tracking)) {
2459
+ return;
2460
+ }
2464
2461
  if (category !== null && action !== null) {
2465
2462
  tracking.trackEvent(category, action, label, opts);
2466
2463
  }
2467
- }, []);
2464
+ }, [tracking]);
2468
2465
  };
2469
2466
  var useTrackMedia = function useTrackMedia() {
2470
2467
  var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
2471
2468
  var tracking = useTracking();
2472
- if (!hasTracking(tracking)) {
2473
- return function () {};
2474
- }
2475
2469
  return useCallback(function () {
2476
2470
  var media = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
2477
2471
  var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
2478
2472
  var opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
2473
+ if (!hasTracking(tracking)) {
2474
+ return;
2475
+ }
2479
2476
  if (type !== null && media !== null && action !== null) {
2480
2477
  tracking.trackMedia(type, media, action, opts);
2481
2478
  }
package/es/utils.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { camelCase, pascalCase, snakeCase } from 'change-case';
2
- import { ComponentType } from 'react';
2
+ import { ComponentType, ForwardedRef } from 'react';
3
3
 
4
4
  declare function addNonBreakingSpaces(text: any): any;
5
5
 
@@ -213,6 +213,8 @@ declare const isTextFilled: (text: any) => boolean;
213
213
 
214
214
  declare const isValidUrl: (string: any) => boolean;
215
215
 
216
+ declare function mergeRefs<T>(...refs: Array<ForwardedRef<T> | null | undefined>): (value: T | null) => void;
217
+
216
218
  declare const schemaId: (str: any) => string;
217
219
 
218
220
  declare const setValue: (value: any, keyParts: any, fieldValue: any) => any;
@@ -225,4 +227,4 @@ declare const validateFields: (fields: any, value: any) => any;
225
227
 
226
228
  declare const getContrastingColor: (backgroundColor: any) => any;
227
229
 
228
- export { addNonBreakingSpaces, convertStyleToString, copyToClipboard, createNullableOnChange, createUseEvent, cssEscape, easings, getColorAsString, getComponentFromName, getContrastingColor, getDeviceScreens, getDisplayName, getFieldByName, getFieldFromPath, getFileName, getFontFamily as getFontFamilyFromFont, getFooterProps, getGridLayoutName, largestRemainderRound as getLargestRemainderRound, getLayersFromBackground, getLayoutParts, getMediaFilesAsArray, getOptimalImageUrl, getScreenExtraField, getScreenFieldsWithStates, getSecondsFromTime, getShadowCoords, getStyleFromAlignment, getStyleFromBorder, getStyleFromBox, getStyleFromColor, getStyleFromContainer, getStyleFromHighlight, getStyleFromImage, getStyleFromLink, getStyleFromMargin, getStyleFromText, getVideoSupportedMimes, isFooterFilled, isHeaderFilled, isImageFilled, isIos, isTextFilled$1 as isLabelFilled, isMessage, isTextFilled, isValidUrl, schemaId, setValue as setFieldValue, slug, unique, validateFields };
230
+ export { addNonBreakingSpaces, convertStyleToString, copyToClipboard, createNullableOnChange, createUseEvent, cssEscape, easings, getColorAsString, getComponentFromName, getContrastingColor, getDeviceScreens, getDisplayName, getFieldByName, getFieldFromPath, getFileName, getFontFamily as getFontFamilyFromFont, getFooterProps, getGridLayoutName, largestRemainderRound as getLargestRemainderRound, getLayersFromBackground, getLayoutParts, getMediaFilesAsArray, getOptimalImageUrl, getScreenExtraField, getScreenFieldsWithStates, getSecondsFromTime, getShadowCoords, getStyleFromAlignment, getStyleFromBorder, getStyleFromBox, getStyleFromColor, getStyleFromContainer, getStyleFromHighlight, getStyleFromImage, getStyleFromLink, getStyleFromMargin, getStyleFromText, getVideoSupportedMimes, isFooterFilled, isHeaderFilled, isImageFilled, isIos, isTextFilled$1 as isLabelFilled, isMessage, isTextFilled, isValidUrl, mergeRefs, schemaId, setValue as setFieldValue, slug, unique, validateFields };
package/es/utils.js CHANGED
@@ -1134,6 +1134,21 @@ var isValidUrl = function isValidUrl(string) {
1134
1134
  return url.protocol === 'http:' || url.protocol === 'https:';
1135
1135
  };
1136
1136
 
1137
+ function mergeRefs() {
1138
+ for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {
1139
+ refs[_key] = arguments[_key];
1140
+ }
1141
+ return function (value) {
1142
+ refs.forEach(function (ref) {
1143
+ if (typeof ref === 'function') {
1144
+ ref(value);
1145
+ } else if (ref != null) {
1146
+ ref.current = value;
1147
+ }
1148
+ });
1149
+ };
1150
+ }
1151
+
1137
1152
  var createSchemaId = function createSchemaId(id) {
1138
1153
  return "https://schemas.micromag.ca/0.1/".concat(id, ".json");
1139
1154
  };
@@ -1218,4 +1233,4 @@ var getContrastingColor = function getContrastingColor(backgroundColor) {
1218
1233
  return tinycolor(color).spin(30).toString();
1219
1234
  };
1220
1235
 
1221
- export { addNonBreakingSpaces, convertStyleToString, copyToClipboard, createNullableOnChange, createUseEvent, cssEscape, easings, getColorAsString, getComponentFromName, getContrastingColor, getDeviceScreens, getDisplayName, _getFieldByName as getFieldByName, getFieldFromPath, getFileName, getFontFamily as getFontFamilyFromFont, getFooterProps, getGridLayoutName, largestRemainderRound as getLargestRemainderRound, getLayersFromBackground, getLayoutParts, getMediaFilesAsArray, getOptimalImageUrl, getScreenExtraField, getScreenFieldsWithStates, getSecondsFromTime, getShadowCoords, getStyleFromAlignment, getStyleFromBorder, getStyleFromBox, getStyleFromColor, getStyleFromContainer, getStyleFromHighlight, getStyleFromImage, getStyleFromLink, getStyleFromMargin, getStyleFromText, getVideoSupportedMimes, isFooterFilled, isHeaderFilled, isImageFilled, isIos, isTextFilled$1 as isLabelFilled, isMessage, isTextFilled, isValidUrl, schemaId, _setValue as setFieldValue, slug, unique, _validateFields as validateFields };
1236
+ export { addNonBreakingSpaces, convertStyleToString, copyToClipboard, createNullableOnChange, createUseEvent, cssEscape, easings, getColorAsString, getComponentFromName, getContrastingColor, getDeviceScreens, getDisplayName, _getFieldByName as getFieldByName, getFieldFromPath, getFileName, getFontFamily as getFontFamilyFromFont, getFooterProps, getGridLayoutName, largestRemainderRound as getLargestRemainderRound, getLayersFromBackground, getLayoutParts, getMediaFilesAsArray, getOptimalImageUrl, getScreenExtraField, getScreenFieldsWithStates, getSecondsFromTime, getShadowCoords, getStyleFromAlignment, getStyleFromBorder, getStyleFromBox, getStyleFromColor, getStyleFromContainer, getStyleFromHighlight, getStyleFromImage, getStyleFromLink, getStyleFromMargin, getStyleFromText, getVideoSupportedMimes, isFooterFilled, isHeaderFilled, isImageFilled, isIos, isTextFilled$1 as isLabelFilled, isMessage, isTextFilled, isValidUrl, mergeRefs, schemaId, _setValue as setFieldValue, slug, unique, _validateFields as validateFields };
package/lib/contexts.js CHANGED
@@ -1072,10 +1072,9 @@ var usePlaybackMediaRef = function usePlaybackMediaRef() {
1072
1072
 
1073
1073
  // Play early in the process
1074
1074
  var currentMedia = mediaRef.current;
1075
- var forcePlayingRef = React.useRef(false);
1076
- var shouldForcePlaying = active && currentMedia !== null && playing && !forcePlayingRef.current && !mediaElementIsPlaying(currentMedia);
1075
+ var shouldForcePlaying = active && currentMedia !== null && playing && currentMedia.dataset.forcePlaying !== 'true' && !mediaElementIsPlaying(currentMedia);
1077
1076
  if (shouldForcePlaying) {
1078
- forcePlayingRef.current = true;
1077
+ currentMedia.dataset.forcePlaying = 'true';
1079
1078
  currentMedia.play();
1080
1079
  }
1081
1080
 
@@ -1089,7 +1088,7 @@ var usePlaybackMediaRef = function usePlaybackMediaRef() {
1089
1088
  }, [active, background, media, updateKey, setMedia, setIsBackground, isBackground]);
1090
1089
  return {
1091
1090
  ref: mediaRef,
1092
- isCurrent: mediaRef.current === media
1091
+ isCurrent: active || mediaRef.current === media
1093
1092
  };
1094
1093
  };
1095
1094
  function PlaybackProvider(_ref) {
@@ -1698,6 +1697,7 @@ exports.ViewerContext = ViewerContext;
1698
1697
  exports.ViewerProvider = ViewerProvider;
1699
1698
  exports.VisitorContext = VisitorContext;
1700
1699
  exports.VisitorProvider = VisitorProvider;
1700
+ exports.mediaElementIsPlaying = mediaElementIsPlaying;
1701
1701
  exports.useComponent = useComponent;
1702
1702
  exports.useComponents = useComponents;
1703
1703
  exports.useComponentsManager = useComponentsManager;
package/lib/hooks.js CHANGED
@@ -2400,20 +2400,20 @@ var getScreenOptions = function getScreenOptions(screenContext, opts) {
2400
2400
  };
2401
2401
  };
2402
2402
  var hasTracking = function hasTracking(tracking) {
2403
- return typeof tracking !== 'undefined';
2403
+ return typeof tracking !== 'undefined' && tracking !== null;
2404
2404
  };
2405
2405
  var useTrackScreenView = function useTrackScreenView() {
2406
2406
  var tracking = contexts.useTracking();
2407
- if (!hasTracking(tracking)) {
2408
- return function () {};
2409
- }
2410
2407
  return react.useCallback(function () {
2411
2408
  var screen = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
2412
2409
  var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
2410
+ if (!hasTracking(tracking)) {
2411
+ return;
2412
+ }
2413
2413
  if (screen !== null && index !== null) {
2414
2414
  tracking.trackScreenView(screen, index);
2415
2415
  }
2416
- }, []);
2416
+ }, [tracking]);
2417
2417
  };
2418
2418
  var useTrackScreenEvent = function useTrackScreenEvent() {
2419
2419
  var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
@@ -2437,47 +2437,44 @@ var useTrackScreenEvent = function useTrackScreenEvent() {
2437
2437
  var useTrackScreenMedia = function useTrackScreenMedia() {
2438
2438
  var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
2439
2439
  var tracking = contexts.useTracking();
2440
- if (!hasTracking(tracking)) {
2441
- return function () {};
2442
- }
2443
2440
  var screenContext = contexts.useScreen();
2444
- if (screenContext.renderContext !== 'view') {
2445
- return function () {};
2446
- }
2447
2441
  return react.useCallback(function () {
2448
2442
  var media = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
2449
2443
  var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
2450
2444
  var opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
2445
+ if (!hasTracking(tracking) || screenContext.renderContext !== 'view') {
2446
+ return;
2447
+ }
2451
2448
  if (type !== null && media !== null && action !== null) {
2452
2449
  tracking.trackMedia("screen_".concat(type), media, action, _objectSpread(_objectSpread({}, opts), getScreenOptions(screenContext, opts)));
2453
2450
  }
2454
- }, [screenContext]);
2451
+ }, [tracking, screenContext, type]);
2455
2452
  };
2456
2453
  var useTrackEvent = function useTrackEvent() {
2457
2454
  var tracking = contexts.useTracking();
2458
- if (!hasTracking(tracking)) {
2459
- return function () {};
2460
- }
2461
2455
  return react.useCallback(function () {
2462
2456
  var category = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
2463
2457
  var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
2464
2458
  var label = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
2465
2459
  var opts = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
2460
+ if (!hasTracking(tracking)) {
2461
+ return;
2462
+ }
2466
2463
  if (category !== null && action !== null) {
2467
2464
  tracking.trackEvent(category, action, label, opts);
2468
2465
  }
2469
- }, []);
2466
+ }, [tracking]);
2470
2467
  };
2471
2468
  var useTrackMedia = function useTrackMedia() {
2472
2469
  var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
2473
2470
  var tracking = contexts.useTracking();
2474
- if (!hasTracking(tracking)) {
2475
- return function () {};
2476
- }
2477
2471
  return react.useCallback(function () {
2478
2472
  var media = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
2479
2473
  var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
2480
2474
  var opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
2475
+ if (!hasTracking(tracking)) {
2476
+ return;
2477
+ }
2481
2478
  if (type !== null && media !== null && action !== null) {
2482
2479
  tracking.trackMedia(type, media, action, opts);
2483
2480
  }
package/lib/utils.js CHANGED
@@ -1135,6 +1135,21 @@ var isValidUrl = function isValidUrl(string) {
1135
1135
  return url.protocol === 'http:' || url.protocol === 'https:';
1136
1136
  };
1137
1137
 
1138
+ function mergeRefs() {
1139
+ for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {
1140
+ refs[_key] = arguments[_key];
1141
+ }
1142
+ return function (value) {
1143
+ refs.forEach(function (ref) {
1144
+ if (typeof ref === 'function') {
1145
+ ref(value);
1146
+ } else if (ref != null) {
1147
+ ref.current = value;
1148
+ }
1149
+ });
1150
+ };
1151
+ }
1152
+
1138
1153
  var createSchemaId = function createSchemaId(id) {
1139
1154
  return "https://schemas.micromag.ca/0.1/".concat(id, ".json");
1140
1155
  };
@@ -1277,6 +1292,7 @@ exports.isLabelFilled = isTextFilled$1;
1277
1292
  exports.isMessage = isMessage;
1278
1293
  exports.isTextFilled = isTextFilled;
1279
1294
  exports.isValidUrl = isValidUrl;
1295
+ exports.mergeRefs = mergeRefs;
1280
1296
  exports.schemaId = schemaId;
1281
1297
  exports.setFieldValue = _setValue;
1282
1298
  exports.slug = slug;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@micromag/core",
3
- "version": "0.4.66",
3
+ "version": "0.4.71",
4
4
  "private": false,
5
5
  "description": "",
6
6
  "keywords": [
@@ -161,6 +161,6 @@
161
161
  "access": "public",
162
162
  "registry": "https://registry.npmjs.org/"
163
163
  },
164
- "gitHead": "61e9d9511073041dc7900185d49a559126119450",
164
+ "gitHead": "9101554bc5761e32b4a002a10d26800608c69773",
165
165
  "types": "es/index.d.ts"
166
166
  }