@genesislcap/foundation-layout 14.400.0 → 14.401.0-TPD-4881.2

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 (2) hide show
  1. package/dist/custom-elements.json +1485 -1485
  2. package/package.json +15 -15
@@ -187,47 +187,88 @@
187
187
  },
188
188
  {
189
189
  "kind": "javascript-module",
190
- "path": "src/main/index.ts",
191
- "declarations": [],
190
+ "path": "src/styles/constants.ts",
191
+ "declarations": [
192
+ {
193
+ "kind": "function",
194
+ "name": "glVisualConfig",
195
+ "return": {
196
+ "type": {
197
+ "text": "Omit<LayoutConfig, 'root'>"
198
+ }
199
+ }
200
+ },
201
+ {
202
+ "kind": "variable",
203
+ "name": "LAYOUT_ICONS",
204
+ "type": {
205
+ "text": "{\n renameSVG,\n maximiseSVG,\n minimiseSVG,\n closeSVG,\n tabDropdownSVG,\n popoutSVG,\n}"
206
+ },
207
+ "default": "{\n renameSVG,\n maximiseSVG,\n minimiseSVG,\n closeSVG,\n tabDropdownSVG,\n popoutSVG,\n}",
208
+ "description": "A collection of SVG icons in base64 format.",
209
+ "privacy": "public"
210
+ }
211
+ ],
192
212
  "exports": [
193
213
  {
194
214
  "kind": "js",
195
- "name": "FoundationLayoutItem",
215
+ "name": "glVisualConfig",
196
216
  "declaration": {
197
- "name": "FoundationLayoutItem",
198
- "module": "./layout-item"
217
+ "name": "glVisualConfig",
218
+ "module": "src/styles/constants.ts"
199
219
  }
200
220
  },
201
221
  {
202
222
  "kind": "js",
203
- "name": "FoundationLayoutRegion",
223
+ "name": "LAYOUT_ICONS",
204
224
  "declaration": {
205
- "name": "FoundationLayoutRegion",
206
- "module": "./layout-region"
225
+ "name": "LAYOUT_ICONS",
226
+ "module": "src/styles/constants.ts"
207
227
  }
208
- },
228
+ }
229
+ ]
230
+ },
231
+ {
232
+ "kind": "javascript-module",
233
+ "path": "src/styles/dragging.styles.ts",
234
+ "declarations": [
235
+ {
236
+ "kind": "variable",
237
+ "name": "globalDraggingStyles",
238
+ "default": "`\n .lm_dragProxy .lm_content {\n box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.9);\n }\n .lm_dropTargetIndicator {\n outline: 1px dashed #cccccc;\n transition: all 200ms ease;\n }\n .lm_dropTargetIndicator .lm_inner {\n background: var(${neutralFillStealthRest.cssCustomProperty});\n opacity: 0.2;\n }\n .lm_dragProxy.lm_left .lm_header,\n .lm_dragProxy.lm_right .lm_header {\n width: 20px;\n float: left;\n vertical-align: top;\n }\n .lm_dragProxy.lm_left .lm_header .lm_tabs,\n .lm_dragProxy.lm_right .lm_header .lm_tabs {\n transform-origin: left top;\n top: 0;\n width: 1000px;\n }\n .lm_dragProxy.lm_left .lm_header .lm_controls,\n .lm_dragProxy.lm_right .lm_header .lm_controls {\n bottom: 0;\n }\n .lm_dragProxy.lm_left .lm_items,\n .lm_dragProxy.lm_right .lm_items {\n float: left;\n }\n .lm_dragProxy.lm_left .lm_header .lm_tabs {\n transform: rotate(-90deg) scaleX(-1);\n left: 0;\n }\n .lm_dragProxy.lm_left .lm_header .lm_tabs .lm_tab {\n transform: scaleX(-1);\n margin-top: 1px;\n }\n .lm_dragProxy.lm_left .lm_header .lm_tabdropdown_list {\n top: initial;\n right: initial;\n left: 20px;\n }\n .lm_dragProxy.lm_right .lm_content {\n float: left;\n }\n .lm_dragProxy.lm_right .lm_header .lm_tabs {\n transform: rotate(90deg) scaleX(1);\n left: 100%;\n margin-left: 0;\n }\n .lm_dragProxy.lm_right .lm_header .lm_controls {\n left: 3px;\n }\n .lm_dragProxy.lm_right .lm_header .lm_tabdropdown_list {\n top: initial;\n right: 20px;\n }\n .lm_dragProxy.lm_bottom .lm_header .lm_tab {\n margin-top: 0;\n border-top: none;\n }\n .lm_dragProxy.lm_bottom .lm_header .lm_controls,\n .lm_stack.lm_bottom .lm_header .lm_controls {\n top: 3px;\n }\n .lm_dragProxy.lm_bottom .lm_header .lm_tabdropdown_list,\n .lm_stack.lm_bottom .lm_header .lm_tabdropdown_list {\n top: initial;\n bottom: 20px;\n }\n .lm_dragProxy {\n cursor: move;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 30;\n }\n .lm_dragProxy .lm_header {\n background: transparent;\n }\n .lm_dragProxy .lm_title {\n color: white;\n padding-left: 10px;\n }\n .lm_dragProxy .lm_content {\n border-top: none;\n overflow: hidden;\n }\n .lm_dropTargetIndicator {\n display: none;\n position: absolute;\n z-index: 20;\n }\n .lm_dropTargetIndicator .lm_inner {\n width: 100%;\n height: 100%;\n position: relative;\n top: 0;\n left: 0;\n }\n .lm_transition_indicator {\n display: none;\n width: 20px;\n height: 20px;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 20;\n }\n`",
239
+ "description": "This is defined as a string rather than a css template\nbecause it is applied to a CSSStyleSheet object rather than\nused as a FAST template"
240
+ }
241
+ ],
242
+ "exports": [
209
243
  {
210
244
  "kind": "js",
211
- "name": "FoundationLayout",
245
+ "name": "globalDraggingStyles",
212
246
  "declaration": {
213
- "name": "FoundationLayout",
214
- "module": "./layout-main"
247
+ "name": "globalDraggingStyles",
248
+ "module": "src/styles/dragging.styles.ts"
215
249
  }
216
- },
250
+ }
251
+ ]
252
+ },
253
+ {
254
+ "kind": "javascript-module",
255
+ "path": "src/styles/index.ts",
256
+ "declarations": [],
257
+ "exports": [
217
258
  {
218
259
  "kind": "js",
219
- "name": "layoutStyles",
260
+ "name": "*",
220
261
  "declaration": {
221
- "name": "layoutStyles",
222
- "module": "./layout-main"
262
+ "name": "*",
263
+ "package": "./constants"
223
264
  }
224
265
  },
225
266
  {
226
267
  "kind": "js",
227
- "name": "layoutTemplate",
268
+ "name": "*",
228
269
  "declaration": {
229
- "name": "layoutTemplate",
230
- "module": "./layout-main"
270
+ "name": "*",
271
+ "package": "./dragging.styles"
231
272
  }
232
273
  },
233
274
  {
@@ -235,1070 +276,600 @@
235
276
  "name": "*",
236
277
  "declaration": {
237
278
  "name": "*",
238
- "package": "./layout-components"
279
+ "package": "./layout.styles"
239
280
  }
240
281
  }
241
282
  ]
242
283
  },
243
284
  {
244
285
  "kind": "javascript-module",
245
- "path": "src/main/layout-components.ts",
286
+ "path": "src/styles/layout.styles.ts",
246
287
  "declarations": [
247
288
  {
248
289
  "kind": "variable",
249
- "name": "foundationLayoutComponents",
290
+ "name": "layoutStyles",
291
+ "default": "css`\n ${containerStyles}\n ${loadingSpinnerStyles}\n\n :host {\n --foundation-tab-height: calc(\n (((var(--base-height-multiplier) + var(--density)) * var(--design-unit)) - 4) * 1px\n );\n }\n\n .lm_goldenlayout {\n border-radius: calc(var(--control-corner-radius) * 1.5px);\n }\n\n .lm_stack.lm_item {\n background-color: var(--neutral-layer-3);\n border-radius: calc(var(--control-corner-radius) * 1.5px);\n }\n\n .lm_maximised .lm_header {\n background-color: var(--neutral-layer-3);\n border-radius: calc(var(--control-corner-radius) * 1.5px);\n position: unset;\n }\n\n .lm_maximised .lm_header .lm_tabs {\n z-index: 3;\n }\n\n .lm_content {\n background-color: var(--neutral-layer-card-container);\n border-radius: calc(var(--control-corner-radius) * 1.5px);\n border: 1px solid;\n border-color: var(--neutral-stroke-rest);\n box-sizing: border-box;\n color: var(--neutral-foreground-rest);\n }\n\n .lm_header .lm_tabs {\n padding: 0 16px;\n }\n\n .lm_stack > .lm_items {\n box-shadow: 0 -1px 15px rgb(0 0 0 / 15%);\n }\n\n .lm_header .lm_tab.lm_active.lm_focused {\n background-color: var(--neutral-layer-card-container);\n }\n\n .lm_header .lm_tab.lm_active {\n background-color: var(--neutral-layer-card-container);\n border: 1px solid;\n border-color: var(--neutral-stroke-rest);\n border-bottom: 0;\n color: var(--accent-foreground-rest);\n }\n\n .lm_header .lm_tab {\n align-items: center;\n background-color: var(--neutral-layer-4);\n border: 0;\n border-bottom-color: transparent;\n border-bottom: 0 solid;\n border-color: var(--neutral-stroke-rest);\n border-radius: calc(var(--control-corner-radius) * 1.5px)\n calc(var(--control-corner-radius) * 1.5px) 0 0;\n color: var(--accent-foreground-rest);\n display: flex;\n font-family: inherit;\n font-size: 13px;\n font-weight: 400;\n height: calc(var(--foundation-tab-height, ${DEFAULT_TAB_HEIGHT}) - 8px);\n margin-right: 2px;\n margin-top: 3px;\n padding: 2px 16px;\n }\n\n .lm_header .lm_tab:not(.lm_active):hover {\n background-color: var(--neutral-layer-card-container);\n color: var(--accent-foreground-rest);\n }\n\n .lm_header .lm_controls {\n top: 4px;\n display: flex;\n }\n\n .lm_header .lm_controls > * {\n width: calc(var(--foundation-tab-height, ${DEFAULT_TAB_HEIGHT}) - 6px);\n height: calc(var(--foundation-tab-height, ${DEFAULT_TAB_HEIGHT}) - 6px);\n background-repeat: no-repeat;\n background-position: center;\n background-size: calc(var(--foundation-tab-height, ${DEFAULT_TAB_HEIGHT}) * 0.533333);\n background-color: color-mix(in srgb, var(--neutral-fill-strong-rest), transparent 90%);\n border-radius: calc(var(--control-corner-radius) * 1.5px);\n margin-right: 4px;\n top: 3px;\n opacity: 100%;\n }\n\n .lm_header .lm_controls > *:hover {\n background-color: color-mix(in srgb, var(--neutral-fill-strong-hover), transparent 75%);\n cursor: pointer;\n }\n\n .lm_controls .lm_maximise {\n background-image: url('${LAYOUT_ICONS.maximiseSVG}');\n }\n\n .lm_maximised .lm_controls .lm_maximise {\n background-image: url('${LAYOUT_ICONS.minimiseSVG}');\n }\n\n .lm_controls .lm_close {\n background-image: url('${LAYOUT_ICONS.closeSVG}');\n }\n\n .lm_header .lm_tab .lm_close_tab {\n background-image: url('${LAYOUT_ICONS.closeSVG}');\n background-size: calc(var(--foundation-tab-height, ${DEFAULT_TAB_HEIGHT}) * 0.2777);\n background-repeat: no-repeat;\n margin-left: 12px;\n position: relative;\n top: 0;\n right: 0;\n }\n\n .lm_header .lm_tab.lm_active {\n padding: 4px 25px 3px 10px;\n }\n\n .lm_header .lm_tab:not(.lm_active) .lm_title {\n color: var(--neutral-foreground-hint);\n }\n\n .lm_header .lm_controls .lm_tabdropdown::before {\n content: none;\n }\n\n .lm_header .lm_controls .lm_tabdropdown {\n background-image: url('${LAYOUT_ICONS.tabDropdownSVG}');\n }\n\n .lm_header .lm_tabdropdown_list {\n top: var(--foundation-tab-height, ${DEFAULT_TAB_HEIGHT});\n right: 108px;\n background-color: var(--neutral-layer-3);\n border: 1px solid;\n border-color: var(--neutral-stroke-rest);\n border-radius: calc(var(--control-corner-radius) * 1.5px);\n box-shadow: 0 5px 15px rgb(0 0 0 / 35%);\n }\n\n .lm_header .lm_tabdropdown_list > .lm_tab {\n box-shadow: none;\n padding: 0 16px;\n white-space: nowrap;\n background-color: transparent;\n color: var(--neutral-foreground-rest);\n height: var(--foundation-tab-height, ${DEFAULT_TAB_HEIGHT});\n border-radius: 0;\n overflow: visible;\n text-overflow: normal;\n }\n\n .lm_header .lm_tabdropdown_list > .lm_tab:last-child {\n border-bottom: 0;\n }\n\n /* gl base styles start */\n .lm_root {\n position: relative;\n }\n\n .lm_row > .lm_item {\n float: left;\n }\n\n .lm_content {\n overflow: hidden;\n position: relative;\n }\n\n .lm_dragging,\n .lm_dragging * {\n cursor: move !important;\n user-select: none;\n }\n\n .lm_maximised {\n left: 0;\n padding: 1px;\n position: absolute;\n top: 0;\n z-index: 40;\n }\n\n .lm_maximise_placeholder {\n display: none;\n }\n\n .lm_splitter {\n position: relative;\n z-index: 20;\n }\n\n .lm_splitter:hover,\n .lm_splitter.lm_dragging {\n background: var(--accent-fill-rest);\n border-radius: calc(var(--control-corner-radius) * 4px);\n }\n\n .lm_splitter.lm_vertical .lm_drag_handle {\n width: 100%;\n height: 15px;\n position: absolute;\n top: -5px;\n cursor: ns-resize !important;\n }\n\n .lm_splitter.lm_horizontal {\n float: left;\n height: 100%;\n }\n\n .lm_splitter.lm_horizontal .lm_drag_handle {\n width: 15px;\n height: 100%;\n position: absolute;\n left: -5px;\n cursor: ew-resize !important;\n }\n\n .lm_header {\n overflow: visible;\n position: relative;\n }\n\n .lm_header [class^='lm_'] {\n box-sizing: content-box !important;\n }\n\n .lm_header .lm_controls {\n position: absolute;\n right: 3px;\n }\n\n .lm_header .lm_controls > li {\n cursor: pointer;\n float: left;\n width: 18px;\n height: 18px;\n text-align: center;\n }\n\n .lm_header ul {\n margin: 0;\n padding: 0;\n list-style-type: none;\n }\n\n .lm_header .lm_tabs {\n position: absolute;\n }\n\n .lm_header .lm_tab {\n cursor: pointer;\n float: left;\n margin-top: 1px;\n padding: 3px 25px 3px 10px;\n position: relative;\n }\n\n .lm_header .lm_tab i {\n width: 2px;\n height: 19px;\n position: absolute;\n }\n\n .lm_header .lm_tab i.lm_left {\n top: 0;\n left: -2px;\n }\n\n .lm_header .lm_tab i.lm_right {\n top: 0;\n right: -2px;\n }\n\n .lm_header .lm_tab .lm_title {\n display: inline-block;\n overflow: hidden;\n text-overflow: ellipsis;\n user-select: none;\n }\n\n .lm_header .lm_tab .lm_title:only-child {\n padding-left: 10px;\n }\n\n .lm_header .lm_tab .lm_close_tab {\n width: calc(var(--foundation-tab-height, ${DEFAULT_TAB_HEIGHT}) * 0.3888);\n height: calc(var(--foundation-tab-height, ${DEFAULT_TAB_HEIGHT}) * 0.3888);\n top: calc(var(--foundation-tab-height, ${DEFAULT_TAB_HEIGHT}) * 0.3055);\n position: absolute;\n right: 0;\n text-align: center;\n }\n\n .lm_stack.lm_left .lm_header,\n .lm_stack.lm_right .lm_header {\n height: 100%;\n }\n\n .lm_dragProxy.lm_left .lm_header,\n .lm_dragProxy.lm_right .lm_header,\n .lm_stack.lm_left .lm_header,\n .lm_stack.lm_right .lm_header {\n width: 20px;\n float: left;\n vertical-align: top;\n }\n\n .lm_dragProxy.lm_left .lm_header .lm_tabs,\n .lm_dragProxy.lm_right .lm_header .lm_tabs,\n .lm_stack.lm_left .lm_header .lm_tabs,\n .lm_stack.lm_right .lm_header .lm_tabs {\n transform-origin: left top;\n top: 0;\n width: 1000px;\n }\n\n .lm_dragProxy.lm_left .lm_header .lm_controls,\n .lm_dragProxy.lm_right .lm_header .lm_controls,\n .lm_stack.lm_left .lm_header .lm_controls,\n .lm_stack.lm_right .lm_header .lm_controls {\n bottom: 0;\n }\n\n .lm_dragProxy.lm_left .lm_items,\n .lm_dragProxy.lm_right .lm_items,\n .lm_stack.lm_left .lm_items,\n .lm_stack.lm_right .lm_items {\n float: left;\n }\n\n .lm_dragProxy.lm_left .lm_header .lm_tabs,\n .lm_stack.lm_left .lm_header .lm_tabs {\n transform: rotate(-90deg) scaleX(-1);\n left: 0;\n }\n\n .lm_dragProxy.lm_left .lm_header .lm_tabs .lm_tab,\n .lm_stack.lm_left .lm_header .lm_tabs .lm_tab {\n transform: scaleX(-1);\n margin-top: 1px;\n }\n\n .lm_dragProxy.lm_left .lm_header .lm_tabdropdown_list,\n .lm_stack.lm_left .lm_header .lm_tabdropdown_list {\n top: initial;\n right: initial;\n left: 20px;\n }\n\n .lm_dragProxy.lm_right .lm_content {\n float: left;\n }\n\n .lm_dragProxy.lm_right .lm_header .lm_tabs,\n .lm_stack.lm_right .lm_header .lm_tabs {\n transform: rotate(90deg) scaleX(1);\n left: 100%;\n margin-left: 0;\n }\n\n .lm_dragProxy.lm_right .lm_header .lm_controls,\n .lm_stack.lm_right .lm_header .lm_controls {\n left: 3px;\n }\n\n .lm_dragProxy.lm_right .lm_header .lm_tabdropdown_list,\n .lm_stack.lm_right .lm_header .lm_tabdropdown_list {\n top: initial;\n right: 20px;\n }\n\n .lm_dragProxy.lm_bottom .lm_header .lm_tab,\n .lm_stack.lm_bottom .lm_header .lm_tab {\n margin-top: 0;\n border-top: none;\n }\n\n .lm_dragProxy.lm_bottom .lm_header .lm_controls,\n .lm_stack.lm_bottom .lm_header .lm_controls {\n top: 3px;\n }\n\n .lm_dragProxy.lm_bottom .lm_header .lm_tabdropdown_list,\n .lm_stack.lm_bottom .lm_header .lm_tabdropdown_list {\n top: initial;\n bottom: 20px;\n }\n\n .lm_drop_tab_placeholder {\n float: left;\n width: 100px;\n height: 10px;\n visibility: hidden;\n }\n\n .lm_header .lm_tabdropdown_list {\n position: absolute;\n top: 20px;\n right: 0;\n z-index: 5;\n overflow: hidden;\n }\n\n .lm_header .lm_tabdropdown_list .lm_tab {\n clear: both;\n padding-right: 10px;\n margin: 0;\n }\n\n .lm_header .lm_tabdropdown_list .lm_tab .lm_title {\n width: 100px;\n }\n\n .lm_header .lm_tabdropdown_list .lm_close_tab {\n display: none !important;\n }\n\n .lm_dragProxy {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 30;\n }\n\n .lm_dragProxy .lm_header {\n background: transparent;\n }\n\n .lm_dragProxy .lm_content {\n border-top: none;\n overflow: hidden;\n }\n\n .lm_dropTargetIndicator {\n display: none;\n position: absolute;\n z-index: 20;\n box-shadow: none;\n }\n\n .lm_dropTargetIndicator .lm_inner {\n width: 100%;\n height: 100%;\n position: relative;\n top: 0;\n left: 0;\n }\n\n .lm_transition_indicator {\n display: none;\n width: 20px;\n height: 20px;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 20;\n }\n\n .lm_popin {\n width: 20px;\n height: 20px;\n position: absolute;\n bottom: 0;\n right: 0;\n z-index: 9999;\n }\n\n .lm_popin > * {\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n }\n\n .lm_popin > .lm_bg {\n z-index: 10;\n }\n\n .lm_popin > .lm_icon {\n z-index: 20;\n } /*# sourceMappingURL=goldenlayout-base.css.map */\n`",
292
+ "description": "`ElementStyles` which defines the css for FoundationLayout.",
293
+ "privacy": "public"
294
+ }
295
+ ],
296
+ "exports": [
297
+ {
298
+ "kind": "js",
299
+ "name": "layoutStyles",
300
+ "declaration": {
301
+ "name": "layoutStyles",
302
+ "module": "src/styles/layout.styles.ts"
303
+ }
304
+ }
305
+ ]
306
+ },
307
+ {
308
+ "kind": "javascript-module",
309
+ "path": "src/utils/constants.ts",
310
+ "declarations": [
311
+ {
312
+ "kind": "variable",
313
+ "name": "DEFAULT_RELOAD_BUFFER",
250
314
  "type": {
251
- "text": "object"
315
+ "text": "number"
252
316
  },
253
- "default": "{\n foundationLayout,\n foundationLayoutRegion,\n foundationLayoutItem,\n register(container?: Container, ...rest: any[]) {\n if (!container) {\n // preserve backward compatibility with code that loops through\n // the values of this object and calls them as funcs with no args\n return;\n }\n for (const key in this) {\n if (key === 'register') {\n continue;\n }\n this[key]().register(container, ...rest);\n }\n },\n}",
254
- "description": "Registration object to register the layout with your design system.",
317
+ "default": "500",
318
+ "description": "Default time in milliseconds for the layout to buffer calls to reloading\nthe layout while the declarative API is loading.\n\nDuring the first load of the layout, a loading spinner will be shown.",
255
319
  "privacy": "public"
320
+ },
321
+ {
322
+ "kind": "variable",
323
+ "name": "LAYOUT_POPOUT_CONTROL_KEY",
324
+ "type": {
325
+ "text": "string"
326
+ },
327
+ "default": "'f-layout-key'",
328
+ "description": "Key to be used for controlling popout behaviour"
329
+ },
330
+ {
331
+ "kind": "variable",
332
+ "name": "POPOUT_GEOMETRY_BROADCAST_INTERVAL",
333
+ "type": {
334
+ "text": "number"
335
+ },
336
+ "default": "1000",
337
+ "description": "How often a popout window should check to broadcast its\ngeometry"
338
+ },
339
+ {
340
+ "kind": "variable",
341
+ "name": "LAYOUT_POPOUT_CONTAINER_CLASS",
342
+ "type": {
343
+ "text": "string"
344
+ },
345
+ "default": "'f-layout-popout'",
346
+ "description": "Put this classname on an element which is a DOM parent of the layout, and\nif the layout goes into popout mode then it will place itself as the only child\nfor the popout container you set."
347
+ },
348
+ {
349
+ "kind": "variable",
350
+ "name": "DEFAULT_TAB_HEIGHT",
351
+ "type": {
352
+ "text": "string"
353
+ },
354
+ "default": "'36px'"
355
+ },
356
+ {
357
+ "kind": "function",
358
+ "name": "getLayoutHeaderHeight"
256
359
  }
257
360
  ],
258
361
  "exports": [
259
362
  {
260
363
  "kind": "js",
261
- "name": "foundationLayoutComponents",
364
+ "name": "DEFAULT_RELOAD_BUFFER",
262
365
  "declaration": {
263
- "name": "foundationLayoutComponents",
264
- "module": "src/main/layout-components.ts"
366
+ "name": "DEFAULT_RELOAD_BUFFER",
367
+ "module": "src/utils/constants.ts"
368
+ }
369
+ },
370
+ {
371
+ "kind": "js",
372
+ "name": "LAYOUT_POPOUT_CONTROL_KEY",
373
+ "declaration": {
374
+ "name": "LAYOUT_POPOUT_CONTROL_KEY",
375
+ "module": "src/utils/constants.ts"
376
+ }
377
+ },
378
+ {
379
+ "kind": "js",
380
+ "name": "POPOUT_GEOMETRY_BROADCAST_INTERVAL",
381
+ "declaration": {
382
+ "name": "POPOUT_GEOMETRY_BROADCAST_INTERVAL",
383
+ "module": "src/utils/constants.ts"
384
+ }
385
+ },
386
+ {
387
+ "kind": "js",
388
+ "name": "LAYOUT_POPOUT_CONTAINER_CLASS",
389
+ "declaration": {
390
+ "name": "LAYOUT_POPOUT_CONTAINER_CLASS",
391
+ "module": "src/utils/constants.ts"
392
+ }
393
+ },
394
+ {
395
+ "kind": "js",
396
+ "name": "DEFAULT_TAB_HEIGHT",
397
+ "declaration": {
398
+ "name": "DEFAULT_TAB_HEIGHT",
399
+ "module": "src/utils/constants.ts"
400
+ }
401
+ },
402
+ {
403
+ "kind": "js",
404
+ "name": "getLayoutHeaderHeight",
405
+ "declaration": {
406
+ "name": "getLayoutHeaderHeight",
407
+ "module": "src/utils/constants.ts"
265
408
  }
266
409
  }
267
410
  ]
268
411
  },
