@omegagrid/core 0.10.0 → 0.10.2

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.
Files changed (317) hide show
  1. package/package.json +2 -2
  2. package/dist/common/actions.d.ts +0 -16
  3. package/dist/common/actions.d.ts.map +0 -1
  4. package/dist/common/actions.js +0 -14
  5. package/dist/common/actions.js.map +0 -1
  6. package/dist/common/colors.d.ts +0 -39
  7. package/dist/common/colors.d.ts.map +0 -1
  8. package/dist/common/colors.js +0 -59
  9. package/dist/common/colors.js.map +0 -1
  10. package/dist/common/csv.d.ts +0 -23
  11. package/dist/common/csv.d.ts.map +0 -1
  12. package/dist/common/csv.js +0 -93
  13. package/dist/common/csv.js.map +0 -1
  14. package/dist/common/dates.d.ts +0 -32
  15. package/dist/common/dates.d.ts.map +0 -1
  16. package/dist/common/dates.js +0 -172
  17. package/dist/common/dates.js.map +0 -1
  18. package/dist/common/device.d.ts +0 -2
  19. package/dist/common/device.d.ts.map +0 -1
  20. package/dist/common/device.js +0 -13
  21. package/dist/common/device.js.map +0 -1
  22. package/dist/common/dom.d.ts +0 -90
  23. package/dist/common/dom.d.ts.map +0 -1
  24. package/dist/common/dom.js +0 -308
  25. package/dist/common/dom.js.map +0 -1
  26. package/dist/common/events.d.ts +0 -15
  27. package/dist/common/events.d.ts.map +0 -1
  28. package/dist/common/events.js +0 -33
  29. package/dist/common/events.js.map +0 -1
  30. package/dist/common/html.d.ts +0 -3
  31. package/dist/common/html.d.ts.map +0 -1
  32. package/dist/common/html.js +0 -25
  33. package/dist/common/html.js.map +0 -1
  34. package/dist/common/index.d.ts +0 -19
  35. package/dist/common/index.d.ts.map +0 -1
  36. package/dist/common/index.js +0 -19
  37. package/dist/common/index.js.map +0 -1
  38. package/dist/common/linkedList.d.ts +0 -24
  39. package/dist/common/linkedList.d.ts.map +0 -1
  40. package/dist/common/linkedList.js +0 -65
  41. package/dist/common/linkedList.js.map +0 -1
  42. package/dist/common/loaders.d.ts +0 -17
  43. package/dist/common/loaders.d.ts.map +0 -1
  44. package/dist/common/loaders.js +0 -54
  45. package/dist/common/loaders.js.map +0 -1
  46. package/dist/common/logger.d.ts +0 -25
  47. package/dist/common/logger.d.ts.map +0 -1
  48. package/dist/common/logger.js +0 -57
  49. package/dist/common/logger.js.map +0 -1
  50. package/dist/common/matrix.d.ts +0 -6
  51. package/dist/common/matrix.d.ts.map +0 -1
  52. package/dist/common/matrix.js +0 -17
  53. package/dist/common/matrix.js.map +0 -1
  54. package/dist/common/numbers.d.ts +0 -26
  55. package/dist/common/numbers.d.ts.map +0 -1
  56. package/dist/common/numbers.js +0 -239
  57. package/dist/common/numbers.js.map +0 -1
  58. package/dist/common/options.d.ts +0 -17
  59. package/dist/common/options.d.ts.map +0 -1
  60. package/dist/common/options.js +0 -29
  61. package/dist/common/options.js.map +0 -1
  62. package/dist/common/paper.d.ts +0 -8
  63. package/dist/common/paper.d.ts.map +0 -1
  64. package/dist/common/paper.js +0 -17
  65. package/dist/common/paper.js.map +0 -1
  66. package/dist/common/shortcutManager.d.ts +0 -17
  67. package/dist/common/shortcutManager.d.ts.map +0 -1
  68. package/dist/common/shortcutManager.js +0 -49
  69. package/dist/common/shortcutManager.js.map +0 -1
  70. package/dist/common/tree.d.ts +0 -87
  71. package/dist/common/tree.d.ts.map +0 -1
  72. package/dist/common/tree.js +0 -204
  73. package/dist/common/tree.js.map +0 -1
  74. package/dist/common/utils.d.ts +0 -30
  75. package/dist/common/utils.d.ts.map +0 -1
  76. package/dist/common/utils.js +0 -136
  77. package/dist/common/utils.js.map +0 -1
  78. package/dist/constants.d.ts +0 -48
  79. package/dist/constants.d.ts.map +0 -1
  80. package/dist/constants.js +0 -24
  81. package/dist/constants.js.map +0 -1
  82. package/dist/index.d.ts +0 -8
  83. package/dist/index.d.ts.map +0 -1
  84. package/dist/index.js +0 -8
  85. package/dist/index.js.map +0 -1
  86. package/dist/model/adapter.d.ts +0 -8
  87. package/dist/model/adapter.d.ts.map +0 -1
  88. package/dist/model/adapter.js +0 -13
  89. package/dist/model/adapter.js.map +0 -1
  90. package/dist/model/component.d.ts +0 -19
  91. package/dist/model/component.d.ts.map +0 -1
  92. package/dist/model/component.js +0 -84
  93. package/dist/model/component.js.map +0 -1
  94. package/dist/model/componentSlice.d.ts +0 -8
  95. package/dist/model/componentSlice.d.ts.map +0 -1
  96. package/dist/model/componentSlice.js +0 -10
  97. package/dist/model/componentSlice.js.map +0 -1
  98. package/dist/model/componentStore.d.ts +0 -12
  99. package/dist/model/componentStore.d.ts.map +0 -1
  100. package/dist/model/componentStore.js +0 -26
  101. package/dist/model/componentStore.js.map +0 -1
  102. package/dist/model/index.d.ts +0 -6
  103. package/dist/model/index.d.ts.map +0 -1
  104. package/dist/model/index.js +0 -6
  105. package/dist/model/index.js.map +0 -1
  106. package/dist/model/plugins.d.ts +0 -13
  107. package/dist/model/plugins.d.ts.map +0 -1
  108. package/dist/model/plugins.js +0 -27
  109. package/dist/model/plugins.js.map +0 -1
  110. package/dist/themes/definitions/tmDark.d.ts +0 -4
  111. package/dist/themes/definitions/tmDark.d.ts.map +0 -1
  112. package/dist/themes/definitions/tmDark.js +0 -83
  113. package/dist/themes/definitions/tmDark.js.map +0 -1
  114. package/dist/themes/definitions/tmLight.d.ts +0 -4
  115. package/dist/themes/definitions/tmLight.d.ts.map +0 -1
  116. package/dist/themes/definitions/tmLight.js +0 -83
  117. package/dist/themes/definitions/tmLight.js.map +0 -1
  118. package/dist/themes/helpers.d.ts +0 -7
  119. package/dist/themes/helpers.d.ts.map +0 -1
  120. package/dist/themes/helpers.js +0 -34
  121. package/dist/themes/helpers.js.map +0 -1
  122. package/dist/themes/index.d.ts +0 -18
  123. package/dist/themes/index.d.ts.map +0 -1
  124. package/dist/themes/index.js +0 -48
  125. package/dist/themes/index.js.map +0 -1
  126. package/dist/themes/mixins.d.ts +0 -10
  127. package/dist/themes/mixins.d.ts.map +0 -1
  128. package/dist/themes/mixins.js +0 -39
  129. package/dist/themes/mixins.js.map +0 -1
  130. package/dist/themes/transformations.d.ts +0 -9
  131. package/dist/themes/transformations.d.ts.map +0 -1
  132. package/dist/themes/transformations.js +0 -48
  133. package/dist/themes/transformations.js.map +0 -1
  134. package/dist/types.d.ts +0 -130
  135. package/dist/types.d.ts.map +0 -1
  136. package/dist/types.js +0 -12
  137. package/dist/types.js.map +0 -1
  138. package/dist/ui/accordion.d.ts +0 -16
  139. package/dist/ui/accordion.d.ts.map +0 -1
  140. package/dist/ui/accordion.js +0 -209
  141. package/dist/ui/accordion.js.map +0 -1
  142. package/dist/ui/alert.d.ts +0 -15
  143. package/dist/ui/alert.d.ts.map +0 -1
  144. package/dist/ui/alert.js +0 -101
  145. package/dist/ui/alert.js.map +0 -1
  146. package/dist/ui/baseElement.d.ts +0 -7
  147. package/dist/ui/baseElement.d.ts.map +0 -1
  148. package/dist/ui/baseElement.js +0 -10
  149. package/dist/ui/baseElement.js.map +0 -1
  150. package/dist/ui/button.d.ts +0 -21
  151. package/dist/ui/button.d.ts.map +0 -1
  152. package/dist/ui/button.js +0 -100
  153. package/dist/ui/button.js.map +0 -1
  154. package/dist/ui/button.style.d.ts +0 -2
  155. package/dist/ui/button.style.d.ts.map +0 -1
  156. package/dist/ui/button.style.js +0 -60
  157. package/dist/ui/button.style.js.map +0 -1
  158. package/dist/ui/checkbox.d.ts +0 -14
  159. package/dist/ui/checkbox.d.ts.map +0 -1
  160. package/dist/ui/checkbox.js +0 -47
  161. package/dist/ui/checkbox.js.map +0 -1
  162. package/dist/ui/close.d.ts +0 -6
  163. package/dist/ui/close.d.ts.map +0 -1
  164. package/dist/ui/close.js +0 -33
  165. package/dist/ui/close.js.map +0 -1
  166. package/dist/ui/colorpicker.d.ts +0 -24
  167. package/dist/ui/colorpicker.d.ts.map +0 -1
  168. package/dist/ui/colorpicker.js +0 -228
  169. package/dist/ui/colorpicker.js.map +0 -1
  170. package/dist/ui/container.d.ts +0 -39
  171. package/dist/ui/container.d.ts.map +0 -1
  172. package/dist/ui/container.js +0 -313
  173. package/dist/ui/container.js.map +0 -1
  174. package/dist/ui/dropdown.d.ts +0 -48
  175. package/dist/ui/dropdown.d.ts.map +0 -1
  176. package/dist/ui/dropdown.js +0 -300
  177. package/dist/ui/dropdown.js.map +0 -1
  178. package/dist/ui/dropdownColorPicker.d.ts +0 -12
  179. package/dist/ui/dropdownColorPicker.d.ts.map +0 -1
  180. package/dist/ui/dropdownColorPicker.js +0 -60
  181. package/dist/ui/dropdownColorPicker.js.map +0 -1
  182. package/dist/ui/dropdownList.d.ts +0 -8
  183. package/dist/ui/dropdownList.d.ts.map +0 -1
  184. package/dist/ui/dropdownList.js +0 -48
  185. package/dist/ui/dropdownList.js.map +0 -1
  186. package/dist/ui/dropdownMenu.d.ts +0 -11
  187. package/dist/ui/dropdownMenu.d.ts.map +0 -1
  188. package/dist/ui/dropdownMenu.js +0 -61
  189. package/dist/ui/dropdownMenu.js.map +0 -1
  190. package/dist/ui/expander.d.ts +0 -28
  191. package/dist/ui/expander.d.ts.map +0 -1
  192. package/dist/ui/expander.js +0 -144
  193. package/dist/ui/expander.js.map +0 -1
  194. package/dist/ui/fileInput.d.ts +0 -24
  195. package/dist/ui/fileInput.d.ts.map +0 -1
  196. package/dist/ui/fileInput.js +0 -130
  197. package/dist/ui/fileInput.js.map +0 -1
  198. package/dist/ui/fileInput.style.d.ts +0 -2
  199. package/dist/ui/fileInput.style.d.ts.map +0 -1
  200. package/dist/ui/fileInput.style.js +0 -73
  201. package/dist/ui/fileInput.style.js.map +0 -1
  202. package/dist/ui/floatingWindow.d.ts +0 -19
  203. package/dist/ui/floatingWindow.d.ts.map +0 -1
  204. package/dist/ui/floatingWindow.js +0 -87
  205. package/dist/ui/floatingWindow.js.map +0 -1
  206. package/dist/ui/icon.d.ts +0 -46
  207. package/dist/ui/icon.d.ts.map +0 -1
  208. package/dist/ui/icon.js +0 -189
  209. package/dist/ui/icon.js.map +0 -1
  210. package/dist/ui/icon.style.d.ts +0 -2
  211. package/dist/ui/icon.style.d.ts.map +0 -1
  212. package/dist/ui/icon.style.js +0 -556
  213. package/dist/ui/icon.style.js.map +0 -1
  214. package/dist/ui/images.d.ts +0 -2
  215. package/dist/ui/images.d.ts.map +0 -1
  216. package/dist/ui/images.js +0 -14
  217. package/dist/ui/images.js.map +0 -1
  218. package/dist/ui/index.d.ts +0 -32
  219. package/dist/ui/index.d.ts.map +0 -1
  220. package/dist/ui/index.js +0 -32
  221. package/dist/ui/index.js.map +0 -1
  222. package/dist/ui/input.d.ts +0 -12
  223. package/dist/ui/input.d.ts.map +0 -1
  224. package/dist/ui/input.js +0 -45
  225. package/dist/ui/input.js.map +0 -1
  226. package/dist/ui/input.style.d.ts +0 -2
  227. package/dist/ui/input.style.d.ts.map +0 -1
  228. package/dist/ui/input.style.js +0 -36
  229. package/dist/ui/input.style.js.map +0 -1
  230. package/dist/ui/label.d.ts +0 -16
  231. package/dist/ui/label.d.ts.map +0 -1
  232. package/dist/ui/label.js +0 -90
  233. package/dist/ui/label.js.map +0 -1
  234. package/dist/ui/list.d.ts +0 -87
  235. package/dist/ui/list.d.ts.map +0 -1
  236. package/dist/ui/list.js +0 -427
  237. package/dist/ui/list.js.map +0 -1
  238. package/dist/ui/list.style.d.ts +0 -2
  239. package/dist/ui/list.style.d.ts.map +0 -1
  240. package/dist/ui/list.style.js +0 -35
  241. package/dist/ui/list.style.js.map +0 -1
  242. package/dist/ui/loader.d.ts +0 -6
  243. package/dist/ui/loader.d.ts.map +0 -1
  244. package/dist/ui/loader.js +0 -25
  245. package/dist/ui/loader.js.map +0 -1
  246. package/dist/ui/menu.d.ts +0 -41
  247. package/dist/ui/menu.d.ts.map +0 -1
  248. package/dist/ui/menu.js +0 -154
  249. package/dist/ui/menu.js.map +0 -1
  250. package/dist/ui/menu.style.d.ts +0 -3
  251. package/dist/ui/menu.style.d.ts.map +0 -1
  252. package/dist/ui/menu.style.js +0 -50
  253. package/dist/ui/menu.style.js.map +0 -1
  254. package/dist/ui/numericInput.d.ts +0 -37
  255. package/dist/ui/numericInput.d.ts.map +0 -1
  256. package/dist/ui/numericInput.js +0 -175
  257. package/dist/ui/numericInput.js.map +0 -1
  258. package/dist/ui/numericInput.style.d.ts +0 -2
  259. package/dist/ui/numericInput.style.d.ts.map +0 -1
  260. package/dist/ui/numericInput.style.js +0 -29
  261. package/dist/ui/numericInput.style.js.map +0 -1
  262. package/dist/ui/overlay.d.ts +0 -17
  263. package/dist/ui/overlay.d.ts.map +0 -1
  264. package/dist/ui/overlay.js +0 -87
  265. package/dist/ui/overlay.js.map +0 -1
  266. package/dist/ui/overlay.style.d.ts +0 -2
  267. package/dist/ui/overlay.style.d.ts.map +0 -1
  268. package/dist/ui/overlay.style.js +0 -46
  269. package/dist/ui/overlay.style.js.map +0 -1
  270. package/dist/ui/panel.d.ts +0 -25
  271. package/dist/ui/panel.d.ts.map +0 -1
  272. package/dist/ui/panel.js +0 -151
  273. package/dist/ui/panel.js.map +0 -1
  274. package/dist/ui/panel.style.d.ts +0 -2
  275. package/dist/ui/panel.style.d.ts.map +0 -1
  276. package/dist/ui/panel.style.js +0 -73
  277. package/dist/ui/panel.style.js.map +0 -1
  278. package/dist/ui/sizer.d.ts +0 -53
  279. package/dist/ui/sizer.d.ts.map +0 -1
  280. package/dist/ui/sizer.js +0 -203
  281. package/dist/ui/sizer.js.map +0 -1
  282. package/dist/ui/slider.d.ts +0 -52
  283. package/dist/ui/slider.d.ts.map +0 -1
  284. package/dist/ui/slider.js +0 -213
  285. package/dist/ui/slider.js.map +0 -1
  286. package/dist/ui/slider.style.d.ts +0 -2
  287. package/dist/ui/slider.style.d.ts.map +0 -1
  288. package/dist/ui/slider.style.js +0 -61
  289. package/dist/ui/slider.style.js.map +0 -1
  290. package/dist/ui/sortableList.d.ts +0 -39
  291. package/dist/ui/sortableList.d.ts.map +0 -1
  292. package/dist/ui/sortableList.js +0 -167
  293. package/dist/ui/sortableList.js.map +0 -1
  294. package/dist/ui/splitContainer.d.ts +0 -52
  295. package/dist/ui/splitContainer.d.ts.map +0 -1
  296. package/dist/ui/splitContainer.js +0 -252
  297. package/dist/ui/splitContainer.js.map +0 -1
  298. package/dist/ui/splitContainer.style.d.ts +0 -2
  299. package/dist/ui/splitContainer.style.d.ts.map +0 -1
  300. package/dist/ui/splitContainer.style.js +0 -62
  301. package/dist/ui/splitContainer.style.js.map +0 -1
  302. package/dist/ui/switch.d.ts +0 -22
  303. package/dist/ui/switch.d.ts.map +0 -1
  304. package/dist/ui/switch.js +0 -83
  305. package/dist/ui/switch.js.map +0 -1
  306. package/dist/ui/switch.style.d.ts +0 -2
  307. package/dist/ui/switch.style.d.ts.map +0 -1
  308. package/dist/ui/switch.style.js +0 -149
  309. package/dist/ui/switch.style.js.map +0 -1
  310. package/dist/ui/tooltip.d.ts +0 -24
  311. package/dist/ui/tooltip.d.ts.map +0 -1
  312. package/dist/ui/tooltip.js +0 -143
  313. package/dist/ui/tooltip.js.map +0 -1
  314. package/dist/ui/tooltip.style.d.ts +0 -2
  315. package/dist/ui/tooltip.style.d.ts.map +0 -1
  316. package/dist/ui/tooltip.style.js +0 -112
  317. package/dist/ui/tooltip.style.js.map +0 -1
