@genesislcap/foundation-layout 9.0.1-alpha-b5c5eb7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/README.md +916 -0
  2. package/dist/1.0.0.remoteEntry.js +1 -0
  3. package/dist/191.191.106ece7a41ded6731029.js +2 -0
  4. package/dist/191.9a61143c2afb6057ad1bae886d5d1a6e.js.map +1 -0
  5. package/dist/259.09c601e5288d875caab4df1e2354c0ea.js.map +1 -0
  6. package/dist/259.259.216fcad43e9a38888e08.js +2 -0
  7. package/dist/415.415.094780a1a1162c7e5f1c.js +3 -0
  8. package/dist/415.415.094780a1a1162c7e5f1c.js.LICENSE.txt +4 -0
  9. package/dist/415.fcfb4f02eaecbfa31fc322639f244245.js.map +1 -0
  10. package/dist/459.459.c9f0bb440eb1f041c99e.js +515 -0
  11. package/dist/459.cb5f5b49b4e8881992c420f3b1ca863d.js.map +1 -0
  12. package/dist/623.623.0e7e8f23454ee96ed9c8.js +3 -0
  13. package/dist/623.623.0e7e8f23454ee96ed9c8.js.LICENSE.txt +4 -0
  14. package/dist/623.e8f211473f9034c4157d362efb017821.js.map +1 -0
  15. package/dist/755.718e14af7194fb741f98580b24b2bb8f.js.map +1 -0
  16. package/dist/755.755.f93ee58c2b836a669ec4.js +2 -0
  17. package/dist/dashboard.json +1 -0
  18. package/dist/dts/index.d.ts +3 -0
  19. package/dist/dts/index.d.ts.map +1 -0
  20. package/dist/dts/index.federated.d.ts +1 -0
  21. package/dist/dts/index.federated.d.ts.map +1 -0
  22. package/dist/dts/main/index.d.ts +6 -0
  23. package/dist/dts/main/index.d.ts.map +1 -0
  24. package/dist/dts/main/layout-components.d.ts +42 -0
  25. package/dist/dts/main/layout-components.d.ts.map +1 -0
  26. package/dist/dts/main/layout-item.d.ts +70 -0
  27. package/dist/dts/main/layout-item.d.ts.map +1 -0
  28. package/dist/dts/main/layout-main.d.ts +186 -0
  29. package/dist/dts/main/layout-main.d.ts.map +1 -0
  30. package/dist/dts/main/layout-region.d.ts +70 -0
  31. package/dist/dts/main/layout-region.d.ts.map +1 -0
  32. package/dist/dts/styles/constants.d.ts +7 -0
  33. package/dist/dts/styles/constants.d.ts.map +1 -0
  34. package/dist/dts/styles/dragging.styles.d.ts +7 -0
  35. package/dist/dts/styles/dragging.styles.d.ts.map +1 -0
  36. package/dist/dts/styles/index.d.ts +4 -0
  37. package/dist/dts/styles/index.d.ts.map +1 -0
  38. package/dist/dts/styles/layout.styles.d.ts +8 -0
  39. package/dist/dts/styles/layout.styles.d.ts.map +1 -0
  40. package/dist/dts/utils/constants.d.ts +14 -0
  41. package/dist/dts/utils/constants.d.ts.map +1 -0
  42. package/dist/dts/utils/error.d.ts +13 -0
  43. package/dist/dts/utils/error.d.ts.map +1 -0
  44. package/dist/dts/utils/events.d.ts +38 -0
  45. package/dist/dts/utils/events.d.ts.map +1 -0
  46. package/dist/dts/utils/index.d.ts +7 -0
  47. package/dist/dts/utils/index.d.ts.map +1 -0
  48. package/dist/dts/utils/logger.d.ts +2 -0
  49. package/dist/dts/utils/logger.d.ts.map +1 -0
  50. package/dist/dts/utils/misc.d.ts +10 -0
  51. package/dist/dts/utils/misc.d.ts.map +1 -0
  52. package/dist/dts/utils/templates.d.ts +6 -0
  53. package/dist/dts/utils/templates.d.ts.map +1 -0
  54. package/dist/dts/utils/types.d.ts +63 -0
  55. package/dist/dts/utils/types.d.ts.map +1 -0
  56. package/dist/esm/index.federated.js +2 -0
  57. package/dist/esm/index.federated.js.map +1 -0
  58. package/dist/esm/index.js +3 -0
  59. package/dist/esm/index.js.map +1 -0
  60. package/dist/esm/main/index.js +6 -0
  61. package/dist/esm/main/index.js.map +1 -0
  62. package/dist/esm/main/layout-components.js +36 -0
  63. package/dist/esm/main/layout-components.js.map +1 -0
  64. package/dist/esm/main/layout-item.js +86 -0
  65. package/dist/esm/main/layout-item.js.map +1 -0
  66. package/dist/esm/main/layout-main.js +391 -0
  67. package/dist/esm/main/layout-main.js.map +1 -0
  68. package/dist/esm/main/layout-region.js +98 -0
  69. package/dist/esm/main/layout-region.js.map +1 -0
  70. package/dist/esm/main/main.css +17 -0
  71. package/dist/esm/styles/constants.js +16 -0
  72. package/dist/esm/styles/constants.js.map +1 -0
  73. package/dist/esm/styles/dragging.styles.js +116 -0
  74. package/dist/esm/styles/dragging.styles.js.map +1 -0
  75. package/dist/esm/styles/index.js +4 -0
  76. package/dist/esm/styles/index.js.map +1 -0
  77. package/dist/esm/styles/layout.styles.js +530 -0
  78. package/dist/esm/styles/layout.styles.js.map +1 -0
  79. package/dist/esm/utils/constants.js +14 -0
  80. package/dist/esm/utils/constants.js.map +1 -0
  81. package/dist/esm/utils/error.js +17 -0
  82. package/dist/esm/utils/error.js.map +1 -0
  83. package/dist/esm/utils/events.js +26 -0
  84. package/dist/esm/utils/events.js.map +1 -0
  85. package/dist/esm/utils/index.js +7 -0
  86. package/dist/esm/utils/index.js.map +1 -0
  87. package/dist/esm/utils/logger.js +3 -0
  88. package/dist/esm/utils/logger.js.map +1 -0
  89. package/dist/esm/utils/misc.js +24 -0
  90. package/dist/esm/utils/misc.js.map +1 -0
  91. package/dist/esm/utils/templates.js +11 -0
  92. package/dist/esm/utils/templates.js.map +1 -0
  93. package/dist/esm/utils/types.js +4 -0
  94. package/dist/esm/utils/types.js.map +1 -0
  95. package/dist/favicon.ico +0 -0
  96. package/dist/foundation-layout.api.json +1574 -0
  97. package/dist/foundation-layout.d.ts +478 -0
  98. package/dist/foundationLayout.8b94161c9f0d0d475d026a05513893c1.js.map +1 -0
  99. package/dist/index.ejs +23 -0
  100. package/dist/index.html +15 -0
  101. package/dist/info.ejs +13 -0
  102. package/dist/main.40c13c1585eb6fa5761a17ab29a7851e.js.map +1 -0
  103. package/dist/main.94f8a6853d484ec34632.js +2 -0
  104. package/dist/npm.consola.713.b1e4073e73c71572987a.js +2 -0
  105. package/dist/npm.consola.a0d3324d3e61dcc430c3029da5f4dcc7.js.map +1 -0
  106. package/dist/npm.genesis-community.248.9c9900001dbc5ba9c3ed.js +2 -0
  107. package/dist/npm.genesis-community.2e0cc159dabe113d6fb29bb505c1a0d4.js.map +1 -0
  108. package/dist/npm.microsoft.127.00f16f24d8da8fd89263.js +1469 -0
  109. package/dist/npm.microsoft.127.00f16f24d8da8fd89263.js.LICENSE.txt +14 -0
  110. package/dist/npm.microsoft.be43958facd28231e770c1307660f64d.js.map +1 -0
  111. package/dist/remoteEntry.js +2 -0
  112. package/dist/serve.json +3 -0
  113. package/dist/tsdoc-metadata.json +11 -0
  114. package/docs/.gitattributes +2 -0
  115. package/docs/api/foundation-layout.default_reload_buffer.md +18 -0
  116. package/docs/api/foundation-layout.foundationlayout.additem.md +38 -0
  117. package/docs/api/foundation-layout.foundationlayout.dragging.md +16 -0
  118. package/docs/api/foundation-layout.foundationlayout.getlayout.md +22 -0
  119. package/docs/api/foundation-layout.foundationlayout.layoutrequiredregistrations.md +37 -0
  120. package/docs/api/foundation-layout.foundationlayout.loadlayout.md +37 -0
  121. package/docs/api/foundation-layout.foundationlayout.md +44 -0
  122. package/docs/api/foundation-layout.foundationlayout.registereditems.md +26 -0
  123. package/docs/api/foundation-layout.foundationlayout.registeritem.md +42 -0
  124. package/docs/api/foundation-layout.foundationlayout.reloadbuffer.md +16 -0
  125. package/docs/api/foundation-layout.foundationlayoutcomponents.md +50 -0
  126. package/docs/api/foundation-layout.foundationlayoutitem.closable.md +16 -0
  127. package/docs/api/foundation-layout.foundationlayoutitem.md +35 -0
  128. package/docs/api/foundation-layout.foundationlayoutitem.registration.md +21 -0
  129. package/docs/api/foundation-layout.foundationlayoutitem.size.md +16 -0
  130. package/docs/api/foundation-layout.foundationlayoutitem.title.md +21 -0
  131. package/docs/api/foundation-layout.foundationlayoutregion.md +33 -0
  132. package/docs/api/foundation-layout.foundationlayoutregion.size.md +16 -0
  133. package/docs/api/foundation-layout.foundationlayoutregion.type.md +16 -0
  134. package/docs/api/foundation-layout.layoutemitevents.md +22 -0
  135. package/docs/api/foundation-layout.layoutreceiveevents.md +20 -0
  136. package/docs/api/foundation-layout.layoutreceiveeventsdetail.md +23 -0
  137. package/docs/api/foundation-layout.layoutregiontype.md +16 -0
  138. package/docs/api/foundation-layout.layoutregistrationerror._constructor_.md +23 -0
  139. package/docs/api/foundation-layout.layoutregistrationerror.md +23 -0
  140. package/docs/api/foundation-layout.layoutstyles.md +21 -0
  141. package/docs/api/foundation-layout.layouttemplate.md +21 -0
  142. package/docs/api/foundation-layout.layoutusageerror._constructor_.md +23 -0
  143. package/docs/api/foundation-layout.layoutusageerror.md +23 -0
  144. package/docs/api/foundation-layout.md +42 -0
  145. package/docs/api/foundation-layout.placement.md +18 -0
  146. package/docs/api/foundation-layout.registeredelementconfig.closable.md +14 -0
  147. package/docs/api/foundation-layout.registeredelementconfig.md +30 -0
  148. package/docs/api/foundation-layout.registeredelementconfig.registration.md +14 -0
  149. package/docs/api/foundation-layout.registeredelementconfig.size.md +14 -0
  150. package/docs/api/foundation-layout.registeredelementconfig.title.md +14 -0
  151. package/docs/api/foundation-layout.serialisedlayout.md +26 -0
  152. package/docs/api/index.md +12 -0
  153. package/docs/api-report.md +235 -0
  154. package/docs/img/foundation-layout-example.png +0 -0
  155. package/license.txt +46 -0
  156. package/package.json +80 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["webpack://@genesislcap/foundation-layout/./src/utils/constants.ts","webpack://@genesislcap/foundation-layout/./src/utils/error.ts","webpack://@genesislcap/foundation-layout/./src/utils/events.ts","webpack://@genesislcap/foundation-layout/./src/utils/misc.ts","webpack://@genesislcap/foundation-layout/./src/utils/templates.ts","webpack://@genesislcap/foundation-layout/./src/utils/types.ts","webpack://@genesislcap/foundation-layout/./src/main/layout-item.ts","webpack://@genesislcap/foundation-layout/./src/utils/logger.ts","webpack://@genesislcap/foundation-layout/./src/main/layout-region.ts","webpack://@genesislcap/foundation-layout/./src/styles/constants.ts","webpack://@genesislcap/foundation-layout/./src/styles/dragging.styles.ts","webpack://@genesislcap/foundation-layout/./src/styles/layout.styles.ts","webpack://@genesislcap/foundation-layout/./src/main/layout-main.ts","webpack://@genesislcap/foundation-layout/./src/main/layout-components.ts"],"names":["componentType","Symbol","DEFAULT_RELOAD_BUFFER","LayoutUsageError","Error","constructor","message","super","LayoutRegistrationError","LayoutEmitEvents","firstLoaded","itemAdded","itemRemoved","LayoutReceiveEvents","changeTitle","getMissingArrayItems","a","b","filter","x","includes","getParentLayoutComponent","parent","this","parentElement","wrapperTemplate","html","layoutRegionValue","FoundationLayoutItem","FoundationElement","closable","connectedCallback","slottedElements","shadowRoot","querySelector","assignedElements","registeredID","cacheElementsAndRegister","elements","id","registration","itemConfig","type","title","reorderEnabled","isClosable","size","addItemFromChild","requestLayoutReload","apply","config","attr","mode","foundationLayoutItem","compose","baseName","template","logger","createLogger","defaultLayoutType","FoundationLayoutRegion","warn","setupLayoutRegion","layoutConfig","constructLayoutConfig","horizontal","vertical","tabs","content","item","push","length","foundationLayoutRegion","glVisualConfig","dimensions","headerHeight","borderWidth","header","maximise","minimise","popout","closeSVG","globalDraggingStyles","loadingSpinnerStyles","css","layoutStyles","appliedGlobalStyles","FoundationLayout","root","undefined","reloadBuffer","reloadPending","registeredComponents","hasFirstLoaded","usingDeclerativeAPI","dragging","onDragStart","bind","onDragStop","cacheLayout","onItemRemoved","debug","layout","GoldenLayout","layoutElement","resizeWithContainerAutomatically","CSSStyleSheet","replace","then","document","adoptedStyleSheets","catch","e","console","error","addEventListener","disconnectedCallback","removeEventListener","onItemAdded","$emit","static","c","LayoutConfig","ResolvedLayoutConfig","names","JSON","stringify","k","v","sort","registeredItems","getRegisteredComponentTypeNames","getLayout","saveLayout","loadLayout","alreadyRegistered","missingRegisteredItems","layoutRequiredRegistrations","Set","addItem","placement","area","registerItem","isInitialised","setTimeout","reg","setupEvents","setupLayoutReceiveEvents","registrationFunction","masterCopy","createDocumentFragment","forEach","appendChild","instanceCount","instances","Map","container","state","has","instanceCopy","Array","from","children","cloneNode","set","get","element","registerComponentFactoryFunction","originalTitle","maybeDetail","detail","setTitle","attribute","observable","loadingTemplate","layoutTemplate","when","ref","foundationLayoutComponents","foundationLayout","styles","register","rest","key"],"mappings":"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","file":"459.459.xxxxxxxxxxxxxxxxxxxx.js","sourcesContent":["/**\n * Used to key what type of LayoutComponent an object is\n * @internal\n */\nexport const componentType = Symbol('component-type');\n\n/**\n * Default time in milliseconds for the layout to buffer calls to reloading\n * the layout while the declarative API is loading.\n *\n * During the first load of the layout, a loading spinner will be shown.\n * @beta\n */\nexport const DEFAULT_RELOAD_BUFFER = 500;\n","/**\n * @beta\n */\nexport class LayoutUsageError extends Error {\n constructor(message: string) {\n super(message);\n }\n}\n\n/**\n * @beta\n */\nexport class LayoutRegistrationError extends Error {\n constructor(message: string) {\n super(message);\n }\n}\n","/**\n * Defines events that the layout system emits\n *\n * 'firstLoaded' - emitted when the layout has finished loading the first time\n * using the declarative API after {@link 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 * @beta\n */\nexport const LayoutEmitEvents = {\n firstLoaded: 'first-loaded',\n itemAdded: 'item-added',\n itemRemoved: 'item-removed',\n} as const;\n\n/**\n * 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 * @beta\n */\nexport const LayoutReceiveEvents = {\n changeTitle: 'change-title',\n} as const;\n\n/**\n * Defines the shape of the detail that the layout listens works with for events it listens on\n *\n * 'changeTitle' - `title` is the string you want to set. For `mode`: `replace` will set the title to be `title`, `suffix` will append `title` to the end of the existing title.\n * @beta\n */\nexport type LayoutReceiveEventsDetail = {\n changeTitle: { title: string; mode: 'replace' | 'suffix' };\n};\n","import { FoundationLayout, FoundationLayoutRegion } from '../main';\nimport { componentType, LayoutUsageError } from './';\n\n/**\n * Returns an array of values of the array a which are missing in b\n * An empty array is returned if every value of a is in b\n * @internal\n */\nexport function getMissingArrayItems<T>(a: T[], b: T[]): T[] {\n return a.filter((x) => !b.includes(x));\n}\n\n/** @internal */\nexport function getParentLayoutComponent(): FoundationLayout | FoundationLayoutRegion {\n const parent = this.parentElement;\n switch (parent[componentType]) {\n case 'root':\n return parent as FoundationLayout;\n case 'horizontal':\n case 'vertical':\n case 'tabs':\n return parent as FoundationLayoutRegion;\n default:\n throw new LayoutUsageError('Using layout region outside of layout root');\n }\n}\n","import { html } from '@microsoft/fast-element';\n\n/**\n * template for the child layout elements\n * @internal\n */\nexport const wrapperTemplate = html`\n <template>\n <slot class=\"target\"></slot>\n </template>\n`;\n","import { ResolvedLayoutConfig } from '@genesis-community/golden-layout';\nimport { componentType } from './';\n\n/**\n * @beta\n * Versioned layout config objects. `v` is the version and `c` contains the layout config.\n * @remarks\n * Versioning the layout config in this way allows changes to the config schema while\n * remaining backwards compatible with any existing client/user configurations. When loading an\n * older version of the configurations the version can be used to lookup and apply transformer functions\n * to get the newest version of the config from it.\n *\n * As more versions of configurations are added this type will have extra union types as part of SerialisedLayout.\n */\nexport type SerialisedLayout = {\n v: '1';\n c: ResolvedLayoutConfig;\n};\n\n/**\n * @beta\n * The parameters that can be set on a new item when being added by the {@link FoundationLayout.addItem} API\n *\n * @remarks\n * `elements` - array of Elements that are the content of the new item\n * `title` - optional string which is used as the new title of the tab (defaults to be the registered name)\n * `closable` - optional boolean which allows the item to be closed with the X button if set and true\n * `size` - optional string describing the size of the new item (see the written documentation for more info)\n * `registration` - optional string configuring the registration ID of the new item (defaults to sequential IDs)\n */\nexport interface RegisteredElementConfig {\n registration: string;\n title?: string;\n closable?: boolean;\n size?: string;\n}\n\n/**\n * @beta\n * Where to add the new item into the layout when using the {@link FoundationLayout.addItem} API\n */\nexport type Placement = {\n area: 'top' | 'left' | 'bottom' | 'right';\n};\n\n/** @internal */\nexport interface RegistrationConfig {\n elements: Element[];\n id?: string;\n}\n\n/** @internal */\nexport const layoutRegionValue = ['horizontal', 'vertical', 'tabs'] as const;\n/**\n * @beta\n * Union type describing the three different types of region splits.\n * Set on the `type` attribute on {@link FoundationLayoutRegion}.\n */\nexport type LayoutRegionType = (typeof layoutRegionValue)[number];\n/** @internal */\nexport type ComponentTypes = LayoutRegionType | 'root' | 'item';\n\n/** @internal */\nexport interface LayoutComponent {\n [componentType]: ComponentTypes;\n cacheElementsAndRegister(config: RegistrationConfig): string;\n requestLayoutReload(): void;\n}\n","import { attr } from '@microsoft/fast-element';\nimport { ComponentItemConfig } from '@genesis-community/golden-layout';\n\nimport {\n componentType,\n getParentLayoutComponent,\n LayoutComponent,\n RegistrationConfig,\n wrapperTemplate,\n} from '../utils';\nimport { FoundationLayout } from './layout-main';\nimport { FoundationLayoutRegion } from './layout-region';\nimport { FoundationElement } from '@microsoft/fast-foundation';\n\n/**\n * @beta\n * `FoundationLayoutItem` is a custom element that represents an item in the layout.\n * @remarks\n * This element is used to wrap html elements and configure their layout settings as part of the layout system.\n *\n * This is a simple component which is only used to define the layout splits; any JavaScript API interactions or custom styling is used via {@link FoundationLayout}.\n */\nexport class FoundationLayoutItem extends FoundationElement implements LayoutComponent {\n /**\n * Sets the title of the item which is displayed on the tab.\n * @remarks\n * Defaults to `Item ` + {@link FoundationLayoutItem.registration}\n * @beta\n */\n @attr title: string;\n\n /**\n * Boolean attribute controls whether the window can be closed in the GUI.\n * Defaults to `false`.\n * @beta\n */\n @attr({ mode: 'boolean' }) closable: boolean = false;\n\n /**\n * optional string describing the size of the new item (see the written documentation for more info)\n * @beta\n */\n @attr size: string;\n\n /**\n * Sets the registration name for the item, which can be used later to add the item via the JavaScript API using {@link FoundationLayout.addItem()}.\n * @remarks\n * Items added via the JavaScript API and HTML API share the same pool of registration names.\n * Using a duplicate registration name is a runtime error.\n * This registration name defaults to the number of the window it is.\n * It is highly recommended if you are using the JavaScript API that you set a registration name here manually.\n * @beta\n */\n @attr registration: string;\n\n /** @internal */\n [componentType] = 'item' as const;\n\n /** @internal */\n private slottedElements: Element[];\n\n /** @internal */\n connectedCallback(): void {\n super.connectedCallback();\n\n this.slottedElements = (\n this.shadowRoot.querySelector('slot.target') as HTMLSlotElement\n ).assignedElements();\n\n const registeredID = this.cacheElementsAndRegister({\n elements: this.slottedElements,\n id: this.registration,\n });\n\n const itemConfig: ComponentItemConfig = {\n type: 'component',\n componentType: registeredID,\n title: this.title ?? `Item ${registeredID}`,\n reorderEnabled: true,\n isClosable: this.closable,\n size: this.size,\n };\n\n this.getParentLayoutComponent().addItemFromChild(itemConfig);\n this.requestLayoutReload();\n }\n\n /** @internal */\n private getParentLayoutComponent(): FoundationLayout | FoundationLayoutRegion {\n return getParentLayoutComponent.apply(this);\n }\n\n /** @internal */\n requestLayoutReload(): void {\n this.getParentLayoutComponent().requestLayoutReload();\n }\n\n /** @internal */\n cacheElementsAndRegister(config: RegistrationConfig): string {\n return this.getParentLayoutComponent().cacheElementsAndRegister(config);\n }\n}\n\n/**\n * The FoundationLayoutItem Composed element\n *\n * @internal\n * @remarks\n * Can be registered with the design system via {@link foundationlayoutComponents}.\n * You do not need to compose your own version of this to update the styles of the layout.\n *\n * Tag Name: <{prefix}-layout-item>\n */\nexport const foundationLayoutItem = FoundationLayoutItem.compose({\n baseName: 'layout-item',\n template: wrapperTemplate,\n});\n","import { createLogger } from '@genesislcap/foundation-utils';\nexport const logger = createLogger('foundation-layout');\n","import { attr } from '@microsoft/fast-element';\nimport {\n RowOrColumnItemConfig,\n StackItemConfig,\n RootItemConfig,\n} from '@genesis-community/golden-layout';\nimport { logger } from '../utils/logger';\n\nimport {\n componentType,\n getParentLayoutComponent,\n LayoutComponent,\n LayoutRegionType,\n layoutRegionValue,\n RegistrationConfig,\n wrapperTemplate,\n} from '../utils';\nimport { FoundationLayout } from './layout-main';\nimport { FoundationElement } from '@microsoft/fast-foundation';\n\nconst defaultLayoutType = layoutRegionValue[0];\n\ntype GoldenLayoutRegions = 'row' | 'column' | 'stack';\nconst regionConveter = (x: LayoutRegionType): GoldenLayoutRegions => {\n const t: { [x in LayoutRegionType]: GoldenLayoutRegions } = {\n horizontal: 'column',\n vertical: 'row',\n tabs: 'stack',\n };\n return t[x];\n};\n\n/**\n * @beta\n * `FoundationLayoutRegion` is a custom element that represents a region in the layout.\n * @remarks\n * This element is used to create a region in the layout. It can be used to create a horizontal or vertical split, or a tabbed region.\n *\n * This is a simple component which is only used to define the layout splits; any JavaScript API interactions or custom styling is used via {@link FoundationLayout}.\n */\nexport class FoundationLayoutRegion extends FoundationElement implements LayoutComponent {\n /**\n * optional string describing the size of the new item (see the written documentation for more info)\n * @beta\n */\n @attr size: string;\n\n /**\n * Defines the {@link LayoutRegionType | type} of the region.\n * Defaults to `horizontal`.\n * @beta\n */\n @attr type: LayoutRegionType;\n\n /** @internal */\n [componentType]: LayoutRegionType = 'horizontal';\n\n /**\n * Reference to the config in the whole layout config for this\n * specific region.\n * @internal\n */\n private layoutConfig: RowOrColumnItemConfig | StackItemConfig;\n\n /** @internal */\n connectedCallback(): void {\n super.connectedCallback();\n if (!layoutRegionValue.includes(this.type)) {\n this.type = defaultLayoutType;\n logger.warn(`Using invalid attribute \"type\", defaulting to ${defaultLayoutType}`);\n }\n this[componentType] = this.type;\n this.setupLayoutRegion();\n }\n\n /**\n * Gets the layout config for this region using {@link FoundationLayoutRegion.constructLayoutConfig} and adds it into the main config tree via the parents. It saves a reference to the this config so a child can add its config in later.\n * @internal\n */\n private setupLayoutRegion() {\n this.layoutConfig = this.getParentLayoutComponent().addItemFromChild(\n this.constructLayoutConfig()\n );\n }\n\n /**\n * Creates a golden layout config for this object.\n * @internal\n */\n private constructLayoutConfig(): RowOrColumnItemConfig | StackItemConfig {\n const glRegion = regionConveter(this[componentType]);\n return {\n type: glRegion,\n content: [],\n size: this.size,\n };\n }\n\n /** @internal */\n private getParentLayoutComponent(): FoundationLayout | FoundationLayoutRegion {\n return getParentLayoutComponent.apply(this);\n }\n\n /** @internal */\n addItemFromChild<T extends RootItemConfig>(item: T): T {\n this.layoutConfig.content.push(item as any);\n return this.layoutConfig.content[this.layoutConfig.content.length - 1] as T;\n }\n\n /** @internal */\n requestLayoutReload(): void {\n this.getParentLayoutComponent().requestLayoutReload();\n }\n\n /** @internal */\n cacheElementsAndRegister(config: RegistrationConfig): string {\n return this.getParentLayoutComponent().cacheElementsAndRegister(config);\n }\n}\n\n/**\n * The FoundationLayoutRegion Composed element\n *\n * @internal\n * @remarks\n * Can be registered with the design system via {@link foundationlayoutComponents}.\n * You do not need to compose your own version of this to update the styles of the layout.\n *\n * Tag Name: <{prefix}-layout-region>\n */\nexport const foundationLayoutRegion = FoundationLayoutRegion.compose({\n baseName: 'layout-region',\n template: wrapperTemplate,\n});\n","import { LayoutConfig } from '@genesis-community/golden-layout';\n\nexport const glVisualConfig: Omit<LayoutConfig, 'root'> = {\n dimensions: {\n headerHeight: 38,\n borderWidth: 12,\n },\n header: {\n maximise: 'maximise',\n minimise: 'minimise',\n popout: false,\n },\n};\n\nexport const maximisSVG =\n 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDggNTEyIj48IS0tISBGb250IEF3ZXNvbWUgUHJvIDYuMi4wIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlIChDb21tZXJjaWFsIExpY2Vuc2UpIENvcHlyaWdodCAyMDIyIEZvbnRpY29ucywgSW5jLiAtLT48cGF0aCBkPSJNMTQ0IDMyaC0xMjhDNy4xNTYgMzIgMCAzOS4xNiAwIDQ4djEyOEMwIDE4NC44IDcuMTU2IDE5MiAxNiAxOTJTMzIgMTg0LjggMzIgMTc2VjY0aDExMkMxNTIuOCA2NCAxNjAgNTYuODQgMTYwIDQ4UzE1Mi44IDMyIDE0NCAzMnpNMTQ0IDQ0OEgzMnYtMTEyQzMyIDMyNy4yIDI0Ljg0IDMyMCAxNiAzMjBTMCAzMjcuMiAwIDMzNnYxMjhDMCA0NzIuOCA3LjE1NiA0ODAgMTYgNDgwaDEyOEMxNTIuOCA0ODAgMTYwIDQ3Mi44IDE2MCA0NjRTMTUyLjggNDQ4IDE0NCA0NDh6TTQzMiAzMjBjLTguODQ0IDAtMTYgNy4xNTYtMTYgMTZWNDQ4aC0xMTJjLTguODQ0IDAtMTYgNy4xNTYtMTYgMTZzNy4xNTYgMTYgMTYgMTZoMTI4YzguODQ0IDAgMTYtNy4xNTYgMTYtMTZ2LTEyOEM0NDggMzI3LjIgNDQwLjggMzIwIDQzMiAzMjB6TTQzMiAzMmgtMTI4QzI5NS4yIDMyIDI4OCAzOS4xNiAyODggNDhTMjk1LjIgNjQgMzA0IDY0SDQxNnYxMTJDNDE2IDE4NC44IDQyMy4yIDE5MiA0MzIgMTkyUzQ0OCAxODQuOCA0NDggMTc2di0xMjhDNDQ4IDM5LjE2IDQ0MC44IDMyIDQzMiAzMnoiIGZpbGw9IiM4NzliYTYiLz48L3N2Zz4=';\n\nexport const minimiseSVG =\n 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj48IS0tISBGb250IEF3ZXNvbWUgUHJvIDYuMi4wIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlIChDb21tZXJjaWFsIExpY2Vuc2UpIENvcHlyaWdodCAyMDIyIEZvbnRpY29ucywgSW5jLiAtLT48cGF0aCBkPSJNMCA0NjRDMCA0NTUuMiA3LjE2NCA0NDggMTYgNDQ4SDQ5NkM1MDQuOCA0NDggNTEyIDQ1NS4yIDUxMiA0NjRDNTEyIDQ3Mi44IDUwNC44IDQ4MCA0OTYgNDgwSDE2QzcuMTY0IDQ4MCAwIDQ3Mi44IDAgNDY0eiIgZmlsbD0iIzg3OWJhNiIvPjwvc3ZnPg==';\n\nexport const closeSVG =\n 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMjAgNTEyIj48IS0tISBGb250IEF3ZXNvbWUgUHJvIDYuMi4wIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlIChDb21tZXJjaWFsIExpY2Vuc2UpIENvcHlyaWdodCAyMDIyIEZvbnRpY29ucywgSW5jLiAtLT48cGF0aCBkPSJNMzE1LjMgNDExLjNjLTYuMjUzIDYuMjUzLTE2LjM3IDYuMjUzLTIyLjYzIDBMMTYwIDI3OC42bC0xMzIuNyAxMzIuN2MtNi4yNTMgNi4yNTMtMTYuMzcgNi4yNTMtMjIuNjMgMGMtNi4yNTMtNi4yNTMtNi4yNTMtMTYuMzcgMC0yMi42M0wxMzcuNCAyNTZMNC42OSAxMjMuM2MtNi4yNTMtNi4yNTMtNi4yNTMtMTYuMzcgMC0yMi42M2M2LjI1My02LjI1MyAxNi4zNy02LjI1MyAyMi42MyAwTDE2MCAyMzMuNGwxMzIuNy0xMzIuN2M2LjI1My02LjI1MyAxNi4zNy02LjI1MyAyMi42MyAwYzYuMjUzIDYuMjUzIDYuMjUzIDE2LjM3IDAgMjIuNjNMMTgyLjYgMjU2bDEzMi43IDEzMi43QzMyMS42IDM5NC45IDMyMS42IDQwNS4xIDMxNS4zIDQxMS4zeiIgZmlsbD0iIzg3OWJhNiIvPjwvc3ZnPg==';\n\nexport const tabDropdownSVG =\n 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDggNTEyIj48IS0tISBGb250IEF3ZXNvbWUgUHJvIDYuMi4wIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlIChDb21tZXJjaWFsIExpY2Vuc2UpIENvcHlyaWdodCAyMDIyIEZvbnRpY29ucywgSW5jLiAtLT48cGF0aCBkPSJNNC4yNTEgMTgxLjFDNy4zOTIgMTc3LjcgMTEuNjkgMTc1LjEgMTYgMTc1LjFjMy44OTEgMCA3Ljc4MSAxLjQwNiAxMC44NiA0LjI1bDE5Ny4xIDE4MS4xbDE5Ny4xLTE4MS4xYzYuNS02IDE2LjY0LTUuNjI1IDIyLjYxIC45MDYyYzYgNi41IDUuNTk0IDE2LjU5LS44OTA2IDIyLjU5bC0yMDggMTkyYy02LjE1NiA1LjY4OC0xNS41NiA1LjY4OC0yMS43MiAwbC0yMDgtMTkyQy0xLjM0MyAxOTcuNy0xLjc0OSAxODcuNiA0LjI1MSAxODEuMXoiIGZpbGw9IiM4NzliYTYiLz48L3N2Zz4=';\n","import { neutralFillStealthRest } from '@microsoft/fast-components';\n\n/**\n * This is defined as a string rather than a css template\n * because it is applied to a CSSStyleSheet object rather than\n * used as a FAST template\n */\nexport const globalDraggingStyles = `\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 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`;\n","// NOTE: This file is stylelint ignored as the css class names that golden layout use go against the rules\nimport {\n accentFillRest,\n controlCornerRadius,\n neutralLayer1,\n neutralLayer3,\n neutralLayer4,\n} from '@microsoft/fast-components';\nimport { css } from '@microsoft/fast-element';\n\nimport { maximisSVG, minimiseSVG, closeSVG, tabDropdownSVG } from './index';\n\nconst containerStyles = `\n :host {\n contain: content;\n display: block;\n position: relative;\n height: 100%;\n width: 100%;\n }\n .layout-container {\n position: absolute;\n height: 100%;\n width: 100%;\n inset: 0px;\n }\n`;\n\nconst loadingSpinnerStyles = css`\n * {\n --spinner-size: 50px;\n }\n\n .html-spinner {\n width: var(--spinner-size);\n height: var(--spinner-size);\n border: 4px solid white;\n border-top: 4px solid ${accentFillRest};\n border-radius: 50%;\n }\n\n .html-spinner {\n -webkit-transition-property: -webkit-transform;\n -webkit-transition-duration: 1.2s;\n -webkit-animation-name: rotate;\n -webkit-animation-iteration-count: infinite;\n -webkit-animation-timing-function: linear;\n\n -moz-transition-property: -moz-transform;\n -moz-animation-name: rotate;\n -moz-animation-duration: 1.2s;\n -moz-animation-iteration-count: infinite;\n -moz-animation-timing-function: linear;\n\n transition-property: transform;\n animation-name: rotate;\n animation-duration: 1.2s;\n animation-iteration-count: infinite;\n animation-timing-function: linear;\n }\n\n @-webkit-keyframes rotate {\n from {\n -webkit-transform: rotate(0deg);\n }\n to {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @-moz-keyframes rotate {\n from {\n -moz-transform: rotate(0deg);\n }\n to {\n -moz-transform: rotate(360deg);\n }\n }\n\n @keyframes rotate {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n }\n\n /* spinner positioning */\n\n .html-spinner {\n position: absolute;\n z-index: 5;\n left: calc(50% - (calc(var(--spinner-size) / 2)));\n top: calc(50% - (calc(var(--spinner-size) / 2)));\n }\n`;\n\n/**\n * `ElementStyles` which defines the css for {@link FoundationLayout}.\n * @remarks\n * Can be used in a composition to customise the styles of the layout.\n * @beta\n */\nexport const layoutStyles = 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('${maximisSVG}');\n }\n .lm_maximised .lm_controls .lm_maximise {\n background-image: url('${minimiseSVG}');\n }\n .lm_controls .lm_close {\n background-image: url('${closeSVG}');\n }\n .lm_header .lm_tab .lm_close_tab {\n background-image: url('${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('${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;\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;\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 }\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`;\n","import { html, attr, observable, when, ref } from '@microsoft/fast-element';\nimport { FoundationElement } from '@microsoft/fast-foundation';\nimport { logger } from '../utils/logger';\nimport {\n ComponentContainer,\n ComponentItemConfig,\n GoldenLayout,\n JsonValue,\n LayoutConfig,\n ResolvedLayoutConfig,\n RootItemConfig,\n} from '@genesis-community/golden-layout';\nimport {\n DEFAULT_RELOAD_BUFFER,\n LayoutComponent,\n LayoutEmitEvents,\n LayoutReceiveEvents,\n Placement,\n RegisteredElementConfig,\n RegistrationConfig,\n SerialisedLayout,\n componentType,\n LayoutReceiveEventsDetail,\n} from '../utils/';\nimport { LayoutRegistrationError, LayoutUsageError } from '../utils/error';\nimport { getMissingArrayItems } from '../utils/';\nimport { globalDraggingStyles, glVisualConfig, layoutStyles } from '../styles';\n\nexport { layoutStyles } from '../styles';\n\n/*\n * We only want to apply the global stylesheet required for golden layout\n * to work once, and only apply it if we actually use an instance of the\n * layout that requires it\n */\nlet appliedGlobalStyles = false;\n\n/**\n * @beta\n * Top level web component which is used to initialise a custom layout\n * @remarks\n * Can be used in a composition to customise the styles of the layout.\n */\nexport class FoundationLayout extends FoundationElement implements LayoutComponent {\n private layout: GoldenLayout;\n /** @internal */\n layoutElement: HTMLElement;\n private layoutConfig: LayoutConfig = { root: undefined };\n\n /** @internal */\n [componentType] = 'root' as const;\n\n /**\n * Number describing how long to wait in ms before reloading the config when adding items\n * declaratively by the html API. Default 500 (ms).\n * @beta\n */\n @attr({ attribute: 'reload-buffer' }) reloadBuffer: number = DEFAULT_RELOAD_BUFFER;\n private reloadPending = false;\n private registeredComponents = 0;\n\n /** @internal */\n @observable hasFirstLoaded = false;\n /** @internal */\n @observable usingDeclerativeAPI = false;\n\n /**\n * @beta\n * Set to true when the user is currently dragging the panes inside of the layout\n */\n @observable dragging: boolean = false;\n\n /** @internal */\n constructor() {\n super();\n this.onDragStart = this.onDragStart.bind(this);\n this.onDragStop = this.onDragStop.bind(this);\n this.cacheLayout = this.cacheLayout.bind(this);\n this.onItemRemoved = this.onItemRemoved.bind(this);\n }\n\n /** @internal */\n connectedCallback(): void {\n super.connectedCallback();\n logger.debug(`FoundationLayout connected to the DOM`);\n this.layout = new GoldenLayout(this.layoutElement);\n this.layout.resizeWithContainerAutomatically = true;\n\n if (!appliedGlobalStyles) {\n new CSSStyleSheet()\n .replace(globalDraggingStyles)\n .then((x) => document.adoptedStyleSheets.push(x))\n .catch((e) => console.error('Failed to replace styles:', e));\n appliedGlobalStyles = true;\n }\n\n this.shadowRoot.addEventListener('dragStart', this.onDragStart, true);\n this.shadowRoot.addEventListener('dragStop', this.onDragStop, true);\n this.shadowRoot.addEventListener('itemDestroyed', this.onItemRemoved, true);\n this.shadowRoot.addEventListener('closeButtonPressed', this.onItemRemoved, true);\n }\n\n /** @internal */\n disconnectedCallback(): void {\n this.shadowRoot.removeEventListener('dragStart', this.onDragStart);\n this.shadowRoot.removeEventListener('dragStop', this.onDragStop);\n this.shadowRoot.removeEventListener('itemDestroyed', this.onItemRemoved);\n this.shadowRoot.removeEventListener('closeButtonPressed', this.onItemRemoved);\n }\n\n /** @internal */\n private onDragStart() {\n this.dragging = true;\n }\n\n /** @internal */\n private onDragStop() {\n this.dragging = false;\n }\n\n /** @internal */\n private onItemAdded() {\n this.$emit(LayoutEmitEvents.itemAdded);\n }\n\n /** @internal */\n private onItemRemoved() {\n this.$emit(LayoutEmitEvents.itemRemoved);\n }\n\n /**\n * JS API, public\n */\n\n /**\n * @beta\n * Gets all of the required registration function names for a set of config\n * @remarks\n * You can use this with {@link FoundationLayout.registeredItems | registeredItems} to work out what items you need to register with {@link FoundationLayout.registerItem | registerItem()}\n * before loading the layout with {@link FoundationLayout.loadLayout | loadLayout()}\n *\n * @param layout - any version of {@link SerialisedLayout} object describing the layout\n * @returns string[] - an item for each registered element in the config. These must all be added before {@link FoundationLayout.loadLayout | function}\n * @throws - various errors if the layout parameter cannot be parsed\n */\n static layoutRequiredRegistrations(layout: SerialisedLayout): string[] {\n const { c: config } = layout;\n const layoutConfig = LayoutConfig.fromResolved(ResolvedLayoutConfig.unminifyConfig(config));\n\n const names = [];\n JSON.stringify(layoutConfig, (k, v) => {\n if (k === 'componentType') {\n names.push(v);\n }\n return v;\n });\n return names.sort();\n }\n\n /**\n * @beta\n * Gets all of the currently registered names\n * @remarks\n * You can use this with {@link FoundationLayout.layoutRequiredRegistrations | layoutRequiredRegistrations} to work out what items you need to register with {@link FoundationLayout.registerItem | registerItem()}\n * before loading the layout with {@link FoundationLayout.loadLayout | loadLayout()}\n *\n * @returns string[] - an item for each registered element currently registered with the layout system\n */\n registeredItems(): string[] {\n return this.layout.getRegisteredComponentTypeNames();\n }\n\n /**\n * @beta\n * Gets a minified string containing the config describing the current layout of the layout object to later restore in {@link FoundationLayout.loadLayout | function}\n * @returns - latest version of {@link SerialisedLayout} describing the layout\n */\n getLayout(): SerialisedLayout {\n return { v: '1', c: ResolvedLayoutConfig.minifyConfig(this.layout.saveLayout()) };\n }\n\n /**\n * @beta\n * Restores a layout described in the config from {@link FoundationLayout.getLayout | getLayout()}\n *\n * @remarks\n * In order to restore a layout you must have registered all of the required panes with the layout system before restoring it. If you are just setting the layout using the declarative API then all of the same components will be registered. <br/ >If you have added any elements using {@link FoundationLayout.registerItem} then you must ensure all of the same items have been added again. To make tracking what items are registered easier it is recommended in this case you explicitly name your registrations using the `id` parameter available on the {@link RegisteredElementConfig} and `foundation-layout-item` APIs. <br/> You can use {@link FoundationLayout.layoutRequiredRegistrations} to check which items are registered in a current layout in order to dynamically add any missing items before you can restore the layout\n *\n * @param layout - any version of {@link SerialisedLayout} object describing the layout\n * @throws {@link LayoutUsageError} if you attempt to load a layout with registered items that are not currently registered with the layout system\n * @throws various errors if the layout string is malformed and cannot be parsed\n */\n loadLayout(layout: SerialisedLayout) {\n const alreadyRegistered = this.registeredItems();\n const wantedRegistered = FoundationLayout.layoutRequiredRegistrations(layout);\n const missingRegisteredItems = getMissingArrayItems(wantedRegistered, alreadyRegistered);\n if (missingRegisteredItems.length !== 0) {\n throw new LayoutUsageError(\n `Trying to load layout with extra components. The component(s) not currently loaded are \"${[\n ...new Set(missingRegisteredItems),\n ]}\"`\n );\n }\n this.layout.loadLayout({\n ...LayoutConfig.fromResolved(ResolvedLayoutConfig.unminifyConfig(layout.c)),\n ...glVisualConfig,\n });\n }\n\n /**\n * @beta\n * Dynamically add a new item to the layout. The user can move the new plane to whenever they want once it has been added.\n * @remarks\n * Adding a new item invokes the registration previously made explicitly via {@link FoundationLayout.registerItem | registerItem()} or implicitly via the html declerative API.\n *\n * The elements added onto the new pane are copies using `element.cloneNode()` of the original element references used during registration.\n *\n * @param config - {@link RegisteredElementConfig} configuration items for the new pane\n * @param placement - where to add the new pane on the layout (defaults to the right hand side)\n * @throws {@link LayoutRegistrationError} if you attempt to add an item before it has been registered\n */\n addItem(config: RegisteredElementConfig, placement: Placement = { area: 'right' }) {\n const { registration, title, size, closable } = config;\n\n if (!this.layout.getRegisteredComponentTypeNames().includes(registration)) {\n throw new LayoutRegistrationError(\n `Cannot add item '${registration}' which is not registered with the layout system.`\n );\n }\n\n const itemConfig: ComponentItemConfig = {\n type: 'component',\n componentType: registration,\n title: title ?? `Item ${registration}`,\n reorderEnabled: true,\n isClosable: closable || false,\n size,\n };\n\n /**\n * If no root is added (no items via declerative API) then\n * this new item is the root so set it and return\n */\n if (typeof this.layoutConfig.root === 'undefined') {\n this.layoutConfig = {\n root: itemConfig,\n ...glVisualConfig,\n };\n this.layout.loadLayout(this.layoutConfig);\n this.onItemAdded();\n return;\n }\n\n // Else we add the item relative to existing items\n this.cacheLayout();\n const { area } = placement;\n\n this.layoutConfig = {\n root: {\n type: area === 'top' || area === 'bottom' ? 'column' : 'row',\n content:\n area === 'right' || area === 'bottom'\n ? [this.layoutConfig.root, itemConfig]\n : [itemConfig, this.layoutConfig.root],\n },\n ...glVisualConfig,\n };\n\n this.layout.loadLayout(this.layoutConfig);\n this.onItemAdded();\n }\n\n /**\n * @beta\n * Register a collection of `Element` and associate them with an `ID` with the layout system for later use.\n * @remarks\n * You would use this to register elements that you later want to load when using {@link FoundationLayout.loadLayout}.\n * Use {@link FoundationLayout.layoutRequiredRegistrations} to see what components need to be registered for a certain config\n * and then register them using this function before calling {@link FoundationLayout.loadLayout}.\n *\n * When registering an element it is moved by reference into the internals of the layout, so if you pass elements already in the DOM then they will disappear. If you want to avoid this you can pass copies using `element.cloneNode(true)`.\n *\n * @param registration - string of the registration ID\n * @param elements - Elements[] containing the reference to the elements to register for later usage\n * @throws {@link LayoutUsageError} if you attempt to add an item before the layout has been initialised.\n * @throws {@link LayoutRegistrationError} if you attempt to use a `registration` name which is already in use (declarative html API and JavaScript API registrations use the same \"pool\" of registration names).\n * @returns - string defining the name of the registered item with the layout system (config.id if set).\n */\n registerItem(registration: string, elements: Element[]): string {\n if (!this.layout.isInitialised) {\n throw new LayoutUsageError('Cannot add item via JS API until initialised');\n }\n\n return this.cacheElementsAndRegister({\n elements: elements,\n id: registration,\n });\n }\n\n /**\n * Internal APIs\n */\n\n /**\n * Request to reload the layout using the private member config. Debounced using the time set\n * in this.reloadBuffer\n * @internal\n */\n requestLayoutReload(): void {\n if (this.reloadPending) return;\n\n this.reloadPending = true;\n setTimeout(() => {\n this.layout.loadLayout(this.layoutConfig);\n this.reloadPending = false;\n if (!this.hasFirstLoaded) {\n this.$emit(LayoutEmitEvents.firstLoaded);\n this.hasFirstLoaded = true;\n }\n }, this.reloadBuffer);\n }\n\n /**\n * Adds a config item into the root config and returns a link to the new config in the tree\n * @typeParam T - RowOrColumnItemConfig | StackItemConfig | ComponentItemConfig;\n * @param item - T to add as the root element of the layout\n * @returns T the reference to the added item in the whole item config\n * @throws {@link LayoutUsageError} if you try and add an item when a root has already been set (this happens if you have multiple direct children of this html element which is an incorrect usage)\n * @internal\n */\n addItemFromChild<T extends RootItemConfig>(item: T): T {\n if (typeof this.layoutConfig.root !== 'undefined') {\n throw new LayoutUsageError(\n 'Cannot have multiple layout items as direct descendants of the layout root. You need to put the layout items within a layout region.'\n );\n }\n\n this.usingDeclerativeAPI = true;\n\n this.layoutConfig = {\n root: item,\n ...glVisualConfig,\n };\n return this.layoutConfig.root as T;\n }\n\n /**\n * Registers a function with golden layout to create a pane\n * @param elements - Elements[] to add to new new pane\n * @param id - optional string which is used to register the new function with golden layout. Defaults to sequentially setting the IDs for default items\n * @returns - string which is the registered ID\n * @throws - {@link LayoutRegistrationError} if the id is already in use\n * @internal\n */\n cacheElementsAndRegister({ elements, id }: RegistrationConfig): string {\n const reg = id || `${(this.registeredComponents += 1)}`;\n\n if (this.layout.getRegisteredComponentTypeNames().includes(reg)) {\n throw new LayoutRegistrationError(\n `Cannot register item with already registered name: '${reg}'`\n );\n }\n\n const setupEvents = this.setupLayoutReceiveEvents.bind(this);\n\n /**\n * What we need the registration function to do:\n * \"Consume\" the registered elements initially, so we don't have duplicate items from the declarative API\n * We need to hold a master copy of the registered items\n * When an item is created at first, it is copied from the master copy so it behaves as expected\n * When a copy is created it becomes its own instance for the lifetime of the layout in the DOM\n *\n * This has the effect of allowing us to create multiple instances of the same registered item, and each\n * created instance is separate allowing it to implement its own serialise and cache of data.\n */\n const registrationFunction = (function () {\n // Use appendChild to consume the elements and save them in the master copy\n const masterCopy = document.createDocumentFragment();\n elements.forEach((e) => masterCopy.appendChild(e));\n\n let instanceCount = 0;\n const instances: Map<number, Element[]> = new Map();\n\n return (container: ComponentContainer, state: JsonValue | undefined) => {\n // If this is a new instance then assign it an instanceCount\n if (!state?.['instance']) {\n instanceCount += 1;\n state['instance'] = instanceCount;\n }\n container.state['instance'] = state['instance'];\n\n container.state['originalTitle'] = state['originalTitle'] ?? container.title;\n\n // If this is a new instance then copy the master copy into the instances map\n // this is then the instance that is recalled for this version each time\n // the key point is \"cloneNode\" which makes a copy at this point\n if (!instances.has(state?.['instance'])) {\n const instanceCopy = document.createDocumentFragment();\n Array.from(masterCopy.children).forEach((e) =>\n instanceCopy.appendChild(e.cloneNode(true))\n );\n instances.set(state['instance'], [...instanceCopy.children]);\n }\n\n // get the instance from the map and append it to the container\n instances.get(state['instance']).forEach((e) => container.element.appendChild(e));\n\n setupEvents(container, state);\n };\n })();\n\n this.layout.registerComponentFactoryFunction(reg, registrationFunction);\n return reg;\n }\n\n /**\n * Sets up the event listeners for the layout receive events\n * @internal\n */\n private setupLayoutReceiveEvents(container: ComponentContainer, state: JsonValue) {\n const originalTitle = container.state['originalTitle'];\n\n container.element.addEventListener(LayoutReceiveEvents.changeTitle, (e: any) => {\n const maybeDetail = e?.detail as Partial<LayoutReceiveEventsDetail['changeTitle']>;\n if (!(maybeDetail?.title && maybeDetail?.mode)) {\n logger.error('Invalid change-title event.detail:', e?.detail);\n }\n\n container.setTitle(\n `${maybeDetail.mode === 'suffix' ? originalTitle + ' ' : ''}${maybeDetail.title}`\n );\n });\n }\n\n /**\n * Saves the stored layout config according to the Golden Layout provider.\n * Needs to be called when the layout is updated outside of using addItemFromChild.\n * @internal\n * */\n private cacheLayout() {\n this.layoutConfig = LayoutConfig.fromResolved(this.layout.saveLayout());\n }\n}\n\nconst loadingTemplate = html`\n <div class=\"html-spinner\"></div>\n`;\n\n/**\n * `ViewTemplate` which defines the html for {@link FoundationLayout}.\n * @remarks\n * Can be used in a composition to customise the styles of the layout.\n * @beta\n */\nexport const layoutTemplate = html<FoundationLayout>`\n <template>\n ${when((x) => !x.hasFirstLoaded && x.usingDeclerativeAPI, loadingTemplate)}\n <div class=\"layout-container\" ${ref('layoutElement')}></div>\n </template>\n`;\n\n/**\n * The Foundation Layout Composed element\n *\n * @internal\n * @remarks\n * Can be registered with the design system via {@link foundationlayoutComponents}.\n *\n * Tag Name: <{prefix}-layout>\n */\nexport const foundationLayout = FoundationLayout.compose({\n baseName: 'layout',\n styles: layoutStyles,\n template: layoutTemplate,\n});\n","import type { Container } from '@microsoft/fast-foundation';\nimport { foundationLayout } from './layout-main';\nimport { foundationLayoutRegion } from './layout-region';\nimport { foundationLayoutItem } from './layout-item';\n\n/**\n * Registration object to register the layout with your design system.\n *\n * @remarks\n * Registers the three layout component types with the design system.\n * You require to use the prefix of the design system with each tag.\n * If you wish to alternate the styles of the layout you only need to compose your own custom\n * version of {@link FoundationLayout} as this contains the styles for the entire layout.\n *\n * @example\n * `<zero-layout></zero-layout>` if you are using the layout with the `zero` design-system.\n *\n * @beta\n */\nexport const foundationLayoutComponents = {\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};\n"],"sourceRoot":""}
