@genesislcap/foundation-layout 14.224.4 → 14.225.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. package/dist/custom-elements.json +1044 -1044
  2. package/package.json +12 -12
@@ -139,47 +139,87 @@
139
139
  },
140
140
  {
141
141
  "kind": "javascript-module",
142
- "path": "src/main/index.ts",
143
- "declarations": [],
142
+ "path": "src/styles/constants.ts",
143
+ "declarations": [
144
+ {
145
+ "kind": "variable",
146
+ "name": "glVisualConfig",
147
+ "type": {
148
+ "text": "Omit<LayoutConfig, 'root'>"
149
+ },
150
+ "default": "{\n dimensions: {\n headerHeight: 38,\n borderWidth: 12,\n },\n header: {\n maximise: 'maximise',\n minimise: 'minimise',\n popout: false,\n },\n}"
151
+ },
152
+ {
153
+ "kind": "variable",
154
+ "name": "LAYOUT_ICONS",
155
+ "type": {
156
+ "text": "{\n renameSVG,\n maximiseSVG,\n minimiseSVG,\n closeSVG,\n tabDropdownSVG,\n popoutSVG,\n}"
157
+ },
158
+ "default": "{\n renameSVG,\n maximiseSVG,\n minimiseSVG,\n closeSVG,\n tabDropdownSVG,\n popoutSVG,\n}",
159
+ "description": "A collection of SVG icons in base64 format.",
160
+ "privacy": "public"
161
+ }
162
+ ],
144
163
  "exports": [
145
164
  {
146
165
  "kind": "js",
147
- "name": "FoundationLayoutItem",
166
+ "name": "glVisualConfig",
148
167
  "declaration": {
149
- "name": "FoundationLayoutItem",
150
- "module": "./layout-item"
168
+ "name": "glVisualConfig",
169
+ "module": "src/styles/constants.ts"
151
170
  }
152
171
  },
153
172
  {
154
173
  "kind": "js",
155
- "name": "FoundationLayoutRegion",
174
+ "name": "LAYOUT_ICONS",
156
175
  "declaration": {
157
- "name": "FoundationLayoutRegion",
158
- "module": "./layout-region"
176
+ "name": "LAYOUT_ICONS",
177
+ "module": "src/styles/constants.ts"
159
178
  }
160
- },
179
+ }
180
+ ]
181
+ },
182
+ {
183
+ "kind": "javascript-module",
184
+ "path": "src/styles/dragging.styles.ts",
185
+ "declarations": [
186
+ {
187
+ "kind": "variable",
188
+ "name": "globalDraggingStyles",
189
+ "default": "`\n .lm_dragProxy .lm_content {\n box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.9);\n }\n .lm_dropTargetIndicator {\n box-shadow: inset 0 0 30px #000000;\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`",
190
+ "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"
191
+ }
192
+ ],
193
+ "exports": [
161
194
  {
162
195
  "kind": "js",
163
- "name": "FoundationLayout",
196
+ "name": "globalDraggingStyles",
164
197
  "declaration": {
165
- "name": "FoundationLayout",
166
- "module": "./layout-main"
198
+ "name": "globalDraggingStyles",
199
+ "module": "src/styles/dragging.styles.ts"
167
200
  }
168
- },
201
+ }
202
+ ]
203
+ },
204
+ {
205
+ "kind": "javascript-module",
206
+ "path": "src/styles/index.ts",
207
+ "declarations": [],
208
+ "exports": [
169
209
  {
170
210
  "kind": "js",
171
- "name": "layoutStyles",
211
+ "name": "*",
172
212
  "declaration": {
173
- "name": "layoutStyles",
174
- "module": "./layout-main"
213
+ "name": "*",
214
+ "package": "./constants"
175
215
  }
176
216
  },
177
217
  {
178
218
  "kind": "js",
179
- "name": "layoutTemplate",
219
+ "name": "*",
180
220
  "declaration": {
181
- "name": "layoutTemplate",
182
- "module": "./layout-main"
221
+ "name": "*",
222
+ "package": "./dragging.styles"
183
223
  }
184
224
  },
185
225
  {
@@ -187,892 +227,966 @@
187
227
  "name": "*",
188
228
  "declaration": {
189
229
  "name": "*",
190
- "package": "./layout-components"
230
+ "package": "./layout.styles"
191
231
  }
192
232
  }
193
233
  ]
194
234
  },
195
235
  {
196
236
  "kind": "javascript-module",
197
- "path": "src/main/layout-components.ts",
237
+ "path": "src/styles/layout.styles.ts",
198
238
  "declarations": [
199
239
  {
200
240
  "kind": "variable",
201
- "name": "foundationLayoutComponents",
241
+ "name": "layoutStyles",
242
+ "default": "css`\n ${containerStyles}\n ${loadingSpinnerStyles}\n\n .lm_goldenlayout {\n padding: 1px;\n background: ${neutralLayer1};\n border-radius: calc(${controlCornerRadius} * 1.5px);\n }\n\n .lm_stack.lm_item {\n background-color: ${neutralLayer4};\n border-radius: calc(${controlCornerRadius} * 1.5px);\n }\n .lm_maximised .lm_header {\n background-color: ${neutralLayer4};\n border-radius: calc(${controlCornerRadius} * 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: ${neutralLayer3};\n border-radius: calc(${controlCornerRadius} * 1.5px);\n border: 1px solid;\n border-color: #2e3339;\n box-sizing: border-box;\n }\n\n .lm-header {\n z-index: 1;\n }\n .lm_header .lm_tabs {\n padding: 0 16px;\n }\n\n .lm_stack > .lm_items {\n z-index: 2;\n box-shadow: 0px -1px 15px rgba(0, 0, 0, 0.35);\n }\n\n .lm_header .lm_tab.lm_active.lm_focused {\n background-color: ${neutralLayer3};\n }\n .lm_header .lm_tab.lm_active {\n background-color: ${neutralLayer3};\n border: 1px solid;\n border-color: #2e3339;\n border-bottom: 0;\n color: ${accentFillRest};\n }\n\n .lm_header .lm_tab {\n align-items: center;\n background-color: ${neutralLayer4};\n border: 1px solid;\n border-bottom-color: #2e3339;\n border-bottom: 0px solid;\n border-color: rgba(0, 0, 0, 0.35);\n border-radius: calc(${controlCornerRadius} * 1.5px) calc(${controlCornerRadius} * 1.5px) 0 0;\n box-shadow: 1px -1px 2px rgba(0, 0, 0, 0.35);\n color: rgba(255, 255, 255, 0.3);\n display: flex;\n font-family: inherit;\n font-size: 13px;\n font-weight: 700;\n height: 30px;\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: rgba(255, 255, 255, 0.1);\n color: #f1f1f1;\n }\n\n .lm_header .lm_controls {\n top: 4px;\n display: flex;\n }\n .lm_header .lm_controls > * {\n width: 30px;\n height: 30px;\n background-repeat: no-repeat;\n background-position: center;\n background-size: 16px;\n background-color: rgba(255, 255, 255, 0.03);\n border-radius: calc(${controlCornerRadius} * 1.5px);\n margin-right: 4px;\n top: 3px;\n opacity: 1;\n }\n .lm_header .lm_controls > *:hover {\n background-color: rgba(255, 255, 255, 0.1);\n cursor: pointer;\n }\n\n .lm_controls .lm_maximise {\n background-image: url('${LAYOUT_ICONS.maximiseSVG}');\n }\n .lm_maximised .lm_controls .lm_maximise {\n background-image: url('${LAYOUT_ICONS.minimiseSVG}');\n }\n .lm_controls .lm_close {\n background-image: url('${LAYOUT_ICONS.closeSVG}');\n }\n .lm_header .lm_tab .lm_close_tab {\n background-image: url('${LAYOUT_ICONS.closeSVG}');\n background-size: 10px;\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: ${accentFillRest};\n opacity: 0.7;\n }\n\n .lm_header .lm_controls .lm_tabdropdown::before {\n content: none;\n }\n .lm_header .lm_controls .lm_tabdropdown {\n background-image: url('${LAYOUT_ICONS.tabDropdownSVG}');\n }\n .lm_header .lm_tabdropdown_list {\n top: 38px;\n right: 108px;\n background-color: ${neutralLayer3};\n border: 1px solid;\n border-color: #2e3339;\n border-radius: calc(${controlCornerRadius} * 1.5px);\n box-shadow: 0px 5px 15px rgba(0, 0, 0, 0.35);\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: #c9c9c9;\n height: 36px;\n border-radius: 0;\n overflow: visible;\n text-overflow: normal;\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 .lm_row > .lm_item {\n float: left;\n }\n .lm_content {\n overflow: hidden;\n position: relative;\n }\n .lm_dragging,\n .lm_dragging * {\n cursor: move !important;\n user-select: none;\n }\n .lm_maximised {\n left: 0;\n padding: 1px;\n position: absolute;\n top: 0;\n z-index: 40;\n }\n .lm_maximise_placeholder {\n display: none;\n }\n .lm_splitter {\n position: relative;\n z-index: 20;\n }\n .lm_splitter:hover,\n .lm_splitter.lm_dragging {\n background: ${accentFillRest};\n border-radius: calc(${controlCornerRadius} * 4px);\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 .lm_splitter.lm_horizontal {\n float: left;\n height: 100%;\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 .lm_header {\n overflow: visible;\n position: relative;\n z-index: 1;\n }\n .lm_header [class^='lm_'] {\n box-sizing: content-box !important;\n }\n .lm_header .lm_controls {\n position: absolute;\n right: 3px;\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 .lm_header ul {\n margin: 0;\n padding: 0;\n list-style-type: none;\n }\n .lm_header .lm_tabs {\n position: absolute;\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 .lm_header .lm_tab i {\n width: 2px;\n height: 19px;\n position: absolute;\n }\n .lm_header .lm_tab i.lm_left {\n top: 0;\n left: -2px;\n }\n .lm_header .lm_tab i.lm_right {\n top: 0;\n right: -2px;\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 .lm_header .lm_tab .lm_title:only-child {\n padding-left: 10px;\n }\n .lm_header .lm_tab .lm_close_tab {\n width: 14px;\n height: 14px;\n position: absolute;\n top: 11px;\n right: 0;\n text-align: center;\n }\n .lm_stack.lm_left .lm_header,\n .lm_stack.lm_right .lm_header {\n height: 100%;\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 .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 .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 .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 .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 .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 .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 .lm_dragProxy.lm_right .lm_content {\n float: left;\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 .lm_dragProxy.lm_right .lm_header .lm_controls,\n .lm_stack.lm_right .lm_header .lm_controls {\n left: 3px;\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 .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 .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_drop_tab_placeholder {\n float: left;\n width: 100px;\n height: 10px;\n visibility: hidden;\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 .lm_header .lm_tabdropdown_list .lm_tab {\n clear: both;\n padding-right: 10px;\n margin: 0;\n }\n .lm_header .lm_tabdropdown_list .lm_tab .lm_title {\n width: 100px;\n }\n .lm_header .lm_tabdropdown_list .lm_close_tab {\n display: none !important;\n }\n .lm_dragProxy {\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_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 .lm_popin {\n width: 20px;\n height: 20px;\n position: absolute;\n bottom: 0;\n right: 0;\n z-index: 9999;\n }\n .lm_popin > * {\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n }\n .lm_popin > .lm_bg {\n z-index: 10;\n }\n .lm_popin > .lm_icon {\n z-index: 20;\n } /*# sourceMappingURL=goldenlayout-base.css.map */\n`",
243
+ "description": "`ElementStyles` which defines the css for FoundationLayout.",
244
+ "privacy": "public"
245
+ }
246
+ ],
247
+ "exports": [
248
+ {
249
+ "kind": "js",
250
+ "name": "layoutStyles",
251
+ "declaration": {
252
+ "name": "layoutStyles",
253
+ "module": "src/styles/layout.styles.ts"
254
+ }
255
+ }
256
+ ]
257
+ },
258
+ {
259
+ "kind": "javascript-module",
260
+ "path": "src/utils/constants.ts",
261
+ "declarations": [
262
+ {
263
+ "kind": "variable",
264
+ "name": "DEFAULT_RELOAD_BUFFER",
202
265
  "type": {
203
- "text": "object"
266
+ "text": "number"
204
267
  },
205
- "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}",
206
- "description": "Registration object to register the layout with your design system.",
268
+ "default": "500",
269
+ "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.",
207
270
  "privacy": "public"
271
+ },
272
+ {
273
+ "kind": "variable",
274
+ "name": "LAYOUT_POPOUT_CONTAINER_CLASS",
275
+ "type": {
276
+ "text": "string"
277
+ },
278
+ "default": "'f-layout-popout'",
279
+ "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."
208
280
  }
209
281
  ],
210
282
  "exports": [
211
283
  {
212
284
  "kind": "js",
213
- "name": "foundationLayoutComponents",
285
+ "name": "DEFAULT_RELOAD_BUFFER",
214
286
  "declaration": {
215
- "name": "foundationLayoutComponents",
216
- "module": "src/main/layout-components.ts"
287
+ "name": "DEFAULT_RELOAD_BUFFER",
288
+ "module": "src/utils/constants.ts"
289
+ }
290
+ },
291
+ {
292
+ "kind": "js",
293
+ "name": "LAYOUT_POPOUT_CONTAINER_CLASS",
294
+ "declaration": {
295
+ "name": "LAYOUT_POPOUT_CONTAINER_CLASS",
296
+ "module": "src/utils/constants.ts"
217
297
  }
218
298
  }
219
299
  ]
220
300
  },
