fix(core): update
This commit is contained in:
		| @@ -15,7 +15,7 @@ | ||||
|   "author": "Lossless GmbH", | ||||
|   "license": "MIT", | ||||
|   "dependencies": { | ||||
|     "@design.estate/dees-domtools": "^2.0.55", | ||||
|     "@design.estate/dees-domtools": "^2.0.57", | ||||
|     "@design.estate/dees-element": "^2.0.33", | ||||
|     "@design.estate/dees-wcctools": "^1.0.87", | ||||
|     "@fortawesome/fontawesome-svg-core": "^6.5.1", | ||||
| @@ -33,7 +33,7 @@ | ||||
|   "devDependencies": { | ||||
|     "@git.zone/tsbuild": "^2.1.72", | ||||
|     "@git.zone/tsbundle": "^2.0.15", | ||||
|     "@git.zone/tstest": "^1.0.77", | ||||
|     "@git.zone/tstest": "^1.0.86", | ||||
|     "@git.zone/tswatch": "^2.0.21", | ||||
|     "@push.rocks/projectinfo": "^5.0.2", | ||||
|     "@push.rocks/tapbundle": "^5.0.15", | ||||
|   | ||||
							
								
								
									
										1050
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										1050
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -3,6 +3,6 @@ | ||||
|  */ | ||||
| export const commitinfo = { | ||||
|   name: '@design.estate/dees-catalog', | ||||
|   version: '1.0.246', | ||||
|   version: '1.0.247', | ||||
|   description: 'website for lossless.com' | ||||
| } | ||||
|   | ||||
| @@ -159,7 +159,7 @@ export class DeesContextmenu extends DeesElement { | ||||
|               this.destroy(); | ||||
|             }}> | ||||
|               <dees-icon .iconFA=${'xmark'}></dees-icon | ||||
|               >Deactivate Contextmenu globally. | ||||
|               >allow native context | ||||
|             </div> | ||||
|         ` : html``} | ||||
|       </div> | ||||
|   | ||||
| @@ -1,39 +1,49 @@ | ||||
| import { html } from '@design.estate/dees-element'; | ||||
| import { html, cssManager } from '@design.estate/dees-element'; | ||||
| import * as tsclass from '@tsclass/tsclass'; | ||||
|  | ||||
| export const demoFunc = () => html`<dees-dataview-statusobject | ||||
|   .statusObject=${{ | ||||
|     id: '1', | ||||
|     name: 'Demo Item', | ||||
|     combinedStatus: 'partly_ok', | ||||
|     combinedStatusText: 'partly_ok', | ||||
|     details: [ | ||||
|       { | ||||
|         name: 'Detail 1', | ||||
|         value: 'Value 1', | ||||
|         status: 'ok', | ||||
|         statusText: 'OK', | ||||
|       }, | ||||
|       { | ||||
|         name: 'Detail 2', | ||||
|         value: 'Value 2', | ||||
|         status: 'partly_ok', | ||||
|         statusText: 'partly_ok', | ||||
|       }, | ||||
|       { | ||||
|         name: 'Detail 3', | ||||
|         value: 'Value 3', | ||||
|         status: 'not_ok', | ||||
|         statusText: 'not_ok', | ||||
|       }, | ||||
|       { | ||||
|         name: 'Detail 4', | ||||
|         value: | ||||
|           'Value 4 jhdkfjhalskdfjhfdjskalsdkfjhfdjskalskdjfhjdkslaksjdhfjdkslaskdfjhfjdkslaskdjfhjdskalskdjhfdjskalskdjfhdjskl', | ||||
|         status: 'ok', | ||||
|         statusText: 'OK', | ||||
|       }, | ||||
|     ], | ||||
|   } as tsclass.code.IStatusObject} | ||||
| > | ||||
| </dees-dataview-statusobject>`; | ||||
| export const demoFunc = () => html` <style> | ||||
|     .demo { | ||||
|       background: ${cssManager.bdTheme('#eeeeeb', '#000000')}; | ||||
|       display: block; | ||||
|       content: ''; | ||||
|       padding: 40px; | ||||
|     } | ||||
|   </style> | ||||
|   <div class="demo"> | ||||
|     <dees-dataview-statusobject | ||||
|       .statusObject=${{ | ||||
|         id: '1', | ||||
|         name: 'Demo Item', | ||||
|         combinedStatus: 'partly_ok', | ||||
|         combinedStatusText: 'partly_ok', | ||||
|         details: [ | ||||
|           { | ||||
|             name: 'Detail 1', | ||||
|             value: 'Value 1', | ||||
|             status: 'ok', | ||||
|             statusText: 'OK', | ||||
|           }, | ||||
|           { | ||||
|             name: 'Detail 2', | ||||
|             value: 'Value 2', | ||||
|             status: 'partly_ok', | ||||
|             statusText: 'partly_ok', | ||||
|           }, | ||||
|           { | ||||
|             name: 'Detail 3', | ||||
|             value: 'Value 3', | ||||
|             status: 'not_ok', | ||||
|             statusText: 'not_ok', | ||||
|           }, | ||||
|           { | ||||
|             name: 'Detail 4', | ||||
|             value: | ||||
|               'Value 4 jhdkfjhalskdfjhfdjskalsdkfjhfdjskalskdjfhjdkslaksjdhfjdkslaskdfjhfjdkslaskdjfhjdskalskdjhfdjskalskdjfhdjskl', | ||||
|             status: 'ok', | ||||
|             statusText: 'OK', | ||||
|           }, | ||||
|         ], | ||||
|       } as tsclass.code.IStatusObject} | ||||
|     > | ||||
|     </dees-dataview-statusobject> | ||||
|   </div>`; | ||||
|   | ||||
| @@ -37,6 +37,7 @@ export class DeesDataviewStatusobject extends DeesElement { | ||||
|         box-shadow: 0px 1px 3px #00000030; | ||||
|         min-height: 48px; | ||||
|         color: ${cssManager.bdTheme('#000', '#fff')}; | ||||
|         border-top: ${cssManager.bdTheme('none', '1px solid #ffffff10')}; | ||||
|         cursor: default; | ||||
|       } | ||||
|  | ||||
| @@ -68,12 +69,12 @@ export class DeesDataviewStatusobject extends DeesElement { | ||||
|         font-size: 10px; | ||||
|         font-weight: 600; | ||||
|         text-transform: uppercase; | ||||
|         border: 1px solid ${cssManager.bdTheme('#999', '#444')}; | ||||
|         border: 1px solid ${cssManager.bdTheme('#e0e0e0', '#444')}; | ||||
|         text-align: center; | ||||
|         padding: 4px; | ||||
|         border-radius: 3px; | ||||
|         margin-right: 16px; | ||||
|         color: #ffffff80; | ||||
|         color: ${cssManager.bdTheme('#333', '#ffffff80')}; | ||||
|         user-select: none; | ||||
|       } | ||||
|  | ||||
| @@ -106,7 +107,7 @@ export class DeesDataviewStatusobject extends DeesElement { | ||||
|         align-items: center; | ||||
|         display: grid; | ||||
|         grid-template-columns: 40px auto; | ||||
|         border-top: 1px dotted ${cssManager.bdTheme('#999', '#282828')}; | ||||
|         border-top: 1px dotted ${cssManager.bdTheme('#e0e0e0', '#282828')}; | ||||
|         transition: all 0.2s; | ||||
|       } | ||||
|  | ||||
| @@ -114,6 +115,10 @@ export class DeesDataviewStatusobject extends DeesElement { | ||||
|         background: #ffffff05; | ||||
|       } | ||||
|  | ||||
|       .detail:active { | ||||
|         background: #ffffff10; | ||||
|       } | ||||
|  | ||||
|       .detail .detailsText { | ||||
|         padding-top: 8px; | ||||
|         padding-bottom: 8px; | ||||
|   | ||||
| @@ -1,13 +1,14 @@ | ||||
| import { html, domtools } from '@design.estate/dees-element'; | ||||
| import { html, domtools, cssManager } from '@design.estate/dees-element'; | ||||
| import type { DeesForm } from './dees-form.js'; | ||||
|  | ||||
| export const demoFunc = () => html` | ||||
|   <style> | ||||
|     .demoContainer { | ||||
|       max-width: 400px; | ||||
|       margin: auto; | ||||
|       margin: 24px auto; | ||||
|       padding: 16px; | ||||
|       background: #111; | ||||
|       background: ${cssManager.bdTheme('#eeeeeb', '#111')}; | ||||
|       box-shadow: 0px 1px 3px #00000030; | ||||
|     } | ||||
|   </style> | ||||
|   <div class="demoContainer"> | ||||
| @@ -38,7 +39,9 @@ export const demoFunc = () => html` | ||||
|       <dees-input-typelist | ||||
|         .label=${'a type list'} | ||||
|       ></dees-input-typelist> | ||||
|       <dees-input-text .required="${true}" key="hello1" label="a text"></dees-input-text> | ||||
|       <dees-input-text .required="${true}" key="hello1" label="a text" .description=${` | ||||
|         This is an awesome description. | ||||
|       `}></dees-input-text> | ||||
|       <dees-input-text .required="${true}" key="hello2" label="also a text"></dees-input-text> | ||||
|       <dees-input-text | ||||
|         .required="${true}" | ||||
|   | ||||
| @@ -89,7 +89,7 @@ export class DeesInputDropdown extends DeesElement { | ||||
|  | ||||
|       .label { | ||||
|         font-size: 14px; | ||||
|         margin-bottom: 4px; | ||||
|         margin-bottom: 8px; | ||||
|       } | ||||
|  | ||||
|       .selectedBox { | ||||
| @@ -102,9 +102,11 @@ export class DeesInputDropdown extends DeesElement { | ||||
|         background: ${cssManager.bdTheme('#fafafa', '#222222')}; | ||||
|         box-shadow: ${cssManager.bdTheme('0px 1px 4px rgba(0,0,0,0.3)', 'none')}; | ||||
|         border-radius: 3px; | ||||
|         border-top: ${cssManager.bdTheme('1px solid #CCC', '1px solid #444')}; | ||||
|         border-bottom: ${cssManager.bdTheme('1px solid #CCC', '1px solid #333')}; | ||||
|         border-top: ${cssManager.bdTheme('1px solid #CCC', '1px solid #ffffff10')}; | ||||
|         border-bottom: ${cssManager.bdTheme('1px solid #CCC', '1px solid #222')}; | ||||
|         transition: all 0.2s ease; | ||||
|         font-size: 16px; | ||||
|         color: ${cssManager.bdTheme('#222', '#ccc')}; | ||||
|       } | ||||
|  | ||||
|       .selectedBox:hover { | ||||
| @@ -132,6 +134,8 @@ export class DeesInputDropdown extends DeesElement { | ||||
|         padding: 4px 8px; | ||||
|         position: absolute; | ||||
|         user-select: none; | ||||
|         margin: 3px 0px 0px 0px; | ||||
|         border-top: ${cssManager.bdTheme('1px solid #CCC', '1px solid #ffffff10')}; | ||||
|       } | ||||
|       .selectionBox.top { | ||||
|         transform: translate(0px, 4px); | ||||
|   | ||||
| @@ -61,7 +61,7 @@ export class DeesInputMultitoggle extends DeesElement { | ||||
|         display: flex; | ||||
|         flex-direction: row; | ||||
|         flex-wrap: nowrap; | ||||
|         background: #333; | ||||
|         background: ${cssManager.bdTheme('#fff', '#222')}; | ||||
|         width: min-content; | ||||
|         border-radius: 20px; | ||||
|         height: 32px; | ||||
|   | ||||
| @@ -1,3 +1,5 @@ | ||||
| import * as colors from './00colors.js'; | ||||
|  | ||||
| import { | ||||
|   customElement, | ||||
|   DeesElement, | ||||
| @@ -31,6 +33,11 @@ export class DeesInputText extends DeesElement { | ||||
|   }) | ||||
|   public label: string; | ||||
|  | ||||
|   @property({ | ||||
|     type: String, | ||||
|   }) | ||||
|   public description: string; | ||||
|  | ||||
|   @property({ | ||||
|     type: String, | ||||
|     reflect: true, | ||||
| @@ -98,11 +105,6 @@ export class DeesInputText extends DeesElement { | ||||
|         color: ${cssManager.bdTheme('#333', '#ccc')}; | ||||
|       } | ||||
|  | ||||
|       .label { | ||||
|         font-size: 14px; | ||||
|         margin-bottom: 8px; | ||||
|       } | ||||
|  | ||||
|       input { | ||||
|         margin-top: 0px; | ||||
|         background: ${cssManager.bdTheme('#fafafa', '#222')}; | ||||
| @@ -132,7 +134,7 @@ export class DeesInputText extends DeesElement { | ||||
|  | ||||
|       input:focus { | ||||
|         outline: none; | ||||
|         border-bottom: 1px solid #e4002b; | ||||
|         border-bottom: 1px solid ${cssManager.bdTheme( colors.bright.blueActive, colors.dark.blueActive)}; | ||||
|         cursor: text; | ||||
|       } | ||||
|  | ||||
| @@ -192,7 +194,7 @@ export class DeesInputText extends DeesElement { | ||||
|         `} | ||||
|       </style> | ||||
|       <div class="maincontainer"> | ||||
|         ${this.label ? html`<div class="label">${this.label}</div>` : html``} | ||||
|         <dees-label .label=${this.label} .description=${this.description}></dees-label> | ||||
|         <input | ||||
|           type="${this.isPasswordBool && !this.showPasswordBool ? 'password' : 'text'}" | ||||
|           .value=${this.value} | ||||
|   | ||||
							
								
								
									
										7
									
								
								ts_web/elements/dees-label.demo.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								ts_web/elements/dees-label.demo.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| import { html, cssManager } from '@design.estate/dees-element'; | ||||
