@interopio/groups-ui-react 2.4.1 → 2.5.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.
Files changed (56) hide show
  1. package/dist/GroupElementCreationWrapper.d.ts +49 -0
  2. package/dist/GroupWrapper.d.ts +9 -0
  3. package/dist/Portal.d.ts +6 -0
  4. package/dist/cjs/defaultComponents/channelSelector/multi/BaseMultiChannelSelector.d.ts +4 -0
  5. package/dist/cjs/defaultComponents/channelSelector/multi/ColorRectangle.d.ts +7 -0
  6. package/dist/cjs/defaultComponents/channelSelector/multi/FlatMultiChannelSelector.d.ts +4 -0
  7. package/dist/cjs/defaultComponents/channelSelector/multi/TabMultiChannelSelector.d.ts +4 -0
  8. package/dist/cjs/index.d.ts +3 -1
  9. package/dist/cjs/index.js +80 -9
  10. package/dist/cjs/index.js.map +1 -1
  11. package/dist/cjs/types/api.d.ts +5 -0
  12. package/dist/cjs/types/defaultComponents.d.ts +38 -0
  13. package/dist/cjs/types/internal.d.ts +10 -0
  14. package/dist/defaultComponents/BaseButton.d.ts +4 -0
  15. package/dist/defaultComponents/CloseButton.d.ts +4 -0
  16. package/dist/defaultComponents/ExtractButton.d.ts +4 -0
  17. package/dist/defaultComponents/MaximizeButton.d.ts +4 -0
  18. package/dist/defaultComponents/MinimizeButton.d.ts +4 -0
  19. package/dist/defaultComponents/RestoreButton.d.ts +4 -0
  20. package/dist/defaultComponents/Tab.d.ts +4 -0
  21. package/dist/defaultComponents/TabCaption.d.ts +4 -0
  22. package/dist/defaultComponents/TabCloseButton.d.ts +4 -0
  23. package/dist/defaultComponents/TabHeaderButtons.d.ts +4 -0
  24. package/dist/defaultComponents/channelSelector/BaseChannelSelector.d.ts +4 -0
  25. package/dist/defaultComponents/channelSelector/FrameChannelSelector.d.ts +4 -0
  26. package/dist/defaultComponents/channelSelector/TabChannelSelector.d.ts +4 -0
  27. package/dist/defaultComponents/channelSelector/utils.d.ts +1 -0
  28. package/dist/defaultComponents/frameCaptionBar/FrameButtons.d.ts +4 -0
  29. package/dist/defaultComponents/frameCaptionBar/FrameCaption.d.ts +4 -0
  30. package/dist/defaultComponents/frameCaptionBar/FrameCaptionBar.d.ts +4 -0
  31. package/dist/defaultComponents/frameCaptionBar/FrameMoveArea.d.ts +4 -0
  32. package/dist/defaultComponents/groupCaptionBar/GroupButtons.d.ts +4 -0
  33. package/dist/defaultComponents/groupCaptionBar/GroupCaption.d.ts +4 -0
  34. package/dist/defaultComponents/groupCaptionBar/GroupCaptionBar.d.ts +4 -0
  35. package/dist/defaultComponents/groupCaptionBar/GroupMoveArea.d.ts +4 -0
  36. package/dist/esm/defaultComponents/channelSelector/multi/BaseMultiChannelSelector.d.ts +4 -0
  37. package/dist/esm/defaultComponents/channelSelector/multi/ColorRectangle.d.ts +7 -0
  38. package/dist/esm/defaultComponents/channelSelector/multi/FlatMultiChannelSelector.d.ts +4 -0
  39. package/dist/esm/defaultComponents/channelSelector/multi/TabMultiChannelSelector.d.ts +4 -0
  40. package/dist/esm/index.d.ts +3 -1
  41. package/dist/esm/index.js +79 -10
  42. package/dist/esm/index.js.map +1 -1
  43. package/dist/esm/types/api.d.ts +5 -0
  44. package/dist/esm/types/defaultComponents.d.ts +38 -0
  45. package/dist/esm/types/internal.d.ts +10 -0
  46. package/dist/index.d.ts +27 -0
  47. package/dist/index.js +16 -0
  48. package/dist/index.js.map +1 -0
  49. package/dist/styles/fonts.css +2 -0
  50. package/dist/styles/groups.css +65 -9
  51. package/dist/styles/styles.css +574 -0
  52. package/dist/styles/themes.css +155 -0
  53. package/dist/styles/vars.css +16 -4
  54. package/dist/types/internal.d.ts +373 -0
  55. package/dist/webGroupsManager.d.ts +35 -0
  56. package/package.json +1 -1