221
301
  {
222
302
  "kind": "javascript-module",
223
- "path": "src/main/layout-item.ts",
303
+ "path": "src/utils/error.ts",
224
304
  "declarations": [
225
305
  {
226
306
  "kind": "class",
227
307
  "description": "",
228
- "name": "FoundationLayoutItem",
229
- "members": [
230
- {
231
- "kind": "field",
232
- "name": "title",
233
- "type": {
234
- "text": "string"
235
- },
236
- "description": "Sets the title of the item which is displayed on the tab.",
237
- "privacy": "public"
238
- },
239
- {
240
- "kind": "field",
241
- "name": "closable",
242
- "type": {
243
- "text": "boolean"
244
- },
245
- "default": "false",
246
- "description": "Boolean attribute controls whether the window can be closed in the GUI.\nDefaults to `false`.",
247
- "privacy": "public"
248
- },
249
- {
250
- "kind": "field",
251
- "name": "size",
252
- "type": {
253
- "text": "string"
254
- },
255
- "description": "optional string describing the size of the new item (see the written documentation for more info)",
256
- "privacy": "public"
257
- },
258
- {
259
- "kind": "field",
260
- "name": "registration",
261
- "type": {
262
- "text": "string"
263
- },
264
- "description": "Sets the registration name for the item, which can be used later to add the item via the JavaScript API using FoundationLayout.addItem.",
265
- "privacy": "public"
266
- },
267
- {
268
- "kind": "field",
269
- "name": "_presentation",
270
- "type": {
271
- "text": "ComponentPresentation | null | undefined"
272
- },
273
- "privacy": "private",
274
- "default": "void 0",
275
- "inheritedFrom": {
276
- "name": "FoundationElement",
277
- "module": "src/foundation-element/foundation-element.ts"
278
- }
279
- },
280
- {
281
- "kind": "field",
282
- "name": "$presentation",
283
- "type": {
284
- "text": "ComponentPresentation | null"
285
- },
286
- "privacy": "public",
287
- "description": "A property which resolves the ComponentPresentation instance\nfor the current component.",
288
- "inheritedFrom": {
289
- "name": "FoundationElement",
290
- "module": "src/foundation-element/foundation-element.ts"
291
- }
292
- },
293
- {
294
- "kind": "field",
295
- "name": "template",
296
- "type": {
297
- "text": "ElementViewTemplate | void | null"
298
- },
299
- "privacy": "public",
300
- "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.",
301
- "inheritedFrom": {
302
- "name": "FoundationElement",
303
- "module": "src/foundation-element/foundation-element.ts"
304
- }
305
- },
306
- {
307
- "kind": "method",
308
- "name": "templateChanged",
309
- "privacy": "protected",
310
- "return": {
311
- "type": {
312
- "text": "void"
313
- }
314
- },
315
- "inheritedFrom": {
316
- "name": "FoundationElement",
317
- "module": "src/foundation-element/foundation-element.ts"
318
- }
319
- },
320
- {
321
- "kind": "field",
322
- "name": "styles",
323
- "type": {
324
- "text": "ElementStyles | void | null"
325
- },
326
- "privacy": "public",
327
- "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.",
328
- "inheritedFrom": {
329
- "name": "FoundationElement",
330
- "module": "src/foundation-element/foundation-element.ts"
331
- }
332
- },
333
- {
334
- "kind": "method",
335
- "name": "stylesChanged",
336
- "privacy": "protected",
337
- "return": {
338
- "type": {
339
- "text": "void"
340
- }
341
- },
342
- "inheritedFrom": {
343
- "name": "FoundationElement",
344
- "module": "src/foundation-element/foundation-element.ts"
345
- }
346
- },
347
- {
348
- "kind": "method",
349
- "name": "compose",
350
- "privacy": "public",
351
- "static": true,
352
- "return": {
353
- "type": {
354
- "text": "(\n overrideDefinition?: OverrideFoundationElementDefinition<T>\n ) => FoundationElementRegistry<T, K>"
355
- }
356
- },
357
- "parameters": [
358
- {
359
- "name": "this",
360
- "type": {
361
- "text": "K"
362
- }
363
- },
364
- {
365
- "name": "elementDefinition",
366
- "type": {
367
- "text": "T"
368
- },
369
- "description": "The definition of the element to create the registry\nfunction for."
370
- }
371
- ],
372
- "description": "Defines an element registry function with a set of element definition defaults.",
373
- "inheritedFrom": {
374
- "name": "FoundationElement",
375
- "module": "src/foundation-element/foundation-element.ts"
376
- }
377
- }
378
- ],
379
- "attributes": [
380
- {
381
- "name": "title",
382
- "type": {
383
- "text": "string"
384
- },
385
- "description": "Sets the title of the item which is displayed on the tab.",
386
- "fieldName": "title"
387
- },
388
- {
389
- "type": {
390
- "text": "boolean"
391
- },
392
- "default": "false",
393
- "description": "Boolean attribute controls whether the window can be closed in the GUI.\nDefaults to `false`.",
394
- "fieldName": "closable"
395
- },
396
- {
397
- "name": "size",
398
- "type": {
399
- "text": "string"
400
- },
401
- "description": "optional string describing the size of the new item (see the written documentation for more info)",
402
- "fieldName": "size"
403
- },
404
- {
405
- "name": "registration",
406
- "type": {
407
- "text": "string"
408
- },
409
- "description": "Sets the registration name for the item, which can be used later to add the item via the JavaScript API using FoundationLayout.addItem.",
410
- "fieldName": "registration"
411
- }
412
- ],
308
+ "name": "LayoutUsageError",
413
309
  "superclass": {
414
- "name": "FoundationElement",
415
- "package": "@microsoft/fast-foundation"
310
+ "name": "Error",
311
+ "module": "src/utils/error.ts"
312
+ }
313
+ },
314
+ {
315
+ "kind": "class",
316
+ "description": "",
317
+ "name": "LayoutRegistrationError",
318
+ "superclass": {
319
+ "name": "Error",
320
+ "module": "src/utils/error.ts"
321
+ }
322
+ }
323
+ ],
324
+ "exports": [
325
+ {
326
+ "kind": "js",
327
+ "name": "LayoutUsageError",
328
+ "declaration": {
329
+ "name": "LayoutUsageError",
330
+ "module": "src/utils/error.ts"
331
+ }
332
+ },
333
+ {
334
+ "kind": "js",
335
+ "name": "LayoutRegistrationError",
336
+ "declaration": {
337
+ "name": "LayoutRegistrationError",
338
+ "module": "src/utils/error.ts"
339
+ }
340
+ }
341
+ ]
342
+ },
343
+ {
344
+ "kind": "javascript-module",
345
+ "path": "src/utils/events.ts",
346
+ "declarations": [
347
+ {
348
+ "kind": "variable",
349
+ "name": "LayoutEmitEvents",
350
+ "type": {
351
+ "text": "{\n firstLoaded: 'first-loaded',\n itemAdded: 'item-added',\n itemRemoved: 'item-removed',\n itemResized: 'item-resized',\n}"
416
352
  },
417
- "tagName": "%%prefix%%-layout-item",
418
- "customElement": true
353
+ "default": "{\n firstLoaded: 'first-loaded',\n itemAdded: 'item-added',\n itemRemoved: 'item-removed',\n itemResized: 'item-resized',\n}",
354
+ "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",
355
+ "privacy": "public"
356
+ },
357
+ {
358
+ "kind": "variable",
359
+ "name": "LayoutReceiveEvents",
360
+ "type": {
361
+ "text": "{\n changeTitle: 'change-title',\n autosave: 'autosave',\n}"
362
+ },
363
+ "default": "{\n changeTitle: 'change-title',\n autosave: 'autosave',\n}",
364
+ "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.",
365
+ "privacy": "public"
419
366
  }
420
367
  ],
421
368
  "exports": [
422
369
  {
423
370
  "kind": "js",
424
- "name": "FoundationLayoutItem",
371
+ "name": "LayoutEmitEvents",
425
372
  "declaration": {
426
- "name": "FoundationLayoutItem",
427
- "module": "src/main/layout-item.ts"
373
+ "name": "LayoutEmitEvents",
374
+ "module": "src/utils/events.ts"
375
+ }
376
+ },
377
+ {
378
+ "kind": "js",
379
+ "name": "LayoutReceiveEvents",
380
+ "declaration": {
381
+ "name": "LayoutReceiveEvents",
382
+ "module": "src/utils/events.ts"
428
383
  }
429
384
  }
430
385
  ]
431
386
  },
