decord/alpha/source/modules/frames/FramesStore.tsx

452 lines
14 KiB
TypeScript
Raw Permalink Normal View History

2026-10-10 08:08:14 +00:00
// Module ID: 10807
// Function ID: 10808
// Name: FramesStore
2026-10-10 08:08:14 +00:00
// Dependencies: [10802, 6067, 1096, 10808, 504, 10809, 10810, 584, 2]
2026-07-23 10:11:24 +00:00
2026-10-10 08:08:14 +00:00
// Module 10807 (FramesStore)
2026-10-03 08:58:59 +00:00
import get_initializedDefault from "get initialized" /* 504 */;
import DispatcherDefault from "Dispatcher" /* 584 */;
import Constants from "Constants" /* 1096 */;
2026-10-10 08:08:14 +00:00
import ActivityPanelConstants from "ActivityPanelConstants" /* 6067 */;
import getURLForApplicationDefault from "getURLForApplication" /* 10808 */;
import EmbeddedAppTypes from "EmbeddedAppTypes" /* 10809 */;
import getChannelIdForEmbeddedSurfaceDefault from "getChannelIdForEmbeddedSurface" /* 10810 */;
import FramesConstants from "FramesConstants" /* 10802 */;
import size from "module_2" /* 2 */;
2026-07-20 16:05:17 +00:00
2026-10-03 08:58:59 +00:00
let set;
let c3;
let closure_4;
let hasOwnProperty;
2026-10-08 09:57:35 +00:00
let metroImportAll;
2026-10-03 08:58:59 +00:00
let metroImportDefault;
let metroRequire;
2026-10-08 09:57:35 +00:00
({ asLaunched: c3, FrameIntent: closure_4, FrameLayoutModes: hasOwnProperty, getFrameIntentForSurface: metroRequire, isLaunched: metroImportDefault, makeFrameId: metroImportAll } = FramesConstants);
const ActivityPanelModes = ActivityPanelConstants.ActivityPanelModes;
const NOOP_TRUE = Constants.NOOP_TRUE;
2026-07-20 16:05:17 +00:00
const map = new Map();
let frameId = null;
2026-10-03 08:58:59 +00:00
const Store = get_initializedDefault.Store;
2026-07-29 08:29:29 +00:00
class FramesStoreClass extends Store {
2026-10-03 08:58:59 +00:00
getFrame(frameId) {
if (null != frameId) {
return map.get(frameId);
}
2026-08-07 06:50:47 +00:00
}
2026-10-03 08:58:59 +00:00
getMainFrame() {
let tmp = null;
if (null != frameId) {
let value = map.get(frameId);
if (value == null) {
value = null;
}
tmp = value;
2026-08-06 08:05:19 +00:00
}
2026-10-03 08:58:59 +00:00
return tmp;
2026-07-29 08:29:29 +00:00
}
2026-10-03 08:58:59 +00:00
getAllFrames() {
return Array.from(map.values());
}
2026-10-08 09:57:35 +00:00
getFrameByEmbeddedContext(context, iframeId) {
if (context.source.type === EmbeddedAppTypes.EmbeddedContextSourceType.FRAME) {
const tmp3 = _false(map.get(context.source.frameId));
if (null != tmp3) {
if (tmp3.data.iframeId === iframeId) {
return tmp3;
2026-10-03 08:58:59 +00:00
}
2026-08-06 08:05:19 +00:00
}
2026-07-29 08:29:29 +00:00
}
}
2026-10-08 09:57:35 +00:00
getFrameBySurface(arg0, arg1) {
return map.get(metroImportAll(arg0, arg1));
2026-10-03 08:58:59 +00:00
}
getFramesForSurface(arg0) {
let closure_0 = arg0;
const arr = Array.from(map.values());
2026-10-08 09:57:35 +00:00
return arr.filter((applicationId) => metroImportAll(applicationId.applicationId, closure_0) === applicationId.id);
2026-10-03 08:58:59 +00:00
}
getFramesForChannel(id) {
let closure_0 = id;
const arr = Array.from(map.values());
2026-10-08 09:57:35 +00:00
return arr.filter((surface) => getChannelIdForEmbeddedSurfaceDefault(surface.surface) === id);
2026-10-03 08:58:59 +00:00
}
}
const prototype = FramesStoreClass.prototype;
2026-07-29 08:29:29 +00:00
FramesStoreClass.displayName = "FramesStore";
2026-10-03 08:58:59 +00:00
let obj = {
2026-10-12 06:59:38 +00:00
FRAME_LAUNCH_START: function handleFrameLaunchStart(arg0) {
let applicationId;
2026-10-08 09:57:35 +00:00
let hostWindowKey;
2026-10-12 06:59:38 +00:00
let launch;
let launchRequestId;
2026-10-03 08:58:59 +00:00
let surface;
2026-10-12 06:59:38 +00:00
({ frameId, surface, hostWindowKey } = arg0);
({ applicationId, launch, launchRequestId } = arg0);
const obj = { id: frameId, applicationId, intent: metroRequire(surface), surface, state: "loading", data: null, hostWindowKey, launch, launchRequestId };
2026-10-08 09:57:35 +00:00
set = map.set;
if (hostWindowKey == null) {
hostWindowKey = null;
}
const result = set(frameId, obj);
2026-07-20 16:05:17 +00:00
},
FRAME_LAUNCH: function handleFrameLaunch(arg0) {
2026-10-03 08:58:59 +00:00
let hostWindowKey;
2026-10-08 09:57:35 +00:00
let launch;
2026-10-12 06:59:38 +00:00
let launchRequestId;
2026-10-08 09:57:35 +00:00
let obj5;
2026-10-03 08:58:59 +00:00
let proxyTicket;
2026-10-12 06:59:38 +00:00
({ frameId, hostWindowKey, launchRequestId } = arg0);
2026-10-08 09:57:35 +00:00
({ proxyTicket, launch } = arg0);
2026-10-03 08:58:59 +00:00
const value = map.get(frameId);
2026-08-06 08:05:19 +00:00
if (null != value) {
2026-10-12 06:59:38 +00:00
const tmp2 = null != launchRequestId && value.launchRequestId !== launchRequestId;
if (!tmp2) {
const tmp5 = getURLForApplicationDefault(value.applicationId);
if (null == tmp5) {
map.delete(frameId);
if (frameId === frameId) {
frameId = null;
}
} else {
const obj3 = { id: null, applicationId: null, intent: null, surface: null, launchRequestId: null, state: "launched", data: obj5 };
({ id: obj2.id, applicationId: obj2.applicationId, intent: obj2.intent, surface: obj2.surface, launchRequestId: obj2.launchRequestId } = value);
const _Date = Date;
obj5 = { url: tmp5, connectedSince: Date.now(), layoutMode: hasOwnProperty.FOCUSED, activityPanelMode: ActivityPanelModes.PANEL, proxyTicket, proxyTicketRefreshing: false, orientationLock: null, pipOrientationLock: null, prefersPictureInPictureOnNavigateAway: false, iframeId: null, hostWindowKey, launch };
set = map.set;
if (hostWindowKey == null) {
hostWindowKey = null;
}
const result = set(frameId, obj3);
}
2026-08-06 08:05:19 +00:00
}
2026-07-20 16:05:17 +00:00
}
2026-10-12 06:59:38 +00:00
return false;
2026-07-20 16:05:17 +00:00
},
2026-10-12 06:59:38 +00:00
FRAME_LAUNCH_FAIL: function handleFrameLaunchFail(arg0) {
let launchRequestId;
({ frameId, launchRequestId } = arg0);
const value = map.get(frameId);
const obj = map;
if (null != value) {
const tmp2 = null != launchRequestId && value.launchRequestId !== launchRequestId;
if (tmp2) {
return false;
}
}
obj.delete(frameId);
if (frameId === frameId) {
frameId = null;
2026-07-20 16:05:17 +00:00
}
},
2026-08-06 08:05:19 +00:00
FRAME_STOP: function handleFrameStop(frameId) {
frameId = frameId.frameId;
map.delete(frameId);
if (frameId === frameId) {
frameId = null;
2026-07-20 16:05:17 +00:00
}
2026-08-06 08:05:19 +00:00
},
2026-08-07 06:50:47 +00:00
FRAME_CLEAR_MAIN_SLOT: function handleFrameClearMainSlot(frameId) {
if (frameId !== frameId.frameId) {
2026-08-07 06:50:47 +00:00
return false;
} else {
frameId = null;
2026-08-07 06:50:47 +00:00
}
},
FRAME_PROMOTE: function handleFramePromote(frameId) {
frameId = frameId.frameId;
if (null == map.get(frameId)) {
return false;
}
},
2026-08-06 08:05:19 +00:00
FRAME_UPDATE_LAYOUT_MODE: function handleFrameUpdateLayoutMode(frameId) {
2026-10-03 08:58:59 +00:00
let obj2;
2026-08-06 08:05:19 +00:00
frameId = frameId.frameId;
let flag = false;
if (null != frameId) {
2026-10-03 08:58:59 +00:00
const value = map.get(frameId);
2026-10-08 09:57:35 +00:00
let tmp6 = metroImportDefault(value);
2026-10-03 08:58:59 +00:00
const tmp3 = map;
if (tmp6) {
2026-08-06 08:05:19 +00:00
let flag2 = tmp2(value.data);
if (flag2) {
2026-10-03 08:58:59 +00:00
const obj = { data: obj2 };
set = tmp3.set;
2026-08-06 08:05:19 +00:00
const merged = Object.assign(value);
2026-10-03 08:58:59 +00:00
obj2 = { layoutMode: tmp };
2026-08-06 08:05:19 +00:00
const merged1 = Object.assign(value.data);
2026-10-03 08:58:59 +00:00
const result = set(frameId, obj);
2026-08-06 08:05:19 +00:00
flag2 = true;
}
2026-10-03 08:58:59 +00:00
tmp6 = flag2;
2026-08-06 08:05:19 +00:00
}
2026-10-03 08:58:59 +00:00
flag = tmp6;
2026-07-20 16:05:17 +00:00
}
2026-08-06 08:05:19 +00:00
return flag;
2026-07-20 16:05:17 +00:00
},
2026-08-07 06:50:47 +00:00
FRAME_SET_PANEL_MODE: function handleSetPanelMode(frameId) {
2026-10-03 08:58:59 +00:00
let obj2;
2026-08-07 06:50:47 +00:00
frameId = frameId.frameId;
2026-08-06 08:05:19 +00:00
let flag = false;
2026-08-07 06:50:47 +00:00
if (null != frameId) {
2026-10-03 08:58:59 +00:00
const value = map.get(frameId);
2026-10-08 09:57:35 +00:00
let tmp6 = metroImportDefault(value);
2026-10-03 08:58:59 +00:00
const tmp3 = map;
if (tmp6) {
2026-08-07 06:50:47 +00:00
let flag2 = tmp2(value.data);
2026-08-06 08:05:19 +00:00
if (flag2) {
2026-10-03 08:58:59 +00:00
const obj = { data: obj2 };
set = tmp3.set;
2026-08-06 08:05:19 +00:00
const merged = Object.assign(value);
2026-10-03 08:58:59 +00:00
obj2 = { activityPanelMode: tmp };
2026-08-06 08:05:19 +00:00
const merged1 = Object.assign(value.data);
2026-10-03 08:58:59 +00:00
const result = set(frameId, obj);
2026-08-06 08:05:19 +00:00
flag2 = true;
}
2026-10-03 08:58:59 +00:00
tmp6 = flag2;
2026-08-06 08:05:19 +00:00
}
2026-10-03 08:58:59 +00:00
flag = tmp6;
2026-07-20 16:05:17 +00:00
}
2026-08-06 08:05:19 +00:00
return flag;
2026-07-20 16:05:17 +00:00
},
FRAME_SET_ORIENTATION_LOCK_STATE: function handleOrientationLockState(arg0) {
2026-10-03 08:58:59 +00:00
let lockState;
let obj2;
let pictureInPictureLockState;
2026-08-06 08:05:19 +00:00
({ frameId, lockState, pictureInPictureLockState } = arg0);
let flag = false;
if (null != frameId) {
2026-10-03 08:58:59 +00:00
const value = map.get(frameId);
2026-10-08 09:57:35 +00:00
let tmp5 = metroImportDefault(value);
2026-10-03 08:58:59 +00:00
const tmp2 = map;
if (tmp5) {
2026-08-06 08:05:19 +00:00
let flag2 = tmp(value.data);
if (flag2) {
2026-10-03 08:58:59 +00:00
const obj = { data: obj2 };
set = tmp2.set;
2026-08-06 08:05:19 +00:00
const merged = Object.assign(value);
const data = value.data;
2026-10-03 08:58:59 +00:00
obj2 = { orientationLock: lockState, pipOrientationLock: pictureInPictureLockState };
2026-08-06 08:05:19 +00:00
const merged1 = Object.assign(data);
if (lockState == null) {
lockState = null;
}
if (undefined === pictureInPictureLockState) {
pictureInPictureLockState = data.pipOrientationLock;
}
2026-10-03 08:58:59 +00:00
const result = set(frameId, obj);
2026-08-06 08:05:19 +00:00
flag2 = true;
}
2026-10-03 08:58:59 +00:00
tmp5 = flag2;
2026-08-06 08:05:19 +00:00
}
2026-10-03 08:58:59 +00:00
flag = tmp5;
2026-07-20 16:05:17 +00:00
}
2026-08-06 08:05:19 +00:00
return flag;
},
2026-08-24 06:08:38 +00:00
FRAME_SET_PREFERS_PICTURE_IN_PICTURE_ON_NAVIGATE_AWAY: function handleSetPrefersPictureInPictureOnNavigateAway(frameId) {
2026-10-03 08:58:59 +00:00
let obj2;
2026-08-06 08:05:19 +00:00
frameId = frameId.frameId;
let flag = false;
if (null != frameId) {
2026-10-03 08:58:59 +00:00
const value = map.get(frameId);
2026-10-08 09:57:35 +00:00
let tmp6 = metroImportDefault(value);
2026-10-03 08:58:59 +00:00
const tmp3 = map;
if (tmp6) {
2026-08-06 08:05:19 +00:00
let flag2 = tmp2(value.data);
if (flag2) {
2026-10-03 08:58:59 +00:00
const obj = { data: obj2 };
set = tmp3.set;
2026-08-06 08:05:19 +00:00
const merged = Object.assign(value);
2026-10-03 08:58:59 +00:00
obj2 = { prefersPictureInPictureOnNavigateAway: tmp };
2026-08-06 08:05:19 +00:00
const merged1 = Object.assign(value.data);
2026-10-03 08:58:59 +00:00
const result = set(frameId, obj);
2026-08-06 08:05:19 +00:00
flag2 = true;
}
2026-10-03 08:58:59 +00:00
tmp6 = flag2;
2026-08-06 08:05:19 +00:00
}
2026-10-03 08:58:59 +00:00
flag = tmp6;
2026-07-20 16:05:17 +00:00
}
2026-08-06 08:05:19 +00:00
return flag;
2026-07-20 16:05:17 +00:00
},
2026-08-24 06:08:38 +00:00
FRAME_SET_PROXY_TICKET_REFRESHING: function handleSetProxyTicketRefreshing(frameId) {
2026-10-03 08:58:59 +00:00
let obj2;
2026-08-06 08:05:19 +00:00
frameId = frameId.frameId;
let flag = false;
if (null != frameId) {
2026-10-03 08:58:59 +00:00
const value = map.get(frameId);
2026-10-08 09:57:35 +00:00
let tmp6 = metroImportDefault(value);
2026-10-03 08:58:59 +00:00
const tmp3 = map;
if (tmp6) {
2026-08-06 08:05:19 +00:00
let flag2 = tmp2(value.data);
if (flag2) {
2026-10-03 08:58:59 +00:00
const obj = { data: obj2 };
set = tmp3.set;
2026-08-06 08:05:19 +00:00
const merged = Object.assign(value);
2026-10-03 08:58:59 +00:00
obj2 = { proxyTicketRefreshing: tmp };
2026-08-06 08:05:19 +00:00
const merged1 = Object.assign(value.data);
2026-10-03 08:58:59 +00:00
const result = set(frameId, obj);
2026-08-06 08:05:19 +00:00
flag2 = true;
}
2026-10-03 08:58:59 +00:00
tmp6 = flag2;
2026-08-06 08:05:19 +00:00
}
2026-10-03 08:58:59 +00:00
flag = tmp6;
2026-07-20 16:05:17 +00:00
}
2026-08-06 08:05:19 +00:00
return flag;
2026-07-20 16:05:17 +00:00
},
2026-08-24 06:08:38 +00:00
FRAME_UPDATE_PROXY_TICKET: function handleUpdateProxyTicket(frameId) {
2026-10-03 08:58:59 +00:00
let obj2;
2026-08-06 08:05:19 +00:00
frameId = frameId.frameId;
let flag = false;
if (null != frameId) {
2026-10-03 08:58:59 +00:00
const value = map.get(frameId);
2026-10-08 09:57:35 +00:00
let tmp6 = metroImportDefault(value);
2026-10-03 08:58:59 +00:00
const tmp3 = map;
if (tmp6) {
2026-08-06 08:05:19 +00:00
let flag2 = tmp2(value.data);
if (flag2) {
2026-10-03 08:58:59 +00:00
const obj = { data: obj2 };
set = tmp3.set;
2026-08-06 08:05:19 +00:00
const merged = Object.assign(value);
2026-10-03 08:58:59 +00:00
obj2 = { proxyTicket: tmp };
2026-08-06 08:05:19 +00:00
const merged1 = Object.assign(value.data);
2026-10-03 08:58:59 +00:00
const result = set(frameId, obj);
2026-08-06 08:05:19 +00:00
flag2 = true;
}
2026-10-03 08:58:59 +00:00
tmp6 = flag2;
2026-08-06 08:05:19 +00:00
}
2026-10-03 08:58:59 +00:00
flag = tmp6;
2026-07-20 16:05:17 +00:00
}
2026-08-06 08:05:19 +00:00
return flag;
},
2026-08-24 06:08:38 +00:00
FRAME_IFRAME_MOUNT: function handleFrameIframeMount(arg0) {
2026-10-03 08:58:59 +00:00
let iframeId;
let obj2;
2026-08-24 06:08:38 +00:00
({ frameId, iframeId } = arg0);
let flag = false;
if (null != frameId) {
2026-10-03 08:58:59 +00:00
const value = map.get(frameId);
2026-10-08 09:57:35 +00:00
let tmp5 = metroImportDefault(value);
2026-10-03 08:58:59 +00:00
const tmp2 = map;
if (tmp5) {
2026-08-24 06:08:38 +00:00
let flag2 = tmp(value.data);
if (flag2) {
2026-10-03 08:58:59 +00:00
const obj = { data: obj2 };
set = tmp2.set;
2026-08-24 06:08:38 +00:00
const merged = Object.assign(value);
const data = value.data;
2026-10-03 08:58:59 +00:00
obj2 = { iframeId, prefersPictureInPictureOnNavigateAway: data.iframeId === iframeId && data.prefersPictureInPictureOnNavigateAway };
2026-08-24 06:08:38 +00:00
const merged1 = Object.assign(data);
2026-10-03 08:58:59 +00:00
const result = set(frameId, obj);
2026-08-24 06:08:38 +00:00
flag2 = true;
}
2026-10-03 08:58:59 +00:00
tmp5 = flag2;
2026-08-24 06:08:38 +00:00
}
2026-10-03 08:58:59 +00:00
flag = tmp5;
2026-08-24 06:08:38 +00:00
}
return flag;
},
2026-08-06 08:05:19 +00:00
FRAME_IFRAME_UNMOUNT: function handleFrameIframeUnmount(frameId) {
2026-10-03 08:58:59 +00:00
let obj2;
2026-08-06 08:05:19 +00:00
frameId = frameId.frameId;
let flag = false;
if (null != frameId) {
2026-10-03 08:58:59 +00:00
const value = map.get(frameId);
2026-10-08 09:57:35 +00:00
let tmp5 = metroImportDefault(value);
2026-10-03 08:58:59 +00:00
const tmp2 = map;
if (tmp5) {
2026-08-06 08:05:19 +00:00
let flag2 = value.data.iframeId === tmp;
if (flag2) {
2026-10-03 08:58:59 +00:00
const obj = { data: obj2 };
set = tmp2.set;
2026-08-06 08:05:19 +00:00
const merged = Object.assign(value);
2026-10-03 08:58:59 +00:00
obj2 = { iframeId: null, prefersPictureInPictureOnNavigateAway: false };
2026-08-06 08:05:19 +00:00
const merged1 = Object.assign(value.data);
2026-10-03 08:58:59 +00:00
const result = set(frameId, obj);
2026-08-06 08:05:19 +00:00
flag2 = true;
}
2026-10-03 08:58:59 +00:00
tmp5 = flag2;
2026-08-06 08:05:19 +00:00
}
2026-10-03 08:58:59 +00:00
flag = tmp5;
2026-07-20 16:05:17 +00:00
}
2026-08-06 08:05:19 +00:00
return flag;
2026-07-20 16:05:17 +00:00
},
FRAME_HOST_WINDOW_MOUNT: function handleFrameHostWindowMount(frameId) {
2026-10-03 08:58:59 +00:00
let obj2;
frameId = frameId.frameId;
let flag = false;
if (null != frameId) {
2026-10-03 08:58:59 +00:00
const value = map.get(frameId);
2026-10-08 09:57:35 +00:00
let tmp6 = metroImportDefault(value);
2026-10-03 08:58:59 +00:00
const tmp3 = map;
if (tmp6) {
let flag2 = tmp2(value.data);
if (flag2) {
2026-10-03 08:58:59 +00:00
const obj = { data: obj2 };
set = tmp3.set;
const merged = Object.assign(value);
2026-10-03 08:58:59 +00:00
obj2 = { hostWindowKey: tmp };
const merged1 = Object.assign(value.data);
2026-10-03 08:58:59 +00:00
const result = set(frameId, obj);
flag2 = true;
}
2026-10-03 08:58:59 +00:00
tmp6 = flag2;
}
2026-10-03 08:58:59 +00:00
flag = tmp6;
}
return flag;
},
FRAME_HOST_WINDOW_UNMOUNT: function handleFrameHostWindowUnmount(frameId) {
2026-10-03 08:58:59 +00:00
let obj2;
frameId = frameId.frameId;
let flag = false;
if (null != frameId) {
2026-10-03 08:58:59 +00:00
const value = map.get(frameId);
2026-10-08 09:57:35 +00:00
let tmp5 = metroImportDefault(value);
2026-10-03 08:58:59 +00:00
const tmp2 = map;
if (tmp5) {
let flag2 = value.data.hostWindowKey === tmp;
if (flag2) {
2026-10-03 08:58:59 +00:00
const obj = { data: obj2 };
set = tmp2.set;
const merged = Object.assign(value);
2026-10-03 08:58:59 +00:00
obj2 = { hostWindowKey: null };
const merged1 = Object.assign(value.data);
2026-10-03 08:58:59 +00:00
const result = set(frameId, obj);
flag2 = true;
}
2026-10-03 08:58:59 +00:00
tmp5 = flag2;
}
2026-10-03 08:58:59 +00:00
flag = tmp5;
}
return flag;
},
2026-07-20 16:05:17 +00:00
CHANNEL_SELECT: function handleChannelSelect() {
2026-10-03 08:58:59 +00:00
let obj2;
2026-08-06 08:05:19 +00:00
let flag = false;
if (null != frameId) {
2026-10-03 08:58:59 +00:00
const value = map.get(tmp);
2026-10-08 09:57:35 +00:00
let tmp6 = metroImportDefault(value);
2026-10-03 08:58:59 +00:00
const tmp3 = map;
if (tmp6) {
2026-08-06 08:05:19 +00:00
let flag2 = tmp2(value.data);
if (flag2) {
2026-10-03 08:58:59 +00:00
const obj = { data: obj2 };
set = tmp3.set;
2026-08-06 08:05:19 +00:00
const merged = Object.assign(value);
2026-10-08 09:57:35 +00:00
obj2 = { layoutMode: hasOwnProperty.PIP };
2026-08-06 08:05:19 +00:00
const merged1 = Object.assign(value.data);
2026-10-03 08:58:59 +00:00
const result = set(tmp, obj);
2026-08-06 08:05:19 +00:00
flag2 = true;
}
2026-10-03 08:58:59 +00:00
tmp6 = flag2;
2026-07-20 16:05:17 +00:00
}
2026-10-03 08:58:59 +00:00
flag = tmp6;
2026-07-20 16:05:17 +00:00
}
2026-08-06 08:05:19 +00:00
return flag;
2026-07-20 16:05:17 +00:00
}
2026-10-03 08:58:59 +00:00
};
const framesStoreClass = new FramesStoreClass(DispatcherDefault, obj);
let result = size.fileFinishedImporting("modules/frames/FramesStore.tsx");
2026-07-20 16:05:17 +00:00
2026-07-29 08:29:29 +00:00
export default framesStoreClass;