datafolder 1.0.0

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 (182) hide show
  1. package/README.md +169 -0
  2. package/index.js +3 -0
  3. package/package.json +27 -0
  4. package/sample.js +37 -0
  5. package/scripts/airbnb.js +73 -0
  6. package/scripts/airbnb2.js +74 -0
  7. package/scripts/airbnb2_queries.js +231 -0
  8. package/scripts/airbnb_queries.js +264 -0
  9. package/scripts/downloadFile.js +42 -0
  10. package/scripts/express.js +46 -0
  11. package/scripts/fastify.js +79 -0
  12. package/scripts/flights.js +75 -0
  13. package/scripts/flights2.js +81 -0
  14. package/scripts/flights2_queries.js +453 -0
  15. package/scripts/flights_queries.js +403 -0
  16. package/src/QyAcl.js +252 -0
  17. package/src/QyAclSaver.js +14 -0
  18. package/src/QyAclSaver_Worker.js +29 -0
  19. package/src/QyAclWriter.js +19 -0
  20. package/src/QyBatch.js +501 -0
  21. package/src/QyBinWriter.js +140 -0
  22. package/src/QyCD.js +61 -0
  23. package/src/QyCache.js +212 -0
  24. package/src/QyCompressor.js +60 -0
  25. package/src/QyCompressor_Worker.js +13 -0
  26. package/src/QyDB.js +122 -0
  27. package/src/QyDefaultOptions.js +59 -0
  28. package/src/QyDir.js +192 -0
  29. package/src/QyFetch.js +38 -0
  30. package/src/QyFile.js +124 -0
  31. package/src/QyFileContentUtils.js +175 -0
  32. package/src/QyFileLogger.js +58 -0
  33. package/src/QyIndex.js +237 -0
  34. package/src/QyIndexPropTree.js +92 -0
  35. package/src/QyIntersectNode.js +48 -0
  36. package/src/QyItem.js +105 -0
  37. package/src/QyJsonSaver.js +20 -0
  38. package/src/QyKVData.js +289 -0
  39. package/src/QyKVDataCleaner.js +17 -0
  40. package/src/QyKVDataCleaner_Worker.js +94 -0
  41. package/src/QyKVDataLoader.js +65 -0
  42. package/src/QyKVDataSaver.js +17 -0
  43. package/src/QyKVDataSaver_Worker.js +81 -0
  44. package/src/QyLogFileSaver.js +14 -0
  45. package/src/QyLogFileSaver_Worker.js +26 -0
  46. package/src/QyLogger.js +76 -0
  47. package/src/QyMessageWorker.js +41 -0
  48. package/src/QyMessager.js +84 -0
  49. package/src/QyMessager_Run.js +13 -0
  50. package/src/QyMod.js +15 -0
  51. package/src/QyOpRunner.js +73 -0
  52. package/src/QyQueue.js +60 -0
  53. package/src/QySaver.js +83 -0
  54. package/src/QySnapshotCompactor.js +17 -0
  55. package/src/QySnapshotCompactor_Worker.js +151 -0
  56. package/src/QySnapshotSaver.js +17 -0
  57. package/src/QySnapshotSaver_Worker.js +164 -0
  58. package/src/QySnapshots.js +354 -0
  59. package/src/QyStructure.js +50 -0
  60. package/src/QyTrigger.js +133 -0
  61. package/src/QyUnionNode.js +105 -0
  62. package/src/QyUtils.js +250 -0
  63. package/src/QyWorker.js +33 -0
  64. package/src/hackernews.js +93 -0
  65. package/src/rpc/evalCode.js +9 -0
  66. package/src/rpc/getFileContent.js +16 -0
  67. package/src/rpc/getSubItems.js +32 -0
  68. package/src/rpc/queryFiles.js +33 -0
  69. package/src/rpc/reloadRpc.js +1 -0
  70. package/src/simulate.js +114 -0
  71. package/src/simulate2.js +110 -0
  72. package/src/soc_pokec.js +43 -0
  73. package/static/bootstrap-5.3.8-dist/css/bootstrap.min.css +6 -0
  74. package/static/bootstrap-5.3.8-dist/js/bootstrap.bundle.js +6312 -0
  75. package/static/datafolderui/QyStyledElement.js +30 -0
  76. package/static/datafolderui/QyUIFolderTree.js +203 -0
  77. package/static/datafolderui/QyUIUtils.js +42 -0
  78. package/static/datafolderui/display-tree.js +108 -0
  79. package/static/datafolderui/explore-tree.js +122 -0
  80. package/static/datafolderui/folder-tree.js +5 -0
  81. package/static/datafolderui/hscrpt.js +25 -0
  82. package/static/datafolderui/index.css +6 -0
  83. package/static/datafolderui/index.html +20 -0
  84. package/static/datafolderui/json-view.js +74 -0
  85. package/static/datafolderui/kv-input.js +66 -0
  86. package/static/datafolderui/list-input.js +52 -0
  87. package/static/datafolderui/main-page.js +98 -0
  88. package/static/datafolderui/num-input.js +27 -0
  89. package/static/datafolderui/query-editor.js +229 -0
  90. package/static/datafolderui/querySelectorShadowRoot.js +24 -0
  91. package/static/datafolderui/resizable-input.js +67 -0
  92. package/static/favicon.ico +0 -0
  93. package/static/icons-1.13.1/font/bootstrap-icons.min.css +5 -0
  94. package/static/icons-1.13.1/font/fonts/bootstrap-icons.woff +0 -0
  95. package/static/icons-1.13.1/font/fonts/bootstrap-icons.woff2 +0 -0
  96. package/static/json-view/dist/jsonview.js +433 -0
  97. package/static/tree.js/tree.css +106 -0
  98. package/static/tree.js/tree.js +374 -0
  99. package/static/w2ui/dist/w2ui.min.css +2 -0
  100. package/static/w2ui/src/less/icons/icons.json +1 -0
  101. package/static/w2ui/src/less/icons/preview.html +33 -0
  102. package/static/w2ui/src/less/icons/readme.md +15 -0
  103. package/static/w2ui/src/less/icons/svg/box.svg +3 -0
  104. package/static/w2ui/src/less/icons/svg/check.svg +3 -0
  105. package/static/w2ui/src/less/icons/svg/colors.svg +3 -0
  106. package/static/w2ui/src/less/icons/svg/columns.svg +5 -0
  107. package/static/w2ui/src/less/icons/svg/cross.svg +4 -0
  108. package/static/w2ui/src/less/icons/svg/drop.svg +6 -0
  109. package/static/w2ui/src/less/icons/svg/empty.svg +3 -0
  110. package/static/w2ui/src/less/icons/svg/eye-dropper.svg +4 -0
  111. package/static/w2ui/src/less/icons/svg/info.svg +8 -0
  112. package/static/w2ui/src/less/icons/svg/paste.svg +4 -0
  113. package/static/w2ui/src/less/icons/svg/pencil.svg +5 -0
  114. package/static/w2ui/src/less/icons/svg/plus.svg +3 -0
  115. package/static/w2ui/src/less/icons/svg/reload.svg +5 -0
  116. package/static/w2ui/src/less/icons/svg/search.svg +3 -0
  117. package/static/w2ui/src/less/icons/svg/settings.svg +8 -0
  118. package/static/w2ui/src/less/icons/w2ui-font.css +36 -0
  119. package/static/w2ui/src/less/icons/w2ui-font.woff +0 -0
  120. package/static/w2ui/src/less/src/buttons.less +184 -0
  121. package/static/w2ui/src/less/src/common.less +541 -0
  122. package/static/w2ui/src/less/src/fields.less +302 -0
  123. package/static/w2ui/src/less/src/form.less +319 -0
  124. package/static/w2ui/src/less/src/grid.less +1057 -0
  125. package/static/w2ui/src/less/src/icons.less +37 -0
  126. package/static/w2ui/src/less/src/layout.less +86 -0
  127. package/static/w2ui/src/less/src/mixins.less +87 -0
  128. package/static/w2ui/src/less/src/popup.less +277 -0
  129. package/static/w2ui/src/less/src/sidebar.less +343 -0
  130. package/static/w2ui/src/less/src/tabs.less +145 -0
  131. package/static/w2ui/src/less/src/toolbar.less +219 -0
  132. package/static/w2ui/src/less/src/tooltip.less +948 -0
  133. package/static/w2ui/src/less/w2ui.less +196 -0
  134. package/static/w2ui/src/locale/az-az.json +114 -0
  135. package/static/w2ui/src/locale/ba-ba.json +114 -0
  136. package/static/w2ui/src/locale/bg-bg.json +114 -0
  137. package/static/w2ui/src/locale/ca-es.json +114 -0
  138. package/static/w2ui/src/locale/da-dk.json +114 -0
  139. package/static/w2ui/src/locale/de-de.json +114 -0
  140. package/static/w2ui/src/locale/en-gb.json +17 -0
  141. package/static/w2ui/src/locale/en-us.json +17 -0
  142. package/static/w2ui/src/locale/es-ar.json +115 -0
  143. package/static/w2ui/src/locale/es-cr.json +119 -0
  144. package/static/w2ui/src/locale/es-es.json +114 -0
  145. package/static/w2ui/src/locale/es-mx.json +114 -0
  146. package/static/w2ui/src/locale/fr-fr.json +114 -0
  147. package/static/w2ui/src/locale/gl-es.json +114 -0
  148. package/static/w2ui/src/locale/hr-hr.json +114 -0
  149. package/static/w2ui/src/locale/hu-hu.json +114 -0
  150. package/static/w2ui/src/locale/id-id.json +114 -0
  151. package/static/w2ui/src/locale/it-it.json +114 -0
  152. package/static/w2ui/src/locale/ja-jp.json +114 -0
  153. package/static/w2ui/src/locale/kk-kz.json +116 -0
  154. package/static/w2ui/src/locale/ko-kr.json +114 -0
  155. package/static/w2ui/src/locale/lt-lt.json +114 -0
  156. package/static/w2ui/src/locale/nl-nl.json +114 -0
  157. package/static/w2ui/src/locale/no-no.json +114 -0
  158. package/static/w2ui/src/locale/pl-pl.json +114 -0
  159. package/static/w2ui/src/locale/pt-br.json +114 -0
  160. package/static/w2ui/src/locale/ru-ru.json +116 -0
  161. package/static/w2ui/src/locale/sk-sk.json +114 -0
  162. package/static/w2ui/src/locale/sl-si.json +116 -0
  163. package/static/w2ui/src/locale/sr-rs.json +114 -0
  164. package/static/w2ui/src/locale/tr-tr.json +114 -0
  165. package/static/w2ui/src/locale/uk-ua.json +114 -0
  166. package/static/w2ui/src/locale/zh-cn.json +114 -0
  167. package/static/w2ui/src/locale/zh-tw.json +114 -0
  168. package/static/w2ui/src/query.js +583 -0
  169. package/static/w2ui/src/readme.md +11 -0
  170. package/static/w2ui/src/w2base.js +311 -0
  171. package/static/w2ui/src/w2compat.js +207 -0
  172. package/static/w2ui/src/w2field.js +1854 -0
  173. package/static/w2ui/src/w2form.js +2411 -0
  174. package/static/w2ui/src/w2grid.js +8916 -0
  175. package/static/w2ui/src/w2layout.js +1194 -0
  176. package/static/w2ui/src/w2locale.js +129 -0
  177. package/static/w2ui/src/w2popup.js +909 -0
  178. package/static/w2ui/src/w2sidebar.js +1769 -0
  179. package/static/w2ui/src/w2tabs.js +669 -0
  180. package/static/w2ui/src/w2toolbar.js +1180 -0
  181. package/static/w2ui/src/w2tooltip.js +3134 -0
  182. package/static/w2ui/src/w2utils.js +2457 -0