432
387
  {
433
388
  "kind": "javascript-module",
434
- "path": "src/main/layout-main.ts",
389
+ "path": "src/utils/index.ts",
390
+ "declarations": [],
391
+ "exports": [
392
+ {
393
+ "kind": "js",
394
+ "name": "*",
395
+ "declaration": {
396
+ "name": "*",
397
+ "package": "./constants"
398
+ }
399
+ },
400
+ {
401
+ "kind": "js",
402
+ "name": "*",
403
+ "declaration": {
404
+ "name": "*",
405
+ "package": "./error"
406
+ }
407
+ },
408
+ {
409
+ "kind": "js",
410
+ "name": "*",
411
+ "declaration": {
412
+ "name": "*",
413
+ "package": "./events"
414
+ }
415
+ },
416
+ {
417
+ "kind": "js",
418
+ "name": "*",
419
+ "declaration": {
420
+ "name": "*",
421
+ "package": "./misc"
422
+ }
423
+ },
424
+ {
425
+ "kind": "js",
426
+ "name": "*",
427
+ "declaration": {
428
+ "name": "*",
429
+ "package": "./templates"
430
+ }
431
+ },
432
+ {
433
+ "kind": "js",
434
+ "name": "*",
435
+ "declaration": {
436
+ "name": "*",
437
+ "package": "./types"
438
+ }
439
+ },
440
+ {
441
+ "kind": "js",
442
+ "name": "*",
443
+ "declaration": {
444
+ "name": "*",
445
+ "package": "./error"
446
+ }
447
+ }
448
+ ]
449
+ },
450
+ {
451
+ "kind": "javascript-module",
452
+ "path": "src/utils/logger.ts",
435
453
  "declarations": [
436
454
  {
437
- "kind": "class",
438
- "description": "",
439
- "name": "FoundationLayout",
440
- "members": [
441
- {
442
- "kind": "field",
443
- "name": "layout",
444
- "type": {
445
- "text": "GoldenLayout"
446
- },
447
- "privacy": "private"
448
- },
449
- {
450
- "kind": "field",
451
- "name": "layoutConfig",
452
- "type": {
453
- "text": "LayoutConfig"
454
- },
455
- "privacy": "private",
456
- "default": "{ root: undefined }"
457
- },
458
- {
459
- "kind": "field",
460
- "name": "reloadBuffer",
461
- "type": {
462
- "text": "number"
463
- },
464
- "default": "DEFAULT_RELOAD_BUFFER",
465
- "description": "Number describing how long to wait in ms before reloading the config when adding items\ndeclaratively by the html API. Default 500 (ms).",
466
- "privacy": "public"
467
- },
468
- {
469
- "kind": "field",
470
- "name": "reloadPending",
471
- "type": {
472
- "text": "boolean"
473
- },
474
- "privacy": "private",
475
- "default": "false"
476
- },
477
- {
478
- "kind": "field",
479
- "name": "registeredComponents",
480
- "type": {
481
- "text": "number"
482
- },
483
- "privacy": "private",
484
- "default": "0"
485
- },
486
- {
487
- "kind": "field",
488
- "name": "autoSaveKey",
489
- "type": {
490
- "text": "string | undefined"
491
- },
492
- "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`.",
493
- "privacy": "public"
494
- },
495
- {
496
- "kind": "field",
497
- "name": "missingItemPlaceholder",
498
- "description": "Function which is used to generate the placeholder text when a layout is loaded\nwith a missing item.",
499
- "privacy": "public"
500
- },
455
+ "kind": "variable",
456
+ "name": "logger"
457
+ }
458
+ ],
459
+ "exports": [
460
+ {
461
+ "kind": "js",
462
+ "name": "logger",
463
+ "declaration": {
464
+ "name": "logger",
465
+ "module": "src/utils/logger.ts"
466
+ }
467
+ }
468
+ ]
469
+ },
470
+ {
471
+ "kind": "javascript-module",
472
+ "path": "src/utils/misc.ts",
473
+ "declarations": [],
474
+ "exports": []
475
+ },
476
+ {
477
+ "kind": "javascript-module",
478
+ "path": "src/utils/templates.ts",
479
+ "declarations": [],
480
+ "exports": []
481
+ },
482
+ {
483
+ "kind": "javascript-module",
484
+ "path": "src/utils/types.ts",
485
+ "declarations": [],
486
+ "exports": []
487
+ },
488
+ {
489
+ "kind": "javascript-module",
490
+ "path": "src/main/index.ts",
491
+ "declarations": [],
492
+ "exports": [
493
+ {
494
+ "kind": "js",
495
+ "name": "FoundationLayoutItem",
496
+ "declaration": {
497
+ "name": "FoundationLayoutItem",
498
+ "module": "./layout-item"
499
+ }
500
+ },
501
+ {
502
+ "kind": "js",
503
+ "name": "FoundationLayoutRegion",
504
+ "declaration": {
505
+ "name": "FoundationLayoutRegion",
506
+ "module": "./layout-region"
507
+ }
508
+ },
509
+ {
510
+ "kind": "js",
511
+ "name": "FoundationLayout",
512
+ "declaration": {
513
+ "name": "FoundationLayout",
514
+ "module": "./layout-main"
515
+ }
516
+ },
517
+ {
518
+ "kind": "js",
519
+ "name": "layoutStyles",
520
+ "declaration": {
521
+ "name": "layoutStyles",
522
+ "module": "./layout-main"
523
+ }
524
+ },
525
+ {
526
+ "kind": "js",
527
+ "name": "layoutTemplate",
528
+ "declaration": {
529
+ "name": "layoutTemplate",
530
+ "module": "./layout-main"
531
+ }
532
+ },
533
+ {
534
+ "kind": "js",
535
+ "name": "*",
536
+ "declaration": {
537
+ "name": "*",
538
+ "package": "./layout-components"
539
+ }
540
+ }
541
+ ]
542
+ },
543
+ {
544
+ "kind": "javascript-module",
545
+ "path": "src/main/layout-components.ts",
546
+ "declarations": [
547
+ {
548
+ "kind": "variable",
549
+ "name": "foundationLayoutComponents",
550
+ "type": {
551
+ "text": "object"
552
+ },
553
+ "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}",
554
+ "description": "Registration object to register the layout with your design system.",
555
+ "privacy": "public"
556
+ }
557
+ ],
558
+ "exports": [
559
+ {
560
+ "kind": "js",
561
+ "name": "foundationLayoutComponents",
562
+ "declaration": {
563
+ "name": "foundationLayoutComponents",
564
+ "module": "src/main/layout-components.ts"
565
+ }
566
+ }
567
+ ]
568
+ },
569
+ {
570
+ "kind": "javascript-module",
571
+ "path": "src/main/layout-item.ts",
572
+ "declarations": [
573
+ {
574
+ "kind": "class",
575
+ "description": "",
576
+ "name": "FoundationLayoutItem",
577
+ "members": [
501
578
  {
502
579
  "kind": "field",
503
- "name": "dimensionsConfig",
580
+ "name": "title",
504
581
  "type": {
505
- "text": "LayoutConfig.Dimensions | undefined"
582
+ "text": "string"
506
583
  },
507
- "description": "Apply dimensions config to the layout, such as setting the size of the drag handles.",
584
+ "description": "Sets the title of the item which is displayed on the tab.",
508
585
  "privacy": "public"
509
586
  },
510
587
  {
511
588
  "kind": "field",
512
- "name": "hasFirstLoaded",
589
+ "name": "closable",
513
590
  "type": {
514
591
  "text": "boolean"
515
592
  },
516
593
  "default": "false",
517
- "description": "Boolean signifies whether the layout has loaded for the first time or not.",
594
+ "description": "Boolean attribute controls whether the window can be closed in the GUI.\nDefaults to `false`.",
518
595
  "privacy": "public"
519
596
  },
520
597
  {
521
598
  "kind": "field",
522
- "name": "customButtons",
599
+ "name": "size",
523
600
  "type": {
524
- "text": "CustomButton[]"
601
+ "text": "string"
525
602
  },
526
- "default": "[]",
527
- "description": "Set custom button definition on this property to add them to the layout header controls",
603
+ "description": "optional string describing the size of the new item (see the written documentation for more info)",
528
604
  "privacy": "public"
529
605
  },
530
606
  {
531
607
  "kind": "field",
532
- "name": "dragging",
608
+ "name": "registration",
533
609
  "type": {
534
- "text": "boolean"
610
+ "text": "string"
535
611
  },
536
- "default": "false",
612
+ "description": "Sets the registration name for the item, which can be used later to add the item via the JavaScript API using FoundationLayout.addItem.",
537
613
  "privacy": "public"
538
614
  },
539
615
  {
540
616
  "kind": "field",
541
- "name": "class",
542
- "privacy": "public",
543
- "default": "'FoundationLayoutMain'",
617
+ "name": "_presentation",
544
618
  "type": {
545
- "text": "'FoundationLayoutMain'"
619
+ "text": "ComponentPresentation | null | undefined"
620
+ },
621
+ "privacy": "private",
622
+ "default": "void 0",
623
+ "inheritedFrom": {
624
+ "name": "FoundationElement",
625
+ "module": "src/foundation-element/foundation-element.ts"
546
626
  }
547
627
  },
548
628
  {
549
629
  "kind": "field",
550
- "name": "lifecycleUpdateToken",
630
+ "name": "$presentation",
551
631
  "type": {
552
- "text": "string | undefined"
632
+ "text": "ComponentPresentation | null"
553
633
  },
554
634
  "privacy": "public",
555
- "default": "undefined",
556
- "description": "Used to calculate whether a layout item should run its lifecycle methods or not"
557
- },
558
- {
559
- "kind": "field",
560
- "name": "popoutConfig",
561
- "type": {
562
- "text": "string | undefined"
563
- },
564
- "default": "undefined",
565
- "description": "Controls whether popout functionality is enabled on the layout. Defaults to disabled.\nSet this attribute to any string to enable popout functionality. If this string is of format `number;number` then this will be interpreted as the width and height of the popout window."
635
+ "description": "A property which resolves the ComponentPresentation instance\nfor the current component.",
636
+ "inheritedFrom": {
637
+ "name": "FoundationElement",
638
+ "module": "src/foundation-element/foundation-element.ts"
639
+ }
566
640
  },
567
641
  {
568
642
  "kind": "field",
569
- "name": "popupMode",
643
+ "name": "template",
570
644
  "type": {
571
- "text": "boolean"
645
+ "text": "ElementViewTemplate | void | null"
572
646
  },
573
- "privacy": "private",
574
- "default": "false"
647
+ "privacy": "public",
648
+ "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.",
649
+ "inheritedFrom": {
650
+ "name": "FoundationElement",
651
+ "module": "src/foundation-element/foundation-element.ts"
652
+ }
575
653
  },
576
654
  {
577
655
  "kind": "method",
578
- "name": "layoutRequiredRegistrations",
579
- "static": true,
656
+ "name": "templateChanged",
657
+ "privacy": "protected",
580
658
  "return": {
581
659
  "type": {
582
- "text": ""
660
+ "text": "void"
583
661
  }
584
662
  },
585
- "parameters": [
586
- {
587
- "name": "layout",
588
- "type": {
589
- "text": "SerialisedLayout"
590
- },
591
- "description": "any version of {@link SerialisedLayout}object describing the layout\n * "
592
- }
593
- ],
594
- "description": "JS API, public",
595
- "privacy": "public"
663
+ "inheritedFrom": {
664
+ "name": "FoundationElement",
665
+ "module": "src/foundation-element/foundation-element.ts"
666
+ }
596
667
  },
597
668
  {
598
- "kind": "method",
599
- "name": "registeredItems",
600
- "return": {
601
- "type": {
602
- "text": ""
603
- }
669
+ "kind": "field",
670
+ "name": "styles",
671
+ "type": {
672
+ "text": "ElementStyles | void | null"
604
673
  },
605
- "privacy": "public"
674
+ "privacy": "public",
675
+ "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.",
676
+ "inheritedFrom": {
677
+ "name": "FoundationElement",
678
+ "module": "src/foundation-element/foundation-element.ts"
679
+ }
606
680
  },
607
681
  {
608
682
  "kind": "method",
609
- "name": "getLayout",
683
+ "name": "stylesChanged",
684
+ "privacy": "protected",
610
685
  "return": {
611
686
  "type": {
612
- "text": ""
687
+ "text": "void"
613
688
  }
614
689
  },
615
- "privacy": "public"
690
+ "inheritedFrom": {
691
+ "name": "FoundationElement",
692
+ "module": "src/foundation-element/foundation-element.ts"
693
+ }
616
694
  },
617
695
  {
618
696
  "kind": "method",
619
- "name": "tryActivatePopoutMode",
697
+ "name": "compose",
698
+ "privacy": "public",
699
+ "static": true,
620
700
  "return": {
621
701
  "type": {
622
- "text": "boolean"
623
- }
624
- },
625
- "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."
626
- },
627
- {
628
- "kind": "method",
629
- "name": "tryLoadLayoutFromLocalStorage",
630
- "return": {
631
- "type": {
632
- "text": ""
702
+ "text": "(\n overrideDefinition?: OverrideFoundationElementDefinition<T>\n ) => FoundationElementRegistry<T, K>"
633
703
  }
634
704
  },
635
- "description": "Try to load a layout from local storage, or return false. Only required if manually calling FoundationLayout.registerItem",
636
- "privacy": "public"
637
- },
638
- {
639
- "kind": "method",
640
- "name": "loadLayout",
641
705
  "parameters": [
642
706
  {
643
- "name": "layout",
644
- "type": {
645
- "text": "SerialisedLayout"
646
- },
647
- "description": "any version of {@link SerialisedLayout}object describing the layout\n * "
648
- },
649
- {
650
- "name": "handleMissingItem",
651
- "default": "'error'",
707
+ "name": "this",
652
708
  "type": {
653
- "text": "'placeholder' | 'error'"
654
- },
655
- "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 * "
709
+ "text": "K"
710
+ }
656
711
  },
657
712
  {
658
- "name": "disableCache",
659
- "default": "false",
713
+ "name": "elementDefinition",
660
714
  "type": {
661
- "text": "boolean"
715
+ "text": "T"
662
716
  },
663
- "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 * "
717
+ "description": "The definition of the element to create the registry\nfunction for."
664
718
  }
665
719
  ],
666
- "privacy": "public"
667
- },
720
+ "description": "Defines an element registry function with a set of element definition defaults.",
721
+ "inheritedFrom": {
722
+ "name": "FoundationElement",
723
+ "module": "src/foundation-element/foundation-element.ts"
724
+ }
725
+ }
726
+ ],
727
+ "attributes": [
668
728
  {
669
- "kind": "method",
670
- "name": "addItem",
671
- "parameters": [
672
- {
673
- "name": "config",
674
- "type": {
675
- "text": "RegisteredElementConfig | RegisteredElementConfig[]"
676
- },
677
- "description": "{@link RegisteredElementConfig}configuration items for the new items(s). Pass an array of {@link RegisteredElementConfig}to add multiple items at once.\n * "
678
- },
679
- {
680
- "name": "placement",
681
- "default": "defaultAddItemPlacement",
682
- "type": {
683
- "text": "Placement"
684
- },
685
- "description": "where and how to add the new items to the layout. For more info and defaults see {@link Placement}.\n * "
686
- }
687
- ],
688
- "privacy": "public"
729
+ "name": "title",
730
+ "type": {
731
+ "text": "string"
732
+ },
733
+ "description": "Sets the title of the item which is displayed on the tab.",
734
+ "fieldName": "title"
689
735
  },
690
736
  {
691
- "kind": "method",
692
- "name": "removeItems",
693
- "return": {
694
- "type": {
695
- "text": ""
696
- }
737
+ "type": {
738
+ "text": "boolean"
697
739
  },
698
- "parameters": [
699
- {
700
- "name": "registration",
701
- "type": {
702
- "text": "string"
703
- },
704
- "description": "string of the registration ID"
705
- },
706
- {
707
- "name": "force",
708
- "default": "false",
709
- "type": {
710
- "text": "boolean"
711
- },
712
- "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."
713
- }
714
- ],
715
- "privacy": "public"
740
+ "default": "false",
741
+ "description": "Boolean attribute controls whether the window can be closed in the GUI.\nDefaults to `false`.",
742
+ "fieldName": "closable"
716
743
  },
717
744
  {
718
- "kind": "method",
719
- "name": "registerItem",
720
- "return": {
721
- "type": {
722
- "text": ""
723
- }
745
+ "name": "size",
746
+ "type": {
747
+ "text": "string"
724
748
  },
725
- "parameters": [
726
- {
727
- "name": "registration",
728
- "type": {
729
- "text": "string"
730
- },
731
- "description": "string of the registration ID"
732
- },
733
- {
734
- "name": "elements",
735
- "type": {
736
- "text": "Element[]"
737
- },
738
- "description": "Elements[] containing the reference to the elements to register for later usage"
739
- }
740
- ],
741
- "privacy": "public"
749
+ "description": "optional string describing the size of the new item (see the written documentation for more info)",
750
+ "fieldName": "size"
742
751
  },
743
752
  {
744
- "kind": "method",
745
- "name": "updateLifecycleToken",
746
- "privacy": "private",
747
- "return": {
748
- "type": {
749
- "text": "void"
750
- }
753
+ "name": "registration",
754
+ "type": {
755
+ "text": "string"
751
756
  },
752
- "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"
757
+ "description": "Sets the registration name for the item, which can be used later to add the item via the JavaScript API using FoundationLayout.addItem.",
758
+ "fieldName": "registration"
759
+ }
760
+ ],
761
+ "superclass": {
762
+ "name": "FoundationElement",
763
+ "package": "@microsoft/fast-foundation"
764
+ },
765
+ "tagName": "%%prefix%%-layout-item",
766
+ "customElement": true
767
+ }
768
+ ],
769
+ "exports": [
770
+ {
771
+ "kind": "js",
772
+ "name": "FoundationLayoutItem",
773
+ "declaration": {
774
+ "name": "FoundationLayoutItem",
775
+ "module": "src/main/layout-item.ts"
776
+ }
777
+ }
778
+ ]
779
+ },
780
+ {
781
+ "kind": "javascript-module",
782
+ "path": "src/main/layout-main.ts",
783
+ "declarations": [
784
+ {
785
+ "kind": "class",
786
+ "description": "",
787
+ "name": "FoundationLayout",
788
+ "members": [
789
+ {
790
+ "kind": "field",
791
+ "name": "layout",
792
+ "type": {
793
+ "text": "GoldenLayout"
794
+ },
795
+ "privacy": "private"
753
796
  },
754
797
  {
755
798
  "kind": "field",
756
- "name": "_presentation",
799
+ "name": "layoutConfig",
757
800
  "type": {
758
- "text": "ComponentPresentation | null | undefined"
801
+ "text": "LayoutConfig"
759
802
  },
760
803
  "privacy": "private",
761
- "default": "void 0",
762
- "inheritedFrom": {
763
- "name": "FoundationElement",
764
- "module": "src/foundation-element/foundation-element.ts"
765
- }
804
+ "default": "{ root: undefined }"
766
805
  },
767
806
  {
768
807
  "kind": "field",
769
- "name": "$presentation",
808
+ "name": "reloadBuffer",
770
809
  "type": {
771
- "text": "ComponentPresentation | null"
810
+ "text": "number"
772
811
  },
773
- "privacy": "public",
774
- "description": "A property which resolves the ComponentPresentation instance\nfor the current component.",
775
- "inheritedFrom": {
776
- "name": "FoundationElement",
777
- "module": "src/foundation-element/foundation-element.ts"
778
- }
812
+ "default": "DEFAULT_RELOAD_BUFFER",
813
+ "description": "Number describing how long to wait in ms before reloading the config when adding items\ndeclaratively by the html API. Default 500 (ms).",
814
+ "privacy": "public"
779
815
  },
780
816
  {
781
817
  "kind": "field",
782
- "name": "template",
818
+ "name": "reloadPending",
783
819
  "type": {
784
- "text": "ElementViewTemplate | void | null"
820
+ "text": "boolean"
785
821
  },
786
- "privacy": "public",
787
- "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.",
788
- "inheritedFrom": {
789
- "name": "FoundationElement",
790
- "module": "src/foundation-element/foundation-element.ts"
791
- }
822
+ "privacy": "private",
823
+ "default": "false"
792
824
  },
793
825
  {
794
- "kind": "method",
795
- "name": "templateChanged",
796
- "privacy": "protected",
797
- "return": {
798
- "type": {
799
- "text": "void"
800
- }
826
+ "kind": "field",
827
+ "name": "registeredComponents",
828
+ "type": {
829
+ "text": "number"
801
830
  },
802
- "inheritedFrom": {
803
- "name": "FoundationElement",
804
- "module": "src/foundation-element/foundation-element.ts"
805
- }
831
+ "privacy": "private",
832
+ "default": "0"
806
833
  },
807
834
  {
808
835
  "kind": "field",
809
- "name": "styles",
836
+ "name": "autoSaveKey",
810
837
  "type": {
811
- "text": "ElementStyles | void | null"
838
+ "text": "string | undefined"
812
839
  },
813
- "privacy": "public",
814
- "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.",
815
- "inheritedFrom": {
816
- "name": "FoundationElement",
817
- "module": "src/foundation-element/foundation-element.ts"
818
- }
840
+ "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`.",
841
+ "privacy": "public"
819
842
  },
820
843
  {
821
- "kind": "method",
822
- "name": "stylesChanged",
823
- "privacy": "protected",
824
- "return": {
825
- "type": {
826
- "text": "void"
827
- }
828
- },
829
- "inheritedFrom": {
830
- "name": "FoundationElement",
831
- "module": "src/foundation-element/foundation-element.ts"
832
- }
833
- },
834
- {
835
- "kind": "method",
836
- "name": "compose",
837
- "privacy": "public",
838
- "static": true,
839
- "return": {
840
- "type": {
841
- "text": "(\n overrideDefinition?: OverrideFoundationElementDefinition<T>\n ) => FoundationElementRegistry<T, K>"
842
- }
843
- },
844
- "parameters": [
845
- {
846
- "name": "this",
847
- "type": {
848
- "text": "K"
849
- }
850
- },
851
- {
852
- "name": "elementDefinition",
853
- "type": {
854
- "text": "T"
855
- },
856
- "description": "The definition of the element to create the registry\nfunction for."
857
- }
858
- ],
859
- "description": "Defines an element registry function with a set of element definition defaults.",
860
- "inheritedFrom": {
861
- "name": "FoundationElement",
862
- "module": "src/foundation-element/foundation-element.ts"
863
- }
864
- }
865
- ],
866
- "events": [
867
- {
868
- "description": "emitted when the layout has finished loading the first time",
869
- "name": "first-loaded"
870
- },
871
- {
872
- "description": "emitted when an item is added to the layout",
873
- "name": "item-added"
874
- },
875
- {
876
- "description": "emitted when an item is removed from the layout",
877
- "name": "item-removed"
844
+ "kind": "field",
845
+ "name": "missingItemPlaceholder",
846
+ "description": "Function which is used to generate the placeholder text when a layout is loaded\nwith a missing item.",
847
+ "privacy": "public"
878
848
  },
879
849
  {
880
- "description": "emitted when the user drags the divider to resize elements",
881
- "name": "item-resized"
882
- }
883
- ],
884
- "attributes": [
885
- {
886
- "name": "reload-buffer",
850
+ "kind": "field",
851
+ "name": "dimensionsConfig",
887
852
  "type": {
888
- "text": "number"
889
- },
890
- "default": "DEFAULT_RELOAD_BUFFER",
891
- "description": "Number describing how long to wait in ms before reloading the config when adding items\ndeclaratively by the html API. Default 500 (ms).",
892
- "resolveInitializer": {
893
- "module": "/src/utils/"
853
+ "text": "LayoutConfig.Dimensions | undefined"
894
854
  },
895
- "fieldName": "reloadBuffer"
855
+ "description": "Apply dimensions config to the layout, such as setting the size of the drag handles.",
856
+ "privacy": "public"
896
857
  },
897
858
  {
898
- "name": "auto-save-key",
859
+ "kind": "field",
860
+ "name": "hasFirstLoaded",
899
861
  "type": {
900
- "text": "string | undefined"
862
+ "text": "boolean"
901
863
  },
902
- "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`.",
903
- "fieldName": "autoSaveKey"
864
+ "default": "false",
865
+ "description": "Boolean signifies whether the layout has loaded for the first time or not.",
866
+ "privacy": "public"
904
867
  },
905
- {
906
- "name": "popout-config",
907
- "type": {
908
- "text": "string | undefined"
909
- },
910
- "default": "undefined",
911
- "description": "Controls whether popout functionality is enabled on the layout. Defaults to disabled.\nSet this attribute to any string to enable popout functionality. If this string is of format `number;number` then this will be interpreted as the width and height of the popout window.",
912
- "resolveInitializer": {
913
- "module": "src/main/layout-main.ts"
914
- },
915
- "fieldName": "popoutConfig"
916
- }
917
- ],
918
- "superclass": {
919
- "name": "FoundationElement",
920
- "package": "@microsoft/fast-foundation"
921
- },
922
- "tagName": "%%prefix%%-layout",
923
- "customElement": true
924
- },
925
- {
926
- "kind": "variable",
927
- "name": "layoutTemplate",
928
- "default": "html<FoundationLayout>`\n <template>\n ${when((x) => !x.hasFirstLoaded && x.usingDeclerativeAPI, loadingTemplate)}\n <div class=\"layout-container\" ${ref('layoutElement')}></div>\n </template>\n`",
929
- "description": "`ViewTemplate` which defines the html for FoundationLayout.",
930
- "privacy": "public"
931
- }
932
- ],
933
- "exports": [
934
- {
935
- "kind": "js",
936
- "name": "layoutStyles",
937
- "declaration": {
938
- "name": "layoutStyles",
939
- "module": "../styles"
940
- }
941
- },
942
- {
943
- "kind": "js",
944
- "name": "FoundationLayout",
945
- "declaration": {
946
- "name": "FoundationLayout",
947
- "module": "src/main/layout-main.ts"
948
- }
949
- },
950
- {
951
- "kind": "js",
952
- "name": "layoutTemplate",
953
- "declaration": {
954
- "name": "layoutTemplate",
955
- "module": "src/main/layout-main.ts"
956
- }
957
- }
958
- ]
959
- },
960
- {
961
- "kind": "javascript-module",
962
- "path": "src/main/layout-region.ts",
963
- "declarations": [
964
- {
965
- "kind": "class",
966
- "description": "",
967
- "name": "FoundationLayoutRegion",
968
- "members": [
969
868
  {
970
869
  "kind": "field",
971
- "name": "size",
870
+ "name": "customButtons",
972
871
  "type": {
973
- "text": "string"
872
+ "text": "CustomButton[]"
974
873
  },
975
- "description": "optional string describing the size of the new item (see the written documentation for more info)",
874
+ "default": "[]",
875
+ "description": "Set custom button definition on this property to add them to the layout header controls",
976
876
  "privacy": "public"
977
877
  },
978
878
  {
979
879
  "kind": "field",
980
- "name": "type",
880
+ "name": "dragging",
981
881
  "type": {
982
- "text": "LayoutRegionType"
882
+ "text": "boolean"
983
883
  },
984
- "default": "layoutRegionValue[0]",
985
- "description": "Defines the LayoutRegionType| type of the region.\nDefaults to `horizontal`.",
884
+ "default": "false",
986
885
  "privacy": "public"
987
886
  },
988
887
  {
989
888
  "kind": "field",
990
- "name": "_presentation",
889
+ "name": "class",
890
+ "privacy": "public",
891
+ "default": "'FoundationLayoutMain'",
991
892
  "type": {
992
- "text": "ComponentPresentation | null | undefined"
993
- },
994
- "privacy": "private",
995
- "default": "void 0",
996
- "inheritedFrom": {
997
- "name": "FoundationElement",
998
- "module": "src/foundation-element/foundation-element.ts"
893
+ "text": "'FoundationLayoutMain'"
999
894
  }
1000
895
  },
1001
896
  {
1002
897
  "kind": "field",
1003
- "name": "$presentation",
898
+ "name": "lifecycleUpdateToken",
1004
899
  "type": {
1005
- "text": "ComponentPresentation | null"
900
+ "text": "string | undefined"
1006
901
  },
1007
902
  "privacy": "public",
1008
- "description": "A property which resolves the ComponentPresentation instance\nfor the current component.",
1009
- "inheritedFrom": {
1010
- "name": "FoundationElement",
1011
- "module": "src/foundation-element/foundation-element.ts"
1012
- }
903
+ "default": "undefined",
904
+ "description": "Used to calculate whether a layout item should run its lifecycle methods or not"
1013
905
  },
1014
906
  {
1015
907
  "kind": "field",
1016
- "name": "template",
908
+ "name": "popoutConfig",
1017
909
  "type": {
1018
- "text": "ElementViewTemplate | void | null"
910
+ "text": "string | undefined"
1019
911
  },
1020
- "privacy": "public",
1021
- "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.",
1022
- "inheritedFrom": {
1023
- "name": "FoundationElement",
1024
- "module": "src/foundation-element/foundation-element.ts"
1025
- }
912
+ "default": "undefined",
913
+ "description": "Controls whether popout functionality is enabled on the layout. Defaults to disabled.\nSet this attribute to any string to enable popout functionality. If this string is of format `number;number` then this will be interpreted as the width and height of the popout window."
914
+ },
915
+ {
916
+ "kind": "field",
917
+ "name": "popupMode",
918
+ "type": {
919
+ "text": "boolean"
920
+ },
921
+ "privacy": "private",
922
+ "default": "false"
1026
923
  },
1027
924
  {
1028
925
  "kind": "method",
1029
- "name": "templateChanged",
1030
- "privacy": "protected",
926
+ "name": "layoutRequiredRegistrations",
927
+ "static": true,
1031
928
  "return": {
1032
929
  "type": {
1033
- "text": "void"
930
+ "text": ""
1034
931
  }
1035
932
  },
1036
- "inheritedFrom": {
1037
- "name": "FoundationElement",
1038
- "module": "src/foundation-element/foundation-element.ts"
1039
- }
933
+ "parameters": [
934
+ {
935
+ "name": "layout",
936
+ "type": {
937
+ "text": "SerialisedLayout"
938
+ },
939
+ "description": "any version of {@link SerialisedLayout}object describing the layout\n * "
940
+ }
941
+ ],
942
+ "description": "JS API, public",
943
+ "privacy": "public"
1040
944
  },
1041
945
  {
1042
- "kind": "field",
1043
- "name": "styles",
1044
- "type": {
1045
- "text": "ElementStyles | void | null"
946
+ "kind": "method",
947
+ "name": "registeredItems",
948
+ "return": {
949
+ "type": {
950
+ "text": ""
951
+ }
1046
952
  },
1047
- "privacy": "public",
1048
- "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.",
1049
- "inheritedFrom": {
1050
- "name": "FoundationElement",
1051
- "module": "src/foundation-element/foundation-element.ts"
1052
- }
953
+ "privacy": "public"
1053
954
  },
1054
955
  {
1055
956
  "kind": "method",
1056
- "name": "stylesChanged",
1057
- "privacy": "protected",
957
+ "name": "getLayout",
1058
958
  "return": {
1059
959
  "type": {
1060
- "text": "void"
960
+ "text": ""
1061
961
  }
1062
962
  },
1063
- "inheritedFrom": {
1064
- "name": "FoundationElement",
1065
- "module": "src/foundation-element/foundation-element.ts"
1066
- }
963
+ "privacy": "public"
1067
964
  },
1068
965
  {
1069
966
  "kind": "method",
1070
- "name": "compose",
1071
- "privacy": "public",
1072
- "static": true,
967
+ "name": "tryActivatePopoutMode",
1073
968
  "return": {
1074
969
  "type": {
1075
- "text": "(\n overrideDefinition?: OverrideFoundationElementDefinition<T>\n ) => FoundationElementRegistry<T, K>"
970
+ "text": "boolean"
971
+ }
972
+ },
973
+ "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."
974
+ },
975
+ {
976
+ "kind": "method",
977
+ "name": "tryLoadLayoutFromLocalStorage",
978
+ "return": {
979
+ "type": {
980
+ "text": ""
981
+ }
982
+ },
983
+ "description": "Try to load a layout from local storage, or return false. Only required if manually calling FoundationLayout.registerItem",
984
+ "privacy": "public"
985
+ },
986
+ {
987
+ "kind": "method",
988
+ "name": "loadLayout",
989
+ "parameters": [
990
+ {
991
+ "name": "layout",
992
+ "type": {
993
+ "text": "SerialisedLayout"
994
+ },
995
+ "description": "any version of {@link SerialisedLayout}object describing the layout\n * "
996
+ },
997
+ {
998
+ "name": "handleMissingItem",
999
+ "default": "'error'",
1000
+ "type": {
1001
+ "text": "'placeholder' | 'error'"
1002
+ },
1003
+ "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 * "
1004
+ },
1005
+ {
1006
+ "name": "disableCache",
1007
+ "default": "false",
1008
+ "type": {
1009
+ "text": "boolean"
1010
+ },
1011
+ "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 * "
1012
+ }
1013
+ ],
1014
+ "privacy": "public"
1015
+ },
1016
+ {
1017
+ "kind": "method",
1018
+ "name": "addItem",
1019
+ "parameters": [
1020
+ {
1021
+ "name": "config",
1022
+ "type": {
1023
+ "text": "RegisteredElementConfig | RegisteredElementConfig[]"
1024
+ },
1025
+ "description": "{@link RegisteredElementConfig}configuration items for the new items(s). Pass an array of {@link RegisteredElementConfig}to add multiple items at once.\n * "
1026
+ },
1027
+ {
1028
+ "name": "placement",
1029
+ "default": "defaultAddItemPlacement",
1030
+ "type": {
1031
+ "text": "Placement"
1032
+ },
1033
+ "description": "where and how to add the new items to the layout. For more info and defaults see {@link Placement}.\n * "
1034
+ }
1035
+ ],
1036
+ "privacy": "public"
1037
+ },
1038
+ {
1039
+ "kind": "method",
1040
+ "name": "removeItems",
1041
+ "return": {
1042
+ "type": {
1043
+ "text": ""
1044
+ }
1045
+ },
1046
+ "parameters": [
1047
+ {
1048
+ "name": "registration",
1049
+ "type": {
1050
+ "text": "string"
1051
+ },
1052
+ "description": "string of the registration ID"
1053
+ },
1054
+ {
1055
+ "name": "force",
1056
+ "default": "false",
1057
+ "type": {
1058
+ "text": "boolean"
1059
+ },
1060
+ "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."
1061
+ }
1062
+ ],
1063
+ "privacy": "public"
1064
+ },
1065
+ {
1066
+ "kind": "method",
1067
+ "name": "registerItem",
1068
+ "return": {
1069
+ "type": {
1070
+ "text": ""
1071
+ }
1072
+ },
1073
+ "parameters": [
1074
+ {
1075
+ "name": "registration",
1076
+ "type": {
1077
+ "text": "string"
1078
+ },
1079
+ "description": "string of the registration ID"
1080
+ },
1081
+ {
1082
+ "name": "elements",
1083
+ "type": {
1084
+ "text": "Element[]"
1085
+ },
1086
+ "description": "Elements[] containing the reference to the elements to register for later usage"
1087
+ }
1088
+ ],
1089
+ "privacy": "public"
1090
+ },
1091
+ {
1092
+ "kind": "method",
1093
+ "name": "updateLifecycleToken",
1094
+ "privacy": "private",
1095
+ "return": {
1096
+ "type": {
1097
+ "text": "void"
1098
+ }
1099
+ },
1100
+ "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"
1101
+ },
1102
+ {
1103
+ "kind": "field",
1104
+ "name": "_presentation",
1105
+ "type": {
1106
+ "text": "ComponentPresentation | null | undefined"
1107
+ },
1108
+ "privacy": "private",
1109
+ "default": "void 0",
1110
+ "inheritedFrom": {
1111
+ "name": "FoundationElement",
1112
+ "module": "src/foundation-element/foundation-element.ts"
1113
+ }
1114
+ },
1115
+ {
1116
+ "kind": "field",
1117
+ "name": "$presentation",
1118
+ "type": {
1119
+ "text": "ComponentPresentation | null"
1120
+ },
1121
+ "privacy": "public",
1122
+ "description": "A property which resolves the ComponentPresentation instance\nfor the current component.",
1123
+ "inheritedFrom": {
1124
+ "name": "FoundationElement",
1125
+ "module": "src/foundation-element/foundation-element.ts"
1126
+ }
1127
+ },
1128
+ {
1129
+ "kind": "field",
1130
+ "name": "template",
1131
+ "type": {
1132
+ "text": "ElementViewTemplate | void | null"
1133
+ },
1134
+ "privacy": "public",
1135
+ "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.",
1136
+ "inheritedFrom": {
1137
+ "name": "FoundationElement",
1138
+ "module": "src/foundation-element/foundation-element.ts"
1139
+ }
1140
+ },
1141
+ {
1142
+ "kind": "method",
1143
+ "name": "templateChanged",
1144
+ "privacy": "protected",
1145
+ "return": {
1146
+ "type": {
1147
+ "text": "void"
1148
+ }
1149
+ },
1150
+ "inheritedFrom": {
1151
+ "name": "FoundationElement",
1152
+ "module": "src/foundation-element/foundation-element.ts"
1153
+ }
1154
+ },
1155
+ {
1156
+ "kind": "field",
1157
+ "name": "styles",
1158
+ "type": {
1159
+ "text": "ElementStyles | void | null"
1160
+ },
1161
+ "privacy": "public",
1162
+ "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.",
1163
+ "inheritedFrom": {
1164
+ "name": "FoundationElement",
1165
+ "module": "src/foundation-element/foundation-element.ts"
1166
+ }
1167
+ },
1168
+ {
1169
+ "kind": "method",
1170
+ "name": "stylesChanged",
1171
+ "privacy": "protected",
1172
+ "return": {
1173
+ "type": {
1174
+ "text": "void"
1175
+ }
1176
+ },
1177
+ "inheritedFrom": {
1178
+ "name": "FoundationElement",
1179
+ "module": "src/foundation-element/foundation-element.ts"
1180
+ }
1181
+ },
1182
+ {
1183
+ "kind": "method",
1184
+ "name": "compose",
1185
+ "privacy": "public",
1186
+ "static": true,
1187
+ "return": {
1188
+ "type": {
1189
+ "text": "(\n overrideDefinition?: OverrideFoundationElementDefinition<T>\n ) => FoundationElementRegistry<T, K>"
1076
1190
  }
1077
1191
  },
1078
1192
  "parameters": [
@@ -1097,394 +1211,280 @@
1097
1211
  }
1098
1212
  }
1099
1213
  ],
1100
- "attributes": [
1214
+ "events": [
1101
1215
  {
1102
- "name": "size",
1103
- "type": {
1104
- "text": "string"
1105
- },
1106
- "description": "optional string describing the size of the new item (see the written documentation for more info)",
1107
- "fieldName": "size"
1216
+ "description": "emitted when the layout has finished loading the first time",
1217
+ "name": "first-loaded"
1108
1218
  },
1109
1219
  {
1110
- "name": "type",
1111
- "type": {
1112
- "text": "LayoutRegionType"
1113
- },
1114
- "default": "defaultLayoutType",
1115
- "description": "Defines the LayoutRegionType| type of the region.\nDefaults to `horizontal`.",
1116
- "resolveInitializer": {
1117
- "module": "src/main/layout-region.ts"
1118
- },
1119
- "fieldName": "type"
1220
+ "description": "emitted when an item is added to the layout",
1221
+ "name": "item-added"
1222
+ },
1223
+ {
1224
+ "description": "emitted when an item is removed from the layout",
1225
+ "name": "item-removed"
1226
+ },
1227
+ {
1228
+ "description": "emitted when the user drags the divider to resize elements",
1229
+ "name": "item-resized"
1120
1230
  }
1121
1231
  ],
1122
- "superclass": {
1123
- "name": "FoundationElement",
1124
- "package": "@microsoft/fast-foundation"
1125
- },
1126
- "tagName": "%%prefix%%-layout-region",
1127
- "customElement": true
1128
- }
1129
- ],
1130
- "exports": [
1131
- {
1132
- "kind": "js",
1133
- "name": "FoundationLayoutRegion",
1134
- "declaration": {
1135
- "name": "FoundationLayoutRegion",
1136
- "module": "src/main/layout-region.ts"
1137
- }
1138
- }
1139
- ]
1140
- },
1141
- {
1142
- "kind": "javascript-module",
1143
- "path": "src/styles/constants.ts",
1144
- "declarations": [
1145
- {
1146
- "kind": "variable",
1147
- "name": "glVisualConfig",
1148
- "type": {
1149
- "text": "Omit<LayoutConfig, 'root'>"
1150
- },
1151
- "default": "{\n dimensions: {\n headerHeight: 38,\n borderWidth: 12,\n },\n header: {\n maximise: 'maximise',\n minimise: 'minimise',\n popout: false,\n },\n}"
1152
- },
1153
- {
1154
- "kind": "variable",
1155
- "name": "LAYOUT_ICONS",
1156
- "type": {
1157
- "text": "{\n renameSVG,\n maximiseSVG,\n minimiseSVG,\n closeSVG,\n tabDropdownSVG,\n popoutSVG,\n}"
1158
- },
1159
- "default": "{\n renameSVG,\n maximiseSVG,\n minimiseSVG,\n closeSVG,\n tabDropdownSVG,\n popoutSVG,\n}",
1160
- "description": "A collection of SVG icons in base64 format.",
1161
- "privacy": "public"
1162
- }
1163
- ],
1164
- "exports": [
1165
- {
1166
- "kind": "js",
1167
- "name": "glVisualConfig",
1168
- "declaration": {
1169
- "name": "glVisualConfig",
1170
- "module": "src/styles/constants.ts"
1171
- }
1172
- },
1173
- {
1174
- "kind": "js",
1175
- "name": "LAYOUT_ICONS",
1176
- "declaration": {
1177
- "name": "LAYOUT_ICONS",
1178
- "module": "src/styles/constants.ts"
1179
- }
1180
- }
1181
- ]
1182
- },
1183
- {
1184
- "kind": "javascript-module",
1185
- "path": "src/styles/dragging.styles.ts",
1186
- "declarations": [
1187
- {
1188
- "kind": "variable",
1189
- "name": "globalDraggingStyles",
1190
- "default": "`\n .lm_dragProxy .lm_content {\n box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.9);\n }\n .lm_dropTargetIndicator {\n box-shadow: inset 0 0 30px #000000;\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`",
1191
- "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"
1192
- }
1193
- ],
1194
- "exports": [
1195
- {
1196
- "kind": "js",
1197
- "name": "globalDraggingStyles",
1198
- "declaration": {
1199
- "name": "globalDraggingStyles",
1200
- "module": "src/styles/dragging.styles.ts"
1201
- }
1202
- }
1203
- ]
1204
- },
1205
- {
1206
- "kind": "javascript-module",
1207
- "path": "src/styles/index.ts",
1208
- "declarations": [],
1209
- "exports": [
1210
- {
1211
- "kind": "js",
1212
- "name": "*",
1213
- "declaration": {
1214
- "name": "*",
1215
- "package": "./constants"
1216
- }
1217
- },
1218
- {
1219
- "kind": "js",
1220
- "name": "*",
1221
- "declaration": {
1222
- "name": "*",
1223
- "package": "./dragging.styles"
1224
- }
1225
- },
1226
- {
1227
- "kind": "js",
1228
- "name": "*",
1229
- "declaration": {
1230
- "name": "*",
1231
- "package": "./layout.styles"
1232
- }
1233
- }
1234
- ]
1235
- },
1236
- {
1237
- "kind": "javascript-module",
1238
- "path": "src/styles/layout.styles.ts",
1239
- "declarations": [
1240
- {
1241
- "kind": "variable",
1242
- "name": "layoutStyles",
1243
- "default": "css`\n ${containerStyles}\n ${loadingSpinnerStyles}\n\n .lm_goldenlayout {\n padding: 1px;\n background: ${neutralLayer1};\n border-radius: calc(${controlCornerRadius} * 1.5px);\n }\n\n .lm_stack.lm_item {\n background-color: ${neutralLayer4};\n border-radius: calc(${controlCornerRadius} * 1.5px);\n }\n .lm_maximised .lm_header {\n background-color: ${neutralLayer4};\n border-radius: calc(${controlCornerRadius} * 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: ${neutralLayer3};\n border-radius: calc(${controlCornerRadius} * 1.5px);\n border: 1px solid;\n border-color: #2e3339;\n box-sizing: border-box;\n }\n\n .lm-header {\n z-index: 1;\n }\n .lm_header .lm_tabs {\n padding: 0 16px;\n }\n\n .lm_stack > .lm_items {\n z-index: 2;\n box-shadow: 0px -1px 15px rgba(0, 0, 0, 0.35);\n }\n\n .lm_header .lm_tab.lm_active.lm_focused {\n background-color: ${neutralLayer3};\n }\n .lm_header .lm_tab.lm_active {\n background-color: ${neutralLayer3};\n border: 1px solid;\n border-color: #2e3339;\n border-bottom: 0;\n color: ${accentFillRest};\n }\n\n .lm_header .lm_tab {\n align-items: center;\n background-color: ${neutralLayer4};\n border: 1px solid;\n border-bottom-color: #2e3339;\n border-bottom: 0px solid;\n border-color: rgba(0, 0, 0, 0.35);\n border-radius: calc(${controlCornerRadius} * 1.5px) calc(${controlCornerRadius} * 1.5px) 0 0;\n box-shadow: 1px -1px 2px rgba(0, 0, 0, 0.35);\n color: rgba(255, 255, 255, 0.3);\n display: flex;\n font-family: inherit;\n font-size: 13px;\n font-weight: 700;\n height: 30px;\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: rgba(255, 255, 255, 0.1);\n color: #f1f1f1;\n }\n\n .lm_header .lm_controls {\n top: 4px;\n display: flex;\n }\n .lm_header .lm_controls > * {\n width: 30px;\n height: 30px;\n background-repeat: no-repeat;\n background-position: center;\n background-size: 16px;\n background-color: rgba(255, 255, 255, 0.03);\n border-radius: calc(${controlCornerRadius} * 1.5px);\n margin-right: 4px;\n top: 3px;\n opacity: 1;\n }\n .lm_header .lm_controls > *:hover {\n background-color: rgba(255, 255, 255, 0.1);\n cursor: pointer;\n }\n\n .lm_controls .lm_maximise {\n background-image: url('${LAYOUT_ICONS.maximiseSVG}');\n }\n .lm_maximised .lm_controls .lm_maximise {\n background-image: url('${LAYOUT_ICONS.minimiseSVG}');\n }\n .lm_controls .lm_close {\n background-image: url('${LAYOUT_ICONS.closeSVG}');\n }\n .lm_header .lm_tab .lm_close_tab {\n background-image: url('${LAYOUT_ICONS.closeSVG}');\n background-size: 10px;\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: ${accentFillRest};\n opacity: 0.7;\n }\n\n .lm_header .lm_controls .lm_tabdropdown::before {\n content: none;\n }\n .lm_header .lm_controls .lm_tabdropdown {\n background-image: url('${LAYOUT_ICONS.tabDropdownSVG}');\n }\n .lm_header .lm_tabdropdown_list {\n top: 38px;\n right: 108px;\n background-color: ${neutralLayer3};\n border: 1px solid;\n border-color: #2e3339;\n border-radius: calc(${controlCornerRadius} * 1.5px);\n box-shadow: 0px 5px 15px rgba(0, 0, 0, 0.35);\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: #c9c9c9;\n height: 36px;\n border-radius: 0;\n overflow: visible;\n text-overflow: normal;\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 .lm_row > .lm_item {\n float: left;\n }\n .lm_content {\n overflow: hidden;\n position: relative;\n }\n .lm_dragging,\n .lm_dragging * {\n cursor: move !important;\n user-select: none;\n }\n .lm_maximised {\n left: 0;\n padding: 1px;\n position: absolute;\n top: 0;\n z-index: 40;\n }\n .lm_maximise_placeholder {\n display: none;\n }\n .lm_splitter {\n position: relative;\n z-index: 20;\n }\n .lm_splitter:hover,\n .lm_splitter.lm_dragging {\n background: ${accentFillRest};\n border-radius: calc(${controlCornerRadius} * 4px);\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 .lm_splitter.lm_horizontal {\n float: left;\n height: 100%;\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 .lm_header {\n overflow: visible;\n position: relative;\n z-index: 1;\n }\n .lm_header [class^='lm_'] {\n box-sizing: content-box !important;\n }\n .lm_header .lm_controls {\n position: absolute;\n right: 3px;\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 .lm_header ul {\n margin: 0;\n padding: 0;\n list-style-type: none;\n }\n .lm_header .lm_tabs {\n position: absolute;\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 .lm_header .lm_tab i {\n width: 2px;\n height: 19px;\n position: absolute;\n }\n .lm_header .lm_tab i.lm_left {\n top: 0;\n left: -2px;\n }\n .lm_header .lm_tab i.lm_right {\n top: 0;\n right: -2px;\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 .lm_header .lm_tab .lm_title:only-child {\n padding-left: 10px;\n }\n .lm_header .lm_tab .lm_close_tab {\n width: 14px;\n height: 14px;\n position: absolute;\n top: 11px;\n right: 0;\n text-align: center;\n }\n .lm_stack.lm_left .lm_header,\n .lm_stack.lm_right .lm_header {\n height: 100%;\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 .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 .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 .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 .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 .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 .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 .lm_dragProxy.lm_right .lm_content {\n float: left;\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 .lm_dragProxy.lm_right .lm_header .lm_controls,\n .lm_stack.lm_right .lm_header .lm_controls {\n left: 3px;\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 .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 .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_drop_tab_placeholder {\n float: left;\n width: 100px;\n height: 10px;\n visibility: hidden;\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 .lm_header .lm_tabdropdown_list .lm_tab {\n clear: both;\n padding-right: 10px;\n margin: 0;\n }\n .lm_header .lm_tabdropdown_list .lm_tab .lm_title {\n width: 100px;\n }\n .lm_header .lm_tabdropdown_list .lm_close_tab {\n display: none !important;\n }\n .lm_dragProxy {\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_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 .lm_popin {\n width: 20px;\n height: 20px;\n position: absolute;\n bottom: 0;\n right: 0;\n z-index: 9999;\n }\n .lm_popin > * {\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n }\n .lm_popin > .lm_bg {\n z-index: 10;\n }\n .lm_popin > .lm_icon {\n z-index: 20;\n } /*# sourceMappingURL=goldenlayout-base.css.map */\n`",
1244
- "description": "`ElementStyles` which defines the css for FoundationLayout.",
1245
- "privacy": "public"
1246
- }
1247
- ],
1248
- "exports": [
1249
- {
1250
- "kind": "js",
1251
- "name": "layoutStyles",
1252
- "declaration": {
1253
- "name": "layoutStyles",
1254
- "module": "src/styles/layout.styles.ts"
1255
- }
1256
- }
1257
- ]
1258
- },
1259
- {
1260
- "kind": "javascript-module",
1261
- "path": "src/utils/constants.ts",
1262
- "declarations": [
1263
- {
1264
- "kind": "variable",
1265
- "name": "DEFAULT_RELOAD_BUFFER",
1266
- "type": {
1267
- "text": "number"
1268
- },
1269
- "default": "500",
1270
- "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.",
1271
- "privacy": "public"
1272
- },
1273
- {
1274
- "kind": "variable",
1275
- "name": "LAYOUT_POPOUT_CONTAINER_CLASS",
1276
- "type": {
1277
- "text": "string"
1278
- },
1279
- "default": "'f-layout-popout'",
1280
- "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."
1281
- }
1282
- ],
1283
- "exports": [
1284
- {
1285
- "kind": "js",
1286
- "name": "DEFAULT_RELOAD_BUFFER",
1287
- "declaration": {
1288
- "name": "DEFAULT_RELOAD_BUFFER",
1289
- "module": "src/utils/constants.ts"
1290
- }
1291
- },
1292
- {
1293
- "kind": "js",
1294
- "name": "LAYOUT_POPOUT_CONTAINER_CLASS",
1295
- "declaration": {
1296
- "name": "LAYOUT_POPOUT_CONTAINER_CLASS",
1297
- "module": "src/utils/constants.ts"
1298
- }
1299
- }
1300
- ]
1301
- },
1302
- {
1303
- "kind": "javascript-module",
1304
- "path": "src/utils/error.ts",
1305
- "declarations": [
1306
- {
1307
- "kind": "class",
1308
- "description": "",
1309
- "name": "LayoutUsageError",
1310
- "superclass": {
1311
- "name": "Error",
1312
- "module": "src/utils/error.ts"
1313
- }
1314
- },
1315
- {
1316
- "kind": "class",
1317
- "description": "",
1318
- "name": "LayoutRegistrationError",
1319
- "superclass": {
1320
- "name": "Error",
1321
- "module": "src/utils/error.ts"
1322
- }
1323
- }
1324
- ],
1325
- "exports": [
1326
- {
1327
- "kind": "js",
1328
- "name": "LayoutUsageError",
1329
- "declaration": {
1330
- "name": "LayoutUsageError",
1331
- "module": "src/utils/error.ts"
1332
- }
1333
- },
1334
- {
1335
- "kind": "js",
1336
- "name": "LayoutRegistrationError",
1337
- "declaration": {
1338
- "name": "LayoutRegistrationError",
1339
- "module": "src/utils/error.ts"
1340
- }
1341
- }
1342
- ]
1343
- },
1344
- {
1345
- "kind": "javascript-module",
1346
- "path": "src/utils/events.ts",
1347
- "declarations": [
1348
- {
1349
- "kind": "variable",
1350
- "name": "LayoutEmitEvents",
1351
- "type": {
1352
- "text": "{\n firstLoaded: 'first-loaded',\n itemAdded: 'item-added',\n itemRemoved: 'item-removed',\n itemResized: 'item-resized',\n}"
1353
- },
1354
- "default": "{\n firstLoaded: 'first-loaded',\n itemAdded: 'item-added',\n itemRemoved: 'item-removed',\n itemResized: 'item-resized',\n}",
1355
- "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",
1356
- "privacy": "public"
1357
- },
1358
- {
1359
- "kind": "variable",
1360
- "name": "LayoutReceiveEvents",
1361
- "type": {
1362
- "text": "{\n changeTitle: 'change-title',\n autosave: 'autosave',\n}"
1363
- },
1364
- "default": "{\n changeTitle: 'change-title',\n autosave: 'autosave',\n}",
1365
- "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.",
1366
- "privacy": "public"
1367
- }
1368
- ],
1369
- "exports": [
1370
- {
1371
- "kind": "js",
1372
- "name": "LayoutEmitEvents",
1373
- "declaration": {
1374
- "name": "LayoutEmitEvents",
1375
- "module": "src/utils/events.ts"
1376
- }
1377
- },
1378
- {
1379
- "kind": "js",
1380
- "name": "LayoutReceiveEvents",
1381
- "declaration": {
1382
- "name": "LayoutReceiveEvents",
1383
- "module": "src/utils/events.ts"
1384
- }
1385
- }
1386
- ]
1387
- },
1388
- {
1389
- "kind": "javascript-module",
1390
- "path": "src/utils/index.ts",
1391
- "declarations": [],
1392
- "exports": [
1393
- {
1394
- "kind": "js",
1395
- "name": "*",
1396
- "declaration": {
1397
- "name": "*",
1398
- "package": "./constants"
1399
- }
1400
- },
1401
- {
1402
- "kind": "js",
1403
- "name": "*",
1404
- "declaration": {
1405
- "name": "*",
1406
- "package": "./error"
1407
- }
1408
- },
1409
- {
1410
- "kind": "js",
1411
- "name": "*",
1412
- "declaration": {
1413
- "name": "*",
1414
- "package": "./events"
1415
- }
1232
+ "attributes": [
1233
+ {
1234
+ "name": "reload-buffer",
1235
+ "type": {
1236
+ "text": "number"
1237
+ },
1238
+ "default": "DEFAULT_RELOAD_BUFFER",
1239
+ "description": "Number describing how long to wait in ms before reloading the config when adding items\ndeclaratively by the html API. Default 500 (ms).",
1240
+ "resolveInitializer": {
1241
+ "module": "/src/utils/"
1242
+ },
1243
+ "fieldName": "reloadBuffer"
1244
+ },
1245
+ {
1246
+ "name": "auto-save-key",
1247
+ "type": {
1248
+ "text": "string | undefined"
1249
+ },
1250
+ "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`.",
1251
+ "fieldName": "autoSaveKey"
1252
+ },
1253
+ {
1254
+ "name": "popout-config",
1255
+ "type": {
1256
+ "text": "string | undefined"
1257
+ },
1258
+ "default": "undefined",
1259
+ "description": "Controls whether popout functionality is enabled on the layout. Defaults to disabled.\nSet this attribute to any string to enable popout functionality. If this string is of format `number;number` then this will be interpreted as the width and height of the popout window.",
1260
+ "resolveInitializer": {
1261
+ "module": "src/main/layout-main.ts"
1262
+ },
1263
+ "fieldName": "popoutConfig"
1264
+ }
1265
+ ],
1266
+ "superclass": {
1267
+ "name": "FoundationElement",
1268
+ "package": "@microsoft/fast-foundation"
1269
+ },
1270
+ "tagName": "%%prefix%%-layout",
1271
+ "customElement": true
1416
1272
  },
1417
1273
  {
1418
- "kind": "js",
1419
- "name": "*",
1420
- "declaration": {
1421
- "name": "*",
1422
- "package": "./misc"
1423
- }
1424
- },
1274
+ "kind": "variable",
1275
+ "name": "layoutTemplate",
1276
+ "default": "html<FoundationLayout>`\n <template>\n ${when((x) => !x.hasFirstLoaded && x.usingDeclerativeAPI, loadingTemplate)}\n <div class=\"layout-container\" ${ref('layoutElement')}></div>\n </template>\n`",
1277
+ "description": "`ViewTemplate` which defines the html for FoundationLayout.",
1278
+ "privacy": "public"
1279
+ }
1280
+ ],
1281
+ "exports": [
1425
1282
  {
1426
1283
  "kind": "js",
1427
- "name": "*",
1284
+ "name": "layoutStyles",
1428
1285
  "declaration": {
1429
- "name": "*",
1430
- "package": "./templates"
1286
+ "name": "layoutStyles",
1287
+ "module": "../styles"
1431
1288
  }
1432
1289
  },
1433
1290
  {
1434
1291
  "kind": "js",
1435
- "name": "*",
1292
+ "name": "FoundationLayout",
1436
1293
  "declaration": {
1437
- "name": "*",
1438
- "package": "./types"
1294
+ "name": "FoundationLayout",
1295
+ "module": "src/main/layout-main.ts"
1439
1296
  }
1440
1297
  },
1441
1298
  {
1442
1299
  "kind": "js",
1443
- "name": "*",
1300
+ "name": "layoutTemplate",
1444
1301
  "declaration": {
1445
- "name": "*",
1446
- "package": "./error"
1302
+ "name": "layoutTemplate",
1303
+ "module": "src/main/layout-main.ts"
1447
1304
  }
1448
1305
  }
1449
1306
  ]
1450
1307
  },
1451
1308
  {
1452
1309
  "kind": "javascript-module",
1453
- "path": "src/utils/logger.ts",
1310
+ "path": "src/main/layout-region.ts",
1454
1311
  "declarations": [
1455
1312
  {
1456
- "kind": "variable",
1457
- "name": "logger"
1313
+ "kind": "class",
1314
+ "description": "",
1315
+ "name": "FoundationLayoutRegion",
1316
+ "members": [
1317
+ {
1318
+ "kind": "field",
1319
+ "name": "size",
1320
+ "type": {
1321
+ "text": "string"
1322
+ },
1323
+ "description": "optional string describing the size of the new item (see the written documentation for more info)",
1324
+ "privacy": "public"
1325
+ },
1326
+ {
1327
+ "kind": "field",
1328
+ "name": "type",
1329
+ "type": {
1330
+ "text": "LayoutRegionType"
1331
+ },
1332
+ "default": "layoutRegionValue[0]",
1333
+ "description": "Defines the LayoutRegionType| type of the region.\nDefaults to `horizontal`.",
1334
+ "privacy": "public"
1335
+ },
1336
+ {
1337
+ "kind": "field",
1338
+ "name": "_presentation",
1339
+ "type": {
1340
+ "text": "ComponentPresentation | null | undefined"
1341
+ },
1342
+ "privacy": "private",
1343
+ "default": "void 0",
1344
+ "inheritedFrom": {
1345
+ "name": "FoundationElement",
1346
+ "module": "src/foundation-element/foundation-element.ts"
1347
+ }
1348
+ },
1349
+ {
1350
+ "kind": "field",
1351
+ "name": "$presentation",
1352
+ "type": {
1353
+ "text": "ComponentPresentation | null"
1354
+ },
1355
+ "privacy": "public",
1356
+ "description": "A property which resolves the ComponentPresentation instance\nfor the current component.",
1357
+ "inheritedFrom": {
1358
+ "name": "FoundationElement",
1359
+ "module": "src/foundation-element/foundation-element.ts"
1360
+ }
1361
+ },
1362
+ {
1363
+ "kind": "field",
1364
+ "name": "template",
1365
+ "type": {
1366
+ "text": "ElementViewTemplate | void | null"
1367
+ },
1368
+ "privacy": "public",
1369
+ "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.",
1370
+ "inheritedFrom": {
1371
+ "name": "FoundationElement",
1372
+ "module": "src/foundation-element/foundation-element.ts"
1373
+ }
1374
+ },
1375
+ {
1376
+ "kind": "method",
1377
+ "name": "templateChanged",
1378
+ "privacy": "protected",
1379
+ "return": {
1380
+ "type": {
1381
+ "text": "void"
1382
+ }
1383
+ },
1384
+ "inheritedFrom": {
1385
+ "name": "FoundationElement",
1386
+ "module": "src/foundation-element/foundation-element.ts"
1387
+ }
1388
+ },
1389
+ {
1390
+ "kind": "field",
1391
+ "name": "styles",
1392
+ "type": {
1393
+ "text": "ElementStyles | void | null"
1394
+ },
1395
+ "privacy": "public",
1396
+ "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.",
1397
+ "inheritedFrom": {
1398
+ "name": "FoundationElement",
1399
+ "module": "src/foundation-element/foundation-element.ts"
1400
+ }
1401
+ },
1402
+ {
1403
+ "kind": "method",
1404
+ "name": "stylesChanged",
1405
+ "privacy": "protected",
1406
+ "return": {
1407
+ "type": {
1408
+ "text": "void"
1409
+ }
1410
+ },
1411
+ "inheritedFrom": {
1412
+ "name": "FoundationElement",
1413
+ "module": "src/foundation-element/foundation-element.ts"
1414
+ }
1415
+ },
1416
+ {
1417
+ "kind": "method",
1418
+ "name": "compose",
1419
+ "privacy": "public",
1420
+ "static": true,
1421
+ "return": {
1422
+ "type": {
1423
+ "text": "(\n overrideDefinition?: OverrideFoundationElementDefinition<T>\n ) => FoundationElementRegistry<T, K>"
1424
+ }
1425
+ },
1426
+ "parameters": [
1427
+ {
1428
+ "name": "this",
1429
+ "type": {
1430
+ "text": "K"
1431
+ }
1432
+ },
1433
+ {
1434
+ "name": "elementDefinition",
1435
+ "type": {
1436
+ "text": "T"
1437
+ },
1438
+ "description": "The definition of the element to create the registry\nfunction for."
1439
+ }
1440
+ ],
1441
+ "description": "Defines an element registry function with a set of element definition defaults.",
1442
+ "inheritedFrom": {
1443
+ "name": "FoundationElement",
1444
+ "module": "src/foundation-element/foundation-element.ts"
1445
+ }
1446
+ }
1447
+ ],
1448
+ "attributes": [
1449
+ {
1450
+ "name": "size",
1451
+ "type": {
1452
+ "text": "string"
1453
+ },
1454
+ "description": "optional string describing the size of the new item (see the written documentation for more info)",
1455
+ "fieldName": "size"
1456
+ },
1457
+ {
1458
+ "name": "type",
1459
+ "type": {
1460
+ "text": "LayoutRegionType"
1461
+ },
1462
+ "default": "defaultLayoutType",
1463
+ "description": "Defines the LayoutRegionType| type of the region.\nDefaults to `horizontal`.",
1464
+ "resolveInitializer": {
1465
+ "module": "src/main/layout-region.ts"
1466
+ },
1467
+ "fieldName": "type"
1468
+ }
1469
+ ],
1470
+ "superclass": {
1471
+ "name": "FoundationElement",
1472
+ "package": "@microsoft/fast-foundation"
1473
+ },
1474
+ "tagName": "%%prefix%%-layout-region",
1475
+ "customElement": true
1458
1476
  }
1459
1477
  ],
1460
1478
  "exports": [
1461
1479
  {
1462
1480
  "kind": "js",
1463
- "name": "logger",
1481
+ "name": "FoundationLayoutRegion",
1464
1482
  "declaration": {
1465
- "name": "logger",
1466
- "module": "src/utils/logger.ts"
1483
+ "name": "FoundationLayoutRegion",
1484
+ "module": "src/main/layout-region.ts"
1467
1485
  }
1468
1486
  }
1469
1487
  ]
1470
- },
1471
- {
1472
- "kind": "javascript-module",
1473
- "path": "src/utils/misc.ts",
1474
- "declarations": [],
1475
- "exports": []
1476
- },
1477
- {
1478
- "kind": "javascript-module",
1479
- "path": "src/utils/templates.ts",
1480
- "declarations": [],
1481
- "exports": []
1482
- },
1483
- {
1484
- "kind": "javascript-module",
1485
- "path": "src/utils/types.ts",
1486
- "declarations": [],
1487
- "exports": []
1488
1488
  }
1489
1489
  ]
1490
1490
  }