@operato/scene-legend 10.0.0-beta.2 → 10.0.0-beta.30
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 +23 -19
- package/dist/editors/editor-legend-status.js +4 -5
- package/dist/editors/editor-legend-status.js.map +1 -1
- package/dist/editors/property-editor-svg-info.js +0 -1
- package/dist/editors/property-editor-svg-info.js.map +1 -1
- package/dist/legend-item.d.ts +37 -37
- package/dist/legend-item.js.map +1 -1
- package/dist/legend.d.ts +1 -8
- package/dist/legend.js.map +1 -1
- package/dist/templates/legend.js +1 -1
- package/dist/templates/legend.js.map +1 -1
- package/dist/templates/svg.js +1 -1
- package/dist/templates/svg.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,31 +1,35 @@
|
|
|
1
|
-
|
|
1
|
+
# @operato/scene-legend
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> Legend component for things-scene.
|
|
4
4
|
|
|
5
|
-
-
|
|
6
|
-
- 범례 : 컬러 또는 이미지, 레이블
|
|
5
|
+
<!-- AUTOGEN_BEGIN: do not edit between markers (run scripts/regenerate-readmes.mjs to update) -->
|
|
7
6
|
|
|
8
|
-
|
|
7
|
+
## Components
|
|
9
8
|
|
|
10
|
-
-
|
|
9
|
+
- `Legend`
|
|
10
|
+
- `LegendItem`
|
|
11
|
+
- `Svg`
|
|
11
12
|
|
|
12
|
-
|
|
13
|
+
## Install
|
|
13
14
|
|
|
14
|
-
|
|
15
|
-
-
|
|
15
|
+
```bash
|
|
16
|
+
yarn add @operato/scene-legend
|
|
17
|
+
```
|
|
16
18
|
|
|
17
|
-
|
|
19
|
+
## Usage
|
|
18
20
|
|
|
19
|
-
|
|
21
|
+
```ts
|
|
22
|
+
import { Legend, LegendItem, Svg } from '@operato/scene-legend'
|
|
23
|
+
```
|
|
20
24
|
|
|
21
|
-
|
|
25
|
+
## Build
|
|
22
26
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
| UMD | things-scene-legend-ie.js | ie 11 | O |
|
|
27
|
-
| ESM | things-scene-legend.mjs | modern browser | O |
|
|
27
|
+
```bash
|
|
28
|
+
yarn build
|
|
29
|
+
```
|
|
28
30
|
|
|
29
|
-
|
|
31
|
+
Output: ESM module at `dist/index.js` (single bundle, no UMD/IE legacy).
|
|
30
32
|
|
|
31
|
-
|
|
33
|
+
_Version: 10.0.0-beta.7_
|
|
34
|
+
|
|
35
|
+
<!-- AUTOGEN_END -->
|
|
@@ -89,11 +89,10 @@ let EditorLegendStatus = class EditorLegendStatus extends LitElement {
|
|
|
89
89
|
}
|
|
90
90
|
`
|
|
91
91
|
];
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
_ranges = [];
|
|
92
|
+
constructor() {
|
|
93
|
+
super();
|
|
94
|
+
this._ranges = [];
|
|
95
|
+
}
|
|
97
96
|
boundOnChange;
|
|
98
97
|
_changingNow = false;
|
|
99
98
|
render() {
|
|
@@ -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 _aggregation: string = 'sum'\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=\"stock-aggregation\">\n <ox-i18n msgid=\"label.aggregation-function\">aggregation function</ox-i18n>\n </label>\n <select\n .value=${this._aggregation}\n @change=${(e: Event) => {\n this._aggregation = (e.target as HTMLSelectElement).value\n }}\n >\n <option value=\"sum\">sum</option>\n <option value=\"avg\">avg</option>\n <option value=\"min\">min</option>\n <option value=\"max\">max</option>\n </select>\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 ≤ <br />Field<br />\n < 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._aggregation = val.aggregation || 'sum'\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 aggregation: this._aggregation,\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 aggregation: this._aggregation,\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 aggregation: 'sum',\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 }) declare value: any\n\n @state() declare private _statusField: string | undefined\n @state() declare private _aggregation: string\n @state() declare private _defaultColor: string | undefined\n @state() declare private _ranges: any[]\n\n constructor() {\n super()\n this._ranges = []\n }\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=\"stock-aggregation\">\n <ox-i18n msgid=\"label.aggregation-function\">aggregation function</ox-i18n>\n </label>\n <select\n .value=${this._aggregation}\n @change=${(e: Event) => {\n this._aggregation = (e.target as HTMLSelectElement).value\n }}\n >\n <option value=\"sum\">sum</option>\n <option value=\"avg\">avg</option>\n <option value=\"min\">min</option>\n <option value=\"max\">max</option>\n </select>\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 ≤ <br />Field<br />\n < 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._aggregation = val.aggregation || 'sum'\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 aggregation: this._aggregation,\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 aggregation: this._aggregation,\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 aggregation: 'sum',\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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"property-editor-svg-info.js","sourceRoot":"","sources":["../../src/editors/property-editor-svg-info.ts"],"names":[],"mappings":";AAAA,OAAO,0BAA0B,CAAA;AAEjC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAkC,MAAM,KAAK,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAElE,OAAO,EAAE,gBAAgB,EAAgB,MAAM,0BAA0B,CAAA;AAI1D,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,gBAAgB;IACzD,MAAM,CAAC,MAAM,GAAG;QACd,GAAG,gBAAgB,CAAC,MAAM;QAC1B,GAAG,CAAA;;;;;KAKF;KACF,CAAA;IAE2B,GAAG,CAAS;
|
|
1
|
+
{"version":3,"file":"property-editor-svg-info.js","sourceRoot":"","sources":["../../src/editors/property-editor-svg-info.ts"],"names":[],"mappings":";AAAA,OAAO,0BAA0B,CAAA;AAEjC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAkC,MAAM,KAAK,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAElE,OAAO,EAAE,gBAAgB,EAAgB,MAAM,0BAA0B,CAAA;AAI1D,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,gBAAgB;IACzD,MAAM,CAAC,MAAM,GAAG;QACd,GAAG,gBAAgB,CAAC,MAAM;QAC1B,GAAG,CAAA;;;;;KAKF;KACF,CAAA;IAE2B,GAAG,CAAS;IAIhC,cAAc,GAAU,EAAE,CAAA;IAElC,cAAc,CAAC,KAAU,EAAE,IAAkB;QAC3C,OAAO,IAAI,CAAA;;;YAGH,IAAI,CAAC,GAAG,CAAC,GAAG,CACZ,IAAI,CAAC,EAAE,CACL,IAAI,CAAA,mBAAmB,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;wCACnE,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE;oBAC/C,CACT;;;KAGN,CAAA;IACH,CAAC;IAED,YAAY,CAAC,IAAoB;QAC/B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACzC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAA;IACzB,CAAC;IAED,UAAU,CAAC,IAAoB;QAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAA;IAC7C,CAAC;IAED,OAAO,CAAC,OAA6B;QACnC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,iBAAiB,EAAE;gBACjC,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE;oBACN,QAAQ,EAAE,CAAC,QAAe,EAAE,EAAE;wBAC5B,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAI,CAAC,CAAA;oBAC9C,CAAC;iBACF;aACF,CAAC,CACH,CAAA;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,SAAoB,EAAE,GAAW;QACrD,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;YACxB,OAAM;QACR,CAAC;QAED,MAAM,OAAO,GAAI,SAA6C,CAAC,OAAyB,CAAA;QAExF,MAAM,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAA;QACrD,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAQ,CAAA;IAC1D,CAAC;;AAvD2B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0CAAa;AAEvB;IAAhB,KAAK,EAAE;0CAA8B;AAbnB,aAAa;IADjC,aAAa,CAAC,0BAA0B,CAAC;GACrB,aAAa,CAmEjC;eAnEoB,aAAa","sourcesContent":["import '@operato/i18n/ox-i18n.js'\n\nimport { css, html, PropertyValues, TemplateResult } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\n\nimport { OxPropertyEditor, PropertySpec } from '@operato/property-editor'\nimport { Component, HTMLOverlayContainer } from '@hatiolab/things-scene'\n\n@customElement('property-editor-svg-info')\nexport default class SVGInfoEditor extends OxPropertyEditor {\n static styles = [\n ...OxPropertyEditor.styles,\n css`\n ul[info] {\n margin: 0;\n font-size: 1em;\n }\n `\n ]\n\n @property({ type: String }) src?: string\n\n @state() declare ids: SVGPathElement[]\n\n private fillStyleSaved: any[] = []\n\n editorTemplate(value: any, spec: PropertySpec): TemplateResult {\n return html`\n <fieldset fullwidth>\n <ul info>\n ${this.ids.map(\n path =>\n html`<li @mouseenter=${() => this.onEnterEvent(path)} @mouseout=${() => this.onOutEvent(path)}>\n <div style=\"fillStyle:${path.style.fill}\">${path.id}</div>\n </li>`\n )}\n </ul>\n </fieldset>\n `\n }\n\n onEnterEvent(path: SVGPathElement) {\n this.fillStyleSaved.push(path.style.fill)\n path.style.fill = 'red'\n }\n\n onOutEvent(path: SVGPathElement) {\n path.style.fill = this.fillStyleSaved.pop()\n }\n\n updated(changes: PropertyValues<this>) {\n if (changes.has('src')) {\n this.dispatchEvent(\n new CustomEvent('i-need-selected', {\n bubbles: true,\n composed: true,\n detail: {\n callback: (selected: any[]) => {\n this.fetchSourceInfo(selected[0], this.src!)\n }\n }\n })\n )\n }\n }\n\n async fetchSourceInfo(component: Component, src: string) {\n if (!src || !src.trim()) {\n return\n }\n\n const element = (component as unknown as HTMLOverlayContainer).element as HTMLDivElement\n\n const elements = element.querySelectorAll('path[id]')\n this.ids = Array.from(elements).map(path => path) as any\n }\n}\n"]}
|
package/dist/legend-item.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ComponentNature, Properties, Shape } from '@hatiolab/things-scene';
|
|
2
2
|
declare const LegendItem_base: (new (...args: any[]) => {
|
|
3
3
|
contains(x: number, y: number): boolean;
|
|
4
4
|
get path(): {
|
|
@@ -49,7 +49,7 @@ declare const LegendItem_base: (new (...args: any[]) => {
|
|
|
49
49
|
get disposed(): boolean;
|
|
50
50
|
isLayer(): boolean;
|
|
51
51
|
isGroup(): boolean;
|
|
52
|
-
isContainer(): this is import("@hatiolab/things-scene
|
|
52
|
+
isContainer(): this is import("@hatiolab/things-scene").Container;
|
|
53
53
|
isLine(): boolean;
|
|
54
54
|
isRoot(): boolean;
|
|
55
55
|
isRootModel(): boolean;
|
|
@@ -65,9 +65,9 @@ declare const LegendItem_base: (new (...args: any[]) => {
|
|
|
65
65
|
get(property: any): any;
|
|
66
66
|
set(props: any, propval?: any): any;
|
|
67
67
|
getState(property: any): any;
|
|
68
|
-
setState(props:
|
|
68
|
+
setState(props: Partial<import("@hatiolab/things-scene").State> | string, propval?: any): any;
|
|
69
69
|
get model(): any;
|
|
70
|
-
get state():
|
|
70
|
+
get state(): import("@hatiolab/things-scene").State;
|
|
71
71
|
get hierarchy(): any;
|
|
72
72
|
get volatile(): never[];
|
|
73
73
|
_applyProps(target: any, props: any, options: any): any;
|
|
@@ -103,7 +103,7 @@ declare const LegendItem_base: (new (...args: any[]) => {
|
|
|
103
103
|
draw(context?: import("@hatiolab/things-scene").SceneRenderContext): void;
|
|
104
104
|
prerender(context: import("@hatiolab/things-scene").SceneRenderContext): void;
|
|
105
105
|
postrender(context: import("@hatiolab/things-scene").SceneRenderContext): void;
|
|
106
|
-
prepare(resolve: (component: Component) => void, reject: (reason: any) => void): void;
|
|
106
|
+
prepare(resolve: (component: import("@hatiolab/things-scene").Component) => void, reject: (reason: any) => void): void;
|
|
107
107
|
prepareIf(condition: boolean): void;
|
|
108
108
|
drawText(context: import("@hatiolab/things-scene").SceneRenderContext): void;
|
|
109
109
|
drawStroke(context: import("@hatiolab/things-scene").SceneRenderContext, override?: Record<string, unknown>): void;
|
|
@@ -154,16 +154,16 @@ declare const LegendItem_base: (new (...args: any[]) => {
|
|
|
154
154
|
get started(): boolean;
|
|
155
155
|
set started(v: boolean): any;
|
|
156
156
|
get controls(): import("@hatiolab/things-scene").Control[] | undefined;
|
|
157
|
-
findFirst(finder: string | ((c: Component) => boolean), ...others: any[]): Component | undefined;
|
|
158
|
-
findAll(s: string | ((c: Component) => boolean), ...others: any[]): any[] | undefined;
|
|
159
|
-
capture(x: number, y: number, except?: (c: Component) => boolean): any;
|
|
157
|
+
findFirst(finder: string | ((c: import("@hatiolab/things-scene").Component) => boolean), ...others: any[]): import("@hatiolab/things-scene").Component | undefined;
|
|
158
|
+
findAll(s: string | ((c: import("@hatiolab/things-scene").Component) => boolean), ...others: any[]): any[] | undefined;
|
|
159
|
+
capture(x: number, y: number, except?: (c: import("@hatiolab/things-scene").Component) => boolean): any;
|
|
160
160
|
findAnchor(name: string): any;
|
|
161
|
-
isDescendible(container: Component): boolean;
|
|
161
|
+
isDescendible(container: import("@hatiolab/things-scene").Component): boolean;
|
|
162
162
|
getContext(component?: unknown): any;
|
|
163
|
-
get root(): Component;
|
|
164
|
-
get rootModel(): Component;
|
|
165
|
-
get parent(): Component;
|
|
166
|
-
set parent(v: Component): any;
|
|
163
|
+
get root(): import("@hatiolab/things-scene").Component;
|
|
164
|
+
get rootModel(): import("@hatiolab/things-scene").Component;
|
|
165
|
+
get parent(): import("@hatiolab/things-scene").Component;
|
|
166
|
+
set parent(v: import("@hatiolab/things-scene").Component): any;
|
|
167
167
|
get scalable(): boolean;
|
|
168
168
|
get stuck(): boolean;
|
|
169
169
|
get capturable(): boolean;
|
|
@@ -188,20 +188,20 @@ declare const LegendItem_base: (new (...args: any[]) => {
|
|
|
188
188
|
ondropfile(transfered: FileList, files: string[]): void;
|
|
189
189
|
transcoordS2P(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
|
|
190
190
|
transcoordP2S(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
|
|
191
|
-
transcoordS2T(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
|
|
192
|
-
transcoordT2P(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
|
|
193
|
-
transcoordT2S(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
|
|
194
|
-
transcoordS2TR(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
|
|
195
|
-
transcoordS2O(x: number, y: number, target: Component): import("@hatiolab/things-scene").POINT;
|
|
196
|
-
transcoordC2S(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
|
|
197
|
-
transcoordS2C(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
|
|
191
|
+
transcoordS2T(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
|
|
192
|
+
transcoordT2P(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
|
|
193
|
+
transcoordT2S(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
|
|
194
|
+
transcoordS2TR(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
|
|
195
|
+
transcoordS2O(x: number, y: number, target: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
|
|
196
|
+
transcoordC2S(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
|
|
197
|
+
transcoordS2C(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
|
|
198
198
|
toParent(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
|
|
199
199
|
fromParent(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
|
|
200
|
-
toScene(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
|
|
201
|
-
fromScene(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
|
|
202
|
-
toLocal(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
|
|
203
|
-
toGlobal(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
|
|
204
|
-
toOther(x: number, y: number, target: Component): import("@hatiolab/things-scene").POINT;
|
|
200
|
+
toScene(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
|
|
201
|
+
fromScene(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
|
|
202
|
+
toLocal(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
|
|
203
|
+
toGlobal(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
|
|
204
|
+
toOther(x: number, y: number, target: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
|
|
205
205
|
on(name: string | object, callback: Function, context?: any): any;
|
|
206
206
|
off(name?: string | object, callback?: Function, context?: any): any;
|
|
207
207
|
once(name: string | object, callback: Function, context?: any): any;
|
|
@@ -211,24 +211,24 @@ declare const LegendItem_base: (new (...args: any[]) => {
|
|
|
211
211
|
onchange(after: Record<string, any>, before: Record<string, any>): void;
|
|
212
212
|
calculateBounds?(): void;
|
|
213
213
|
oncreate_element?(element: HTMLElement): void;
|
|
214
|
-
removeComponent(component: Component, ghost?: boolean): void;
|
|
215
|
-
addComponent(component: Component, ghost?: boolean): void;
|
|
216
|
-
insertComponentAt(component: Component, index: number, ghost?: boolean): void;
|
|
217
|
-
getOverlay(component: Component): HTMLElement | undefined;
|
|
218
|
-
findById(id: string): Component | undefined;
|
|
219
|
-
findByRefid(ref: string | number): Component | undefined;
|
|
220
|
-
findAllById(id: string): Component[];
|
|
214
|
+
removeComponent(component: import("@hatiolab/things-scene").Component, ghost?: boolean): void;
|
|
215
|
+
addComponent(component: import("@hatiolab/things-scene").Component, ghost?: boolean): void;
|
|
216
|
+
insertComponentAt(component: import("@hatiolab/things-scene").Component, index: number, ghost?: boolean): void;
|
|
217
|
+
getOverlay(component: import("@hatiolab/things-scene").Component): HTMLElement | undefined;
|
|
218
|
+
findById(id: string): import("@hatiolab/things-scene").Component | undefined;
|
|
219
|
+
findByRefid(ref: string | number): import("@hatiolab/things-scene").Component | undefined;
|
|
220
|
+
findAllById(id: string): import("@hatiolab/things-scene").Component[];
|
|
221
221
|
resize(): void;
|
|
222
222
|
fit(type?: string): void;
|
|
223
|
-
get components(): Component[] | undefined;
|
|
223
|
+
get components(): import("@hatiolab/things-scene").Component[] | undefined;
|
|
224
224
|
get layout(): any;
|
|
225
225
|
get auxOverlay(): HTMLElement | undefined;
|
|
226
226
|
get isReady(): boolean;
|
|
227
227
|
get unitScale(): number;
|
|
228
|
-
get selected(): Component[];
|
|
229
|
-
set selected(_v: Component[]): any;
|
|
230
|
-
get focused(): Component | null;
|
|
231
|
-
set focused(_v: Component | null): any;
|
|
228
|
+
get selected(): import("@hatiolab/things-scene").Component[];
|
|
229
|
+
set selected(_v: import("@hatiolab/things-scene").Component[]): any;
|
|
230
|
+
get focused(): import("@hatiolab/things-scene").Component | null;
|
|
231
|
+
set focused(_v: import("@hatiolab/things-scene").Component | null): any;
|
|
232
232
|
get hasSameParentForAllSelected(): boolean;
|
|
233
233
|
set hasSameParentForAllSelected(_v: boolean): any;
|
|
234
234
|
get fitMode(): string | undefined;
|
package/dist/legend-item.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"legend-item.js","sourceRoot":"","sources":["../src/legend-item.ts"],"names":[],"mappings":";AAAA;;GAEG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"legend-item.js","sourceRoot":"","sources":["../src/legend-item.ts"],"names":[],"mappings":";AAAA;;GAEG;AACH,OAAO,EAA+B,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAErG,MAAM,MAAM,GAAoB;IAC9B,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE,EAAE;CACf,CAAA;AAGc,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,QAAQ,CAAC,KAAK,CAAC;IACrD,MAAM,CAAC,OAAiC;QACtC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QAE7C,OAAO,CAAC,SAAS,EAAE,CAAA;QAEnB,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,CAAA;QAClB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAEb,OAAO,CAAC,IAAI,EAAE,CAAA;QAEd,OAAO,CAAC,SAAS,GAAG,KAAK,CAAA;QACzB,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAA;QACjE,OAAO,CAAC,WAAW,GAAG,kBAAkB,CAAA;QACxC,OAAO,CAAC,UAAU,GAAG,CAAC,CAAA;QACtB,OAAO,CAAC,aAAa,GAAG,CAAC,CAAA;QACzB,OAAO,CAAC,aAAa,GAAG,CAAC,CAAA;QACzB,OAAO,CAAC,IAAI,EAAE,CAAA;QAEd,OAAO,CAAC,OAAO,EAAE,CAAA;IACnB,CAAC;IAED,QAAQ,CAAC,KAAiB;QACxB,IAAI,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC;YAAE,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IAC3E,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,MAAM;QACR,OAAO,MAAM,CAAA;IACf,CAAC;CACF,CAAA;AArCoB,UAAU;IAD9B,cAAc,CAAC,aAAa,CAAC;GACT,UAAU,CAqC9B;eArCoB,UAAU","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\nimport { ComponentNature, Properties, RectPath, Shape, sceneComponent } from '@hatiolab/things-scene'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: false,\n rotatable: false,\n properties: []\n}\n\n@sceneComponent('legend-item')\nexport default class LegendItem extends RectPath(Shape) {\n render(context: CanvasRenderingContext2D) {\n var { left, top, height, color } = this.state\n\n context.beginPath()\n\n var c = height / 2\n var r = c / 2\n\n context.save()\n\n context.fillStyle = color\n context.ellipse(left + c, top + c, r, r, 0, 0, Math.PI * 2, true)\n context.shadowColor = 'rgba(0,0,0,0.15)'\n context.shadowBlur = 2\n context.shadowOffsetX = 1\n context.shadowOffsetY = 2\n context.fill()\n\n context.restore()\n }\n\n onchange(after: Properties) {\n if (after.hasOwnProperty('height')) this.set('paddingLeft', after.height)\n }\n\n get stuck() {\n return true\n }\n\n get capturable() {\n return false\n }\n\n get nature() {\n return NATURE\n }\n}\n"]}
|
package/dist/legend.d.ts
CHANGED
|
@@ -10,14 +10,7 @@ export default class Legend extends Container {
|
|
|
10
10
|
ondragmove: (point: POSITION, index: number, component: Component) => void;
|
|
11
11
|
};
|
|
12
12
|
}[];
|
|
13
|
-
get layout():
|
|
14
|
-
reflow(container: import("@hatiolab/things-scene/dist-types/types/component").Container): void;
|
|
15
|
-
capturables(container: import("@hatiolab/things-scene/dist-types/types/component").Container): import("@hatiolab/things-scene").ComponentInterface[];
|
|
16
|
-
drawables(container: import("@hatiolab/things-scene/dist-types/types/component").Container): import("@hatiolab/things-scene").ComponentInterface[];
|
|
17
|
-
isStuck(component: import("@hatiolab/things-scene").ComponentInterface): boolean;
|
|
18
|
-
keyNavigate(container: import("@hatiolab/things-scene/dist-types/types/component").Container, component: import("@hatiolab/things-scene").ComponentInterface, e: KeyboardEvent): import("@hatiolab/things-scene").ComponentInterface | undefined;
|
|
19
|
-
joinType: boolean;
|
|
20
|
-
};
|
|
13
|
+
get layout(): any;
|
|
21
14
|
get nature(): ComponentNature;
|
|
22
15
|
rebuildLegendItems(): void;
|
|
23
16
|
get hasTextProperty(): boolean;
|
package/dist/legend.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"legend.js","sourceRoot":"","sources":["../src/legend.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\nimport {\n Component,\n ComponentNature,\n Container,\n Model,\n POSITION,\n Properties,\n TableLayout,\n sceneComponent\n} from '@hatiolab/things-scene'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'number',\n label: 'rows',\n name: 'rows'\n },\n {\n type: 'number',\n label: 'columns',\n name: 'columns'\n },\n {\n type: 'select',\n label: 'direction',\n name: 'direction',\n property: {\n options: [\n {\n display: 'Horizontal',\n value: 'horizontal'\n },\n {\n display: 'Vertical',\n value: 'vertical'\n }\n ]\n }\n },\n {\n type: 'number',\n label: 'round',\n name: 'round'\n },\n {\n type: 'legend-status',\n label: '',\n name: 'status'\n }\n ],\n help: 'scene/component/legend'\n}\n\nvar controlHandler = {\n ondragmove: function (point: POSITION, index: number, component: Component) {\n var { left, top, width, height } = component.model\n /*\n * point의 좌표는 부모 레이어 기준의 x, y 값이다.\n * 따라서, 도형의 회전을 감안한 좌표로의 변환이 필요하다.\n * Transcoord시에는 point좌표가 부모까지 transcoord되어있는 상태이므로,\n * 컴포넌트자신에 대한 transcoord만 필요하다.(마지막 파라미터를 false로).\n */\n var transcoorded = component.transcoordP2S(point.x, point.y)\n var round = ((transcoorded.x - left) / (width / 2)) * 100\n\n round = roundSet(round, width, height)\n\n component.set({ round })\n }\n}\n\nfunction roundSet(round: number, width: number, height: number) {\n var max = width > height ? (height / width) * 100 : 100\n\n if (round >= max) round = max\n else if (round <= 0) round = 0\n\n return round\n}\n\n@sceneComponent('legend')\nexport default class Legend extends Container {\n async ready() {\n await super.ready()\n\n this.rebuildLegendItems()\n }\n\n get showMoveHandle() {\n return false\n }\n\n render(context: CanvasRenderingContext2D) {\n var { round = 0 } = this.state\n\n var { left, top, width, height } = this.bounds\n\n // 박스 그리기\n context.beginPath()\n\n round = roundSet(round, width, height)\n\n if (round > 0) {\n var radius = (round / 100) * (width / 2)\n\n context.moveTo(left + radius, top)\n context.lineTo(left + width - radius, top)\n context.quadraticCurveTo(left + width, top, left + width, top + radius)\n context.lineTo(left + width, top + height - radius)\n context.quadraticCurveTo(left + width, top + height, left + width - radius, top + height)\n context.lineTo(left + radius, top + height)\n context.quadraticCurveTo(left, top + height, left, top + height - radius)\n context.lineTo(left, top + radius)\n context.quadraticCurveTo(left, top, left + radius, top)\n\n this.model.padding = {\n top: round / 2,\n left: round / 2,\n right: round / 2,\n bottom: round / 2\n }\n } else {\n context.rect(left, top, width, height)\n }\n\n this.drawFill(context)\n this.drawStroke(context)\n }\n\n get controls() {\n var { left, top, width, round, height } = this.state\n round = round == undefined ? 0 : roundSet(round, width, height)\n\n return [\n {\n x: left + (width / 2) * (round / 100),\n y: top,\n handler: controlHandler\n }\n ]\n }\n\n get layout() {\n return TableLayout\n }\n\n get nature() {\n return NATURE\n }\n\n rebuildLegendItems() {\n if (this.components.length) {\n this.components.slice().forEach((m: any) => m.dispose())\n }\n\n var {\n left,\n top,\n width,\n height,\n fillStyle,\n strokeStyle,\n fontColor,\n fontFamily,\n fontSize,\n lineHeight,\n textAlign = 'left',\n round = 0,\n italic,\n bold,\n lineWidth = 0,\n rows,\n columns,\n status = {}\n } = this.state\n\n let statusRanges: {\n min: string\n max: string\n description: string\n color: string\n }[] = status.ranges || []\n\n var count = statusRanges.length\n\n this.add(\n statusRanges.map(range =>\n Model.compile({\n type: 'legend-item',\n text: range.description || `${range.min || ''} ~ ${range.max || ''}`,\n width: 1,\n height: 1,\n color: range.color,\n fontColor,\n fontFamily,\n fontSize,\n lineHeight,\n italic,\n bold,\n textAlign\n } as any, this.app)\n )\n )\n\n var rows, columns\n\n if (!columns && !rows) {\n rows = count\n columns = 1\n } else if (columns && !rows) {\n rows = Math.ceil(count / Number(columns))\n } else if (rows && !columns) {\n columns = Math.ceil(count / Number(rows))\n }\n\n this.set({\n layoutConfig: {\n rows,\n columns\n }\n })\n }\n\n get hasTextProperty() {\n return true\n }\n\n get textHidden() {\n return true\n }\n\n onchange(after: Properties, before: Properties) {\n this.rebuildLegendItems()\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"legend.js","sourceRoot":"","sources":["../src/legend.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\nimport {\n Component,\n ComponentNature,\n Container,\n Model,\n POSITION,\n Properties,\n TableLayout,\n sceneComponent\n} from '@hatiolab/things-scene'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'number',\n label: 'rows',\n name: 'rows'\n },\n {\n type: 'number',\n label: 'columns',\n name: 'columns'\n },\n {\n type: 'select',\n label: 'direction',\n name: 'direction',\n property: {\n options: [\n {\n display: 'Horizontal',\n value: 'horizontal'\n },\n {\n display: 'Vertical',\n value: 'vertical'\n }\n ]\n }\n },\n {\n type: 'number',\n label: 'round',\n name: 'round'\n },\n {\n type: 'legend-status',\n label: '',\n name: 'status'\n }\n ],\n help: 'scene/component/legend'\n}\n\nvar controlHandler = {\n ondragmove: function (point: POSITION, index: number, component: Component) {\n var { left, top, width, height } = component.model\n /*\n * point의 좌표는 부모 레이어 기준의 x, y 값이다.\n * 따라서, 도형의 회전을 감안한 좌표로의 변환이 필요하다.\n * Transcoord시에는 point좌표가 부모까지 transcoord되어있는 상태이므로,\n * 컴포넌트자신에 대한 transcoord만 필요하다.(마지막 파라미터를 false로).\n */\n var transcoorded = component.transcoordP2S(point.x, point.y)\n var round = ((transcoorded.x - left) / (width / 2)) * 100\n\n round = roundSet(round, width, height)\n\n component.set({ round })\n }\n}\n\nfunction roundSet(round: number, width: number, height: number) {\n var max = width > height ? (height / width) * 100 : 100\n\n if (round >= max) round = max\n else if (round <= 0) round = 0\n\n return round\n}\n\n@sceneComponent('legend')\nexport default class Legend extends Container {\n async ready() {\n await super.ready()\n\n this.rebuildLegendItems()\n }\n\n get showMoveHandle() {\n return false\n }\n\n render(context: CanvasRenderingContext2D) {\n var { round = 0 } = this.state\n\n var { left, top, width, height } = this.bounds\n\n // 박스 그리기\n context.beginPath()\n\n round = roundSet(round, width, height)\n\n if (round > 0) {\n var radius = (round / 100) * (width / 2)\n\n context.moveTo(left + radius, top)\n context.lineTo(left + width - radius, top)\n context.quadraticCurveTo(left + width, top, left + width, top + radius)\n context.lineTo(left + width, top + height - radius)\n context.quadraticCurveTo(left + width, top + height, left + width - radius, top + height)\n context.lineTo(left + radius, top + height)\n context.quadraticCurveTo(left, top + height, left, top + height - radius)\n context.lineTo(left, top + radius)\n context.quadraticCurveTo(left, top, left + radius, top)\n\n this.model.padding = {\n top: round / 2,\n left: round / 2,\n right: round / 2,\n bottom: round / 2\n }\n } else {\n context.rect(left, top, width, height)\n }\n\n this.drawFill(context)\n this.drawStroke(context)\n }\n\n get controls() {\n var { left, top, width, round, height } = this.state\n round = round == undefined ? 0 : roundSet(round, width, height)\n\n return [\n {\n x: left + (width / 2) * (round / 100),\n y: top,\n handler: controlHandler\n }\n ]\n }\n\n get layout(): any {\n return TableLayout\n }\n\n get nature() {\n return NATURE\n }\n\n rebuildLegendItems() {\n if (this.components.length) {\n this.components.slice().forEach((m: any) => m.dispose())\n }\n\n var {\n left,\n top,\n width,\n height,\n fillStyle,\n strokeStyle,\n fontColor,\n fontFamily,\n fontSize,\n lineHeight,\n textAlign = 'left',\n round = 0,\n italic,\n bold,\n lineWidth = 0,\n rows,\n columns,\n status = {}\n } = this.state\n\n let statusRanges: {\n min: string\n max: string\n description: string\n color: string\n }[] = status.ranges || []\n\n var count = statusRanges.length\n\n this.add(\n statusRanges.map(range =>\n Model.compile({\n type: 'legend-item',\n text: range.description || `${range.min || ''} ~ ${range.max || ''}`,\n width: 1,\n height: 1,\n color: range.color,\n fontColor,\n fontFamily,\n fontSize,\n lineHeight,\n italic,\n bold,\n textAlign\n } as any, this.app)\n )\n )\n\n var rows, columns\n\n if (!columns && !rows) {\n rows = count\n columns = 1\n } else if (columns && !rows) {\n rows = Math.ceil(count / Number(columns))\n } else if (rows && !columns) {\n columns = Math.ceil(count / Number(rows))\n }\n\n this.set({\n layoutConfig: {\n rows,\n columns\n }\n })\n }\n\n get hasTextProperty() {\n return true\n }\n\n get textHidden() {\n return true\n }\n\n onchange(after: Properties, before: Properties) {\n this.rebuildLegendItems()\n }\n}\n"]}
|
package/dist/templates/legend.js
CHANGED
|
@@ -2,7 +2,7 @@ const icon = new URL('../../icons/legend.png', import.meta.url).href;
|
|
|
2
2
|
export default {
|
|
3
3
|
type: 'legend',
|
|
4
4
|
description: 'legend for visualizer',
|
|
5
|
-
group: 'warehouse' /* line|shape|textAndMedia|chartAndGauge|table|container|dataSource|
|
|
5
|
+
group: 'warehouse' /* line|shape|textAndMedia|chartAndGauge|table|container|dataSource|3D|facility|storage|conveyance|transport|form|etc */,
|
|
6
6
|
icon,
|
|
7
7
|
model: {
|
|
8
8
|
type: 'legend',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"legend.js","sourceRoot":"","sources":["../../src/templates/legend.ts"],"names":[],"mappings":"AAAA,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,wBAAwB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;AAEpE,eAAe;IACb,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,uBAAuB;IACpC,KAAK,EAAE,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"legend.js","sourceRoot":"","sources":["../../src/templates/legend.ts"],"names":[],"mappings":"AAAA,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,wBAAwB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;AAEpE,eAAe;IACb,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,uBAAuB;IACpC,KAAK,EAAE,WAAW,CAAC,wHAAwH;IAC3I,IAAI;IACJ,KAAK,EAAE;QACL,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,GAAG;QACT,GAAG,EAAE,GAAG;QACR,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,GAAG;QACX,SAAS,EAAE,SAAS;QACpB,SAAS,EAAE,UAAU;QACrB,WAAW,EAAE,oBAAoB;QACjC,SAAS,EAAE,CAAC;KACb;CACF,CAAA","sourcesContent":["const icon = new URL('../../icons/legend.png', import.meta.url).href\n\nexport default {\n type: 'legend',\n description: 'legend for visualizer',\n group: 'warehouse' /* line|shape|textAndMedia|chartAndGauge|table|container|dataSource|3D|facility|storage|conveyance|transport|form|etc */,\n icon,\n model: {\n type: 'legend',\n left: 100,\n top: 100,\n width: 200,\n height: 150,\n fillStyle: '#efefef',\n direction: 'vertical',\n strokeStyle: 'rgba(0, 0, 0, 0.3)',\n lineWidth: 1\n }\n}\n"]}
|
package/dist/templates/svg.js
CHANGED
|
@@ -2,7 +2,7 @@ const icon = new URL('../../icons/svg.png', import.meta.url).href;
|
|
|
2
2
|
export default {
|
|
3
3
|
type: 'svg',
|
|
4
4
|
description: 'svg for visualizer',
|
|
5
|
-
group: 'warehouse' /* line|shape|textAndMedia|chartAndGauge|table|container|dataSource|
|
|
5
|
+
group: 'warehouse' /* line|shape|textAndMedia|chartAndGauge|table|container|dataSource|3D|facility|storage|conveyance|transport|form|etc */,
|
|
6
6
|
icon,
|
|
7
7
|
model: {
|
|
8
8
|
type: 'svg',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"svg.js","sourceRoot":"","sources":["../../src/templates/svg.ts"],"names":[],"mappings":"AAAA,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;AAEjE,eAAe;IACb,IAAI,EAAE,KAAK;IACX,WAAW,EAAE,oBAAoB;IACjC,KAAK,EAAE,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"svg.js","sourceRoot":"","sources":["../../src/templates/svg.ts"],"names":[],"mappings":"AAAA,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;AAEjE,eAAe;IACb,IAAI,EAAE,KAAK;IACX,WAAW,EAAE,oBAAoB;IACjC,KAAK,EAAE,WAAW,CAAC,wHAAwH;IAC3I,IAAI;IACJ,KAAK,EAAE;QACL,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,GAAG;QACT,GAAG,EAAE,GAAG;QACR,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,GAAG;QACX,SAAS,EAAE,SAAS;QACpB,SAAS,EAAE,UAAU;QACrB,WAAW,EAAE,oBAAoB;QACjC,SAAS,EAAE,CAAC;KACb;CACF,CAAA","sourcesContent":["const icon = new URL('../../icons/svg.png', import.meta.url).href\n\nexport default {\n type: 'svg',\n description: 'svg for visualizer',\n group: 'warehouse' /* line|shape|textAndMedia|chartAndGauge|table|container|dataSource|3D|facility|storage|conveyance|transport|form|etc */,\n icon,\n model: {\n type: 'svg',\n left: 100,\n top: 100,\n width: 400,\n height: 300,\n fillStyle: '#efefef',\n direction: 'vertical',\n strokeStyle: 'rgba(0, 0, 0, 0.3)',\n lineWidth: 1\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@operato/scene-legend",
|
|
3
3
|
"description": "Legend component for things-scene.",
|
|
4
4
|
"author": "heartyoh",
|
|
5
|
-
"version": "10.0.0-beta.
|
|
5
|
+
"version": "10.0.0-beta.30",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "dist/index.js",
|
|
8
8
|
"module": "dist/index.js",
|
|
@@ -60,5 +60,5 @@
|
|
|
60
60
|
"prettier --write"
|
|
61
61
|
]
|
|
62
62
|
},
|
|
63
|
-
"gitHead": "
|
|
63
|
+
"gitHead": "06b35b1726ec4f27ee76657ce341c6c6f3ba1b3a"
|
|
64
64
|
}
|