@@ -0,0 +1,948 @@
1
+ /* general overlay */
2
+ .w2ui-overlay {
3
+ --tip-size: 10px;
4
+ * { box-sizing: border-box; }
5
+
6
+ position: fixed;
7
+ z-index: 1700;
8
+ opacity: 0;
9
+ transition: opacity 0.1s;
10
+ border-radius: 4px;
11
+
12
+ .w2ui-draggable {
13
+ cursor: move;
14
+ }
15
+
16
+ .w2ui-overlay-body {
17
+ display: inline-block;
18
+ border-radius: 2px;
19
+ padding: 4px 8px;
20
+ margin: 0px;
21
+ font-size: 13px;
22
+ font-family: OpenSans;
23
+
24
+ box-shadow: 0 0 10px #00000042;
25
+
26
+ color: white;
27
+ border: 1px solid #555;
28
+ background-color: #69717a;
29
+ text-shadow: 0px 1px 1px #444;
30
+ line-height: 1.4;
31
+ letter-spacing: 0.1px;
32
+ overflow: auto;
33
+ /* yellow */
34
+ &.w2ui-light { // default is .w2ui-dark, which is not a real class
35
+ color: #3c3c3c;
36
+ text-shadow: none;
37
+ background-color: #fffde9;
38
+ border: 1px solid #a0a0a0;
39
+ box-shadow: 0 0 10px #00000008;
40
+ }
41
+ /* bright white */
42
+ &.w2ui-white {
43
+ color: #3c3c3c;
44
+ text-shadow: none;
45
+ background-color: #fafafa;
46
+ border: 1px solid #a0a0a0;
47
+ box-shadow: 0 2px 15px #00000008;
48
+ outline: 1px solid white;
49
+ }
50
+ &.w2ui-arrow-right:before {
51
+ content: "";
52
+ position: absolute;
53
+ left: calc(var(--tip-size, 8px) * -0.5 - 1px);
54
+ top: calc(50% - 1px); // for one line tooltips, small adjjustment
55
+ transform: rotate(-45deg) translateY(-50%);
56
+ transform-origin: top center;
57
+ margin: 0;
58
+ border: inherit;
59
+ border-color: inherit;
60
+ background-color: inherit;
61
+ width: var(--tip-size, 8px);
62
+ height: var(--tip-size, 8px);
63
+ border-bottom-right-radius: 200px;
64
+ border-bottom-width: 0;
65
+ border-right-width: 0;
66
+ }
67
+
68
+ &.w2ui-arrow-left:after {
69
+ content: "";
70
+ position: absolute;
71
+ right: calc(var(--tip-size, 8px) * -0.5 - 1px);
72
+ top: calc(50% - 1px); // for one line tooltips, small adjjustment
73
+ transform: rotate(135deg) translateY(-50%);
74
+ transform-origin: top center;
75
+ margin: 0;
76
+ border: inherit;
77
+ border-color: inherit;
78
+ background-color: inherit;
79
+ width: var(--tip-size, 8px);
80
+ height: var(--tip-size, 8px);
81
+ border-bottom-right-radius: 200px;
82
+ border-bottom-width: 0;
83
+ border-right-width: 0;
84
+ }
85
+
86
+ &.w2ui-arrow-bottom:before {
87
+ content: "";
88
+ position: absolute;
89
+ top: calc(var(--tip-size, 8px) * -0.5);
90
+ left: 50%;
91
+ transform: rotate(45deg) translateX(-50%);
92
+ transform-origin: center left;
93
+ margin: 0;
94
+ border: inherit;
95
+ border-color: inherit;
96
+ background-color: inherit;
97
+ width: var(--tip-size, 8px);
98
+ height: var(--tip-size, 8px);
99
+ border-bottom-right-radius: 200px;
100
+ border-bottom-width: 0;
101
+ border-right-width: 0;
102
+ }
103
+
104
+ &.w2ui-arrow-top:after {
105
+ content: "";
106
+ position: absolute;
107
+ bottom: calc(var(--tip-size, 8px) * -0.5 + 3px);
108
+ left: 50%;
109
+ transform-origin: center left;
110
+ transform: rotate(-135deg) translateX(-50%);
111
+ margin: 0;
112
+ border: inherit;
113
+ border-color: inherit;
114
+ background-color: inherit;
115
+ width: var(--tip-size, 8px);
116
+ height: var(--tip-size, 8px);
117
+ border-bottom-right-radius: 200px;
118
+ border-bottom-width: 0;
119
+ border-right-width: 0;
120
+ }
121
+ }
122
+ }
123
+
124
+ /* color overlay */
125
+ .w2ui-colors-header {
126
+ padding: 4px 11px;
127
+ border-bottom: 1px solid #dddddd;
128
+ font-weight: bold;
129
+ font-size: 14px;
130
+ cursor: move;
131
+ }
132
+
133
+ .w2ui-colors {
134
+ padding: 8px;
135
+ padding-bottom: 0px;
136
+ background-color: white;
137
+ border-radius: 3px;
138
+ overflow: hidden;
139
+ width: 270px;
140
+ height: 270px;
141
+ user-select: none;
142
+
143
+ * { .box-sizing; }
144
+
145
+ .w2ui-color-tabs {
146
+ display: flex;
147
+ background-color: #f7f7f7;
148
+ height: 34px;
149
+ margin: 14px -8px 0px -8px;
150
+ border-top: 1px solid #d6d6d6;
151
+
152
+ .w2ui-color-tab {
153
+ display: inline-block;
154
+ width: 65px;
155
+ height: 32px;
156
+ border: 0;
157
+ border-top: 2px solid transparent;
158
+ border-radius: 1px;
159
+ margin: -1.5px 4px;
160
+ text-align: center;
161
+ font-size: 15px;
162
+ padding-top: 4px;
163
+ color: #7b7b7b;
164
+
165
+ &:hover {
166
+ background-color: #e1e1e1;
167
+ }
168
+
169
+ &.w2ui-selected {
170
+ border-top-color: #0175ff;
171
+ }
172
+
173
+ .w2ui-icon {
174
+ padding-top: 0;
175
+ margin-top: -2px;
176
+ width: 30px;
177
+ height: 21px;
178
+ }
179
+ }
180
+ }
181
+
182
+ .w2ui-tab-content.tab-1 {
183
+ .w2ui-color-row {
184
+ display: flex;
185
+ .w2ui-color {
186
+ cursor: default;
187
+ text-align: center;
188
+ display: inline-block;
189
+ width: 18px;
190
+ height: 18px;
191
+ padding: 6px;
192
+ margin: 1.5px;
193
+ border: 1px solid transparent;
194
+ &:hover {
195
+ outline: 1px solid #666;
196
+ border: 1px solid #fff;
197
+ }
198
+ &.w2ui-no-color { // transparent color
199
+ border: 1px solid #efefef;
200
+ background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABlBMVEX/////TgCFoIUYAAAAGUlEQVR42uXHIQEAAACDsNO/NJ4Kn9uC8wsJkAARUrXAjwAAAABJRU5ErkJggg==) 16px 16px;
201
+ }
202
+ &.w2ui-selected:before {
203
+ content: '\2022';
204
+ position: relative;
205
+ left: -1px;
206
+ top: -8px;
207
+ color: white;
208
+ font-size: 14px;
209
+ text-shadow: 0px 0px 2px #222;
210
+ }
211
+ &.w2ui-color-picker {
212
+ position: absolute;
213
+ right: 11px;
214
+ margin-top: 1px;
215
+ cursor: pointer;
216
+ border: 1px solid #b9b5b5;
217
+ width: 28px;
218
+ height: 23px;
219
+ color: #6e7e9f;
220
+ background-color: #e6e3e3;
221
+ border-radius: 3px;
222
+ &:hover {
223
+ color: #444;
224
+ outline: 1px solid #888;
225
+ border: 1px solid #e0e1e5;
226
+ background-color: #e0e1e5;
227
+ }
228
+ .w2ui-icon {
229
+ position: relative;
230
+ top: -7px;
231
+ left: -2px;
232
+ margin: 0;
233
+ padding: 0;
234
+ font-size: 14px;
235
+ height: 20px;
236
+ }
237
+ }
238
+ }
239
+ }
240
+ }
241
+
242
+ .w2ui-tab-content.tab-2 {
243
+ height: 213px;
244
+ padding: 1px 2px;
245
+
246
+ .palette {
247
+ position: relative;
248
+ width: 150px;
249
+ height: 125px;
250
+ outline: 1px solid #d2d2d2;
251
+
252
+ .palette-bg {
253
+ height: 100%;
254
+ background-image: linear-gradient(0deg, #000000, rgba(204, 154, 129, 0));
255
+ pointer-events: none;
256
+ }
257
+ }
258
+
259
+ .rainbow {
260
+ position: relative;
261
+ width: 150px;
262
+ height: 12px;
263
+ margin: 12px 0px 0px 0px;
264
+ background: linear-gradient(90deg, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);
265
+ }
266
+
267
+ .alpha {
268
+ position: relative;
269
+ width: 150px;
270
+ height: 12px;
271
+ margin: 14px 0px 0px 0px;
272
+ background-color: #fff;
273
+ background-image: linear-gradient(45deg, #bbb 25%, transparent 25%, transparent 75%, #bbb 75%, #bbb),
274
+ linear-gradient(45deg, #bbb 25%, transparent 25%, transparent 75%, #bbb 75%, #bbb);
275
+ background-size: 12px 12px;
276
+ background-position:0 0, 6px 6px;
277
+
278
+ .alpha-bg {
279
+ height: 100%;
280
+ background-image: linear-gradient(90deg, rgba(80, 80, 80, 0) 0%, rgba(80, 80, 80, 1) 100%);
281
+ pointer-events: none;
282
+ }
283
+ }
284
+
285
+ .value1 {
286
+ pointer-events: none;
287
+ position: absolute;
288
+ top: 0px;
289
+ display: inline-block;
290
+ width: 8px;
291
+ height: 8px;
292
+ border-radius: 10px;
293
+ border: 1px solid #999;
294
+ outline: 1px solid #bbb;
295
+ background-color: transparent;
296
+ box-shadow: 0px 0px 1px white;
297
+ transform: translateX(-3px) translateY(-3px);
298
+ }
299
+
300
+ .value2 {
301
+ pointer-events: none;
302
+ position: absolute;
303
+ top: -2px;
304
+ display: inline-block;
305
+ width: 8px;
306
+ height: 16px;
307
+ border-radius: 2px;
308
+ border: 1px solid rgb(105, 105, 105);
309
+ background-color: rgb(255, 255, 255);
310
+ box-shadow: 0px 0px 1px white;
311
+ transform: translateX(-1px);
312
+ }
313
+
314
+ input.final {
315
+ font-size: 12px;
316
+ border-radius: 2px;
317
+ border: 1px solid #ccc;
318
+ width: 100px;
319
+ padding: 4px;
320
+ color: #333;
321
+ margin-top: 14px;
322
+ }
323
+
324
+ .color-info {
325
+ float: right;
326
+ margin-right: -5px;
327
+
328
+ .color-preview-bg {
329
+ box-shadow: 0 0 1px #c3c3c3;
330
+ height: 40px;
331
+ background-color: #fff;
332
+ background-image: linear-gradient(45deg, #bbb 25%, transparent 25%, transparent 75%, #bbb 75%, #bbb),
333
+ linear-gradient(45deg, #bbb 25%, transparent 25%, transparent 75%, #bbb 75%, #bbb);
334
+ background-size: 16px 16px;
335
+ background-position:0 0, 8px 8px;
336
+ margin-bottom: 10px;
337
+ }
338
+
339
+ .color-preview, .color-original {
340
+ height: 40px;
341
+ width: 50px;
342
+ float: left;
343
+ }
344
+
345
+ .color-part {
346
+ padding-top: 7px;
347
+ span {
348
+ display:inline-block;
349
+ width: 8px;
350
+ margin: 2px 1px 2px 5px;
351
+ color: #666;
352
+ }
353
+ input {
354
+ font-size: 12px;
355
+ border-radius: 2px;
356
+ border: 1px solid #ccc;
357
+ width: 30px;
358
+ text-align: right;
359
+ padding: 4px;
360
+ color: #333;
361
+ }
362
+ &.opacity {
363
+ margin: 6px 0px 0px 8px;
364
+ span {
365
+ width: 42px;
366
+ margin-left: 0px;
367
+ margin-top: 5px;
368
+ }
369
+ input {
370
+ width: 38px;
371
+ margin-left: 6px;
372
+ text-align: center;
373
+ }
374
+ }
375
+ }
376
+
377
+ }
378
+
379
+ .w2ui-color-picker {
380
+ position: relative;
381
+ left: 5px;
382
+ top: 9px;
383
+ display: inline-block;
384
+ cursor: pointer;
385
+ border: 1px solid #b9b5b5;
386
+ width: 28px;
387
+ height: 24px;
388
+ color: #6e7e9f;
389
+ background-color: #e6e3e3;
390
+ border-radius: 3px;
391
+ &:hover {
392
+ color: #444;
393
+ outline: 1px solid #888;
394
+ border: 1px solid #e0e1e5;
395
+ background-color: #e0e1e5;
396
+ }
397
+ .w2ui-icon {
398
+ position: relative;
399
+ top: -3px;
400
+ left: 3px;
401
+ font-size: 14px;
402
+ height: 20px;
403
+ }
404
+ }
405
+
406
+ }
407
+ }
408
+
409
+ /* menu overlay */
410
+ .w2ui-menu-top,
411
+ .w2ui-menu-search {
412
+ position: sticky;
413
+ top: 0;
414
+ background-color: white;
415
+ border-bottom: 1px dotted silver;
416
+ }
417
+
418
+ .w2ui-menu-search {
419
+ padding: 6px 4px;
420
+ .w2ui-icon {
421
+ position: absolute;
422
+ top: 8px;
423
+ left: 6px;
424
+ color: #90819c;
425
+ font-size: 14px;
426
+ }
427
+ #menu-search {
428
+ width: 100%;
429
+ padding: 5px 5px 5px 25px;
430
+ }
431
+ }
432
+
433
+ .w2ui-menu {
434
+ display: block;
435
+ color: black;
436
+ padding: 5px 0px;
437
+ border-radius: 5px;
438
+ overflow-x: hidden;
439
+ cursor: default;
440
+ user-select: none;
441
+ -webkit-user-select: none; // stil need -webkit-user-select to make it work on the iPhone
442
+
443
+ .w2ui-menu-item {
444
+ display: flex;
445
+ align-content: stretch;
446
+ padding: 8px 5px;
447
+ user-select: none;
448
+
449
+ &.w2ui-even {
450
+ color: @dropdown-item-even-color;
451
+ background-color: @dropdown-item-even-background-color;
452
+ }
453
+
454
+ &.w2ui-odd {
455
+ color: @dropdown-item-odd-color;
456
+ background-color: @dropdown-item-odd-background-color;
457
+ }
458
+
459
+ &.expanded,
460
+ &:hover {
461
+ background-color: #eaeaea;
462
+ }
463
+
464
+ &.w2ui-selected {
465
+ background-color: #e1e7ff;
466
+ }
467
+
468
+ &.w2ui-disabled {
469
+ opacity: 0.4;
470
+ color: inherit;
471
+ background-color: transparent;
472
+ }
473
+
474
+ .menu-icon {
475
+ flex: none; // do not grow
476
+ width: 26px;
477
+ height: 16px;
478
+ padding: 0;
479
+ margin: 0;
480
+
481
+ span {
482
+ width: 18px;
483
+ font-size: 14px;
484
+ color: @drop-menu-image-color;
485
+ display: flex;
486
+ padding-top: 1px;
487
+ }
488
+ }
489
+
490
+ .menu-text {
491
+ flex-grow: 1;
492
+ white-space: nowrap;
493
+ }
494
+
495
+ .menu-extra {
496
+ flex: none; // do not grow
497
+ min-width: 10px;
498
+ span {
499
+ border: @menu-node-count-border;
500
+ border-radius: 20px;
501
+ width: auto;
502
+ height: 18px;
503
+ padding: 2px 7px;
504
+ margin: 0 0 0 10px;
505
+ background-color: @menu-node-count-background-color;
506
+ color: @menu-node-count-color;
507
+ box-shadow: @menu-node-count-shadow;
508
+ text-shadow: @menu-node-count-text-shadow;
509
+ }
510
+ span.menu-hotkey {
511
+ border: none;
512
+ border-radius: 0px;
513
+ background-color: transparent;
514
+ color: #888;
515
+ box-shadow: none;
516
+ text-shadow: none;
517
+ }
518
+ span.menu-help {
519
+ color: #838383;
520
+ background-color: #f7f7f7;
521
+ border-color: #d1d1d1;
522
+ box-shadow: none;
523
+ padding: 0 4px 0 5px;
524
+ border-radius: 15px;
525
+ position: relative;
526
+ margin-top: -1px;
527
+ display: block;
528
+ height: 20px;
529
+ width: 24px;
530
+ line-height: 1.3;
531
+ text-align: center;
532
+ user-select: none;
533
+ opacity: 0;
534
+ font-family: "Courier New";
535
+ font-size: 15px;
536
+ &:hover {
537
+ background-color: #edfaf3;
538
+ border-color: #b3cfc1;
539
+ color: #199533;
540
+ }
541
+ }
542
+ span.menu-remove {
543
+ background-color: transparent;
544
+ border-color: transparent;
545
+ box-shadow: none;
546
+ padding: 0 4px 0 5px;
547
+ border-radius: 3px;
548
+ position: relative;
549
+ margin-top: -1px;
550
+ display: block;
551
+ height: 20px;
552
+ width: 20px;
553
+ opacity: 0;
554
+ line-height: 1.3;
555
+ text-align: center;
556
+ user-select: none;
557
+ &:hover {
558
+ background-color: #f9e7e7;
559
+ border: 1px solid #f1c0c0;
560
+ }
561
+ &:active {
562
+ background-color: #ffd1d1;
563
+ }
564
+ }
565
+ }
566
+
567
+ &:hover {
568
+ .menu-extra span.menu-remove {
569
+ opacity: 1;
570
+ }
571
+ .menu-extra span.menu-help {
572
+ opacity: 1;
573
+ }
574
+ }
575
+ }
576
+
577
+ .w2ui-menu-divider {
578
+ padding: 5px;
579
+ .line {
580
+ border-top: 1px dotted silver;
581
+ }
582
+
583
+ &.has-text {
584
+ height: 26px;
585
+ background-color: #fafafa;
586
+ border-top: 1px solid #f2f2f2;
587
+ border-bottom: 1px solid #f2f2f2;
588
+ text-align: center;
589
+ .line {
590
+ display: block;
591
+ margin-top: 7px;
592
+ }
593
+ .text {
594
+ display: inline-block;
595
+ position: relative;
596
+ top: -10px;
597
+ background-color: #fafafa;
598
+ padding: 0px 7px;
599
+ color: darkgrey;
600
+ }
601
+ }
602
+ }
603
+
604
+ .w2ui-no-items {
605
+ padding: 5px 15px;
606
+ text-align: center;
607
+ color: gray;
608
+
609
+ .w2ui-spinner {
610
+ position: relative;
611
+ left: -2px;
612
+ margin-bottom: -5px;
613
+ width: 18px;
614
+ height: 18px;
615
+ }
616
+ }
617
+
618
+ .w2ui-sub-menu-box {
619
+ background-color: #fafafd;
620
+ border-top: 1px solid #d6e2e6;
621
+ border-bottom: 1px solid #d6e2e6;
622
+ padding: 0 3px;
623
+ }
624
+
625
+ .has-sub-menu {
626
+ .menu-extra span {
627
+ position: relative; // needed for :after to be absolute
628
+ border-color: transparent;
629
+ background-color: transparent;
630
+ box-shadow: none;
631
+ padding: 0px 6px;
632
+ border-radius: 0px;
633
+ margin-left: 5px;
634
+ &:after {
635
+ content: "";
636
+ position: absolute;
637
+ border-left: 5px solid #808080;
638
+ border-top: 5px solid transparent;
639
+ border-bottom: 5px solid transparent;
640
+ transform: rotateZ(0deg);
641
+ pointer-events: none;
642
+ margin-left: -2px;
643
+ margin-top: 4px;
644
+ }
645
+ &:hover {
646
+ border-color: transparent;
647
+ background-color: transparent;
648
+ }
649
+ }
650
+ }
651
+ }
652
+
653
+ // dark menu
654
+ .w2ui-overlay .w2ui-overlay-body.w2ui-dark {
655
+ .w2ui-menu-item {
656
+ color: #d9d9d9;
657
+ &.expanded,
658
+ &:hover {
659
+ background-color: #595d67;
660
+ }
661
+ &.w2ui-selected {
662
+ color: white;
663
+ background-color: #4bb8ff;
664
+ text-shadow: 0px 1px 1px #66686d;
665
+ }
666
+ &.w2ui-disabled {
667
+ color: #a3a3a3;
668
+ background-color: inherit;
669
+ }
670
+ .menu-icon span {
671
+ color: inherit;
672
+ }
673
+ .menu-extra span {
674
+ border: 1px solid transparent;
675
+ color: #d9d9d9;
676
+ text-shadow: 0px 0px 1px #141414;
677
+ }
678
+ }
679
+ .w2ui-sub-menu-box {
680
+ background-color: #696f73;
681
+ border-top: 1px solid #434444;
682
+ border-bottom: 1px solid #434444;
683
+ }
684
+ .w2ui-menu .has-sub-menu .menu-extra span:after {
685
+ border-left: 5px solid #eaeaea;
686
+ }
687
+ }
688
+
689
+ /* date overlay */
690
+ .w2ui-calendar {
691
+ margin: 0px;
692
+ line-height: 1.1;
693
+ user-select: none;
694
+
695
+ &.w2ui-overlay-body {
696
+ border: 1px solid #cccace;
697
+ color: #3c3c3c;
698
+ text-shadow: none;
699
+ background-color: #fff;
700
+ box-shadow: 0 0 10px #00000008;
701
+ }
702
+
703
+ .w2ui-cal-title, .w2ui-time-title {
704
+ margin: 0px;
705
+ padding: 7px 2px;
706
+ background-color: #fafafa;
707
+ border-top: 1px solid #fefefe;
708
+ border-bottom: 1px solid #ddd;
709
+ color: #555;
710
+ text-align: center;
711
+ text-shadow: 1px 1px 1px #eee;
712
+ font-size: 16px;
713
+
714
+ cursor: pointer;
715
+ .arrow-down {
716
+ position: relative;
717
+ top: -3px;
718
+ left: 5px;
719
+ opacity: 0.6;
720
+ }
721
+ }
722
+
723
+ .w2ui-cal-previous,
724
+ .w2ui-cal-next {
725
+ width: 30px;
726
+ height: 30px;
727
+ color: #666;
728
+ border: 1px solid transparent;
729
+ border-radius: 3px;
730
+ padding: 7px 5px;
731
+ margin: -4px 1px 0px 1px;
732
+ cursor: default;
733
+ &:hover {
734
+ color: black;
735
+ border: 1px solid #f5f5f5;
736
+ background-color: #f9f7f7;
737
+ }
738
+ &:active {
739
+ color: black;
740
+ background-color: #f2f1f4;
741
+ border: 1px solid #e6dbfb;
742
+ }
743
+ & > div {
744
+ position: absolute;
745
+ border-left: 4px solid #888;
746
+ border-top: 4px solid #888;
747
+ border-right: 4px solid transparent;
748
+ border-bottom: 4px solid transparent;
749
+ width: 0px;
750
+ height: 0px;
751
+ padding: 0px;
752
+ margin: 3px 0px 0px 0px;
753
+ }
754
+ }
755
+
756
+ .w2ui-cal-previous {
757
+ float: left;
758
+ & > div {
759
+ .transform-rotate(-45deg);
760
+ margin-left: 6px;
761
+ }
762
+ }
763
+
764
+ .w2ui-cal-next {
765
+ float: right;
766
+ & > div {
767
+ .transform-rotate(135deg);
768
+ margin-left: 2px;
769
+ margin-right: 2px;
770
+ }
771
+ }
772
+
773
+ .w2ui-cal-jump {
774
+ display: flex;
775
+ background-color: #fdfdfd;
776
+ .w2ui-jump-month,
777
+ .w2ui-jump-year {
778
+ cursor: default;
779
+ text-align: center;
780
+ border: 1px solid transparent;
781
+ border-radius: 3px;
782
+ font-size: 14px;
783
+ }
784
+ #w2ui-jump-month {
785
+ width: 186px;
786
+ padding: 10px 5px 4px 3px;
787
+ border-right: 1px solid #efefef;
788
+ display: grid;
789
+ grid-template-columns: repeat(3, 1fr);
790
+ grid-template-rows: repeat(4, 52px);
791
+ grid-gap: 4px;
792
+ .w2ui-jump-month {
793
+ padding: 15px 0 0 0;
794
+ }
795
+ }
796
+ #w2ui-jump-year {
797
+ width: 90px;
798
+ height: 240px;
799
+ overflow-x: hidden;
800
+ overflow-y: auto;
801
+ margin: 0 2px;
802
+ display: flex;
803
+ flex-wrap: wrap;
804
+ .w2ui-jump-year {
805
+ width: 95%;
806
+ height: 30px;
807
+ padding: 5px 0;
808
+ margin: 1px 0;
809
+ }
810
+ }
811
+ .w2ui-jump-month:hover, .w2ui-jump-year:hover {
812
+ color: black;
813
+ border: 1px solid #f5f5f5;
814
+ background-color: #f9f7f7;
815
+ }
816
+ .w2ui-jump-month.w2ui-selected, .w2ui-jump-year.w2ui-selected {
817
+ color: black;
818
+ background-color: #f2f1f4;
819
+ border: 1px solid #e6dbfb;
820
+ }
821
+ }
822
+
823
+ .w2ui-cal-now {
824
+ cursor: default;
825
+ padding: 3px;
826
+ text-align: center;
827
+ background-color: #f4f4f4;
828
+ margin: 5px;
829
+ border: 1px solid #e5e5e5;
830
+ border-radius: 4px;
831
+ &:hover {
832
+ color: #28759e;
833
+ border: 1px solid #c3d6df;
834
+ }
835
+ }
836
+
837
+ .w2ui-cal-days {
838
+ width: 280px;
839
+ height: 240px;
840
+ padding: 2px;
841
+ display: grid;
842
+ grid-template-columns: repeat(7, 1fr);
843
+
844
+
845
+
846
+ .w2ui-day {
847
+ border: 1px solid #fff;
848
+ border-radius: 3px;
849
+ color: black;
850
+ background-color: #f7f7f7;
851
+ padding: 8px 0 0 0;
852
+ cursor: default;
853
+ text-align: center;
854
+ &.w2ui-saturday,
855
+ &.w2ui-sunday {
856
+ border: 1px solid #fff;
857
+ color: #c8493b;
858
+ background-color: #f7f7f7;
859
+ }
860
+ &.w2ui-today {
861
+ background-color: #e2f7cd;
862
+ }
863
+ &:hover {
864
+ background-color: #f2f1f4;
865
+ border: 1px solid #e6dbfb;
866
+ }
867
+ &:active {
868
+ background-color: #eeebf3;
869
+ border: 1px solid #cec2e5;
870
+ }
871
+ &.w2ui-selected {
872
+ border: 1px solid #8cb067;
873
+ }
874
+ &.w2ui-weekday {
875
+ text-align: center;
876
+ background-color: #fff;
877
+ color: #a99cc2;
878
+ &:hover {
879
+ border: 1px solid #fff;
880
+ background-color: #fff;
881
+ }
882
+ }
883
+ &.outside {
884
+ color: #b5b5b5;
885
+ background-color: #fff;
886
+ }
887
+ &.w2ui-blocked {
888
+ color: #555;
889
+ background-color: #fff;
890
+ border: 1px solid #fff;
891
+ &:after {
892
+ content: " ";
893
+ position: absolute;
894
+ color: #b3b3b378;
895
+ font-size: 27px;
896
+ padding: 0px;
897
+ font-family: verdana;
898
+ transform: translate(-15px, 15px) rotate(-36deg);
899
+ border-top: 1px solid #c9c2c2;
900
+ width: 24px;
901
+ transform-origin: top left;
902
+ }
903
+ }
904
+ }
905
+ }
906
+ }
907
+
908
+ /* time overlay */
909
+ .w2ui-cal-time {
910
+ display: grid;
911
+ grid-template-columns: repeat(3, 1fr);
912
+ background-color: #ffffff;;
913
+ cursor: default;
914
+
915
+ .w2ui-cal-column {
916
+ width: 90px;
917
+ display: flex;
918
+ flex-wrap: wrap;
919
+ padding: 4px;
920
+
921
+ &:nth-child(even) {
922
+ background-color: #fafafa;
923
+ }
924
+
925
+ span {
926
+ width: 100%;
927
+ padding: 8px;
928
+ margin: 1px;
929
+ text-align: center;
930
+ border: 1px solid transparent;
931
+ border-radius: 2px;
932
+ white-space: nowrap;
933
+ &:hover {
934
+ background-color: #f2f1f4;
935
+ border: 1px solid #e6dbfb;
936
+ }
937
+ &:active {
938
+ background-color: #eeebf3;
939
+ border: 1px solid #cec2e5;
940
+ }
941
+ &.w2ui-blocked {
942
+ pointer-events: none;
943
+ text-decoration: line-through;
944
+ color: silver;
945
+ }
946
+ }
947
+ }
948
+ }