269
412
  {
270
413
  "kind": "javascript-module",
271
- "path": "src/main/layout-item.ts",
414
+ "path": "src/utils/error.ts",
272
415
  "declarations": [
273
416
  {
274
417
  "kind": "class",
275
418
  "description": "",
276
- "name": "FoundationLayoutItem",
277
- "members": [
278
- {
279
- "kind": "field",
280
- "name": "title",
281
- "type": {
282
- "text": "string"
283
- },
284
- "description": "Sets the title of the item which is displayed on the tab.",
285
- "privacy": "public"
286
- },
287
- {
288
- "kind": "field",
289
- "name": "closable",
290
- "type": {
291
- "text": "boolean"
292
- },
293
- "default": "false",
294
- "description": "Boolean attribute controls whether the window can be closed in the GUI.\nDefaults to `false`.",
295
- "privacy": "public"
296
- },
297
- {
298
- "kind": "field",
299
- "name": "size",
300
- "type": {
301
- "text": "string"
302
- },
303
- "description": "optional string describing the size of the new item (see the written documentation for more info)",
304
- "privacy": "public"
305
- },
306
- {
307
- "kind": "field",
308
- "name": "registration",
309
- "type": {
310
- "text": "string"
311
- },
312
- "description": "Sets the registration name for the item, which can be used later to add the item via the JavaScript API using FoundationLayout.addItem.",
313
- "privacy": "public"
314
- },
315
- {
316
- "kind": "field",
317
- "name": "_presentation",
318
- "type": {
319
- "text": "ComponentPresentation | null | undefined"
320
- },
321
- "privacy": "private",
322
- "default": "void 0",
323
- "inheritedFrom": {
324
- "name": "FoundationElement",
325
- "module": "src/foundation-element/foundation-element.ts"
326
- }
327
- },
328
- {
329
- "kind": "field",
330
- "name": "$presentation",
331
- "type": {
332
- "text": "ComponentPresentation | null"
333
- },
334
- "privacy": "public",
335
- "description": "A property which resolves the ComponentPresentation instance\nfor the current component.",
336
- "inheritedFrom": {
337
- "name": "FoundationElement",
338
- "module": "src/foundation-element/foundation-element.ts"
339
- }
340
- },
341
- {
342
- "kind": "field",
343
- "name": "template",
344
- "type": {
345
- "text": "ElementViewTemplate | void | null"
346
- },
347
- "privacy": "public",
348
- "description": "Sets the template of the element instance. When undefined,\nthe element will attempt to resolve the template from\nthe associated presentation or custom element definition.",
349
- "inheritedFrom": {
350
- "name": "FoundationElement",
351
- "module": "src/foundation-element/foundation-element.ts"
352
- }
353
- },
354
- {
355
- "kind": "method",
356
- "name": "templateChanged",
357
- "privacy": "protected",
358
- "return": {
359
- "type": {
360
- "text": "void"
361
- }
362
- },
363
- "inheritedFrom": {
364
- "name": "FoundationElement",
365
- "module": "src/foundation-element/foundation-element.ts"
366
- }
367
- },
368
- {
369
- "kind": "field",
370
- "name": "styles",
371
- "type": {
372
- "text": "ElementStyles | void | null"
373
- },
374
- "privacy": "public",
375
- "description": "Sets the default styles for the element instance. When undefined,\nthe element will attempt to resolve default styles from\nthe associated presentation or custom element definition.",
376
- "inheritedFrom": {
377
- "name": "FoundationElement",
378
- "module": "src/foundation-element/foundation-element.ts"
379
- }
380
- },
381
- {
382
- "kind": "method",
383
- "name": "stylesChanged",
384
- "privacy": "protected",
385
- "return": {
386
- "type": {
387
- "text": "void"
388
- }
389
- },
390
- "inheritedFrom": {
391
- "name": "FoundationElement",
392
- "module": "src/foundation-element/foundation-element.ts"
393
- }
394
- },
395
- {
396
- "kind": "method",
397
- "name": "compose",
398
- "privacy": "public",
399
- "static": true,
400
- "return": {
401
- "type": {
402
- "text": "(\n overrideDefinition?: OverrideFoundationElementDefinition<T>\n ) => FoundationElementRegistry<T, K>"
403
- }
404
- },
405
- "parameters": [
406
- {
407
- "name": "this",
408
- "type": {
409
- "text": "K"
410
- }
411
- },
412
- {
413
- "name": "elementDefinition",
414
- "type": {
415
- "text": "T"
416
- },
417
- "description": "The definition of the element to create the registry\nfunction for."
418
- }
419
- ],
420
- "description": "Defines an element registry function with a set of element definition defaults.",
421
- "inheritedFrom": {
422
- "name": "FoundationElement",
423
- "module": "src/foundation-element/foundation-element.ts"
424
- }
425
- }
426
- ],
427
- "attributes": [
428
- {
429
- "name": "title",
430
- "type": {
431
- "text": "string"
432
- },
433
- "description": "Sets the title of the item which is displayed on the tab.",
434
- "fieldName": "title"
435
- },
436
- {
437
- "type": {
438
- "text": "boolean"
439
- },
440
- "default": "false",
441
- "description": "Boolean attribute controls whether the window can be closed in the GUI.\nDefaults to `false`.",
442
- "fieldName": "closable"
443
- },
444
- {
445
- "name": "size",
446
- "type": {
447
- "text": "string"
448
- },
449
- "description": "optional string describing the size of the new item (see the written documentation for more info)",
450
- "fieldName": "size"
451
- },
452
- {
453
- "name": "registration",
454
- "type": {
455
- "text": "string"
456
- },
457
- "description": "Sets the registration name for the item, which can be used later to add the item via the JavaScript API using FoundationLayout.addItem.",
458
- "fieldName": "registration"
459
- }
460
- ],
419
+ "name": "LayoutUsageError",
461
420
  "superclass": {
462
- "name": "FoundationElement",
463
- "package": "@microsoft/fast-foundation"
421
+ "name": "Error",
422
+ "module": "src/utils/error.ts"
423
+ }
424
+ },
425
+ {
426
+ "kind": "class",
427
+ "description": "",
428
+ "name": "LayoutRegistrationError",
429
+ "superclass": {
430
+ "name": "Error",
431
+ "module": "src/utils/error.ts"
432
+ }
433
+ }
434
+ ],
435
+ "exports": [
436
+ {
437
+ "kind": "js",
438
+ "name": "LayoutUsageError",
439
+ "declaration": {
440
+ "name": "LayoutUsageError",
441
+ "module": "src/utils/error.ts"
442
+ }
443
+ },
444
+ {
445
+ "kind": "js",
446
+ "name": "LayoutRegistrationError",
447
+ "declaration": {
448
+ "name": "LayoutRegistrationError",
449
+ "module": "src/utils/error.ts"
450
+ }
451
+ }
452
+ ]
453
+ },
454
+ {
455
+ "kind": "javascript-module",
456
+ "path": "src/utils/events.ts",
457
+ "declarations": [
458
+ {
459
+ "kind": "variable",
460
+ "name": "LayoutEmitEvents",
461
+ "type": {
462
+ "text": "{\n firstLoaded: 'first-loaded',\n itemAdded: 'item-added',\n itemRemoved: 'item-removed',\n itemResized: 'item-resized',\n}"
464
463
  },
465
- "tagName": "%%prefix%%-layout-item",
466
- "customElement": true
464
+ "default": "{\n firstLoaded: 'first-loaded',\n itemAdded: 'item-added',\n itemRemoved: 'item-removed',\n itemResized: 'item-resized',\n}",
465
+ "description": "Defines events that the layout system emits\n\n'firstLoaded' - emitted when the layout has finished loading the first time\nusing the declarative API after DEFAULT_RELOAD_BUFFER ms.\n<br/>\n'itemAdded' - emitted when an item is added to the layout'\n<br/>\n'itemRemoved' - emitted when an item is removed from the layout'\n<br/>\n'itemResized' - emitted when the user drags the divider to resize elements",
466
+ "privacy": "public"
467
+ },
468
+ {
469
+ "kind": "variable",
470
+ "name": "LayoutReceiveEvents",
471
+ "type": {
472
+ "text": "{\n changeTitle: 'change-title',\n autosave: 'autosave',\n}"
473
+ },
474
+ "default": "{\n changeTitle: 'change-title',\n autosave: 'autosave',\n}",
475
+ "description": "Defines events that the layout system listens for\n\n'changeTitle' - emit this from a contained item to update the title of the window that contains it.\n'autosave' - emit this from a contained item to hint to the layout system that it should autosave the layout. A contained item should do this if it has just changed some state it would like to persist. See LayoutComponentWithState.",
476
+ "privacy": "public"
467
477
  }
468
478
  ],
469
479
  "exports": [
470
480
  {
471
481
  "kind": "js",
472
- "name": "FoundationLayoutItem",
482
+ "name": "LayoutEmitEvents",
473
483
  "declaration": {
474
- "name": "FoundationLayoutItem",
475
- "module": "src/main/layout-item.ts"
484
+ "name": "LayoutEmitEvents",
485
+ "module": "src/utils/events.ts"
486
+ }
487
+ },
488
+ {
489
+ "kind": "js",
490
+ "name": "LayoutReceiveEvents",
491
+ "declaration": {
492
+ "name": "LayoutReceiveEvents",
493
+ "module": "src/utils/events.ts"
476
494
  }
477
495
  }
478
496
  ]
479
497
  },
