2019-12-02 13:29:04 -03:00
|
|
|
const state = {
|
2020-09-14 21:18:46 -04:00
|
|
|
// The `defaultContext` of an extension's commandsModule
|
2022-07-27 16:39:04 +00:00
|
|
|
DEFAULT_CONTEXT: 'CORNERSTONE',
|
2019-12-02 13:29:04 -03:00
|
|
|
enabledElements: {},
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Sets the enabled element `dom` reference for an active viewport.
|
|
|
|
|
* @param {HTMLElement} dom Active viewport element.
|
|
|
|
|
* @return void
|
|
|
|
|
*/
|
2023-09-01 16:19:39 -04:00
|
|
|
const setEnabledElement = (viewportId: string, element: HTMLElement, context?: string): void => {
|
2021-05-28 14:32:48 -04:00
|
|
|
const targetContext = context || state.DEFAULT_CONTEXT;
|
2020-09-14 21:18:46 -04:00
|
|
|
|
2023-08-30 16:46:55 -04:00
|
|
|
state.enabledElements[viewportId] = {
|
2020-09-14 21:18:46 -04:00
|
|
|
element,
|
|
|
|
|
context: targetContext,
|
|
|
|
|
};
|
|
|
|
|
};
|
2019-12-02 13:29:04 -03:00
|
|
|
|
|
|
|
|
/**
|
2023-09-12 07:40:38 -04:00
|
|
|
* Grabs the enabled element `dom` reference of an active viewport.
|
2019-12-02 13:29:04 -03:00
|
|
|
*
|
|
|
|
|
* @return {HTMLElement} Active viewport element.
|
|
|
|
|
*/
|
2023-08-30 16:46:55 -04:00
|
|
|
const getEnabledElement = viewportId => {
|
|
|
|
|
return state.enabledElements[viewportId];
|
2020-09-14 21:18:46 -04:00
|
|
|
};
|
2019-12-02 13:29:04 -03:00
|
|
|
|
2022-11-16 14:19:52 -05:00
|
|
|
const reset = () => {
|
|
|
|
|
state.enabledElements = {};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export { setEnabledElement, getEnabledElement, reset };
|