@@ -0,0 +1,3 @@
1
+ /*! For license information please see 623.623.0e7e8f23454ee96ed9c8.js.LICENSE.txt */
2
+ (self.webpackChunk_genesislcap_foundation_layout=self.webpackChunk_genesislcap_foundation_layout||[]).push([[623,415],{861:(e,t,n)=>{"use strict";function o(){return!("undefined"==typeof window||!window.document||!window.document.createElement)}n.d(t,{N:()=>o})},642:(e,t,n)=>{"use strict";n.d(t,{EB:()=>w,Wq:()=>m});var o=["input","select","textarea","a[href]","button","[tabindex]:not(slot)","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])',"details>summary:first-of-type","details"],r=o.join(","),i="undefined"==typeof Element,a=i?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,u=!i&&Element.prototype.getRootNode?function(e){return e.getRootNode()}:function(e){return e.ownerDocument},c=function(e,t){return e.tabIndex<0&&(t||/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||e.isContentEditable)&&isNaN(parseInt(e.getAttribute("tabindex"),10))?0:e.tabIndex},l=function(e){return"INPUT"===e.tagName},d=function(e){return function(e){return l(e)&&"radio"===e.type}(e)&&!function(e){if(!e.name)return!0;var t,n=e.form||u(e),o=function(e){return n.querySelectorAll('input[type="radio"][name="'+e+'"]')};if("undefined"!=typeof window&&void 0!==window.CSS&&"function"==typeof window.CSS.escape)t=o(window.CSS.escape(e.name));else try{t=o(e.name)}catch(e){return console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s",e.message),!1}var r=function(e,t){for(var n=0;n<e.length;n++)if(e[n].checked&&e[n].form===t)return e[n]}(t,e.form);return!r||r===e}(e)},f=function(e){var t=e.getBoundingClientRect(),n=t.width,o=t.height;return 0===n&&0===o},s=function(e,t){return!(t.disabled||function(e){return l(e)&&"hidden"===e.type}(t)||function(e,t){var n=t.displayCheck,o=t.getShadowRoot;if("hidden"===getComputedStyle(e).visibility)return!0;var r=a.call(e,"details>summary:first-of-type")?e.parentElement:e;if(a.call(r,"details:not([open]) *"))return!0;var i=u(e).host,c=(null==i?void 0:i.ownerDocument.contains(i))||e.ownerDocument.contains(e);if(n&&"full"!==n){if("non-zero-area"===n)return f(e)}else{if("function"==typeof o){for(var l=e;e;){var d=e.parentElement,s=u(e);if(d&&!d.shadowRoot&&!0===o(d))return f(e);e=e.assignedSlot?e.assignedSlot:d||s===e.ownerDocument?d:s.host}e=l}if(c)return!e.getClientRects().length}return!1}(t,e)||function(e){return"DETAILS"===e.tagName&&Array.prototype.slice.apply(e.children).some((function(e){return"SUMMARY"===e.tagName}))}(t)||function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if("FIELDSET"===t.tagName&&t.disabled){for(var n=0;n<t.children.length;n++){var o=t.children.item(n);if("LEGEND"===o.tagName)return!!a.call(t,"fieldset[disabled] *")||!o.contains(e)}return!0}t=t.parentElement}return!1}(t))},p=function(e,t){return!(d(t)||c(t)<0||!s(e,t))},m=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return!1!==a.call(e,r)&&p(t,e)},h=o.concat("iframe").join(","),w=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return!1!==a.call(e,h)&&s(t,e)}}}]);
3
+ //# sourceMappingURL=623.e8f211473f9034c4157d362efb017821.js.map
@@ -0,0 +1,4 @@
1
+ /*!
2
+ * tabbable 5.3.3
3
+ * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE
4
+ */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["webpack://@genesislcap/foundation-layout/../node_modules/exenv-es6/dist/can-use-dom.js","webpack://@genesislcap/foundation-layout/../node_modules/tabbable/dist/index.esm.js"],"names":["canUseDOM","window","document","createElement","candidateSelectors","candidateSelector","join","NoElement","Element","matches","prototype","msMatchesSelector","webkitMatchesSelector","getRootNode","element","ownerDocument","getTabindex","node","isScope","tabIndex","test","tagName","isContentEditable","isNaN","parseInt","getAttribute","isInput","isNonTabbableRadio","type","isRadio","name","radioSet","radioScope","form","queryRadios","querySelectorAll","CSS","escape","err","console","error","message","checked","nodes","i","length","getCheckedRadio","isTabbableRadio","isZeroArea","_node$getBoundingClie","getBoundingClientRect","width","height","isNodeMatchingSelectorFocusable","options","disabled","isHiddenInput","_ref","displayCheck","getShadowRoot","getComputedStyle","visibility","nodeUnderDetails","call","parentElement","nodeRootHost","host","nodeIsAttached","contains","originalNode","rootNode","shadowRoot","assignedSlot","getClientRects","isHidden","Array","slice","apply","children","some","child","isDetailsWithSummary","parentNode","item","isDisabledFromFieldset","isNodeMatchingSelectorTabbable","isTabbable","Error","focusableCandidateSelector","concat","isFocusable"],"mappings":"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","file":"623.623.xxxxxxxxxxxxxxxxxxxx.js","sourcesContent":["/**\n * Checks if the DOM is available to access and use\n */\nexport function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n}\n","/*!\n* tabbable 5.3.3\n* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n*/\nvar candidateSelectors = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]:not(slot)', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable=\"false\"])', 'details>summary:first-of-type', 'details'];\nvar candidateSelector = /* #__PURE__ */candidateSelectors.join(',');\nvar NoElement = typeof Element === 'undefined';\nvar matches = NoElement ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\nvar getRootNode = !NoElement && Element.prototype.getRootNode ? function (element) {\n return element.getRootNode();\n} : function (element) {\n return element.ownerDocument;\n};\n/**\n * @param {Element} el container to check in\n * @param {boolean} includeContainer add container to check\n * @param {(node: Element) => boolean} filter filter candidates\n * @returns {Element[]}\n */\n\nvar getCandidates = function getCandidates(el, includeContainer, filter) {\n var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));\n\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n\n candidates = candidates.filter(filter);\n return candidates;\n};\n/**\n * @callback GetShadowRoot\n * @param {Element} element to check for shadow root\n * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.\n */\n\n/**\n * @callback ShadowRootFilter\n * @param {Element} shadowHostNode the element which contains shadow content\n * @returns {boolean} true if a shadow root could potentially contain valid candidates.\n */\n\n/**\n * @typedef {Object} CandidatesScope\n * @property {Element} scope contains inner candidates\n * @property {Element[]} candidates\n */\n\n/**\n * @typedef {Object} IterativeOptions\n * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;\n * if a function, implies shadow support is enabled and either returns the shadow root of an element\n * or a boolean stating if it has an undisclosed shadow root\n * @property {(node: Element) => boolean} filter filter candidates\n * @property {boolean} flatten if true then result will flatten any CandidatesScope into the returned list\n * @property {ShadowRootFilter} shadowRootFilter filter shadow roots;\n */\n\n/**\n * @param {Element[]} elements list of element containers to match candidates from\n * @param {boolean} includeContainer add container list to check\n * @param {IterativeOptions} options\n * @returns {Array.<Element|CandidatesScope>}\n */\n\n\nvar getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {\n var candidates = [];\n var elementsToCheck = Array.from(elements);\n\n while (elementsToCheck.length) {\n var element = elementsToCheck.shift();\n\n if (element.tagName === 'SLOT') {\n // add shadow dom slot scope (slot itself cannot be focusable)\n var assigned = element.assignedElements();\n var content = assigned.length ? assigned : element.children;\n var nestedCandidates = getCandidatesIteratively(content, true, options);\n\n if (options.flatten) {\n candidates.push.apply(candidates, nestedCandidates);\n } else {\n candidates.push({\n scope: element,\n candidates: nestedCandidates\n });\n }\n } else {\n // check candidate element\n var validCandidate = matches.call(element, candidateSelector);\n\n if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {\n candidates.push(element);\n } // iterate over shadow content if possible\n\n\n var shadowRoot = element.shadowRoot || // check for an undisclosed shadow\n typeof options.getShadowRoot === 'function' && options.getShadowRoot(element);\n var validShadowRoot = !options.shadowRootFilter || options.shadowRootFilter(element);\n\n if (shadowRoot && validShadowRoot) {\n // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed\n // shadow exists, so look at light dom children as fallback BUT create a scope for any\n // child candidates found because they're likely slotted elements (elements that are\n // children of the web component element (which has the shadow), in the light dom, but\n // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,\n // _after_ we return from this recursive call\n var _nestedCandidates = getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);\n\n if (options.flatten) {\n candidates.push.apply(candidates, _nestedCandidates);\n } else {\n candidates.push({\n scope: element,\n candidates: _nestedCandidates\n });\n }\n } else {\n // there's not shadow so just dig into the element's (light dom) children\n // __without__ giving the element special scope treatment\n elementsToCheck.unshift.apply(elementsToCheck, element.children);\n }\n }\n }\n\n return candidates;\n};\n\nvar getTabindex = function getTabindex(node, isScope) {\n if (node.tabIndex < 0) {\n // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default\n // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,\n // yet they are still part of the regular tab order; in FF, they get a default\n // `tabIndex` of 0; since Chrome still puts those elements in the regular tab\n // order, consider their tab index to be 0.\n // Also browsers do not return `tabIndex` correctly for contentEditable nodes;\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n //\n // isScope is positive for custom element with shadow root or slot that by default\n // have tabIndex -1, but need to be sorted by document order in order for their\n // content to be inserted in the correct position\n if ((isScope || /^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || node.isContentEditable) && isNaN(parseInt(node.getAttribute('tabindex'), 10))) {\n return 0;\n }\n }\n\n return node.tabIndex;\n};\n\nvar sortOrderedTabbables = function sortOrderedTabbables(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n};\n\nvar isInput = function isInput(node) {\n return node.tagName === 'INPUT';\n};\n\nvar isHiddenInput = function isHiddenInput(node) {\n return isInput(node) && node.type === 'hidden';\n};\n\nvar isDetailsWithSummary = function isDetailsWithSummary(node) {\n var r = node.tagName === 'DETAILS' && Array.prototype.slice.apply(node.children).some(function (child) {\n return child.tagName === 'SUMMARY';\n });\n return r;\n};\n\nvar getCheckedRadio = function getCheckedRadio(nodes, form) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked && nodes[i].form === form) {\n return nodes[i];\n }\n }\n};\n\nvar isTabbableRadio = function isTabbableRadio(node) {\n if (!node.name) {\n return true;\n }\n\n var radioScope = node.form || getRootNode(node);\n\n var queryRadios = function queryRadios(name) {\n return radioScope.querySelectorAll('input[type=\"radio\"][name=\"' + name + '\"]');\n };\n\n var radioSet;\n\n if (typeof window !== 'undefined' && typeof window.CSS !== 'undefined' && typeof window.CSS.escape === 'function') {\n radioSet = queryRadios(window.CSS.escape(node.name));\n } else {\n try {\n radioSet = queryRadios(node.name);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s', err.message);\n return false;\n }\n }\n\n var checked = getCheckedRadio(radioSet, node.form);\n return !checked || checked === node;\n};\n\nvar isRadio = function isRadio(node) {\n return isInput(node) && node.type === 'radio';\n};\n\nvar isNonTabbableRadio = function isNonTabbableRadio(node) {\n return isRadio(node) && !isTabbableRadio(node);\n};\n\nvar isZeroArea = function isZeroArea(node) {\n var _node$getBoundingClie = node.getBoundingClientRect(),\n width = _node$getBoundingClie.width,\n height = _node$getBoundingClie.height;\n\n return width === 0 && height === 0;\n};\n\nvar isHidden = function isHidden(node, _ref) {\n var displayCheck = _ref.displayCheck,\n getShadowRoot = _ref.getShadowRoot;\n\n // NOTE: visibility will be `undefined` if node is detached from the document\n // (see notes about this further down), which means we will consider it visible\n // (this is legacy behavior from a very long way back)\n // NOTE: we check this regardless of `displayCheck=\"none\"` because this is a\n // _visibility_ check, not a _display_ check\n if (getComputedStyle(node).visibility === 'hidden') {\n return true;\n }\n\n var isDirectSummary = matches.call(node, 'details>summary:first-of-type');\n var nodeUnderDetails = isDirectSummary ? node.parentElement : node;\n\n if (matches.call(nodeUnderDetails, 'details:not([open]) *')) {\n return true;\n } // The root node is the shadow root if the node is in a shadow DOM; some document otherwise\n // (but NOT _the_ document; see second 'If' comment below for more).\n // If rootNode is shadow root, it'll have a host, which is the element to which the shadow\n // is attached, and the one we need to check if it's in the document or not (because the\n // shadow, and all nodes it contains, is never considered in the document since shadows\n // behave like self-contained DOMs; but if the shadow's HOST, which is part of the document,\n // is hidden, or is not in the document itself but is detached, it will affect the shadow's\n // visibility, including all the nodes it contains). The host could be any normal node,\n // or a custom element (i.e. web component). Either way, that's the one that is considered\n // part of the document, not the shadow root, nor any of its children (i.e. the node being\n // tested).\n // If rootNode is not a shadow root, it won't have a host, and so rootNode should be the\n // document (per the docs) and while it's a Document-type object, that document does not\n // appear to be the same as the node's `ownerDocument` for some reason, so it's safer\n // to ignore the rootNode at this point, and use `node.ownerDocument`. Otherwise,\n // using `rootNode.contains(node)` will _always_ be true we'll get false-positives when\n // node is actually detached.\n\n\n var nodeRootHost = getRootNode(node).host;\n var nodeIsAttached = (nodeRootHost === null || nodeRootHost === void 0 ? void 0 : nodeRootHost.ownerDocument.contains(nodeRootHost)) || node.ownerDocument.contains(node);\n\n if (!displayCheck || displayCheck === 'full') {\n if (typeof getShadowRoot === 'function') {\n // figure out if we should consider the node to be in an undisclosed shadow and use the\n // 'non-zero-area' fallback\n var originalNode = node;\n\n while (node) {\n var parentElement = node.parentElement;\n var rootNode = getRootNode(node);\n\n if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true // check if there's an undisclosed shadow\n ) {\n // node has an undisclosed shadow which means we can only treat it as a black box, so we\n // fall back to a non-zero-area test\n return isZeroArea(node);\n } else if (node.assignedSlot) {\n // iterate up slot\n node = node.assignedSlot;\n } else if (!parentElement && rootNode !== node.ownerDocument) {\n // cross shadow boundary\n node = rootNode.host;\n } else {\n // iterate up normal dom\n node = parentElement;\n }\n }\n\n node = originalNode;\n } // else, `getShadowRoot` might be true, but all that does is enable shadow DOM support\n // (i.e. it does not also presume that all nodes might have undisclosed shadows); or\n // it might be a falsy value, which means shadow DOM support is disabled\n // Since we didn't find it sitting in an undisclosed shadow (or shadows are disabled)\n // now we can just test to see if it would normally be visible or not, provided it's\n // attached to the main document.\n // NOTE: We must consider case where node is inside a shadow DOM and given directly to\n // `isTabbable()` or `isFocusable()` -- regardless of `getShadowRoot` option setting.\n\n\n if (nodeIsAttached) {\n // this works wherever the node is: if there's at least one client rect, it's\n // somehow displayed; it also covers the CSS 'display: contents' case where the\n // node itself is hidden in place of its contents; and there's no need to search\n // up the hierarchy either\n return !node.getClientRects().length;\n } // Else, the node isn't attached to the document, which means the `getClientRects()`\n // API will __always__ return zero rects (this can happen, for example, if React\n // is used to render nodes onto a detached tree, as confirmed in this thread:\n // https://github.com/facebook/react/issues/9117#issuecomment-284228870)\n //\n // It also means that even window.getComputedStyle(node).display will return `undefined`\n // because styles are only computed for nodes that are in the document.\n //\n // NOTE: THIS HAS BEEN THE CASE FOR YEARS. It is not new, nor is it caused by tabbable\n // somehow. Though it was never stated officially, anyone who has ever used tabbable\n // APIs on nodes in detached containers has actually implicitly used tabbable in what\n // was later (as of v5.2.0 on Apr 9, 2021) called `displayCheck=\"none\"` mode -- essentially\n // considering __everything__ to be visible because of the innability to determine styles.\n\n } else if (displayCheck === 'non-zero-area') {\n // NOTE: Even though this tests that the node's client rect is non-zero to determine\n // whether it's displayed, and that a detached node will __always__ have a zero-area\n // client rect, we don't special-case for whether the node is attached or not. In\n // this mode, we do want to consider nodes that have a zero area to be hidden at all\n // times, and that includes attached or not.\n return isZeroArea(node);\n } // visible, as far as we can tell, or per current `displayCheck` mode\n\n\n return false;\n}; // form fields (nested) inside a disabled fieldset are not focusable/tabbable\n// unless they are in the _first_ <legend> element of the top-most disabled\n// fieldset\n\n\nvar isDisabledFromFieldset = function isDisabledFromFieldset(node) {\n if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {\n var parentNode = node.parentElement; // check if `node` is contained in a disabled <fieldset>\n\n while (parentNode) {\n if (parentNode.tagName === 'FIELDSET' && parentNode.disabled) {\n // look for the first <legend> among the children of the disabled <fieldset>\n for (var i = 0; i < parentNode.children.length; i++) {\n var child = parentNode.children.item(i); // when the first <legend> (in document order) is found\n\n if (child.tagName === 'LEGEND') {\n // if its parent <fieldset> is not nested in another disabled <fieldset>,\n // return whether `node` is a descendant of its first <legend>\n return matches.call(parentNode, 'fieldset[disabled] *') ? true : !child.contains(node);\n }\n } // the disabled <fieldset> containing `node` has no <legend>\n\n\n return true;\n }\n\n parentNode = parentNode.parentElement;\n }\n } // else, node's tabbable/focusable state should not be affected by a fieldset's\n // enabled/disabled state\n\n\n return false;\n};\n\nvar isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable(options, node) {\n if (node.disabled || isHiddenInput(node) || isHidden(node, options) || // For a details element with a summary, the summary element gets the focus\n isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {\n return false;\n }\n\n return true;\n};\n\nvar isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable(options, node) {\n if (isNonTabbableRadio(node) || getTabindex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {\n return false;\n }\n\n return true;\n};\n\nvar isValidShadowRootTabbable = function isValidShadowRootTabbable(shadowHostNode) {\n var tabIndex = parseInt(shadowHostNode.getAttribute('tabindex'), 10);\n\n if (isNaN(tabIndex) || tabIndex >= 0) {\n return true;\n } // If a custom element has an explicit negative tabindex,\n // browsers will not allow tab targeting said element's children.\n\n\n return false;\n};\n/**\n * @param {Array.<Element|CandidatesScope>} candidates\n * @returns Element[]\n */\n\n\nvar sortByOrder = function sortByOrder(candidates) {\n var regularTabbables = [];\n var orderedTabbables = [];\n candidates.forEach(function (item, i) {\n var isScope = !!item.scope;\n var element = isScope ? item.scope : item;\n var candidateTabindex = getTabindex(element, isScope);\n var elements = isScope ? sortByOrder(item.candidates) : element;\n\n if (candidateTabindex === 0) {\n isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n item: item,\n isScope: isScope,\n content: elements\n });\n }\n });\n return orderedTabbables.sort(sortOrderedTabbables).reduce(function (acc, sortable) {\n sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);\n return acc;\n }, []).concat(regularTabbables);\n};\n\nvar tabbable = function tabbable(el, options) {\n options = options || {};\n var candidates;\n\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([el], options.includeContainer, {\n filter: isNodeMatchingSelectorTabbable.bind(null, options),\n flatten: false,\n getShadowRoot: options.getShadowRoot,\n shadowRootFilter: isValidShadowRootTabbable\n });\n } else {\n candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));\n }\n\n return sortByOrder(candidates);\n};\n\nvar focusable = function focusable(el, options) {\n options = options || {};\n var candidates;\n\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([el], options.includeContainer, {\n filter: isNodeMatchingSelectorFocusable.bind(null, options),\n flatten: true,\n getShadowRoot: options.getShadowRoot\n });\n } else {\n candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));\n }\n\n return candidates;\n};\n\nvar isTabbable = function isTabbable(node, options) {\n options = options || {};\n\n if (!node) {\n throw new Error('No node provided');\n }\n\n if (matches.call(node, candidateSelector) === false) {\n return false;\n }\n\n return isNodeMatchingSelectorTabbable(options, node);\n};\n\nvar focusableCandidateSelector = /* #__PURE__ */candidateSelectors.concat('iframe').join(',');\n\nvar isFocusable = function isFocusable(node, options) {\n options = options || {};\n\n if (!node) {\n throw new Error('No node provided');\n }\n\n if (matches.call(node, focusableCandidateSelector) === false) {\n return false;\n }\n\n return isNodeMatchingSelectorFocusable(options, node);\n};\n\nexport { focusable, isFocusable, isTabbable, tabbable };\n//# sourceMappingURL=index.esm.js.map\n"],"sourceRoot":""}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["webpack://@genesislcap/foundation-layout/./src/index.federated.ts"],"names":[],"mappings":"qIAAA,sE","file":"755.755.xxxxxxxxxxxxxxxxxxxx.js","sourcesContent":["import('./index');\n"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ (self.webpackChunk_genesislcap_foundation_layout=self.webpackChunk_genesislcap_foundation_layout||[]).push([[755,179],{755:(e,n,a)=>{Promise.all([a.e(127),a.e(147),a.e(758),a.e(459)]).then(a.bind(a,459))}}]);
2
+ //# sourceMappingURL=755.718e14af7194fb741f98580b24b2bb8f.js.map
@@ -0,0 +1 @@
1
+ {"dependencies":[{"name":"@genesis-community/golden-layout","version":"2.9"},{"name":"@microsoft/fast-element","version":"1.11"},{"name":"@microsoft/fast-foundation","version":"2.47"},{"name":"tslib","version":"2.5"}],"devDependencies":[{"name":"@module-federation/dashboard-plugin","version":"2.3"},{"name":"@pixability-ui/federated-types","version":"0.2"},{"name":"@playwright/test","version":"1.31"},{"name":"c8","version":"7.13"},{"name":"camel-case","version":"4.1"},{"name":"clean-webpack-plugin","version":"4.0"},{"name":"cross-env","version":"7.0"},{"name":"csp-html-webpack-plugin","version":"5.1"},{"name":"css-loader","version":"6.7"},{"name":"cssnano","version":"5.1"},{"name":"esm","version":"3.2"},{"name":"file-loader","version":"6.2"},{"name":"html-webpack-plugin","version":"5.5"},{"name":"jsdom","version":"19.0"},{"name":"mini-css-extract-plugin","version":"2.7"},{"name":"playwright-test","version":"7.4"},{"name":"portfinder-sync","version":"0.0"},{"name":"postcss","version":"8.4"},{"name":"postcss-import","version":"14.1"},{"name":"postcss-loader","version":"6.2"},{"name":"postcss-preset-env","version":"7.8"},{"name":"rollup-plugin-lit-css","version":"3.2"},{"name":"terser-webpack-plugin","version":"5.3"},{"name":"to-string-loader","version":"1.2"},{"name":"ts-loader","version":"9.3"},{"name":"tsconfig-paths-webpack-plugin","version":"3.5"},{"name":"tsm","version":"2.3"},{"name":"typescript","version":"4.9"},{"name":"uvu","version":"0.5"},{"name":"watchlist","version":"0.3"},{"name":"webpack","version":"5.45"},{"name":"webpack-bundle-analyzer","version":"4.8"},{"name":"webpack-cli","version":"4.10"},{"name":"webpack-dev-server","version":"4.11"},{"name":"webpack-merge","version":"5.8"}],"optionalDependencies":[],"id":"foundationLayout","name":"foundationLayout","remote":"","metadata":{},"overrides":[{"id":"@microsoft/fast-element","name":"@microsoft/fast-element","version":"1.11","location":"@microsoft/fast-element","applicationID":"foundationLayout"},{"id":"tslib","name":"tslib","version":"2.5","location":"tslib","applicationID":"foundationLayout"},{"id":"@microsoft/fast-foundation","name":"@microsoft/fast-foundation","version":"2.47","location":"@microsoft/fast-foundation","applicationID":"foundationLayout"},{"id":"@genesis-community/golden-layout","name":"@genesis-community/golden-layout","version":"2.9","location":"@genesis-community/golden-layout","applicationID":"foundationLayout"},{"id":"@genesislcap/foundation-utils","name":"@genesislcap/foundation-utils","version":"","location":"@genesislcap/foundation-utils","applicationID":"foundationLayout"}],"consumes":[],"modules":[{"id":"foundationLayout:index","name":"index","applicationID":"foundationLayout","requires":[],"file":"./src/index.federated.ts"}],"version":"1.0.0"}
@@ -0,0 +1,3 @@
1
+ export * from './main';
2
+ export * from './utils';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=index.federated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.federated.d.ts","sourceRoot":"","sources":["../../src/index.federated.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ export { FoundationLayoutItem } from './layout-item';
2
+ export { FoundationLayoutRegion } from './layout-region';
3
+ export { FoundationLayout, layoutStyles, layoutTemplate } from './layout-main';
4
+ export * from './layout-components';
5
+ export { DEFAULT_RELOAD_BUFFER, LayoutEmitEvents, LayoutReceiveEvents, LayoutRegionType, Placement, RegisteredElementConfig, RegistrationConfig, SerialisedLayout, } from '../utils';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/main/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/E,cAAc,qBAAqB,CAAC;AACpC,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,SAAS,EACT,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,UAAU,CAAC"}
@@ -0,0 +1,42 @@
1
+ import type { Container } from '@microsoft/fast-foundation';
2
+ /**
3
+ * Registration object to register the layout with your design system.
4
+ *
5
+ * @remarks
6
+ * Registers the three layout component types with the design system.
7
+ * You require to use the prefix of the design system with each tag.
8
+ * If you wish to alternate the styles of the layout you only need to compose your own custom
9
+ * version of {@link FoundationLayout} as this contains the styles for the entire layout.
10
+ *
11
+ * @example
12
+ * `<zero-layout></zero-layout>` if you are using the layout with the `zero` design-system.
13
+ *
14
+ * @beta
15
+ */
16
+ export declare const foundationLayoutComponents: {
17
+ foundationLayout: (overrideDefinition?: import("@microsoft/fast-foundation").OverrideFoundationElementDefinition<{
18
+ baseName: string;
19
+ styles: import("@microsoft/fast-element").ElementStyles;
20
+ template: import("@microsoft/fast-element").ViewTemplate<import("./layout-main").FoundationLayout, any>;
21
+ }>) => import("@microsoft/fast-foundation").FoundationElementRegistry<{
22
+ baseName: string;
23
+ styles: import("@microsoft/fast-element").ElementStyles;
24
+ template: import("@microsoft/fast-element").ViewTemplate<import("./layout-main").FoundationLayout, any>;
25
+ }, typeof import("./layout-main").FoundationLayout>;
26
+ foundationLayoutRegion: (overrideDefinition?: import("@microsoft/fast-foundation").OverrideFoundationElementDefinition<{
27
+ baseName: string;
28
+ template: import("@microsoft/fast-element").ViewTemplate<any, any>;
29
+ }>) => import("@microsoft/fast-foundation").FoundationElementRegistry<{
30
+ baseName: string;
31
+ template: import("@microsoft/fast-element").ViewTemplate<any, any>;
32
+ }, typeof import("./layout-region").FoundationLayoutRegion>;
33
+ foundationLayoutItem: (overrideDefinition?: import("@microsoft/fast-foundation").OverrideFoundationElementDefinition<{
34
+ baseName: string;
35
+ template: import("@microsoft/fast-element").ViewTemplate<any, any>;
36
+ }>) => import("@microsoft/fast-foundation").FoundationElementRegistry<{
37
+ baseName: string;
38
+ template: import("@microsoft/fast-element").ViewTemplate<any, any>;
39
+ }, typeof import("./layout-item").FoundationLayoutItem>;
40
+ register(container?: Container, ...rest: any[]): void;
41
+ };
42
+ //# sourceMappingURL=layout-components.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout-components.d.ts","sourceRoot":"","sources":["../../../src/main/layout-components.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAK5D;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;yBAIhB,SAAS,WAAW,GAAG,EAAE;CAa/C,CAAC"}
@@ -0,0 +1,70 @@
1
+ import { componentType, LayoutComponent, RegistrationConfig } from '../utils';
2
+ import { FoundationElement } from '@microsoft/fast-foundation';
3
+ /**
4
+ * @beta
5
+ * `FoundationLayoutItem` is a custom element that represents an item in the layout.
6
+ * @remarks
7
+ * This element is used to wrap html elements and configure their layout settings as part of the layout system.
8
+ *
9
+ * This is a simple component which is only used to define the layout splits; any JavaScript API interactions or custom styling is used via {@link FoundationLayout}.
10
+ */
11
+ export declare class FoundationLayoutItem extends FoundationElement implements LayoutComponent {
12
+ /**
13
+ * Sets the title of the item which is displayed on the tab.
14
+ * @remarks
15
+ * Defaults to `Item ` + {@link FoundationLayoutItem.registration}
16
+ * @beta
17
+ */
18
+ title: string;
19
+ /**
20
+ * Boolean attribute controls whether the window can be closed in the GUI.
21
+ * Defaults to `false`.
22
+ * @beta
23
+ */
24
+ closable: boolean;
25
+ /**
26
+ * optional string describing the size of the new item (see the written documentation for more info)
27
+ * @beta
28
+ */
29
+ size: string;
30
+ /**
31
+ * Sets the registration name for the item, which can be used later to add the item via the JavaScript API using {@link FoundationLayout.addItem()}.
32
+ * @remarks
33
+ * Items added via the JavaScript API and HTML API share the same pool of registration names.
34
+ * Using a duplicate registration name is a runtime error.
35
+ * This registration name defaults to the number of the window it is.
36
+ * It is highly recommended if you are using the JavaScript API that you set a registration name here manually.
37
+ * @beta
38
+ */
39
+ registration: string;
40
+ /** @internal */
41
+ [componentType]: "item";
42
+ /** @internal */
43
+ private slottedElements;
44
+ /** @internal */
45
+ connectedCallback(): void;
46
+ /** @internal */
47
+ private getParentLayoutComponent;
48
+ /** @internal */
49
+ requestLayoutReload(): void;
50
+ /** @internal */
51
+ cacheElementsAndRegister(config: RegistrationConfig): string;
52
+ }
53
+ /**
54
+ * The FoundationLayoutItem Composed element
55
+ *
56
+ * @internal
57
+ * @remarks
58
+ * Can be registered with the design system via {@link foundationlayoutComponents}.
59
+ * You do not need to compose your own version of this to update the styles of the layout.
60
+ *
61
+ * Tag Name: <{prefix}-layout-item>
62
+ */
63
+ export declare const foundationLayoutItem: (overrideDefinition?: import("@microsoft/fast-foundation").OverrideFoundationElementDefinition<{
64
+ baseName: string;
65
+ template: import("@microsoft/fast-element").ViewTemplate<any, any>;
66
+ }>) => import("@microsoft/fast-foundation").FoundationElementRegistry<{
67
+ baseName: string;
68
+ template: import("@microsoft/fast-element").ViewTemplate<any, any>;
69
+ }, typeof FoundationLayoutItem>;
70
+ //# sourceMappingURL=layout-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout-item.d.ts","sourceRoot":"","sources":["../../../src/main/layout-item.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,aAAa,EAEb,eAAe,EACf,kBAAkB,EAEnB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D;;;;;;;GAOG;AACH,qBAAa,oBAAqB,SAAQ,iBAAkB,YAAW,eAAe;IACpF;;;;;OAKG;IACG,KAAK,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACwB,QAAQ,EAAE,OAAO,CAAS;IAErD;;;OAGG;IACG,IAAI,EAAE,MAAM,CAAC;IAEnB;;;;;;;;OAQG;IACG,YAAY,EAAE,MAAM,CAAC;IAE3B,gBAAgB;IAChB,CAAC,aAAa,CAAC,SAAmB;IAElC,gBAAgB;IAChB,OAAO,CAAC,eAAe,CAAY;IAEnC,gBAAgB;IAChB,iBAAiB,IAAI,IAAI;IAyBzB,gBAAgB;IAChB,OAAO,CAAC,wBAAwB;IAIhC,gBAAgB;IAChB,mBAAmB,IAAI,IAAI;IAI3B,gBAAgB;IAChB,wBAAwB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM;CAG7D;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB;;;;;;+BAG/B,CAAC"}
@@ -0,0 +1,186 @@
1
+ import { FoundationElement } from '@microsoft/fast-foundation';
2
+ import { RootItemConfig } from '@genesis-community/golden-layout';
3
+ import { LayoutComponent, Placement, RegisteredElementConfig, RegistrationConfig, SerialisedLayout, componentType } from '../utils/';
4
+ export { layoutStyles } from '../styles';
5
+ /**
6
+ * @beta
7
+ * Top level web component which is used to initialise a custom layout
8
+ * @remarks
9
+ * Can be used in a composition to customise the styles of the layout.
10
+ */
11
+ export declare class FoundationLayout extends FoundationElement implements LayoutComponent {
12
+ private layout;
13
+ /** @internal */
14
+ layoutElement: HTMLElement;
15
+ private layoutConfig;
16
+ /** @internal */
17
+ [componentType]: "root";
18
+ /**
19
+ * Number describing how long to wait in ms before reloading the config when adding items
20
+ * declaratively by the html API. Default 500 (ms).
21
+ * @beta
22
+ */
23
+ reloadBuffer: number;
24
+ private reloadPending;
25
+ private registeredComponents;
26
+ /** @internal */
27
+ hasFirstLoaded: boolean;
28
+ /** @internal */
29
+ usingDeclerativeAPI: boolean;
30
+ /**
31
+ * @beta
32
+ * Set to true when the user is currently dragging the panes inside of the layout
33
+ */
34
+ dragging: boolean;
35
+ /** @internal */
36
+ constructor();
37
+ /** @internal */
38
+ connectedCallback(): void;
39
+ /** @internal */
40
+ disconnectedCallback(): void;
41
+ /** @internal */
42
+ private onDragStart;
43
+ /** @internal */
44
+ private onDragStop;
45
+ /** @internal */
46
+ private onItemAdded;
47
+ /** @internal */
48
+ private onItemRemoved;
49
+ /**
50
+ * JS API, public
51
+ */
52
+ /**
53
+ * @beta
54
+ * Gets all of the required registration function names for a set of config
55
+ * @remarks
56
+ * You can use this with {@link FoundationLayout.registeredItems | registeredItems} to work out what items you need to register with {@link FoundationLayout.registerItem | registerItem()}
57
+ * before loading the layout with {@link FoundationLayout.loadLayout | loadLayout()}
58
+ *
59
+ * @param layout - any version of {@link SerialisedLayout} object describing the layout
60
+ * @returns string[] - an item for each registered element in the config. These must all be added before {@link FoundationLayout.loadLayout | function}
61
+ * @throws - various errors if the layout parameter cannot be parsed
62
+ */
63
+ static layoutRequiredRegistrations(layout: SerialisedLayout): string[];
64
+ /**
65
+ * @beta
66
+ * Gets all of the currently registered names
67
+ * @remarks
68
+ * You can use this with {@link FoundationLayout.layoutRequiredRegistrations | layoutRequiredRegistrations} to work out what items you need to register with {@link FoundationLayout.registerItem | registerItem()}
69
+ * before loading the layout with {@link FoundationLayout.loadLayout | loadLayout()}
70
+ *
71
+ * @returns string[] - an item for each registered element currently registered with the layout system
72
+ */
73
+ registeredItems(): string[];
74
+ /**
75
+ * @beta
76
+ * Gets a minified string containing the config describing the current layout of the layout object to later restore in {@link FoundationLayout.loadLayout | function}
77
+ * @returns - latest version of {@link SerialisedLayout} describing the layout
78
+ */
79
+ getLayout(): SerialisedLayout;
80
+ /**
81
+ * @beta
82
+ * Restores a layout described in the config from {@link FoundationLayout.getLayout | getLayout()}
83
+ *
84
+ * @remarks
85
+ * In order to restore a layout you must have registered all of the required panes with the layout system before restoring it. If you are just setting the layout using the declarative API then all of the same components will be registered. <br/ >If you have added any elements using {@link FoundationLayout.registerItem} then you must ensure all of the same items have been added again. To make tracking what items are registered easier it is recommended in this case you explicitly name your registrations using the `id` parameter available on the {@link RegisteredElementConfig} and `foundation-layout-item` APIs. <br/> You can use {@link FoundationLayout.layoutRequiredRegistrations} to check which items are registered in a current layout in order to dynamically add any missing items before you can restore the layout
86
+ *
87
+ * @param layout - any version of {@link SerialisedLayout} object describing the layout
88
+ * @throws {@link LayoutUsageError} if you attempt to load a layout with registered items that are not currently registered with the layout system
89
+ * @throws various errors if the layout string is malformed and cannot be parsed
90
+ */
91
+ loadLayout(layout: SerialisedLayout): void;
92
+ /**
93
+ * @beta
94
+ * Dynamically add a new item to the layout. The user can move the new plane to whenever they want once it has been added.
95
+ * @remarks
96
+ * Adding a new item invokes the registration previously made explicitly via {@link FoundationLayout.registerItem | registerItem()} or implicitly via the html declerative API.
97
+ *
98
+ * The elements added onto the new pane are copies using `element.cloneNode()` of the original element references used during registration.
99
+ *
100
+ * @param config - {@link RegisteredElementConfig} configuration items for the new pane
101
+ * @param placement - where to add the new pane on the layout (defaults to the right hand side)
102
+ * @throws {@link LayoutRegistrationError} if you attempt to add an item before it has been registered
103
+ */
104
+ addItem(config: RegisteredElementConfig, placement?: Placement): void;
105
+ /**
106
+ * @beta
107
+ * Register a collection of `Element` and associate them with an `ID` with the layout system for later use.
108
+ * @remarks
109
+ * You would use this to register elements that you later want to load when using {@link FoundationLayout.loadLayout}.
110
+ * Use {@link FoundationLayout.layoutRequiredRegistrations} to see what components need to be registered for a certain config
111
+ * and then register them using this function before calling {@link FoundationLayout.loadLayout}.
112
+ *
113
+ * When registering an element it is moved by reference into the internals of the layout, so if you pass elements already in the DOM then they will disappear. If you want to avoid this you can pass copies using `element.cloneNode(true)`.
114
+ *
115
+ * @param registration - string of the registration ID
116
+ * @param elements - Elements[] containing the reference to the elements to register for later usage
117
+ * @throws {@link LayoutUsageError} if you attempt to add an item before the layout has been initialised.
118
+ * @throws {@link LayoutRegistrationError} if you attempt to use a `registration` name which is already in use (declarative html API and JavaScript API registrations use the same "pool" of registration names).
119
+ * @returns - string defining the name of the registered item with the layout system (config.id if set).
120
+ */
121
+ registerItem(registration: string, elements: Element[]): string;
122
+ /**
123
+ * Internal APIs
124
+ */
125
+ /**
126
+ * Request to reload the layout using the private member config. Debounced using the time set
127
+ * in this.reloadBuffer
128
+ * @internal
129
+ */
130
+ requestLayoutReload(): void;
131
+ /**
132
+ * Adds a config item into the root config and returns a link to the new config in the tree
133
+ * @typeParam T - RowOrColumnItemConfig | StackItemConfig | ComponentItemConfig;
134
+ * @param item - T to add as the root element of the layout
135
+ * @returns T the reference to the added item in the whole item config
136
+ * @throws {@link LayoutUsageError} if you try and add an item when a root has already been set (this happens if you have multiple direct children of this html element which is an incorrect usage)
137
+ * @internal
138
+ */
139
+ addItemFromChild<T extends RootItemConfig>(item: T): T;
140
+ /**
141
+ * Registers a function with golden layout to create a pane
142
+ * @param elements - Elements[] to add to new new pane
143
+ * @param id - optional string which is used to register the new function with golden layout. Defaults to sequentially setting the IDs for default items
144
+ * @returns - string which is the registered ID
145
+ * @throws - {@link LayoutRegistrationError} if the id is already in use
146
+ * @internal
147
+ */
148
+ cacheElementsAndRegister({ elements, id }: RegistrationConfig): string;
149
+ /**
150
+ * Sets up the event listeners for the layout receive events
151
+ * @internal
152
+ */
153
+ private setupLayoutReceiveEvents;
154
+ /**
155
+ * Saves the stored layout config according to the Golden Layout provider.
156
+ * Needs to be called when the layout is updated outside of using addItemFromChild.
157
+ * @internal
158
+ * */
159
+ private cacheLayout;
160
+ }
161
+ /**
162
+ * `ViewTemplate` which defines the html for {@link FoundationLayout}.
163
+ * @remarks
164
+ * Can be used in a composition to customise the styles of the layout.
165
+ * @beta
166
+ */
167
+ export declare const layoutTemplate: import("@microsoft/fast-element").ViewTemplate<FoundationLayout, any>;
168
+ /**
169
+ * The Foundation Layout Composed element
170
+ *
171
+ * @internal
172
+ * @remarks
173
+ * Can be registered with the design system via {@link foundationlayoutComponents}.
174
+ *
175
+ * Tag Name: <{prefix}-layout>
176
+ */
177
+ export declare const foundationLayout: (overrideDefinition?: import("@microsoft/fast-foundation").OverrideFoundationElementDefinition<{
178
+ baseName: string;
179
+ styles: import("@microsoft/fast-element").ElementStyles;
180
+ template: import("@microsoft/fast-element").ViewTemplate<FoundationLayout, any>;
181
+ }>) => import("@microsoft/fast-foundation").FoundationElementRegistry<{
182
+ baseName: string;
183
+ styles: import("@microsoft/fast-element").ElementStyles;
184
+ template: import("@microsoft/fast-element").ViewTemplate<FoundationLayout, any>;
185
+ }, typeof FoundationLayout>;
186
+ //# sourceMappingURL=layout-main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout-main.d.ts","sourceRoot":"","sources":["../../../src/main/layout-main.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAOL,cAAc,EACf,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAEL,eAAe,EAGf,SAAS,EACT,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EAEd,MAAM,WAAW,CAAC;AAKnB,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AASzC;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,iBAAkB,YAAW,eAAe;IAChF,OAAO,CAAC,MAAM,CAAe;IAC7B,gBAAgB;IAChB,aAAa,EAAE,WAAW,CAAC;IAC3B,OAAO,CAAC,YAAY,CAAqC;IAEzD,gBAAgB;IAChB,CAAC,aAAa,CAAC,SAAmB;IAElC;;;;OAIG;IACmC,YAAY,EAAE,MAAM,CAAyB;IACnF,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,oBAAoB,CAAK;IAEjC,gBAAgB;IACJ,cAAc,UAAS;IACnC,gBAAgB;IACJ,mBAAmB,UAAS;IAExC;;;OAGG;IACS,QAAQ,EAAE,OAAO,CAAS;IAEtC,gBAAgB;;IAShB,gBAAgB;IAChB,iBAAiB,IAAI,IAAI;IAoBzB,gBAAgB;IAChB,oBAAoB,IAAI,IAAI;IAO5B,gBAAgB;IAChB,OAAO,CAAC,WAAW;IAInB,gBAAgB;IAChB,OAAO,CAAC,UAAU;IAIlB,gBAAgB;IAChB,OAAO,CAAC,WAAW;IAInB,gBAAgB;IAChB,OAAO,CAAC,aAAa;IAIrB;;OAEG;IAEH;;;;;;;;;;OAUG;IACH,MAAM,CAAC,2BAA2B,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,EAAE;IActE;;;;;;;;OAQG;IACH,eAAe,IAAI,MAAM,EAAE;IAI3B;;;;OAIG;IACH,SAAS,IAAI,gBAAgB;IAI7B;;;;;;;;;;OAUG;IACH,UAAU,CAAC,MAAM,EAAE,gBAAgB;IAiBnC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,MAAM,EAAE,uBAAuB,EAAE,SAAS,GAAE,SAA6B;IAmDjF;;;;;;;;;;;;;;;OAeG;IACH,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM;IAW/D;;OAEG;IAEH;;;;OAIG;IACH,mBAAmB,IAAI,IAAI;IAc3B;;;;;;;OAOG;IACH,gBAAgB,CAAC,CAAC,SAAS,cAAc,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC;IAgBtD;;;;;;;OAOG;IACH,wBAAwB,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,kBAAkB,GAAG,MAAM;IA6DtE;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAehC;;;;SAIK;IACL,OAAO,CAAC,WAAW;CAGpB;AAMD;;;;;GAKG;AACH,eAAO,MAAM,cAAc,uEAK1B,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;2BAI3B,CAAC"}