source: imaps-frontend/node_modules/vite/dist/node/chunks/dep-IQS-Za7F.js@ d565449

main
Last change on this file since d565449 was d565449, checked in by stefan toskovski <stefantoska84@…>, 4 weeks ago

Update repo after prototype presentation

  • Property mode set to 100644
File size: 13.1 KB
Line 
1import { fileURLToPath as __cjs_fileURLToPath } from 'node:url';
2import { dirname as __cjs_dirname } from 'node:path';
3import { createRequire as __cjs_createRequire } from 'node:module';
4
5const __filename = __cjs_fileURLToPath(import.meta.url);
6const __dirname = __cjs_dirname(__filename);
7const require = __cjs_createRequire(import.meta.url);
8const __require = require;
9var openParentheses = "(".charCodeAt(0);
10var closeParentheses = ")".charCodeAt(0);
11var singleQuote = "'".charCodeAt(0);
12var doubleQuote = '"'.charCodeAt(0);
13var backslash = "\\".charCodeAt(0);
14var slash = "/".charCodeAt(0);
15var comma = ",".charCodeAt(0);
16var colon = ":".charCodeAt(0);
17var star = "*".charCodeAt(0);
18var uLower = "u".charCodeAt(0);
19var uUpper = "U".charCodeAt(0);
20var plus = "+".charCodeAt(0);
21var isUnicodeRange = /^[a-f0-9?-]+$/i;
22
23var parse$1 = function(input) {
24 var tokens = [];
25 var value = input;
26
27 var next,
28 quote,
29 prev,
30 token,
31 escape,
32 escapePos,
33 whitespacePos,
34 parenthesesOpenPos;
35 var pos = 0;
36 var code = value.charCodeAt(pos);
37 var max = value.length;
38 var stack = [{ nodes: tokens }];
39 var balanced = 0;
40 var parent;
41
42 var name = "";
43 var before = "";
44 var after = "";
45
46 while (pos < max) {
47 // Whitespaces
48 if (code <= 32) {
49 next = pos;
50 do {
51 next += 1;
52 code = value.charCodeAt(next);
53 } while (code <= 32);
54 token = value.slice(pos, next);
55
56 prev = tokens[tokens.length - 1];
57 if (code === closeParentheses && balanced) {
58 after = token;
59 } else if (prev && prev.type === "div") {
60 prev.after = token;
61 prev.sourceEndIndex += token.length;
62 } else if (
63 code === comma ||
64 code === colon ||
65 (code === slash &&
66 value.charCodeAt(next + 1) !== star &&
67 (!parent ||
68 (parent && parent.type === "function" && parent.value !== "calc")))
69 ) {
70 before = token;
71 } else {
72 tokens.push({
73 type: "space",
74 sourceIndex: pos,
75 sourceEndIndex: next,
76 value: token
77 });
78 }
79
80 pos = next;
81
82 // Quotes
83 } else if (code === singleQuote || code === doubleQuote) {
84 next = pos;
85 quote = code === singleQuote ? "'" : '"';
86 token = {
87 type: "string",
88 sourceIndex: pos,
89 quote: quote
90 };
91 do {
92 escape = false;
93 next = value.indexOf(quote, next + 1);
94 if (~next) {
95 escapePos = next;
96 while (value.charCodeAt(escapePos - 1) === backslash) {
97 escapePos -= 1;
98 escape = !escape;
99 }
100 } else {
101 value += quote;
102 next = value.length - 1;
103 token.unclosed = true;
104 }
105 } while (escape);
106 token.value = value.slice(pos + 1, next);
107 token.sourceEndIndex = token.unclosed ? next : next + 1;
108 tokens.push(token);
109 pos = next + 1;
110 code = value.charCodeAt(pos);
111
112 // Comments
113 } else if (code === slash && value.charCodeAt(pos + 1) === star) {
114 next = value.indexOf("*/", pos);
115
116 token = {
117 type: "comment",
118 sourceIndex: pos,
119 sourceEndIndex: next + 2
120 };
121
122 if (next === -1) {
123 token.unclosed = true;
124 next = value.length;
125 token.sourceEndIndex = next;
126 }
127
128 token.value = value.slice(pos + 2, next);
129 tokens.push(token);
130
131 pos = next + 2;
132 code = value.charCodeAt(pos);
133
134 // Operation within calc
135 } else if (
136 (code === slash || code === star) &&
137 parent &&
138 parent.type === "function" &&
139 parent.value === "calc"
140 ) {
141 token = value[pos];
142 tokens.push({
143 type: "word",
144 sourceIndex: pos - before.length,
145 sourceEndIndex: pos + token.length,
146 value: token
147 });
148 pos += 1;
149 code = value.charCodeAt(pos);
150
151 // Dividers
152 } else if (code === slash || code === comma || code === colon) {
153 token = value[pos];
154
155 tokens.push({
156 type: "div",
157 sourceIndex: pos - before.length,
158 sourceEndIndex: pos + token.length,
159 value: token,
160 before: before,
161 after: ""
162 });
163 before = "";
164
165 pos += 1;
166 code = value.charCodeAt(pos);
167
168 // Open parentheses
169 } else if (openParentheses === code) {
170 // Whitespaces after open parentheses
171 next = pos;
172 do {
173 next += 1;
174 code = value.charCodeAt(next);
175 } while (code <= 32);
176 parenthesesOpenPos = pos;
177 token = {
178 type: "function",
179 sourceIndex: pos - name.length,
180 value: name,
181 before: value.slice(parenthesesOpenPos + 1, next)
182 };
183 pos = next;
184
185 if (name === "url" && code !== singleQuote && code !== doubleQuote) {
186 next -= 1;
187 do {
188 escape = false;
189 next = value.indexOf(")", next + 1);
190 if (~next) {
191 escapePos = next;
192 while (value.charCodeAt(escapePos - 1) === backslash) {
193 escapePos -= 1;
194 escape = !escape;
195 }
196 } else {
197 value += ")";
198 next = value.length - 1;
199 token.unclosed = true;
200 }
201 } while (escape);
202 // Whitespaces before closed
203 whitespacePos = next;
204 do {
205 whitespacePos -= 1;
206 code = value.charCodeAt(whitespacePos);
207 } while (code <= 32);
208 if (parenthesesOpenPos < whitespacePos) {
209 if (pos !== whitespacePos + 1) {
210 token.nodes = [
211 {
212 type: "word",
213 sourceIndex: pos,
214 sourceEndIndex: whitespacePos + 1,
215 value: value.slice(pos, whitespacePos + 1)
216 }
217 ];
218 } else {
219 token.nodes = [];
220 }
221 if (token.unclosed && whitespacePos + 1 !== next) {
222 token.after = "";
223 token.nodes.push({
224 type: "space",
225 sourceIndex: whitespacePos + 1,
226 sourceEndIndex: next,
227 value: value.slice(whitespacePos + 1, next)
228 });
229 } else {
230 token.after = value.slice(whitespacePos + 1, next);
231 token.sourceEndIndex = next;
232 }
233 } else {
234 token.after = "";
235 token.nodes = [];
236 }
237 pos = next + 1;
238 token.sourceEndIndex = token.unclosed ? next : pos;
239 code = value.charCodeAt(pos);
240 tokens.push(token);
241 } else {
242 balanced += 1;
243 token.after = "";
244 token.sourceEndIndex = pos + 1;
245 tokens.push(token);
246 stack.push(token);
247 tokens = token.nodes = [];
248 parent = token;
249 }
250 name = "";
251
252 // Close parentheses
253 } else if (closeParentheses === code && balanced) {
254 pos += 1;
255 code = value.charCodeAt(pos);
256
257 parent.after = after;
258 parent.sourceEndIndex += after.length;
259 after = "";
260 balanced -= 1;
261 stack[stack.length - 1].sourceEndIndex = pos;
262 stack.pop();
263 parent = stack[balanced];
264 tokens = parent.nodes;
265
266 // Words
267 } else {
268 next = pos;
269 do {
270 if (code === backslash) {
271 next += 1;
272 }
273 next += 1;
274 code = value.charCodeAt(next);
275 } while (
276 next < max &&
277 !(
278 code <= 32 ||
279 code === singleQuote ||
280 code === doubleQuote ||
281 code === comma ||
282 code === colon ||
283 code === slash ||
284 code === openParentheses ||
285 (code === star &&
286 parent &&
287 parent.type === "function" &&
288 parent.value === "calc") ||
289 (code === slash &&
290 parent.type === "function" &&
291 parent.value === "calc") ||
292 (code === closeParentheses && balanced)
293 )
294 );
295 token = value.slice(pos, next);
296
297 if (openParentheses === code) {
298 name = token;
299 } else if (
300 (uLower === token.charCodeAt(0) || uUpper === token.charCodeAt(0)) &&
301 plus === token.charCodeAt(1) &&
302 isUnicodeRange.test(token.slice(2))
303 ) {
304 tokens.push({
305 type: "unicode-range",
306 sourceIndex: pos,
307 sourceEndIndex: next,
308 value: token
309 });
310 } else {
311 tokens.push({
312 type: "word",
313 sourceIndex: pos,
314 sourceEndIndex: next,
315 value: token
316 });
317 }
318
319 pos = next;
320 }
321 }
322
323 for (pos = stack.length - 1; pos; pos -= 1) {
324 stack[pos].unclosed = true;
325 stack[pos].sourceEndIndex = value.length;
326 }
327
328 return stack[0].nodes;
329};
330
331var walk$1 = function walk(nodes, cb, bubble) {
332 var i, max, node, result;
333
334 for (i = 0, max = nodes.length; i < max; i += 1) {
335 node = nodes[i];
336 if (!bubble) {
337 result = cb(node, i, nodes);
338 }
339
340 if (
341 result !== false &&
342 node.type === "function" &&
343 Array.isArray(node.nodes)
344 ) {
345 walk(node.nodes, cb, bubble);
346 }
347
348 if (bubble) {
349 cb(node, i, nodes);
350 }
351 }
352};
353
354function stringifyNode(node, custom) {
355 var type = node.type;
356 var value = node.value;
357 var buf;
358 var customResult;
359
360 if (custom && (customResult = custom(node)) !== undefined) {
361 return customResult;
362 } else if (type === "word" || type === "space") {
363 return value;
364 } else if (type === "string") {
365 buf = node.quote || "";
366 return buf + value + (node.unclosed ? "" : buf);
367 } else if (type === "comment") {
368 return "/*" + value + (node.unclosed ? "" : "*/");
369 } else if (type === "div") {
370 return (node.before || "") + value + (node.after || "");
371 } else if (Array.isArray(node.nodes)) {
372 buf = stringify$1(node.nodes, custom);
373 if (type !== "function") {
374 return buf;
375 }
376 return (
377 value +
378 "(" +
379 (node.before || "") +
380 buf +
381 (node.after || "") +
382 (node.unclosed ? "" : ")")
383 );
384 }
385 return value;
386}
387
388function stringify$1(nodes, custom) {
389 var result, i;
390
391 if (Array.isArray(nodes)) {
392 result = "";
393 for (i = nodes.length - 1; ~i; i -= 1) {
394 result = stringifyNode(nodes[i], custom) + result;
395 }
396 return result;
397 }
398 return stringifyNode(nodes, custom);
399}
400
401var stringify_1 = stringify$1;
402
403var unit;
404var hasRequiredUnit;
405
406function requireUnit () {
407 if (hasRequiredUnit) return unit;
408 hasRequiredUnit = 1;
409 var minus = "-".charCodeAt(0);
410 var plus = "+".charCodeAt(0);
411 var dot = ".".charCodeAt(0);
412 var exp = "e".charCodeAt(0);
413 var EXP = "E".charCodeAt(0);
414
415 // Check if three code points would start a number
416 // https://www.w3.org/TR/css-syntax-3/#starts-with-a-number
417 function likeNumber(value) {
418 var code = value.charCodeAt(0);
419 var nextCode;
420
421 if (code === plus || code === minus) {
422 nextCode = value.charCodeAt(1);
423
424 if (nextCode >= 48 && nextCode <= 57) {
425 return true;
426 }
427
428 var nextNextCode = value.charCodeAt(2);
429
430 if (nextCode === dot && nextNextCode >= 48 && nextNextCode <= 57) {
431 return true;
432 }
433
434 return false;
435 }
436
437 if (code === dot) {
438 nextCode = value.charCodeAt(1);
439
440 if (nextCode >= 48 && nextCode <= 57) {
441 return true;
442 }
443
444 return false;
445 }
446
447 if (code >= 48 && code <= 57) {
448 return true;
449 }
450
451 return false;
452 }
453
454 // Consume a number
455 // https://www.w3.org/TR/css-syntax-3/#consume-number
456 unit = function(value) {
457 var pos = 0;
458 var length = value.length;
459 var code;
460 var nextCode;
461 var nextNextCode;
462
463 if (length === 0 || !likeNumber(value)) {
464 return false;
465 }
466
467 code = value.charCodeAt(pos);
468
469 if (code === plus || code === minus) {
470 pos++;
471 }
472
473 while (pos < length) {
474 code = value.charCodeAt(pos);
475
476 if (code < 48 || code > 57) {
477 break;
478 }
479
480 pos += 1;
481 }
482
483 code = value.charCodeAt(pos);
484 nextCode = value.charCodeAt(pos + 1);
485
486 if (code === dot && nextCode >= 48 && nextCode <= 57) {
487 pos += 2;
488
489 while (pos < length) {
490 code = value.charCodeAt(pos);
491
492 if (code < 48 || code > 57) {
493 break;
494 }
495
496 pos += 1;
497 }
498 }
499
500 code = value.charCodeAt(pos);
501 nextCode = value.charCodeAt(pos + 1);
502 nextNextCode = value.charCodeAt(pos + 2);
503
504 if (
505 (code === exp || code === EXP) &&
506 ((nextCode >= 48 && nextCode <= 57) ||
507 ((nextCode === plus || nextCode === minus) &&
508 nextNextCode >= 48 &&
509 nextNextCode <= 57))
510 ) {
511 pos += nextCode === plus || nextCode === minus ? 3 : 2;
512
513 while (pos < length) {
514 code = value.charCodeAt(pos);
515
516 if (code < 48 || code > 57) {
517 break;
518 }
519
520 pos += 1;
521 }
522 }
523
524 return {
525 number: value.slice(0, pos),
526 unit: value.slice(pos)
527 };
528 };
529 return unit;
530}
531
532var parse = parse$1;
533var walk = walk$1;
534var stringify = stringify_1;
535
536function ValueParser(value) {
537 if (this instanceof ValueParser) {
538 this.nodes = parse(value);
539 return this;
540 }
541 return new ValueParser(value);
542}
543
544ValueParser.prototype.toString = function() {
545 return Array.isArray(this.nodes) ? stringify(this.nodes) : "";
546};
547
548ValueParser.prototype.walk = function(cb, bubble) {
549 walk(this.nodes, cb, bubble);
550 return this;
551};
552
553ValueParser.unit = requireUnit();
554
555ValueParser.walk = walk;
556
557ValueParser.stringify = stringify;
558
559var lib = ValueParser;
560
561export { lib as l };
Note: See TracBrowser for help on using the repository browser.