@@ -6,6 +6,11 @@ export interface ChannelProps {
6
6
  selectedChannel: string;
7
7
  showSelector: (bounds: Bounds) => void;
8
8
  selectedChannelColor: string;
9
+ channelsMode: "single" | "multi";
10
+ selectedChannels: {
11
+ name: string;
12
+ color: string;
13
+ }[];
9
14
  channelRestrictions: {
10
15
  read: boolean;
11
16
  write: boolean;
@@ -57,6 +57,20 @@ export interface BaseChannelSelectorProps {
57
57
  direction: string;
58
58
  channelLabel: string;
59
59
  }
60
+ export interface BaseMultiChannelSelectorProps {
61
+ showSelector: (bounds: Bounds) => void;
62
+ outsideClass: string;
63
+ contentClass: string;
64
+ selectedChannels: {
65
+ name: string;
66
+ color: string;
67
+ }[];
68
+ channelRestrictions: {
69
+ read: boolean;
70
+ write: boolean;
71
+ };
72
+ channelLabel: string;
73
+ }
60
74
  export interface FlatChannelSelectorProps {
61
75
  showSelector: (bounds: Bounds) => void;
62
76
  selectedChannel: string;
@@ -67,6 +81,18 @@ export interface FlatChannelSelectorProps {
67
81
  };
68
82
  channelLabel: string;
69
83
  }
84
+ export interface FlatMultiChannelSelectorProps {
85
+ showSelector: (bounds: Bounds) => void;
86
+ selectedChannels: {
87
+ name: string;
88
+ color: string;
89
+ }[];
90
+ channelRestrictions: {
91
+ read: boolean;
92
+ write: boolean;
93
+ };
94
+ channelLabel: string;
95
+ }
70
96
  export interface TabChannelSelectorProps {
71
97
  showSelector: (bounds: Bounds) => void;
72
98
  selectedChannel: string;
@@ -77,6 +103,18 @@ export interface TabChannelSelectorProps {
77
103
  };
78
104
  channelLabel: string;
79
105
  }
106
+ export interface TabMultiChannelSelectorProps {
107
+ showSelector: (bounds: Bounds) => void;
108
+ selectedChannels: {
109
+ name: string;
110
+ color: string;
111
+ }[];
112
+ channelRestrictions: {
113
+ read: boolean;
114
+ write: boolean;
115
+ };
116
+ channelLabel: string;
117
+ }
80
118
  export interface FlatCaptionEditorProps {
81
119
  frameId: string;
82
120
  commitChanges: (title: string) => void;
@@ -102,6 +102,11 @@ export interface CreateFrameCaptionBarRequestOptions extends CreateButtonsOption
102
102
  show: boolean;
103
103
  text?: string;
104
104
  };
105
+ channelsMode: "single" | "multi";
106
+ selectedChannels: {
107
+ name: string;
108
+ color: string;
109
+ }[];
105
110
  channelRestrictions: {
106
111
  read: boolean;
107
112
  write: boolean;
@@ -120,6 +125,11 @@ export interface CreateTabRequestOptions extends CreateElementRequestOptions {
120
125
  show: boolean;
121
126
  text?: string;
122
127
  };
128
+ channelsMode: "single" | "multi";
129
+ selectedChannels: {
130
+ name: string;
131
+ color: string;
132
+ }[];
123
133
  channelRestrictions: {
124
134
  read: boolean;
125
135
  write: boolean;
@@ -0,0 +1,27 @@
1
+ import CloseButton from "./defaultComponents/CloseButton";
2
+ import FrameCaptionBar from "./defaultComponents/frameCaptionBar/FrameCaptionBar";
3
+ import GroupCaptionBar from "./defaultComponents/groupCaptionBar/GroupCaptionBar";
4
+ import MaximizeButton from "./defaultComponents/MaximizeButton";
5
+ import MinimizeButton from "./defaultComponents/MinimizeButton";
6
+ import Tab from "./defaultComponents/Tab";
7
+ import TabHeaderButtons from "./defaultComponents/TabHeaderButtons";
8
+ import TabCaption from "./defaultComponents/TabCaption";
9
+ import TabCloseButton from "./defaultComponents/TabCloseButton";
10
+ import GroupElementCreationWrapper from "./GroupElementCreationWrapper";
11
+ import { GroupCaptionBarProps, GroupProps, MoveAreaProps, TabElementProps, TabCaptionProps, TabCloseButtonProps, FrameCaptionBarProps, TabHeaderButtonsProps, GroupMoveAreaProps, GroupButtonsProps } from "./types/internal";
12
+ import GroupMoveArea from "./defaultComponents/groupCaptionBar/GroupMoveArea";
13
+ import GroupButtons from "./defaultComponents/groupCaptionBar/GroupButtons";
14
+ import FrameMoveArea from "./defaultComponents/frameCaptionBar/FrameMoveArea";
15
+ import FrameButtons from "./defaultComponents/frameCaptionBar/FrameButtons";
16
+ import FrameCaption from "./defaultComponents/frameCaptionBar/FrameCaption";
17
+ import GroupCaption from "./defaultComponents/groupCaptionBar/GroupCaption";
18
+ import FrameChannelSelector from "./defaultComponents/channelSelector/FrameChannelSelector";
19
+ import TabChannelSelector from "./defaultComponents/channelSelector/TabChannelSelector";
20
+ import RestoreButton from "./defaultComponents/RestoreButton";
21
+ export { GroupCaptionBar, GroupMoveArea, GroupButtons, Tab, TabChannelSelector, TabCaption, TabCloseButton, MinimizeButton, RestoreButton, MaximizeButton, CloseButton, FrameCaptionBar, FrameChannelSelector, FrameCaption, FrameMoveArea, FrameButtons, TabHeaderButtons };
22
+ export declare const getGroupId: () => string;
23
+ export declare const requestPageFocus: () => void;
24
+ export declare const requestFrameFocus: (frameId: string) => void;
25
+ export declare const requestGroupFocus: () => void;
26
+ export { MoveAreaProps, GroupProps, GroupCaption, GroupCaptionBarProps, GroupMoveAreaProps, GroupButtonsProps, TabElementProps, TabCaptionProps, TabCloseButtonProps, FrameCaptionBarProps, TabHeaderButtonsProps, };
27
+ export default GroupElementCreationWrapper;
package/dist/index.js ADDED
@@ -0,0 +1,16 @@
1
+ import e,{useRef as t,useEffect as n}from"react";import o from"react-dom";
2
+ /*! *****************************************************************************
3
+ Copyright (c) Microsoft Corporation.
4
+
5
+ Permission to use, copy, modify, and/or distribute this software for any
6
+ purpose with or without fee is hereby granted.
7
+
8
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
9
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
10
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
11
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
12
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
13
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14
+ PERFORMANCE OF THIS SOFTWARE.
15
+ ***************************************************************************** */var a=function(e,t){return a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},a(e,t)};function r(e,t){function n(){this.constructor=e}a(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var s,i,l=function(){return l=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e},l.apply(this,arguments)};function d(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(o=Object.getOwnPropertySymbols(e);a<o.length;a++)t.indexOf(o[a])<0&&Object.prototype.propertyIsEnumerable.call(e,o[a])&&(n[o[a]]=e[o[a]])}return n}!function(e){e.Group="group",e.Frame="frame",e.TabBar="tabBar",e.Tab="tab"}(s||(s={})),function(e){e.Minimize="minimize",e.Maximize="maximize",e.Restore="restore",e.Close="close"}(i||(i={}));var u=new(function(){function e(){this.skipFocusStyle="t42-skip-focus"}return e.prototype.init=function(e,t){if(!window.webGroupsManager)throw new Error("Could not find the webGroupsManager the groups library should be loaded as a group application");window.webGroupsManager.init(t)},e.prototype.getGroupId=function(){return window.webGroupsManager.externalLibraryFactory.groupId},e.prototype.notifyMoveAreaChanged=function(){window.webGroupsManager.notifyMoveAreaChanged()},e.prototype.registerPopup=function(e){return window.webGroupsManager.registerPopup(e)},e.prototype.removePopup=function(e){return window.webGroupsManager.removePopup(e)},e.prototype.removePopupById=function(e){return window.webGroupsManager.removePopupById(e)},e.prototype.subscribeForWindowFocused=function(e){return window.webGroupsManager.subscribeForWindowFocused(e)},e.prototype.unmount=function(){return window.webGroupsManager.unmount()},e.prototype.requestPageFocus=function(){return window.webGroupsManager.externalLibraryFactory.focusPage()},e.prototype.requestFrameFocus=function(e){return window.webGroupsManager.externalLibraryFactory.focusFrame(e)},e.prototype.requestGroupFocus=function(){return window.webGroupsManager.externalLibraryFactory.focusGroup()},e.prototype.closeFrame=function(e){window.webGroupsManager.externalLibraryFactory.onStandardButtonClick(s.Frame,e,i.Close)},e.prototype.restoreFrame=function(e){window.webGroupsManager.externalLibraryFactory.onStandardButtonClick(s.Frame,e,i.Restore)},e.prototype.maximizeFrame=function(e){window.webGroupsManager.externalLibraryFactory.onStandardButtonClick(s.Frame,e,i.Maximize)},e.prototype.minimizeFrame=function(e){window.webGroupsManager.externalLibraryFactory.onStandardButtonClick(s.Frame,e,i.Minimize)},e.prototype.extractFrame=function(e){},e.prototype.closeTabBar=function(e){window.webGroupsManager.externalLibraryFactory.onStandardButtonClick(s.TabBar,e,i.Close)},e.prototype.restoreTabBar=function(e){window.webGroupsManager.externalLibraryFactory.onStandardButtonClick(s.TabBar,e,i.Restore)},e.prototype.maximizeTabBar=function(e){window.webGroupsManager.externalLibraryFactory.onStandardButtonClick(s.TabBar,e,i.Maximize)},e.prototype.minimizeTabBar=function(e){window.webGroupsManager.externalLibraryFactory.onStandardButtonClick(s.TabBar,e,i.Minimize)},e.prototype.extractTabBar=function(e){},e.prototype.closeGroup=function(e){window.webGroupsManager.externalLibraryFactory.onStandardButtonClick(s.Group,e,i.Close)},e.prototype.restoreGroup=function(e){window.webGroupsManager.externalLibraryFactory.onStandardButtonClick(s.Group,e,i.Restore)},e.prototype.maximizeGroup=function(e){window.webGroupsManager.externalLibraryFactory.onStandardButtonClick(s.Group,e,i.Maximize)},e.prototype.minimizeGroup=function(e){window.webGroupsManager.externalLibraryFactory.onStandardButtonClick(s.Group,e,i.Minimize)},e.prototype.closeTab=function(e){window.webGroupsManager.externalLibraryFactory.onTabCloseButtonClick(e)},e.prototype.onGroupMoveAreaChanged=function(e){window.webGroupsManager.externalLibraryFactory.onMoveAreaChanged(s.Group,e)},e.prototype.onTabChannelSelectorClick=function(e,t){window.webGroupsManager.externalLibraryFactory.onTabChannelSelectorClick(e,t)},e.prototype.onFrameChannelSelectorClick=function(e,t){window.webGroupsManager.externalLibraryFactory.onFrameChannelSelectorClick(e,t)},e}()),c=function(t){var n=t.outerElement,o=t.innerElement;return e.createElement("li",l({},n,{className:u.skipFocusStyle+" "+n.className}),e.createElement("div",l({},o)))},p=function(t){var n=t.onClick,o=t.tooltip;return e.createElement(c,{innerElement:{className:"t42-standard-button t42-standard-button-close"},outerElement:{className:"t42-button t42-caption-bar-button t42-tab-bar-button t42-caption-bar-button-close",title:o,onClick:n}})};function b(e,t,n){return Math.min(Math.max(e,n),t)}class m extends Error{constructor(e){super(`Failed to parse color: "${e}"`)}}var v=m;function f(e){if("string"!=typeof e)throw new v(e);if("transparent"===e.trim().toLowerCase())return[0,0,0,0];let t=e.trim();t=E.test(e)?function(e){const t=e.toLowerCase().trim(),n=g[function(e){let t=5381,n=e.length;for(;n;)t=33*t^e.charCodeAt(--n);return(t>>>0)%2341}(t)];if(!n)throw new v(e);return`#${n}`}(e):e;const n=y.exec(t);if(n){const e=Array.from(n).slice(1);return[...e.slice(0,3).map((e=>parseInt(C(e,2),16))),parseInt(C(e[3]||"f",2),16)/255]}const o=h.exec(t);if(o){const e=Array.from(o).slice(1);return[...e.slice(0,3).map((e=>parseInt(e,16))),parseInt(e[3]||"ff",16)/255]}const a=B.exec(t);if(a){const e=Array.from(a).slice(1);return[...e.slice(0,3).map((e=>parseInt(e,10))),parseFloat(e[3]||"1")]}const r=T.exec(t);if(r){const[t,n,o,a]=Array.from(r).slice(1).map(parseFloat);if(b(0,100,n)!==n)throw new v(e);if(b(0,100,o)!==o)throw new v(e);return[...R(t,n,o),a||1]}throw new v(e)}const w=e=>parseInt(e.replace(/_/g,""),36),g="1q29ehhb 1n09sgk7 1kl1ekf_ _yl4zsno 16z9eiv3 1p29lhp8 _bd9zg04 17u0____ _iw9zhe5 _to73___ _r45e31e _7l6g016 _jh8ouiv _zn3qba8 1jy4zshs 11u87k0u 1ro9yvyo 1aj3xael 1gz9zjz0 _3w8l4xo 1bf1ekf_ _ke3v___ _4rrkb__ 13j776yz _646mbhl _nrjr4__ _le6mbhl 1n37ehkb _m75f91n _qj3bzfz 1939yygw 11i5z6x8 _1k5f8xs 1509441m 15t5lwgf _ae2th1n _tg1ugcv 1lp1ugcv 16e14up_ _h55rw7n _ny9yavn _7a11xb_ 1ih442g9 _pv442g9 1mv16xof 14e6y7tu 1oo9zkds 17d1cisi _4v9y70f _y98m8kc 1019pq0v 12o9zda8 _348j4f4 1et50i2o _8epa8__ _ts6senj 1o350i2o 1mi9eiuo 1259yrp0 1ln80gnw _632xcoy 1cn9zldc _f29edu4 1n490c8q _9f9ziet 1b94vk74 _m49zkct 1kz6s73a 1eu9dtog _q58s1rz 1dy9sjiq __u89jo3 _aj5nkwg _ld89jo3 13h9z6wx _qa9z2ii _l119xgq _bs5arju 1hj4nwk9 1qt4nwk9 1ge6wau6 14j9zlcw 11p1edc_ _ms1zcxe _439shk6 _jt9y70f _754zsow 1la40eju _oq5p___ _x279qkz 1fa5r3rv _yd2d9ip _424tcku _8y1di2_ _zi2uabw _yy7rn9h 12yz980_ __39ljp6 1b59zg0x _n39zfzp 1fy9zest _b33k___ _hp9wq92 1il50hz4 _io472ub _lj9z3eo 19z9ykg0 _8t8iu3a 12b9bl4a 1ak5yw0o _896v4ku _tb8k8lv _s59zi6t _c09ze0p 1lg80oqn 1id9z8wb _238nba5 1kq6wgdi _154zssg _tn3zk49 _da9y6tc 1sg7cv4f _r12jvtt 1gq5fmkz 1cs9rvci _lp9jn1c _xw1tdnb 13f9zje6 16f6973h _vo7ir40 _bt5arjf _rc45e4t _hr4e100 10v4e100 _hc9zke2 _w91egv_ _sj2r1kk 13c87yx8 _vqpds__ _ni8ggk8 _tj9yqfb 1ia2j4r4 _7x9b10u 1fc9ld4j 1eq9zldr _5j9lhpx _ez9zl6o _md61fzm".split(" ").reduce(((e,t)=>{const n=w(t.substring(0,3)),o=w(t.substring(3)).toString(16);let a="";for(let e=0;e<6-o.length;e++)a+="0";return e[n]=`${a}${o}`,e}),{});const C=(e,t)=>Array.from(Array(t)).map((()=>e)).join(""),y=new RegExp(`^#${C("([a-f0-9])",3)}([a-f0-9])?$`,"i"),h=new RegExp(`^#${C("([a-f0-9]{2})",3)}([a-f0-9]{2})?$`,"i"),B=new RegExp(`^rgba?\\(\\s*(\\d+)\\s*${C(",\\s*(\\d+)\\s*",2)}(?:,\\s*([\\d.]+))?\\s*\\)$`,"i"),T=/^hsla?\(\s*([\d.]+)\s*,\s*([\d.]+)%\s*,\s*([\d.]+)%(?:\s*,\s*([\d.]+))?\s*\)$/i,E=/^[a-z]+$/i,I=e=>Math.round(255*e),R=(e,t,n)=>{let o=n/100;if(0===t)return[o,o,o].map(I);const a=(e%360+360)%360/60,r=(1-Math.abs(2*o-1))*(t/100),s=r*(1-Math.abs(a%2-1));let i=0,l=0,d=0;a>=0&&a<1?(i=r,l=s):a>=1&&a<2?(i=s,l=r):a>=2&&a<3?(l=r,d=s):a>=3&&a<4?(l=s,d=r):a>=4&&a<5?(i=s,d=r):a>=5&&a<6&&(i=r,d=s);const u=o-r/2;return[i+u,l+u,d+u].map(I)};function q(e){return function(e){if("transparent"===e)return 0;function t(e){const t=e/255;return t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}const[n,o,a]=f(e);return.2126*t(n)+.7152*t(o)+.0722*t(a)}(e)>.179}var _=function(o){var a=o.outsideClass,r=o.contentClass,s=o.showSelector,i=o.selectedChannel,l=o.selectedChannelColor,d=t(null);n((function(){var e;null===(e=d.current)||void 0===e||e.addEventListener("mousedown",(function(e){e.stopPropagation()}))}),[d]);var u=r;i&&l&&(u=r+" "+(function(e){try{var t=f(e),n=t[0],o=t[1],a=t[2],r=2.2;return.2126*Math.pow(n/255,r)+.7152*Math.pow(o/255,r)+.0722*Math.pow(a/255,r)>Math.pow(.5,r)}catch(e){}try{return q(e)}catch(t){console.error("Error while checking readable color for '"+e+"'",t)}return!1}(l)?"t42-channel-selector-content-dark":"t42-channel-selector-content-light"));var c={background:l};return e.createElement("div",{title:null!=i?i:"",ref:d,style:c,onClick:function(){if(d.current){var e=d.current.getBoundingClientRect();s({left:e.left,top:e.top,width:e.width,height:e.height})}},className:"t42-buttons "+a},e.createElement("div",{className:u}))},W=function(t){var n=t.showSelector,o=t.selectedChannel,a=t.selectedChannelColor;return e.createElement(_,{outsideClass:"t42-frame-caption-bar-element t42-frame-channel-selector",contentClass:"t42-frame-channel-selector-content",showSelector:n,selectedChannel:o,selectedChannelColor:a})},k=function(t){var n=t.onClick,o=t.tooltip;return e.createElement(c,{innerElement:{className:"t42-standard-button t42-standard-button-extract"},outerElement:{className:"t42-button t42-caption-bar-button t42-tab-bar-button t42-caption-bar-button-extract",title:o,onClick:n}})},F=function(t){var n=t.tooltip,o=t.onClick;return e.createElement(c,{innerElement:{className:"t42-standard-button t42-standard-button-maximize"},outerElement:{className:"t42-button t42-caption-bar-button t42-tab-bar-button t42-caption-bar-button-maximize",title:n,onClick:o}})},z=function(t){var n=t.onClick,o=t.tooltip;return e.createElement(c,{innerElement:{className:"t42-standard-button t42-standard-button-minimize"},outerElement:{className:"t42-button t42-caption-bar-button t42-tab-bar-button t42-caption-bar-button-minimize",title:o,onClick:n}})},O=function(t){var n=t.tooltip,o=t.onClick;return e.createElement(c,{innerElement:{className:"t42-standard-button t42-standard-button-restore"},outerElement:{className:"t42-button t42-caption-bar-button t42-tab-bar-button t42-caption-bar-button-restore",title:n,onClick:o}})},Z=function(t){var n=t.extract,o=t.minimize,a=t.maximize,r=t.restore,s=t.close;return e.createElement("div",{className:"t42-buttons-container t42-frame-caption-bar-element"},e.createElement("ul",{className:"t42-buttons t42-frame-caption-bar-element"},(null==n?void 0:n.visible)&&e.createElement(k,l({},n)),(null==o?void 0:o.visible)&&e.createElement(z,l({},o)),(null==a?void 0:a.visible)&&e.createElement(F,l({},a)),(null==r?void 0:r.visible)&&e.createElement(O,l({},r)),(null==s?void 0:s.visible)&&e.createElement(p,l({},s))))},x=function(t){var n=t.caption;return e.createElement("div",{className:"t42-caption t42-title t42-frame-caption-bar-element"},n)},S=function(t){var n=t.children,o=t.moveAreaId;return e.createElement("div",{id:o,className:"t42-move-area t42-frame-caption-bar-element"},n)},G=function(t){var n=t.moveAreaId,o=t.caption,a=t.close,r=t.maximize,s=t.restore,i=t.minimize,l=t.extract,d=t.channels;return e.createElement("div",{className:"t42-react-caption-bar"},(null==d?void 0:d.visible)&&e.createElement(W,{showSelector:null==d?void 0:d.showSelector,selectedChannel:null==d?void 0:d.selectedChannel,selectedChannelColor:null==d?void 0:d.selectedChannelColor}),e.createElement(S,{moveAreaId:n},e.createElement(x,{caption:o})),e.createElement(Z,{extract:l,minimize:i,maximize:r,restore:s,close:a}))},A=function(t){var n=t.children,o=t.moveAreaId;return e.createElement("div",{id:o,className:"t42-move-area t42-group-caption-bar-element"},n)},j=function(t){var n=t.minimize,o=t.restore,a=t.maximize,r=t.close;return e.createElement("div",{className:"t42-buttons-container t42-group-caption-bar-element"},e.createElement("ul",{className:"t42-buttons t42-group-caption-bar-element"},(null==n?void 0:n.visible)&&e.createElement(z,l({},n)),(null==o?void 0:o.visible)&&e.createElement(O,l({},o)),(null==a?void 0:a.visible)&&e.createElement(F,l({},a)),(null==r?void 0:r.visible)&&e.createElement(p,l({},r))))},M=function(t){var n=t.caption;return e.createElement("div",{className:"t42-caption t42-title t42-group-caption-bar-element"},n)},U=function(t){var n=t.moveAreaId;t.targetType,t.targetId;var o=t.caption,a=d(t,["moveAreaId","targetType","targetId","caption"]);return e.createElement("div",{className:"t42-react-caption-bar"},e.createElement(A,{moveAreaId:n},e.createElement(M,{caption:o})),e.createElement(j,l({},a)))},H=function(t){var n=t.showSelector,o=t.selectedChannel,a=t.selectedChannelColor;return e.createElement(_,{outsideClass:"t42-tab-bar-element t42-tab-channel-selector",contentClass:"t42-tab-channel-selector-content",showSelector:n,selectedChannel:o,selectedChannelColor:a})},N=function(t){var n=t.caption,o=t.selected;return e.createElement("div",{className:o?"t42-caption t42-tab-caption t42-selected-tab-caption":"t42-caption t42-tab-caption"},n)},L=function(o){var a=o.selected,r=o.close,s=t(null);return n((function(){var e;null===(e=s.current)||void 0===e||e.addEventListener("mousedown",(function(e){e.stopPropagation()}))}),[s]),e.createElement("div",{ref:s,onClick:r,className:a?"t42-tab-close-button t42-tab-bar-element t42-selected-tab-close-button t42-selected-tab-element":"t42-tab-close-button t42-tab-bar-element",title:"close"},e.createElement("div",{className:a?"t42-tab-close-button-content t42-selected-tab-close-button-content":"t42-tab-close-button-content"}))},P=function(t){var n=t.caption,o=t.selected,a=t.close,r=t.channels;return e.createElement("div",{className:"t42-react-tab"},r.visible&&e.createElement(H,{showSelector:r.showSelector,selectedChannel:r.selectedChannel,selectedChannelColor:null==r?void 0:r.selectedChannelColor}),e.createElement(N,{caption:n,selected:o}),e.createElement(L,{selected:o,close:a}))},$=function(t){var n=t.extract,o=t.minimize,a=t.maximize,r=t.restore,s=t.close;return e.createElement("div",{className:"t42-buttons-container t42-tab-bar-element"},e.createElement("ul",{className:"t42-buttons t42-tab-bar-element"},(null==n?void 0:n.visible)&&e.createElement(k,l({},n)),(null==o?void 0:o.visible)&&e.createElement(z,l({},o)),(null==r?void 0:r.visible)&&e.createElement(O,l({},r)),(null==a?void 0:a.visible)&&e.createElement(F,l({},a)),(null==s?void 0:s.visible)&&e.createElement(p,l({},s))))},V=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return r(n,t),n.prototype.componentDidMount=function(){var e={createGroupCaptionBar:this.props.onCreateGroupCaptionBarRequested,updateGroupCaptionBar:this.props.onUpdateGroupCaptionBarRequested,createGroupOverlay:this.props.onCreateGroupOverlayRequested,createFrameCaptionBar:this.props.onCreateFrameCaptionBarRequested,updateFrameCaptionBar:this.props.onUpdateFrameCaptionBarRequested,createFrameWindowOverlay:this.props.onCreateFrameWindowOverlayRequested,updateFrameWindowOverlay:this.props.onUpdateFrameWindowOverlayRequested,createBelowWindow:this.props.onCreateBelowWindowRequested,destroyBelowWindow:this.props.onRemoveBelowWindowRequested,createAboveTabs:this.props.onCreateAboveTabsRequested,updateAboveTabs:this.props.onUpdateAboveTabsRequested,createBeforeTabs:this.props.onCreateBeforeTabsComponentRequested,updateBeforeTabs:this.props.onUpdateBeforeTabsComponentRequested,createTab:this.props.onCreateTabRequested,updateTab:this.props.onUpdateTabRequested,createAfterTabs:this.props.onCreateAfterTabsComponentRequested,updateAfterTabs:this.props.onUpdateAfterTabsComponentRequested,createTabBarButtonsContainerElement:this.props.onCreateTabHeaderButtonsRequested,createBelowTabs:this.props.onCreateBelowTabsRequested,updateBelowTabs:this.props.onUpdateBelowTabsRequested,updateFrame:this.props.onUpdateFrameRequested,updateStandardButton:this.props.onUpdateStandardButtonRequested,destroyFrameCaptionBar:this.props.onRemoveFrameCaptionBarRequested,destroyFrameWindowOverlay:this.props.onRemoveFrameWindowOverlayRequested,destroyAboveTabs:this.props.onRemoveAboveTabsRequested,destroyBeforeTabs:this.props.onRemoveBeforeTabsComponentRequested,destroyTab:this.props.onRemoveTabRequested,destroyAfterTabs:this.props.onRemoveAfterTabsComponentRequested,destroyTabBarButtonsContainerElement:this.props.onRemoveTabHeaderButtonsRequested,destroyBelowTabs:this.props.onRemoveBelowTabsRequested};u.init(void 0,e)},n.prototype.componentWillUnmount=function(){},n.prototype.render=function(){var t=this;return e.createElement("div",{id:"t42-group-container",ref:function(e){return t.containerRef=e}},e.createElement("div",{id:"t42-frames-container"}))},n}(e.Component),D=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.render=function(){return o.createPortal(this.props.children,this.props.parentElement)},t}(e.Component),J=function(t){function n(n){var o=t.call(this,n)||this;return o.onCreateGroupCaptionBarRequested=function(e){e!==o.state.groupCaptionBar&&o.setState((function(t){return l(l({},t),{groupCaptionBar:e})}))},o.onCreateGroupOverlayRequested=function(e){e!==o.state.groupOverlay&&o.setState((function(t){return l(l({},t),{groupOverlay:e})}))},o.onCreateFrameCaptionBarRequested=function(e){e!==o.state.frameCaptionBars[e.targetId]&&e&&o.setState((function(t){var n;return l(l({},t),{frameCaptionBars:l(l({},t.frameCaptionBars),(n={},n[e.targetId]=e,n))})}))},o.onCreateFrameWindowOverlayRequested=function(e){e!==o.state.frameWindowOverlays[e.targetId]&&e&&o.setState((function(t){var n;return l(l({},t),{frameWindowOverlays:l(l({},t.frameWindowOverlays),(n={},n[e.targetId]=e,n))})}))},o.onCreateBelowWindowRequested=function(e){e!==o.state.belowWindowZones[e.targetId]&&e&&o.setState((function(t){var n;return l(l({},t),{belowWindowZones:l(l({},t.belowWindowZones),(n={},n[e.targetId]=e,n))})}))},o.onCreateAboveTabsComponentRequested=function(e){e!==o.state.aboveTabsZones[e.targetId]&&e&&o.setState((function(t){var n;return l(l({},t),{aboveTabsZones:l(l({},t.aboveTabsZones),(n={},n[e.targetId]=e,n))})}))},o.onCreateBeforeTabsComponentRequested=function(e){e!==o.state.beforeTabsZones[e.targetId]&&e&&o.setState((function(t){var n;return l(l({},t),{beforeTabsZones:l(l({},t.beforeTabsZones),(n={},n[e.targetId]=e,n))})}))},o.onCreateTabElementRequested=function(e){e!==o.state.tabElements[e.targetId]&&e&&o.setState((function(t){var n;return Object.keys(t.tabElements).reduce((function(e,n){return e[n]=t.tabElements[n],e}),{})[e.targetId]=e,l(l({},t),{tabElements:l(l({},t.tabElements),(n={},n[e.targetId]=e,n))})}))},o.onCreateAfterTabsComponentRequested=function(e){e!==o.state.afterTabsZones[e.targetId]&&e&&o.setState((function(t){var n;return l(l({},t),{afterTabsZones:l(l({},t.afterTabsZones),(n={},n[e.targetId]=e,n))})}))},o.onCreateTabHeaderButtonsRequested=function(e){e!==o.state.tabHeaderButtons[e.targetId]&&e&&o.setState((function(t){var n;return l(l({},t),{tabHeaderButtons:l(l({},t.tabHeaderButtons),(n={},n[e.targetId]=e,n))})}))},o.onCreateBelowTabsComponentRequested=function(e){e!==o.state.belowTabsZones[e.targetId]&&e&&o.setState((function(t){var n;return l(l({},t),{belowTabsZones:l(l({},t.belowTabsZones),(n={},n[e.targetId]=e,n))})}))},o.onUpdateGroupCaptionBarRequested=function(e){e!==o.state.groupCaptionBar&&o.setState((function(t){return l(l({},t),{groupCaptionBar:Object.assign({},t.groupCaptionBar,e)})}))},o.onUpdateFrameCaptionBarRequested=function(e){e!==o.state.frameCaptionBars[e.targetId]&&e&&o.setState((function(t){var n;return l(l({},t),{frameCaptionBars:l(l({},t.frameCaptionBars),(n={},n[e.targetId]=l(l({},t.frameCaptionBars[e.targetId]),e),n))})}))},o.onUpdateFrameWindowOverlayRequested=function(e){e!==o.state.frameWindowOverlays[e.targetId]&&e&&o.setState((function(t){var n;return l(l({},t),{frameWindowOverlays:l(l({},t.frameWindowOverlays),(n={},n[e.targetId]=l(l({},t.frameWindowOverlays[e.targetId]),e),n))})}))},o.onUpdateAboveTabsRequested=function(e){e!==o.state.aboveTabsZones[e.targetId]&&e&&o.setState((function(t){var n;return l(l({},t),{aboveTabsZones:l(l({},t.aboveTabsZones),(n={},n[e.targetId]=l(l({},t.aboveTabsZones[e.targetId]),e),n))})}))},o.onUpdateBeforeTabsRequested=function(e){e!==o.state.beforeTabsZones[e.targetId]&&e&&o.setState((function(t){var n;return l(l({},t),{beforeTabsZones:l(l({},t.beforeTabsZones),(n={},n[e.targetId]=l(l({},t.beforeTabsZones[e.targetId]),e),n))})}))},o.onUpdateTabElementRequested=function(e){e!==o.state.tabElements[e.targetId]&&e&&o.setState((function(t){var n;return l(l({},t),{tabElements:l(l({},t.tabElements),(n={},n[e.targetId]=l(l({},t.tabElements[e.targetId]),e),n))})}))},o.onUpdateAfterTabsRequested=function(e){e!==o.state.afterTabsZones[e.targetId]&&e&&o.setState((function(t){var n;return l(l({},t),{afterTabsZones:l(l({},t.afterTabsZones),(n={},n[e.targetId]=l(l({},t.afterTabsZones[e.targetId]),e),n))})}))},o.onUpdateTabHeaderButtonsRequested=function(e){e!==o.state.tabHeaderButtons[e.targetId]&&e&&o.setState((function(t){var n;return l(l({},t),{tabHeaderButtons:l(l({},t.tabHeaderButtons),(n={},n[e.targetId]=l(l({},t.tabHeaderButtons[e.targetId]),e),n))})}))},o.onUpdateBelowTabsRequested=function(e){e!==o.state.belowTabsZones[e.targetId]&&e&&o.setState((function(t){var n;return l(l({},t),{belowTabsZones:l(l({},t.belowTabsZones),(n={},n[e.targetId]=l(l({},t.belowTabsZones[e.targetId]),e),n))})}))},o.onUpdateFrame=function(e){o.setState((function(t){var n,o,a,r,s,i,d,u,c,p,b,m,v,f,w,g,C=l({},t);return t.frameWindowOverlays[e.targetId]&&(null===(c=t.frameWindowOverlays[e.targetId])||void 0===c?void 0:c.selectedWindow)!=e.selectedWindow&&(C.frameCaptionBars=l(l({},t.frameCaptionBars),((n={})[e.targetId]=l(l({},t.frameCaptionBars[e.targetId]),{selectedWindow:e.selectedWindow}),n))),t.frameWindowOverlays[e.targetId]&&(null===(p=t.frameWindowOverlays[e.targetId])||void 0===p?void 0:p.selectedWindow)!=e.selectedWindow&&(C.frameWindowOverlays=l(l({},t.frameWindowOverlays),((o={})[e.targetId]=l(l({},t.frameWindowOverlays[e.targetId]),{selectedWindow:e.selectedWindow}),o))),t.belowWindowZones[e.targetId]&&(null===(b=t.belowWindowZones[e.targetId])||void 0===b?void 0:b.selectedWindow)!=e.selectedWindow&&(C.belowWindowZones=l(l({},t.belowWindowZones),((a={})[e.targetId]=l(l({},t.belowWindowZones[e.targetId]),{selectedWindow:e.selectedWindow}),a))),t.aboveTabsZones[e.targetId]&&(null===(m=t.frameWindowOverlays[e.targetId])||void 0===m?void 0:m.selectedWindow)!=e.selectedWindow&&(C.aboveTabsZones=l(l({},t.aboveTabsZones),((r={})[e.targetId]=l(l({},t.aboveTabsZones[e.targetId]),{selectedWindow:e.selectedWindow}),r))),t.beforeTabsZones[e.targetId]&&(null===(v=t.frameWindowOverlays[e.targetId])||void 0===v?void 0:v.selectedWindow)!=e.selectedWindow&&(C.beforeTabsZones=l(l({},t.beforeTabsZones),((s={})[e.targetId]=l(l({},t.beforeTabsZones[e.targetId]),{selectedWindow:e.selectedWindow}),s))),t.afterTabsZones[e.targetId]&&(null===(f=t.frameWindowOverlays[e.targetId])||void 0===f?void 0:f.selectedWindow)!=e.selectedWindow&&(C.afterTabsZones=l(l({},t.afterTabsZones),((i={})[e.targetId]=l(l({},t.afterTabsZones[e.targetId]),{selectedWindow:e.selectedWindow}),i))),t.tabHeaderButtons[e.targetId]&&(null===(w=t.frameWindowOverlays[e.targetId])||void 0===w?void 0:w.selectedWindow)!=e.selectedWindow&&(C.tabHeaderButtons=l(l({},t.tabHeaderButtons),((d={})[e.targetId]=l(l({},t.tabHeaderButtons[e.targetId]),{selectedWindow:e.selectedWindow}),d))),t.belowTabsZones[e.targetId]&&(null===(g=t.frameWindowOverlays[e.targetId])||void 0===g?void 0:g.selectedWindow)!=e.selectedWindow&&(C.belowTabsZones=l(l({},t.belowTabsZones),((u={})[e.targetId]=l(l({},t.belowTabsZones[e.targetId]),{selectedWindow:e.selectedWindow}),u))),C}))},o.onUpdateStandardButton=function(e){var t,n,a,r,i=(null===(r=o.state.groupCaptionBar)||void 0===r?void 0:r.targetId)===e.targetId,d=o.state.frameCaptionBars[e.targetId],u=o.state.tabHeaderButtons[e.targetId];if(i){var c=l(l({},o.state.groupCaptionBar),((t={})[e.buttonId]=l({},e),t));o.onUpdateGroupCaptionBarRequested(c)}else if(d&&e.targetType===s.Frame){c=l(l({},o.state.frameCaptionBars[e.targetId]),((n={})[e.buttonId]=l({},e),n));o.onUpdateFrameCaptionBarRequested(c)}else if(u&&e.targetType===s.TabBar){c=l(l({},o.state.tabHeaderButtons[e.targetId]),((a={})[e.buttonId]=l({},e),a));o.onUpdateTabHeaderButtonsRequested(c)}},o.renderGroupCaptionBar=function(){var t,n,a=null===(n=null===(t=o.props.components)||void 0===t?void 0:t.group)||void 0===n?void 0:n.CaptionBar;if(a&&o.state.groupCaptionBar&&o.state.groupCaptionBar.parentElement){var r=o.state.groupCaptionBar,s=r.parentElement,i=d(r,["parentElement"]),c=l({onClick:function(){u.minimizeGroup(i.targetId)}},i.minimize),p=l({onClick:function(){u.restoreGroup(i.targetId)}},i.restore),b=l({onClick:function(){u.maximizeGroup(i.targetId)}},i.maximize),m=l({onClick:function(){u.closeGroup(i.targetId)}},i.close);return e.createElement(D,{parentElement:s},e.createElement(a,l({},i,{minimize:c,maximize:b,restore:p,close:m})))}},o.renderGroupOverlay=function(){var t,n,a=null===(n=null===(t=o.props.components)||void 0===t?void 0:t.group)||void 0===n?void 0:n.Overlay;if(a&&o.state.groupOverlay&&o.state.groupOverlay.parentElement){var r=o.state.groupOverlay,s=r.parentElement,i=d(r,["parentElement"]);return e.createElement(D,{parentElement:s},e.createElement(a,l({},i)))}},o.renderFrameCaptionBar=function(){var t,n,a=null===(n=null===(t=o.props.components)||void 0===t?void 0:t.flat)||void 0===n?void 0:n.CaptionBar;return Object.values(o.state.frameCaptionBars).map((function(t){if(a&&t.parentElement){var n=t.parentElement,o=d(t,["parentElement"]),r=l({onClick:function(){u.minimizeFrame(o.targetId)}},o.minimize),s=l({onClick:function(){u.restoreFrame(o.targetId)}},o.restore),i=l({onClick:function(){u.maximizeFrame(o.targetId)}},o.maximize),c=l({onClick:function(){u.closeFrame(o.targetId)}},o.close),p={showSelector:function(e){u.onFrameChannelSelectorClick(o.targetId,e)},visible:o.channelSelectorVisible,selectedChannel:o.selectedChannel,selectedChannelColor:o.selectedChannelColor};return e.createElement(D,{key:o.targetId,parentElement:n},e.createElement(a,l({},o,{minimize:r,maximize:i,restore:s,close:c,channels:p,frameId:o.targetId})))}}))},o.renderFrameWindowOverlay=function(){var t,n,a=null===(n=null===(t=o.props.components)||void 0===t?void 0:t.frame)||void 0===n?void 0:n.Overlay;return Object.values(o.state.frameWindowOverlays).map((function(t){if(a&&t.parentElement){var n=t.parentElement,o=d(t,["parentElement"]);return e.createElement(D,{key:o.targetId,parentElement:n},e.createElement(a,l({},o,{frameId:o.targetId})))}}))},o.renderBelowWindow=function(){var t,n,a=null===(n=null===(t=o.props.components)||void 0===t?void 0:t.frame)||void 0===n?void 0:n.BelowWindow;return Object.values(o.state.belowWindowZones).map((function(t){if(a&&t.parentElement){var n=t.parentElement,o=d(t,["parentElement"]);return e.createElement(D,{key:o.targetId,parentElement:n},e.createElement(a,l({},o,{frameId:o.targetId})))}}))},o.renderAboveTabs=function(){var t,n,a=null===(n=null===(t=o.props.components)||void 0===t?void 0:t.tabs)||void 0===n?void 0:n.Above;return Object.values(o.state.aboveTabsZones).map((function(t){if(a&&t.parentElement){var n=t.parentElement,o=d(t,["parentElement"]);return e.createElement(D,{key:o.targetId,parentElement:n},e.createElement(a,l({},o,{frameId:o.targetId})))}}))},o.renderBeforeTabsZones=function(){var t,n,a=null===(n=null===(t=o.props.components)||void 0===t?void 0:t.tabs)||void 0===n?void 0:n.Before;return Object.values(o.state.beforeTabsZones).map((function(t){if(a&&t.parentElement){var n=t.parentElement,o=d(t,["parentElement"]);return e.createElement(D,{key:o.targetId,parentElement:n},e.createElement(a,l({},o,{frameId:o.targetId})))}}))},o.renderTabElements=function(){var t,n,a=null===(n=null===(t=o.props.components)||void 0===t?void 0:t.tabs)||void 0===n?void 0:n.Element;return Object.values(o.state.tabElements).map((function(t){var n;if(a&&t.parentElement){var o=t.parentElement,r=d(t,["parentElement"]),s={showSelector:function(e){u.onTabChannelSelectorClick(r.targetId,e)},visible:r.channelSelectorVisible,selectedChannel:r.selectedChannel,selectedChannelColor:null!==(n=r.selectedChannelColor)&&void 0!==n?n:r.selectedChannel};return e.createElement(D,{key:r.targetId,parentElement:o},e.createElement(a,l({},r,{close:function(){u.closeTab(r.targetId)},channels:s,windowId:r.targetId})))}}))},o.renderAfterTabsZones=function(){var t,n,a=null===(n=null===(t=o.props.components)||void 0===t?void 0:t.tabs)||void 0===n?void 0:n.After;return Object.values(o.state.afterTabsZones).map((function(t){if(a&&t.parentElement){var n=t.parentElement,o=d(t,["parentElement"]);return e.createElement(D,{key:o.targetId,parentElement:n},e.createElement(a,l({},o,{frameId:o.targetId})))}}))},o.renderTabHeaderButtons=function(){var t,n,a=null===(n=null===(t=o.props.components)||void 0===t?void 0:t.tabs)||void 0===n?void 0:n.Buttons;return Object.values(o.state.tabHeaderButtons).map((function(t){if(a&&t.parentElement){var n=t.parentElement,o=d(t,["parentElement"]),r=l({onClick:function(){u.minimizeTabBar(o.targetId)}},o.minimize),s=l({onClick:function(){u.restoreTabBar(o.targetId)}},o.restore),i=l({onClick:function(){u.maximizeTabBar(o.targetId)}},o.maximize),c=l({onClick:function(){u.closeTabBar(o.targetId)}},o.close);return e.createElement(D,{key:o.targetId,parentElement:n},e.createElement(a,l({},o,{minimize:r,maximize:i,restore:s,close:c,frameId:o.targetId})))}}))},o.renderBelowTabs=function(){var t,n,a=null===(n=null===(t=o.props.components)||void 0===t?void 0:t.tabs)||void 0===n?void 0:n.Below;return Object.values(o.state.belowTabsZones).map((function(t){if(a&&t.parentElement){var n=t.parentElement,o=d(t,["parentElement"]);return e.createElement(D,{key:o.targetId,parentElement:n},e.createElement(a,l({},o,{frameId:o.targetId})))}}))},o.onRemoveFrameCaptionBarRequested=function(e){o.state.frameCaptionBars[e.targetId]&&o.setState((function(t){var n=Object.keys(t.frameCaptionBars).reduce((function(n,o){return o!==e.targetId&&(n[o]=t.frameCaptionBars[o]),n}),{});return l(l({},t),{frameCaptionBars:n})}))},o.onRemoveFrameWindowOverlayRequested=function(e){o.state.frameWindowOverlays[e.targetId]&&o.setState((function(t){var n=Object.keys(t.frameWindowOverlays).reduce((function(n,o){return o!==e.targetId&&(n[o]=t.frameWindowOverlays[o]),n}),{});return l(l({},t),{frameWindowOverlays:n})}))},o.onRemoveBelowWindowRequested=function(e){o.state.belowWindowZones[e.targetId]&&o.setState((function(t){var n=Object.keys(t.belowWindowZones).reduce((function(n,o){return o!==e.targetId&&(n[o]=t.belowWindowZones[o]),n}),{});return l(l({},t),{belowWindowZones:n})}))},o.onRemoveAboveTabsRequested=function(e){o.state.aboveTabsZones[e.targetId]&&o.setState((function(t){var n=Object.keys(t.aboveTabsZones).reduce((function(n,o){return o!=e.targetId&&(n[o]=t.aboveTabsZones[o]),n}),{});return l(l({},t),{aboveTabsZones:n})}))},o.onRemoveBeforeTabsComponentRequested=function(e){o.state.beforeTabsZones[e.targetId]&&o.setState((function(t){var n=Object.keys(t.beforeTabsZones).reduce((function(n,o){return o!=e.targetId&&(n[o]=t.beforeTabsZones[o]),n}),{});return l(l({},t),{beforeTabsZones:n})}))},o.onRemoveTabElementRequested=function(e){o.state.tabElements[e.targetId]&&o.setState((function(t){var n=Object.keys(t.tabElements).reduce((function(n,o){return o!=e.targetId&&(n[o]=t.tabElements[o]),n}),{});return l(l({},t),{tabElements:n})}))},o.onRemoveAfterTabsComponentRequested=function(e){o.state.afterTabsZones[e.targetId]&&o.setState((function(t){var n=Object.keys(t.afterTabsZones).reduce((function(n,o){return o!=e.targetId&&(n[o]=t.afterTabsZones[o]),n}),{});return l(l({},t),{afterTabsZones:n})}))},o.onRemoveTabHeaderButtonsRequested=function(e){o.state.tabHeaderButtons[e.targetId]&&o.setState((function(t){var n=Object.keys(t.tabHeaderButtons).reduce((function(n,o){return o!=e.targetId&&(n[o]=t.tabHeaderButtons[o]),n}),{});return l(l({},t),{tabHeaderButtons:n})}))},o.onRemoveBelowTabsRequested=function(e){o.state.belowTabsZones[e.targetId]&&o.setState((function(t){var n=Object.keys(t.belowTabsZones).reduce((function(n,o){return o!=e.targetId&&(n[o]=t.belowTabsZones[o]),n}),{});return l(l({},t),{belowTabsZones:n})}))},o.state={groupCaptionBar:void 0,groupOverlay:void 0,frameCaptionBars:{},frameWindowOverlays:{},belowWindowZones:{},aboveTabsZones:{},beforeTabsZones:{},tabElements:{},afterTabsZones:{},tabHeaderButtons:{},belowTabsZones:{}},o}return r(n,t),n.prototype.render=function(){var t,n,o,a,r,s,i,l,u,c,p,b,m,v,f,w,g,C,y,h=this.props,B=h.components;return d(h,["components"]),e.createElement(e.Fragment,null,this.renderGroupCaptionBar(),this.renderGroupOverlay(),this.renderFrameCaptionBar(),this.renderFrameWindowOverlay(),this.renderBelowWindow(),this.renderAboveTabs(),this.renderBeforeTabsZones(),this.renderTabElements(),this.renderAfterTabsZones(),this.renderTabHeaderButtons(),this.renderBelowTabs(),e.createElement(V,{onCreateGroupCaptionBarRequested:(null===(t=null==B?void 0:B.group)||void 0===t?void 0:t.CaptionBar)?this.onCreateGroupCaptionBarRequested:void 0,onCreateGroupOverlayRequested:(null===(n=null==B?void 0:B.group)||void 0===n?void 0:n.Overlay)?this.onCreateGroupOverlayRequested:void 0,onCreateFrameCaptionBarRequested:(null===(o=null==B?void 0:B.flat)||void 0===o?void 0:o.CaptionBar)?this.onCreateFrameCaptionBarRequested:void 0,onCreateFrameWindowOverlayRequested:(null===(a=null==B?void 0:B.frame)||void 0===a?void 0:a.Overlay)?this.onCreateFrameWindowOverlayRequested:void 0,onCreateBelowWindowRequested:(null===(r=null==B?void 0:B.frame)||void 0===r?void 0:r.BelowWindow)?this.onCreateBelowWindowRequested:void 0,onCreateAboveTabsRequested:(null===(s=null==B?void 0:B.tabs)||void 0===s?void 0:s.Above)?this.onCreateAboveTabsComponentRequested:void 0,onCreateBeforeTabsComponentRequested:(null===(i=null==B?void 0:B.tabs)||void 0===i?void 0:i.Before)?this.onCreateBeforeTabsComponentRequested:void 0,onCreateTabRequested:(null===(l=null==B?void 0:B.tabs)||void 0===l?void 0:l.Element)?this.onCreateTabElementRequested:void 0,onCreateAfterTabsComponentRequested:(null===(u=null==B?void 0:B.tabs)||void 0===u?void 0:u.After)?this.onCreateAfterTabsComponentRequested:void 0,onCreateTabHeaderButtonsRequested:(null===(c=null==B?void 0:B.tabs)||void 0===c?void 0:c.Buttons)?this.onCreateTabHeaderButtonsRequested:void 0,onCreateBelowTabsRequested:(null===(p=null==B?void 0:B.tabs)||void 0===p?void 0:p.Below)?this.onCreateBelowTabsComponentRequested:void 0,onUpdateGroupCaptionBarRequested:(null===(b=null==B?void 0:B.group)||void 0===b?void 0:b.CaptionBar)?this.onUpdateGroupCaptionBarRequested:void 0,onUpdateFrameWindowOverlayRequested:(null===(m=null==B?void 0:B.group)||void 0===m?void 0:m.Overlay)?this.onUpdateFrameWindowOverlayRequested:void 0,onUpdateFrameCaptionBarRequested:(null===(v=null==B?void 0:B.flat)||void 0===v?void 0:v.CaptionBar)?this.onUpdateFrameCaptionBarRequested:void 0,onUpdateFrameRequested:this.onUpdateFrame,onUpdateStandardButtonRequested:this.onUpdateStandardButton,onUpdateAboveTabsRequested:(null===(f=null==B?void 0:B.tabs)||void 0===f?void 0:f.Above)?this.onUpdateAboveTabsRequested:void 0,onUpdateBeforeTabsComponentRequested:(null===(w=null==B?void 0:B.tabs)||void 0===w?void 0:w.Before)?this.onUpdateBeforeTabsRequested:void 0,onUpdateTabRequested:(null===(g=null==B?void 0:B.tabs)||void 0===g?void 0:g.Element)?this.onUpdateTabElementRequested:void 0,onUpdateAfterTabsComponentRequested:(null===(C=null==B?void 0:B.tabs)||void 0===C?void 0:C.After)?this.onUpdateAfterTabsRequested:void 0,onUpdateBelowTabsRequested:(null===(y=null==B?void 0:B.tabs)||void 0===y?void 0:y.Below)?this.onUpdateBelowTabsRequested:void 0,onRemoveFrameCaptionBarRequested:this.onRemoveFrameCaptionBarRequested,onRemoveFrameWindowOverlayRequested:this.onRemoveFrameWindowOverlayRequested,onRemoveBelowWindowRequested:this.onRemoveBelowWindowRequested,onRemoveAboveTabsRequested:this.onRemoveAboveTabsRequested,onRemoveBeforeTabsComponentRequested:this.onRemoveBeforeTabsComponentRequested,onRemoveTabRequested:this.onRemoveTabElementRequested,onRemoveAfterTabsComponentRequested:this.onRemoveAfterTabsComponentRequested,onRemoveTabHeaderButtonsRequested:this.onRemoveTabHeaderButtonsRequested,onRemoveBelowTabsRequested:this.onRemoveBelowTabsRequested}))},n}(e.Component),K=function(){return null==u?void 0:u.getGroupId()},Q=function(){return null==u?void 0:u.requestPageFocus()},X=function(e){return null==u?void 0:u.requestFrameFocus(e)},Y=function(){return null==u?void 0:u.requestGroupFocus()};export{p as CloseButton,Z as FrameButtons,x as FrameCaption,G as FrameCaptionBar,W as FrameChannelSelector,S as FrameMoveArea,j as GroupButtons,M as GroupCaption,U as GroupCaptionBar,A as GroupMoveArea,F as MaximizeButton,z as MinimizeButton,O as RestoreButton,P as Tab,N as TabCaption,H as TabChannelSelector,L as TabCloseButton,$ as TabHeaderButtons,J as default,K as getGroupId,X as requestFrameFocus,Y as requestGroupFocus,Q as requestPageFocus};
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../node_modules/tslib/tslib.es6.js","../src/types/internal.ts","../src/webGroupsManager.ts","../src/defaultComponents/BaseButton.tsx","../src/defaultComponents/CloseButton.tsx","../node_modules/color2k/dist/index.module.es.js","../src/defaultComponents/channelSelector/BaseChannelSelector.tsx","../src/defaultComponents/channelSelector/utils.ts","../src/defaultComponents/channelSelector/FrameChannelSelector.tsx","../src/defaultComponents/ExtractButton.tsx","../src/defaultComponents/MaximizeButton.tsx","../src/defaultComponents/MinimizeButton.tsx","../src/defaultComponents/RestoreButton.tsx","../src/defaultComponents/frameCaptionBar/FrameButtons.tsx","../src/defaultComponents/frameCaptionBar/FrameCaption.tsx","../src/defaultComponents/frameCaptionBar/FrameMoveArea.tsx","../src/defaultComponents/frameCaptionBar/FrameCaptionBar.tsx","../src/defaultComponents/groupCaptionBar/GroupMoveArea.tsx","../src/defaultComponents/groupCaptionBar/GroupButtons.tsx","../src/defaultComponents/groupCaptionBar/GroupCaption.tsx","../src/defaultComponents/groupCaptionBar/GroupCaptionBar.tsx","../src/defaultComponents/channelSelector/TabChannelSelector.tsx","../src/defaultComponents/TabCaption.tsx","../src/defaultComponents/TabCloseButton.tsx","../src/defaultComponents/Tab.tsx","../src/defaultComponents/TabHeaderButtons.tsx","../src/GroupWrapper.tsx","../src/Portal.tsx","../src/GroupElementCreationWrapper.tsx","../src/index.tsx"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import React from \"react\";\r\n\r\n\r\nexport interface BaseChannelSelectorProps {\r\n\tshowSelector: (bounds: Bounds) => void;\r\n\toutsideClass: string;\r\n\tcontentClass: string;\r\n\tselectedChannel: string;\r\n\tselectedChannelColor: string;\r\n}\r\n\r\nexport interface FrameChannelSelectorProps {\r\n\tshowSelector: (bounds: Bounds) => void;\r\n\tselectedChannel: string;\r\n\tselectedChannelColor: string;\r\n}\r\n\r\nexport interface TabChannelSelectorProps {\r\n\tshowSelector: (bounds: Bounds) => void;\r\n\tselectedChannel: string;\r\n\tselectedChannelColor: string;\r\n}\r\n\r\nexport interface PortalProps {\r\n\tparentElement: HTMLElement;\r\n\tchildren?: React.ReactNode;\r\n}\r\n\r\nexport interface GroupCaptionBarProps {\r\n\tmoveAreaId: string;\r\n\ttargetType: string;\r\n\ttargetId: string;\r\n\tcaption: string;\r\n\r\n\tminimize: ButtonProps;\r\n\tmaximize: ButtonProps;\r\n\trestore: ButtonProps;\r\n\tclose: ButtonProps;\r\n}\r\n\r\nexport interface GroupMoveAreaProps {\r\n\tmoveAreaId: string;\r\n\tchildren?: React.ReactNode;\r\n}\r\n\r\nexport interface GroupButtonsProps {\r\n\tminimize: ButtonProps;\r\n\tmaximize: ButtonProps;\r\n\trestore: ButtonProps;\r\n\tclose: ButtonProps;\r\n}\r\n\r\nexport interface GroupCaptionProps {\r\n\tcaption: string;\r\n}\r\n\r\nexport interface GroupOverlayProps {\r\n\r\n}\r\n\r\nexport interface MoveAreaProps {\r\n\telementId: string;\r\n}\r\n\r\nexport interface FrameCaptionBarProps {\r\n\tframeId: string;\r\n\tmoveAreaId: string;\r\n\tcaption: string;\r\n\textract?: ButtonProps;\r\n\tminimize?: ButtonProps;\r\n\tmaximize?: ButtonProps;\r\n\trestore?: ButtonProps;\r\n\tclose?: ButtonProps;\r\n\tchannels: ChannelProps;\r\n\tselectedWindow: string;\r\n}\r\n\r\nexport interface FrameMoveAreaProps {\r\n\tmoveAreaId: string;\r\n\tchildren?: React.ReactNode;\r\n}\r\n\r\nexport interface FrameButtonsProps {\r\n\textract?: ButtonProps;\r\n\tminimize?: ButtonProps;\r\n\tmaximize?: ButtonProps;\r\n\trestore?: ButtonProps;\r\n\tclose?: ButtonProps;\r\n}\r\n\r\nexport interface FrameCaptionProps {\r\n\tcaption: string;\r\n}\r\n\r\nexport interface FrameWindowOverlayProps {\r\n\tframeId: string;\r\n\tselectedWindow: string;\r\n}\r\n\r\nexport interface BelowWindowProps {\r\n\tframeId: string;\r\n\tselectedWindow: string;\r\n}\r\n\r\nexport interface ChannelProps {\r\n\tvisible: boolean;\r\n\tselectedChannel: string;\r\n\tshowSelector: (bounds: Bounds) => void;\r\n\tselectedChannelColor: string;\r\n}\r\n\r\nexport interface AboveTabsProps {\r\n\tframeId: string;\r\n\tselectedWindow: string;\r\n}\r\n\r\nexport interface BeforeTabsZoneProps {\r\n\tframeId: string;\r\n\tselectedWindow: string;\r\n}\r\n\r\nexport interface TabElementProps {\r\n\ttargetId: string;\r\n\twindowId: string;\r\n\tcaption: string;\r\n\tselected: boolean;\r\n\tclose: () => void;\r\n\tchannels: ChannelProps;\r\n}\r\n\r\nexport interface TabCaptionProps {\r\n\tcaption: string;\r\n\tselected: boolean;\r\n}\r\n\r\nexport interface TabCloseButtonProps {\r\n\tselected: boolean;\r\n\tclose: () => void;\r\n}\r\n\r\nexport interface AfterTabsZoneProps {\r\n\tframeId: string;\r\n\tselectedWindow: string;\r\n}\r\n\r\nexport interface TabHeaderButtonsProps {\r\n\textract?: ButtonProps;\r\n\tminimize?: ButtonProps;\r\n\tmaximize?: ButtonProps;\r\n\trestore?: ButtonProps;\r\n\tclose?: ButtonProps;\r\n\tframeId: string;\r\n\tselectedWindow: string;\r\n}\r\n\r\nexport interface BelowTabsProps {\r\n\tframeId: string;\r\n\tselectedWindow: string;\r\n}\r\n\r\nexport interface ButtonProps {\r\n\tonClick: () => void;\r\n\ttooltip: string;\r\n\tvisible: boolean;\r\n}\r\n\r\nexport interface MinimizeButtonProps extends ButtonProps {\r\n}\r\n\r\nexport interface MaximizeButtonProps extends ButtonProps {\r\n}\r\n\r\nexport interface RestoreButtonProps extends ButtonProps {\r\n}\r\n\r\nexport interface CloseButtonProps extends ButtonProps {\r\n}\r\n\r\nexport interface BaseButtonProps {\r\n\touterElement: React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>;\r\n\tinnerElement: React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>\r\n}\r\n\r\nexport interface GroupProps {\r\n\tcomponents?: {\r\n\t\tgroup?: {\r\n\t\t\tCaptionBar?: React.ComponentType<GroupCaptionBarProps>;\r\n\t\t\tOverlay?: React.ComponentType<GroupOverlayProps>;\r\n\t\t}\r\n\t\tframe?: {\r\n\t\t\tOverlay?: React.ComponentType<FrameWindowOverlayProps>;\r\n\t\t\tBelowWindow?: React.ComponentType<BelowWindowProps>;\r\n\t\t};\r\n\t\tflat?: {\r\n\t\t\tCaptionBar?: React.ComponentType<FrameCaptionBarProps>;\r\n\t\t};\r\n\t\ttabs?: {\r\n\t\t\tAbove?: React.ComponentType<AboveTabsProps>;\r\n\t\t\tBefore?: React.ComponentType<BeforeTabsZoneProps>;\r\n\t\t\tElement?: React.ComponentType<TabElementProps>;\r\n\t\t\tAfter?: React.ComponentType<AfterTabsZoneProps>;\r\n\t\t\tButtons?: React.ComponentType<TabHeaderButtonsProps>;\r\n\t\t\tBelow?: React.ComponentType<BelowTabsProps>;\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport interface GroupWrapperProps {\r\n\tonCreateGroupCaptionBarRequested?: (options: CreateGroupCaptionBarRequestOptions) => void;\r\n\tonUpdateGroupCaptionBarRequested?: (options: UpdateGroupCaptionBarRequestOptions) => void;\r\n\r\n\tonCreateGroupOverlayRequested?: (options: CreateElementRequestOptions) => void;\r\n\r\n\tonCreateFrameCaptionBarRequested?: (options: CreateFrameCaptionBarRequestOptions) => void;\r\n\tonUpdateFrameCaptionBarRequested?: (options: UpdateFrameCaptionBarRequestOptions) => void;\r\n\r\n\tonCreateFrameWindowOverlayRequested?: (options: CreateFrameElementRequestOptions) => void;\r\n\tonUpdateFrameWindowOverlayRequested?: (options: CreateFrameElementRequestOptions) => void;\r\n\r\n\tonCreateBelowWindowRequested?: (options: CreateFrameElementRequestOptions) => void;\r\n\r\n\tonCreateAboveTabsRequested?: (options: CreateFrameElementRequestOptions) => void;\r\n\tonUpdateAboveTabsRequested?: (options: CreateFrameElementRequestOptions) => void;\r\n\r\n\tonCreateBeforeTabsComponentRequested?: (options: CreateFrameElementRequestOptions) => void;\r\n\tonUpdateBeforeTabsComponentRequested?: (options: CreateFrameElementRequestOptions) => void;\r\n\r\n\tonCreateTabRequested?: (options: CreateTabRequestOptions) => void;\r\n\tonUpdateTabRequested?: (options: UpdateTabRequestOptions) => void;\r\n\r\n\tonCreateAfterTabsComponentRequested?: (options: CreateFrameElementRequestOptions) => void;\r\n\tonUpdateAfterTabsComponentRequested?: (options: CreateFrameElementRequestOptions) => void;\r\n\r\n\tonCreateTabHeaderButtonsRequested?: (options: CreateTabHeaderButtonsOptions) => void;\r\n\r\n\tonCreateBelowTabsRequested?: (options: CreateFrameElementRequestOptions) => void;\r\n\tonUpdateBelowTabsRequested?: (options: CreateFrameElementRequestOptions) => void;\r\n\r\n\tonUpdateFrameRequested?: (options: UpdateFrameRequestionOptions) => void;\r\n\tonUpdateStandardButtonRequested?: (options: UpdateStandardButtonRequestOptions) => void;\r\n\r\n\tonRemoveFrameCaptionBarRequested?: (options: RemoveRequestOptions) => void;\r\n\tonRemoveFrameWindowOverlayRequested?: (options: RemoveRequestOptions) => void;\r\n\tonRemoveBelowWindowRequested?: (options: RemoveRequestOptions) => void;\r\n\tonRemoveAboveTabsRequested?: (options: RemoveRequestOptions) => void;\r\n\tonRemoveBeforeTabsComponentRequested?: (options: RemoveRequestOptions) => void;\r\n\tonRemoveTabRequested?: (options: RemoveRequestOptions) => void;\r\n\tonRemoveAfterTabsComponentRequested?: (options: RemoveRequestOptions) => void;\r\n\tonRemoveTabHeaderButtonsRequested?: (options: RemoveRequestOptions) => void;\r\n\tonRemoveBelowTabsRequested?: (options: RemoveRequestOptions) => void;\r\n}\r\n\r\nexport interface CreateGroupCaptionBarRequestOptions extends CreateElementRequestOptions {\r\n\tmoveAreaId: string;\r\n\tcaption: string;\r\n\textract: {\r\n\t\ttooltip: string;\r\n\t\tvisible: boolean;\r\n\t},\r\n\tminimize: {\r\n\t\ttooltip: string;\r\n\t\tvisible: boolean;\r\n\t};\r\n\trestore: {\r\n\t\ttooltip: string;\r\n\t\tvisible: boolean;\r\n\t};\r\n\tmaximize: {\r\n\t\ttooltip: string;\r\n\t\tvisible: boolean;\r\n\t};\r\n\tclose: {\r\n\t\ttooltip: string;\r\n\t\tvisible: boolean;\r\n\t};\r\n}\r\n\r\nexport interface UpdateGroupCaptionBarRequestOptions extends CreateGroupCaptionBarRequestOptions {\r\n\r\n}\r\n\r\nexport interface UpdateFrameCaptionBarRequestOptions extends BaseElementOptions {\r\n\r\n}\r\n\r\nexport interface CreateFrameCaptionBarRequestOptions extends CreateFrameElementRequestOptions {\r\n\tcaption: string;\r\n\tmoveAreaId: string;\r\n\tchannelSelectorVisible: boolean;\r\n\tselectedChannel: string;\r\n\tselectedChannelColor: string;\r\n\tminimize: {\r\n\t\ttooltip: string;\r\n\t\tvisible: boolean;\r\n\t};\r\n\trestore: {\r\n\t\ttooltip: string;\r\n\t\tvisible: boolean;\r\n\t};\r\n\tmaximize: {\r\n\t\ttooltip: string;\r\n\t\tvisible: boolean;\r\n\t};\r\n\tclose: {\r\n\t\ttooltip: string;\r\n\t\tvisible: boolean;\r\n\t};\r\n}\r\n\r\nexport interface CreateTabRequestOptions extends CreateElementRequestOptions {\r\n\tcaption: string;\r\n\tselected: boolean;\r\n\tchannelSelectorVisible: boolean;\r\n\tselectedChannel: string;\r\n\tselectedChannelColor: string;\r\n}\r\n\r\nexport interface UpdateTabRequestOptions extends BaseElementOptions {\r\n\r\n}\r\n\r\nexport interface UpdateStandardButtonRequestOptions extends CreateElementRequestOptions {\r\n\tbuttonId: StandardButtons;\r\n\tvisible: boolean;\r\n\ttooltip: string;\r\n}\r\n\r\nexport interface CreateTabHeaderButtonsOptions extends CreateFrameElementRequestOptions {\r\n\tminimize: {\r\n\t\ttooltip: string;\r\n\t\tvisible: boolean;\r\n\t};\r\n\trestore: {\r\n\t\ttooltip: string;\r\n\t\tvisible: boolean;\r\n\t};\r\n\tmaximize: {\r\n\t\ttooltip: string;\r\n\t\tvisible: boolean;\r\n\t};\r\n\tclose: {\r\n\t\ttooltip: string;\r\n\t\tvisible: boolean;\r\n\t};\r\n}\r\n\r\nexport interface RemoveRequestOptions {\r\n\ttargetId: string;\r\n}\r\n\r\nexport interface BaseElementOptions {\r\n\ttargetId: string;\r\n}\r\n\r\nexport interface CreateElementRequestOptions extends BaseElementOptions {\r\n\tparentElement: HTMLElement;\r\n\ttargetType: TargetType;\r\n\telementId: string;\r\n}\r\n\r\nexport interface CreateFrameElementRequestOptions extends CreateElementRequestOptions {\r\n\tselectedWindow: string;\r\n}\r\n\r\nexport type UpdateFrameRequestionOptions = CreateFrameElementRequestOptions;\r\n\r\nexport enum TargetType {\r\n\tGroup = \"group\",\r\n\tFrame = \"frame\",\r\n\tTabBar = \"tabBar\",\r\n\tTab = \"tab\"\r\n}\r\n\r\nexport enum StandardButtons {\r\n\tMinimize = \"minimize\",\r\n\tMaximize = \"maximize\",\r\n\tRestore = \"restore\",\r\n\tClose = \"close\"\r\n}\r\n\r\nexport interface ElementCreationWrapperState {\r\n\tgroupCaptionBar?: CreateGroupCaptionBarRequestOptions;\r\n\tgroupOverlay?: CreateElementRequestOptions;\r\n\tframeCaptionBars: { [targetId: string]: CreateFrameCaptionBarRequestOptions };\r\n\tframeWindowOverlays: { [targetId: string]: CreateFrameElementRequestOptions };\r\n\tbelowWindowZones: { [targetId: string]: CreateFrameElementRequestOptions };\r\n\taboveTabsZones: { [targetId: string]: CreateFrameElementRequestOptions };\r\n\tbeforeTabsZones: { [targetId: string]: CreateFrameElementRequestOptions };\r\n\ttabElements: { [targetId: string]: CreateTabRequestOptions };\r\n\tafterTabsZones: { [targetId: string]: CreateFrameElementRequestOptions };\r\n\ttabHeaderButtons: { [targetId: string]: CreateTabHeaderButtonsOptions };\r\n\tbelowTabsZones: { [targetId: string]: CreateFrameElementRequestOptions };\r\n}\r\n\r\nexport interface ExternalLibraryFactory {\r\n\treadonly groupId: string;\r\n\tfocusPage(): void;\r\n\tfocusFrame(frameId: string): void;\r\n\tfocusGroup(): void;\r\n\tonStandardButtonClick(targetType: TargetType, targetId: string, buttonId: StandardButtons): void;\r\n\tonTabCloseButtonClick(targetId: string): void;\r\n\tonTabChannelSelectorClick(targetId: string, channelSelectorBounds: Bounds): void;\r\n\tonFrameChannelSelectorClick(targetId: string, channelSelectorBounds: Bounds): void;\r\n\tonMoveAreaChanged(targetType: TargetType, targetId: string): void;\r\n}\r\n\r\nexport interface WebGroupsManager {\r\n\tinit: (factory?: any) => void;\r\n\tnotifyMoveAreaChanged(): void;\r\n\tregisterPopup(element: HTMLElement): string;\r\n\tremovePopup(element: HTMLElement): void;\r\n\tremovePopupById(elementId: string): void;\r\n\tsubscribeForWindowFocused(cb: () => any): () => void;\r\n\tunmount(): void;\r\n\texternalLibraryFactory: ExternalLibraryFactory;\r\n}\r\n\r\nexport interface Size {\r\n\twidth: number;\r\n\theight: number;\r\n}\r\n\r\nexport interface Bounds extends Size {\r\n\tleft: number;\r\n\ttop: number;\r\n}\r\n","import { Bounds, StandardButtons, TargetType, WebGroupsManager } from \"./types/internal\";\r\n\r\ndeclare const window: Window & { webGroupsManager: WebGroupsManager };\r\n\r\nclass WorkspacesManagerDecorator {\r\n public readonly skipFocusStyle = \"t42-skip-focus\";\r\n\r\n public init(glue: any, componentFactory: any) {\r\n if (window.webGroupsManager) {\r\n window.webGroupsManager.init(componentFactory);\r\n } else {\r\n throw new Error(`Could not find the webGroupsManager the groups library should be loaded as a group application`);\r\n }\r\n }\r\n\r\n public getGroupId() {\r\n return window.webGroupsManager.externalLibraryFactory.groupId;\r\n }\r\n\r\n public notifyMoveAreaChanged() {\r\n window.webGroupsManager.notifyMoveAreaChanged();\r\n }\r\n\r\n public registerPopup(element: HTMLElement): string {\r\n return window.webGroupsManager.registerPopup(element);\r\n }\r\n\r\n public removePopup(element: HTMLElement): void {\r\n return window.webGroupsManager.removePopup(element);\r\n }\r\n\r\n public removePopupById(elementId: string): void {\r\n return window.webGroupsManager.removePopupById(elementId);\r\n }\r\n\r\n public subscribeForWindowFocused(cb: () => any): () => void {\r\n return window.webGroupsManager.subscribeForWindowFocused(cb);\r\n }\r\n\r\n public unmount(): void {\r\n return window.webGroupsManager.unmount();\r\n }\r\n\r\n public requestPageFocus(): void {\r\n return window.webGroupsManager.externalLibraryFactory.focusPage();\r\n }\r\n\r\n public requestFrameFocus(frameId: string): void {\r\n return window.webGroupsManager.externalLibraryFactory.focusFrame(frameId);\r\n }\r\n\r\n public requestGroupFocus(): void {\r\n return window.webGroupsManager.externalLibraryFactory.focusGroup();\r\n }\r\n\r\n public closeFrame(targetId: string): void {\r\n window.webGroupsManager.externalLibraryFactory.onStandardButtonClick(TargetType.Frame, targetId, StandardButtons.Close);\r\n }\r\n\r\n public restoreFrame(targetId: string): void {\r\n window.webGroupsManager.externalLibraryFactory.onStandardButtonClick(TargetType.Frame, targetId, StandardButtons.Restore);\r\n }\r\n\r\n public maximizeFrame(targetId: string): void {\r\n window.webGroupsManager.externalLibraryFactory.onStandardButtonClick(TargetType.Frame, targetId, StandardButtons.Maximize);\r\n }\r\n\r\n public minimizeFrame(targetId: string): void {\r\n window.webGroupsManager.externalLibraryFactory.onStandardButtonClick(TargetType.Frame, targetId, StandardButtons.Minimize);\r\n }\r\n\r\n public extractFrame(targetId: string): void {\r\n // TODO\r\n }\r\n\r\n public closeTabBar(targetId: string): void {\r\n window.webGroupsManager.externalLibraryFactory.onStandardButtonClick(TargetType.TabBar, targetId, StandardButtons.Close);\r\n }\r\n\r\n public restoreTabBar(targetId: string): void {\r\n window.webGroupsManager.externalLibraryFactory.onStandardButtonClick(TargetType.TabBar, targetId, StandardButtons.Restore);\r\n }\r\n\r\n public maximizeTabBar(targetId: string): void {\r\n window.webGroupsManager.externalLibraryFactory.onStandardButtonClick(TargetType.TabBar, targetId, StandardButtons.Maximize);\r\n }\r\n\r\n public minimizeTabBar(targetId: string): void {\r\n window.webGroupsManager.externalLibraryFactory.onStandardButtonClick(TargetType.TabBar, targetId, StandardButtons.Minimize);\r\n }\r\n\r\n public extractTabBar(targetId: string): void {\r\n // TODO\r\n }\r\n\r\n public closeGroup(targetId: string): void {\r\n window.webGroupsManager.externalLibraryFactory.onStandardButtonClick(TargetType.Group, targetId, StandardButtons.Close);\r\n }\r\n\r\n public restoreGroup(targetId: string): void {\r\n window.webGroupsManager.externalLibraryFactory.onStandardButtonClick(TargetType.Group, targetId, StandardButtons.Restore);\r\n }\r\n\r\n public maximizeGroup(targetId: string): void {\r\n window.webGroupsManager.externalLibraryFactory.onStandardButtonClick(TargetType.Group, targetId, StandardButtons.Maximize);\r\n }\r\n\r\n public minimizeGroup(targetId: string): void {\r\n window.webGroupsManager.externalLibraryFactory.onStandardButtonClick(TargetType.Group, targetId, StandardButtons.Minimize);\r\n }\r\n\r\n public closeTab(targetId: string): void {\r\n window.webGroupsManager.externalLibraryFactory.onTabCloseButtonClick(targetId);\r\n }\r\n\r\n public onGroupMoveAreaChanged(targetId: string): void {\r\n window.webGroupsManager.externalLibraryFactory.onMoveAreaChanged(TargetType.Group, targetId);\r\n }\r\n\r\n public onTabChannelSelectorClick(targetId: string, selectorBounds: Bounds): void {\r\n window.webGroupsManager.externalLibraryFactory.onTabChannelSelectorClick(targetId, selectorBounds);\r\n }\r\n\r\n public onFrameChannelSelectorClick(targetId: string, selectorBounds: Bounds): void {\r\n window.webGroupsManager.externalLibraryFactory.onFrameChannelSelectorClick(targetId, selectorBounds);\r\n }\r\n}\r\n\r\nexport default new WorkspacesManagerDecorator();","import React from \"react\";\r\nimport { BaseButtonProps } from \"../types/internal\";\r\nimport webGroupsManager from \"../webGroupsManager\";\r\n\r\nconst BaseButton: React.FC<BaseButtonProps> = ({ outerElement, innerElement }) => {\r\n return <li {...outerElement} className={`${webGroupsManager.skipFocusStyle} ${outerElement.className}`}>\r\n <div {...innerElement}>\r\n </div>\r\n </li>\r\n}\r\n\r\nexport default BaseButton;","import React from \"react\";\r\nimport { CloseButtonProps } from \"../types/internal\";\r\nimport BaseButton from \"./BaseButton\";\r\n\r\nconst CloseButton: React.FC<CloseButtonProps> = ({ onClick, tooltip }) => {\r\n return <BaseButton\r\n innerElement={{ className: \"t42-standard-button t42-standard-button-close\" }}\r\n outerElement={{ className: \"t42-button t42-caption-bar-button t42-tab-bar-button t42-caption-bar-button-close\", title: tooltip, onClick }} />\r\n}\r\n\r\nexport default CloseButton;","/**\n * A simple guard function:\n *\n * ```js\n * Math.min(Math.max(low, value), high)\n * ```\n */\nfunction guard(low, high, value) {\n return Math.min(Math.max(low, value), high);\n}\n\nclass ColorError extends Error {\n constructor(color) {\n super(`Failed to parse color: \"${color}\"`);\n }\n\n}\n\nvar ColorError$1 = ColorError;\n\n/**\n * Parses a color into red, gree, blue, alpha parts\n *\n * @param color the input color. Can be a RGB, RBGA, HSL, HSLA, or named color\n */\n\nfunction parseToRgba(color) {\n if (typeof color !== 'string') throw new ColorError$1(color);\n if (color.trim().toLowerCase() === 'transparent') return [0, 0, 0, 0];\n let normalizedColor = color.trim();\n normalizedColor = namedColorRegex.test(color) ? nameToHex(color) : color;\n const reducedHexMatch = reducedHexRegex.exec(normalizedColor);\n\n if (reducedHexMatch) {\n const arr = Array.from(reducedHexMatch).slice(1);\n return [...arr.slice(0, 3).map(x => parseInt(r(x, 2), 16)), parseInt(r(arr[3] || 'f', 2), 16) / 255];\n }\n\n const hexMatch = hexRegex.exec(normalizedColor);\n\n if (hexMatch) {\n const arr = Array.from(hexMatch).slice(1);\n return [...arr.slice(0, 3).map(x => parseInt(x, 16)), parseInt(arr[3] || 'ff', 16) / 255];\n }\n\n const rgbaMatch = rgbaRegex.exec(normalizedColor);\n\n if (rgbaMatch) {\n const arr = Array.from(rgbaMatch).slice(1);\n return [...arr.slice(0, 3).map(x => parseInt(x, 10)), parseFloat(arr[3] || '1')];\n }\n\n const hslaMatch = hslaRegex.exec(normalizedColor);\n\n if (hslaMatch) {\n const [h, s, l, a] = Array.from(hslaMatch).slice(1).map(parseFloat);\n if (guard(0, 100, s) !== s) throw new ColorError$1(color);\n if (guard(0, 100, l) !== l) throw new ColorError$1(color);\n return [...hslToRgb(h, s, l), a || 1];\n }\n\n throw new ColorError$1(color);\n}\n\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n\n while (i) {\n hash = hash * 33 ^ str.charCodeAt(--i);\n }\n /* JavaScript does bitwise operations (like XOR, above) on 32-bit signed\n * integers. Since we want the results to be always positive, convert the\n * signed int to an unsigned by doing an unsigned bitshift. */\n\n\n return (hash >>> 0) % 2341;\n}\n\nconst colorToInt = x => parseInt(x.replace(/_/g, ''), 36);\n\nconst compressedColorMap = '1q29ehhb 1n09sgk7 1kl1ekf_ _yl4zsno 16z9eiv3 1p29lhp8 _bd9zg04 17u0____ _iw9zhe5 _to73___ _r45e31e _7l6g016 _jh8ouiv _zn3qba8 1jy4zshs 11u87k0u 1ro9yvyo 1aj3xael 1gz9zjz0 _3w8l4xo 1bf1ekf_ _ke3v___ _4rrkb__ 13j776yz _646mbhl _nrjr4__ _le6mbhl 1n37ehkb _m75f91n _qj3bzfz 1939yygw 11i5z6x8 _1k5f8xs 1509441m 15t5lwgf _ae2th1n _tg1ugcv 1lp1ugcv 16e14up_ _h55rw7n _ny9yavn _7a11xb_ 1ih442g9 _pv442g9 1mv16xof 14e6y7tu 1oo9zkds 17d1cisi _4v9y70f _y98m8kc 1019pq0v 12o9zda8 _348j4f4 1et50i2o _8epa8__ _ts6senj 1o350i2o 1mi9eiuo 1259yrp0 1ln80gnw _632xcoy 1cn9zldc _f29edu4 1n490c8q _9f9ziet 1b94vk74 _m49zkct 1kz6s73a 1eu9dtog _q58s1rz 1dy9sjiq __u89jo3 _aj5nkwg _ld89jo3 13h9z6wx _qa9z2ii _l119xgq _bs5arju 1hj4nwk9 1qt4nwk9 1ge6wau6 14j9zlcw 11p1edc_ _ms1zcxe _439shk6 _jt9y70f _754zsow 1la40eju _oq5p___ _x279qkz 1fa5r3rv _yd2d9ip _424tcku _8y1di2_ _zi2uabw _yy7rn9h 12yz980_ __39ljp6 1b59zg0x _n39zfzp 1fy9zest _b33k___ _hp9wq92 1il50hz4 _io472ub _lj9z3eo 19z9ykg0 _8t8iu3a 12b9bl4a 1ak5yw0o _896v4ku _tb8k8lv _s59zi6t _c09ze0p 1lg80oqn 1id9z8wb _238nba5 1kq6wgdi _154zssg _tn3zk49 _da9y6tc 1sg7cv4f _r12jvtt 1gq5fmkz 1cs9rvci _lp9jn1c _xw1tdnb 13f9zje6 16f6973h _vo7ir40 _bt5arjf _rc45e4t _hr4e100 10v4e100 _hc9zke2 _w91egv_ _sj2r1kk 13c87yx8 _vqpds__ _ni8ggk8 _tj9yqfb 1ia2j4r4 _7x9b10u 1fc9ld4j 1eq9zldr _5j9lhpx _ez9zl6o _md61fzm'.split(' ').reduce((acc, next) => {\n const key = colorToInt(next.substring(0, 3));\n const hex = colorToInt(next.substring(3)).toString(16); // NOTE: padStart could be used here but it breaks Node 6 compat\n // https://github.com/ricokahler/color2k/issues/351\n\n let prefix = '';\n\n for (let i = 0; i < 6 - hex.length; i++) {\n prefix += '0';\n }\n\n acc[key] = `${prefix}${hex}`;\n return acc;\n}, {});\n/**\n * Checks if a string is a CSS named color and returns its equivalent hex value, otherwise returns the original color.\n */\n\nfunction nameToHex(color) {\n const normalizedColorName = color.toLowerCase().trim();\n const result = compressedColorMap[hash(normalizedColorName)];\n if (!result) throw new ColorError$1(color);\n return `#${result}`;\n}\n\nconst r = (str, amount) => Array.from(Array(amount)).map(() => str).join('');\n\nconst reducedHexRegex = new RegExp(`^#${r('([a-f0-9])', 3)}([a-f0-9])?$`, 'i');\nconst hexRegex = new RegExp(`^#${r('([a-f0-9]{2})', 3)}([a-f0-9]{2})?$`, 'i');\nconst rgbaRegex = new RegExp(`^rgba?\\\\(\\\\s*(\\\\d+)\\\\s*${r(',\\\\s*(\\\\d+)\\\\s*', 2)}(?:,\\\\s*([\\\\d.]+))?\\\\s*\\\\)$`, 'i');\nconst hslaRegex = /^hsla?\\(\\s*([\\d.]+)\\s*,\\s*([\\d.]+)%\\s*,\\s*([\\d.]+)%(?:\\s*,\\s*([\\d.]+))?\\s*\\)$/i;\nconst namedColorRegex = /^[a-z]+$/i;\n\nconst roundColor = color => {\n return Math.round(color * 255);\n};\n\nconst hslToRgb = (hue, saturation, lightness) => {\n let l = lightness / 100;\n\n if (saturation === 0) {\n // achromatic\n return [l, l, l].map(roundColor);\n } // formulae from https://en.wikipedia.org/wiki/HSL_and_HSV\n\n\n const huePrime = (hue % 360 + 360) % 360 / 60;\n const chroma = (1 - Math.abs(2 * l - 1)) * (saturation / 100);\n const secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));\n let red = 0;\n let green = 0;\n let blue = 0;\n\n if (huePrime >= 0 && huePrime < 1) {\n red = chroma;\n green = secondComponent;\n } else if (huePrime >= 1 && huePrime < 2) {\n red = secondComponent;\n green = chroma;\n } else if (huePrime >= 2 && huePrime < 3) {\n green = chroma;\n blue = secondComponent;\n } else if (huePrime >= 3 && huePrime < 4) {\n green = secondComponent;\n blue = chroma;\n } else if (huePrime >= 4 && huePrime < 5) {\n red = secondComponent;\n blue = chroma;\n } else if (huePrime >= 5 && huePrime < 6) {\n red = chroma;\n blue = secondComponent;\n }\n\n const lightnessModification = l - chroma / 2;\n const finalRed = red + lightnessModification;\n const finalGreen = green + lightnessModification;\n const finalBlue = blue + lightnessModification;\n return [finalRed, finalGreen, finalBlue].map(roundColor);\n};\n\n// taken from:\n/**\n * Parses a color in hue, saturation, lightness, and the alpha channel.\n *\n * Hue is a number between 0 and 360, saturation, lightness, and alpha are\n * decimal percentages between 0 and 1\n */\n\nfunction parseToHsla(color) {\n const [red, green, blue, alpha] = parseToRgba(color).map((value, index) => // 3rd index is alpha channel which is already normalized\n index === 3 ? value : value / 255);\n const max = Math.max(red, green, blue);\n const min = Math.min(red, green, blue);\n const lightness = (max + min) / 2; // achromatic\n\n if (max === min) return [0, 0, lightness, alpha];\n const delta = max - min;\n const saturation = lightness > 0.5 ? delta / (2 - max - min) : delta / (max + min);\n const hue = 60 * (red === max ? (green - blue) / delta + (green < blue ? 6 : 0) : green === max ? (blue - red) / delta + 2 : (red - green) / delta + 4);\n return [hue, saturation, lightness, alpha];\n}\n\n/**\n * Takes in hsla parts and constructs an hsla string\n *\n * @param hue The color circle (from 0 to 360) - 0 (or 360) is red, 120 is green, 240 is blue\n * @param saturation Percentage of saturation, given as a decimal between 0 and 1\n * @param lightness Percentage of lightness, given as a decimal between 0 and 1\n * @param alpha Percentage of opacity, given as a decimal between 0 and 1\n */\n\nfunction hsla(hue, saturation, lightness, alpha) {\n return `hsla(${(hue % 360).toFixed()}, ${guard(0, 100, saturation * 100).toFixed()}%, ${guard(0, 100, lightness * 100).toFixed()}%, ${parseFloat(guard(0, 1, alpha).toFixed(3))})`;\n}\n\n/**\n * Adjusts the current hue of the color by the given degrees. Wraps around when\n * over 360.\n *\n * @param color input color\n * @param degrees degrees to adjust the input color, accepts degree integers\n * (0 - 360) and wraps around on overflow\n */\n\nfunction adjustHue(color, degrees) {\n const [h, s, l, a] = parseToHsla(color);\n return hsla(h + degrees, s, l, a);\n}\n\n/**\n * Darkens using lightness. This is equivalent to subtracting the lightness\n * from the L in HSL.\n *\n * @param amount The amount to darken, given as a decimal between 0 and 1\n */\n\nfunction darken(color, amount) {\n const [hue, saturation, lightness, alpha] = parseToHsla(color);\n return hsla(hue, saturation, lightness - amount, alpha);\n}\n\n/**\n * Desaturates the input color by the given amount via subtracting from the `s`\n * in `hsla`.\n *\n * @param amount The amount to desaturate, given as a decimal between 0 and 1\n */\n\nfunction desaturate(color, amount) {\n const [h, s, l, a] = parseToHsla(color);\n return hsla(h, s - amount, l, a);\n}\n\n// https://github.com/styled-components/polished/blob/0764c982551b487469043acb56281b0358b3107b/src/color/getLuminance.js\n\n/**\n * Returns a number (float) representing the luminance of a color.\n */\n\nfunction getLuminance(color) {\n if (color === 'transparent') return 0;\n\n function f(x) {\n const channel = x / 255;\n return channel <= 0.03928 ? channel / 12.92 : Math.pow((channel + 0.055) / 1.055, 2.4);\n }\n\n const [r, g, b] = parseToRgba(color);\n return 0.2126 * f(r) + 0.7152 * f(g) + 0.0722 * f(b);\n}\n\n// taken from:\n/**\n * Returns the contrast ratio between two colors based on\n * [W3's recommended equation for calculating contrast](http://www.w3.org/TR/WCAG20/#contrast-ratiodef).\n */\n\nfunction getContrast(color1, color2) {\n const luminance1 = getLuminance(color1);\n const luminance2 = getLuminance(color2);\n return luminance1 > luminance2 ? (luminance1 + 0.05) / (luminance2 + 0.05) : (luminance2 + 0.05) / (luminance1 + 0.05);\n}\n\n/**\n * Takes in rgba parts and returns an rgba string\n *\n * @param red The amount of red in the red channel, given in a number between 0 and 255 inclusive\n * @param green The amount of green in the red channel, given in a number between 0 and 255 inclusive\n * @param blue The amount of blue in the red channel, given in a number between 0 and 255 inclusive\n * @param alpha Percentage of opacity, given as a decimal between 0 and 1\n */\n\nfunction rgba(red, green, blue, alpha) {\n return `rgba(${guard(0, 255, red).toFixed()}, ${guard(0, 255, green).toFixed()}, ${guard(0, 255, blue).toFixed()}, ${parseFloat(guard(0, 1, alpha).toFixed(3))})`;\n}\n\n/**\n * Mixes two colors together. Taken from sass's implementation.\n */\n\nfunction mix(color1, color2, weight) {\n const normalize = (n, index) => // 3rd index is alpha channel which is already normalized\n index === 3 ? n : n / 255;\n\n const [r1, g1, b1, a1] = parseToRgba(color1).map(normalize);\n const [r2, g2, b2, a2] = parseToRgba(color2).map(normalize); // The formula is copied from the original Sass implementation:\n // http://sass-lang.com/documentation/Sass/Script/Functions.html#mix-instance_method\n\n const alphaDelta = a2 - a1;\n const normalizedWeight = weight * 2 - 1;\n const combinedWeight = normalizedWeight * alphaDelta === -1 ? normalizedWeight : normalizedWeight + alphaDelta / (1 + normalizedWeight * alphaDelta);\n const weight2 = (combinedWeight + 1) / 2;\n const weight1 = 1 - weight2;\n const r = (r1 * weight1 + r2 * weight2) * 255;\n const g = (g1 * weight1 + g2 * weight2) * 255;\n const b = (b1 * weight1 + b2 * weight2) * 255;\n const a = a2 * weight + a1 * (1 - weight);\n return rgba(r, g, b, a);\n}\n\n/**\n * Given a series colors, this function will return a `scale(x)` function that\n * accepts a percentage as a decimal between 0 and 1 and returns the color at\n * that percentage in the scale.\n *\n * ```js\n * const scale = getScale('red', 'yellow', 'green');\n * console.log(scale(0)); // rgba(255, 0, 0, 1)\n * console.log(scale(0.5)); // rgba(255, 255, 0, 1)\n * console.log(scale(1)); // rgba(0, 128, 0, 1)\n * ```\n *\n * If you'd like to limit the domain and range like chroma-js, we recommend\n * wrapping scale again.\n *\n * ```js\n * const _scale = getScale('red', 'yellow', 'green');\n * const scale = x => _scale(x / 100);\n *\n * console.log(scale(0)); // rgba(255, 0, 0, 1)\n * console.log(scale(50)); // rgba(255, 255, 0, 1)\n * console.log(scale(100)); // rgba(0, 128, 0, 1)\n * ```\n */\n\nfunction getScale(...colors) {\n return n => {\n const lastIndex = colors.length - 1;\n const lowIndex = guard(0, lastIndex, Math.floor(n * lastIndex));\n const highIndex = guard(0, lastIndex, Math.ceil(n * lastIndex));\n const color1 = colors[lowIndex];\n const color2 = colors[highIndex];\n const unit = 1 / lastIndex;\n const weight = (n - unit * lowIndex) / unit;\n return mix(color1, color2, weight);\n };\n}\n\nconst guidelines = {\n decorative: 1.5,\n readable: 3,\n aa: 4.5,\n aaa: 7\n};\n/**\n * Returns whether or not a color has bad contrast against a background\n * according to a given standard.\n */\n\nfunction hasBadContrast(color, standard = 'aa', background = '#fff') {\n return getContrast(color, background) < guidelines[standard];\n}\n\n/**\n * Lightens a color by a given amount. This is equivalent to\n * `darken(color, -amount)`\n *\n * @param amount The amount to darken, given as a decimal between 0 and 1\n */\n\nfunction lighten(color, amount) {\n return darken(color, -amount);\n}\n\n/**\n * Takes in a color and makes it more transparent by convert to `rgba` and\n * decreasing the amount in the alpha channel.\n *\n * @param amount The amount to increase the transparency by, given as a decimal between 0 and 1\n */\n\nfunction transparentize(color, amount) {\n const [r, g, b, a] = parseToRgba(color);\n return rgba(r, g, b, a - amount);\n}\n\n/**\n * Takes a color and un-transparentizes it. Equivalent to\n * `transparentize(color, -amount)`\n *\n * @param amount The amount to increase the opacity by, given as a decimal between 0 and 1\n */\n\nfunction opacify(color, amount) {\n return transparentize(color, -amount);\n}\n\n/**\n * An alternative function to `readableColor`. Returns whether or not the \n * readable color (i.e. the color to be place on top the input color) should be\n * black.\n */\n\nfunction readableColorIsBlack(color) {\n return getLuminance(color) > 0.179;\n}\n\n/**\n * Returns black or white for best contrast depending on the luminosity of the\n * given color.\n */\n\nfunction readableColor(color) {\n return readableColorIsBlack(color) ? '#000' : '#fff';\n}\n\n/**\n * Saturates a color by converting it to `hsl` and increasing the saturation\n * amount. Equivalent to `desaturate(color, -amount)`\n * \n * @param color Input color\n * @param amount The amount to darken, given as a decimal between 0 and 1\n */\n\nfunction saturate(color, amount) {\n return desaturate(color, -amount);\n}\n\n/**\n * Takes in any color and returns it as a hex code.\n */\n\nfunction toHex(color) {\n const [r, g, b, a] = parseToRgba(color);\n\n let hex = x => {\n const h = guard(0, 255, x).toString(16); // NOTE: padStart could be used here but it breaks Node 6 compat\n // https://github.com/ricokahler/color2k/issues/351\n\n return h.length === 1 ? `0${h}` : h;\n };\n\n return `#${hex(r)}${hex(g)}${hex(b)}${a < 1 ? hex(Math.round(a * 255)) : ''}`;\n}\n\n/**\n * Takes in any color and returns it as an rgba string.\n */\n\nfunction toRgba(color) {\n return rgba(...parseToRgba(color));\n}\n\n/**\n * Takes in any color and returns it as an hsla string.\n */\n\nfunction toHsla(color) {\n return hsla(...parseToHsla(color));\n}\n\nexport { ColorError$1 as ColorError, adjustHue, darken, desaturate, getContrast, getLuminance, getScale, guard, hasBadContrast, hsla, lighten, mix, opacify, parseToHsla, parseToRgba, readableColor, readableColorIsBlack, rgba, saturate, toHex, toHsla, toRgba, transparentize };\n//# sourceMappingURL=index.module.es.js.map\n","import React, { useEffect, useRef } from \"react\";\r\nimport { BaseChannelSelectorProps } from \"../../types/internal\";\r\nimport { IsBlackReadable } from \"./utils\";\r\n\r\nconst BaseChannelSelector: React.FC<BaseChannelSelectorProps> = ({ outsideClass, contentClass, showSelector, selectedChannel, selectedChannelColor }) => {\r\n const ref = useRef<HTMLDivElement>(null);\r\n const wrappedOnClick = () => {\r\n if (!ref.current) {\r\n return;\r\n }\r\n const bounds = ref.current.getBoundingClientRect();\r\n showSelector({\r\n left: bounds.left,\r\n top: bounds.top,\r\n width: bounds.width,\r\n height: bounds.height,\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n ref.current?.addEventListener(\"mousedown\", (e) => {\r\n e.stopPropagation();\r\n });\r\n }, [ref]);\r\n\r\n let className = contentClass;\r\n\r\n if (selectedChannel && selectedChannelColor) {\r\n className = `${contentClass} ${IsBlackReadable(selectedChannelColor) ? \"t42-channel-selector-content-dark\" : \"t42-channel-selector-content-light\"}`;\r\n }\r\n\r\n const style = {\r\n background: selectedChannelColor\r\n };\r\n\r\n return <div title={selectedChannel ?? \"\"} ref={ref}\r\n style={style}\r\n onClick={wrappedOnClick} className={`t42-buttons ${outsideClass}`} >\r\n <div className={className}>\r\n </div>\r\n </div >\r\n};\r\n\r\nexport default BaseChannelSelector;","import { parseToRgba, readableColorIsBlack } from \"color2k\";\r\n\r\nexport function IsBlackReadable(color: string) {\r\n try {\r\n const rgba = parseToRgba(color);\r\n const r = rgba[0];\r\n const g = rgba[1];\r\n const b = rgba[2];\r\n const displayGamma = 2.2;\r\n const backgroundWeight =\r\n 0.2126 * Math.pow(r / 255.0, displayGamma) +\r\n 0.7152 * Math.pow(g / 255.0, displayGamma) +\r\n 0.0722 * Math.pow(b / 255.0, displayGamma);\r\n return backgroundWeight > Math.pow(0.5, displayGamma);\r\n } catch {\r\n // Fallback to other implementation\r\n }\r\n\r\n try {\r\n return readableColorIsBlack(color);\r\n } catch (error) {\r\n // tslint:disable-next-line: no-console\r\n console.error(`Error while checking readable color for '${color}'`, error);\r\n }\r\n return false;\r\n}","import React from \"react\";\r\nimport { FrameChannelSelectorProps } from \"../../types/internal\";\r\nimport BaseChannelSelector from \"./BaseChannelSelector\";\r\n\r\nconst FrameChannelSelector: React.FC<FrameChannelSelectorProps> = ({ showSelector, selectedChannel, selectedChannelColor }) => {\r\n return <BaseChannelSelector outsideClass={\"t42-frame-caption-bar-element t42-frame-channel-selector\"}\r\n contentClass={\"t42-frame-channel-selector-content\"}\r\n showSelector={showSelector}\r\n selectedChannel={selectedChannel}\r\n selectedChannelColor={selectedChannelColor}\r\n />\r\n};\r\n\r\nexport default FrameChannelSelector;","import React from \"react\";\r\nimport { MinimizeButtonProps } from \"../types/internal\";\r\nimport BaseButton from \"./BaseButton\";\r\n\r\nconst ExtractButton: React.FC<MinimizeButtonProps> = ({ onClick, tooltip }) => {\r\n return <BaseButton\r\n innerElement={{ className: \"t42-standard-button t42-standard-button-extract\" }}\r\n outerElement={{ className: \"t42-button t42-caption-bar-button t42-tab-bar-button t42-caption-bar-button-extract\", title: tooltip, onClick }} />\r\n}\r\n\r\nexport default ExtractButton;","import React from \"react\";\r\nimport { MaximizeButtonProps } from \"../types/internal\";\r\nimport BaseButton from \"./BaseButton\";\r\n\r\nconst MaximizeButton: React.FC<MaximizeButtonProps> = ({ tooltip, onClick }) => {\r\n return <BaseButton\r\n innerElement={{ className: \"t42-standard-button t42-standard-button-maximize\" }}\r\n outerElement={{ className: \"t42-button t42-caption-bar-button t42-tab-bar-button t42-caption-bar-button-maximize\", title: tooltip, onClick }} />\r\n}\r\n\r\nexport default MaximizeButton;","import React from \"react\";\r\nimport { MinimizeButtonProps } from \"../types/internal\";\r\nimport BaseButton from \"./BaseButton\";\r\n\r\nconst MinimizeButton: React.FC<MinimizeButtonProps> = ({ onClick, tooltip }) => {\r\n return <BaseButton\r\n innerElement={{ className: \"t42-standard-button t42-standard-button-minimize\" }}\r\n outerElement={{ className: \"t42-button t42-caption-bar-button t42-tab-bar-button t42-caption-bar-button-minimize\", title: tooltip, onClick }} />\r\n}\r\n\r\nexport default MinimizeButton;","import React from \"react\";\r\nimport { RestoreButtonProps } from \"../types/internal\";\r\nimport BaseButton from \"./BaseButton\";\r\n\r\nconst RestoreButton: React.FC<RestoreButtonProps> = ({ tooltip, onClick }) => {\r\n return <BaseButton\r\n innerElement={{ className: \"t42-standard-button t42-standard-button-restore\" }}\r\n outerElement={{ className: \"t42-button t42-caption-bar-button t42-tab-bar-button t42-caption-bar-button-restore\", title: tooltip, onClick }} />\r\n}\r\n\r\nexport default RestoreButton;","import React from \"react\";\r\nimport { FrameButtonsProps } from \"../../types/internal\";\r\nimport CloseButton from \"../CloseButton\";\r\nimport ExtractButton from \"../ExtractButton\";\r\nimport MaximizeButton from \"../MaximizeButton\";\r\nimport MinimizeButton from \"../MinimizeButton\";\r\nimport RestoreButton from \"../RestoreButton\";\r\n\r\nconst FrameButtons: React.FC<FrameButtonsProps> = ({ extract, minimize, maximize, restore, close }) => {\r\n return <div className=\"t42-buttons-container t42-frame-caption-bar-element\">\r\n <ul className=\"t42-buttons t42-frame-caption-bar-element\">\r\n {extract?.visible && <ExtractButton {...extract} />}\r\n {minimize?.visible && <MinimizeButton {...minimize} />}\r\n {maximize?.visible && <MaximizeButton {...maximize} />}\r\n {restore?.visible && <RestoreButton {...restore} />}\r\n {close?.visible && <CloseButton {...close} />}\r\n </ul>\r\n </div>\r\n}\r\n\r\nexport default FrameButtons;","import React from \"react\";\r\nimport { FrameCaptionProps } from \"../../types/internal\";\r\n\r\nconst FrameCaption: React.FC<FrameCaptionProps> = ({ caption }) => {\r\n return <div className=\"t42-caption t42-title t42-frame-caption-bar-element\">\r\n {caption}\r\n </div>\r\n}\r\n\r\n\r\nexport default FrameCaption;","import React from \"react\";\r\nimport { FrameMoveAreaProps } from \"../../types/internal\";\r\n\r\nconst FrameMoveArea: React.FC<FrameMoveAreaProps> = ({ children, moveAreaId }) => {\r\n return <div id={moveAreaId} className=\"t42-move-area t42-frame-caption-bar-element\">\r\n {children}\r\n </div>\r\n}\r\n\r\n\r\nexport default FrameMoveArea;","import React from \"react\";\r\nimport { FrameCaptionBarProps } from \"../../types/internal\";\r\nimport FrameChannelSelector from \"../channelSelector/FrameChannelSelector\";\r\nimport FrameButtons from \"./FrameButtons\";\r\nimport FrameCaption from \"./FrameCaption\";\r\nimport FrameMoveArea from \"./FrameMoveArea\";\r\n\r\nconst FrameCaptionBar: React.FC<FrameCaptionBarProps> = ({ moveAreaId, caption, close, maximize, restore, minimize, extract, channels }) => {\r\n return (\r\n <div className=\"t42-react-caption-bar\">\r\n {channels?.visible && <FrameChannelSelector\r\n showSelector={channels?.showSelector}\r\n selectedChannel={channels?.selectedChannel}\r\n selectedChannelColor={channels?.selectedChannelColor} />}\r\n <FrameMoveArea moveAreaId={moveAreaId}>\r\n <FrameCaption caption={caption} />\r\n </FrameMoveArea>\r\n <FrameButtons extract={extract} minimize={minimize} maximize={maximize} restore={restore} close={close} />\r\n </div>);\r\n};\r\n\r\nexport default FrameCaptionBar;","import React from \"react\";\r\nimport { GroupMoveAreaProps } from \"../../types/internal\";\r\n\r\nconst GroupMoveArea: React.FC<GroupMoveAreaProps> = ({ children, moveAreaId }) => {\r\n return <div id={moveAreaId} className=\"t42-move-area t42-group-caption-bar-element\">\r\n {children}\r\n </div>\r\n}\r\n\r\nexport default GroupMoveArea;","import React from \"react\";\r\nimport { GroupButtonsProps } from \"../../types/internal\";\r\nimport CloseButton from \"../CloseButton\";\r\nimport MaximizeButton from \"../MaximizeButton\";\r\nimport MinimizeButton from \"../MinimizeButton\";\r\nimport RestoreButton from \"../RestoreButton\";\r\n\r\nconst GroupButtons: React.FC<GroupButtonsProps> = ({ minimize, restore, maximize, close }) => {\r\n return <div className=\"t42-buttons-container t42-group-caption-bar-element\">\r\n <ul className=\"t42-buttons t42-group-caption-bar-element\">\r\n {minimize?.visible && <MinimizeButton {...minimize} />}\r\n {restore?.visible && <RestoreButton {...restore} />}\r\n {maximize?.visible && <MaximizeButton {...maximize} />}\r\n {close?.visible && <CloseButton {...close} />}\r\n </ul>\r\n </div>\r\n}\r\n\r\nexport default GroupButtons;","import React from \"react\";\r\nimport { GroupCaptionProps } from \"../../types/internal\";\r\n\r\nconst GroupCaption: React.FC<GroupCaptionProps> = ({ caption }) => {\r\n return <div className=\"t42-caption t42-title t42-group-caption-bar-element\">{caption}</div>\r\n}\r\n\r\nexport default GroupCaption;","import React from \"react\";\r\nimport { GroupCaptionBarProps } from \"../../types/internal\";\r\nimport GroupMoveArea from \"./GroupMoveArea\";\r\nimport GroupButtons from \"./GroupButtons\";\r\nimport GroupCaption from \"./GroupCaption\";\r\n\r\nconst GroupCaptionBar: React.FC<GroupCaptionBarProps> = ({ moveAreaId, targetType, targetId, caption, ...rest }) => {\r\n return <div className=\"t42-react-caption-bar\">\r\n <GroupMoveArea moveAreaId={moveAreaId}>\r\n <GroupCaption caption={caption}/>\r\n </GroupMoveArea>\r\n <GroupButtons {...rest} />\r\n </div>\r\n}\r\n\r\nexport default GroupCaptionBar;","import React from \"react\";\r\nimport { TabChannelSelectorProps } from \"../../types/internal\";\r\nimport BaseChannelSelector from \"./BaseChannelSelector\";\r\n\r\nconst TabChannelSelector: React.FC<TabChannelSelectorProps> = ({ showSelector, selectedChannel, selectedChannelColor }) => {\r\n return <BaseChannelSelector outsideClass={\"t42-tab-bar-element t42-tab-channel-selector\"}\r\n contentClass={\"t42-tab-channel-selector-content\"}\r\n showSelector={showSelector}\r\n selectedChannel={selectedChannel}\r\n selectedChannelColor={selectedChannelColor}\r\n />\r\n};\r\n\r\nexport default TabChannelSelector;","import React from \"react\";\r\nimport { TabCaptionProps } from \"../types/internal\";\r\n\r\nconst TabCaption: React.FC<TabCaptionProps> = ({ caption, selected }) => {\r\n const normalClassName = \"t42-caption t42-tab-caption\";\r\n const selectedClassName = \"t42-caption t42-tab-caption t42-selected-tab-caption\";\r\n\r\n return <div className={selected ? selectedClassName : normalClassName}>{caption}</div>\r\n}\r\n\r\nexport default TabCaption;","import React, { useEffect, useRef } from \"react\";\r\nimport { TabCloseButtonProps } from \"../types/internal\";\r\n\r\nconst TabCloseButton: React.FC<TabCloseButtonProps> = ({ selected, close }) => {\r\n const normalClassName = \"t42-tab-close-button t42-tab-bar-element\";\r\n const selectedClassName = \"t42-tab-close-button t42-tab-bar-element t42-selected-tab-close-button t42-selected-tab-element\";\r\n\r\n const normalContentClassName = \"t42-tab-close-button-content\";\r\n const selectedContentClassName = \"t42-tab-close-button-content t42-selected-tab-close-button-content\";\r\n\r\n const ref = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n ref.current?.addEventListener(\"mousedown\", (e) => {\r\n e.stopPropagation();\r\n });\r\n }, [ref]);\r\n\r\n return <div ref={ref} onClick={close} className={selected ? selectedClassName : normalClassName} title=\"close\">\r\n <div className={selected ? selectedContentClassName : normalContentClassName}>\r\n </div>\r\n </div>\r\n}\r\n\r\nexport default TabCloseButton;","import React from \"react\";\r\nimport { TabElementProps } from \"../types/internal\";\r\nimport TabChannelSelector from \"./channelSelector/TabChannelSelector\";\r\nimport TabCaption from \"./TabCaption\";\r\nimport TabCloseButton from \"./TabCloseButton\";\r\n\r\nconst Tab: React.FC<TabElementProps> = ({ caption, selected, close, channels }) => {\r\n return <div className=\"t42-react-tab\">\r\n {channels.visible && <TabChannelSelector showSelector={channels.showSelector} selectedChannel={channels.selectedChannel} selectedChannelColor={channels?.selectedChannelColor} />}\r\n <TabCaption caption={caption} selected={selected} />\r\n <TabCloseButton selected={selected} close={close} />\r\n </div>\r\n};\r\n\r\nexport default Tab;","import React from \"react\";\r\nimport { TabHeaderButtonsProps } from \"../types/internal\";\r\nimport CloseButton from \"./CloseButton\";\r\nimport ExtractButton from \"./ExtractButton\";\r\nimport MaximizeButton from \"./MaximizeButton\";\r\nimport MinimizeButton from \"./MinimizeButton\";\r\nimport RestoreButton from \"./RestoreButton\";\r\n\r\nconst TabHeaderButtons: React.FC<TabHeaderButtonsProps> = ({ extract, minimize, maximize, restore, close }) => {\r\n return <div className=\"t42-buttons-container t42-tab-bar-element\">\r\n <ul className=\"t42-buttons t42-tab-bar-element\">\r\n {extract?.visible && <ExtractButton {...extract} />}\r\n {minimize?.visible && <MinimizeButton {...minimize} />}\r\n {restore?.visible && <RestoreButton {...restore} />}\r\n {maximize?.visible && <MaximizeButton {...maximize} />}\r\n {close?.visible && <CloseButton {...close} />}\r\n </ul>\r\n </div>\r\n};\r\n\r\n\r\nexport default TabHeaderButtons;","import React from \"react\";\r\nimport { GroupWrapperProps } from \"./types/internal\";\r\nimport webGroupsManager from \"./webGroupsManager\";\r\n\r\n\r\nclass GroupWrapper extends React.Component<GroupWrapperProps> {\r\n containerRef: HTMLElement | null;\r\n\r\n componentDidMount() {\r\n const componentFactory = {\r\n createGroupCaptionBar: this.props.onCreateGroupCaptionBarRequested,\r\n updateGroupCaptionBar: this.props.onUpdateGroupCaptionBarRequested,\r\n createGroupOverlay: this.props.onCreateGroupOverlayRequested,\r\n\r\n createFrameCaptionBar: this.props.onCreateFrameCaptionBarRequested,\r\n updateFrameCaptionBar: this.props.onUpdateFrameCaptionBarRequested,\r\n createFrameWindowOverlay: this.props.onCreateFrameWindowOverlayRequested,\r\n updateFrameWindowOverlay: this.props.onUpdateFrameWindowOverlayRequested,\r\n createBelowWindow: this.props.onCreateBelowWindowRequested,\r\n destroyBelowWindow: this.props.onRemoveBelowWindowRequested,\r\n\r\n createAboveTabs: this.props.onCreateAboveTabsRequested,\r\n updateAboveTabs: this.props.onUpdateAboveTabsRequested,\r\n createBeforeTabs: this.props.onCreateBeforeTabsComponentRequested,\r\n updateBeforeTabs: this.props.onUpdateBeforeTabsComponentRequested,\r\n\r\n createTab: this.props.onCreateTabRequested,\r\n updateTab: this.props.onUpdateTabRequested,\r\n\r\n createAfterTabs: this.props.onCreateAfterTabsComponentRequested,\r\n updateAfterTabs: this.props.onUpdateAfterTabsComponentRequested,\r\n createTabBarButtonsContainerElement: this.props.onCreateTabHeaderButtonsRequested,\r\n createBelowTabs: this.props.onCreateBelowTabsRequested,\r\n updateBelowTabs: this.props.onUpdateBelowTabsRequested,\r\n\r\n updateFrame: this.props.onUpdateFrameRequested,\r\n updateStandardButton: this.props.onUpdateStandardButtonRequested,\r\n\r\n destroyFrameCaptionBar: this.props.onRemoveFrameCaptionBarRequested, // needed to prevent a memory leak\r\n destroyFrameWindowOverlay: this.props.onRemoveFrameWindowOverlayRequested,\r\n\r\n destroyAboveTabs: this.props.onRemoveAboveTabsRequested,\r\n destroyBeforeTabs: this.props.onRemoveBeforeTabsComponentRequested,\r\n destroyTab: this.props.onRemoveTabRequested,\r\n destroyAfterTabs: this.props.onRemoveAfterTabsComponentRequested,\r\n destroyTabBarButtonsContainerElement: this.props.onRemoveTabHeaderButtonsRequested,\r\n destroyBelowTabs: this.props.onRemoveBelowTabsRequested\r\n };\r\n\r\n webGroupsManager.init(undefined, componentFactory);\r\n }\r\n\r\n componentWillUnmount() {\r\n // TODO\r\n }\r\n\r\n render() {\r\n return (\r\n <div id=\"t42-group-container\" ref={(r) => this.containerRef = r}>\r\n <div id=\"t42-frames-container\">\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default GroupWrapper;","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { PortalProps } from \"./types/internal\";\r\n\r\nclass Portal extends React.Component<PortalProps> {\r\n render() {\r\n return ReactDOM.createPortal(this.props.children, this.props.parentElement);\r\n }\r\n}\r\n\r\nexport default Portal;","import React from \"react\";\r\nimport GroupWrapper from \"./GroupWrapper\";\r\nimport Portal from \"./Portal\";\r\nimport { GroupProps, ElementCreationWrapperState, CreateGroupCaptionBarRequestOptions, CreateFrameCaptionBarRequestOptions, CreateTabRequestOptions, RemoveRequestOptions, UpdateGroupCaptionBarRequestOptions, UpdateFrameCaptionBarRequestOptions, CreateTabHeaderButtonsOptions, UpdateStandardButtonRequestOptions, TargetType, Bounds, ChannelProps, CreateElementRequestOptions, CreateFrameElementRequestOptions, UpdateFrameRequestionOptions as UpdateFrameRequestOptions } from \"./types/internal\";\r\nimport webGroupsManager from \"./webGroupsManager\";\r\n\r\nclass GroupElementCreationWrapper extends React.Component<GroupProps, ElementCreationWrapperState> {\r\n constructor(props: GroupProps) {\r\n super(props);\r\n this.state = {\r\n groupCaptionBar: undefined,\r\n groupOverlay: undefined,\r\n frameCaptionBars: {}, // dict frameId to create caption bar options\r\n frameWindowOverlays: {}, // dict frameId to create options\r\n belowWindowZones: {}, // dict frameId to create options\r\n aboveTabsZones: {}, // dict frameId to create options\r\n beforeTabsZones: {}, // dict frameId to create before tabs zones options\r\n tabElements: {}, // dict windowId to create tab elements options\r\n afterTabsZones: {}, // dict frameId to after tabs zones options\r\n tabHeaderButtons: {}, // dict frameId to crate tab header buttons options\r\n belowTabsZones: {} // dict frameId to create options\r\n };\r\n }\r\n\r\n onCreateGroupCaptionBarRequested = (options: CreateGroupCaptionBarRequestOptions) => {\r\n if (options === this.state.groupCaptionBar) {\r\n return;\r\n }\r\n this.setState(s => {\r\n return {\r\n ...s,\r\n groupCaptionBar: options\r\n }\r\n });\r\n }\r\n\r\n onCreateGroupOverlayRequested = (options: CreateElementRequestOptions) => {\r\n if (options === this.state.groupOverlay) {\r\n return;\r\n }\r\n this.setState(s => {\r\n return {\r\n ...s,\r\n groupOverlay: options\r\n }\r\n });\r\n }\r\n\r\n onCreateFrameCaptionBarRequested = (options: CreateFrameCaptionBarRequestOptions) => {\r\n if (options === this.state.frameCaptionBars[options.targetId] || !options) {\r\n return;\r\n }\r\n this.setState(s => {\r\n return {\r\n ...s,\r\n frameCaptionBars: {\r\n ...s.frameCaptionBars,\r\n [options.targetId]: options\r\n }\r\n }\r\n });\r\n }\r\n\r\n onCreateFrameWindowOverlayRequested = (options: CreateFrameElementRequestOptions) => {\r\n if (options === this.state.frameWindowOverlays[options.targetId] || !options) {\r\n return;\r\n }\r\n this.setState(s => {\r\n return {\r\n ...s,\r\n frameWindowOverlays: {\r\n ...s.frameWindowOverlays,\r\n [options.targetId]: options\r\n }\r\n }\r\n });\r\n }\r\n\r\n onCreateBelowWindowRequested = (options: CreateFrameElementRequestOptions) => {\r\n if (options === this.state.belowWindowZones[options.targetId] || !options) {\r\n return;\r\n }\r\n this.setState(s => {\r\n return {\r\n ...s,\r\n belowWindowZones: {\r\n ...s.belowWindowZones,\r\n [options.targetId]: options\r\n }\r\n }\r\n });\r\n }\r\n\r\n onCreateAboveTabsComponentRequested = (options: CreateFrameElementRequestOptions) => {\r\n if (options === this.state.aboveTabsZones[options.targetId] || !options) {\r\n return;\r\n }\r\n this.setState(s => {\r\n return {\r\n ...s,\r\n aboveTabsZones: {\r\n ...s.aboveTabsZones,\r\n [options.targetId]: options\r\n }\r\n }\r\n });\r\n }\r\n\r\n onCreateBeforeTabsComponentRequested = (options: CreateFrameElementRequestOptions) => {\r\n if (options === this.state.beforeTabsZones[options.targetId] || !options) {\r\n return;\r\n }\r\n this.setState(s => {\r\n return {\r\n ...s,\r\n beforeTabsZones: {\r\n ...s.beforeTabsZones,\r\n [options.targetId]: options\r\n }\r\n }\r\n });\r\n }\r\n\r\n onCreateTabElementRequested = (options: CreateTabRequestOptions) => {\r\n if (options === this.state.tabElements[options.targetId] || !options) {\r\n return;\r\n }\r\n this.setState(s => {\r\n const newTabElementsObj = Object.keys(s.tabElements).reduce((acc, targetId) => {\r\n acc[targetId] = s.tabElements[targetId];\r\n return acc;\r\n }, {});\r\n\r\n newTabElementsObj[options.targetId] = options;\r\n\r\n return {\r\n ...s,\r\n tabElements: {\r\n ...s.tabElements,\r\n [options.targetId]: options\r\n }\r\n }\r\n });\r\n }\r\n\r\n onCreateAfterTabsComponentRequested = (options: CreateFrameElementRequestOptions) => {\r\n if (options === this.state.afterTabsZones[options.targetId] || !options) {\r\n return;\r\n }\r\n this.setState(s => {\r\n return {\r\n ...s,\r\n afterTabsZones: {\r\n ...s.afterTabsZones,\r\n [options.targetId]: options\r\n }\r\n }\r\n });\r\n }\r\n\r\n onCreateTabHeaderButtonsRequested = (options: CreateTabHeaderButtonsOptions) => {\r\n if (options === this.state.tabHeaderButtons[options.targetId] || !options) {\r\n return;\r\n }\r\n this.setState(s => {\r\n return {\r\n ...s,\r\n tabHeaderButtons: {\r\n ...s.tabHeaderButtons,\r\n [options.targetId]: options\r\n }\r\n }\r\n });\r\n }\r\n\r\n onCreateBelowTabsComponentRequested = (options: CreateFrameElementRequestOptions) => {\r\n if (options === this.state.belowTabsZones[options.targetId] || !options) {\r\n return;\r\n }\r\n this.setState(s => {\r\n return {\r\n ...s,\r\n belowTabsZones: {\r\n ...s.belowTabsZones,\r\n [options.targetId]: options\r\n }\r\n }\r\n });\r\n }\r\n\r\n onUpdateGroupCaptionBarRequested = (options: UpdateGroupCaptionBarRequestOptions) => {\r\n if (options === this.state.groupCaptionBar) {\r\n return;\r\n }\r\n this.setState(s => {\r\n return {\r\n ...s,\r\n groupCaptionBar: Object.assign({}, s.groupCaptionBar, options)\r\n }\r\n });\r\n }\r\n\r\n onUpdateFrameCaptionBarRequested = (options: UpdateFrameCaptionBarRequestOptions) => {\r\n if (options === this.state.frameCaptionBars[options.targetId] || !options) {\r\n return;\r\n }\r\n this.setState(s => {\r\n return {\r\n ...s,\r\n frameCaptionBars: {\r\n ...s.frameCaptionBars,\r\n [options.targetId]: { ...s.frameCaptionBars[options.targetId], ...options }\r\n }\r\n }\r\n });\r\n }\r\n\r\n onUpdateFrameWindowOverlayRequested = (options: CreateElementRequestOptions) => {\r\n if (options === this.state.frameWindowOverlays[options.targetId] || !options) {\r\n return;\r\n }\r\n this.setState(s => {\r\n return {\r\n ...s,\r\n frameWindowOverlays: {\r\n ...s.frameWindowOverlays,\r\n [options.targetId]: { ...s.frameWindowOverlays[options.targetId], ...options }\r\n }\r\n }\r\n });\r\n }\r\n\r\n onUpdateAboveTabsRequested = (options: CreateElementRequestOptions) => {\r\n if (options === this.state.aboveTabsZones[options.targetId] || !options) {\r\n return;\r\n }\r\n this.setState(s => {\r\n return {\r\n ...s,\r\n aboveTabsZones: {\r\n ...s.aboveTabsZones,\r\n [options.targetId]: { ...s.aboveTabsZones[options.targetId], ...options }\r\n }\r\n }\r\n });\r\n }\r\n\r\n onUpdateBeforeTabsRequested = (options: CreateElementRequestOptions) => {\r\n if (options === this.state.beforeTabsZones[options.targetId] || !options) {\r\n return;\r\n }\r\n this.setState(s => {\r\n return {\r\n ...s,\r\n beforeTabsZones: {\r\n ...s.beforeTabsZones,\r\n [options.targetId]: { ...s.beforeTabsZones[options.targetId], ...options }\r\n }\r\n }\r\n });\r\n }\r\n\r\n onUpdateTabElementRequested = (options: CreateTabRequestOptions) => {\r\n if (options === this.state.tabElements[options.targetId] || !options) {\r\n return;\r\n }\r\n\r\n this.setState(s => {\r\n return {\r\n ...s,\r\n tabElements: {\r\n ...s.tabElements,\r\n [options.targetId]: { ...s.tabElements[options.targetId], ...options }\r\n }\r\n }\r\n });\r\n }\r\n\r\n onUpdateAfterTabsRequested = (options: CreateElementRequestOptions) => {\r\n if (options === this.state.afterTabsZones[options.targetId] || !options) {\r\n return;\r\n }\r\n this.setState(s => {\r\n return {\r\n ...s,\r\n afterTabsZones: {\r\n ...s.afterTabsZones,\r\n [options.targetId]: { ...s.afterTabsZones[options.targetId], ...options }\r\n }\r\n }\r\n });\r\n }\r\n\r\n onUpdateTabHeaderButtonsRequested = (options: CreateTabHeaderButtonsOptions) => {\r\n if (options === this.state.tabHeaderButtons[options.targetId] || !options) {\r\n return;\r\n }\r\n this.setState(s => {\r\n return {\r\n ...s,\r\n tabHeaderButtons: {\r\n ...s.tabHeaderButtons,\r\n [options.targetId]: { ...s.tabHeaderButtons[options.targetId], ...options }\r\n }\r\n }\r\n });\r\n }\r\n\r\n onUpdateBelowTabsRequested = (options: CreateElementRequestOptions) => {\r\n if (options === this.state.belowTabsZones[options.targetId] || !options) {\r\n return;\r\n }\r\n this.setState(s => {\r\n return {\r\n ...s,\r\n belowTabsZones: {\r\n ...s.belowTabsZones,\r\n [options.targetId]: { ...s.belowTabsZones[options.targetId], ...options }\r\n }\r\n }\r\n });\r\n }\r\n\r\n onUpdateFrame = (options: UpdateFrameRequestOptions) => {\r\n this.setState(s => {\r\n const newState = { ...s };\r\n\r\n if (s.frameWindowOverlays[options.targetId] && s.frameWindowOverlays[options.targetId]?.selectedWindow != options.selectedWindow) {\r\n newState.frameCaptionBars = {\r\n ...s.frameCaptionBars,\r\n [options.targetId]: { ...s.frameCaptionBars[options.targetId], selectedWindow: options.selectedWindow }\r\n }\r\n }\r\n\r\n if (s.frameWindowOverlays[options.targetId] && s.frameWindowOverlays[options.targetId]?.selectedWindow != options.selectedWindow) {\r\n newState.frameWindowOverlays = {\r\n ...s.frameWindowOverlays,\r\n [options.targetId]: { ...s.frameWindowOverlays[options.targetId], selectedWindow: options.selectedWindow }\r\n }\r\n }\r\n\r\n if (s.belowWindowZones[options.targetId] && s.belowWindowZones[options.targetId]?.selectedWindow != options.selectedWindow) {\r\n newState.belowWindowZones = {\r\n ...s.belowWindowZones,\r\n [options.targetId]: { ...s.belowWindowZones[options.targetId], selectedWindow: options.selectedWindow }\r\n }\r\n }\r\n\r\n if (s.aboveTabsZones[options.targetId] && s.frameWindowOverlays[options.targetId]?.selectedWindow != options.selectedWindow) {\r\n newState.aboveTabsZones = {\r\n ...s.aboveTabsZones,\r\n [options.targetId]: { ...s.aboveTabsZones[options.targetId], selectedWindow: options.selectedWindow }\r\n }\r\n }\r\n\r\n if (s.beforeTabsZones[options.targetId] && s.frameWindowOverlays[options.targetId]?.selectedWindow != options.selectedWindow) {\r\n newState.beforeTabsZones = {\r\n ...s.beforeTabsZones,\r\n [options.targetId]: { ...s.beforeTabsZones[options.targetId], selectedWindow: options.selectedWindow }\r\n }\r\n }\r\n\r\n if (s.afterTabsZones[options.targetId] && s.frameWindowOverlays[options.targetId]?.selectedWindow != options.selectedWindow) {\r\n newState.afterTabsZones = {\r\n ...s.afterTabsZones,\r\n [options.targetId]: { ...s.afterTabsZones[options.targetId], selectedWindow: options.selectedWindow }\r\n }\r\n }\r\n\r\n if (s.tabHeaderButtons[options.targetId] && s.frameWindowOverlays[options.targetId]?.selectedWindow != options.selectedWindow) {\r\n newState.tabHeaderButtons = {\r\n ...s.tabHeaderButtons,\r\n [options.targetId]: { ...s.tabHeaderButtons[options.targetId], selectedWindow: options.selectedWindow }\r\n }\r\n }\r\n\r\n if (s.belowTabsZones[options.targetId] && s.frameWindowOverlays[options.targetId]?.selectedWindow != options.selectedWindow) {\r\n newState.belowTabsZones = {\r\n ...s.belowTabsZones,\r\n [options.targetId]: { ...s.belowTabsZones[options.targetId], selectedWindow: options.selectedWindow }\r\n }\r\n }\r\n\r\n return newState;\r\n });\r\n }\r\n\r\n onUpdateStandardButton = (options: UpdateStandardButtonRequestOptions) => {\r\n const isCaptionBar = this.state.groupCaptionBar?.targetId === options.targetId;\r\n const isFrame = this.state.frameCaptionBars[options.targetId];\r\n const isTabHeaderButtons = this.state.tabHeaderButtons[options.targetId];\r\n if (isCaptionBar) {\r\n const newOptions = {\r\n ... this.state.groupCaptionBar,\r\n [options.buttonId]: {\r\n ...options\r\n }\r\n };\r\n this.onUpdateGroupCaptionBarRequested(newOptions as UpdateGroupCaptionBarRequestOptions);\r\n } else if (isFrame && options.targetType === TargetType.Frame) {\r\n const newOptions = {\r\n ... this.state.frameCaptionBars[options.targetId],\r\n [options.buttonId]: {\r\n ...options\r\n }\r\n };\r\n this.onUpdateFrameCaptionBarRequested(newOptions);\r\n } else if (isTabHeaderButtons && options.targetType === TargetType.TabBar) {\r\n const newOptions = {\r\n ... this.state.tabHeaderButtons[options.targetId],\r\n [options.buttonId]: {\r\n ...options\r\n }\r\n };\r\n\r\n this.onUpdateTabHeaderButtonsRequested(newOptions);\r\n }\r\n }\r\n\r\n renderGroupCaptionBar = () => {\r\n const GroupCaptionBarCustomElement = this.props.components?.group?.CaptionBar;\r\n if (!GroupCaptionBarCustomElement || (!this.state.groupCaptionBar || !this.state.groupCaptionBar.parentElement)) {\r\n return;\r\n }\r\n\r\n const { parentElement, ...options } = this.state.groupCaptionBar;\r\n\r\n const minimize = {\r\n onClick: () => {\r\n webGroupsManager.minimizeGroup(options.targetId);\r\n },\r\n ...options.minimize\r\n }\r\n\r\n const restore = {\r\n onClick: () => {\r\n webGroupsManager.restoreGroup(options.targetId);\r\n },\r\n ...options.restore\r\n }\r\n\r\n const maximize = {\r\n onClick: () => {\r\n webGroupsManager.maximizeGroup(options.targetId);\r\n },\r\n ...options.maximize\r\n }\r\n\r\n const close = {\r\n onClick: () => {\r\n webGroupsManager.closeGroup(options.targetId);\r\n },\r\n ...options.close\r\n }\r\n\r\n return <Portal parentElement={parentElement}><GroupCaptionBarCustomElement {...options} minimize={minimize} maximize={maximize} restore={restore} close={close} /></Portal>;\r\n }\r\n\r\n renderGroupOverlay = () => {\r\n const GroupOverlayCustomElement = this.props.components?.group?.Overlay;\r\n if (!GroupOverlayCustomElement || (!this.state.groupOverlay || !this.state.groupOverlay.parentElement)) {\r\n return;\r\n }\r\n\r\n const { parentElement, ...options } = this.state.groupOverlay;\r\n\r\n\r\n return <Portal parentElement={parentElement}><GroupOverlayCustomElement {...options} /></Portal>;\r\n }\r\n\r\n renderFrameCaptionBar = () => {\r\n const FrameCaptionBarCustomElement = this.props.components?.flat?.CaptionBar;\r\n return Object.values(this.state.frameCaptionBars).map((fcb) => {\r\n if (!FrameCaptionBarCustomElement || !fcb.parentElement) {\r\n return;\r\n }\r\n\r\n const { parentElement, ...options } = fcb;\r\n\r\n // const extract = {\r\n // onClick: () => {\r\n // webGroupsManager.extractFrame(options.targetId);\r\n // },\r\n // ...options.extract\r\n // };\r\n\r\n const minimize = {\r\n onClick: () => {\r\n webGroupsManager.minimizeFrame(options.targetId);\r\n },\r\n ...options.minimize\r\n }\r\n\r\n const restore = {\r\n onClick: () => {\r\n webGroupsManager.restoreFrame(options.targetId);\r\n },\r\n ...options.restore\r\n }\r\n\r\n const maximize = {\r\n onClick: () => {\r\n webGroupsManager.maximizeFrame(options.targetId);\r\n },\r\n ...options.maximize\r\n }\r\n\r\n const close = {\r\n onClick: () => {\r\n webGroupsManager.closeFrame(options.targetId);\r\n },\r\n ...options.close\r\n }\r\n\r\n const showSelector = (bounds: Bounds) => {\r\n webGroupsManager.onFrameChannelSelectorClick(options.targetId, bounds);\r\n }\r\n\r\n const channels = {\r\n showSelector,\r\n visible: options.channelSelectorVisible,\r\n selectedChannel: options.selectedChannel,\r\n selectedChannelColor: options.selectedChannelColor\r\n }\r\n\r\n return <Portal key={options.targetId} parentElement={parentElement}>\r\n <FrameCaptionBarCustomElement {...options}\r\n minimize={minimize}\r\n maximize={maximize}\r\n restore={restore}\r\n close={close}\r\n channels={channels}\r\n frameId={options.targetId} />\r\n </Portal>\r\n });\r\n }\r\n\r\n renderFrameWindowOverlay = () => {\r\n const FrameWindowOverlayCustomElement = this.props.components?.frame?.Overlay;\r\n return Object.values(this.state.frameWindowOverlays).map((fcb) => {\r\n if (!FrameWindowOverlayCustomElement || !fcb.parentElement) {\r\n return;\r\n }\r\n\r\n const { parentElement, ...options } = fcb;\r\n\r\n return <Portal key={options.targetId} parentElement={parentElement}>\r\n <FrameWindowOverlayCustomElement {...options} frameId={options.targetId} />\r\n </Portal>\r\n });\r\n }\r\n\r\n renderBelowWindow = () => {\r\n const BelowWindowCustomElement = this.props.components?.frame?.BelowWindow;\r\n return Object.values(this.state.belowWindowZones).map((bwz) => {\r\n if (!BelowWindowCustomElement || !bwz.parentElement) {\r\n return;\r\n }\r\n const { parentElement, ...options } = bwz;\r\n\r\n return <Portal key={options.targetId} parentElement={parentElement}>\r\n <BelowWindowCustomElement {...options} frameId={options.targetId} />\r\n </Portal>\r\n });\r\n }\r\n\r\n renderAboveTabs = () => {\r\n const AboveTabsCustomElement = this.props.components?.tabs?.Above;\r\n\r\n return Object.values(this.state.aboveTabsZones).map((te) => {\r\n if (!AboveTabsCustomElement || !te.parentElement) {\r\n return;\r\n }\r\n\r\n const { parentElement, ...options } = te;\r\n return <Portal key={options.targetId} parentElement={parentElement}><AboveTabsCustomElement {...options} frameId={options.targetId} /></Portal>\r\n });\r\n }\r\n\r\n renderBeforeTabsZones = () => {\r\n const BeforeTabsCustomElement = this.props.components?.tabs?.Before;\r\n\r\n return Object.values(this.state.beforeTabsZones).map((te) => {\r\n if (!BeforeTabsCustomElement || !te.parentElement) {\r\n return;\r\n }\r\n\r\n const { parentElement, ...options } = te;\r\n return <Portal key={options.targetId} parentElement={parentElement}><BeforeTabsCustomElement {...options} frameId={options.targetId} /></Portal>\r\n });\r\n }\r\n\r\n renderTabElements = () => {\r\n const TabCustomElement = this.props.components?.tabs?.Element;\r\n\r\n return Object.values(this.state.tabElements).map((te) => {\r\n if (!TabCustomElement || !te.parentElement) {\r\n return;\r\n }\r\n\r\n const { parentElement, ...options } = te;\r\n\r\n\r\n const onCloseClick = () => {\r\n webGroupsManager.closeTab(options.targetId);\r\n }\r\n\r\n const showSelector = (bounds: Bounds) => {\r\n webGroupsManager.onTabChannelSelectorClick(options.targetId, bounds);\r\n }\r\n\r\n const channels: ChannelProps = {\r\n showSelector,\r\n visible: options.channelSelectorVisible,\r\n selectedChannel: options.selectedChannel,\r\n selectedChannelColor: options.selectedChannelColor ?? options.selectedChannel // TODO remove the null check when the variable has been added\r\n };\r\n\r\n return <Portal key={options.targetId} parentElement={parentElement}><TabCustomElement {...options} close={onCloseClick} channels={channels} windowId={options.targetId} /></Portal>\r\n });\r\n }\r\n\r\n renderAfterTabsZones = () => {\r\n const AfterTabsCustomElement = this.props.components?.tabs?.After;\r\n\r\n return Object.values(this.state.afterTabsZones).map((te) => {\r\n if (!AfterTabsCustomElement || !te.parentElement) {\r\n return;\r\n }\r\n\r\n const { parentElement, ...options } = te;\r\n return <Portal key={options.targetId} parentElement={parentElement}><AfterTabsCustomElement {...options} frameId={options.targetId} /></Portal>\r\n });\r\n }\r\n\r\n renderTabHeaderButtons = () => {\r\n const TabButtonsCustomElement = this.props.components?.tabs?.Buttons;\r\n\r\n return Object.values(this.state.tabHeaderButtons).map((te) => {\r\n if (!TabButtonsCustomElement || !te.parentElement) {\r\n return;\r\n }\r\n const { parentElement, ...options } = te;\r\n\r\n // const extract = {\r\n // onClick: () => {\r\n // webGroupsManager.extractTabBar(options.targetId);\r\n // },\r\n // ...options.extract\r\n // };\r\n\r\n const minimize = {\r\n onClick: () => {\r\n webGroupsManager.minimizeTabBar(options.targetId);\r\n },\r\n ...options.minimize\r\n }\r\n\r\n const restore = {\r\n onClick: () => {\r\n webGroupsManager.restoreTabBar(options.targetId);\r\n },\r\n ...options.restore\r\n }\r\n\r\n const maximize = {\r\n onClick: () => {\r\n webGroupsManager.maximizeTabBar(options.targetId);\r\n },\r\n ...options.maximize\r\n }\r\n\r\n const close = {\r\n onClick: () => {\r\n webGroupsManager.closeTabBar(options.targetId);\r\n },\r\n ...options.close\r\n }\r\n\r\n return <Portal key={options.targetId} parentElement={parentElement}><TabButtonsCustomElement {...options}\r\n minimize={minimize}\r\n maximize={maximize}\r\n restore={restore}\r\n close={close}\r\n frameId={options.targetId}\r\n /></Portal>\r\n });\r\n }\r\n\r\n renderBelowTabs = () => {\r\n const BelowTabsCustomElement = this.props.components?.tabs?.Below;\r\n\r\n return Object.values(this.state.belowTabsZones).map((te) => {\r\n if (!BelowTabsCustomElement || !te.parentElement) {\r\n return;\r\n }\r\n\r\n const { parentElement, ...options } = te;\r\n return <Portal key={options.targetId} parentElement={parentElement}><BelowTabsCustomElement {...options} frameId={options.targetId} /></Portal>\r\n });\r\n }\r\n\r\n onRemoveFrameCaptionBarRequested = (options: RemoveRequestOptions) => {\r\n if (!this.state.frameCaptionBars[options.targetId]) {\r\n return;\r\n }\r\n this.setState(s => {\r\n const newCaptionBarsObj = Object.keys(s.frameCaptionBars).reduce((acc, targetId) => {\r\n if (targetId !== options.targetId) {\r\n acc[targetId] = s.frameCaptionBars[targetId];\r\n }\r\n return acc;\r\n }, {});\r\n\r\n return {\r\n ...s,\r\n frameCaptionBars: newCaptionBarsObj\r\n }\r\n });\r\n }\r\n\r\n onRemoveFrameWindowOverlayRequested = (options: RemoveRequestOptions) => {\r\n if (!this.state.frameWindowOverlays[options.targetId]) {\r\n return;\r\n }\r\n this.setState(s => {\r\n const newCaptionBarsObj = Object.keys(s.frameWindowOverlays).reduce((acc, targetId) => {\r\n if (targetId !== options.targetId) {\r\n acc[targetId] = s.frameWindowOverlays[targetId];\r\n }\r\n return acc;\r\n }, {});\r\n\r\n return {\r\n ...s,\r\n frameWindowOverlays: newCaptionBarsObj\r\n }\r\n });\r\n }\r\n\r\n onRemoveBelowWindowRequested = (options: RemoveRequestOptions) => {\r\n if (!this.state.belowWindowZones[options.targetId]) {\r\n return;\r\n }\r\n this.setState(s => {\r\n const newCaptionBarsObj = Object.keys(s.belowWindowZones).reduce((acc, targetId) => {\r\n if (targetId !== options.targetId) {\r\n acc[targetId] = s.belowWindowZones[targetId];\r\n }\r\n return acc;\r\n }, {});\r\n\r\n return {\r\n ...s,\r\n belowWindowZones: newCaptionBarsObj\r\n }\r\n });\r\n }\r\n\r\n onRemoveAboveTabsRequested = (options: RemoveRequestOptions) => {\r\n if (!this.state.aboveTabsZones[options.targetId]) {\r\n return;\r\n }\r\n this.setState(s => {\r\n const newTabElementsObj = Object.keys(s.aboveTabsZones).reduce((acc, targetId) => {\r\n if (targetId != options.targetId) {\r\n acc[targetId] = s.aboveTabsZones[targetId];\r\n }\r\n return acc;\r\n }, {});\r\n\r\n return {\r\n ...s,\r\n aboveTabsZones: newTabElementsObj\r\n }\r\n });\r\n }\r\n\r\n onRemoveBeforeTabsComponentRequested = (options: RemoveRequestOptions) => {\r\n if (!this.state.beforeTabsZones[options.targetId]) {\r\n return;\r\n }\r\n this.setState(s => {\r\n const newTabElementsObj = Object.keys(s.beforeTabsZones).reduce((acc, targetId) => {\r\n if (targetId != options.targetId) {\r\n acc[targetId] = s.beforeTabsZones[targetId];\r\n }\r\n return acc;\r\n }, {});\r\n\r\n return {\r\n ...s,\r\n beforeTabsZones: newTabElementsObj\r\n }\r\n });\r\n }\r\n\r\n onRemoveTabElementRequested = (options: RemoveRequestOptions) => {\r\n if (!this.state.tabElements[options.targetId]) {\r\n return;\r\n }\r\n this.setState(s => {\r\n const newTabElementsObj = Object.keys(s.tabElements).reduce((acc, targetId) => {\r\n if (targetId != options.targetId) {\r\n acc[targetId] = s.tabElements[targetId];\r\n }\r\n return acc;\r\n }, {});\r\n\r\n return {\r\n ...s,\r\n tabElements: newTabElementsObj\r\n }\r\n });\r\n }\r\n\r\n onRemoveAfterTabsComponentRequested = (options: RemoveRequestOptions) => {\r\n if (!this.state.afterTabsZones[options.targetId]) {\r\n return;\r\n }\r\n this.setState(s => {\r\n const newTabElementsObj = Object.keys(s.afterTabsZones).reduce((acc, targetId) => {\r\n if (targetId != options.targetId) {\r\n acc[targetId] = s.afterTabsZones[targetId];\r\n }\r\n return acc;\r\n }, {});\r\n\r\n return {\r\n ...s,\r\n afterTabsZones: newTabElementsObj\r\n }\r\n });\r\n }\r\n\r\n onRemoveTabHeaderButtonsRequested = (options: RemoveRequestOptions) => {\r\n if (!this.state.tabHeaderButtons[options.targetId]) {\r\n return;\r\n }\r\n this.setState(s => {\r\n const newTabElementsObj = Object.keys(s.tabHeaderButtons).reduce((acc, targetId) => {\r\n if (targetId != options.targetId) {\r\n acc[targetId] = s.tabHeaderButtons[targetId];\r\n }\r\n return acc;\r\n }, {});\r\n\r\n return {\r\n ...s,\r\n tabHeaderButtons: newTabElementsObj\r\n }\r\n });\r\n }\r\n\r\n onRemoveBelowTabsRequested = (options: RemoveRequestOptions) => {\r\n if (!this.state.belowTabsZones[options.targetId]) {\r\n return;\r\n }\r\n this.setState(s => {\r\n const newTabElementsObj = Object.keys(s.belowTabsZones).reduce((acc, targetId) => {\r\n if (targetId != options.targetId) {\r\n acc[targetId] = s.belowTabsZones[targetId];\r\n }\r\n return acc;\r\n }, {});\r\n\r\n return {\r\n ...s,\r\n belowTabsZones: newTabElementsObj\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n const { components, ...additionalProperties } = this.props;\r\n return (\r\n <>\r\n {this.renderGroupCaptionBar()}\r\n {this.renderGroupOverlay()}\r\n {this.renderFrameCaptionBar()}\r\n {this.renderFrameWindowOverlay()}\r\n {this.renderBelowWindow()}\r\n {this.renderAboveTabs()}\r\n {this.renderBeforeTabsZones()}\r\n {this.renderTabElements()}\r\n {this.renderAfterTabsZones()}\r\n {this.renderTabHeaderButtons()}\r\n {this.renderBelowTabs()}\r\n <GroupWrapper\r\n onCreateGroupCaptionBarRequested={components?.group?.CaptionBar ? this.onCreateGroupCaptionBarRequested : undefined}\r\n onCreateGroupOverlayRequested={components?.group?.Overlay ? this.onCreateGroupOverlayRequested : undefined}\r\n onCreateFrameCaptionBarRequested={components?.flat?.CaptionBar ? this.onCreateFrameCaptionBarRequested : undefined}\r\n onCreateFrameWindowOverlayRequested={components?.frame?.Overlay ? this.onCreateFrameWindowOverlayRequested : undefined}\r\n onCreateBelowWindowRequested={components?.frame?.BelowWindow ? this.onCreateBelowWindowRequested : undefined}\r\n onCreateAboveTabsRequested={components?.tabs?.Above ? this.onCreateAboveTabsComponentRequested : undefined}\r\n onCreateBeforeTabsComponentRequested={components?.tabs?.Before ? this.onCreateBeforeTabsComponentRequested : undefined}\r\n onCreateTabRequested={components?.tabs?.Element ? this.onCreateTabElementRequested : undefined}\r\n onCreateAfterTabsComponentRequested={components?.tabs?.After ? this.onCreateAfterTabsComponentRequested : undefined}\r\n onCreateTabHeaderButtonsRequested={components?.tabs?.Buttons ? this.onCreateTabHeaderButtonsRequested : undefined}\r\n onCreateBelowTabsRequested={components?.tabs?.Below ? this.onCreateBelowTabsComponentRequested : undefined}\r\n onUpdateGroupCaptionBarRequested={components?.group?.CaptionBar ? this.onUpdateGroupCaptionBarRequested : undefined}\r\n onUpdateFrameWindowOverlayRequested={components?.group?.Overlay ? this.onUpdateFrameWindowOverlayRequested : undefined}\r\n onUpdateFrameCaptionBarRequested={components?.flat?.CaptionBar ? this.onUpdateFrameCaptionBarRequested : undefined}\r\n onUpdateFrameRequested={this.onUpdateFrame}\r\n onUpdateStandardButtonRequested={this.onUpdateStandardButton}\r\n onUpdateAboveTabsRequested={components?.tabs?.Above ? this.onUpdateAboveTabsRequested : undefined}\r\n onUpdateBeforeTabsComponentRequested={components?.tabs?.Before ? this.onUpdateBeforeTabsRequested : undefined}\r\n onUpdateTabRequested={components?.tabs?.Element ? this.onUpdateTabElementRequested : undefined}\r\n onUpdateAfterTabsComponentRequested={components?.tabs?.After ? this.onUpdateAfterTabsRequested : undefined}\r\n onUpdateBelowTabsRequested={components?.tabs?.Below ? this.onUpdateBelowTabsRequested : undefined}\r\n onRemoveFrameCaptionBarRequested={this.onRemoveFrameCaptionBarRequested}\r\n onRemoveFrameWindowOverlayRequested={this.onRemoveFrameWindowOverlayRequested}\r\n onRemoveBelowWindowRequested={this.onRemoveBelowWindowRequested}\r\n onRemoveAboveTabsRequested={this.onRemoveAboveTabsRequested}\r\n onRemoveBeforeTabsComponentRequested={this.onRemoveBeforeTabsComponentRequested}\r\n onRemoveTabRequested={this.onRemoveTabElementRequested}\r\n onRemoveAfterTabsComponentRequested={this.onRemoveAfterTabsComponentRequested}\r\n onRemoveTabHeaderButtonsRequested={this.onRemoveTabHeaderButtonsRequested}\r\n onRemoveBelowTabsRequested={this.onRemoveBelowTabsRequested}\r\n />\r\n </>\r\n );\r\n }\r\n}\r\n\r\nexport default GroupElementCreationWrapper;\r\n","import CloseButton from \"./defaultComponents/CloseButton\";\nimport FrameCaptionBar from \"./defaultComponents/frameCaptionBar/FrameCaptionBar\";\nimport GroupCaptionBar from \"./defaultComponents/groupCaptionBar/GroupCaptionBar\";\nimport MaximizeButton from \"./defaultComponents/MaximizeButton\";\nimport MinimizeButton from \"./defaultComponents/MinimizeButton\";\nimport Tab from \"./defaultComponents/Tab\";\nimport TabHeaderButtons from \"./defaultComponents/TabHeaderButtons\";\nimport TabCaption from \"./defaultComponents/TabCaption\";\nimport TabCloseButton from \"./defaultComponents/TabCloseButton\";\nimport GroupElementCreationWrapper from \"./GroupElementCreationWrapper\";\nimport {\n GroupCaptionBarProps,\n GroupProps,\n MoveAreaProps,\n TabElementProps,\n TabCaptionProps,\n TabCloseButtonProps,\n FrameCaptionBarProps,\n TabHeaderButtonsProps,\n GroupMoveAreaProps,\n GroupButtonsProps\n} from \"./types/internal\";\nimport webGroupsManager from \"./webGroupsManager\";\nimport GroupMoveArea from \"./defaultComponents/groupCaptionBar/GroupMoveArea\";\nimport GroupButtons from \"./defaultComponents/groupCaptionBar/GroupButtons\";\nimport FrameMoveArea from \"./defaultComponents/frameCaptionBar/FrameMoveArea\";\nimport FrameButtons from \"./defaultComponents/frameCaptionBar/FrameButtons\";\nimport FrameCaption from \"./defaultComponents/frameCaptionBar/FrameCaption\";\nimport GroupCaption from \"./defaultComponents/groupCaptionBar/GroupCaption\";\nimport FrameChannelSelector from \"./defaultComponents/channelSelector/FrameChannelSelector\";\nimport TabChannelSelector from \"./defaultComponents/channelSelector/TabChannelSelector\";\nimport RestoreButton from \"./defaultComponents/RestoreButton\";\nexport {\n GroupCaptionBar,\n GroupMoveArea,\n GroupButtons,\n Tab,\n TabChannelSelector,\n TabCaption,\n TabCloseButton,\n MinimizeButton,\n RestoreButton,\n MaximizeButton,\n CloseButton,\n FrameCaptionBar,\n FrameChannelSelector,\n FrameCaption,\n FrameMoveArea,\n FrameButtons,\n TabHeaderButtons\n}\n\nexport const getGroupId: () => string = () => webGroupsManager?.getGroupId();\nexport const requestPageFocus: () => void = () => webGroupsManager?.requestPageFocus();\nexport const requestFrameFocus: (frameId: string) => void = (frameId) => webGroupsManager?.requestFrameFocus(frameId);\nexport const requestGroupFocus: () => void = () => webGroupsManager?.requestGroupFocus();\n\nexport {\n MoveAreaProps,\n GroupProps,\n GroupCaption,\n GroupCaptionBarProps,\n GroupMoveAreaProps,\n GroupButtonsProps,\n TabElementProps,\n TabCaptionProps,\n TabCloseButtonProps,\n FrameCaptionBarProps,\n TabHeaderButtonsProps,\n}\n\nexport default GroupElementCreationWrapper;\n"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","TargetType","StandardButtons","__assign","assign","t","s","i","n","arguments","length","call","apply","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","webGroupsManager","WorkspacesManagerDecorator","skipFocusStyle","init","glue","componentFactory","window","Error","getGroupId","externalLibraryFactory","groupId","notifyMoveAreaChanged","registerPopup","element","removePopup","removePopupById","elementId","subscribeForWindowFocused","cb","unmount","requestPageFocus","focusPage","requestFrameFocus","frameId","focusFrame","requestGroupFocus","focusGroup","closeFrame","targetId","onStandardButtonClick","Frame","Close","restoreFrame","Restore","maximizeFrame","Maximize","minimizeFrame","Minimize","extractFrame","closeTabBar","TabBar","restoreTabBar","maximizeTabBar","minimizeTabBar","extractTabBar","closeGroup","Group","restoreGroup","maximizeGroup","minimizeGroup","closeTab","onTabCloseButtonClick","onGroupMoveAreaChanged","onMoveAreaChanged","onTabChannelSelectorClick","selectorBounds","onFrameChannelSelectorClick","BaseButton","_a","outerElement","innerElement","React","createElement","className","CloseButton","onClick","tooltip","title","guard","low","high","value","Math","min","max","ColorError","color","super","ColorError$1","parseToRgba","trim","toLowerCase","normalizedColor","namedColorRegex","test","normalizedColorName","result","compressedColorMap","str","hash","charCodeAt","nameToHex","reducedHexMatch","reducedHexRegex","exec","arr","from","slice","map","x","parseInt","r","hexMatch","hexRegex","rgbaMatch","rgbaRegex","parseFloat","hslaMatch","hslaRegex","h","l","a","hslToRgb","colorToInt","replace","split","reduce","acc","next","key","substring","hex","toString","prefix","amount","join","RegExp","roundColor","round","hue","saturation","lightness","huePrime","chroma","abs","secondComponent","red","green","blue","lightnessModification","readableColorIsBlack","f","channel","pow","g","getLuminance","BaseChannelSelector","outsideClass","contentClass","showSelector","selectedChannel","selectedChannelColor","ref","useRef","useEffect","current","addEventListener","stopPropagation","rgba","displayGamma","error","console","IsBlackReadable","style","background","bounds","getBoundingClientRect","left","top","width","height","FrameChannelSelector","ExtractButton","MaximizeButton","MinimizeButton","RestoreButton","FrameButtons","extract","minimize","maximize","restore","close","visible","FrameCaption","caption","FrameMoveArea","children","moveAreaId","id","FrameCaptionBar","channels","GroupMoveArea","GroupButtons","GroupCaption","GroupCaptionBar","rest","TabChannelSelector","TabCaption","selected","TabCloseButton","Tab","TabHeaderButtons","GroupWrapper","_super","componentDidMount","createGroupCaptionBar","props","onCreateGroupCaptionBarRequested","updateGroupCaptionBar","onUpdateGroupCaptionBarRequested","createGroupOverlay","onCreateGroupOverlayRequested","createFrameCaptionBar","onCreateFrameCaptionBarRequested","updateFrameCaptionBar","onUpdateFrameCaptionBarRequested","createFrameWindowOverlay","onCreateFrameWindowOverlayRequested","updateFrameWindowOverlay","onUpdateFrameWindowOverlayRequested","createBelowWindow","onCreateBelowWindowRequested","destroyBelowWindow","onRemoveBelowWindowRequested","createAboveTabs","onCreateAboveTabsRequested","updateAboveTabs","onUpdateAboveTabsRequested","createBeforeTabs","onCreateBeforeTabsComponentRequested","updateBeforeTabs","onUpdateBeforeTabsComponentRequested","createTab","onCreateTabRequested","updateTab","onUpdateTabRequested","createAfterTabs","onCreateAfterTabsComponentRequested","updateAfterTabs","onUpdateAfterTabsComponentRequested","createTabBarButtonsContainerElement","onCreateTabHeaderButtonsRequested","createBelowTabs","onCreateBelowTabsRequested","updateBelowTabs","onUpdateBelowTabsRequested","updateFrame","onUpdateFrameRequested","updateStandardButton","onUpdateStandardButtonRequested","destroyFrameCaptionBar","onRemoveFrameCaptionBarRequested","destroyFrameWindowOverlay","onRemoveFrameWindowOverlayRequested","destroyAboveTabs","onRemoveAboveTabsRequested","destroyBeforeTabs","onRemoveBeforeTabsComponentRequested","destroyTab","onRemoveTabRequested","destroyAfterTabs","onRemoveAfterTabsComponentRequested","destroyTabBarButtonsContainerElement","onRemoveTabHeaderButtonsRequested","destroyBelowTabs","onRemoveBelowTabsRequested","undefined","componentWillUnmount","render","_this","containerRef","Component","Portal","ReactDOM","createPortal","parentElement","GroupElementCreationWrapper","options","state","groupCaptionBar","setState","groupOverlay","frameCaptionBars","frameWindowOverlays","belowWindowZones","onCreateAboveTabsComponentRequested","aboveTabsZones","beforeTabsZones","onCreateTabElementRequested","tabElements","keys","afterTabsZones","tabHeaderButtons","onCreateBelowTabsComponentRequested","belowTabsZones","onUpdateBeforeTabsRequested","onUpdateTabElementRequested","onUpdateAfterTabsRequested","onUpdateTabHeaderButtonsRequested","onUpdateFrame","newState","_j","selectedWindow","_k","_b","_l","_c","_m","_d","_o","_e","_p","_f","_q","_g","_r","_h","onUpdateStandardButton","isCaptionBar","isFrame","isTabHeaderButtons","newOptions","buttonId","targetType","renderGroupCaptionBar","GroupCaptionBarCustomElement","components","group","CaptionBar","renderGroupOverlay","GroupOverlayCustomElement","Overlay","renderFrameCaptionBar","FrameCaptionBarCustomElement","flat","values","fcb","channelSelectorVisible","renderFrameWindowOverlay","FrameWindowOverlayCustomElement","frame","renderBelowWindow","BelowWindowCustomElement","BelowWindow","bwz","renderAboveTabs","AboveTabsCustomElement","tabs","Above","te","renderBeforeTabsZones","BeforeTabsCustomElement","Before","renderTabElements","TabCustomElement","Element","windowId","renderAfterTabsZones","AfterTabsCustomElement","After","renderTabHeaderButtons","TabButtonsCustomElement","Buttons","renderBelowTabs","BelowTabsCustomElement","Below","newCaptionBarsObj","newTabElementsObj","onRemoveTabElementRequested","_v","Fragment","_s","_t","_u"],"mappings":"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"}