480
498
  {
481
499
  "kind": "javascript-module",
482
- "path": "src/main/layout-main.ts",
500
+ "path": "src/utils/factory-registry.ts",
483
501
  "declarations": [
484
502
  {
485
- "kind": "class",
486
- "description": "",
487
- "name": "FoundationLayout",
488
- "members": [
503
+ "kind": "function",
504
+ "name": "registerFactory",
505
+ "return": {
506
+ "type": {
507
+ "text": "void"
508
+ }
509
+ },
510
+ "parameters": [
489
511
  {
490
- "kind": "field",
491
- "name": "layout",
512
+ "name": "key",
492
513
  "type": {
493
- "text": "GoldenLayout"
514
+ "text": "string"
494
515
  },
495
- "privacy": "private"
516
+ "description": "Unique identifier for the factory. Should be descriptive and unique across the application."
496
517
  },
497
518
  {
498
- "kind": "field",
499
- "name": "layoutConfig",
519
+ "name": "factory",
500
520
  "type": {
501
- "text": "LayoutConfig"
521
+ "text": "ComponentFactory"
502
522
  },
503
- "privacy": "private",
504
- "default": "{ root: undefined }"
505
- },
523
+ "description": "The factory function that creates the component."
524
+ }
525
+ ],
526
+ "description": "Registers a factory function with a unique key.\nThis allows framework components to be used in the declarative layout API\nwithout needing to pass function references through HTML attributes.",
527
+ "privacy": "public"
528
+ },
529
+ {
530
+ "kind": "function",
531
+ "name": "getFactory",
532
+ "return": {
533
+ "type": {
534
+ "text": ""
535
+ }
536
+ },
537
+ "parameters": [
506
538
  {
507
- "kind": "field",
508
- "name": "defaultLayoutConfig",
539
+ "name": "key",
509
540
  "type": {
510
- "text": "LayoutConfig"
541
+ "text": "string"
511
542
  },
512
- "privacy": "private",
513
- "default": "{ root: undefined }"
514
- },
515
- {
516
- "kind": "field",
517
- "name": "reloadBuffer",
518
- "type": {
519
- "text": "number"
520
- },
521
- "default": "DEFAULT_RELOAD_BUFFER",
522
- "description": "Number describing how long to wait in ms before reloading the config when adding items\ndeclaratively by the html API. Default 500 (ms).",
523
- "privacy": "public"
524
- },
525
- {
526
- "kind": "field",
527
- "name": "reloadPending",
528
- "type": {
529
- "text": "boolean"
530
- },
531
- "privacy": "private",
532
- "default": "false"
533
- },
534
- {
535
- "kind": "field",
536
- "name": "registeredComponents",
537
- "type": {
538
- "text": "number"
539
- },
540
- "privacy": "private",
541
- "default": "0"
542
- },
543
- {
544
- "kind": "field",
545
- "name": "autoSaveKey",
546
- "type": {
547
- "text": "string | undefined"
548
- },
549
- "description": "Attribute which if set will auto save and load the layout as the user changes it.\nOmit this attribute to disable this feature.\nSet attribute using `auto-save-key`.",
550
- "privacy": "public"
551
- },
552
- {
553
- "kind": "field",
554
- "name": "missingItemPlaceholder",
555
- "description": "Function which is used to generate the placeholder text when a layout is loaded\nwith a missing item.",
556
- "privacy": "public"
557
- },
558
- {
559
- "kind": "field",
560
- "name": "dimensionsConfig",
561
- "type": {
562
- "text": "LayoutConfig.Dimensions | undefined"
563
- },
564
- "description": "Apply dimensions config to the layout, such as setting the size of the drag handles.",
565
- "privacy": "public"
566
- },
567
- {
568
- "kind": "field",
569
- "name": "hasFirstLoaded",
570
- "type": {
571
- "text": "boolean"
572
- },
573
- "default": "false",
574
- "description": "Boolean signifies whether the layout has loaded for the first time or not.",
575
- "privacy": "public"
576
- },
577
- {
578
- "kind": "field",
579
- "name": "customButtons",
580
- "type": {
581
- "text": "CustomButton[]"
582
- },
583
- "default": "[]",
584
- "description": "Set custom button definition on this property to add them to the layout header controls",
585
- "privacy": "public"
586
- },
587
- {
588
- "kind": "field",
589
- "name": "dragging",
590
- "type": {
591
- "text": "boolean"
592
- },
593
- "default": "false",
594
- "privacy": "public"
595
- },
596
- {
597
- "kind": "field",
598
- "name": "class",
599
- "privacy": "public",
600
- "default": "'FoundationLayoutMain'",
601
- "type": {
602
- "text": "'FoundationLayoutMain'"
603
- }
604
- },
605
- {
606
- "kind": "field",
607
- "name": "lifecycleUpdateToken",
608
- "type": {
609
- "text": "string | undefined"
610
- },
611
- "privacy": "public",
612
- "default": "undefined",
613
- "description": "Used to calculate whether a layout item should run its lifecycle methods or not"
614
- },
543
+ "description": "The unique identifier for the factory."
544
+ }
545
+ ],
546
+ "description": "Retrieves a factory function by its key.",
547
+ "privacy": "public"
548
+ },
549
+ {
550
+ "kind": "function",
551
+ "name": "unregisterFactory",
552
+ "return": {
553
+ "type": {
554
+ "text": ""
555
+ }
556
+ },
557
+ "parameters": [
615
558
  {
616
- "kind": "field",
617
- "name": "popoutConfig",
559
+ "name": "key",
618
560
  "type": {
619
- "text": "LayoutPopoutConfig | undefined"
620
- },
621
- "default": "undefined",
622
- "description": "Controls whether popout functionality is enabled on the layout. Defaults to disabled.\nPass an empty object `{}` to use default configurations, or a LayoutPopoutConfig object to further customise."
623
- },
624
- {
625
- "kind": "method",
626
- "name": "layoutRequiredRegistrations",
627
- "static": true,
628
- "return": {
629
- "type": {
630
- "text": ""
631
- }
632
- },
633
- "parameters": [
634
- {
635
- "name": "layout",
636
- "type": {
637
- "text": "SerialisedLayout"
638
- },
639
- "description": "any version of {@link SerialisedLayout}object describing the layout\n * "
640
- }
641
- ],
642
- "description": "JS API, public",
643
- "privacy": "public"
644
- },
645
- {
646
- "kind": "method",
647
- "name": "registeredItems",
648
- "return": {
649
- "type": {
650
- "text": ""
651
- }
652
- },
653
- "privacy": "public"
654
- },
655
- {
656
- "kind": "method",
657
- "name": "getLayout",
658
- "return": {
659
- "type": {
660
- "text": ""
661
- }
662
- },
663
- "privacy": "public"
664
- },
665
- {
666
- "kind": "method",
667
- "name": "tryActivatePopoutMode",
668
- "return": {
669
- "type": {
670
- "text": "boolean"
671
- }
672
- },
673
- "description": "If in a popout window from the dynamic layout, this function will run the flow to put the component in popout mode.\nThis function is automatically called if using the declarative HTML API, but if only using the JavaScript API then you will need to call this function manually."
674
- },
675
- {
676
- "kind": "method",
677
- "name": "tryLoadLayoutFromLocalStorage",
678
- "return": {
679
- "type": {
680
- "text": ""
681
- }
682
- },
683
- "description": "Try to load a layout from local storage, or return false. Only required if manually calling FoundationLayout.registerItem",
684
- "privacy": "public"
685
- },
686
- {
687
- "kind": "method",
688
- "name": "clearAutosaveAndRevertToDefault",
689
- "return": {
690
- "type": {
691
- "text": ""
692
- }
693
- },
694
- "privacy": "public"
695
- },
696
- {
697
- "kind": "method",
698
- "name": "loadLayout",
699
- "parameters": [
700
- {
701
- "name": "layout",
702
- "type": {
703
- "text": "SerialisedLayout"
704
- },
705
- "description": "any version of {@link SerialisedLayout}object describing the layout\n * "
706
- },
707
- {
708
- "name": "handleMissingItem",
709
- "default": "'error'",
710
- "type": {
711
- "text": "'placeholder' | 'error'"
712
- },
713
- "description": "what to do if the layout contains items that are not currently registered with the layout system. Defaults to 'error' which will throw an error. If set to 'placeholder' then any missing items will be replaced with a placeholder element. You can control the text of the placeholder element with {@link FoundationLayout.missingItemPlaceholder}.\n * "
714
- },
715
- {
716
- "name": "disableCache",
717
- "default": "false",
718
- "type": {
719
- "text": "boolean"
720
- },
721
- "description": "if set to true then the layout will give you a new instance of every item, even if it has a currently cached item to use. Using this will not stop you from saving and loading state via the {@link LayoutComponentWithState}interface. Defaults to false.\n * "
722
- }
723
- ],
724
- "privacy": "public"
725
- },
726
- {
727
- "kind": "method",
728
- "name": "addItem",
729
- "parameters": [
730
- {
731
- "name": "config",
732
- "type": {
733
- "text": "RegisteredElementConfig | RegisteredElementConfig[]"
734
- },
735
- "description": "{@link RegisteredElementConfig}configuration items for the new items(s). Pass an array of {@link RegisteredElementConfig}to add multiple items at once.\n * "
736
- },
737
- {
738
- "name": "placement",
739
- "default": "defaultAddItemPlacement",
740
- "type": {
741
- "text": "Placement"
742
- },
743
- "description": "where and how to add the new items to the layout. For more info and defaults see {@link Placement}.\n * "
744
- }
745
- ],
746
- "privacy": "public"
747
- },
748
- {
749
- "kind": "method",
750
- "name": "removeItems",
751
- "return": {
752
- "type": {
753
- "text": ""
754
- }
561
+ "text": "string"
755
562
  },
756
- "parameters": [
757
- {
758
- "name": "registration",
759
- "type": {
760
- "text": "string"
761
- },
762
- "description": "string of the registration ID"
763
- },
764
- {
765
- "name": "force",
766
- "default": "false",
767
- "type": {
768
- "text": "boolean"
769
- },
770
- "description": "if set to true then the item will be removed even if it is not closable. Defaults to false, which is the same behaviour as the close button on the header."
771
- }
772
- ],
773
- "privacy": "public"
774
- },
775
- {
776
- "kind": "method",
777
- "name": "registerItem",
778
- "return": {
779
- "type": {
780
- "text": ""
781
- }
782
- },
783
- "parameters": [
784
- {
785
- "name": "registration",
786
- "type": {
787
- "text": "string"
788
- },
789
- "description": "string of the registration ID"
790
- },
791
- {
792
- "name": "elementsOrFactory",
793
- "type": {
794
- "text": "Element[] | ComponentFactory"
795
- },
796
- "description": "Either Elements[] containing the reference to the elements to register, or a ComponentFactory function"
797
- }
798
- ],
799
- "privacy": "public"
800
- },
801
- {
802
- "kind": "method",
803
- "name": "updateLifecycleToken",
804
- "privacy": "private",
805
- "return": {
806
- "type": {
807
- "text": "void"
808
- }
809
- },
810
- "description": "The `LifecycleMixin` can use the lifecycleUpdateToken to determine if it needs to gate\nlifecycle methods from running when other items have been added or deleted.\nThis key is updated every time one of these actions are performed, so you can check if the key has changed and know you potentially need to gate some of your lifecycle functionality.\nThis method should be called whenever we are about to perform an action which will cause a lifecycle update, should as adding or removing an item from the layout"
811
- },
812
- {
813
- "kind": "method",
814
- "name": "handleGLRunErrors",
815
- "privacy": "private",
816
- "parameters": [
817
- {
818
- "name": "e",
819
- "type": {
820
- "text": "Error"
821
- }
822
- }
823
- ],
824
- "description": "For specific golden layout errors we can provide better information to the caller. Else re-throw the original error"
825
- },
826
- {
827
- "kind": "field",
828
- "name": "_presentation",
829
- "type": {
830
- "text": "ComponentPresentation | null | undefined"
831
- },
832
- "privacy": "private",
833
- "default": "void 0",
834
- "inheritedFrom": {
835
- "name": "FoundationElement",
836
- "module": "src/foundation-element/foundation-element.ts"
837
- }
838
- },
839
- {
840
- "kind": "field",
841
- "name": "$presentation",
842
- "type": {
843
- "text": "ComponentPresentation | null"
844
- },
845
- "privacy": "public",
846
- "description": "A property which resolves the ComponentPresentation instance\nfor the current component.",
847
- "inheritedFrom": {
848
- "name": "FoundationElement",
849
- "module": "src/foundation-element/foundation-element.ts"
850
- }
851
- },
852
- {
853
- "kind": "field",
854
- "name": "template",
855
- "type": {
856
- "text": "ElementViewTemplate | void | null"
857
- },
858
- "privacy": "public",
859
- "description": "Sets the template of the element instance. When undefined,\nthe element will attempt to resolve the template from\nthe associated presentation or custom element definition.",
860
- "inheritedFrom": {
861
- "name": "FoundationElement",
862
- "module": "src/foundation-element/foundation-element.ts"
863
- }
864
- },
865
- {
866
- "kind": "method",
867
- "name": "templateChanged",
868
- "privacy": "protected",
869
- "return": {
870
- "type": {
871
- "text": "void"
872
- }
873
- },
874
- "inheritedFrom": {
875
- "name": "FoundationElement",
876
- "module": "src/foundation-element/foundation-element.ts"
877
- }
878
- },
879
- {
880
- "kind": "field",
881
- "name": "styles",
882
- "type": {
883
- "text": "ElementStyles | void | null"
884
- },
885
- "privacy": "public",
886
- "description": "Sets the default styles for the element instance. When undefined,\nthe element will attempt to resolve default styles from\nthe associated presentation or custom element definition.",
887
- "inheritedFrom": {
888
- "name": "FoundationElement",
889
- "module": "src/foundation-element/foundation-element.ts"
890
- }
891
- },
892
- {
893
- "kind": "method",
894
- "name": "stylesChanged",
895
- "privacy": "protected",
896
- "return": {
897
- "type": {
898
- "text": "void"
899
- }
900
- },
901
- "inheritedFrom": {
902
- "name": "FoundationElement",
903
- "module": "src/foundation-element/foundation-element.ts"
904
- }
905
- },
906
- {
907
- "kind": "method",
908
- "name": "compose",
909
- "privacy": "public",
910
- "static": true,
911
- "return": {
912
- "type": {
913
- "text": "(\n overrideDefinition?: OverrideFoundationElementDefinition<T>\n ) => FoundationElementRegistry<T, K>"
914
- }
915
- },
916
- "parameters": [
917
- {
918
- "name": "this",
919
- "type": {
920
- "text": "K"
921
- }
922
- },
923
- {
924
- "name": "elementDefinition",
925
- "type": {
926
- "text": "T"
927
- },
928
- "description": "The definition of the element to create the registry\nfunction for."
929
- }
930
- ],
931
- "description": "Defines an element registry function with a set of element definition defaults.",
932
- "inheritedFrom": {
933
- "name": "FoundationElement",
934
- "module": "src/foundation-element/foundation-element.ts"
935
- }
936
- }
937
- ],
938
- "events": [
939
- {
940
- "description": "emitted when the layout has finished loading the first time",
941
- "name": "first-loaded"
942
- },
943
- {
944
- "description": "emitted when an item is added to the layout",
945
- "name": "item-added"
946
- },
947
- {
948
- "description": "emitted when an item is removed from the layout",
949
- "name": "item-removed"
950
- },
951
- {
952
- "description": "emitted when the user drags the divider to resize elements",
953
- "name": "item-resized"
954
- }
955
- ],
956
- "attributes": [
957
- {
958
- "name": "reload-buffer",
959
- "type": {
960
- "text": "number"
961
- },
962
- "default": "DEFAULT_RELOAD_BUFFER",
963
- "description": "Number describing how long to wait in ms before reloading the config when adding items\ndeclaratively by the html API. Default 500 (ms).",
964
- "resolveInitializer": {
965
- "module": "/src/utils/"
966
- },
967
- "fieldName": "reloadBuffer"
968
- },
969
- {
970
- "name": "auto-save-key",
971
- "type": {
972
- "text": "string | undefined"
973
- },
974
- "description": "Attribute which if set will auto save and load the layout as the user changes it.\nOmit this attribute to disable this feature.\nSet attribute using `auto-save-key`.",
975
- "fieldName": "autoSaveKey"
563
+ "description": "The unique identifier for the factory to remove."
976
564
  }
977
565
  ],
978
- "superclass": {
979
- "name": "FoundationElement",
980
- "package": "@microsoft/fast-foundation"
981
- },
982
- "tagName": "%%prefix%%-layout",
983
- "customElement": true
984
- },
985
- {
986
- "kind": "variable",
987
- "name": "layoutTemplate",
988
- "default": "html<FoundationLayout>`\n <template>\n ${when(\n (x) => Boolean(x.popoutConfig),\n html<FoundationLayout>`\n <foundation-layout-popout-controller\n ${ref('popoutController')}\n :parentLayout=\"${(x) => x}\"\n channel-name=\"${(x) => x.popoutConfig?.channelName}\"\n ></foundation-layout-popout-controller>\n `,\n )}\n ${when((x) => !x.hasFirstLoaded && x.usingDeclerativeAPI, loadingTemplate)}\n <div class=\"layout-container\" ${ref('layoutElement')}></div>\n </template>\n`",
989
- "description": "`ViewTemplate` which defines the html for FoundationLayout.",
566
+ "description": "Removes a factory from the registry.\nThis is useful for cleanup when a component is unmounted or no longer needed.",
990
567
  "privacy": "public"
991
568
  }
992
569
  ],
