Window
Windows display content over other parts of the UI. They are often opened by clicking a button, or by some other user action. Windows can be moved by dragging them around the screen. They can also be opened or minimized like an acordian. The window component can be used to show a selection of options that the user will be toggling and moving around on screen, simultaneously with using the app, like a tools pannel.
Basic Usage
<triton-window></triton-window>
<TritonWindow></TritonWindow>
<html> 
  <head> 
    <script type="module"> 
      import { defineCustomElements } from '~node_modules/@kognifai/triton-cl-core/loader/index.es2017.js'; 
      defineCustomElements(); 
    </script> 
  </head> 
  <body> 
    <triton-window></triton-window>
  </body> 
</html>
Behavior
Angular Two-Way Bindings
Use two-way binding for the
openproperty in your angular application with[(open)]="variable"
Fit to screen
By setting the fitToScreen property, the Triton Window will stay inside the screen viewport, even
when the viewport shrinks to hide it, or when it gets dragged off screen.
<triton-window open="false">  
  <header slot="header">This is the header on the window</header>
  <p>Lorem ipsum...</p>
</triton-window>
<triton-button onClick="() => (open = true)">Open a window</triton-button>
Open On Click
By setting the open property on the window, you can trigger the window to open when the user clicks a button.
Note that the header slot is used to set the header of the window.
Lorem ipsum dolor sit, amet consectetur adipisicing elit. Hic error itaque, nihil blanditiis autem nostrum laboriosam eum, id suscipit eveniet placeat dolorem! Omnis dolor, laborum voluptatem minus labore vero eveniet officiis vel perspiciatis, eius dicta. Enim, natus delectus explicabo architecto odio porro officia unde debitis earum fuga perferendis ex dolores cum alias tempora, ratione labore nostrum repellendus recusandae dolor placeat iure consequatur commodi. Dolorem itaque doloribus soluta minus architecto quisquam, cum assumenda quia totam ducimus delectus dolore molestias neque, cupiditate iusto ratione in eligendi voluptate quas beatae. Maiores sed similique, necessitatibus sint eveniet vitae nam amet iusto minima illo itaque.
<triton-window open="false">  
  <header slot="header">This is the header on the window</header>
  <p>Lorem ipsum...</p>
</triton-window>
<triton-button onClick="() => (open = true)">Open a window</triton-button>
Appearance
Custom Height/Width
Triton-Window can recive a custom height and/or width.
If a number is passed, the width will be set in px. You can also pass a CSS string,
the width property in CSS will be given as the string specifies (note that only valid CSS can be passed)
Lorem ipsum dolor sit, amet consectetur adipisicing elit. Hic error itaque, nihil blanditiis autem nostrum laboriosam eum, id suscipit eveniet placeat dolorem! Omnis dolor, laborum voluptatem minus labore vero eveniet officiis vel perspiciatis, eius dicta. Enim, natus delectus explicabo architecto odio porro officia unde debitis earum fuga perferendis ex dolores cum alias tempora, ratione labore nostrum repellendus recusandae dolor placeat iure consequatur commodi.
<triton-window height="80vh" width="300">
  <header slot="header">This is the header on the window</header>
  <p>Lorem ipsum...</p>
</triton-window>
Button Properties
The window also has two buttons, which can be configured using the window properties. Both buttons dismiss the window when clicked.
The Ok-button is used for confirmation, clicking it signifies that the user continues, agrees or accepts.
The close-button will close the window and revert any changes the user might have made while it was open.
These buttons can be customized further with the properties ok-text, ok-disabled, ok-skin and so on.
Lorem ipsum dolor sit, amet consectetur adipisicing elit. Hic error itaque, nihil blanditiis autem nostrum laboriosam eum, id suscipit eveniet placeat dolorem! Omnis dolor, laborum voluptatem minus labore vero eveniet officiis vel perspiciatis, eius dicta. Enim, natus delectus explicabo architecto odio porro officia unde debitis earum fuga perferendis ex dolores cum alias tempora, ratione labore nostrum repellendus recusandae dolor placeat iure consequatur commodi.
<triton-window ok-text="Custom Ok text" close-text="Custom Close text">
  <header slot="header">This is the header on the window</header>
  <p>Lorem ipsum...</p>
</triton-window>
Background
Windows display with a blurred background by default, however this can be configured using the overlay property.
The background should be quite visible in this case, despite the fact that a window is open. This has been achived by use of the elegant overlay property.
<triton-window overlay="false">
  <header slot="header">No background overlay window</header>
  <p>The background should...</p>
</triton-window>
Playground
API
Properties
| Property | Description | Type | Default | 
|---|---|---|---|
| close-button | If true outlined button will show in the footer | boolean | true | 
| close-disabled | If true the close-button will be disabled for user interaction,thus preventing the user from canceling the modal | boolean | false | 
| close-icon | An icon that is rendered on the close-button | Icon | - | 
| close-skin | The skin of the close-button | alarmcriticalflatinformationneutralprimarysecondarysuccesswarning | 'secondary' | 
| close-text | The text to display on the close-button that cancels the modal | string | 'Cancel' | 
| collapse | boolean | false | |
| fit-to-screen | if false the window can be plased outside the visible window | boolean | true | 
| gap | The general spacing between modal specific items in the modal | basebodylargemediumsmalltinyxlargexxlargexxxlarge | 'base' | 
| height | If a number is passed, the height will be set in px.You can also pass a CSS string, the height property in CSS will be givenas the string specifies note that only valid CSS can be passed | numberstring | - | 
| is-collapsed | collapse needs to be true for this property to work | boolean | false | 
| ok-button | If true success button will show in the footer | boolean | true | 
| ok-disabled | If true the ok-button will be disabled for user interaction,thus preventing the user from confirming the modal | boolean | false | 
| ok-icon | The icon which will be displayed on the ok-button which confirms the modal | Icon | - | 
| ok-skin | The skin of the ok-button | alarmcriticalflatinformationneutralprimarysecondarysuccesswarning | 'primary' | 
| ok-text | The text which displays on the ok-button | string | 'OK' | 
| open | If true the window is open, and visible on screenSetting this to false will trigger the close event | boolean | false | 
| width | If a number is passed, the width will be set in px.You can also pass a CSS string, the width property in CSS will be givenas the string specifies note that only valid CSS can be passed | numberstring | - | 
| title | The title which renders at the top of the modal | string | - | 
| z-index | The CSS z-index at which the modal renders | number | 1000 | 
Events
| Name | Type | Description | Extra | 
|---|---|---|---|
| afterClose | CustomEvent<void> | Emitted after window has closed | - | 
| afterOpen | CustomEvent<void> | Emitted after window has opened | - | 
| atChange | CustomEvent<boolean> | Emit the state of the open prop, on change | - | 
| atClick | CustomEvent<void> | The default click behavior of the button | - | 
Slots
Main
Takes any dom element and render it inside the window
<triton-window>
  <div></div>
</triton-window>
footer
Items will be placed in the footer. Any element is acceptable, but we recommend using triton buttons
<triton-window>
  <div slot="footer"></div>
</triton-window>
header
Any element. We recommend using typical header elements.
<triton-window>
  <div slot="header"></div>
</triton-window>