@operato/scene-legend 9.0.0-beta.0 → 9.0.0-beta.10

Sign up to get free protection for your applications and to get access to all the features.
@@ -60,7 +60,7 @@ let EditorLegendStatus = class EditorLegendStatus extends LitElement {
60
60
  <input type="text" data-description .value="${item.description || ''}" placeholder="display text" />
61
61
  </td>
62
62
  <td>
63
- <button class="record-action" @tap=${(e) => this._delete(e)} tabindex="-1">-</button>
63
+ <button class="record-action" @click=${(e) => this._delete(e)} tabindex="-1">-</button>
64
64
  </td>
65
65
  </tr>
66
66
  `)}
@@ -78,7 +78,7 @@ let EditorLegendStatus = class EditorLegendStatus extends LitElement {
78
78
  <input type="text" data-description value="" placeholder="display text" />
79
79
  </td>
80
80
  <td>
81
- <button class="record-action" @tap=${() => this._add()} tabindex="-1">+</button>
81
+ <button class="record-action" @click=${() => this._add()} tabindex="-1">+</button>
82
82
  </td>
83
83
  </tr>
84
84
  </table>
@@ -1 +1 @@
1
- {"version":3,"file":"editor-legend-status.js","sourceRoot":"","sources":["../../src/editors/editor-legend-status.ts"],"names":[],"mappings":"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","sourcesContent":["import '@operato/i18n/ox-i18n.js'\n\nimport { LitElement, PropertyValues, css, html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\n\n@customElement('editor-legend-status')\nclass EditorLegendStatus extends LitElement {\n static styles = [\n css`\n :host {\n font-size: 0.8em;\n display: grid;\n grid-template-columns: repeat(10, 1fr);\n grid-gap: 5px;\n }\n\n :host > * {\n order: 2;\n grid-column: 4 / -1;\n }\n\n :host > legend {\n order: 1;\n grid-column: 1 / -1;\n font-size: 11px;\n color: rgb(228, 108, 46);\n font-weight: bold;\n text-transform: capitalize;\n padding: 5px 0px 0px 5px;\n }\n\n :host > label {\n grid-column: 1 / 4;\n text-align: right;\n color: var(--primary-text-color);\n }\n\n div[data-record] input {\n width: 20%;\n }\n :host > table {\n grid-column: 1 / -1;\n }\n table input {\n width: 25px;\n margin: 3px 0 2px 0;\n padding: 3px;\n font-size: 12px;\n }\n table td span {\n padding: 5px 0 0 0;\n }\n table td ox-input-color {\n width: 81px;\n height: 25px;\n }\n table td button {\n margin-left: 0;\n }\n table th {\n background-color: rgba(0, 0, 0, 0.1);\n padding: 2px 0;\n text-align: center;\n }\n\n table tr > th:first-child {\n width: 40px;\n }\n\n table tr > th:nth-child(2) {\n width: 85px;\n }\n\n table tr > th:nth-child(4) {\n width: 30px;\n }\n\n table *.editor-legend-status {\n float: none !important;\n }\n table td {\n text-align: center;\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n }\n table tr.stock-new {\n background-color: rgba(179, 145, 117, 0.3);\n }\n table td input[data-description] {\n width: 100%;\n box-sizing: border-box;\n }\n `\n ]\n\n @property({ type: Object }) value: any\n\n @state() private _statusField?: string\n @state() private _defaultColor?: string\n @state() private _ranges: any[] = []\n\n private boundOnChange?: any\n private _changingNow: boolean = false\n\n render() {\n return html`\n <legend>\n <ox-i18n msgid=\"label.status\">Status</ox-i18n>\n </legend>\n\n <label class=\"stock-field\">\n <ox-i18n msgid=\"label.field\">Field</ox-i18n>\n </label>\n <input\n type=\"text\"\n .value=${this._statusField || ''}\n @change=${(e: Event) => {\n this._statusField = (e.target as HTMLInputElement).value\n }}\n />\n <label class=\"default-color\">\n <ox-i18n msgid=\"label.default-color\">Default Color</ox-i18n>\n </label>\n <ox-input-color\n name=\"default-color\"\n .value=${this._defaultColor || ''}\n placeholder=\"default color\"\n @change=${(e: Event) => {\n this._defaultColor = (e.target as HTMLInputElement).value\n }}\n ></ox-input-color>\n\n <table>\n <tr>\n <th>\n Min &le; <br />Field<br />\n &lt; Max\n </th>\n <th>color</th>\n <th>disp. text</th>\n <th></th>\n </tr>\n ${this._ranges.map(\n item => html`\n <tr data-record>\n <td>\n <input type=\"text\" data-min placeholder=\"min\" .value=\"${item.min}\" />\n <span>~</span>\n <input type=\"text\" data-max placeholder=\"max\" .value=\"${item.max}\" />\n </td>\n <td>\n <ox-input-color data-color .value=\"${item.color}\" placeholder=\"color\"></ox-input-color>\n </td>\n <td>\n <input type=\"text\" data-description .value=\"${item.description || ''}\" placeholder=\"display text\" />\n </td>\n <td>\n <button class=\"record-action\" @tap=${(e: TouchEvent) => this._delete(e)} tabindex=\"-1\">-</button>\n </td>\n </tr>\n `\n )}\n\n <tr data-record-new class=\"stock-new\">\n <td>\n <input type=\"text\" data-min placeholder=\"min\" value=\"\" />\n <span>~</span>\n <input type=\"text\" data-max placeholder=\"max\" value=\"\" />\n </td>\n <td>\n <ox-input-color data-color value=\"\" placeholder=\"color\"></ox-input-color>\n </td>\n <td>\n <input type=\"text\" data-description value=\"\" placeholder=\"display text\" />\n </td>\n <td>\n <button class=\"record-action\" @tap=${() => this._add()} tabindex=\"-1\">+</button>\n </td>\n </tr>\n </table>\n `\n }\n\n connectedCallback() {\n super.connectedCallback()\n if (!this.boundOnChange) this.boundOnChange = this._onChange.bind(this)\n\n this.renderRoot.addEventListener('change', this.boundOnChange)\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n this.renderRoot.removeEventListener('change', this.boundOnChange)\n }\n\n _valueChanged(value: any) {\n var val = value || this._getDefaultValue()\n this._statusField = val.field\n this._defaultColor = val.defaultColor\n this._ranges = [...val.ranges]\n\n this.requestUpdate()\n }\n\n _onChange(e: Event) {\n e.stopPropagation()\n this._changingNow = true\n\n var input = e.target as HTMLInputElement\n var value = input.value\n\n var tr = input.closest('tr')\n\n if (tr) {\n if (tr.hasAttribute('data-record')) this._build(true)\n else if (tr.hasAttribute('data-record-new') && input.hasAttribute('data-color')) this._add()\n }\n\n this.value = {\n field: this._statusField,\n defaultColor: this._defaultColor,\n ranges: this._ranges\n }\n\n this.dispatchEvent(\n new CustomEvent('change', {\n bubbles: true,\n composed: true\n })\n )\n this.requestUpdate()\n }\n\n _build(includeNewRecord: boolean) {\n if (includeNewRecord) var records = this.renderRoot.querySelectorAll('[data-record],[data-record-new]')\n else var records = this.renderRoot.querySelectorAll('[data-record]')\n\n var newRanges = []\n\n for (var i = 0; i < records.length; i++) {\n var record = records[i]\n\n var min = (record.querySelector('[data-min]') as HTMLInputElement).value\n var max = (record.querySelector('[data-max]') as HTMLInputElement).value\n var description = (record.querySelector('[data-description]') as HTMLInputElement).value\n var inputs = record.querySelectorAll('[data-color]:not([style*=\"display: none\"])') as NodeListOf<HTMLInputElement>\n if (!inputs || inputs.length == 0) continue\n\n var input = inputs[inputs.length - 1]\n var color = input.value\n\n if (min != undefined && max != undefined && color)\n newRanges.push({\n min: min.trim(),\n max: max.trim(),\n color: color.trim(),\n description: description.trim()\n })\n }\n\n newRanges.sort(function (range1, range2) {\n var min1 = Number(range1.min)\n var min2 = Number(range2.min)\n\n var result = min1 - min2\n\n if (Number.isNaN(result)) {\n var strMin1 = String(min1)\n var strMin2 = String(min2)\n\n if (strMin1 > strMin2) result = 1\n else if (strMin1 == strMin2) result = 0\n else result = -1\n }\n\n return result\n })\n\n this._ranges = newRanges\n this.requestUpdate()\n }\n\n _add() {\n this._build(true)\n\n var inputs = this.renderRoot.querySelectorAll(\n '[data-record-new] input:not([style*=\"display: none\"]), [data-record-new] [data-color]:not([style*=\"display: none\"])'\n ) as NodeListOf<HTMLInputElement>\n\n for (var i = 0; i < inputs.length; i++) {\n let input = inputs[i]\n input.value = ''\n }\n }\n\n _delete(e: Event) {\n var record = (e.target as Element).closest('tr[data-record]')\n\n ;(record!.querySelector('[data-min]') as HTMLInputElement).value = ''\n ;(record!.querySelector('[data-max]') as HTMLInputElement).value = ''\n ;(record!.querySelector('[data-color]') as HTMLInputElement).value = ''\n\n this._build(false)\n\n this.value = {\n field: this._statusField,\n defaultColor: this._defaultColor,\n ranges: this._ranges\n }\n\n this.dispatchEvent(\n new CustomEvent('change', {\n bubbles: true,\n composed: true\n })\n )\n }\n\n _getDefaultValue() {\n return {\n field: '',\n defaultColor: '',\n ranges: []\n }\n }\n\n _onRepeaterChanged() {\n var inputs = this.renderRoot.querySelectorAll(\n '[data-record] input:not([style*=\"display: none\"])[value=\"\"], [data-record-new] input:not([style*=\"display: none\"])[value=\"\"]'\n ) as NodeListOf<HTMLInputElement>\n\n inputs[0].focus()\n }\n\n updated(changes: PropertyValues<this>) {\n if (changes.has('value')) this._valueChanged(this.value)\n }\n}\n"]}
1
+ {"version":3,"file":"editor-legend-status.js","sourceRoot":"","sources":["../../src/editors/editor-legend-status.ts"],"names":[],"mappings":"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","sourcesContent":["import '@operato/i18n/ox-i18n.js'\n\nimport { LitElement, PropertyValues, css, html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\n\n@customElement('editor-legend-status')\nclass EditorLegendStatus extends LitElement {\n static styles = [\n css`\n :host {\n font-size: 0.8em;\n display: grid;\n grid-template-columns: repeat(10, 1fr);\n grid-gap: 5px;\n }\n\n :host > * {\n order: 2;\n grid-column: 4 / -1;\n }\n\n :host > legend {\n order: 1;\n grid-column: 1 / -1;\n font-size: 11px;\n color: rgb(228, 108, 46);\n font-weight: bold;\n text-transform: capitalize;\n padding: 5px 0px 0px 5px;\n }\n\n :host > label {\n grid-column: 1 / 4;\n text-align: right;\n color: var(--primary-text-color);\n }\n\n div[data-record] input {\n width: 20%;\n }\n :host > table {\n grid-column: 1 / -1;\n }\n table input {\n width: 25px;\n margin: 3px 0 2px 0;\n padding: 3px;\n font-size: 12px;\n }\n table td span {\n padding: 5px 0 0 0;\n }\n table td ox-input-color {\n width: 81px;\n height: 25px;\n }\n table td button {\n margin-left: 0;\n }\n table th {\n background-color: rgba(0, 0, 0, 0.1);\n padding: 2px 0;\n text-align: center;\n }\n\n table tr > th:first-child {\n width: 40px;\n }\n\n table tr > th:nth-child(2) {\n width: 85px;\n }\n\n table tr > th:nth-child(4) {\n width: 30px;\n }\n\n table *.editor-legend-status {\n float: none !important;\n }\n table td {\n text-align: center;\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n }\n table tr.stock-new {\n background-color: rgba(179, 145, 117, 0.3);\n }\n table td input[data-description] {\n width: 100%;\n box-sizing: border-box;\n }\n `\n ]\n\n @property({ type: Object }) value: any\n\n @state() private _statusField?: string\n @state() private _defaultColor?: string\n @state() private _ranges: any[] = []\n\n private boundOnChange?: any\n private _changingNow: boolean = false\n\n render() {\n return html`\n <legend>\n <ox-i18n msgid=\"label.status\">Status</ox-i18n>\n </legend>\n\n <label class=\"stock-field\">\n <ox-i18n msgid=\"label.field\">Field</ox-i18n>\n </label>\n <input\n type=\"text\"\n .value=${this._statusField || ''}\n @change=${(e: Event) => {\n this._statusField = (e.target as HTMLInputElement).value\n }}\n />\n <label class=\"default-color\">\n <ox-i18n msgid=\"label.default-color\">Default Color</ox-i18n>\n </label>\n <ox-input-color\n name=\"default-color\"\n .value=${this._defaultColor || ''}\n placeholder=\"default color\"\n @change=${(e: Event) => {\n this._defaultColor = (e.target as HTMLInputElement).value\n }}\n ></ox-input-color>\n\n <table>\n <tr>\n <th>\n Min &le; <br />Field<br />\n &lt; Max\n </th>\n <th>color</th>\n <th>disp. text</th>\n <th></th>\n </tr>\n ${this._ranges.map(\n item => html`\n <tr data-record>\n <td>\n <input type=\"text\" data-min placeholder=\"min\" .value=\"${item.min}\" />\n <span>~</span>\n <input type=\"text\" data-max placeholder=\"max\" .value=\"${item.max}\" />\n </td>\n <td>\n <ox-input-color data-color .value=\"${item.color}\" placeholder=\"color\"></ox-input-color>\n </td>\n <td>\n <input type=\"text\" data-description .value=\"${item.description || ''}\" placeholder=\"display text\" />\n </td>\n <td>\n <button class=\"record-action\" @click=${(e: MouseEvent) => this._delete(e)} tabindex=\"-1\">-</button>\n </td>\n </tr>\n `\n )}\n\n <tr data-record-new class=\"stock-new\">\n <td>\n <input type=\"text\" data-min placeholder=\"min\" value=\"\" />\n <span>~</span>\n <input type=\"text\" data-max placeholder=\"max\" value=\"\" />\n </td>\n <td>\n <ox-input-color data-color value=\"\" placeholder=\"color\"></ox-input-color>\n </td>\n <td>\n <input type=\"text\" data-description value=\"\" placeholder=\"display text\" />\n </td>\n <td>\n <button class=\"record-action\" @click=${() => this._add()} tabindex=\"-1\">+</button>\n </td>\n </tr>\n </table>\n `\n }\n\n connectedCallback() {\n super.connectedCallback()\n if (!this.boundOnChange) this.boundOnChange = this._onChange.bind(this)\n\n this.renderRoot.addEventListener('change', this.boundOnChange)\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n this.renderRoot.removeEventListener('change', this.boundOnChange)\n }\n\n _valueChanged(value: any) {\n var val = value || this._getDefaultValue()\n this._statusField = val.field\n this._defaultColor = val.defaultColor\n this._ranges = [...val.ranges]\n\n this.requestUpdate()\n }\n\n _onChange(e: Event) {\n e.stopPropagation()\n this._changingNow = true\n\n var input = e.target as HTMLInputElement\n var value = input.value\n\n var tr = input.closest('tr')\n\n if (tr) {\n if (tr.hasAttribute('data-record')) this._build(true)\n else if (tr.hasAttribute('data-record-new') && input.hasAttribute('data-color')) this._add()\n }\n\n this.value = {\n field: this._statusField,\n defaultColor: this._defaultColor,\n ranges: this._ranges\n }\n\n this.dispatchEvent(\n new CustomEvent('change', {\n bubbles: true,\n composed: true\n })\n )\n this.requestUpdate()\n }\n\n _build(includeNewRecord: boolean) {\n if (includeNewRecord) var records = this.renderRoot.querySelectorAll('[data-record],[data-record-new]')\n else var records = this.renderRoot.querySelectorAll('[data-record]')\n\n var newRanges = []\n\n for (var i = 0; i < records.length; i++) {\n var record = records[i]\n\n var min = (record.querySelector('[data-min]') as HTMLInputElement).value\n var max = (record.querySelector('[data-max]') as HTMLInputElement).value\n var description = (record.querySelector('[data-description]') as HTMLInputElement).value\n var inputs = record.querySelectorAll('[data-color]:not([style*=\"display: none\"])') as NodeListOf<HTMLInputElement>\n if (!inputs || inputs.length == 0) continue\n\n var input = inputs[inputs.length - 1]\n var color = input.value\n\n if (min != undefined && max != undefined && color)\n newRanges.push({\n min: min.trim(),\n max: max.trim(),\n color: color.trim(),\n description: description.trim()\n })\n }\n\n newRanges.sort(function (range1, range2) {\n var min1 = Number(range1.min)\n var min2 = Number(range2.min)\n\n var result = min1 - min2\n\n if (Number.isNaN(result)) {\n var strMin1 = String(min1)\n var strMin2 = String(min2)\n\n if (strMin1 > strMin2) result = 1\n else if (strMin1 == strMin2) result = 0\n else result = -1\n }\n\n return result\n })\n\n this._ranges = newRanges\n this.requestUpdate()\n }\n\n _add() {\n this._build(true)\n\n var inputs = this.renderRoot.querySelectorAll(\n '[data-record-new] input:not([style*=\"display: none\"]), [data-record-new] [data-color]:not([style*=\"display: none\"])'\n ) as NodeListOf<HTMLInputElement>\n\n for (var i = 0; i < inputs.length; i++) {\n let input = inputs[i]\n input.value = ''\n }\n }\n\n _delete(e: Event) {\n var record = (e.target as Element).closest('tr[data-record]')\n\n ;(record!.querySelector('[data-min]') as HTMLInputElement).value = ''\n ;(record!.querySelector('[data-max]') as HTMLInputElement).value = ''\n ;(record!.querySelector('[data-color]') as HTMLInputElement).value = ''\n\n this._build(false)\n\n this.value = {\n field: this._statusField,\n defaultColor: this._defaultColor,\n ranges: this._ranges\n }\n\n this.dispatchEvent(\n new CustomEvent('change', {\n bubbles: true,\n composed: true\n })\n )\n }\n\n _getDefaultValue() {\n return {\n field: '',\n defaultColor: '',\n ranges: []\n }\n }\n\n _onRepeaterChanged() {\n var inputs = this.renderRoot.querySelectorAll(\n '[data-record] input:not([style*=\"display: none\"])[value=\"\"], [data-record-new] input:not([style*=\"display: none\"])[value=\"\"]'\n ) as NodeListOf<HTMLInputElement>\n\n inputs[0].focus()\n }\n\n updated(changes: PropertyValues<this>) {\n if (changes.has('value')) this._valueChanged(this.value)\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
- import './property-editor-legend-status';
2
- import './property-editor-svg-info';
1
+ import './property-editor-legend-status.js';
2
+ import './property-editor-svg-info.js';
3
3
  declare const _default: {
4
4
  type: string;
5
5
  element: string;
@@ -1,8 +1,8 @@
1
1
  /*
2
2
  * Copyright © HatioLab Inc. All rights reserved.
3
3
  */
4
- import './property-editor-legend-status';
5
- import './property-editor-svg-info';
4
+ import './property-editor-legend-status.js';
5
+ import './property-editor-svg-info.js';
6
6
  export default [
7
7
  {
8
8
  type: 'legend-status',
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/editors/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,iCAAiC,CAAA;AACxC,OAAO,4BAA4B,CAAA;AAEnC,eAAe;IACb;QACE,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,+BAA+B;KACzC;IACD;QACE,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,0BAA0B;KACpC;CACF,CAAA","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport './property-editor-legend-status'\nimport './property-editor-svg-info'\n\nexport default [\n {\n type: 'legend-status',\n element: 'property-editor-legend-status'\n },\n {\n type: 'svg-info',\n element: 'property-editor-svg-info'\n }\n]\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/editors/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,oCAAoC,CAAA;AAC3C,OAAO,+BAA+B,CAAA;AAEtC,eAAe;IACb;QACE,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,+BAA+B;KACzC;IACD;QACE,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,0BAA0B;KACpC;CACF,CAAA","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport './property-editor-legend-status.js'\nimport './property-editor-svg-info.js'\n\nexport default [\n {\n type: 'legend-status',\n element: 'property-editor-legend-status'\n },\n {\n type: 'svg-info',\n element: 'property-editor-svg-info'\n }\n]\n"]}
@@ -1,4 +1,4 @@
1
- import './editor-legend-status';
1
+ import './editor-legend-status.js';
2
2
  import { OxPropertyEditor, PropertySpec } from '@operato/property-editor';
3
3
  export declare class PropertyEditorLegendStatus extends OxPropertyEditor {
4
4
  editorTemplate(value: any, spec: PropertySpec): import("lit-html").TemplateResult<1>;
@@ -1,5 +1,5 @@
1
1
  import { __decorate } from "tslib";
2
- import './editor-legend-status';
2
+ import './editor-legend-status.js';
3
3
  import { html } from 'lit';
4
4
  import { customElement } from 'lit/decorators.js';
5
5
  import { OxPropertyEditor } from '@operato/property-editor';
@@ -1 +1 @@
1
- {"version":3,"file":"property-editor-legend-status.js","sourceRoot":"","sources":["../../src/editors/property-editor-legend-status.ts"],"names":[],"mappings":";AAAA,OAAO,wBAAwB,CAAA;AAE/B,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,OAAO,EAAE,gBAAgB,EAAgB,MAAM,0BAA0B,CAAA;AAGlE,IAAM,0BAA0B,GAAhC,MAAM,0BAA2B,SAAQ,gBAAgB;IAC9D,cAAc,CAAC,KAAU,EAAE,IAAkB;QAC3C,OAAO,IAAI,CAAA,iCAAiC,KAAK,qCAAqC,CAAA;IACxF,CAAC;CACF,CAAA;AAJY,0BAA0B;IADtC,aAAa,CAAC,+BAA+B,CAAC;GAClC,0BAA0B,CAItC","sourcesContent":["import './editor-legend-status'\n\nimport { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\n\nimport { OxPropertyEditor, PropertySpec } from '@operato/property-editor'\n\n@customElement('property-editor-legend-status')\nexport class PropertyEditorLegendStatus extends OxPropertyEditor {\n editorTemplate(value: any, spec: PropertySpec) {\n return html` <editor-legend-status .value=${value} fullwidth></editor-legend-status> `\n }\n}\n"]}
1
+ {"version":3,"file":"property-editor-legend-status.js","sourceRoot":"","sources":["../../src/editors/property-editor-legend-status.ts"],"names":[],"mappings":";AAAA,OAAO,2BAA2B,CAAA;AAElC,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,OAAO,EAAE,gBAAgB,EAAgB,MAAM,0BAA0B,CAAA;AAGlE,IAAM,0BAA0B,GAAhC,MAAM,0BAA2B,SAAQ,gBAAgB;IAC9D,cAAc,CAAC,KAAU,EAAE,IAAkB;QAC3C,OAAO,IAAI,CAAA,iCAAiC,KAAK,qCAAqC,CAAA;IACxF,CAAC;CACF,CAAA;AAJY,0BAA0B;IADtC,aAAa,CAAC,+BAA+B,CAAC;GAClC,0BAA0B,CAItC","sourcesContent":["import './editor-legend-status.js'\n\nimport { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\n\nimport { OxPropertyEditor, PropertySpec } from '@operato/property-editor'\n\n@customElement('property-editor-legend-status')\nexport class PropertyEditorLegendStatus extends OxPropertyEditor {\n editorTemplate(value: any, spec: PropertySpec) {\n return html` <editor-legend-status .value=${value} fullwidth></editor-legend-status> `\n }\n}\n"]}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export { default as Legend } from './legend';
2
- export { default as LegendItem } from './legend-item';
3
- export { default as Svg } from './svg';
1
+ export { default as Legend } from './legend.js';
2
+ export { default as LegendItem } from './legend-item.js';
3
+ export { default as Svg } from './svg.js';
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  * Copyright © HatioLab Inc. All rights reserved.
3
3
  */
4
- export { default as Legend } from './legend';
5
- export { default as LegendItem } from './legend-item';
6
- export { default as Svg } from './svg';
4
+ export { default as Legend } from './legend.js';
5
+ export { default as LegendItem } from './legend-item.js';
6
+ export { default as Svg } from './svg.js';
7
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,eAAe,CAAA;AAErD,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,OAAO,CAAA","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nexport { default as Legend } from './legend'\nexport { default as LegendItem } from './legend-item'\n\nexport { default as Svg } from './svg'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAExD,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,UAAU,CAAA","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nexport { default as Legend } from './legend.js'\nexport { default as LegendItem } from './legend-item.js'\n\nexport { default as Svg } from './svg.js'\n"]}
package/dist/svg.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"svg.js","sourceRoot":"","sources":["../src/svg.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'image-selector',\n label: 'image-src',\n name: 'src',\n property: {\n displayField: 'id',\n displayFullUrl: true,\n baseUrlAlias: '$base_url',\n defaultStorage: 'scene-image',\n storageFilters: {\n type: Array,\n value: [\n {\n name: 'category',\n value: 'image'\n }\n ]\n },\n useUpload: true\n },\n observe: function (this: HTMLElement, src: string) {\n const info: any = this.parentNode!.querySelector('[name=svgInfo]')\n info.src = src\n }\n },\n {\n type: 'svg-info',\n label: 'svg-info',\n name: 'svgInfo',\n readonly: true,\n editor: {\n fullwidth: true\n }\n },\n {\n type: 'id-input',\n label: 'legend-target',\n name: 'legendTarget',\n property: {\n component: 'legend'\n }\n },\n {\n type: 'string',\n label: 'id-field',\n name: 'idField'\n },\n {\n type: 'string',\n label: 'value-field',\n name: 'valueField'\n }\n ]\n}\n\nimport { Component, ComponentNature, HTMLOverlayElement, Properties } from '@hatiolab/things-scene'\nimport Legend from './legend'\n\nexport default class Svg extends HTMLOverlayElement {\n static get nature() {\n return NATURE\n }\n\n async oncreate_element(div: HTMLDivElement) {\n await this.loadSVG(div)\n }\n\n private _value?: any\n private _legendTarget?: Component\n\n get legendTarget() {\n var { legendTarget } = this.state\n\n if (!this._legendTarget && legendTarget) {\n this._legendTarget = this.root.findById(legendTarget)\n this._legendTarget && this._legendTarget.on('change', this.onchangeData, this)\n }\n\n return this._legendTarget\n }\n\n async loadSVG(div: HTMLElement) {\n try {\n const parser = new DOMParser()\n\n const response = await fetch(this.src)\n\n div.innerHTML = ''\n\n if (response.ok) {\n const text = await response.text()\n const doc = await parser.parseFromString(text, 'image/svg+xml')\n const element = doc.querySelector('svg')\n\n element && div.appendChild(element)\n } else {\n const error = await response.text()\n console.error('load SVG error', error)\n }\n } catch (error) {\n console.error(error)\n }\n }\n\n async setElementProperties(div: HTMLDivElement) {}\n\n get src() {\n return this.getState('src')\n }\n\n set src(src) {\n this.setState('src', src)\n }\n\n onchange(after: Properties, before: Properties) {\n 'src' in after && this.onchangeSrc(after.src)\n 'value' in after && this.onchangeValue(after.value)\n }\n\n onchangeSrc(src: string) {\n this.loadSVG(this.element)\n }\n\n onchangeValue(value: any): void {\n if (typeof this.value !== 'object' || !Array.isArray(this.value)) {\n return\n }\n\n const { idField, valueField } = this.state\n const legendTarget = this.legendTarget\n\n if (!legendTarget) {\n return\n }\n\n const {\n field: statusField,\n defaultColor,\n ranges\n } = legendTarget.getState('status') as {\n field: string\n defaultColor: string\n ranges: { min: number; max: number; color: string }[]\n }\n\n if (!(statusField && ranges)) {\n return\n }\n\n this.value.forEach(item => {\n if (!(idField in item) || !(valueField in item)) {\n return\n }\n\n var id = item[idField]\n var status = Number(item[valueField])\n\n var range = ranges.find((range, index) => {\n let { min, max } = range\n\n min = Number(min) || min\n max = Number(max) || max\n\n return max > status && (min === undefined || min <= status)\n })\n\n const paths = this.element.querySelectorAll(`path[id=\"${String(id)}\"]`) as NodeListOf<SVGPathElement>\n paths.forEach(path => {\n path.style.fill = range?.color || defaultColor || 'transparent'\n })\n })\n }\n\n get tagName() {\n return 'div'\n }\n\n get nature() {\n return NATURE\n }\n\n get value() {\n return this._value\n }\n\n set value(value) {\n this._value = value\n this.onchangeValue(value)\n }\n}\n\nComponent.register('svg', Svg)\n"]}
1
+ {"version":3,"file":"svg.js","sourceRoot":"","sources":["../src/svg.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'image-selector',\n label: 'image-src',\n name: 'src',\n property: {\n displayField: 'id',\n displayFullUrl: true,\n baseUrlAlias: '$base_url',\n defaultStorage: 'scene-image',\n storageFilters: {\n type: Array,\n value: [\n {\n name: 'category',\n value: 'image'\n }\n ]\n },\n useUpload: true\n },\n observe: function (this: HTMLElement, src: string) {\n const info: any = this.parentNode!.querySelector('[name=svgInfo]')\n info.src = src\n }\n },\n {\n type: 'svg-info',\n label: 'svg-info',\n name: 'svgInfo',\n readonly: true,\n editor: {\n fullwidth: true\n }\n },\n {\n type: 'id-input',\n label: 'legend-target',\n name: 'legendTarget',\n property: {\n component: 'legend'\n }\n },\n {\n type: 'string',\n label: 'id-field',\n name: 'idField'\n },\n {\n type: 'string',\n label: 'value-field',\n name: 'valueField'\n }\n ]\n}\n\nimport { Component, ComponentNature, HTMLOverlayElement, Properties } from '@hatiolab/things-scene'\nimport Legend from './legend.js'\n\nexport default class Svg extends HTMLOverlayElement {\n static get nature() {\n return NATURE\n }\n\n async oncreate_element(div: HTMLDivElement) {\n await this.loadSVG(div)\n }\n\n private _value?: any\n private _legendTarget?: Component\n\n get legendTarget() {\n var { legendTarget } = this.state\n\n if (!this._legendTarget && legendTarget) {\n this._legendTarget = this.root.findById(legendTarget)\n this._legendTarget && this._legendTarget.on('change', this.onchangeData, this)\n }\n\n return this._legendTarget\n }\n\n async loadSVG(div: HTMLElement) {\n try {\n const parser = new DOMParser()\n\n const response = await fetch(this.src)\n\n div.innerHTML = ''\n\n if (response.ok) {\n const text = await response.text()\n const doc = await parser.parseFromString(text, 'image/svg+xml')\n const element = doc.querySelector('svg')\n\n element && div.appendChild(element)\n } else {\n const error = await response.text()\n console.error('load SVG error', error)\n }\n } catch (error) {\n console.error(error)\n }\n }\n\n async setElementProperties(div: HTMLDivElement) {}\n\n get src() {\n return this.getState('src')\n }\n\n set src(src) {\n this.setState('src', src)\n }\n\n onchange(after: Properties, before: Properties) {\n 'src' in after && this.onchangeSrc(after.src)\n 'value' in after && this.onchangeValue(after.value)\n }\n\n onchangeSrc(src: string) {\n this.loadSVG(this.element)\n }\n\n onchangeValue(value: any): void {\n if (typeof this.value !== 'object' || !Array.isArray(this.value)) {\n return\n }\n\n const { idField, valueField } = this.state\n const legendTarget = this.legendTarget\n\n if (!legendTarget) {\n return\n }\n\n const {\n field: statusField,\n defaultColor,\n ranges\n } = legendTarget.getState('status') as {\n field: string\n defaultColor: string\n ranges: { min: number; max: number; color: string }[]\n }\n\n if (!(statusField && ranges)) {\n return\n }\n\n this.value.forEach(item => {\n if (!(idField in item) || !(valueField in item)) {\n return\n }\n\n var id = item[idField]\n var status = Number(item[valueField])\n\n var range = ranges.find((range, index) => {\n let { min, max } = range\n\n min = Number(min) || min\n max = Number(max) || max\n\n return max > status && (min === undefined || min <= status)\n })\n\n const paths = this.element.querySelectorAll(`path[id=\"${String(id)}\"]`) as NodeListOf<SVGPathElement>\n paths.forEach(path => {\n path.style.fill = range?.color || defaultColor || 'transparent'\n })\n })\n }\n\n get tagName() {\n return 'div'\n }\n\n get nature() {\n return NATURE\n }\n\n get value() {\n return this._value\n }\n\n set value(value) {\n this._value = value\n this.onchangeValue(value)\n }\n}\n\nComponent.register('svg', Svg)\n"]}
@@ -1,4 +1,4 @@
1
- import legend from './legend';
2
- import svg from './svg';
1
+ import legend from './legend.js';
2
+ import svg from './svg.js';
3
3
  export default [legend, svg];
4
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,UAAU,CAAA;AAC7B,OAAO,GAAG,MAAM,OAAO,CAAA;AAEvB,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA","sourcesContent":["import legend from './legend'\nimport svg from './svg'\n\nexport default [legend, svg]\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,GAAG,MAAM,UAAU,CAAA;AAE1B,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA","sourcesContent":["import legend from './legend.js'\nimport svg from './svg.js'\n\nexport default [legend, svg]\n"]}
package/package.json CHANGED
@@ -2,7 +2,8 @@
2
2
  "name": "@operato/scene-legend",
3
3
  "description": "Legend component for things-scene.",
4
4
  "author": "heartyoh",
5
- "version": "9.0.0-beta.0",
5
+ "version": "9.0.0-beta.10",
6
+ "type": "module",
6
7
  "main": "dist/index.js",
7
8
  "module": "dist/index.js",
8
9
  "license": "MIT",
@@ -33,14 +34,14 @@
33
34
  },
34
35
  "devDependencies": {
35
36
  "@hatiolab/prettier-config": "^1.0.0",
36
- "@things-factory/builder": "^8.0.0-beta",
37
- "@things-factory/operato-board": "^8.0.0-beta",
37
+ "@things-factory/builder": "^9.0.0-beta",
38
+ "@things-factory/operato-board": "^9.0.0-beta",
38
39
  "@typescript-eslint/eslint-plugin": "^4.33.0",
39
40
  "@typescript-eslint/parser": "^4.33.0",
40
41
  "@web/dev-server": "^0.1.28",
41
42
  "concurrently": "^8.0.1",
42
- "eslint": "^8.39.0",
43
- "eslint-config-prettier": "^8.3.0",
43
+ "eslint": "^9.18.0",
44
+ "eslint-config-prettier": "^10.0.1",
44
45
  "husky": "^8.0.3",
45
46
  "lint-staged": "^13.2.2",
46
47
  "prettier": "^2.4.1",
@@ -59,5 +60,5 @@
59
60
  "prettier --write"
60
61
  ]
61
62
  },
62
- "gitHead": "87f7a74e8b66f6cc6f19b9c75a7c9a03637ab7ac"
63
+ "gitHead": "edf5290813f0a437033a46fe52f4bea9e411b55a"
63
64
  }
@@ -1,7 +1,7 @@
1
- import editors from "./dist/editors";
2
- import templates from "./dist/templates";
1
+ import editors from './dist/editors/index.js'
2
+ import templates from './dist/templates/index.js'
3
3
 
4
4
  export default {
5
5
  templates,
6
- editors,
7
- };
6
+ editors
7
+ }