|  | ||||
| export const demoFunc = () => { | ||||
|   return html` | ||||
|     <dees-label .label=${'a label'}></dees-label> | ||||
|   `; | ||||
| } | ||||
							
								
								
									
										70
									
								
								ts_web/elements/dees-label.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								ts_web/elements/dees-label.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,70 @@ | ||||
| import * as plugins from './00plugins.js'; | ||||
| import * as colors from './00colors.js'; | ||||
|  | ||||
| import { | ||||
|   customElement, | ||||
|   html, | ||||
|   css, | ||||
|   cssManager, | ||||
|   DeesElement, | ||||
|   property, | ||||
|   unsafeCSS, | ||||
|   query, | ||||
| } from '@design.estate/dees-element'; | ||||
|  | ||||
| import { demoFunc } from './dees-label.demo.js'; | ||||
|  | ||||
| @customElement('dees-label') | ||||
| export class DeesLabel extends DeesElement { | ||||
|   public static demo = demoFunc; | ||||
|  | ||||
|   // INSTANCE | ||||
|  | ||||
|   @property({ | ||||
|     type: String, | ||||
|     reflect: true, | ||||
|   }) | ||||
|   public label = ''; | ||||
|  | ||||
|   @property({ | ||||
|     type: String, | ||||
|     reflect: true, | ||||
|   }) | ||||
|   public description: string; | ||||
|  | ||||
|   public static styles = [ | ||||
|     cssManager.defaultStyles, | ||||
|     css` | ||||
|       .label { | ||||
|         color: ${cssManager.bdTheme('#333', '#ccc')}; | ||||
|         font-size: 14px; | ||||
|         margin-bottom: 8px; | ||||
|         cursor: default; | ||||
|         user-select: none; | ||||
|       } | ||||
|       dees-icon { | ||||
|         display: inline-block; | ||||
|         font-size: 14px; | ||||
|         transform: translateY(1.5px); | ||||
|       } | ||||
|     `, | ||||
|   ]; | ||||
|  | ||||
|   public render() { | ||||
|     return html` | ||||
|       ${this.label | ||||
|         ? html` | ||||
|             <div class="label"> | ||||
|               ${this.label} | ||||
|               ${this.description | ||||
|                 ? html` | ||||
|                     <dees-icon .iconFA=${'circleInfo'}></dees-icon> | ||||
|                     <dees-speechbubble .text=${this.description}></dees-speechbubble> | ||||
|                   ` | ||||
|                 : html``} | ||||
|             </div> | ||||
|           ` | ||||
|         : html``} | ||||
|     `; | ||||
|   } | ||||
| } | ||||
							
								
								
									
										23
									
								
								ts_web/elements/dees-speechbubble.demo.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								ts_web/elements/dees-speechbubble.demo.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| import { html, cssManager } from '@design.estate/dees-element'; | ||||