993
570
  "exports": [
994
571
  {
995
572
  "kind": "js",
996
- "name": "layoutStyles",
573
+ "name": "registerFactory",
997
574
  "declaration": {
998
- "name": "layoutStyles",
999
- "module": "../styles"
575
+ "name": "registerFactory",
576
+ "module": "src/utils/factory-registry.ts"
1000
577
  }
1001
578
  },
1002
579
  {
1003
580
  "kind": "js",
1004
- "name": "FoundationLayout",
581
+ "name": "getFactory",
1005
582
  "declaration": {
1006
- "name": "FoundationLayout",
1007
- "module": "src/main/layout-main.ts"
583
+ "name": "getFactory",
584
+ "module": "src/utils/factory-registry.ts"
1008
585
  }
1009
586
  },
1010
587
  {
1011
588
  "kind": "js",
1012
- "name": "layoutTemplate",
589
+ "name": "unregisterFactory",
1013
590
  "declaration": {
1014
- "name": "layoutTemplate",
1015
- "module": "src/main/layout-main.ts"
591
+ "name": "unregisterFactory",
592
+ "module": "src/utils/factory-registry.ts"
1016
593
  }
1017
594
  }
1018
595
  ]
1019
596
  },
1020
597
  {
1021
598
  "kind": "javascript-module",
1022
- "path": "src/main/layout-popout-controller.ts",
1023
- "declarations": [
599
+ "path": "src/utils/index.ts",
600
+ "declarations": [],
601
+ "exports": [
602
+ {
603
+ "kind": "js",
604
+ "name": "*",
605
+ "declaration": {
606
+ "name": "*",
607
+ "package": "./constants"
608
+ }
609
+ },
610
+ {
611
+ "kind": "js",
612
+ "name": "*",
613
+ "declaration": {
614
+ "name": "*",
615
+ "package": "./error"
616
+ }
617
+ },
618
+ {
619
+ "kind": "js",
620
+ "name": "*",
621
+ "declaration": {
622
+ "name": "*",
623
+ "package": "./events"
624
+ }
625
+ },
626
+ {
627
+ "kind": "js",
628
+ "name": "*",
629
+ "declaration": {
630
+ "name": "*",
631
+ "package": "./factory-registry"
632
+ }
633
+ },
634
+ {
635
+ "kind": "js",
636
+ "name": "*",
637
+ "declaration": {
638
+ "name": "*",
639
+ "package": "./misc"
640
+ }
641
+ },
642
+ {
643
+ "kind": "js",
644
+ "name": "*",
645
+ "declaration": {
646
+ "name": "*",
647
+ "package": "./templates"
648
+ }
649
+ },
650
+ {
651
+ "kind": "js",
652
+ "name": "*",
653
+ "declaration": {
654
+ "name": "*",
655
+ "package": "./popout-events"
656
+ }
657
+ },
658
+ {
659
+ "kind": "js",
660
+ "name": "*",
661
+ "declaration": {
662
+ "name": "*",
663
+ "package": "./types"
664
+ }
665
+ },
666
+ {
667
+ "kind": "js",
668
+ "name": "*",
669
+ "declaration": {
670
+ "name": "*",
671
+ "package": "./error"
672
+ }
673
+ }
674
+ ]
675
+ },
676
+ {
677
+ "kind": "javascript-module",
678
+ "path": "src/utils/logger.ts",
679
+ "declarations": [
680
+ {
681
+ "kind": "variable",
682
+ "name": "logger"
683
+ }
684
+ ],
685
+ "exports": [
686
+ {
687
+ "kind": "js",
688
+ "name": "logger",
689
+ "declaration": {
690
+ "name": "logger",
691
+ "module": "src/utils/logger.ts"
692
+ }
693
+ }
694
+ ]
695
+ },
696
+ {
697
+ "kind": "javascript-module",
698
+ "path": "src/utils/misc.ts",
699
+ "declarations": [],
700
+ "exports": []
701
+ },
702
+ {
703
+ "kind": "javascript-module",
704
+ "path": "src/utils/popout-events.ts",
705
+ "declarations": [
706
+ {
707
+ "kind": "variable",
708
+ "name": "LAYOUT_POPOUT_CHANNEL_NAME",
709
+ "type": {
710
+ "text": "string"
711
+ },
712
+ "default": "'f-layout-popout-channel'",
713
+ "description": "Name of the default broadcast channel used for layout popouts",
714
+ "privacy": "public"
715
+ }
716
+ ],
717
+ "exports": [
718
+ {
719
+ "kind": "js",
720
+ "name": "LAYOUT_POPOUT_CHANNEL_NAME",
721
+ "declaration": {
722
+ "name": "LAYOUT_POPOUT_CHANNEL_NAME",
723
+ "module": "src/utils/popout-events.ts"
724
+ }
725
+ },
726
+ {
727
+ "kind": "js",
728
+ "name": "PopoutGeometry",
729
+ "declaration": {
730
+ "name": "PopoutGeometry",
731
+ "module": "src/utils/popout-events.ts"
732
+ }
733
+ }
734
+ ]
735
+ },
736
+ {
737
+ "kind": "javascript-module",
738
+ "path": "src/utils/templates.ts",
739
+ "declarations": [],
740
+ "exports": []
741
+ },
742
+ {
743
+ "kind": "javascript-module",
744
+ "path": "src/utils/types.ts",
745
+ "declarations": [],
746
+ "exports": []
747
+ },
748
+ {
749
+ "kind": "javascript-module",
750
+ "path": "src/main/index.ts",
751
+ "declarations": [],
752
+ "exports": [
753
+ {
754
+ "kind": "js",
755
+ "name": "FoundationLayoutItem",
756
+ "declaration": {
757
+ "name": "FoundationLayoutItem",
758
+ "module": "./layout-item"
759
+ }
760
+ },
761
+ {
762
+ "kind": "js",
763
+ "name": "FoundationLayoutRegion",
764
+ "declaration": {
765
+ "name": "FoundationLayoutRegion",
766
+ "module": "./layout-region"
767
+ }
768
+ },
769
+ {
770
+ "kind": "js",
771
+ "name": "FoundationLayout",
772
+ "declaration": {
773
+ "name": "FoundationLayout",
774
+ "module": "./layout-main"
775
+ }
776
+ },
777
+ {
778
+ "kind": "js",
779
+ "name": "layoutStyles",
780
+ "declaration": {
781
+ "name": "layoutStyles",
782
+ "module": "./layout-main"
783
+ }
784
+ },
785
+ {
786
+ "kind": "js",
787
+ "name": "layoutTemplate",
788
+ "declaration": {
789
+ "name": "layoutTemplate",
790
+ "module": "./layout-main"
791
+ }
792
+ },
793
+ {
794
+ "kind": "js",
795
+ "name": "*",
796
+ "declaration": {
797
+ "name": "*",
798
+ "package": "./layout-components"
799
+ }
800
+ }
801
+ ]
802
+ },
803
+ {
804
+ "kind": "javascript-module",
805
+ "path": "src/main/layout-components.ts",
806
+ "declarations": [
807
+ {
808
+ "kind": "variable",
809
+ "name": "foundationLayoutComponents",
810
+ "type": {
811
+ "text": "object"
812
+ },
813
+ "default": "{\n foundationLayout,\n foundationLayoutRegion,\n foundationLayoutItem,\n register(container?: Container, ...rest: any[]) {\n if (!container) {\n // preserve backward compatibility with code that loops through\n // the values of this object and calls them as funcs with no args\n return;\n }\n for (const key in this) {\n if (key === 'register') {\n continue;\n }\n this[key]().register(container, ...rest);\n }\n },\n}",
814
+ "description": "Registration object to register the layout with your design system.",
815
+ "privacy": "public"
816
+ }
817
+ ],
818
+ "exports": [
819
+ {
820
+ "kind": "js",
821
+ "name": "foundationLayoutComponents",
822
+ "declaration": {
823
+ "name": "foundationLayoutComponents",
824
+ "module": "src/main/layout-components.ts"
825
+ }
826
+ }
827
+ ]
828
+ },
829
+ {
830
+ "kind": "javascript-module",
831
+ "path": "src/main/layout-item.ts",
832
+ "declarations": [
1024
833
  {
1025
834
  "kind": "class",
1026
835
  "description": "",
1027
- "name": "FoundationLayoutPopoutController",
836
+ "name": "FoundationLayoutItem",
1028
837
  "members": [
1029
838
  {
1030
839
  "kind": "field",
1031
- "name": "channelName",
840
+ "name": "title",
1032
841
  "type": {
1033
842
  "text": "string"
1034
- }
843
+ },
844
+ "description": "Sets the title of the item which is displayed on the tab.",
845
+ "privacy": "public"
1035
846
  },
1036
847
  {
1037
848
  "kind": "field",
1038
- "name": "layoutKey",
849
+ "name": "closable",
1039
850
  "type": {
1040
- "text": "string"
851
+ "text": "boolean"
1041
852
  },
1042
- "privacy": "private"
853
+ "default": "false",
854
+ "description": "Boolean attribute controls whether the window can be closed in the GUI.\nDefaults to `false`.",
855
+ "privacy": "public"
1043
856
  },
1044
857
  {
1045
858
  "kind": "field",
1046
- "name": "channel",
859
+ "name": "size",
1047
860
  "type": {
1048
- "text": "TypedBroadcastChannel<LayoutPopoutEvents>"
861
+ "text": "string"
1049
862
  },
1050
- "privacy": "private"
863
+ "description": "optional string describing the size of the new item (see the written documentation for more info)",
864
+ "privacy": "public"
1051
865
  },
1052
866
  {
1053
867
  "kind": "field",
1054
- "name": "pollInterval",
1055
- "type": {
1056
- "text": "any"
1057
- },
1058
- "privacy": "private"
1059
- },
1060
- {
1061
- "kind": "field",
1062
- "name": "unloadHandler",
1063
- "type": {
1064
- "text": "() => void"
1065
- },
1066
- "privacy": "private"
1067
- },
1068
- {
1069
- "kind": "field",
1070
- "name": "lastUpdate",
1071
- "type": {
1072
- "text": "string"
1073
- },
1074
- "privacy": "private"
1075
- },
1076
- {
1077
- "kind": "field",
1078
- "name": "popoutRegistry",
1079
- "type": {
1080
- "text": "Map<\n string,\n { geometry: PopoutGeometry; state?: unknown; window?: Window }\n >"
1081
- },
1082
- "privacy": "private",
1083
- "default": "new Map()"
1084
- },
1085
- {
1086
- "kind": "method",
1087
- "name": "setupChannel",
1088
- "privacy": "private"
1089
- },
1090
- {
1091
- "kind": "method",
1092
- "name": "setupListener",
1093
- "privacy": "private"
1094
- },
1095
- {
1096
- "kind": "method",
1097
- "name": "applyStateToParent",
1098
- "privacy": "private",
1099
- "parameters": [
1100
- {
1101
- "name": "state",
1102
- "type": {
1103
- "text": "unknown"
1104
- }
1105
- }
1106
- ]
1107
- },
1108
- {
1109
- "kind": "method",
1110
- "name": "setupUnloadListener",
1111
- "privacy": "private"
1112
- },
1113
- {
1114
- "kind": "method",
1115
- "name": "teardownUnloadListener",
1116
- "privacy": "private"
1117
- },
1118
- {
1119
- "kind": "method",
1120
- "name": "emitAutosave",
1121
- "privacy": "private"
1122
- },
1123
- {
1124
- "kind": "method",
1125
- "name": "startPolling",
1126
- "privacy": "private"
1127
- },
1128
- {
1129
- "kind": "method",
1130
- "name": "stopPolling",
1131
- "privacy": "private"
1132
- },
1133
- {
1134
- "kind": "method",
1135
- "name": "getGeometry",
1136
- "privacy": "private",
1137
- "return": {
1138
- "type": {
1139
- "text": "Promise<PopoutGeometry>"
1140
- }
1141
- }
1142
- },
1143
- {
1144
- "kind": "method",
1145
- "name": "getComponentState",
1146
- "privacy": "private",
1147
- "return": {
1148
- "type": {
1149
- "text": "unknown"
1150
- }
1151
- }
1152
- },
1153
- {
1154
- "kind": "method",
1155
- "name": "broadcastUpdate",
1156
- "privacy": "private",
1157
- "parameters": [
1158
- {
1159
- "name": "geometry",
1160
- "type": {
1161
- "text": "PopoutGeometry"
1162
- }
1163
- },
1164
- {
1165
- "name": "state",
1166
- "optional": true,
1167
- "type": {
1168
- "text": "unknown"
1169
- }
1170
- }
1171
- ]
1172
- },
1173
- {
1174
- "kind": "method",
1175
- "name": "openPopout",
1176
- "privacy": "public",
1177
- "parameters": [
1178
- {
1179
- "name": "registration",
1180
- "type": {
1181
- "text": "string"
1182
- },
1183
- "description": "The registration ID of the component to pop out."
1184
- },
1185
- {
1186
- "name": "popoutState",
1187
- "optional": true,
1188
- "type": {
1189
- "text": "PopoutState"
1190
- },
1191
- "description": "Optional state (geometry and component state) to use for the new window."
1192
- },
1193
- {
1194
- "name": "uuid",
1195
- "optional": true,
1196
- "type": {
1197
- "text": "any"
1198
- },
1199
- "description": "UUID generator from parent layout"
1200
- }
1201
- ],
1202
- "description": "Opens a component in a popout window."
1203
- },
1204
- {
1205
- "kind": "method",
1206
- "name": "getRegistry",
1207
- "privacy": "public",
1208
- "return": {
1209
- "type": {
1210
- "text": "{ [layoutKey: string]: PopoutState }"
1211
- }
1212
- }
1213
- },
1214
- {
1215
- "kind": "method",
1216
- "name": "restorePopouts",
1217
- "privacy": "public",
1218
- "parameters": [
1219
- {
1220
- "name": "registry",
1221
- "type": {
1222
- "text": "{ [layoutKey: string]: PopoutState }"
1223
- }
1224
- },
1225
- {
1226
- "name": "uuid",
1227
- "type": {
1228
- "text": "any"
1229
- }
1230
- }
1231
- ],
1232
- "description": "Restores popouts from a registry"
1233
- },
1234
- {
1235
- "kind": "method",
1236
- "name": "closeAllPopouts",
1237
- "privacy": "public"
1238
- }
1239
- ],
1240
- "attributes": [
1241
- {
1242
- "name": "channel-name",
1243
- "type": {
1244
- "text": "string"
1245
- },
1246
- "fieldName": "channelName"
1247
- }
1248
- ],
1249
- "superclass": {
1250
- "name": "FASTElement",
1251
- "package": "@microsoft/fast-element"
1252
- },
1253
- "tagName": "foundation-layout-popout-controller",
1254
- "customElement": true
1255
- }
1256
- ],
1257
- "exports": [
1258
- {
1259
- "kind": "js",
1260
- "name": "FoundationLayoutPopoutController",
1261
- "declaration": {
1262
- "name": "FoundationLayoutPopoutController",
1263
- "module": "src/main/layout-popout-controller.ts"
1264
- }
1265
- },
1266
- {
1267
- "kind": "custom-element-definition",
1268
- "name": "foundation-layout-popout-controller",
1269
- "declaration": {
1270
- "name": "FoundationLayoutPopoutController",
1271
- "module": "src/main/layout-popout-controller.ts"
1272
- }
1273
- }
1274
- ]
1275
- },
1276
- {
1277
- "kind": "javascript-module",
1278
- "path": "src/main/layout-region.ts",
1279
- "declarations": [
1280
- {
1281
- "kind": "class",
1282
- "description": "",
1283
- "name": "FoundationLayoutRegion",
1284
- "members": [
1285
- {
1286
- "kind": "field",
1287
- "name": "size",
868
+ "name": "registration",
1288
869
  "type": {
1289
870
  "text": "string"
1290
871
  },
1291
- "description": "optional string describing the size of the new item (see the written documentation for more info)",
1292
- "privacy": "public"
1293
- },
1294
- {
1295
- "kind": "field",
1296
- "name": "type",
1297
- "type": {
1298
- "text": "LayoutRegionType"
1299
- },
1300
- "default": "layoutRegionValue[0]",
1301
- "description": "Defines the LayoutRegionType| type of the region.\nDefaults to `horizontal`.",
872
+ "description": "Sets the registration name for the item, which can be used later to add the item via the JavaScript API using FoundationLayout.addItem.",
1302
873
  "privacy": "public"
1303
874
  },
1304
875
  {
@@ -1415,604 +986,1033 @@
1415
986
  ],
1416
987
  "attributes": [
1417
988
  {
1418
- "name": "size",
989
+ "name": "title",
1419
990
  "type": {
1420
991
  "text": "string"
1421
992
  },
1422
- "description": "optional string describing the size of the new item (see the written documentation for more info)",
1423
- "fieldName": "size"
993
+ "description": "Sets the title of the item which is displayed on the tab.",
994
+ "fieldName": "title"
1424
995
  },
1425
996
  {
1426
- "name": "type",
1427
997
  "type": {
1428
- "text": "LayoutRegionType"
998
+ "text": "boolean"
1429
999
  },
1430
- "default": "defaultLayoutType",
1431
- "description": "Defines the LayoutRegionType| type of the region.\nDefaults to `horizontal`.",
1432
- "resolveInitializer": {
1433
- "module": "src/main/layout-region.ts"
1000
+ "default": "false",
1001
+ "description": "Boolean attribute controls whether the window can be closed in the GUI.\nDefaults to `false`.",
1002
+ "fieldName": "closable"
1003
+ },
1004
+ {
1005
+ "name": "size",
1006
+ "type": {
1007
+ "text": "string"
1434
1008
  },
1435
- "fieldName": "type"
1009
+ "description": "optional string describing the size of the new item (see the written documentation for more info)",
1010
+ "fieldName": "size"
1011
+ },
1012
+ {
1013
+ "name": "registration",
1014
+ "type": {
1015
+ "text": "string"
1016
+ },
1017
+ "description": "Sets the registration name for the item, which can be used later to add the item via the JavaScript API using FoundationLayout.addItem.",
1018
+ "fieldName": "registration"
1436
1019
  }
1437
1020
  ],
1438
1021
  "superclass": {
1439
1022
  "name": "FoundationElement",
1440
1023
  "package": "@microsoft/fast-foundation"
1441
1024
  },
1442
- "tagName": "%%prefix%%-layout-region",
1025
+ "tagName": "%%prefix%%-layout-item",
1443
1026
  "customElement": true
1444
1027
  }
1445
1028
  ],
1446
1029
  "exports": [
1447
1030
  {
1448
1031
  "kind": "js",
1449
- "name": "FoundationLayoutRegion",
1450
- "declaration": {
1451
- "name": "FoundationLayoutRegion",
1452
- "module": "src/main/layout-region.ts"
1453
- }
1454
- }
1455
- ]
1456
- },
1457
- {
1458
- "kind": "javascript-module",
1459
- "path": "src/styles/constants.ts",
1460
- "declarations": [
1461
- {
1462
- "kind": "function",
1463
- "name": "glVisualConfig",
1464
- "return": {
1465
- "type": {
1466
- "text": "Omit<LayoutConfig, 'root'>"
1467
- }
1468
- }
1469
- },
1470
- {
1471
- "kind": "variable",
1472
- "name": "LAYOUT_ICONS",
1473
- "type": {
1474
- "text": "{\n renameSVG,\n maximiseSVG,\n minimiseSVG,\n closeSVG,\n tabDropdownSVG,\n popoutSVG,\n}"
1475
- },
1476
- "default": "{\n renameSVG,\n maximiseSVG,\n minimiseSVG,\n closeSVG,\n tabDropdownSVG,\n popoutSVG,\n}",
1477
- "description": "A collection of SVG icons in base64 format.",
1478
- "privacy": "public"
1479
- }
1480
- ],
1481
- "exports": [
1482
- {
1483
- "kind": "js",
1484
- "name": "glVisualConfig",
1485
- "declaration": {
1486
- "name": "glVisualConfig",
1487
- "module": "src/styles/constants.ts"
1488
- }
1489
- },
1490
- {
1491
- "kind": "js",
1492
- "name": "LAYOUT_ICONS",
1493
- "declaration": {
1494
- "name": "LAYOUT_ICONS",
1495
- "module": "src/styles/constants.ts"
1496
- }
1497
- }
1498
- ]
1499
- },
1500
- {
1501
- "kind": "javascript-module",
1502
- "path": "src/styles/dragging.styles.ts",
1503
- "declarations": [
1504
- {
1505
- "kind": "variable",
1506
- "name": "globalDraggingStyles",
1507
- "default": "`\n .lm_dragProxy .lm_content {\n box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.9);\n }\n .lm_dropTargetIndicator {\n outline: 1px dashed #cccccc;\n transition: all 200ms ease;\n }\n .lm_dropTargetIndicator .lm_inner {\n background: var(${neutralFillStealthRest.cssCustomProperty});\n opacity: 0.2;\n }\n .lm_dragProxy.lm_left .lm_header,\n .lm_dragProxy.lm_right .lm_header {\n width: 20px;\n float: left;\n vertical-align: top;\n }\n .lm_dragProxy.lm_left .lm_header .lm_tabs,\n .lm_dragProxy.lm_right .lm_header .lm_tabs {\n transform-origin: left top;\n top: 0;\n width: 1000px;\n }\n .lm_dragProxy.lm_left .lm_header .lm_controls,\n .lm_dragProxy.lm_right .lm_header .lm_controls {\n bottom: 0;\n }\n .lm_dragProxy.lm_left .lm_items,\n .lm_dragProxy.lm_right .lm_items {\n float: left;\n }\n .lm_dragProxy.lm_left .lm_header .lm_tabs {\n transform: rotate(-90deg) scaleX(-1);\n left: 0;\n }\n .lm_dragProxy.lm_left .lm_header .lm_tabs .lm_tab {\n transform: scaleX(-1);\n margin-top: 1px;\n }\n .lm_dragProxy.lm_left .lm_header .lm_tabdropdown_list {\n top: initial;\n right: initial;\n left: 20px;\n }\n .lm_dragProxy.lm_right .lm_content {\n float: left;\n }\n .lm_dragProxy.lm_right .lm_header .lm_tabs {\n transform: rotate(90deg) scaleX(1);\n left: 100%;\n margin-left: 0;\n }\n .lm_dragProxy.lm_right .lm_header .lm_controls {\n left: 3px;\n }\n .lm_dragProxy.lm_right .lm_header .lm_tabdropdown_list {\n top: initial;\n right: 20px;\n }\n .lm_dragProxy.lm_bottom .lm_header .lm_tab {\n margin-top: 0;\n border-top: none;\n }\n .lm_dragProxy.lm_bottom .lm_header .lm_controls,\n .lm_stack.lm_bottom .lm_header .lm_controls {\n top: 3px;\n }\n .lm_dragProxy.lm_bottom .lm_header .lm_tabdropdown_list,\n .lm_stack.lm_bottom .lm_header .lm_tabdropdown_list {\n top: initial;\n bottom: 20px;\n }\n .lm_dragProxy {\n cursor: move;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 30;\n }\n .lm_dragProxy .lm_header {\n background: transparent;\n }\n .lm_dragProxy .lm_title {\n color: white;\n padding-left: 10px;\n }\n .lm_dragProxy .lm_content {\n border-top: none;\n overflow: hidden;\n }\n .lm_dropTargetIndicator {\n display: none;\n position: absolute;\n z-index: 20;\n }\n .lm_dropTargetIndicator .lm_inner {\n width: 100%;\n height: 100%;\n position: relative;\n top: 0;\n left: 0;\n }\n .lm_transition_indicator {\n display: none;\n width: 20px;\n height: 20px;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 20;\n }\n`",
1508
- "description": "This is defined as a string rather than a css template\nbecause it is applied to a CSSStyleSheet object rather than\nused as a FAST template"
1509
- }
1510
- ],
1511
- "exports": [
1512
- {
1513
- "kind": "js",
1514
- "name": "globalDraggingStyles",
1515
- "declaration": {
1516
- "name": "globalDraggingStyles",
1517
- "module": "src/styles/dragging.styles.ts"
1518
- }
1519
- }
1520
- ]
1521
- },
1522
- {
1523
- "kind": "javascript-module",
1524
- "path": "src/styles/index.ts",
1525
- "declarations": [],
1526
- "exports": [
1527
- {
1528
- "kind": "js",
1529
- "name": "*",
1530
- "declaration": {
1531
- "name": "*",
1532
- "package": "./constants"
1533
- }
1534
- },
1535
- {
1536
- "kind": "js",
1537
- "name": "*",
1538
- "declaration": {
1539
- "name": "*",
1540
- "package": "./dragging.styles"
1541
- }
1542
- },
1543
- {
1544
- "kind": "js",
1545
- "name": "*",
1546
- "declaration": {
1547
- "name": "*",
1548
- "package": "./layout.styles"
1549
- }
1550
- }
1551
- ]
1552
- },
1553
- {
1554
- "kind": "javascript-module",
1555
- "path": "src/styles/layout.styles.ts",
1556
- "declarations": [
1557
- {
1558
- "kind": "variable",
1559
- "name": "layoutStyles",
1560
- "default": "css`\n ${containerStyles}\n ${loadingSpinnerStyles}\n\n :host {\n --foundation-tab-height: calc(\n (((var(--base-height-multiplier) + var(--density)) * var(--design-unit)) - 4) * 1px\n );\n }\n\n .lm_goldenlayout {\n border-radius: calc(var(--control-corner-radius) * 1.5px);\n }\n\n .lm_stack.lm_item {\n background-color: var(--neutral-layer-3);\n border-radius: calc(var(--control-corner-radius) * 1.5px);\n }\n\n .lm_maximised .lm_header {\n background-color: var(--neutral-layer-3);\n border-radius: calc(var(--control-corner-radius) * 1.5px);\n position: unset;\n }\n\n .lm_maximised .lm_header .lm_tabs {\n z-index: 3;\n }\n\n .lm_content {\n background-color: var(--neutral-layer-card-container);\n border-radius: calc(var(--control-corner-radius) * 1.5px);\n border: 1px solid;\n border-color: var(--neutral-stroke-rest);\n box-sizing: border-box;\n color: var(--neutral-foreground-rest);\n }\n\n .lm_header .lm_tabs {\n padding: 0 16px;\n }\n\n .lm_stack > .lm_items {\n box-shadow: 0 -1px 15px rgb(0 0 0 / 15%);\n }\n\n .lm_header .lm_tab.lm_active.lm_focused {\n background-color: var(--neutral-layer-card-container);\n }\n\n .lm_header .lm_tab.lm_active {\n background-color: var(--neutral-layer-card-container);\n border: 1px solid;\n border-color: var(--neutral-stroke-rest);\n border-bottom: 0;\n color: var(--accent-foreground-rest);\n }\n\n .lm_header .lm_tab {\n align-items: center;\n background-color: var(--neutral-layer-4);\n border: 0;\n border-bottom-color: transparent;\n border-bottom: 0 solid;\n border-color: var(--neutral-stroke-rest);\n border-radius: calc(var(--control-corner-radius) * 1.5px)\n calc(var(--control-corner-radius) * 1.5px) 0 0;\n color: var(--accent-foreground-rest);\n display: flex;\n font-family: inherit;\n font-size: 13px;\n font-weight: 400;\n height: calc(var(--foundation-tab-height, ${DEFAULT_TAB_HEIGHT}) - 8px);\n margin-right: 2px;\n margin-top: 3px;\n padding: 2px 16px;\n }\n\n .lm_header .lm_tab:not(.lm_active):hover {\n background-color: var(--neutral-layer-card-container);\n color: var(--accent-foreground-rest);\n }\n\n .lm_header .lm_controls {\n top: 4px;\n display: flex;\n }\n\n .lm_header .lm_controls > * {\n width: calc(var(--foundation-tab-height, ${DEFAULT_TAB_HEIGHT}) - 6px);\n height: calc(var(--foundation-tab-height, ${DEFAULT_TAB_HEIGHT}) - 6px);\n background-repeat: no-repeat;\n background-position: center;\n background-size: calc(var(--foundation-tab-height, ${DEFAULT_TAB_HEIGHT}) * 0.533333);\n background-color: color-mix(in srgb, var(--neutral-fill-strong-rest), transparent 90%);\n border-radius: calc(var(--control-corner-radius) * 1.5px);\n margin-right: 4px;\n top: 3px;\n opacity: 100%;\n }\n\n .lm_header .lm_controls > *:hover {\n background-color: color-mix(in srgb, var(--neutral-fill-strong-hover), transparent 75%);\n cursor: pointer;\n }\n\n .lm_controls .lm_maximise {\n background-image: url('${LAYOUT_ICONS.maximiseSVG}');\n }\n\n .lm_maximised .lm_controls .lm_maximise {\n background-image: url('${LAYOUT_ICONS.minimiseSVG}');\n }\n\n .lm_controls .lm_close {\n background-image: url('${LAYOUT_ICONS.closeSVG}');\n }\n\n .lm_header .lm_tab .lm_close_tab {\n background-image: url('${LAYOUT_ICONS.closeSVG}');\n background-size: calc(var(--foundation-tab-height, ${DEFAULT_TAB_HEIGHT}) * 0.2777);\n background-repeat: no-repeat;\n margin-left: 12px;\n position: relative;\n top: 0;\n right: 0;\n }\n\n .lm_header .lm_tab.lm_active {\n padding: 4px 25px 3px 10px;\n }\n\n .lm_header .lm_tab:not(.lm_active) .lm_title {\n color: var(--neutral-foreground-hint);\n }\n\n .lm_header .lm_controls .lm_tabdropdown::before {\n content: none;\n }\n\n .lm_header .lm_controls .lm_tabdropdown {\n background-image: url('${LAYOUT_ICONS.tabDropdownSVG}');\n }\n\n .lm_header .lm_tabdropdown_list {\n top: var(--foundation-tab-height, ${DEFAULT_TAB_HEIGHT});\n right: 108px;\n background-color: var(--neutral-layer-3);\n border: 1px solid;\n border-color: var(--neutral-stroke-rest);\n border-radius: calc(var(--control-corner-radius) * 1.5px);\n box-shadow: 0 5px 15px rgb(0 0 0 / 35%);\n }\n\n .lm_header .lm_tabdropdown_list > .lm_tab {\n box-shadow: none;\n padding: 0 16px;\n white-space: nowrap;\n background-color: transparent;\n color: var(--neutral-foreground-rest);\n height: var(--foundation-tab-height, ${DEFAULT_TAB_HEIGHT});\n border-radius: 0;\n overflow: visible;\n text-overflow: normal;\n }\n\n .lm_header .lm_tabdropdown_list > .lm_tab:last-child {\n border-bottom: 0;\n }\n\n /* gl base styles start */\n .lm_root {\n position: relative;\n }\n\n .lm_row > .lm_item {\n float: left;\n }\n\n .lm_content {\n overflow: hidden;\n position: relative;\n }\n\n .lm_dragging,\n .lm_dragging * {\n cursor: move !important;\n user-select: none;\n }\n\n .lm_maximised {\n left: 0;\n padding: 1px;\n position: absolute;\n top: 0;\n z-index: 40;\n }\n\n .lm_maximise_placeholder {\n display: none;\n }\n\n .lm_splitter {\n position: relative;\n z-index: 20;\n }\n\n .lm_splitter:hover,\n .lm_splitter.lm_dragging {\n background: var(--accent-fill-rest);\n border-radius: calc(var(--control-corner-radius) * 4px);\n }\n\n .lm_splitter.lm_vertical .lm_drag_handle {\n width: 100%;\n height: 15px;\n position: absolute;\n top: -5px;\n cursor: ns-resize !important;\n }\n\n .lm_splitter.lm_horizontal {\n float: left;\n height: 100%;\n }\n\n .lm_splitter.lm_horizontal .lm_drag_handle {\n width: 15px;\n height: 100%;\n position: absolute;\n left: -5px;\n cursor: ew-resize !important;\n }\n\n .lm_header {\n overflow: visible;\n position: relative;\n }\n\n .lm_header [class^='lm_'] {\n box-sizing: content-box !important;\n }\n\n .lm_header .lm_controls {\n position: absolute;\n right: 3px;\n }\n\n .lm_header .lm_controls > li {\n cursor: pointer;\n float: left;\n width: 18px;\n height: 18px;\n text-align: center;\n }\n\n .lm_header ul {\n margin: 0;\n padding: 0;\n list-style-type: none;\n }\n\n .lm_header .lm_tabs {\n position: absolute;\n }\n\n .lm_header .lm_tab {\n cursor: pointer;\n float: left;\n margin-top: 1px;\n padding: 3px 25px 3px 10px;\n position: relative;\n }\n\n .lm_header .lm_tab i {\n width: 2px;\n height: 19px;\n position: absolute;\n }\n\n .lm_header .lm_tab i.lm_left {\n top: 0;\n left: -2px;\n }\n\n .lm_header .lm_tab i.lm_right {\n top: 0;\n right: -2px;\n }\n\n .lm_header .lm_tab .lm_title {\n display: inline-block;\n overflow: hidden;\n text-overflow: ellipsis;\n user-select: none;\n }\n\n .lm_header .lm_tab .lm_title:only-child {\n padding-left: 10px;\n }\n\n .lm_header .lm_tab .lm_close_tab {\n width: calc(var(--foundation-tab-height, ${DEFAULT_TAB_HEIGHT}) * 0.3888);\n height: calc(var(--foundation-tab-height, ${DEFAULT_TAB_HEIGHT}) * 0.3888);\n top: calc(var(--foundation-tab-height, ${DEFAULT_TAB_HEIGHT}) * 0.3055);\n position: absolute;\n right: 0;\n text-align: center;\n }\n\n .lm_stack.lm_left .lm_header,\n .lm_stack.lm_right .lm_header {\n height: 100%;\n }\n\n .lm_dragProxy.lm_left .lm_header,\n .lm_dragProxy.lm_right .lm_header,\n .lm_stack.lm_left .lm_header,\n .lm_stack.lm_right .lm_header {\n width: 20px;\n float: left;\n vertical-align: top;\n }\n\n .lm_dragProxy.lm_left .lm_header .lm_tabs,\n .lm_dragProxy.lm_right .lm_header .lm_tabs,\n .lm_stack.lm_left .lm_header .lm_tabs,\n .lm_stack.lm_right .lm_header .lm_tabs {\n transform-origin: left top;\n top: 0;\n width: 1000px;\n }\n\n .lm_dragProxy.lm_left .lm_header .lm_controls,\n .lm_dragProxy.lm_right .lm_header .lm_controls,\n .lm_stack.lm_left .lm_header .lm_controls,\n .lm_stack.lm_right .lm_header .lm_controls {\n bottom: 0;\n }\n\n .lm_dragProxy.lm_left .lm_items,\n .lm_dragProxy.lm_right .lm_items,\n .lm_stack.lm_left .lm_items,\n .lm_stack.lm_right .lm_items {\n float: left;\n }\n\n .lm_dragProxy.lm_left .lm_header .lm_tabs,\n .lm_stack.lm_left .lm_header .lm_tabs {\n transform: rotate(-90deg) scaleX(-1);\n left: 0;\n }\n\n .lm_dragProxy.lm_left .lm_header .lm_tabs .lm_tab,\n .lm_stack.lm_left .lm_header .lm_tabs .lm_tab {\n transform: scaleX(-1);\n margin-top: 1px;\n }\n\n .lm_dragProxy.lm_left .lm_header .lm_tabdropdown_list,\n .lm_stack.lm_left .lm_header .lm_tabdropdown_list {\n top: initial;\n right: initial;\n left: 20px;\n }\n\n .lm_dragProxy.lm_right .lm_content {\n float: left;\n }\n\n .lm_dragProxy.lm_right .lm_header .lm_tabs,\n .lm_stack.lm_right .lm_header .lm_tabs {\n transform: rotate(90deg) scaleX(1);\n left: 100%;\n margin-left: 0;\n }\n\n .lm_dragProxy.lm_right .lm_header .lm_controls,\n .lm_stack.lm_right .lm_header .lm_controls {\n left: 3px;\n }\n\n .lm_dragProxy.lm_right .lm_header .lm_tabdropdown_list,\n .lm_stack.lm_right .lm_header .lm_tabdropdown_list {\n top: initial;\n right: 20px;\n }\n\n .lm_dragProxy.lm_bottom .lm_header .lm_tab,\n .lm_stack.lm_bottom .lm_header .lm_tab {\n margin-top: 0;\n border-top: none;\n }\n\n .lm_dragProxy.lm_bottom .lm_header .lm_controls,\n .lm_stack.lm_bottom .lm_header .lm_controls {\n top: 3px;\n }\n\n .lm_dragProxy.lm_bottom .lm_header .lm_tabdropdown_list,\n .lm_stack.lm_bottom .lm_header .lm_tabdropdown_list {\n top: initial;\n bottom: 20px;\n }\n\n .lm_drop_tab_placeholder {\n float: left;\n width: 100px;\n height: 10px;\n visibility: hidden;\n }\n\n .lm_header .lm_tabdropdown_list {\n position: absolute;\n top: 20px;\n right: 0;\n z-index: 5;\n overflow: hidden;\n }\n\n .lm_header .lm_tabdropdown_list .lm_tab {\n clear: both;\n padding-right: 10px;\n margin: 0;\n }\n\n .lm_header .lm_tabdropdown_list .lm_tab .lm_title {\n width: 100px;\n }\n\n .lm_header .lm_tabdropdown_list .lm_close_tab {\n display: none !important;\n }\n\n .lm_dragProxy {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 30;\n }\n\n .lm_dragProxy .lm_header {\n background: transparent;\n }\n\n .lm_dragProxy .lm_content {\n border-top: none;\n overflow: hidden;\n }\n\n .lm_dropTargetIndicator {\n display: none;\n position: absolute;\n z-index: 20;\n box-shadow: none;\n }\n\n .lm_dropTargetIndicator .lm_inner {\n width: 100%;\n height: 100%;\n position: relative;\n top: 0;\n left: 0;\n }\n\n .lm_transition_indicator {\n display: none;\n width: 20px;\n height: 20px;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 20;\n }\n\n .lm_popin {\n width: 20px;\n height: 20px;\n position: absolute;\n bottom: 0;\n right: 0;\n z-index: 9999;\n }\n\n .lm_popin > * {\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n }\n\n .lm_popin > .lm_bg {\n z-index: 10;\n }\n\n .lm_popin > .lm_icon {\n z-index: 20;\n } /*# sourceMappingURL=goldenlayout-base.css.map */\n`",
1561
- "description": "`ElementStyles` which defines the css for FoundationLayout.",
1562
- "privacy": "public"
1563
- }
1564
- ],
1565
- "exports": [
1566
- {
1567
- "kind": "js",
1568
- "name": "layoutStyles",
1569
- "declaration": {
1570
- "name": "layoutStyles",
1571
- "module": "src/styles/layout.styles.ts"
1572
- }
1573
- }
1574
- ]
1575
- },
1576
- {
1577
- "kind": "javascript-module",
1578
- "path": "src/utils/constants.ts",
1579
- "declarations": [
1580
- {
1581
- "kind": "variable",
1582
- "name": "DEFAULT_RELOAD_BUFFER",
1583
- "type": {
1584
- "text": "number"
1585
- },
1586
- "default": "500",
1587
- "description": "Default time in milliseconds for the layout to buffer calls to reloading\nthe layout while the declarative API is loading.\n\nDuring the first load of the layout, a loading spinner will be shown.",
1588
- "privacy": "public"
1589
- },
1590
- {
1591
- "kind": "variable",
1592
- "name": "LAYOUT_POPOUT_CONTROL_KEY",
1593
- "type": {
1594
- "text": "string"
1595
- },
1596
- "default": "'f-layout-key'",
1597
- "description": "Key to be used for controlling popout behaviour"
1598
- },
1599
- {
1600
- "kind": "variable",
1601
- "name": "POPOUT_GEOMETRY_BROADCAST_INTERVAL",
1602
- "type": {
1603
- "text": "number"
1604
- },
1605
- "default": "1000",
1606
- "description": "How often a popout window should check to broadcast its\ngeometry"
1607
- },
1608
- {
1609
- "kind": "variable",
1610
- "name": "LAYOUT_POPOUT_CONTAINER_CLASS",
1611
- "type": {
1612
- "text": "string"
1613
- },
1614
- "default": "'f-layout-popout'",
1615
- "description": "Put this classname on an element which is a DOM parent of the layout, and\nif the layout goes into popout mode then it will place itself as the only child\nfor the popout container you set."
1616
- },
1617
- {
1618
- "kind": "variable",
1619
- "name": "DEFAULT_TAB_HEIGHT",
1620
- "type": {
1621
- "text": "string"
1622
- },
1623
- "default": "'36px'"
1624
- },
1625
- {
1626
- "kind": "function",
1627
- "name": "getLayoutHeaderHeight"
1628
- }
1629
- ],
1630
- "exports": [
1631
- {
1632
- "kind": "js",
1633
- "name": "DEFAULT_RELOAD_BUFFER",
1634
- "declaration": {
1635
- "name": "DEFAULT_RELOAD_BUFFER",
1636
- "module": "src/utils/constants.ts"
1637
- }
1638
- },
1639
- {
1640
- "kind": "js",
1641
- "name": "LAYOUT_POPOUT_CONTROL_KEY",
1642
- "declaration": {
1643
- "name": "LAYOUT_POPOUT_CONTROL_KEY",
1644
- "module": "src/utils/constants.ts"
1645
- }
1646
- },
1647
- {
1648
- "kind": "js",
1649
- "name": "POPOUT_GEOMETRY_BROADCAST_INTERVAL",
1650
- "declaration": {
1651
- "name": "POPOUT_GEOMETRY_BROADCAST_INTERVAL",
1652
- "module": "src/utils/constants.ts"
1653
- }
1654
- },
1655
- {
1656
- "kind": "js",
1657
- "name": "LAYOUT_POPOUT_CONTAINER_CLASS",
1658
- "declaration": {
1659
- "name": "LAYOUT_POPOUT_CONTAINER_CLASS",
1660
- "module": "src/utils/constants.ts"
1661
- }
1662
- },
1663
- {
1664
- "kind": "js",
1665
- "name": "DEFAULT_TAB_HEIGHT",
1666
- "declaration": {
1667
- "name": "DEFAULT_TAB_HEIGHT",
1668
- "module": "src/utils/constants.ts"
1669
- }
1670
- },
1671
- {
1672
- "kind": "js",
1673
- "name": "getLayoutHeaderHeight",
1032
+ "name": "FoundationLayoutItem",
1674
1033
  "declaration": {
1675
- "name": "getLayoutHeaderHeight",
1676
- "module": "src/utils/constants.ts"
1034
+ "name": "FoundationLayoutItem",
1035
+ "module": "src/main/layout-item.ts"
1677
1036
  }
1678
1037
  }
1679
1038
  ]
1680
1039
  },
1681
1040
  {
1682
1041
  "kind": "javascript-module",
1683
- "path": "src/utils/error.ts",
1042
+ "path": "src/main/layout-main.ts",
1684
1043
  "declarations": [
1685
1044
  {
1686
1045
  "kind": "class",
1687
1046
  "description": "",
1688
- "name": "LayoutUsageError",
1689
- "superclass": {
1690
- "name": "Error",
1691
- "module": "src/utils/error.ts"
1692
- }
1693
- },
1694
- {
1695
- "kind": "class",
1696
- "description": "",
1697
- "name": "LayoutRegistrationError",
1698
- "superclass": {
1699
- "name": "Error",
1700
- "module": "src/utils/error.ts"
1701
- }
1702
- }
1703
- ],
1704
- "exports": [
1705
- {
1706
- "kind": "js",
1707
- "name": "LayoutUsageError",
1708
- "declaration": {
1709
- "name": "LayoutUsageError",
1710
- "module": "src/utils/error.ts"
1711
- }
1712
- },
1713
- {
1714
- "kind": "js",
1715
- "name": "LayoutRegistrationError",
1716
- "declaration": {
1717
- "name": "LayoutRegistrationError",
1718
- "module": "src/utils/error.ts"
1719
- }
1720
- }
1721
- ]
1722
- },
1723
- {
1724
- "kind": "javascript-module",
1725
- "path": "src/utils/events.ts",
1726
- "declarations": [
1727
- {
1728
- "kind": "variable",
1729
- "name": "LayoutEmitEvents",
1730
- "type": {
1731
- "text": "{\n firstLoaded: 'first-loaded',\n itemAdded: 'item-added',\n itemRemoved: 'item-removed',\n itemResized: 'item-resized',\n}"
1732
- },
1733
- "default": "{\n firstLoaded: 'first-loaded',\n itemAdded: 'item-added',\n itemRemoved: 'item-removed',\n itemResized: 'item-resized',\n}",
1734
- "description": "Defines events that the layout system emits\n\n'firstLoaded' - emitted when the layout has finished loading the first time\nusing the declarative API after DEFAULT_RELOAD_BUFFER ms.\n<br/>\n'itemAdded' - emitted when an item is added to the layout'\n<br/>\n'itemRemoved' - emitted when an item is removed from the layout'\n<br/>\n'itemResized' - emitted when the user drags the divider to resize elements",
1735
- "privacy": "public"
1736
- },
1737
- {
1738
- "kind": "variable",
1739
- "name": "LayoutReceiveEvents",
1740
- "type": {
1741
- "text": "{\n changeTitle: 'change-title',\n autosave: 'autosave',\n}"
1742
- },
1743
- "default": "{\n changeTitle: 'change-title',\n autosave: 'autosave',\n}",
1744
- "description": "Defines events that the layout system listens for\n\n'changeTitle' - emit this from a contained item to update the title of the window that contains it.\n'autosave' - emit this from a contained item to hint to the layout system that it should autosave the layout. A contained item should do this if it has just changed some state it would like to persist. See LayoutComponentWithState.",
1745
- "privacy": "public"
1746
- }
1747
- ],
1748
- "exports": [
1749
- {
1750
- "kind": "js",
1751
- "name": "LayoutEmitEvents",
1752
- "declaration": {
1753
- "name": "LayoutEmitEvents",
1754
- "module": "src/utils/events.ts"
1755
- }
1756
- },
1757
- {
1758
- "kind": "js",
1759
- "name": "LayoutReceiveEvents",
1760
- "declaration": {
1761
- "name": "LayoutReceiveEvents",
1762
- "module": "src/utils/events.ts"
1763
- }
1764
- }
1765
- ]
1766
- },
1767
- {
1768
- "kind": "javascript-module",
1769
- "path": "src/utils/factory-registry.ts",
1770
- "declarations": [
1771
- {
1772
- "kind": "function",
1773
- "name": "registerFactory",
1774
- "return": {
1775
- "type": {
1776
- "text": "void"
1777
- }
1778
- },
1779
- "parameters": [
1047
+ "name": "FoundationLayout",
1048
+ "members": [
1049
+ {
1050
+ "kind": "field",
1051
+ "name": "layout",
1052
+ "type": {
1053
+ "text": "GoldenLayout"
1054
+ },
1055
+ "privacy": "private"
1056
+ },
1057
+ {
1058
+ "kind": "field",
1059
+ "name": "layoutConfig",
1060
+ "type": {
1061
+ "text": "LayoutConfig"
1062
+ },
1063
+ "privacy": "private",
1064
+ "default": "{ root: undefined }"
1065
+ },
1066
+ {
1067
+ "kind": "field",
1068
+ "name": "defaultLayoutConfig",
1069
+ "type": {
1070
+ "text": "LayoutConfig"
1071
+ },
1072
+ "privacy": "private",
1073
+ "default": "{ root: undefined }"
1074
+ },
1075
+ {
1076
+ "kind": "field",
1077
+ "name": "reloadBuffer",
1078
+ "type": {
1079
+ "text": "number"
1080
+ },
1081
+ "default": "DEFAULT_RELOAD_BUFFER",
1082
+ "description": "Number describing how long to wait in ms before reloading the config when adding items\ndeclaratively by the html API. Default 500 (ms).",
1083
+ "privacy": "public"
1084
+ },
1085
+ {
1086
+ "kind": "field",
1087
+ "name": "reloadPending",
1088
+ "type": {
1089
+ "text": "boolean"
1090
+ },
1091
+ "privacy": "private",
1092
+ "default": "false"
1093
+ },
1094
+ {
1095
+ "kind": "field",
1096
+ "name": "registeredComponents",
1097
+ "type": {
1098
+ "text": "number"
1099
+ },
1100
+ "privacy": "private",
1101
+ "default": "0"
1102
+ },
1103
+ {
1104
+ "kind": "field",
1105
+ "name": "autoSaveKey",
1106
+ "type": {
1107
+ "text": "string | undefined"
1108
+ },
1109
+ "description": "Attribute which if set will auto save and load the layout as the user changes it.\nOmit this attribute to disable this feature.\nSet attribute using `auto-save-key`.",
1110
+ "privacy": "public"
1111
+ },
1112
+ {
1113
+ "kind": "field",
1114
+ "name": "missingItemPlaceholder",
1115
+ "description": "Function which is used to generate the placeholder text when a layout is loaded\nwith a missing item.",
1116
+ "privacy": "public"
1117
+ },
1118
+ {
1119
+ "kind": "field",
1120
+ "name": "dimensionsConfig",
1121
+ "type": {
1122
+ "text": "LayoutConfig.Dimensions | undefined"
1123
+ },
1124
+ "description": "Apply dimensions config to the layout, such as setting the size of the drag handles.",
1125
+ "privacy": "public"
1126
+ },
1127
+ {
1128
+ "kind": "field",
1129
+ "name": "hasFirstLoaded",
1130
+ "type": {
1131
+ "text": "boolean"
1132
+ },
1133
+ "default": "false",
1134
+ "description": "Boolean signifies whether the layout has loaded for the first time or not.",
1135
+ "privacy": "public"
1136
+ },
1137
+ {
1138
+ "kind": "field",
1139
+ "name": "customButtons",
1140
+ "type": {
1141
+ "text": "CustomButton[]"
1142
+ },
1143
+ "default": "[]",
1144
+ "description": "Set custom button definition on this property to add them to the layout header controls",
1145
+ "privacy": "public"
1146
+ },
1147
+ {
1148
+ "kind": "field",
1149
+ "name": "dragging",
1150
+ "type": {
1151
+ "text": "boolean"
1152
+ },
1153
+ "default": "false",
1154
+ "privacy": "public"
1155
+ },
1156
+ {
1157
+ "kind": "field",
1158
+ "name": "class",
1159
+ "privacy": "public",
1160
+ "default": "'FoundationLayoutMain'",
1161
+ "type": {
1162
+ "text": "'FoundationLayoutMain'"
1163
+ }
1164
+ },
1165
+ {
1166
+ "kind": "field",
1167
+ "name": "lifecycleUpdateToken",
1168
+ "type": {
1169
+ "text": "string | undefined"
1170
+ },
1171
+ "privacy": "public",
1172
+ "default": "undefined",
1173
+ "description": "Used to calculate whether a layout item should run its lifecycle methods or not"
1174
+ },
1175
+ {
1176
+ "kind": "field",
1177
+ "name": "popoutConfig",
1178
+ "type": {
1179
+ "text": "LayoutPopoutConfig | undefined"
1180
+ },
1181
+ "default": "undefined",
1182
+ "description": "Controls whether popout functionality is enabled on the layout. Defaults to disabled.\nPass an empty object `{}` to use default configurations, or a LayoutPopoutConfig object to further customise."
1183
+ },
1184
+ {
1185
+ "kind": "method",
1186
+ "name": "layoutRequiredRegistrations",
1187
+ "static": true,
1188
+ "return": {
1189
+ "type": {
1190
+ "text": ""
1191
+ }
1192
+ },
1193
+ "parameters": [
1194
+ {
1195
+ "name": "layout",
1196
+ "type": {
1197
+ "text": "SerialisedLayout"
1198
+ },
1199
+ "description": "any version of {@link SerialisedLayout}object describing the layout\n * "
1200
+ }
1201
+ ],
1202
+ "description": "JS API, public",
1203
+ "privacy": "public"
1204
+ },
1205
+ {
1206
+ "kind": "method",
1207
+ "name": "registeredItems",
1208
+ "return": {
1209
+ "type": {
1210
+ "text": ""
1211
+ }
1212
+ },
1213
+ "privacy": "public"
1214
+ },
1215
+ {
1216
+ "kind": "method",
1217
+ "name": "getLayout",
1218
+ "return": {
1219
+ "type": {
1220
+ "text": ""
1221
+ }
1222
+ },
1223
+ "privacy": "public"
1224
+ },
1225
+ {
1226
+ "kind": "method",
1227
+ "name": "tryActivatePopoutMode",
1228
+ "return": {
1229
+ "type": {
1230
+ "text": "boolean"
1231
+ }
1232
+ },
1233
+ "description": "If in a popout window from the dynamic layout, this function will run the flow to put the component in popout mode.\nThis function is automatically called if using the declarative HTML API, but if only using the JavaScript API then you will need to call this function manually."
1234
+ },
1235
+ {
1236
+ "kind": "method",
1237
+ "name": "tryLoadLayoutFromLocalStorage",
1238
+ "return": {
1239
+ "type": {
1240
+ "text": ""
1241
+ }
1242
+ },
1243
+ "description": "Try to load a layout from local storage, or return false. Only required if manually calling FoundationLayout.registerItem",
1244
+ "privacy": "public"
1245
+ },
1246
+ {
1247
+ "kind": "method",
1248
+ "name": "clearAutosaveAndRevertToDefault",
1249
+ "return": {
1250
+ "type": {
1251
+ "text": ""
1252
+ }
1253
+ },
1254
+ "privacy": "public"
1255
+ },
1256
+ {
1257
+ "kind": "method",
1258
+ "name": "loadLayout",
1259
+ "parameters": [
1260
+ {
1261
+ "name": "layout",
1262
+ "type": {
1263
+ "text": "SerialisedLayout"
1264
+ },
1265
+ "description": "any version of {@link SerialisedLayout}object describing the layout\n * "
1266
+ },
1267
+ {
1268
+ "name": "handleMissingItem",
1269
+ "default": "'error'",
1270
+ "type": {
1271
+ "text": "'placeholder' | 'error'"
1272
+ },
1273
+ "description": "what to do if the layout contains items that are not currently registered with the layout system. Defaults to 'error' which will throw an error. If set to 'placeholder' then any missing items will be replaced with a placeholder element. You can control the text of the placeholder element with {@link FoundationLayout.missingItemPlaceholder}.\n * "
1274
+ },
1275
+ {
1276
+ "name": "disableCache",
1277
+ "default": "false",
1278
+ "type": {
1279
+ "text": "boolean"
1280
+ },
1281
+ "description": "if set to true then the layout will give you a new instance of every item, even if it has a currently cached item to use. Using this will not stop you from saving and loading state via the {@link LayoutComponentWithState}interface. Defaults to false.\n * "
1282
+ }
1283
+ ],
1284
+ "privacy": "public"
1285
+ },
1286
+ {
1287
+ "kind": "method",
1288
+ "name": "addItem",
1289
+ "parameters": [
1290
+ {
1291
+ "name": "config",
1292
+ "type": {
1293
+ "text": "RegisteredElementConfig | RegisteredElementConfig[]"
1294
+ },
1295
+ "description": "{@link RegisteredElementConfig}configuration items for the new items(s). Pass an array of {@link RegisteredElementConfig}to add multiple items at once.\n * "
1296
+ },
1297
+ {
1298
+ "name": "placement",
1299
+ "default": "defaultAddItemPlacement",
1300
+ "type": {
1301
+ "text": "Placement"
1302
+ },
1303
+ "description": "where and how to add the new items to the layout. For more info and defaults see {@link Placement}.\n * "
1304
+ }
1305
+ ],
1306
+ "privacy": "public"
1307
+ },
1308
+ {
1309
+ "kind": "method",
1310
+ "name": "removeItems",
1311
+ "return": {
1312
+ "type": {
1313
+ "text": ""
1314
+ }
1315
+ },
1316
+ "parameters": [
1317
+ {
1318
+ "name": "registration",
1319
+ "type": {
1320
+ "text": "string"
1321
+ },
1322
+ "description": "string of the registration ID"
1323
+ },
1324
+ {
1325
+ "name": "force",
1326
+ "default": "false",
1327
+ "type": {
1328
+ "text": "boolean"
1329
+ },
1330
+ "description": "if set to true then the item will be removed even if it is not closable. Defaults to false, which is the same behaviour as the close button on the header."
1331
+ }
1332
+ ],
1333
+ "privacy": "public"
1334
+ },
1335
+ {
1336
+ "kind": "method",
1337
+ "name": "registerItem",
1338
+ "return": {
1339
+ "type": {
1340
+ "text": ""
1341
+ }
1342
+ },
1343
+ "parameters": [
1344
+ {
1345
+ "name": "registration",
1346
+ "type": {
1347
+ "text": "string"
1348
+ },
1349
+ "description": "string of the registration ID"
1350
+ },
1351
+ {
1352
+ "name": "elementsOrFactory",
1353
+ "type": {
1354
+ "text": "Element[] | ComponentFactory"
1355
+ },
1356
+ "description": "Either Elements[] containing the reference to the elements to register, or a ComponentFactory function"
1357
+ }
1358
+ ],
1359
+ "privacy": "public"
1360
+ },
1361
+ {
1362
+ "kind": "method",
1363
+ "name": "updateLifecycleToken",
1364
+ "privacy": "private",
1365
+ "return": {
1366
+ "type": {
1367
+ "text": "void"
1368
+ }
1369
+ },
1370
+ "description": "The `LifecycleMixin` can use the lifecycleUpdateToken to determine if it needs to gate\nlifecycle methods from running when other items have been added or deleted.\nThis key is updated every time one of these actions are performed, so you can check if the key has changed and know you potentially need to gate some of your lifecycle functionality.\nThis method should be called whenever we are about to perform an action which will cause a lifecycle update, should as adding or removing an item from the layout"
1371
+ },
1780
1372
  {
1781
- "name": "key",
1373
+ "kind": "method",
1374
+ "name": "handleGLRunErrors",
1375
+ "privacy": "private",
1376
+ "parameters": [
1377
+ {
1378
+ "name": "e",
1379
+ "type": {
1380
+ "text": "Error"
1381
+ }
1382
+ }
1383
+ ],
1384
+ "description": "For specific golden layout errors we can provide better information to the caller. Else re-throw the original error"
1385
+ },
1386
+ {
1387
+ "kind": "field",
1388
+ "name": "_presentation",
1782
1389
  "type": {
1783
- "text": "string"
1390
+ "text": "ComponentPresentation | null | undefined"
1784
1391
  },
1785
- "description": "Unique identifier for the factory. Should be descriptive and unique across the application."
1392
+ "privacy": "private",
1393
+ "default": "void 0",
1394
+ "inheritedFrom": {
1395
+ "name": "FoundationElement",
1396
+ "module": "src/foundation-element/foundation-element.ts"
1397
+ }
1786
1398
  },
1787
1399
  {
1788
- "name": "factory",
1400
+ "kind": "field",
1401
+ "name": "$presentation",
1789
1402
  "type": {
1790
- "text": "ComponentFactory"
1403
+ "text": "ComponentPresentation | null"
1791
1404
  },
1792
- "description": "The factory function that creates the component."
1793
- }
1794
- ],
1795
- "description": "Registers a factory function with a unique key.\nThis allows framework components to be used in the declarative layout API\nwithout needing to pass function references through HTML attributes.",
1796
- "privacy": "public"
1797
- },
1798
- {
1799
- "kind": "function",
1800
- "name": "getFactory",
1801
- "return": {
1802
- "type": {
1803
- "text": ""
1804
- }
1805
- },
1806
- "parameters": [
1405
+ "privacy": "public",
1406
+ "description": "A property which resolves the ComponentPresentation instance\nfor the current component.",
1407
+ "inheritedFrom": {
1408
+ "name": "FoundationElement",
1409
+ "module": "src/foundation-element/foundation-element.ts"
1410
+ }
1411
+ },
1807
1412
  {
1808
- "name": "key",
1413
+ "kind": "field",
1414
+ "name": "template",
1809
1415
  "type": {
1810
- "text": "string"
1416
+ "text": "ElementViewTemplate | void | null"
1811
1417
  },
1812
- "description": "The unique identifier for the factory."
1418
+ "privacy": "public",
1419
+ "description": "Sets the template of the element instance. When undefined,\nthe element will attempt to resolve the template from\nthe associated presentation or custom element definition.",
1420
+ "inheritedFrom": {
1421
+ "name": "FoundationElement",
1422
+ "module": "src/foundation-element/foundation-element.ts"
1423
+ }
1424
+ },
1425
+ {
1426
+ "kind": "method",
1427
+ "name": "templateChanged",
1428
+ "privacy": "protected",
1429
+ "return": {
1430
+ "type": {
1431
+ "text": "void"
1432
+ }
1433
+ },
1434
+ "inheritedFrom": {
1435
+ "name": "FoundationElement",
1436
+ "module": "src/foundation-element/foundation-element.ts"
1437
+ }
1438
+ },
1439
+ {
1440
+ "kind": "field",
1441
+ "name": "styles",
1442
+ "type": {
1443
+ "text": "ElementStyles | void | null"
1444
+ },
1445
+ "privacy": "public",
1446
+ "description": "Sets the default styles for the element instance. When undefined,\nthe element will attempt to resolve default styles from\nthe associated presentation or custom element definition.",
1447
+ "inheritedFrom": {
1448
+ "name": "FoundationElement",
1449
+ "module": "src/foundation-element/foundation-element.ts"
1450
+ }
1451
+ },
1452
+ {
1453
+ "kind": "method",
1454
+ "name": "stylesChanged",
1455
+ "privacy": "protected",
1456
+ "return": {
1457
+ "type": {
1458
+ "text": "void"
1459
+ }
1460
+ },
1461
+ "inheritedFrom": {
1462
+ "name": "FoundationElement",
1463
+ "module": "src/foundation-element/foundation-element.ts"
1464
+ }
1465
+ },
1466
+ {
1467
+ "kind": "method",
1468
+ "name": "compose",
1469
+ "privacy": "public",
1470
+ "static": true,
1471
+ "return": {
1472
+ "type": {
1473
+ "text": "(\n overrideDefinition?: OverrideFoundationElementDefinition<T>\n ) => FoundationElementRegistry<T, K>"
1474
+ }
1475
+ },
1476
+ "parameters": [
1477
+ {
1478
+ "name": "this",
1479
+ "type": {
1480
+ "text": "K"
1481
+ }
1482
+ },
1483
+ {
1484
+ "name": "elementDefinition",
1485
+ "type": {
1486
+ "text": "T"
1487
+ },
1488
+ "description": "The definition of the element to create the registry\nfunction for."
1489
+ }
1490
+ ],
1491
+ "description": "Defines an element registry function with a set of element definition defaults.",
1492
+ "inheritedFrom": {
1493
+ "name": "FoundationElement",
1494
+ "module": "src/foundation-element/foundation-element.ts"
1495
+ }
1813
1496
  }
1814
1497
  ],
1815
- "description": "Retrieves a factory function by its key.",
1816
- "privacy": "public"
1817
- },
1818
- {
1819
- "kind": "function",
1820
- "name": "unregisterFactory",
1821
- "return": {
1822
- "type": {
1823
- "text": ""
1498
+ "events": [
1499
+ {
1500
+ "description": "emitted when the layout has finished loading the first time",
1501
+ "name": "first-loaded"
1502
+ },
1503
+ {
1504
+ "description": "emitted when an item is added to the layout",
1505
+ "name": "item-added"
1506
+ },
1507
+ {
1508
+ "description": "emitted when an item is removed from the layout",
1509
+ "name": "item-removed"
1510
+ },
1511
+ {
1512
+ "description": "emitted when the user drags the divider to resize elements",
1513
+ "name": "item-resized"
1824
1514
  }
1825
- },
1826
- "parameters": [
1515
+ ],
1516
+ "attributes": [
1827
1517
  {
1828
- "name": "key",
1518
+ "name": "reload-buffer",
1829
1519
  "type": {
1830
- "text": "string"
1520
+ "text": "number"
1831
1521
  },
1832
- "description": "The unique identifier for the factory to remove."
1522
+ "default": "DEFAULT_RELOAD_BUFFER",
1523
+ "description": "Number describing how long to wait in ms before reloading the config when adding items\ndeclaratively by the html API. Default 500 (ms).",
1524
+ "resolveInitializer": {
1525
+ "module": "/src/utils/"
1526
+ },
1527
+ "fieldName": "reloadBuffer"
1528
+ },
1529
+ {
1530
+ "name": "auto-save-key",
1531
+ "type": {
1532
+ "text": "string | undefined"
1533
+ },
1534
+ "description": "Attribute which if set will auto save and load the layout as the user changes it.\nOmit this attribute to disable this feature.\nSet attribute using `auto-save-key`.",
1535
+ "fieldName": "autoSaveKey"
1833
1536
  }
1834
1537
  ],
1835
- "description": "Removes a factory from the registry.\nThis is useful for cleanup when a component is unmounted or no longer needed.",
1836
- "privacy": "public"
1837
- }
1838
- ],
1839
- "exports": [
1840
- {
1841
- "kind": "js",
1842
- "name": "registerFactory",
1843
- "declaration": {
1844
- "name": "registerFactory",
1845
- "module": "src/utils/factory-registry.ts"
1846
- }
1847
- },
1848
- {
1849
- "kind": "js",
1850
- "name": "getFactory",
1851
- "declaration": {
1852
- "name": "getFactory",
1853
- "module": "src/utils/factory-registry.ts"
1854
- }
1855
- },
1856
- {
1857
- "kind": "js",
1858
- "name": "unregisterFactory",
1859
- "declaration": {
1860
- "name": "unregisterFactory",
1861
- "module": "src/utils/factory-registry.ts"
1862
- }
1863
- }
1864
- ]
1865
- },
1866
- {
1867
- "kind": "javascript-module",
1868
- "path": "src/utils/index.ts",
1869
- "declarations": [],
1870
- "exports": [
1871
- {
1872
- "kind": "js",
1873
- "name": "*",
1874
- "declaration": {
1875
- "name": "*",
1876
- "package": "./constants"
1877
- }
1878
- },
1879
- {
1880
- "kind": "js",
1881
- "name": "*",
1882
- "declaration": {
1883
- "name": "*",
1884
- "package": "./error"
1885
- }
1886
- },
1887
- {
1888
- "kind": "js",
1889
- "name": "*",
1890
- "declaration": {
1891
- "name": "*",
1892
- "package": "./events"
1893
- }
1538
+ "superclass": {
1539
+ "name": "FoundationElement",
1540
+ "package": "@microsoft/fast-foundation"
1541
+ },
1542
+ "tagName": "%%prefix%%-layout",
1543
+ "customElement": true
1894
1544
  },
1895
1545
  {
1896
- "kind": "js",
1897
- "name": "*",
1898
- "declaration": {
1899
- "name": "*",
1900
- "package": "./factory-registry"
1901
- }
1902
- },
1546
+ "kind": "variable",
1547
+ "name": "layoutTemplate",
1548
+ "default": "html<FoundationLayout>`\n <template>\n ${when(\n (x) => Boolean(x.popoutConfig),\n html<FoundationLayout>`\n <foundation-layout-popout-controller\n ${ref('popoutController')}\n :parentLayout=\"${(x) => x}\"\n channel-name=\"${(x) => x.popoutConfig?.channelName}\"\n ></foundation-layout-popout-controller>\n `,\n )}\n ${when((x) => !x.hasFirstLoaded && x.usingDeclerativeAPI, loadingTemplate)}\n <div class=\"layout-container\" ${ref('layoutElement')}></div>\n </template>\n`",
1549
+ "description": "`ViewTemplate` which defines the html for FoundationLayout.",
1550
+ "privacy": "public"
1551
+ }
1552
+ ],
1553
+ "exports": [
1903
1554
  {
1904
1555
  "kind": "js",
1905
- "name": "*",
1556
+ "name": "layoutStyles",
1906
1557
  "declaration": {
1907
- "name": "*",
1908
- "package": "./misc"
1558
+ "name": "layoutStyles",
1559
+ "module": "../styles"
1909
1560
  }
1910
1561
  },
1911
1562
  {
1912
1563
  "kind": "js",
1913
- "name": "*",
1564
+ "name": "FoundationLayout",
1914
1565
  "declaration": {
1915
- "name": "*",
1916
- "package": "./templates"
1566
+ "name": "FoundationLayout",
1567
+ "module": "src/main/layout-main.ts"
1917
1568
  }
1918
1569
  },
1919
1570
  {
1920
1571
  "kind": "js",
1921
- "name": "*",
1572
+ "name": "layoutTemplate",
1922
1573
  "declaration": {
1923
- "name": "*",
1924
- "package": "./popout-events"
1574
+ "name": "layoutTemplate",
1575
+ "module": "src/main/layout-main.ts"
1925
1576
  }
1926
- },
1577
+ }
1578
+ ]
1579
+ },
1580
+ {
1581
+ "kind": "javascript-module",
1582
+ "path": "src/main/layout-popout-controller.ts",
1583
+ "declarations": [
1584
+ {
1585
+ "kind": "class",
1586
+ "description": "",
1587
+ "name": "FoundationLayoutPopoutController",
1588
+ "members": [
1589
+ {
1590
+ "kind": "field",
1591
+ "name": "channelName",
1592
+ "type": {
1593
+ "text": "string"
1594
+ }
1595
+ },
1596
+ {
1597
+ "kind": "field",
1598
+ "name": "layoutKey",
1599
+ "type": {
1600
+ "text": "string"
1601
+ },
1602
+ "privacy": "private"
1603
+ },
1604
+ {
1605
+ "kind": "field",
1606
+ "name": "channel",
1607
+ "type": {
1608
+ "text": "TypedBroadcastChannel<LayoutPopoutEvents>"
1609
+ },
1610
+ "privacy": "private"
1611
+ },
1612
+ {
1613
+ "kind": "field",
1614
+ "name": "pollInterval",
1615
+ "type": {
1616
+ "text": "any"
1617
+ },
1618
+ "privacy": "private"
1619
+ },
1620
+ {
1621
+ "kind": "field",
1622
+ "name": "unloadHandler",
1623
+ "type": {
1624
+ "text": "() => void"
1625
+ },
1626
+ "privacy": "private"
1627
+ },
1628
+ {
1629
+ "kind": "field",
1630
+ "name": "lastUpdate",
1631
+ "type": {
1632
+ "text": "string"
1633
+ },
1634
+ "privacy": "private"
1635
+ },
1636
+ {
1637
+ "kind": "field",
1638
+ "name": "popoutRegistry",
1639
+ "type": {
1640
+ "text": "Map<\n string,\n { geometry: PopoutGeometry; state?: unknown; window?: Window }\n >"
1641
+ },
1642
+ "privacy": "private",
1643
+ "default": "new Map()"
1644
+ },
1645
+ {
1646
+ "kind": "method",
1647
+ "name": "setupChannel",
1648
+ "privacy": "private"
1649
+ },
1650
+ {
1651
+ "kind": "method",
1652
+ "name": "setupListener",
1653
+ "privacy": "private"
1654
+ },
1655
+ {
1656
+ "kind": "method",
1657
+ "name": "applyStateToParent",
1658
+ "privacy": "private",
1659
+ "parameters": [
1660
+ {
1661
+ "name": "state",
1662
+ "type": {
1663
+ "text": "unknown"
1664
+ }
1665
+ }
1666
+ ]
1667
+ },
1668
+ {
1669
+ "kind": "method",
1670
+ "name": "setupUnloadListener",
1671
+ "privacy": "private"
1672
+ },
1673
+ {
1674
+ "kind": "method",
1675
+ "name": "teardownUnloadListener",
1676
+ "privacy": "private"
1677
+ },
1678
+ {
1679
+ "kind": "method",
1680
+ "name": "emitAutosave",
1681
+ "privacy": "private"
1682
+ },
1683
+ {
1684
+ "kind": "method",
1685
+ "name": "startPolling",
1686
+ "privacy": "private"
1687
+ },
1688
+ {
1689
+ "kind": "method",
1690
+ "name": "stopPolling",
1691
+ "privacy": "private"
1692
+ },
1693
+ {
1694
+ "kind": "method",
1695
+ "name": "getGeometry",
1696
+ "privacy": "private",
1697
+ "return": {
1698
+ "type": {
1699
+ "text": "Promise<PopoutGeometry>"
1700
+ }
1701
+ }
1702
+ },
1703
+ {
1704
+ "kind": "method",
1705
+ "name": "getComponentState",
1706
+ "privacy": "private",
1707
+ "return": {
1708
+ "type": {
1709
+ "text": "unknown"
1710
+ }
1711
+ }
1712
+ },
1713
+ {
1714
+ "kind": "method",
1715
+ "name": "broadcastUpdate",
1716
+ "privacy": "private",
1717
+ "parameters": [
1718
+ {
1719
+ "name": "geometry",
1720
+ "type": {
1721
+ "text": "PopoutGeometry"
1722
+ }
1723
+ },
1724
+ {
1725
+ "name": "state",
1726
+ "optional": true,
1727
+ "type": {
1728
+ "text": "unknown"
1729
+ }
1730
+ }
1731
+ ]
1732
+ },
1733
+ {
1734
+ "kind": "method",
1735
+ "name": "openPopout",
1736
+ "privacy": "public",
1737
+ "parameters": [
1738
+ {
1739
+ "name": "registration",
1740
+ "type": {
1741
+ "text": "string"
1742
+ },
1743
+ "description": "The registration ID of the component to pop out."
1744
+ },
1745
+ {
1746
+ "name": "popoutState",
1747
+ "optional": true,
1748
+ "type": {
1749
+ "text": "PopoutState"
1750
+ },
1751
+ "description": "Optional state (geometry and component state) to use for the new window."
1752
+ },
1753
+ {
1754
+ "name": "uuid",
1755
+ "optional": true,
1756
+ "type": {
1757
+ "text": "any"
1758
+ },
1759
+ "description": "UUID generator from parent layout"
1760
+ }
1761
+ ],
1762
+ "description": "Opens a component in a popout window."
1763
+ },
1764
+ {
1765
+ "kind": "method",
1766
+ "name": "getRegistry",
1767
+ "privacy": "public",
1768
+ "return": {
1769
+ "type": {
1770
+ "text": "{ [layoutKey: string]: PopoutState }"
1771
+ }
1772
+ }
1773
+ },
1774
+ {
1775
+ "kind": "method",
1776
+ "name": "restorePopouts",
1777
+ "privacy": "public",
1778
+ "parameters": [
1779
+ {
1780
+ "name": "registry",
1781
+ "type": {
1782
+ "text": "{ [layoutKey: string]: PopoutState }"
1783
+ }
1784
+ },
1785
+ {
1786
+ "name": "uuid",
1787
+ "type": {
1788
+ "text": "any"
1789
+ }
1790
+ }
1791
+ ],
1792
+ "description": "Restores popouts from a registry"
1793
+ },
1794
+ {
1795
+ "kind": "method",
1796
+ "name": "closeAllPopouts",
1797
+ "privacy": "public"
1798
+ }
1799
+ ],
1800
+ "attributes": [
1801
+ {
1802
+ "name": "channel-name",
1803
+ "type": {
1804
+ "text": "string"
1805
+ },
1806
+ "fieldName": "channelName"
1807
+ }
1808
+ ],
1809
+ "superclass": {
1810
+ "name": "FASTElement",
1811
+ "package": "@microsoft/fast-element"
1812
+ },
1813
+ "tagName": "foundation-layout-popout-controller",
1814
+ "customElement": true
1815
+ }
1816
+ ],
1817
+ "exports": [
1927
1818
  {
1928
1819
  "kind": "js",
1929
- "name": "*",
1820
+ "name": "FoundationLayoutPopoutController",
1930
1821
  "declaration": {
1931
- "name": "*",
1932
- "package": "./types"
1822
+ "name": "FoundationLayoutPopoutController",
1823
+ "module": "src/main/layout-popout-controller.ts"
1933
1824
  }
1934
1825
  },
1935
1826
  {
1936
- "kind": "js",
1937
- "name": "*",
1938
- "declaration": {
1939
- "name": "*",
1940
- "package": "./error"
1941
- }
1942
- }
1943
- ]
1944
- },
1945
- {
1946
- "kind": "javascript-module",
1947
- "path": "src/utils/logger.ts",
1948
- "declarations": [
1949
- {
1950
- "kind": "variable",
1951
- "name": "logger"
1952
- }
1953
- ],
1954
- "exports": [
1955
- {
1956
- "kind": "js",
1957
- "name": "logger",
1827
+ "kind": "custom-element-definition",
1828
+ "name": "foundation-layout-popout-controller",
1958
1829
  "declaration": {
1959
- "name": "logger",
1960
- "module": "src/utils/logger.ts"
1830
+ "name": "FoundationLayoutPopoutController",
1831
+ "module": "src/main/layout-popout-controller.ts"
1961
1832
  }
1962
1833
  }
1963
1834
  ]
1964
1835
  },
1965
1836
  {
1966
1837
  "kind": "javascript-module",
1967
- "path": "src/utils/misc.ts",
1968
- "declarations": [],
1969
- "exports": []
1970
- },
1971
- {
1972
- "kind": "javascript-module",
1973
- "path": "src/utils/popout-events.ts",
1838
+ "path": "src/main/layout-region.ts",
1974
1839
  "declarations": [
1975
1840
  {
1976
- "kind": "variable",
1977
- "name": "LAYOUT_POPOUT_CHANNEL_NAME",
1978
- "type": {
1979
- "text": "string"
1841
+ "kind": "class",
1842
+ "description": "",
1843
+ "name": "FoundationLayoutRegion",
1844
+ "members": [
1845
+ {
1846
+ "kind": "field",
1847
+ "name": "size",
1848
+ "type": {
1849
+ "text": "string"
1850
+ },
1851
+ "description": "optional string describing the size of the new item (see the written documentation for more info)",
1852
+ "privacy": "public"
1853
+ },
1854
+ {
1855
+ "kind": "field",
1856
+ "name": "type",
1857
+ "type": {
1858
+ "text": "LayoutRegionType"
1859
+ },
1860
+ "default": "layoutRegionValue[0]",
1861
+ "description": "Defines the LayoutRegionType| type of the region.\nDefaults to `horizontal`.",
1862
+ "privacy": "public"
1863
+ },
1864
+ {
1865
+ "kind": "field",
1866
+ "name": "_presentation",
1867
+ "type": {
1868
+ "text": "ComponentPresentation | null | undefined"
1869
+ },
1870
+ "privacy": "private",
1871
+ "default": "void 0",
1872
+ "inheritedFrom": {
1873
+ "name": "FoundationElement",
1874
+ "module": "src/foundation-element/foundation-element.ts"
1875
+ }
1876
+ },
1877
+ {
1878
+ "kind": "field",
1879
+ "name": "$presentation",
1880
+ "type": {
1881
+ "text": "ComponentPresentation | null"
1882
+ },
1883
+ "privacy": "public",
1884
+ "description": "A property which resolves the ComponentPresentation instance\nfor the current component.",
1885
+ "inheritedFrom": {
1886
+ "name": "FoundationElement",
1887
+ "module": "src/foundation-element/foundation-element.ts"
1888
+ }
1889
+ },
1890
+ {
1891
+ "kind": "field",
1892
+ "name": "template",
1893
+ "type": {
1894
+ "text": "ElementViewTemplate | void | null"
1895
+ },
1896
+ "privacy": "public",
1897
+ "description": "Sets the template of the element instance. When undefined,\nthe element will attempt to resolve the template from\nthe associated presentation or custom element definition.",
1898
+ "inheritedFrom": {
1899
+ "name": "FoundationElement",
1900
+ "module": "src/foundation-element/foundation-element.ts"
1901
+ }
1902
+ },
1903
+ {
1904
+ "kind": "method",
1905
+ "name": "templateChanged",
1906
+ "privacy": "protected",
1907
+ "return": {
1908
+ "type": {
1909
+ "text": "void"
1910
+ }
1911
+ },
1912
+ "inheritedFrom": {
1913
+ "name": "FoundationElement",
1914
+ "module": "src/foundation-element/foundation-element.ts"
1915
+ }
1916
+ },
1917
+ {
1918
+ "kind": "field",
1919
+ "name": "styles",
1920
+ "type": {
1921
+ "text": "ElementStyles | void | null"
1922
+ },
1923
+ "privacy": "public",
1924
+ "description": "Sets the default styles for the element instance. When undefined,\nthe element will attempt to resolve default styles from\nthe associated presentation or custom element definition.",
1925
+ "inheritedFrom": {
1926
+ "name": "FoundationElement",
1927
+ "module": "src/foundation-element/foundation-element.ts"
1928
+ }
1929
+ },
1930
+ {
1931
+ "kind": "method",
1932
+ "name": "stylesChanged",
1933
+ "privacy": "protected",
1934
+ "return": {
1935
+ "type": {
1936
+ "text": "void"
1937
+ }
1938
+ },
1939
+ "inheritedFrom": {
1940
+ "name": "FoundationElement",
1941
+ "module": "src/foundation-element/foundation-element.ts"
1942
+ }
1943
+ },
1944
+ {
1945
+ "kind": "method",
1946
+ "name": "compose",
1947
+ "privacy": "public",
1948
+ "static": true,
1949
+ "return": {
1950
+ "type": {
1951
+ "text": "(\n overrideDefinition?: OverrideFoundationElementDefinition<T>\n ) => FoundationElementRegistry<T, K>"
1952
+ }
1953
+ },
1954
+ "parameters": [
1955
+ {
1956
+ "name": "this",
1957
+ "type": {
1958
+ "text": "K"
1959
+ }
1960
+ },
1961
+ {
1962
+ "name": "elementDefinition",
1963
+ "type": {
1964
+ "text": "T"
1965
+ },
1966
+ "description": "The definition of the element to create the registry\nfunction for."
1967
+ }
1968
+ ],
1969
+ "description": "Defines an element registry function with a set of element definition defaults.",
1970
+ "inheritedFrom": {
1971
+ "name": "FoundationElement",
1972
+ "module": "src/foundation-element/foundation-element.ts"
1973
+ }
1974
+ }
1975
+ ],
1976
+ "attributes": [
1977
+ {
1978
+ "name": "size",
1979
+ "type": {
1980
+ "text": "string"
1981
+ },
1982
+ "description": "optional string describing the size of the new item (see the written documentation for more info)",
1983
+ "fieldName": "size"
1984
+ },
1985
+ {
1986
+ "name": "type",
1987
+ "type": {
1988
+ "text": "LayoutRegionType"
1989
+ },
1990
+ "default": "defaultLayoutType",
1991
+ "description": "Defines the LayoutRegionType| type of the region.\nDefaults to `horizontal`.",
1992
+ "resolveInitializer": {
1993
+ "module": "src/main/layout-region.ts"
1994
+ },
1995
+ "fieldName": "type"
1996
+ }
1997
+ ],
1998
+ "superclass": {
1999
+ "name": "FoundationElement",
2000
+ "package": "@microsoft/fast-foundation"
1980
2001
  },
1981
- "default": "'f-layout-popout-channel'",
1982
- "description": "Name of the default broadcast channel used for layout popouts",
1983
- "privacy": "public"
2002
+ "tagName": "%%prefix%%-layout-region",
2003
+ "customElement": true
1984
2004
  }
1985
2005
  ],
1986
2006
  "exports": [
1987
2007
  {
1988
2008
  "kind": "js",
1989
- "name": "LAYOUT_POPOUT_CHANNEL_NAME",
1990
- "declaration": {
1991
- "name": "LAYOUT_POPOUT_CHANNEL_NAME",
1992
- "module": "src/utils/popout-events.ts"
1993
- }
1994
- },
1995
- {
1996
- "kind": "js",
1997
- "name": "PopoutGeometry",
2009
+ "name": "FoundationLayoutRegion",
1998
2010
  "declaration": {
1999
- "name": "PopoutGeometry",
2000
- "module": "src/utils/popout-events.ts"
2011
+ "name": "FoundationLayoutRegion",
2012
+ "module": "src/main/layout-region.ts"
2001
2013
  }
2002
2014
  }
2003
2015
  ]
2004
- },
2005
- {
2006
- "kind": "javascript-module",
2007
- "path": "src/utils/templates.ts",
2008
- "declarations": [],
2009
- "exports": []
2010
- },
2011
- {
2012
- "kind": "javascript-module",
2013
- "path": "src/utils/types.ts",
2014
- "declarations": [],
2015
- "exports": []
2016
2016
  }
2017
2017
  ]
2018
2018
  }