package/dist/ui/menu.js DELETED
@@ -1,154 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { LitElement, html } from 'lit';
8
- import { customElement, property, query } from 'lit/decorators.js';
9
- import constants from '../constants';
10
- import { getElementOffset, hideElement, setPosition, setSize, showElement, fixPosition } from '../common/dom';
11
- import { msg } from "@omegagrid/localize";
12
- import { itemStyle, style } from './menu.style';
13
- export class MenuEvent extends Event {
14
- constructor(type, item) {
15
- super(`menu.${type}`, { bubbles: true, composed: true });
16
- this.item = item;
17
- }
18
- }
19
- let Menu = class Menu extends LitElement {
20
- willUpdate(changedProps) {
21
- if (changedProps.has('items')) {
22
- this._hasIcons = this.items.findIndex(item => !!item.icon) > -1;
23
- }
24
- }
25
- updated(changedProps) {
26
- if (changedProps.has('items')) {
27
- this.list.reset();
28
- this.list.renderItems(true);
29
- }
30
- }
31
- async updateWidth() {
32
- await this.list.updateComplete;
33
- let maxWidth = 0;
34
- if (this.dynamicWidth) {
35
- this.list.items.forEach(item => {
36
- let w = 0;
37
- for (const ch of item.children)
38
- w += ch.offsetWidth;
39
- maxWidth = Math.max(maxWidth, w);
40
- });
41
- setSize(this, { w: maxWidth > 0 ? maxWidth : 100 });
42
- }
43
- }
44
- constructor() {
45
- super();
46
- this.dynamicWidth = true;
47
- this.disabledFocus = false;
48
- this._hasIcons = false;
49
- this._autoHide = false;
50
- this.itemRenderer = (div, index) => {
51
- const item = this.items[index];
52
- div.classList.toggle('divider', !!item.divider);
53
- div.classList.toggle('label', item.type == 'label');
54
- if (item.divider) {
55
- setSize(div, { h: constants.MENU_ITEM_HEIGHT - 1 });
56
- }
57
- div.style.color = item.color ? item.color : 'inherit';
58
- item.type = item.type || 'normal';
59
- return html `
60
- ${this._hasIcons && (item.icon || item.type != 'label') ? html `
61
- <div class="icon">
62
- ${item.icon ? html `<og-icon .icon="${item.icon}"></og-icon>` : ``}
63
- </div>
64
- ` : ``}
65
- ${item.renderer ? item.renderer(div, index, item) : html `
66
- <div class="text">${msg(item.value ?? item.v)}</div>
67
- `}
68
- `;
69
- };
70
- this._onRender = () => {
71
- this.updateWidth();
72
- };
73
- this._onSelect = (e) => {
74
- if (this._autoHide)
75
- hideElement(this);
76
- const item = this.items[e.index];
77
- if (item.exec)
78
- item.exec(item);
79
- this.dispatchEvent(new MenuEvent('select', item));
80
- };
81
- this.render = () => html `
82
- <og-list
83
- ?dynamicWidth="${this.dynamicWidth}"
84
- ?disabledFocus="${this.disabledFocus}"
85
- maxHeight="200"
86
- itemHeight="${constants.MENU_ITEM_HEIGHT}"
87
- size="${this.items?.length ?? 0}"
88
- .itemRenderer="${this.itemRenderer}"
89
- .customStyle=${itemStyle},
90
- @render=${this._onRender}
91
- @select=${this._onSelect}>
92
- </og-list>
93
- `;
94
- this.addEventListener('contextmenu', e => e.preventDefault());
95
- this.addEventListener('focus', () => setTimeout(() => this.list.focus(), 100));
96
- }
97
- connectedCallback() {
98
- super.connectedCallback();
99
- this.tabIndex = 0;
100
- }
101
- async open(elm, position = 'left') {
102
- this._autoHide = true;
103
- if (this.parentElement != document.body)
104
- document.body.appendChild(this);
105
- showElement(this);
106
- await this.updateWidth();
107
- const offset = getElementOffset(elm, this.parentElement);
108
- const pos = fixPosition({
109
- x: position == 'left' ? offset.left : (offset.left + elm.offsetWidth - this.offsetWidth),
110
- y: offset.top + elm.offsetHeight,
111
- w: this.offsetWidth,
112
- h: this.offsetHeight
113
- }, document.body);
114
- setPosition(this, { t: pos.y, l: pos.x });
115
- this.list.select(0);
116
- this.list.focus();
117
- document.body.addEventListener('mousedown', () => hideElement(this), { once: true });
118
- }
119
- async openAt(x, y) {
120
- this._autoHide = true;
121
- if (this.parentElement != document.body)
122
- document.body.appendChild(this);
123
- showElement(this);
124
- await this.updateWidth();
125
- const pos = fixPosition({
126
- x: x,
127
- y: y,
128
- w: this.offsetWidth,
129
- h: this.offsetHeight
130
- }, document.body);
131
- setPosition(this, { t: pos.y, l: pos.x });
132
- this.list.select(0);
133
- this.list.focus();
134
- document.body.addEventListener('mousedown', () => hideElement(this), { once: true });
135
- }
136
- };
137
- Menu.styles = [style];
138
- __decorate([
139
- property({ type: Array })
140
- ], Menu.prototype, "items", void 0);
141
- __decorate([
142
- property({ type: Boolean })
143
- ], Menu.prototype, "dynamicWidth", void 0);
144
- __decorate([
145
- property({ type: Boolean })
146
- ], Menu.prototype, "disabledFocus", void 0);
147
- __decorate([
148
- query('og-list')
149
- ], Menu.prototype, "list", void 0);
150
- Menu = __decorate([
151
- customElement(`og-menu`)
152
- ], Menu);
153
- export { Menu };
154
- //# sourceMappingURL=menu.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"menu.js","sourceRoot":"","sources":["../../src/ui/menu.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, TemplateResult, html } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport constants from '../constants';\nimport { getElementOffset, hideElement, setPosition, setSize, showElement, fixPosition } from '../common/dom';\nimport { List, ListSelectEvent } from './list';\nimport { msg } from \"@omegagrid/localize\";\nimport { itemStyle, style } from './menu.style';\nimport { IconSpec } from './icon';\n\nexport type MenuItem = {\n\tk?: number|string,\n\tv?: string,\n\tkey?: number|string,\n\tvalue?: string,\n\ticon?: IconSpec|string,\n\tcolor?: string,\n\ttype?: 'normal'|'label'|null,\n\tdivider?: boolean,\n\trenderer?: (div: HTMLDivElement, index: number, item: MenuItem) => TemplateResult<1>|HTMLElement,\n\texec?: (item: MenuItem) => void,\n};\n\nexport class MenuEvent extends Event {\n\tconstructor(\n\t\ttype: string,\n\t\tpublic readonly item: MenuItem,\n\t) {\n\t\tsuper(`menu.${type}`, {bubbles: true, composed: true});\n\t}\n}\n\nexport type MenuPosition = 'right'|'left';\n\n@customElement(`og-menu`)\nexport class Menu extends LitElement {\n\n\tstatic styles = [style];\n\n\t@property({type: Array})\n\titems: MenuItem[];\n\t\n\t@property({type: Boolean})\n\tdynamicWidth = true;\n\n\t@property({type: Boolean})\n\tdisabledFocus = false;\n\n\t@query('og-list')\n\tlist: List;\n\n\tprivate _hasIcons = false;\n\tprivate _autoHide = false;\n\n\twillUpdate(changedProps: Map<PropertyKey, unknown>) {\n\t\tif (changedProps.has('items')) {\n\t\t\tthis._hasIcons = this.items.findIndex(item => !!item.icon) > -1;\n\t\t}\n\t}\n\n\tupdated(changedProps: Map<PropertyKey, unknown>) {\n\t\tif (changedProps.has('items')) {\n\t\t\tthis.list.reset();\n\t\t\tthis.list.renderItems(true);\n\t\t}\n\t}\n\n\tasync updateWidth() {\n\t\tawait this.list.updateComplete;\n\n\t\tlet maxWidth = 0;\n\n\t\tif (this.dynamicWidth) {\n\t\t\tthis.list.items.forEach(item => {\n\t\t\t\tlet w = 0;\n\t\t\t\tfor (const ch of item.children) w += (ch as HTMLElement).offsetWidth;\n\t\t\t\tmaxWidth = Math.max(maxWidth, w)\n\t\t\t});\n\t\t\tsetSize(this, {w: maxWidth > 0 ? maxWidth : 100});\n\t\t}\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.addEventListener('contextmenu', e => e.preventDefault());\n\t\tthis.addEventListener('focus', () => setTimeout(() => this.list.focus(), 100));\n\t}\n\n\tconnectedCallback() {\t\t\n\t\tsuper.connectedCallback();\n\t\tthis.tabIndex = 0;\n\t}\n\n\titemRenderer = (div: HTMLDivElement, index: number) => {\n\t\tconst item = this.items[index];\n\t\tdiv.classList.toggle('divider', !!item.divider);\n\t\tdiv.classList.toggle('label', item.type == 'label');\n\n\t\tif (item.divider) {\n\t\t\tsetSize(div, {h: constants.MENU_ITEM_HEIGHT - 1});\n\t\t}\n\n\t\tdiv.style.color = item.color ? item.color : 'inherit';\n\t\titem.type = item.type || 'normal';\n\n\t\treturn html`\n\t\t\t${this._hasIcons && (item.icon || item.type != 'label') ? html`\n\t\t\t\t<div class=\"icon\">\n\t\t\t\t\t${item.icon ? html`<og-icon .icon=\"${item.icon}\"></og-icon>` : ``}\n\t\t\t\t</div>\n\t\t\t`: ``}\n\t\t\t${item.renderer ? item.renderer(div, index, item) : html`\n\t\t\t\t<div class=\"text\">${msg(item.value ?? item.v)}</div>\n\t\t\t`}\n\t\t`;\n\t}\n\n\tasync open(elm: HTMLElement, position: MenuPosition = 'left') {\n\t\tthis._autoHide = true;\n\t\tif (this.parentElement != document.body) document.body.appendChild(this);\n\t\tshowElement(this);\n\t\tawait this.updateWidth();\n\t\tconst offset = getElementOffset(elm, this.parentElement);\n\t\tconst pos = fixPosition({\n\t\t\tx: position == 'left' ? offset.left : (offset.left + elm.offsetWidth - this.offsetWidth),\n\t\t\ty: offset.top + elm.offsetHeight,\n\t\t\tw: this.offsetWidth,\n\t\t\th: this.offsetHeight\n\t\t}, document.body);\n\n\t\tsetPosition(this, {t: pos.y, l: pos.x});\n\t\tthis.list.select(0);\n\t\tthis.list.focus();\n\t\tdocument.body.addEventListener('mousedown', () => hideElement(this), {once: true});\n\t}\n\n\tasync openAt(x: number, y: number) {\n\t\tthis._autoHide = true;\n\t\tif (this.parentElement != document.body) document.body.appendChild(this);\n\t\tshowElement(this);\n\t\tawait this.updateWidth();\n\t\tconst pos = fixPosition({\n\t\t\tx: x,\n\t\t\ty: y,\n\t\t\tw: this.offsetWidth,\n\t\t\th: this.offsetHeight\n\t\t}, document.body);\n\t\tsetPosition(this, {t: pos.y, l: pos.x});\n\t\tthis.list.select(0);\n\t\tthis.list.focus();\n\t\tdocument.body.addEventListener('mousedown', () => hideElement(this), {once: true});\n\t}\n\n\t_onRender = () => {\n\t\tthis.updateWidth();\n\t}\n\n\t_onSelect = (e: ListSelectEvent) => {\n\t\tif (this._autoHide) hideElement(this);\n\t\tconst item = this.items[e.index];\n\t\tif (item.exec) item.exec(item);\n\t\tthis.dispatchEvent(new MenuEvent('select', item));\n\t}\n\n\trender = () => html`\n\t\t<og-list\n\t\t\t?dynamicWidth=\"${this.dynamicWidth}\"\n\t\t\t?disabledFocus=\"${this.disabledFocus}\"\n\t\t\tmaxHeight=\"200\"\n\t\t\titemHeight=\"${constants.MENU_ITEM_HEIGHT}\"\n\t\t\tsize=\"${this.items?.length ?? 0}\"\n\t\t\t.itemRenderer=\"${this.itemRenderer}\"\n\t\t\t.customStyle=${itemStyle},\n\t\t\t@render=${this._onRender}\n\t\t\t@select=${this._onSelect}>\n\t\t</og-list>\n\t`;\n\t\n}"]}
@@ -1,3 +0,0 @@
1
- export declare const itemStyle: import("lit").CSSResult;
2
- export declare const style: import("lit").CSSResult;
3
- //# sourceMappingURL=menu.style.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"menu.style.d.ts","sourceRoot":"","sources":["../../src/ui/menu.style.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,SAAS,yBAoCrB,CAAC;AAEF,eAAO,MAAM,KAAK,yBASjB,CAAC"}
@@ -1,50 +0,0 @@
1
- import { css } from 'lit';
2
- import constants from '../constants';
3
- export const itemStyle = css `
4
- .item {
5
- font-size: var(--og-font-size);
6
- font-family: var(--og-font-family);
7
- display: flex;
8
- position: relative;
9
- }
10
-
11
- .item.label, .item.label:hover {
12
- background-color: transparent !important;
13
- cursor: default !important;
14
- font-weight: bold;
15
- color: var(--og-accent-color) !important;
16
- }
17
-
18
- .item .text {
19
- padding-left: 5px;
20
- padding-right: 5px;
21
- white-space: nowrap;
22
- }
23
-
24
- .item .icon+.text {
25
- padding-left: 0px;
26
- }
27
-
28
- .item .icon {
29
- min-width: ${constants.MENU_ITEM_HEIGHT}px;
30
- text-align: center;
31
- display: flex;
32
- align-items: center;
33
- justify-content: center;
34
- }
35
-
36
- .item.divider {
37
- border-bottom: 1px solid var(--og-accent-color);
38
- }
39
- `;
40
- export const style = css `
41
- :host {
42
- font-size: var(--og-font-size);
43
- display: block;
44
- border: 1px solid var(--og-accent-color);
45
- background: var(--og-background-color);
46
- color: var(--og-text-color);
47
- border-radius: var(--og-base-radius);
48
- }
49
- `;
50
- //# sourceMappingURL=menu.style.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"menu.style.js","sourceRoot":"","sources":["../../src/ui/menu.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;eA0Bb,SAAS,CAAC,gBAAgB;;;;;;;;;;CAUxC,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;;;;;CASvB,CAAC","sourcesContent":["import { css } from 'lit';\nimport constants from '../constants';\n\nexport const itemStyle = css`\n\t.item {\n\t\tfont-size: var(--og-font-size);\n\t\tfont-family: var(--og-font-family);\n\t\tdisplay: flex;\n\t\tposition: relative;\n\t}\n\n\t.item.label, .item.label:hover {\n\t\tbackground-color: transparent !important;\n\t\tcursor: default !important;\n\t\tfont-weight: bold;\n\t\tcolor: var(--og-accent-color) !important;\n\t}\n\n\t.item .text {\n\t\tpadding-left: 5px;\n\t\tpadding-right: 5px;\n\t\twhite-space: nowrap;\n\t}\n\n\t.item .icon+.text {\n\t\tpadding-left: 0px;\n\t}\n\n\t.item .icon {\n\t\tmin-width: ${constants.MENU_ITEM_HEIGHT}px;\n\t\ttext-align: center;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t}\n\n\t.item.divider {\n\t\tborder-bottom: 1px solid var(--og-accent-color);\n\t}\n`;\n\nexport const style = css`\n\t:host {\n\t\tfont-size: var(--og-font-size);\n\t\tdisplay: block;\n\t\tborder: 1px solid var(--og-accent-color);\n\t\tbackground: var(--og-background-color);\n\t\tcolor: var(--og-text-color);\n\t\tborder-radius: var(--og-base-radius);\n\t}\n`;"]}
@@ -1,37 +0,0 @@
1
- import { LitElement } from 'lit';
2
- import { numbers } from '../common';
3
- export declare class NumericInput extends LitElement {
4
- static styles: import("lit").CSSResult[];
5
- format: string;
6
- value: number;
7
- min: number;
8
- max: number;
9
- locale: string;
10
- disabled: boolean;
11
- buttons: boolean;
12
- increment: number;
13
- input: HTMLInputElement;
14
- editing: boolean;
15
- private _lastInputValue;
16
- private _lastValue;
17
- private _formatter;
18
- get formatter(): numbers.NumberFormatterFunction;
19
- private _editingFormatter;
20
- get editingFormatter(): numbers.NumberFormatterFunction;
21
- get formattedValue(): string;
22
- get hasButtons(): boolean;
23
- resetFormatters(): void;
24
- willUpdate(props: Map<PropertyKey, unknown>): void;
25
- constructor();
26
- focus(): void;
27
- inc(value?: number): void;
28
- private _dispatchChangeEvent;
29
- private isValidNumber;
30
- _onKeyDown: (e: KeyboardEvent) => void;
31
- _onInput: (e: InputEvent) => void;
32
- _onFocus: () => void;
33
- _onBlur: () => void;
34
- _onButtonClick: (e: MouseEvent) => void;
35
- render: () => import("lit-html").TemplateResult<1>;
36
- }
37
- //# sourceMappingURL=numericInput.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"numericInput.d.ts","sourceRoot":"","sources":["../../src/ui/numericInput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAIvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,qBACa,YAAa,SAAQ,UAAU;IAE3C,MAAM,CAAC,MAAM,4BAAS;IAGtB,MAAM,SAAmC;IAGzC,KAAK,EAAE,MAAM,CAAC;IAGd,GAAG,EAAE,MAAM,CAAC;IAGZ,GAAG,EAAE,MAAM,CAAC;IAGZ,MAAM,SAAe;IAGrB,QAAQ,UAAS;IAGjB,OAAO,UAAS;IAGhB,SAAS,SAAK;IAGd,KAAK,EAAE,gBAAgB,CAAC;IAGxB,OAAO,UAAS;IAEhB,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,UAAU,CAAkC;IACpD,IAAI,SAAS,oCAGZ;IAED,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,IAAI,gBAAgB,oCAKnB;IAED,IAAI,cAAc,WAKjB;IAED,IAAI,UAAU,YAA4C;IAE1D,eAAe;IAKf,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC;;IAiB3C,KAAK;IAIL,GAAG,CAAC,KAAK,GAAE,MAAuB;IAKlC,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,aAAa;IAIrB,UAAU,GAAI,GAAG,aAAa,UAM7B;IAED,QAAQ,GAAI,GAAG,UAAU,UAexB;IAED,QAAQ,aAGN;IAEF,OAAO,aAGL;IAEF,cAAc,GAAI,GAAG,UAAU,UAI9B;IAED,MAAM,6CA6BJ;CAEF"}
@@ -1,175 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { LitElement, html } from 'lit';
8
- import { customElement, property, query, state } from 'lit/decorators.js';
9
- import { getLocale } from '@omegagrid/localize';
10
- import constants from '../constants';
11
- import { numbers } from '../common';
12
- import { style } from './numericInput.style';
13
- let NumericInput = class NumericInput extends LitElement {
14
- get formatter() {
15
- if (!this._formatter)
16
- this._formatter = numbers.getNumberFormatter(this.locale, this.format);
17
- return this._formatter;
18
- }
19
- get editingFormatter() {
20
- if (!this._editingFormatter) {
21
- this._editingFormatter = Intl.NumberFormat(this.locale, { useGrouping: false, maximumFractionDigits: 20 }).format;
22
- }
23
- return this._editingFormatter;
24
- }
25
- get formattedValue() {
26
- return this.value == null ? '' : (this.editing
27
- ? this.editingFormatter(this.value)
28
- : this.formatter(this.value));
29
- }
30
- get hasButtons() { return this.buttons && !this.disabled; }
31
- resetFormatters() {
32
- this._formatter = null;
33
- this._editingFormatter = null;
34
- }
35
- willUpdate(props) {
36
- if (props.has('locale') || props.has('format')) {
37
- this.resetFormatters();
38
- }
39
- if (props.has('value')) {
40
- if (!this.isValidNumber(this.value)) {
41
- this.value = props.get('value');
42
- }
43
- }
44
- }
45
- constructor() {
46
- super();
47
- this.format = constants.DEFAULT_NUMBER_FORMAT;
48
- this.locale = getLocale();
49
- this.disabled = false;
50
- this.buttons = false;
51
- this.increment = 1;
52
- this.editing = false;
53
- this._onKeyDown = (e) => {
54
- if (['ArrowUp', 'ArrowDown'].includes(e.key)) {
55
- e.preventDefault();
56
- this.inc(e.key == 'ArrowUp' ? this.increment : -this.increment);
57
- this._dispatchChangeEvent();
58
- }
59
- };
60
- this._onInput = (e) => {
61
- if (/^-?(0|[1-9]\d*)([,.]\d*)?$/.test(this.input.value)) {
62
- this.value = parseFloat(this.input.value.replace(',', '.'));
63
- }
64
- else if (this.input.value == '') {
65
- this.value = null;
66
- }
67
- else {
68
- const s = this.input.selectionStart - (e.data?.length || 0);
69
- this.input.value = this.formattedValue;
70
- this.input.selectionStart = this.input.selectionEnd = s;
71
- }
72
- if (this.input.value != this._lastInputValue) {
73
- this._lastInputValue = this.input.value;
74
- this.dispatchEvent(new InputEvent('input', e));
75
- }
76
- };
77
- this._onFocus = () => {
78
- this._lastValue = this.value;
79
- this.editing = true;
80
- };
81
- this._onBlur = () => {
82
- this.editing = false;
83
- this._dispatchChangeEvent();
84
- };
85
- this._onButtonClick = (e) => {
86
- e.stopPropagation();
87
- this.inc(parseFloat(e.target.dataset.increment));
88
- this._dispatchChangeEvent();
89
- };
90
- this.render = () => html `
91
- <div>
92
- ${this.hasButtons ? html `
93
- <og-button
94
- icon="minus"
95
- data-increment="${-this.increment}"
96
- @click="${this._onButtonClick}"
97
- @focus="${(e) => e.stopPropagation()}">
98
- </og-button>
99
- ` : null}
100
-
101
- <input
102
- type="text"
103
- ?disabled="${this.disabled}"
104
- .value="${this.formattedValue}"
105
- @focus="${this._onFocus}"
106
- @blur="${this._onBlur}"
107
- @input="${this._onInput}"
108
- @keydown="${this._onKeyDown}">
109
-
110
- ${this.hasButtons ? html `
111
- <og-button
112
- icon="plus"
113
- data-increment="${this.increment}"
114
- @click="${this._onButtonClick}"
115
- @focus="${(e) => e.stopPropagation()}">
116
- </og-button>
117
- ` : null}
118
- </div>
119
- `;
120
- this.tabIndex = 1;
121
- }
122
- focus() {
123
- this.input?.focus();
124
- }
125
- inc(value = this.increment) {
126
- const v = (this.value || 0) + value;
127
- if (this.isValidNumber(v))
128
- this.value = v;
129
- }
130
- _dispatchChangeEvent() {
131
- if (this.value != this._lastValue) {
132
- this._lastValue = this.value;
133
- this.dispatchEvent(new Event('change'));
134
- }
135
- }
136
- isValidNumber(value) {
137
- return (this.min == null || value >= this.min) && (this.max == null || value <= this.max);
138
- }
139
- };
140
- NumericInput.styles = style;
141
- __decorate([
142
- property({ type: String })
143
- ], NumericInput.prototype, "format", void 0);
144
- __decorate([
145
- property({ type: Number })
146
- ], NumericInput.prototype, "value", void 0);
147
- __decorate([
148
- property({ type: Number })
149
- ], NumericInput.prototype, "min", void 0);
150
- __decorate([
151
- property({ type: Number })
152
- ], NumericInput.prototype, "max", void 0);
153
- __decorate([
154
- property({ type: String })
155
- ], NumericInput.prototype, "locale", void 0);
156
- __decorate([
157
- property({ type: Boolean })
158
- ], NumericInput.prototype, "disabled", void 0);
159
- __decorate([
160
- property({ type: Boolean })
161
- ], NumericInput.prototype, "buttons", void 0);
162
- __decorate([
163
- property({ type: Number })
164
- ], NumericInput.prototype, "increment", void 0);
165
- __decorate([
166
- query('input')
167
- ], NumericInput.prototype, "input", void 0);
168
- __decorate([
169
- state()
170
- ], NumericInput.prototype, "editing", void 0);
171
- NumericInput = __decorate([
172
- customElement(`og-numericinput`)
173
- ], NumericInput);
174
- export { NumericInput };
175
- //# sourceMappingURL=numericInput.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"numericInput.js","sourceRoot":"","sources":["../../src/ui/numericInput.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { getLocale } from '@omegagrid/localize';\nimport constants from '../constants';\nimport { numbers } from '../common';\nimport { style } from './numericInput.style';\n\n@customElement(`og-numericinput`)\nexport class NumericInput extends LitElement {\n\n\tstatic styles = style;\n\n\t@property({type: String})\n\tformat = constants.DEFAULT_NUMBER_FORMAT;\n\n\t@property({type: Number})\n\tvalue: number;\n\n\t@property({type: Number})\n\tmin: number;\n\n\t@property({type: Number})\n\tmax: number;\n\n\t@property({type: String})\n\tlocale = getLocale();\n\n\t@property({type: Boolean})\n\tdisabled = false;\n\n\t@property({type: Boolean})\n\tbuttons = false;\n\n\t@property({type: Number})\n\tincrement = 1;\n\n\t@query('input')\n\tinput: HTMLInputElement;\n\n\t@state()\n\tediting = false;\n\n\tprivate _lastInputValue: string;\n\tprivate _lastValue: number;\n\n\tprivate _formatter: numbers.NumberFormatterFunction;\n\tget formatter() {\n\t\tif (!this._formatter) this._formatter = numbers.getNumberFormatter(this.locale, this.format);\n\t\treturn this._formatter;\n\t}\n\n\tprivate _editingFormatter: numbers.NumberFormatterFunction;\n\tget editingFormatter() {\n\t\tif (!this._editingFormatter) {\n\t\t\tthis._editingFormatter = Intl.NumberFormat(this.locale, {useGrouping: false, maximumFractionDigits: 20}).format;\n\t\t}\n\t\treturn this._editingFormatter;\n\t}\n\n\tget formattedValue() {\n\t\treturn this.value == null ? '' : (this.editing\n\t\t\t? this.editingFormatter(this.value)\n\t\t\t: this.formatter(this.value)\n\t\t);\n\t}\n\n\tget hasButtons() { return this.buttons && !this.disabled }\n\n\tresetFormatters() {\n\t\tthis._formatter = null;\n\t\tthis._editingFormatter = null;\n\t}\n\t\n\twillUpdate(props: Map<PropertyKey, unknown>) {\n\t\tif (props.has('locale') || props.has('format')) {\n\t\t\tthis.resetFormatters();\n\t\t}\n\n\t\tif (props.has('value')) {\n\t\t\tif (!this.isValidNumber(this.value)) {\n\t\t\t\tthis.value = props.get('value') as number;\n\t\t\t}\n\t\t}\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.tabIndex = 1;\n\t}\n\n\tfocus() {\n\t\tthis.input?.focus();\n\t}\n\n\tinc(value: number = this.increment) {\n\t\tconst v = (this.value || 0) + value;\n\t\tif (this.isValidNumber(v)) this.value = v;\n\t}\n\n\tprivate _dispatchChangeEvent() {\n\t\tif (this.value != this._lastValue) {\n\t\t\tthis._lastValue = this.value;\n\t\t\tthis.dispatchEvent(new Event('change'));\n\t\t}\n\t}\n\n\tprivate isValidNumber(value: number) {\n\t\treturn (this.min == null || value >= this.min) && (this.max == null || value <= this.max);\n\t}\n\n\t_onKeyDown = (e: KeyboardEvent) => {\n\t\tif (['ArrowUp', 'ArrowDown'].includes(e.key)) {\n\t\t\te.preventDefault();\n\t\t\tthis.inc(e.key == 'ArrowUp' ? this.increment : -this.increment);\n\t\t\tthis._dispatchChangeEvent();\n\t\t}\n\t}\n\n\t_onInput = (e: InputEvent) => {\n\t\tif (/^-?(0|[1-9]\\d*)([,.]\\d*)?$/.test(this.input.value)) {\n\t\t\tthis.value = parseFloat(this.input.value.replace(',', '.'));\n\t\t} else if (this.input.value == '') {\n\t\t\tthis.value = null;\n\t\t} else {\n\t\t\tconst s = this.input.selectionStart - (e.data?.length || 0);\n\t\t\tthis.input.value = this.formattedValue;\n\t\t\tthis.input.selectionStart = this.input.selectionEnd = s;\n\t\t}\n\n\t\tif (this.input.value != this._lastInputValue) {\n\t\t\tthis._lastInputValue = this.input.value;\n\t\t\tthis.dispatchEvent(new InputEvent('input', e));\n\t\t}\n\t}\n\n\t_onFocus = () => {\n\t\tthis._lastValue = this.value;\n\t\tthis.editing = true;\n\t};\n\n\t_onBlur = () => {\n\t\tthis.editing = false;\n\t\tthis._dispatchChangeEvent();\n\t};\n\n\t_onButtonClick = (e: MouseEvent) => {\n\t\te.stopPropagation();\n\t\tthis.inc(parseFloat((e.target as HTMLElement).dataset.increment));\n\t\tthis._dispatchChangeEvent();\n\t}\n\n\trender = () => html`\n\t\t<div>\n\t\t\t${this.hasButtons ? html`\n\t\t\t\t<og-button\n\t\t\t\t\ticon=\"minus\"\n\t\t\t\t\tdata-increment=\"${-this.increment}\"\n\t\t\t\t\t@click=\"${this._onButtonClick}\"\n\t\t\t\t\t@focus=\"${(e: Event) => e.stopPropagation()}\">\n\t\t\t\t</og-button>\n\t\t\t` : null}\n\n\t\t\t<input\n\t\t\t\ttype=\"text\"\n\t\t\t\t?disabled=\"${this.disabled}\"\n\t\t\t\t.value=\"${this.formattedValue}\"\n\t\t\t\t@focus=\"${this._onFocus}\"\n\t\t\t\t@blur=\"${this._onBlur}\"\n\t\t\t\t@input=\"${this._onInput}\"\n\t\t\t\t@keydown=\"${this._onKeyDown}\">\n\n\t\t\t${this.hasButtons ? html`\n\t\t\t\t<og-button\n\t\t\t\t\ticon=\"plus\"\n\t\t\t\t\tdata-increment=\"${this.increment}\"\n\t\t\t\t\t@click=\"${this._onButtonClick}\"\n\t\t\t\t\t@focus=\"${(e: Event) => e.stopPropagation()}\">\n\t\t\t\t</og-button>\n\t\t\t` : null}\n\t\t</div>\n\t`;\n\t\n}"]}
@@ -1,2 +0,0 @@
1
- export declare const style: import("lit").CSSResult[];
2
- //# sourceMappingURL=numericInput.style.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"numericInput.style.d.ts","sourceRoot":"","sources":["../../src/ui/numericInput.style.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,KAAK,2BAyBhB,CAAC"}
@@ -1,29 +0,0 @@
1
- import { css } from 'lit';
2
- import { style as inputStyle } from './input.style';
3
- export const style = [inputStyle, css `
4
- :host {
5
- text-align: right;
6
- overflow: hidden;
7
- }
8
-
9
- :host > div {
10
- display: flex;
11
- flex-direction: row;
12
- width: 100%;
13
- height: 100%;
14
- text-align: inherit;
15
- }
16
-
17
- og-button {
18
- border: none;
19
- text-align: center;
20
- width: 16px;
21
- padding-left: 0;
22
- padding-right: 0;
23
- border-radius: 0;
24
- user-select: none;
25
- height: 100%;
26
- font-size: 10px;
27
- }
28
- `];
29
- //# sourceMappingURL=numericInput.style.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"numericInput.style.js","sourceRoot":"","sources":["../../src/ui/numericInput.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,eAAe,CAAC;AAEpD,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,UAAU,EAAE,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;CAyBpC,CAAC,CAAC","sourcesContent":["import { css } from 'lit';\nimport { style as inputStyle } from './input.style';\n\nexport const style = [inputStyle, css`\n\t:host {\n\t\ttext-align: right;\n\t\toverflow: hidden;\n\t}\n\n\t:host > div {\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\ttext-align: inherit;\n\t}\n\n\tog-button {\n\t\tborder: none;\n\t\ttext-align: center;\n\t\twidth: 16px;\n\t\tpadding-left: 0;\n\t\tpadding-right: 0;\n\t\tborder-radius: 0;\n\t\tuser-select: none;\n\t\theight: 100%;\n\t\tfont-size: 10px;\n\t}\n`];\n"]}
@@ -1,17 +0,0 @@
1
- import { LitElement } from 'lit';
2
- import { DirectionalPosition } from '../types';
3
- export declare class Overlay extends LitElement {
4
- static defaultLoaderImage: string;
5
- static defaultLoaderIcon: string;
6
- static styles: import("lit").CSSResult[];
7
- text: string;
8
- striped: boolean;
9
- loaderImage: string;
10
- loaderIcon: string;
11
- defaultLoader: boolean;
12
- willUpdate(): void;
13
- show(parent: HTMLElement, position?: DirectionalPosition, size?: number): void;
14
- hide: () => HTMLElement;
15
- render: () => import("lit-html").TemplateResult<1>;
16
- }
17
- //# sourceMappingURL=overlay.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../src/ui/overlay.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAGvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAG/C,qBACa,OAAQ,SAAQ,UAAU;IAEtC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC;IAClC,MAAM,CAAC,iBAAiB,SAAa;IAErC,MAAM,CAAC,MAAM,4BAAW;IAGxB,IAAI,EAAE,MAAM,CAAC;IAGb,OAAO,UAAS;IAGhB,WAAW,EAAE,MAAM,CAAC;IAGpB,UAAU,EAAE,MAAM,CAAC;IAGnB,aAAa,UAAS;IAEtB,UAAU;IAOV,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,mBAAmB,EAAE,IAAI,CAAC,EAAE,MAAM;IAsBvE,IAAI,oBAA+B;IAEnC,MAAM,6CAaJ;CAEF"}
@@ -1,87 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var Overlay_1;
8
- import { dom } from '../common';
9
- import { LitElement, html } from 'lit';
10
- import { customElement, property } from 'lit/decorators.js';
11
- import constants from '../constants';
12
- import { style } from './overlay.style';
13
- let Overlay = Overlay_1 = class Overlay extends LitElement {
14
- constructor() {
15
- super(...arguments);
16
- this.striped = false;
17
- this.defaultLoader = false;
18
- this.hide = () => dom.hideElement(this);
19
- this.render = () => html `
20
- <div id="inner">
21
- ${this.loaderIcon ? html `
22
- <div id="loader">
23
- <og-loader .icon="${this.loaderIcon}" size="2x"></og-loader>
24
- </div>
25
- ` : (this.loaderImage ? html `
26
- <div id="loader">
27
- <img src="${this.loaderImage}" />
28
- </div>
29
- ` : ``)}
30
- ${this.text ? html `<div id="text"><span>${this.text}</span></div>` : ``}
31
- </div>
32
- `;
33
- }
34
- willUpdate() {
35
- if (this.defaultLoader && !this.loaderImage && !this.loaderIcon) {
36
- if (Overlay_1.defaultLoaderImage)
37
- this.loaderImage = Overlay_1.defaultLoaderImage;
38
- else
39
- this.loaderIcon = Overlay_1.defaultLoaderIcon;
40
- }
41
- }
42
- show(parent, position, size) {
43
- dom.showElement(this);
44
- const offset = dom.getElementOffset(this, parent);
45
- if (position && size) {
46
- dom.setPosition(this, {
47
- t: position == 'bottom' ? null : offset.top,
48
- b: position == 'top' ? null : (offset.top + parent.clientHeight),
49
- l: position == 'right' ? null : offset.left,
50
- r: position == 'left' ? null : (offset.left + parent.clientWidth)
51
- });
52
- dom.setSize(this, {
53
- w: ['left', 'right'].includes(position) ? size : parent.clientWidth,
54
- h: ['top', 'bottom'].includes(position) ? size : parent.clientHeight
55
- });
56
- }
57
- else if (offset.top == 0 && offset.left == 0) {
58
- dom.setPosition(this, { t: 0, l: 0, r: 0, b: 0 });
59
- }
60
- else {
61
- dom.setPosition(this, { t: offset.top, l: offset.left });
62
- dom.setSize(this, { w: parent.clientWidth, h: parent.clientHeight });
63
- }
64
- }
65
- };
66
- Overlay.defaultLoaderIcon = 'spinner';
67
- Overlay.styles = [style];
68
- __decorate([
69
- property({ type: String })
70
- ], Overlay.prototype, "text", void 0);
71
- __decorate([
72
- property({ type: Boolean, reflect: true })
73
- ], Overlay.prototype, "striped", void 0);
74
- __decorate([
75
- property({ type: String })
76
- ], Overlay.prototype, "loaderImage", void 0);
77
- __decorate([
78
- property({ type: String })
79
- ], Overlay.prototype, "loaderIcon", void 0);
80
- __decorate([
81
- property({ type: Boolean })
82
- ], Overlay.prototype, "defaultLoader", void 0);
83
- Overlay = Overlay_1 = __decorate([
84
- customElement(`${constants.PREFIX}-overlay`)
85
- ], Overlay);
86
- export { Overlay };
87
- //# sourceMappingURL=overlay.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"overlay.js","sourceRoot":"","sources":["../../src/ui/overlay.ts"],"names":[],"mappings":"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","sourcesContent":["import { dom } from '../common';\nimport { LitElement, html } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport constants from '../constants';\nimport { DirectionalPosition } from '../types';\nimport { style } from './overlay.style';\n\n@customElement(`${constants.PREFIX}-overlay`)\nexport class Overlay extends LitElement {\n\n\tstatic defaultLoaderImage: string;\n\tstatic defaultLoaderIcon = 'spinner';\n\n\tstatic styles = [style];\n\n\t@property({type: String})\n\ttext: string;\n\n\t@property({type: Boolean, reflect: true})\n\tstriped = false;\n\n\t@property({type: String})\n\tloaderImage: string;\n\n\t@property({type: String})\n\tloaderIcon: string;\n\n\t@property({type: Boolean})\n\tdefaultLoader = false;\n\n\twillUpdate() {\n\t\tif (this.defaultLoader && !this.loaderImage && !this.loaderIcon) {\n\t\t\tif (Overlay.defaultLoaderImage) this.loaderImage = Overlay.defaultLoaderImage;\n\t\t\telse this.loaderIcon = Overlay.defaultLoaderIcon;\n\t\t}\n\t}\n\n\tshow(parent: HTMLElement, position?: DirectionalPosition, size?: number) {\n\t\tdom.showElement(this)\n\t\tconst offset = dom.getElementOffset(this, parent);\n\t\tif (position && size) {\n\t\t\tdom.setPosition(this, {\n\t\t\t\tt: position == 'bottom' ? null : offset.top,\n\t\t\t\tb: position == 'top' ? null : (offset.top + parent.clientHeight),\n\t\t\t\tl: position == 'right' ? null : offset.left,\n\t\t\t\tr: position == 'left' ? null : (offset.left + parent.clientWidth)\n\t\t\t});\n\t\t\tdom.setSize(this, {\n\t\t\t\tw: ['left', 'right'].includes(position) ? size : parent.clientWidth,\n\t\t\t\th: ['top', 'bottom'].includes(position) ? size : parent.clientHeight\n\t\t\t});\n\t\t} else if (offset.top == 0 && offset.left == 0) {\n\t\t\tdom.setPosition(this, {t: 0, l: 0, r: 0, b: 0});\n\t\t} else {\n\t\t\tdom.setPosition(this, {t: offset.top, l: offset.left});\n\t\t\tdom.setSize(this, {w: parent.clientWidth, h: parent.clientHeight});\n\t\t}\n\t}\n\n\thide = () => dom.hideElement(this);\n\n\trender = () => html`\n\t\t<div id=\"inner\">\n\t\t\t${this.loaderIcon ? html`\n\t\t\t\t<div id=\"loader\">\n\t\t\t\t\t<og-loader .icon=\"${this.loaderIcon}\" size=\"2x\"></og-loader>\n\t\t\t\t</div>\n\t\t\t` : (this.loaderImage ? html`\n\t\t\t\t<div id=\"loader\">\n\t\t\t\t\t<img src=\"${this.loaderImage}\" />\n\t\t\t\t</div>\n\t\t\t` : ``)}\n\t\t\t${this.text ? html`<div id=\"text\"><span>${this.text}</span></div>` : ``}\n\t\t</div>\n\t`;\n\t\n}"]}
@@ -1,2 +0,0 @@
1
- export declare const style: import("lit").CSSResult;
2
- //# sourceMappingURL=overlay.style.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"overlay.style.d.ts","sourceRoot":"","sources":["../../src/ui/overlay.style.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,KAAK,yBA2CjB,CAAC"}