@openremote/or-components 1.2.0-snapshot.20240512154942

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.
package/README.md ADDED
@@ -0,0 +1,31 @@
1
+ # @openremote/or-components
2
+ [![NPM Version][npm-image]][npm-url]
3
+ [![Linux Build][travis-image]][travis-url]
4
+ [![Test Coverage][coveralls-image]][coveralls-url]
5
+
6
+ Contains basic UI components
7
+
8
+ ## Install
9
+ ```bash
10
+ npm i @openremote/or-components
11
+ yarn add @openremote/or-components
12
+ ```
13
+
14
+ ## Usage
15
+ For a full list of properties, methods and options refer to the TypeDoc generated [documentation]().
16
+
17
+
18
+ ## Supported Browsers
19
+ The last 2 versions of all modern browsers are supported, including Chrome, Safari, Opera, Firefox, Edge. In addition,
20
+ Internet Explorer 11 is also supported.
21
+
22
+
23
+ ## License
24
+ [GNU AGPL](https://www.gnu.org/licenses/agpl-3.0.en.html)
25
+
26
+ [npm-image]: https://img.shields.io/npm/v/live-xxx.svg
27
+ [npm-url]: https://npmjs.org/package/@openremote/or-components
28
+ [travis-image]: https://img.shields.io/travis/live-js/live-xxx/master.svg
29
+ [travis-url]: https://travis-ci.org/live-js/live-xxx
30
+ [coveralls-image]: https://img.shields.io/coveralls/live-js/live-xxx/master.svg
31
+ [coveralls-url]: https://coveralls.io/r/live-js/live-xxx?branch=master
@@ -0,0 +1,44 @@
1
+ /// <reference types="ace-builds/ace-modules" />
2
+ import { LitElement, PropertyValues, TemplateResult } from "lit";
3
+ import { Ace } from "ace-builds";
4
+ import "ace-builds/src-noconflict/mode-javascript";
5
+ import "ace-builds/src-noconflict/mode-json";
6
+ import "ace-builds/src-noconflict/mode-groovy";
7
+ import "ace-builds/webpack-resolver";
8
+ export declare class OrAceEditorChangedEvent extends CustomEvent<{
9
+ value: string;
10
+ valid: boolean;
11
+ }> {
12
+ static readonly NAME = "or-ace-editor-changed";
13
+ constructor(value: string, valid: boolean);
14
+ }
15
+ export declare class OrAceEditorEditEvent extends CustomEvent<void> {
16
+ static readonly NAME = "or-ace-editor-edit";
17
+ constructor();
18
+ }
19
+ declare global {
20
+ export interface HTMLElementEventMap {
21
+ [OrAceEditorChangedEvent.NAME]: OrAceEditorChangedEvent;
22
+ [OrAceEditorEditEvent.NAME]: OrAceEditorEditEvent;
23
+ }
24
+ }
25
+ export declare class OrAceEditor extends LitElement {
26
+ static get styles(): import("lit").CSSResult;
27
+ readonly?: boolean;
28
+ value?: any;
29
+ mode: string;
30
+ protected _aceElem?: HTMLElement;
31
+ protected _aceEditor?: Ace.Editor;
32
+ protected _lastValue: string;
33
+ protected _editing: boolean;
34
+ protected _changeTimer?: number;
35
+ disconnectedCallback(): void;
36
+ updated(_changedProperties: PropertyValues): void;
37
+ render(): TemplateResult | void;
38
+ protected destroyEditor(): void;
39
+ protected initEditor(): void;
40
+ protected _onEditorEdit(): void;
41
+ protected _onEditorChange(): void;
42
+ getValue(): string | undefined;
43
+ validate(): boolean;
44
+ }
@@ -0,0 +1,25 @@
1
+ var __decorate=this&&this.__decorate||function(t,e,i,o){var r,d=arguments.length,s=d<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,i):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,i,o);else for(var a=t.length-1;a>=0;a--)(r=t[a])&&(s=(d<3?r(s):d>3?r(e,i,s):r(e,i))||s);return d>3&&s&&Object.defineProperty(e,i,s),s};import{css,html,LitElement}from"lit";import{customElement,property,query}from"lit/decorators.js";import ace from"ace-builds";import"ace-builds/src-noconflict/mode-javascript";import"ace-builds/src-noconflict/mode-json";import"ace-builds/src-noconflict/mode-groovy";import"ace-builds/webpack-resolver";export class OrAceEditorChangedEvent extends CustomEvent{constructor(t,e){super(OrAceEditorChangedEvent.NAME,{bubbles:!0,composed:!0,detail:{value:t,valid:e}})}}OrAceEditorChangedEvent.NAME="or-ace-editor-changed";export class OrAceEditorEditEvent extends CustomEvent{constructor(){super(OrAceEditorEditEvent.NAME,{bubbles:!0,composed:!0})}}OrAceEditorEditEvent.NAME="or-ace-editor-edit";let OrAceEditor=class extends LitElement{constructor(){super(...arguments),this.mode="ace/mode/json",this._lastValue="",this._editing=!1}static get styles(){return css`
2
+ :host {
3
+ display: block;
4
+ width: 100%;
5
+ height: 100%;
6
+ }
7
+
8
+ #ace-editor {
9
+ position: relative;
10
+ height: 100%;
11
+ width: 100%;
12
+ }
13
+
14
+ @media screen and (max-width: 1400px) {
15
+ :host > * {
16
+ flex-grow: 0;
17
+ }
18
+
19
+ :host {
20
+ flex-direction: column;
21
+ }
22
+ }
23
+ `}disconnectedCallback(){this.destroyEditor(),super.disconnectedCallback()}updated(t){super.updated(t),t.has("mode")&&(this.destroyEditor(),this.initEditor()),t.has("value")&&this._aceEditor&&(this._lastValue=void 0!==this.value?"string"==typeof this.value?this.value:JSON.stringify(this.value,null,2):"",this._aceEditor.setValue(this._lastValue))}render(){return html`
24
+ <div id="ace-editor"></div>
25
+ `}destroyEditor(){this._aceEditor&&(this._aceEditor.destroy(),this._aceEditor=void 0)}initEditor(){this._aceElem&&(this._aceEditor=ace.edit(this._aceElem,{mode:this.mode,value:this._lastValue,useSoftTabs:!0,tabSize:2,readOnly:this.readonly,showPrintMargin:!1}),this._aceEditor.renderer.attachToShadowRoot(),this._aceEditor.getSession().on("changeAnnotation",(()=>this._onEditorChange())),this._aceEditor.on("change",(()=>this._onEditorEdit())))}_onEditorEdit(){this._editing||(this.dispatchEvent(new OrAceEditorEditEvent),this._editing=!0),this._changeTimer&&window.clearTimeout(this._changeTimer),this._changeTimer=window.setTimeout((()=>{this._changeTimer=void 0,this._editing&&this._onEditorChange()}),600)}_onEditorChange(){this._editing=!1;const t=this.getValue()||"";if(this._lastValue!==t){this._lastValue=t;const e=this.validate();this.dispatchEvent(new OrAceEditorChangedEvent(t,e))}}getValue(){if(this._aceEditor)return this._aceEditor.getValue()}validate(){if(!this._aceEditor)return!1;const t=this._aceEditor.getSession().getAnnotations();return!t||0===t.length}};__decorate([property({type:Boolean,attribute:!1})],OrAceEditor.prototype,"readonly",void 0),__decorate([property({attribute:!1})],OrAceEditor.prototype,"value",void 0),__decorate([property({type:String,attribute:!1})],OrAceEditor.prototype,"mode",void 0),__decorate([query("#ace-editor")],OrAceEditor.prototype,"_aceElem",void 0),OrAceEditor=__decorate([customElement("or-ace-editor")],OrAceEditor);export{OrAceEditor};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"or-ace-editor.js","sourceRoot":"","sources":["../src/or-ace-editor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { LitElement } from "lit";
2
+ export declare class OrCollapsiblePanel extends LitElement {
3
+ static get styles(): import("lit").CSSResult[];
4
+ expanded: boolean;
5
+ expandable: boolean;
6
+ protected headerElem: HTMLDivElement;
7
+ protected _onHeaderClicked(ev: MouseEvent): void;
8
+ render(): import("lit-html").TemplateResult<1>;
9
+ }
@@ -0,0 +1,95 @@
1
+ var __decorate=this&&this.__decorate||function(e,t,i,o){var r,n=arguments.length,a=n<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,i,o);else for(var l=e.length-1;l>=0;l--)(r=e[l])&&(a=(n<3?r(a):n>3?r(t,i,a):r(t,i))||a);return n>3&&a&&Object.defineProperty(t,i,a),a};import{css,html,LitElement,unsafeCSS}from"lit";import{customElement,property,query}from"lit/decorators.js";import{DefaultColor5}from"@openremote/core";const style=css`
2
+
3
+ :host {
4
+ display: block;
5
+ box-sizing: content-box;
6
+ margin: 0;
7
+ overflow: hidden;
8
+ transition: margin 225ms cubic-bezier(0.4, 0, 0.2, 1), box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);
9
+ position: relative;
10
+ border-color: var(--or-app-color5, ${unsafeCSS(DefaultColor5)});
11
+ background-color: var(--or-collapisble-panel-background-color);
12
+ border-radius: 4px;
13
+ border-width: 1px;
14
+ border-style: solid;
15
+ }
16
+
17
+ :host([hidden]) {
18
+ display: none;
19
+ }
20
+
21
+ #header {
22
+ display: flex;
23
+ height: 48px;
24
+ flex-direction: row;
25
+ font-family: Roboto,Helvetica Neue,sans-serif;
26
+ font-size: 15px;
27
+ font-weight: 400;
28
+ align-items: center;
29
+ padding: 0 24px 0 16px;
30
+ border-radius: inherit;
31
+ }
32
+
33
+ #header.expandable {
34
+ cursor: pointer;
35
+ transition: height 225ms cubic-bezier(0.4, 0, 0.2, 1);
36
+ }
37
+
38
+ #header.expanded {
39
+ height: 64px;
40
+ }
41
+
42
+ #header.expanded > #indicator {
43
+ }
44
+
45
+ #header-content {
46
+ flex: 1;
47
+ display: flex;
48
+ flex-direction: row;
49
+ overflow: hidden;
50
+ }
51
+
52
+ #header-title, #header-description {
53
+ display: inline-flex;
54
+ align-items: center;
55
+ }
56
+
57
+ #header-description {
58
+ flex-grow: 2;
59
+ }
60
+
61
+ #indicator {
62
+ align-self: center;
63
+ margin-right: 6px;
64
+ margin-left: -5px;
65
+ }
66
+
67
+ #content {
68
+ height: 0;
69
+ visibility: hidden;
70
+ }
71
+
72
+ #content.expanded {
73
+ height: unset;
74
+ visibility: visible;
75
+ }
76
+
77
+ or-icon {
78
+ vertical-align: middle;
79
+ --or-icon-width: 20px;
80
+ --or-icon-height: 20px;
81
+ margin-right: 2px;
82
+ margin-left: -5px;
83
+ }
84
+ `;let OrCollapsiblePanel=class extends LitElement{constructor(){super(...arguments),this.expanded=!1,this.expandable=!0}static get styles(){return[style]}_onHeaderClicked(e){this.expandable&&(e.preventDefault(),this.expanded=!this.expanded)}render(){return html`
85
+ <div id="header" class="${this.expandable?"expandable":""} ${this.expandable&&this.expanded?"expanded":""}" @click="${e=>this._onHeaderClicked(e)}">
86
+ ${this.expandable?html`<or-icon icon="chevron-${this.expanded?"down":"right"}"></or-icon>`:""}
87
+ <span id="header-content">
88
+ <span id="header-title"><slot name="header"></slot></span>
89
+ <span id="header-description"><slot name="header-description"></slot></span>
90
+ </span>
91
+ </div>
92
+ <div id="content" class="${this.expandable&&this.expanded?"expanded":""}">
93
+ <slot name="content"></slot>
94
+ </div>
95
+ `}};__decorate([property({type:Boolean})],OrCollapsiblePanel.prototype,"expanded",void 0),__decorate([property({type:Boolean})],OrCollapsiblePanel.prototype,"expandable",void 0),__decorate([query("#header")],OrCollapsiblePanel.prototype,"headerElem",void 0),OrCollapsiblePanel=__decorate([customElement("or-collapsible-panel")],OrCollapsiblePanel);export{OrCollapsiblePanel};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"or-collapsible-panel.js","sourceRoot":"","sources":["../src/or-collapsible-panel.ts"],"names":[],"mappings":";;;;;;AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,eAAe;AACf,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;;;;;6CAS4B,SAAS,CAAC,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0EpE,CAAC;AAGK,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,UAAU;IAA3C;;QASH,aAAQ,GAAY,KAAK,CAAC;QAE1B,eAAU,GAAY,IAAI,CAAC;IA2B/B,CAAC;IApCG,MAAM,KAAK,MAAM;QACb,OAAO;YACH,KAAK;SACR,CAAC;IACN,CAAC;IASS,gBAAgB,CAAC,EAAc;QACrC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACnB,OAAO;QACX,CAAC;QACD,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;IACnC,CAAC;IAED,MAAM;QAEF,OAAO,IAAI,CAAA;sCACmB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,EAAa,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;kBACtK,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAA,0BAA0B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,EAAE;;;;;;uCAM9E,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;;;SAGhF,CAAC;IACN,CAAC;CACJ,CAAA;AA7BG;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;oDACA;AAE1B;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;sDACC;AAEjB;IADT,KAAK,CAAC,SAAS,CAAC;sDACqB;AAb7B,kBAAkB;IAD9B,aAAa,CAAC,sBAAsB,CAAC;GACzB,kBAAkB,CAsC9B"}
@@ -0,0 +1,15 @@
1
+ import { LitElement, PropertyValues } from "lit";
2
+ import { FileInfo } from "@openremote/model";
3
+ import "./or-loading-indicator";
4
+ export declare class OrFileUploader extends LitElement {
5
+ readonly src: string;
6
+ readonly title: string;
7
+ readonly accept: string;
8
+ private loading;
9
+ private files;
10
+ get Files(): FileInfo[];
11
+ static get styles(): import("lit").CSSResult;
12
+ protected firstUpdated(_changedProperties: PropertyValues): void;
13
+ _onChange(e: any): Promise<void>;
14
+ render(): import("lit-html").TemplateResult<1>;
15
+ }
@@ -0,0 +1,77 @@
1
+ var __decorate=this&&this.__decorate||function(e,t,i,o){var r,n=arguments.length,a=n<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,i,o);else for(var l=e.length-1;l>=0;l--)(r=e[l])&&(a=(n<3?r(a):n>3?r(t,i,a):r(t,i))||a);return n>3&&a&&Object.defineProperty(t,i,a),a},__awaiter=this&&this.__awaiter||function(e,t,i,o){return new(i||(i=Promise))((function(r,n){function a(e){try{c(o.next(e))}catch(e){n(e)}}function l(e){try{c(o.throw(e))}catch(e){n(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,l)}c((o=o.apply(e,t||[])).next())}))};import{css,html,LitElement}from"lit";import{customElement,property}from"lit/decorators.js";import{i18next}from"@openremote/or-translate";import"./or-loading-indicator";let OrFileUploader=class extends LitElement{constructor(){super(...arguments),this.src="",this.title="",this.accept="image/png,image/jpeg,image/vnd.microsoft.icon,image/svg+xml",this.loading=!1,this.files=[]}get Files(){return this.files}static get styles(){return css`
2
+ #imageContainer {
3
+ position: relative;
4
+ max-width: 150px;
5
+ background-color: whitesmoke;
6
+ border: 1px solid var(--or-app-color5, #CCC);;
7
+ cursor: pointer;
8
+ border-radius: 4px;
9
+ padding: 4px;
10
+ }
11
+
12
+ #imageContainer img {
13
+ max-width: 100%;
14
+ max-height: 100%;
15
+ border-radius: 2px;
16
+ margin: unset;
17
+ }
18
+
19
+ input {
20
+ display: none;
21
+ }
22
+
23
+ .placeholder-container {
24
+ text-align: center;
25
+ width: 100%;
26
+ }
27
+
28
+ .placeholder-container or-icon {
29
+ font-size: 24px;
30
+ margin: 16px 0;
31
+ max-height: 24px;
32
+ width: 100%;
33
+ text-align: center;
34
+ }
35
+
36
+ #imageContainer:hover .pencil-container{
37
+ display: flex;
38
+ }
39
+
40
+ #imageContainer .pencil-container {
41
+ position: absolute;
42
+ top: 0;
43
+ bottom: 0;
44
+ left: 0;
45
+ right: 0;
46
+ background: rgba(0,0,0,.4);
47
+ color: var(--or-app-color4);
48
+ display: none;
49
+ justify-content: center;
50
+ align-items: center;
51
+ }
52
+
53
+ .container {
54
+ position: relative;
55
+ }
56
+ `}firstUpdated(e){var t,i;super.firstUpdated(e);const o=null===(t=this.shadowRoot)||void 0===t?void 0:t.getElementById("fileInput"),r=null===(i=this.shadowRoot)||void 0===i?void 0:i.getElementById("imageContainer");null==o||o.addEventListener("input",(e=>{this._onChange(e)})),null==r||r.addEventListener("click",(e=>{null==o||o.click()}))}_onChange(e){var t;return __awaiter(this,void 0,void 0,(function*(){this.files=null===(t=null==e?void 0:e.target)||void 0===t?void 0:t.files,this.loading=!0,this.requestUpdate(),this.dispatchEvent(new CustomEvent("change",{detail:{value:this.files}})),this.loading=!1,this.requestUpdate()}))}render(){return html`
57
+ <div class="container">
58
+ ${this.loading?html`
59
+ <or-loading-indicator .overlay="${!0}"></or-loading-indicator>`:""}
60
+ <div class="title">${this.title}</div>
61
+ <div id="imageContainer">
62
+
63
+ ${this.src?html`
64
+ <img src="${this.src}" alt="OR-File-Uploader">
65
+ <div class="pencil-container">
66
+ <or-icon icon="pencil-circle"></or-icon>
67
+ </div>
68
+ `:html`
69
+ <div class="placeholder-container">
70
+ <or-icon icon="upload"></or-icon>
71
+ ${i18next.t("uploadFile")}
72
+ </div>
73
+ `}
74
+ </div>
75
+ <input type="file" id="fileInput" accept="${this.accept}">
76
+ </div>
77
+ `}};__decorate([property({attribute:!1})],OrFileUploader.prototype,"src",void 0),__decorate([property()],OrFileUploader.prototype,"title",void 0),__decorate([property({attribute:!1})],OrFileUploader.prototype,"accept",void 0),OrFileUploader=__decorate([customElement("or-file-uploader")],OrFileUploader);export{OrFileUploader};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"or-file-uploader.js","sourceRoot":"","sources":["../src/or-file-uploader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { LitElement, PropertyValues } from "lit";
2
+ /**
3
+ * This is a form element that supports any element that has a value property
4
+ */
5
+ export declare class OrForm extends LitElement {
6
+ protected formNodes: Node[];
7
+ protected firstUpdated(_changedProperties: PropertyValues): void;
8
+ render(): import("lit-html").TemplateResult<1>;
9
+ checkValidity(): boolean;
10
+ reportValidity(): boolean;
11
+ submit(): {
12
+ [key: string]: any;
13
+ };
14
+ reset(): void;
15
+ }
package/lib/or-form.js ADDED
@@ -0,0 +1,12 @@
1
+ var __decorate=this&&this.__decorate||function(e,t,r,o){var n,s=arguments.length,c=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,r,o);else for(var i=e.length-1;i>=0;i--)(n=e[i])&&(c=(s<3?n(c):s>3?n(t,r,c):n(t,r))||c);return s>3&&c&&Object.defineProperty(t,r,c),c};import{css,html,LitElement}from"lit";import{customElement,queryAssignedElements}from"lit/decorators.js";import{OrMwcInput}from"@openremote/or-mwc-components/or-mwc-input";const style=css`
2
+
3
+ :host {
4
+ display: block;
5
+ }
6
+
7
+ :host([hidden]) {
8
+ display: none;
9
+ }
10
+ `;let OrForm=class extends LitElement{firstUpdated(e){super.firstUpdated(e)}render(){return html`
11
+ <slot></slot>
12
+ `}checkValidity(){let e=!1;return this.formNodes.filter((e=>e instanceof OrMwcInput&&e.name)).map((e=>e)).forEach((t=>{const r=t.checkValidity();e=e&&r})),e}reportValidity(){let e=!0;return this.formNodes.filter((e=>e instanceof OrMwcInput&&e.name)).map((e=>e)).forEach((t=>{const r=t.reportValidity();e=e&&r})),e}submit(){const e={};return this.formNodes.filter((e=>e instanceof OrMwcInput&&e.name)).map((e=>e)).forEach((t=>{e[t.name]=t.value})),e}reset(){this.formNodes.filter((e=>e instanceof OrMwcInput&&e.name)).map((e=>e)).forEach((e=>{e.value=void 0}))}};__decorate([queryAssignedElements()],OrForm.prototype,"formNodes",void 0),OrForm=__decorate([customElement("or-form")],OrForm);export{OrForm};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"or-form.js","sourceRoot":"","sources":["../src/or-form.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAE,UAAU,EAA4B,MAAM,KAAK,CAAC;AACrE,OAAO,EAAC,aAAa,EAAmB,qBAAqB,EAAC,MAAM,mBAAmB,CAAC;AAExF,OAAO,EAAC,UAAU,EAAC,MAAM,4CAA4C,CAAC;AAEtE,eAAe;AACf,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;;;;;CAShB,CAAC;AAEF;;GAEG;AACH,iCAAiC;AAE1B,IAAM,MAAM,GAAZ,MAAM,MAAO,SAAQ,UAAU;IAKxB,YAAY,CAAC,kBAAkC;QACrD,KAAK,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;QAIvC,qBAAqB;QACrB,mCAAmC;QACnC,mCAAmC;QACnC,wBAAwB;QACxB,0CAA0C;QAC1C,UAAU;QACV,IAAI;IACR,CAAC;IAED,MAAM;QAEF,OAAO,IAAI,CAAA;;SAEV,CAAC;IACN,CAAC;IAEM,aAAa;QAChB,IAAI,KAAK,GAAG,KAAK,CAAC;QAElB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAkB,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YACxH,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,EAAE,CAAC;YAC9C,KAAK,GAAG,KAAK,IAAI,UAAU,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,cAAc;QACjB,IAAI,KAAK,GAAG,IAAI,CAAC;QAEjB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAkB,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YACxH,MAAM,UAAU,GAAG,UAAU,CAAC,cAAc,EAAE,CAAC;YAC/C,KAAK,GAAG,KAAK,IAAI,UAAU,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,MAAM;QACT,MAAM,IAAI,GAAyB,EAAE,CAAC;QACtC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAkB,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YACxH,IAAI,CAAC,UAAU,CAAC,IAAe,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC;QACxD,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAkB,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YACxH,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC;QACjC,CAAC,CAAC,CAAC;IACP,CAAC;CACJ,CAAA;AA1Da;IADT,qBAAqB,EAAE;yCACK;AAHpB,MAAM;IADlB,aAAa,CAAC,SAAS,CAAC;GACZ,MAAM,CA6DlB"}
@@ -0,0 +1,6 @@
1
+ import { LitElement } from "lit";
2
+ export declare class OrLoadingIndicator extends LitElement {
3
+ overlay: boolean;
4
+ static get styles(): import("lit").CSSResult;
5
+ render(): import("lit-html").TemplateResult<1>;
6
+ }
@@ -0,0 +1,73 @@
1
+ var __decorate=this&&this.__decorate||function(t,e,r,o){var i,a=arguments.length,n=a<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(t,e,r,o);else for(var c=t.length-1;c>=0;c--)(i=t[c])&&(n=(a<3?i(n):a>3?i(e,r,n):i(e,r))||n);return a>3&&n&&Object.defineProperty(e,r,n),n};import{css,html,LitElement}from"lit";import{customElement,property}from"lit/decorators.js";let OrLoadingIndicator=class extends LitElement{constructor(){super(...arguments),this.overlay=!1}static get styles(){return css`
2
+ .loader-container {
3
+ position: absolute;
4
+ top: 0;
5
+ left: 0;
6
+ right: 0;
7
+ bottom: 0;
8
+ background-color: rgba(0, 0, 0, .2);
9
+ z-index: 1000;
10
+ }
11
+
12
+ .loader {
13
+ position: absolute;
14
+ left: 50%;
15
+ transform: translate(-50%, -50%);
16
+ top: 50%;
17
+ z-index: 1010;
18
+ }
19
+
20
+ .loader svg {
21
+ height: 60px;
22
+ width: 60px;
23
+ }
24
+
25
+ @-webkit-keyframes rotate-right {
26
+ from {
27
+ -webkit-transform: rotate(0deg);
28
+ }
29
+ to {
30
+ -webkit-transform: rotate(360deg);
31
+ }
32
+ }
33
+ @-webkit-keyframes rotate-left {
34
+ from {
35
+ -webkit-transform: rotate(0deg);
36
+ }
37
+ to {
38
+ -webkit-transform: rotate(-360deg);
39
+ }
40
+ }
41
+
42
+ .loader #circle1 {
43
+ -webkit-transform: translate3d(0, 0, 0);
44
+ -webkit-transform-origin: 54.1px 53.6px;
45
+ -webkit-animation: rotate-right 7s linear 0s infinite;
46
+ }
47
+
48
+ .loader #circle2 {
49
+ -webkit-transform: translate3d(0, 0, 0);
50
+ -webkit-transform-origin: 54.1px 53.6px;
51
+ -webkit-animation: rotate-left 6s linear 0s infinite;
52
+ }
53
+
54
+ .loader #circle3 {
55
+ -webkit-transform: translate3d(0, 0, 0);
56
+ -webkit-transform-origin: 54.1px 53.6px;
57
+ -webkit-animation: rotate-right 5s linear 0s infinite;
58
+ }
59
+ `}render(){const t=html`
60
+ <div class="loader">
61
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 110 110"
62
+ xml:space="preserve">
63
+ <path fill="#d2d2d2" id="circle1"
64
+ d="M53.648,107.296C24.068,107.296,0,83.236,0,53.646h11.234c0,23.391,19.025,42.42,42.414,42.42 c23.385,0,42.416-19.029,42.416-42.42c0-23.382-19.031-42.408-42.416-42.408V0c29.582,0,53.65,24.068,53.65,53.646 C107.299,83.236,83.23,107.296,53.648,107.296L53.648,107.296z" />
65
+ <path fill="#a5a5a5" id="circle2"
66
+ d="M45.525,92.57c-10.395-2.166-19.324-8.262-25.145-17.137c-5.814-8.884-7.826-19.511-5.654-29.906 c2.174-10.399,8.258-19.325,17.141-25.145c8.889-5.815,19.506-7.825,29.906-5.655c21.463,4.479,35.281,25.582,30.803,47.041 L81.58,59.478c3.207-15.397-6.703-30.539-22.105-33.751c-7.461-1.56-15.078-0.119-21.455,4.06 c-6.369,4.169-10.736,10.58-12.299,18.039c-1.555,7.458-0.113,15.075,4.064,21.453c4.17,6.37,10.576,10.744,18.041,12.297 L45.525,92.57L45.525,92.57z" />
67
+ <path fill="#878787" id="circle3"
68
+ d="M53.682,79.428c-0.432,0-0.871-0.012-1.309-0.032c-6.869-0.342-13.205-3.344-17.83-8.439 c-4.621-5.108-6.982-11.705-6.639-18.582l11.215,0.553c-0.188,3.879,1.141,7.609,3.75,10.488c2.604,2.879,6.186,4.568,10.059,4.761 c3.869,0.179,7.607-1.142,10.48-3.748c2.887-2.603,4.576-6.179,4.773-10.057c0.391-8.012-5.803-14.854-13.816-15.248l0.559-11.222 c14.201,0.71,25.178,12.823,24.475,27.021c-0.344,6.883-3.336,13.212-8.441,17.831C66.174,77.086,60.084,79.428,53.682,79.428 L53.682,79.428z" />
69
+ </svg>
70
+ </div>`;return this.overlay?html`
71
+ <div class="loader-container">
72
+ ${t}
73
+ </div>`:t}};__decorate([property({attribute:!0})],OrLoadingIndicator.prototype,"overlay",void 0),OrLoadingIndicator=__decorate([customElement("or-loading-indicator")],OrLoadingIndicator);export{OrLoadingIndicator};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"or-loading-indicator.js","sourceRoot":"","sources":["../src/or-loading-indicator.ts"],"names":[],"mappings":";;;;;;AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGrD,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,UAAU;IAA3C;;QAGE,YAAO,GAAY,KAAK,CAAC;IAwFlC,CAAC;IAtFC,MAAM,KAAK,MAAM;QACf,OAAO,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA0DT,CAAC;IACJ,CAAC;IAGD,MAAM;QACJ,MAAM,MAAM,GAAG,IAAI,CAAA;;;;;;;;;;;aAWV,CAAC;QAGV,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,IAAI,CAAA;;YAEL,MAAM;eACH,CAAC;QACZ,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAA;AAxFQ;IADN,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;mDACE;AAHrB,kBAAkB;IAD9B,aAAa,CAAC,sBAAsB,CAAC;GACzB,kBAAkB,CA2F9B"}
@@ -0,0 +1,13 @@
1
+ import { LitElement, TemplateResult } from "lit";
2
+ /**
3
+ * A simple loading wrapper around some other content that will hide the content whilst loading property is true
4
+ */
5
+ export declare class OrLoadingWrapper extends LitElement {
6
+ loadingHeight?: number;
7
+ loadDom: boolean;
8
+ fadeContent: boolean;
9
+ loading: boolean;
10
+ content?: TemplateResult;
11
+ static get styles(): import("lit").CSSResult;
12
+ render(): TemplateResult<1>;
13
+ }
@@ -0,0 +1,32 @@
1
+ var __decorate=this&&this.__decorate||function(e,t,o,r){var i,p=arguments.length,a=p<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,o,r);else for(var d=e.length-1;d>=0;d--)(i=e[d])&&(a=(p<3?i(a):p>3?i(t,o,a):i(t,o))||a);return p>3&&a&&Object.defineProperty(t,o,a),a};import{css,html,LitElement}from"lit";import{customElement,property}from"lit/decorators.js";let OrLoadingWrapper=class extends LitElement{constructor(){super(...arguments),this.loadDom=!0,this.fadeContent=!1,this.loading=!1}static get styles(){return css`
2
+ :host {
3
+ display: block;
4
+ }
5
+
6
+ .hidden {
7
+ display: none;
8
+ }
9
+
10
+ .faded {
11
+ opacity: 0.5;
12
+ }
13
+
14
+ #wrapper {
15
+ position: relative;
16
+ }
17
+
18
+ #loader {
19
+ position: absolute;
20
+ width: 100%;
21
+ height: 100%;
22
+ }
23
+ `}render(){return html`
24
+ <div id="wrapper">
25
+ ${this.loading?html`<div id="loader">LOADING</div>`:""}
26
+ ${this.loadDom||!this.loading?html`
27
+ <div id="content-wrapper" class="${this.loading?this.fadeContent?"faded":"hidden":""}">
28
+ <slot></slot>
29
+ ${this.content||""}
30
+ </div>`:""}
31
+ </div>
32
+ `}};__decorate([property({type:Number})],OrLoadingWrapper.prototype,"loadingHeight",void 0),__decorate([property({type:Boolean})],OrLoadingWrapper.prototype,"loadDom",void 0),__decorate([property({type:Boolean})],OrLoadingWrapper.prototype,"fadeContent",void 0),__decorate([property({type:Boolean})],OrLoadingWrapper.prototype,"loading",void 0),__decorate([property({type:Object,attribute:!1})],OrLoadingWrapper.prototype,"content",void 0),OrLoadingWrapper=__decorate([customElement("or-loading-wrapper")],OrLoadingWrapper);export{OrLoadingWrapper};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"or-loading-wrapper.js","sourceRoot":"","sources":["../src/or-loading-wrapper.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAE,UAAU,EAAkB,MAAM,KAAK,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE5D;;GAEG;AAEI,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,UAAU;IAAzC;;QAMI,YAAO,GAAY,IAAI,CAAC;QAGxB,gBAAW,GAAY,KAAK,CAAC;QAG7B,YAAO,GAAY,KAAK,CAAC;IA4CpC,CAAC;IAvCG,eAAe;IACR,MAAM,KAAK,MAAM;QACpB,OAAO,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;SAsBT,CAAC;IACN,CAAC;IAED,MAAM;QACF,OAAO,IAAI,CAAA;;kBAED,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAA,gCAAgC,CAAC,CAAC,CAAC,EAAE;kBACxD,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAA,CAAC,CAAC,IAAI,CAAA;uDACE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;;0BAEtF,IAAI,CAAC,OAAO,IAAI,EAAE;2BACjB,CAAC,CAAC,CAAC,EAAE;;SAEvB,CAAC;IACN,CAAC;CACJ,CAAA;AArDU;IADN,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;uDACK;AAGvB;IADN,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;iDACK;AAGxB;IADN,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;qDACU;AAG7B;IADN,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;iDACM;AAGzB;IADN,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAC,CAAC;iDACX;AAfvB,gBAAgB;IAD5B,aAAa,CAAC,oBAAoB,CAAC;GACvB,gBAAgB,CAwD5B"}
@@ -0,0 +1,8 @@
1
+ import { LitElement, TemplateResult } from "lit";
2
+ export declare class OrPanel extends LitElement {
3
+ static get styles(): import("lit").CSSResult[];
4
+ zLevel?: number;
5
+ heading?: string | TemplateResult;
6
+ protected _panel: HTMLDivElement;
7
+ render(): TemplateResult<1>;
8
+ }
@@ -0,0 +1,57 @@
1
+ var __decorate=this&&this.__decorate||function(e,r,n,a){var o,t=arguments.length,i=t<3?r:null===a?a=Object.getOwnPropertyDescriptor(r,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,r,n,a);else for(var l=e.length-1;l>=0;l--)(o=e[l])&&(i=(t<3?o(i):t>3?o(r,n,i):o(r,n))||i);return t>3&&i&&Object.defineProperty(r,n,i),i};import{css,html,LitElement,unsafeCSS}from"lit";import{customElement,property,query}from"lit/decorators.js";import{DefaultColor2,DefaultColor3}from"@openremote/core";import{when}from"lit/directives/when.js";const simpleBarStyle=require("simplebar/dist/simplebar.css"),elevationStyle=require("@material/elevation/dist/mdc.elevation.css"),style=css`
2
+
3
+ :host {
4
+ --internal-or-panel-background-color: var(--or-panel-background-color, var(--or-app-color2, ${unsafeCSS(DefaultColor2)}));
5
+ --internal-or-panel-padding: var(--or-panel-padding, 10px);
6
+ --internal-or-panel-border: var(--or-panel-border, 1px solid #e5e5e5);
7
+ --internal-or-panel-border-radius: var(--or-panel-border-radius, 5px);
8
+ --internal-or-panel-heading-margin: var(--or-panel-heading-margin, 0 0 10px 7px);
9
+ --internal-or-panel-heading-min-height: var(--or-panel-heading-min-height, 36px);
10
+ --internal-or-panel-heading-color: var(--or-panel-heading-color, var(--or-app-color3, ${unsafeCSS(DefaultColor3)}));
11
+ --internal-or-panel-heading-font-size: var(--or-panel-heading-font-size, larger);
12
+ --internal-or-panel-heading-font-weight: var(--or-panel-heading-font-weight, bolder);
13
+
14
+ display: block;
15
+ }
16
+
17
+ :host([hidden]) {
18
+ display: none;
19
+ }
20
+
21
+ #wrapper {
22
+ height: 100%;
23
+ flex: 1;
24
+ }
25
+
26
+ #panel {
27
+ padding: var(--internal-or-panel-padding);
28
+ background-color: var(--internal-or-panel-background-color);
29
+ border: var(--internal-or-panel-border);
30
+ border-radius: var(--internal-or-panel-border-radius);
31
+ }
32
+
33
+ #heading {
34
+ display: flex;
35
+ align-items: center;
36
+ margin: var(--internal-or-panel-heading-margin);
37
+ min-height: var(--internal-or-panel-heading-min-height);
38
+ font-size: var(--internal-or-panel-heading-font-size);
39
+ font-weight: var(--internal-or-panel-heading-font-weight);
40
+ color: var(--internal-or-panel-heading-color);
41
+ }
42
+ `;let OrPanel=class extends LitElement{static get styles(){return[css`${unsafeCSS(elevationStyle)}`,css`${unsafeCSS(simpleBarStyle)}`,style]}render(){return html`
43
+ <div id="wrapper">
44
+ <div id="panel">
45
+ ${this.heading?html`
46
+ ${when(!("string"==typeof this.heading),(()=>html`
47
+ ${this.heading}
48
+ `),(()=>html`
49
+ <div id="heading">
50
+ <span>${this.heading}</span>
51
+ </div>
52
+ `))}
53
+ `:""}
54
+ <slot></slot>
55
+ </div>
56
+ </div>
57
+ `}};__decorate([property({type:Number})],OrPanel.prototype,"zLevel",void 0),__decorate([property({type:String})],OrPanel.prototype,"heading",void 0),__decorate([query("#panel")],OrPanel.prototype,"_panel",void 0),OrPanel=__decorate([customElement("or-panel")],OrPanel);export{OrPanel};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"or-panel.js","sourceRoot":"","sources":["../src/or-panel.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAE,UAAU,EAAkB,SAAS,EAAC,MAAM,KAAK,CAAC;AACrE,OAAO,EAAC,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAC,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAC,aAAa,EAAE,aAAa,EAAC,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAC,IAAI,EAAC,MAAM,wBAAwB,CAAC;AAE5C,uFAAuF;AACvF,MAAM,cAAc,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC;AAC/D,MAAM,cAAc,GAAG,OAAO,CAAC,4CAA4C,CAAC,CAAC;AAE7E,eAAe;AACf,MAAM,KAAK,GAAG,GAAG,CAAA;;;sGAGqF,SAAS,CAAC,aAAa,CAAC;;;;;;gGAM9B,SAAS,CAAC,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCvH,CAAC;AAGK,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,UAAU;IAEnC,MAAM,KAAK,MAAM;QACb,OAAO;YACH,GAAG,CAAC,GAAG,SAAS,CAAC,cAAc,CAAC,EAAE;YAClC,GAAG,CAAC,GAAG,SAAS,CAAC,cAAc,CAAC,EAAE;YAClC,KAAK;SACR,CAAC;IACN,CAAC;IAWD,MAAM;QACF,OAAO,IAAI,CAAA;;;sBAGG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAA;0BACf,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAA;8BAChD,IAAI,CAAC,OAAO;yBACjB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAA;;wCAEG,IAAI,CAAC,OAAO;;yBAE3B,CAAC;qBACL,CAAC,CAAC,CAAC,EAAE;;;;SAIjB,CAAC;IACN,CAAC;CACJ,CAAA;AA1BG;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;uCACT;AAGT;IADN,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;wCACgB;AAG/B;IADT,KAAK,CAAC,QAAQ,CAAC;uCACkB;AAjBzB,OAAO;IADnB,aAAa,CAAC,UAAU,CAAC;GACb,OAAO,CAqCnB"}
package/package.json ADDED
@@ -0,0 +1,36 @@
1
+ {
2
+ "name": "@openremote/or-components",
3
+ "version": "1.2.0-snapshot.20240512154942",
4
+ "description": "OpenRemote basic UI components",
5
+ "main": "dist/umd/index.bundle.js",
6
+ "module": "lib/index.js",
7
+ "exports": {
8
+ ".": "./lib/index.js",
9
+ "./*": "./lib/*.js"
10
+ },
11
+ "typesVersions": {
12
+ "*": {
13
+ "*": [
14
+ "lib/*"
15
+ ]
16
+ }
17
+ },
18
+ "scripts": {
19
+ "test": "echo \"No tests\" && exit 0",
20
+ "prepublishOnly": "npx webpack"
21
+ },
22
+ "author": "OpenRemote",
23
+ "license": "AGPL-3.0-or-later",
24
+ "dependencies": {
25
+ "@material/elevation": "^9.0.0",
26
+ "@openremote/core": "1.2.0-snapshot.20240512154942",
27
+ "lit": "^2.0.2",
28
+ "simplebar": "^5.3.6"
29
+ },
30
+ "devDependencies": {
31
+ "@openremote/util": "1.2.0-snapshot.20240512154942"
32
+ },
33
+ "publishConfig": {
34
+ "access": "public"
35
+ }
36
+ }