|  | ||||
| export const demoFunc = () => { | ||||
|   return html` | ||||
|     <style> | ||||
|       .ref1 { | ||||
|         margin: 20px; | ||||
|         width: 10px; | ||||
|         height: 10px; | ||||
|         background-color: red; | ||||
|       } | ||||
|     </style> | ||||
|     <div class="ref1"></div> | ||||
|     <dees-speechbubble .text=${` | ||||
|       **This is a longer markdown text that  can be used the write**   | ||||
|       a longer description about whats going on the app   | ||||
|    | ||||
|       **This is a subheader** | ||||
|       and another text | ||||
|      | ||||
|     `}></dees-speechbubble> | ||||
|   `; | ||||
| }; | ||||
| @@ -1,3 +1,7 @@ | ||||
| import * as colors from './00colors.js'; | ||||
| import * as plugins from './00plugins.js'; | ||||
|  | ||||
| import { demoFunc } from './dees-speechbubble.demo.js'; | ||||
| import { | ||||
|   customElement, | ||||
|   html, | ||||
| @@ -8,9 +12,11 @@ import { | ||||
|   css, | ||||
|   type CSSResult, | ||||
|   unsafeCSS, | ||||
|   domtools, | ||||
|   directives, | ||||
|   unsafeHTML, | ||||
| } from '@design.estate/dees-element'; | ||||
|  | ||||
| import * as domtools from '@design.estate/dees-domtools'; | ||||
| import { DeesWindowLayer } from './dees-windowlayer.js'; | ||||
|  | ||||
| declare global { | ||||
|   interface HTMLElementTagNameMap { | ||||
| @@ -20,26 +26,53 @@ declare global { | ||||
|  | ||||
| @customElement('dees-speechbubble') | ||||
| export class DeesSpeechbubble extends DeesElement { | ||||
|   public static demo = () => html` <dees-speechbubble></dees-speechbubble> `; | ||||
|   public static demo = demoFunc; | ||||
|  | ||||
|   @property() | ||||
|   // STATIC | ||||
|   public static async createAndShow(refElement: HTMLElement, textArg: string) { | ||||
|     const windowLayer = await DeesWindowLayer.createAndShow({ | ||||
|       blur: false, | ||||
|     }); | ||||
|     const speechbubble = document.createElement('dees-speechbubble'); | ||||
|     speechbubble.windowLayer = windowLayer; | ||||
|     speechbubble.reffedElement = refElement; | ||||
|     speechbubble.text = textArg; | ||||
|     speechbubble.manifested = true; | ||||
|     windowLayer.appendChild(speechbubble); | ||||
|     windowLayer.style.pointerEvents = 'none'; | ||||
|     (windowLayer.shadowRoot.querySelector('.windowOverlay') as HTMLElement).style.pointerEvents = 'none'; | ||||
|     return speechbubble; | ||||
|   } | ||||
|  | ||||
|   // INSTANCE | ||||
|   @property({ | ||||
|     type: Object, | ||||
|   }) | ||||
|   reffedElement: HTMLElement; | ||||
|  | ||||
|   @property({ | ||||
|     type: String, | ||||
|     reflect: true, | ||||
|   }) | ||||
|   public text: string; | ||||
|  | ||||
|   @property({ | ||||
|     type: Boolean, | ||||
|   }) | ||||
|   public disabled = false; | ||||
|   public wave: boolean = false; | ||||
|  | ||||
|   @property({ | ||||
|     type: Boolean, | ||||
|   }) | ||||
|   public isHidden = false; | ||||
|   public manifested = false; | ||||
|  | ||||
|   @property({ | ||||
|     type: String, | ||||
|   }) | ||||
|   public status: 'normal' | 'pending' | 'success' | 'error' = 'normal'; | ||||
|  | ||||
|   public windowLayer: DeesWindowLayer; | ||||
|  | ||||
|   constructor() { | ||||
|     super(); | ||||
|   } | ||||
| @@ -48,27 +81,22 @@ export class DeesSpeechbubble extends DeesElement { | ||||
|     cssManager.defaultStyles, | ||||
|     css` | ||||
|       :host { | ||||
|         position: relative; | ||||
|         display: block; | ||||
|         box-sizing: border-box; | ||||
|         color: ${cssManager.bdTheme('#333', '#fff')}; | ||||
|         user-select: none; | ||||
|       } | ||||
|       :host([hidden]) { | ||||
|         display: none; | ||||
|       } | ||||
|  | ||||
|       .maincontainer { | ||||
|         position: relative; | ||||
|         will-change: transform; | ||||
|         transition: transform 0.2s; | ||||
|         transform: translateX(0px); | ||||
|         position: relative; | ||||
|         transition: all 0.2s; | ||||
|         margin-left: 0px; | ||||
|       } | ||||
|  | ||||
|       .maincontainer:hover { | ||||
|         transform: translateX(3px); | ||||
|         filter: drop-shadow(0px 0px 2px rgba(0, 0, 0, 0.2)); | ||||
|         pointer-events: none; | ||||
|         opacity: 0; | ||||
|         transition: all 0.2s; | ||||
|       } | ||||
|  | ||||
|       .arrow { | ||||
| @@ -77,17 +105,17 @@ export class DeesSpeechbubble extends DeesElement { | ||||
|         background: ${cssManager.bdTheme('#fff', '#333')}; | ||||
|         height: 15px; | ||||
|         width: 15px; | ||||
|         left: 4px; | ||||
|         top: 5px; | ||||
|         border-radius: 2px; | ||||
|         left: 2px; | ||||
|         top: 12px; | ||||
|         border-radius: 3px; | ||||
|       } | ||||
|  | ||||
|       .speechbubble { | ||||
|         background: ${cssManager.bdTheme('#fff', '#333')}; | ||||
|         padding: 0px 10px; | ||||
|         padding: 0px 16px; | ||||
|         border-radius: 3px; | ||||
|         position: absolute; | ||||
|         line-height: 25px; | ||||
|         min-width: 240px; | ||||
|         font-size: 12px; | ||||
|         top: 0px; | ||||
|         left: 8px; | ||||
| @@ -132,25 +160,70 @@ export class DeesSpeechbubble extends DeesElement { | ||||
|  | ||||
|   public render(): TemplateResult { | ||||
|     return html` | ||||
|       <div class="maincontainer" @click=${this.handleClick}> | ||||
|         <div class="arrow"></div> | ||||
|         <div class="speechbubble"><span class="wave">👋</span> We build with launch.sh, and you can too.</div> | ||||
|       </div> | ||||
|       ${this.manifested | ||||
|         ? html` | ||||
|             <div class="maincontainer" @click=${this.handleClick}> | ||||
|               <div class="arrow"></div> | ||||
|               <div class="speechbubble"> | ||||
|                 ${this.wave ? html`<span class="wave">👋</span>` : html``} | ||||
|                 ${directives.resolve(this.getHtml())} | ||||
|               </div> | ||||
|             </div> | ||||
|           ` | ||||
|         : html``} | ||||
|     `; | ||||
|   } | ||||
|  | ||||
|   public async handleClick() { | ||||
|     if (this.disabled) { | ||||
|       return; | ||||
|     } | ||||
|  | ||||
|     globalThis.location.href = "https://launch.sh" | ||||
|     console.log('speechbubble got clicked.'); | ||||
|   } | ||||
|  | ||||
|   public async firstUpdated() { | ||||
|     if (!this.textContent) { | ||||
|       this.textContent = 'Button'; | ||||
|       this.performUpdate(); | ||||
|     // lets make sure we have a ref | ||||
|     if (!this.reffedElement) { | ||||
|       this.reffedElement = this.previousElementSibling as HTMLElement; | ||||
|     } | ||||
|     if (this.manifested) { | ||||
|       await this.updatePosition(); | ||||
|       (this.shadowRoot.querySelector('.maincontainer') as HTMLElement).style.opacity = '1'; | ||||
|     } else { | ||||
|       // lets make sure we instrument it | ||||
|       let speechbubble: DeesSpeechbubble; | ||||
|       this.reffedElement.addEventListener('mouseenter', async () => { | ||||
|         speechbubble = await DeesSpeechbubble.createAndShow(this.reffedElement, this.text); | ||||
|       }); | ||||
|       this.reffedElement.addEventListener('mouseleave', () => { | ||||
|         speechbubble.destroy(); | ||||
|       }); | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   public async updatePosition() { | ||||
|     const refElement = this.reffedElement; | ||||
|     const boundingClientRect = refElement.getBoundingClientRect(); | ||||
|     this.style.position = 'fixed'; | ||||
|     this.style.top = `${boundingClientRect.top - 13}px`; | ||||
|     this.style.left = `${boundingClientRect.left + refElement.clientWidth + 4}px`; | ||||
|     if (boundingClientRect.right > 250) { | ||||
|       this.style.width = `250px`; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   public async getHtml(): Promise<any> { | ||||
|     if (!this.text) { | ||||
|       return ''; | ||||
|     } | ||||
|     const normalized = domtools.plugins.smartstring.normalize.standard(this.text); | ||||
|     const result = await domtools.plugins.smartmarkdown.SmartMarkdown.easyMarkdownToHtml( | ||||
|       normalized | ||||
|     ); | ||||
|     return unsafeHTML(result); | ||||
|   } | ||||
|  | ||||
|   public async show() {} | ||||
|  | ||||
|   public async destroy() { | ||||
|     (this.shadowRoot.querySelector('.maincontainer') as HTMLElement).style.opacity = '0'; | ||||
|     this.windowLayer.destroy(); | ||||
|   } | ||||
| } | ||||
|   | ||||
| @@ -218,6 +218,12 @@ export class DeesTable<T> extends DeesElement { | ||||
|         margin-right: 8px; | ||||
|       } | ||||
|  | ||||
|       .searchGrid { | ||||
|         display: grid; | ||||
|         grid-gap: 16px; | ||||
|         grid-template-columns: 1fr 200px; | ||||
|       } | ||||
|  | ||||
|       table, | ||||
|       .noDataSet { | ||||
|         margin-top: 16px; | ||||
| @@ -237,7 +243,6 @@ export class DeesTable<T> extends DeesElement { | ||||
|         text-align: left; | ||||
|       } | ||||
|       tr:hover { | ||||
|          | ||||
|       } | ||||
|       tr:hover td { | ||||
|         background: ${cssManager.bdTheme('#22222210', '#ffffff10')}; | ||||
| @@ -369,7 +374,6 @@ export class DeesTable<T> extends DeesElement { | ||||
|       } | ||||
|  | ||||
|       .footerActions .footerAction:hover dees-icon { | ||||
|          | ||||
|       } | ||||
|     `, | ||||
|   ]; | ||||
| @@ -410,8 +414,13 @@ export class DeesTable<T> extends DeesElement { | ||||
|           </div> | ||||
|         </div> | ||||
|         <div class="headingSeparation"></div> | ||||
|  | ||||
|         <dees-input-text></dees-input-text> | ||||
|         <div class="searchGrid"> | ||||
|           <dees-input-text .label=${'lucene syntax search'}></dees-input-text> | ||||
|           <dees-input-multitoggle | ||||
|             .label=${'search mode'} | ||||
|             .options=${['table', 'data', 'server']} | ||||
|           ></dees-input-multitoggle> | ||||
|         </div> | ||||
|  | ||||
|         <!-- the actual table --> | ||||
|         <style></style> | ||||
|   | ||||
| @@ -18,6 +18,7 @@ export * from './dees-progressbar.js'; | ||||
| export * from './dees-input-quantityselector.js'; | ||||
| export * from './dees-input-radio.js'; | ||||
| export * from './dees-input-text.js'; | ||||
| export * from './dees-label.js'; | ||||
| export * from './dees-mobilenavigation.js'; | ||||
| export * from './dees-modal.js'; | ||||
| export * from './dees-input-multitoggle.js'; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user