@vituum/vite-plugin-latte 1.2.1 → 1.4.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.
- package/index.js +5 -3
- package/index.php +2 -0
- package/package.json +6 -6
- package/vendor/autoload.php +1 -1
- package/vendor/composer/InstalledVersions.php +7 -4
- package/vendor/composer/autoload_classmap.php +1 -0
- package/vendor/composer/autoload_real.php +4 -4
- package/vendor/composer/autoload_static.php +3 -2
- package/vendor/composer/installed.json +21 -20
- package/vendor/composer/installed.php +8 -8
- package/vendor/latte/latte/composer.json +6 -5
- package/vendor/latte/latte/readme.md +27 -9
- package/vendor/latte/latte/src/Bridges/Tracy/templates/LattePanel.panel.phtml +4 -1
- package/vendor/latte/latte/src/Latte/Compiler/TagLexer.php +1 -1
- package/vendor/latte/latte/src/Latte/Compiler/TagParserData.php +129 -129
- package/vendor/latte/latte/src/Latte/Compiler/TemplateGenerator.php +1 -1
- package/vendor/latte/latte/src/Latte/Compiler/TemplateParser.php +1 -1
- package/vendor/latte/latte/src/Latte/Engine.php +22 -2
- package/vendor/latte/latte/src/Latte/Essential/CachingIterator.php +2 -3
- package/vendor/latte/latte/src/Latte/Essential/CoreExtension.php +9 -1
- package/vendor/latte/latte/src/Latte/Essential/Filters.php +110 -10
- package/vendor/latte/latte/src/Latte/Essential/Nodes/ImportNode.php +8 -2
- package/vendor/latte/latte/src/Latte/Essential/Nodes/VarNode.php +14 -18
- package/vendor/latte/latte/src/Latte/Essential/TranslatorExtension.php +1 -1
- package/vendor/latte/latte/src/Latte/Loaders/FileLoader.php +5 -4
- package/vendor/latte/latte/src/Latte/Runtime/Template.php +1 -1
- package/vendor/latte/latte/src/Latte/Sandbox/Nodes/FunctionCallNode.php +0 -1
- package/vendor/nette/utils/composer.json +1 -1
- package/vendor/nette/utils/readme.md +25 -26
- package/vendor/nette/utils/src/Iterators/CachingIterator.php +5 -19
- package/vendor/nette/utils/src/Iterators/Mapper.php +1 -2
- package/vendor/nette/utils/src/Utils/Arrays.php +61 -29
- package/vendor/nette/utils/src/Utils/Callback.php +1 -1
- package/vendor/nette/utils/src/Utils/FileSystem.php +15 -2
- package/vendor/nette/utils/src/Utils/Finder.php +1 -1
- package/vendor/nette/utils/src/Utils/Helpers.php +3 -0
- package/vendor/nette/utils/src/Utils/Image.php +33 -46
- package/vendor/nette/utils/src/Utils/Iterables.php +100 -20
- package/vendor/nette/utils/src/Utils/Reflection.php +7 -5
- package/vendor/nette/utils/src/Utils/Strings.php +27 -8
- package/vendor/nette/utils/src/Utils/Type.php +2 -2
- package/vendor/nette/utils/src/Utils/exceptions.php +5 -5
- package/vendor/nette/utils/src/exceptions.php +20 -15
|
@@ -26,7 +26,7 @@ abstract class TagParserData
|
|
|
26
26
|
/** Rule number signifying that an unexpected token was encountered */
|
|
27
27
|
protected const UnexpectedTokenRule = 8191;
|
|
28
28
|
|
|
29
|
-
protected const Yy2Tblstate =
|
|
29
|
+
protected const Yy2Tblstate = 256;
|
|
30
30
|
|
|
31
31
|
/** Number of non-leaf states */
|
|
32
32
|
protected const NumNonLeafStates = 354;
|
|
@@ -56,106 +56,106 @@ abstract class TagParserData
|
|
|
56
56
|
* state/symbol pair is self::Action[self::ActionBase[$state] + $symbol]. If self::ActionBase[$state] is 0, the
|
|
57
57
|
* action is defaulted, i.e. self::ActionDefault[$state] should be used instead. */
|
|
58
58
|
protected const ActionBase = [
|
|
59
|
-
297, 326, 326, 326, 326, 99, 121, 326, 273, 177, 230, 326, 406, 406, 406, 406,
|
|
60
|
-
|
|
59
|
+
297, 326, 326, 326, 326, 99, 121, 326, 273, 177, 230, 326, 406, 406, 406, 406, 219, 219, 219, 219,
|
|
60
|
+
295, 295, 267, 262, 401, 402, 403, 404, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
|
|
61
61
|
-43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
|
|
62
62
|
-43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
|
|
63
63
|
-43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
|
|
64
|
-
-43, -43, -43, -43, -43, -43, -43, -43, -43,
|
|
65
|
-
|
|
66
|
-
213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
|
|
67
|
-
|
|
68
|
-
271, 271, 271, 271, 271, 271, 271,
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
395,
|
|
76
|
-
|
|
64
|
+
-43, -43, -43, -43, -43, -43, -43, -43, -43, 133, 165, 185, 416, 432, 427, 436, 460, 462, 459, 463,
|
|
65
|
+
468, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 126, 182, 528, 213, 213,
|
|
66
|
+
213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 549, 549, 549, 437,
|
|
67
|
+
362, 204, 412, 38, 110, 110, 513, 513, 513, 513, 513, 447, 81, 81, 81, 81, 500, 500, 271, 271,
|
|
68
|
+
271, 271, 271, 271, 271, 271, 271, 272, 135, 135, 454, 13, 275, 275, 275, 228, 228, 228, 228, 228,
|
|
69
|
+
181, 108, 108, 108, 236, 355, 409, 276, 207, 207, 207, 207, 207, 207, 285, 469, -21, 132, 132, 205,
|
|
70
|
+
167, 167, 132, 378, -13, 122, -34, 208, 332, 221, 143, 158, 2, 405, 245, 252, 287, 142, 219, 269,
|
|
71
|
+
269, 219, 219, 219, 411, 64, 64, 64, 147, 180, 39, 278, 445, 278, 278, 278, 42, -74, 268, 352,
|
|
72
|
+
344, 351, 268, 36, 76, 62, 354, 357, 352, 352, 98, 62, 62, 62, 283, 299, 277, 109, 65, 277,
|
|
73
|
+
288, 288, 104, 28, 363, 360, 369, 342, 341, 408, 197, 234, 281, 280, 337, 198, 363, 360, 369, 259,
|
|
74
|
+
6, 310, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 197, 452, 33, 291, 374, 375, 17, 385,
|
|
75
|
+
395, 286, 284, 453, 282, 263, 306, 260, 464, 331, 24, 197, 466, 270, 279, 274, 292, 384, 289, 467,
|
|
76
|
+
397, 305, 398, 455, 130, 376, 134, 457, 140, 451, 253, 400, 450, 458, 0, -43, -43, -43, -43, -43,
|
|
77
77
|
-43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
|
|
78
|
-
-43, -43,
|
|
78
|
+
-43, -43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
79
79
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
80
80
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
81
81
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
82
|
-
0, 0, 0,
|
|
83
|
-
0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
84
|
-
52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
|
|
85
|
-
52, 52, 52, 52, 52,
|
|
86
|
-
-22,
|
|
87
|
-
0,
|
|
88
|
-
|
|
89
|
-
0, 0, 0, 0, 0,
|
|
82
|
+
0, 0, 0, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 0, 0, 0, 0, 0,
|
|
83
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
|
|
84
|
+
52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 0, 447, 52, 52,
|
|
85
|
+
52, 52, 52, 52, 52, 0, 108, 108, 108, 108, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
|
|
86
|
+
-22, 108, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, 0, 0, 0, 0, 0, 0,
|
|
87
|
+
0, 378, 288, 288, 288, 288, 288, 288, 378, 378, 0, 0, 0, 0, 108, 108, 0, 0, 378, 288,
|
|
88
|
+
0, 0, 0, 0, 0, 0, 0, 219, 219, 219, 378, 0, 0, 288, 288, 0, 0, 0, 268, 0,
|
|
89
|
+
0, 0, 0, 0, 0, 282, 33, 282, 282, 282,
|
|
90
90
|
];
|
|
91
91
|
|
|
92
92
|
/** Table of actions. Indexed according to self::ActionBase comment. */
|
|
93
93
|
protected const Action = [
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
-220,
|
|
97
|
-
-220, -220, -220, 416,
|
|
98
|
-
62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
|
|
99
|
-
|
|
100
|
-
73, 74, 75,
|
|
101
|
-
|
|
102
|
-
-267,
|
|
103
|
-
362, 363, 361,
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
427,
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
381,
|
|
112
|
-
-8190,
|
|
113
|
-
|
|
114
|
-
368,
|
|
115
|
-
83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
|
|
94
|
+
34, 35, -269, 32, -269, 36, -50, 37, 178, 179, 38, 39, 40, 41, 42, 43, 44, -48, 1, 192,
|
|
95
|
+
45, 557, 558, 204, -47, 539, 381, -222, 0, 555, 284, 522, 241, 242, 195, 7, 285, 286, 11, -47,
|
|
96
|
+
-220, 287, 288, 207, 537, 177, 539, -222, -222, -222, 541, 540, 563, 561, 562, 54, 55, 56, -8190, 29,
|
|
97
|
+
-220, -220, -220, 416, 15, 223, 289, 21, 196, -220, 197, 541, 540, 23, 566, 57, 58, 59, 101, 60,
|
|
98
|
+
61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
|
|
99
|
+
190, 194, 362, 363, 361, -269, 233, 381, 418, -269, 417, 383, 81, -8190, -8190, -8190, -8191, -8191, -8191, -8191,
|
|
100
|
+
72, 73, 74, 75, 362, 363, 361, 360, 359, -8190, 379, -8190, 380, -8190, -8190, -8190, 105, -8190, -8190, -8190,
|
|
101
|
+
106, 372, 98, -78, 12, -78, 107, 289, 366, 360, 359, 76, 77, 78, 79, 80, 195, 194, -267, 171,
|
|
102
|
+
-267, 193, 46, 372, 13, 200, 338, 295, 81, -78, 366, 17, 296, 368, 234, 235, 367, 373, 297, 298,
|
|
103
|
+
362, 363, 361, 193, 46, -8190, -8190, 200, 641, 295, 24, 19, 642, -217, 296, 368, 234, 235, 367, 373,
|
|
104
|
+
297, 298, 427, -22, 95, 360, 359, -8190, -8190, -8190, -8190, -8190, 25, -217, -217, -217, -8190, -8190, -8190, 372,
|
|
105
|
+
-23, -265, -217, -265, 427, -8190, 366, -8190, -8190, -8190, 418, -8190, 417, 362, 363, 361, 206, -184, -52, 193,
|
|
106
|
+
46, 96, -223, 200, 14, 295, -78, 360, 359, -184, 296, 368, 234, 235, 367, 373, 297, 298, 360, 359,
|
|
107
|
+
108, -267, -223, -223, -223, -267, 31, -17, 26, 30, -183, -183, 372, 379, -16, 380, 362, 363, 361, 366,
|
|
108
|
+
427, 18, -183, -183, 97, 104, 211, 212, 213, 208, 209, 210, 193, 46, 171, 240, 200, -223, 295, 191,
|
|
109
|
+
198, 360, 359, 296, 368, 234, 235, 367, 373, 297, 298, 99, 73, 74, 75, 372, 289, -223, -223, -223,
|
|
110
|
+
199, 27, 366, 418, -265, 417, -183, 194, -265, 362, 363, 361, 1, 427, 321, 193, 46, 249, -183, 200,
|
|
111
|
+
381, 295, 81, 555, 381, 102, 296, 368, 234, 235, 367, 373, 297, 298, 360, 359, 288, 381, -8190, 643,
|
|
112
|
+
-8190, 345, -252, 567, 100, -8190, -8190, -8190, 372, 277, -192, 163, 568, 49, 20, 366, 427, 50, 289, 223,
|
|
113
|
+
289, 239, 274, -8190, 289, -8190, -8190, -8190, 193, 46, 391, 638, 200, 225, 295, 33, 258, 3, 176, 296,
|
|
114
|
+
368, 234, 235, 367, 373, 297, 298, -251, -250, 362, 363, 361, -226, 245, 246, 247, -219, 47, 48, 16,
|
|
115
|
+
82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -225, 360, 359, -219, -219, -219, -224,
|
|
116
116
|
-8190, -8190, -8190, 2, 4, -219, 5, 381, 372, 630, 362, 363, 361, 6, 8, 366, 9, -226, -8190, 10,
|
|
117
|
-
-8190, -8190,
|
|
118
|
-
368,
|
|
119
|
-
|
|
120
|
-
369, 368, 371, 370, 367, 373, 374, 375, 360, 359,
|
|
121
|
-
-8190, -8190, -8190, -8191, -8191, -8191, -8191, -8191, 610, 418,
|
|
122
|
-
|
|
123
|
-
0, 0, 0, 0,
|
|
124
|
-
0, 0,
|
|
117
|
+
-8190, -8190, 28, 468, 470, 51, 22, 182, 193, 46, -218, 52, 200, -217, 295, 195, 188, 189, 238, 296,
|
|
118
|
+
368, 234, 235, 367, 373, 297, 298, 276, 510, 372, -218, -218, -218, -217, -217, -217, 366, 100, 553, -218,
|
|
119
|
+
428, 446, -217, 525, 531, 533, 535, 585, -29, 365, 364, -225, 53, 376, 505, 377, -8190, -8190, -8190, 329,
|
|
120
|
+
369, 368, 371, 370, 367, 373, 374, 375, 360, 359, 333, -8190, -8190, -8190, -8190, 544, -8190, -8190, -8190, 511,
|
|
121
|
+
-8190, -8190, -8190, -8191, -8191, -8191, -8191, -8191, 610, 418, 103, 417, -8190, -8190, -8190, 257, 353, -29, 640, 552,
|
|
122
|
+
392, 1, 639, 521, 341, 637, 249, 594, 608, 381, -8190, 582, 555, 598, 633, 347, 0, 556, 0, 0,
|
|
123
|
+
0, 0, 0, 0, 287, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
124
|
+
0, 0, 49, 0, 0, 0, 0, 0, 223, 289,
|
|
125
125
|
];
|
|
126
126
|
|
|
127
127
|
/** Table indexed analogously to self::Action. If self::ActionCheck[self::ActionBase[$state] + $symbol] != $symbol
|
|
128
128
|
* then the action is defaulted, i.e. self::ActionDefault[$state] should be used instead. */
|
|
129
129
|
protected const ActionCheck = [
|
|
130
130
|
43, 44, 0, 77, 2, 48, 0, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 0, 61, 62,
|
|
131
|
-
63, 64, 65, 66, 0, 68, 69, 61,
|
|
131
|
+
63, 64, 65, 66, 0, 68, 69, 61, 0, 72, 73, 105, 75, 76, 21, 2, 79, 80, 2, 0,
|
|
132
132
|
61, 84, 85, 86, 66, 6, 68, 81, 82, 83, 93, 94, 95, 96, 97, 3, 4, 5, 71, 102,
|
|
133
133
|
81, 82, 83, 85, 2, 108, 109, 2, 26, 90, 28, 93, 94, 21, 87, 23, 24, 25, 2, 27,
|
|
134
134
|
28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
|
|
135
135
|
2, 49, 3, 4, 5, 103, 2, 69, 95, 107, 97, 2, 60, 3, 4, 5, 35, 36, 37, 38,
|
|
136
|
-
39, 40, 41, 42, 3, 4, 5, 28, 29,
|
|
137
|
-
|
|
136
|
+
39, 40, 41, 42, 3, 4, 5, 28, 29, 3, 66, 21, 68, 23, 24, 25, 6, 27, 28, 29,
|
|
137
|
+
6, 42, 104, 0, 2, 2, 6, 109, 49, 28, 29, 43, 44, 45, 46, 47, 21, 49, 0, 26,
|
|
138
138
|
2, 62, 63, 42, 22, 66, 44, 68, 60, 26, 49, 6, 73, 74, 75, 76, 77, 78, 79, 80,
|
|
139
139
|
3, 4, 5, 62, 63, 3, 4, 66, 66, 68, 91, 6, 70, 61, 73, 74, 75, 76, 77, 78,
|
|
140
|
-
79, 80, 103, 22,
|
|
141
|
-
|
|
140
|
+
79, 80, 103, 22, 7, 28, 29, 3, 4, 5, 43, 44, 91, 81, 82, 83, 3, 4, 5, 42,
|
|
141
|
+
22, 0, 90, 2, 103, 21, 49, 23, 24, 25, 95, 27, 97, 3, 4, 5, 103, 90, 103, 62,
|
|
142
142
|
63, 7, 61, 66, 102, 68, 103, 28, 29, 102, 73, 74, 75, 76, 77, 78, 79, 80, 28, 29,
|
|
143
|
-
7, 103, 81, 82, 83, 107, 61,
|
|
143
|
+
7, 103, 81, 82, 83, 107, 61, 22, 91, 61, 90, 90, 42, 66, 22, 68, 3, 4, 5, 49,
|
|
144
144
|
103, 22, 102, 102, 22, 22, 81, 82, 83, 81, 82, 83, 62, 63, 26, 90, 66, 61, 68, 22,
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
69, 68,
|
|
148
|
-
85,
|
|
149
|
-
109,
|
|
150
|
-
74, 75, 76, 77, 78, 79, 80, 102,
|
|
145
|
+
26, 28, 29, 73, 74, 75, 76, 77, 78, 79, 80, 104, 40, 41, 42, 42, 109, 81, 82, 83,
|
|
146
|
+
28, 91, 49, 95, 103, 97, 90, 49, 107, 3, 4, 5, 61, 103, 67, 62, 63, 66, 102, 66,
|
|
147
|
+
69, 68, 60, 72, 69, 61, 73, 74, 75, 76, 77, 78, 79, 80, 28, 29, 85, 69, 71, 70,
|
|
148
|
+
85, 78, 102, 87, 91, 3, 4, 5, 42, 74, 90, 90, 87, 102, 104, 49, 103, 102, 109, 108,
|
|
149
|
+
109, 90, 103, 21, 109, 23, 24, 25, 62, 63, 91, 105, 66, 61, 68, 98, 99, 100, 101, 73,
|
|
150
|
+
74, 75, 76, 77, 78, 79, 80, 102, 102, 3, 4, 5, 102, 81, 82, 83, 61, 91, 92, 7,
|
|
151
151
|
8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 102, 28, 29, 81, 82, 83, 102,
|
|
152
152
|
3, 4, 5, 102, 102, 90, 102, 69, 42, 71, 3, 4, 5, 102, 102, 49, 102, 102, 21, 102,
|
|
153
153
|
23, 24, 102, 51, 52, 102, 88, 89, 62, 63, 61, 102, 66, 61, 68, 21, 102, 102, 102, 73,
|
|
154
154
|
74, 75, 76, 77, 78, 79, 80, 103, 103, 42, 81, 82, 83, 81, 82, 83, 49, 91, 103, 90,
|
|
155
155
|
103, 103, 90, 103, 103, 103, 103, 103, 103, 62, 63, 102, 104, 66, 103, 68, 3, 4, 5, 103,
|
|
156
156
|
73, 74, 75, 76, 77, 78, 79, 80, 28, 29, 103, 3, 4, 5, 21, 103, 23, 24, 25, 103,
|
|
157
|
-
27, 28, 29, 30, 31, 32, 33, 34, 103, 95, 22, 97, 3, 4, 5,
|
|
158
|
-
105, 61, 105, 105, 105, 105, 66, 105,
|
|
157
|
+
27, 28, 29, 30, 31, 32, 33, 34, 103, 95, 22, 97, 3, 4, 5, 104, 106, 103, 105, 107,
|
|
158
|
+
105, 61, 105, 105, 105, 105, 66, 105, 105, 69, 21, 107, 72, 107, 107, 107, -1, 108, -1, -1,
|
|
159
159
|
-1, -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
160
160
|
-1, -1, 102, -1, -1, -1, -1, -1, 108, 109,
|
|
161
161
|
];
|
|
@@ -163,93 +163,93 @@ abstract class TagParserData
|
|
|
163
163
|
/** Map of states to their default action */
|
|
164
164
|
protected const ActionDefault = [
|
|
165
165
|
8191, 263, 263, 31, 263, 8191, 8191, 263, 8191, 8191, 8191, 29, 8191, 8191, 8191, 29, 8191, 8191, 8191, 8191,
|
|
166
|
-
|
|
167
|
-
8191, 8191, 8191, 8191, 8191, 8191,
|
|
166
|
+
39, 29, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 215, 215, 215, 8191, 8191, 8191, 8191, 8191, 8191, 8191,
|
|
167
|
+
8191, 8191, 8191, 8191, 8191, 8191, 10, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191,
|
|
168
168
|
8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191,
|
|
169
169
|
8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191,
|
|
170
|
-
8191,
|
|
171
|
-
8191,
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
8191, 8191, 8191, 8191, 8191, 8191, 8191,
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
8191,
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
8191,
|
|
182
|
-
8191,
|
|
170
|
+
8191, 29, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 264, 264, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191,
|
|
171
|
+
8191, 1, 270, 271, 83, 77, 216, 266, 268, 79, 82, 80, 43, 44, 56, 120, 122, 154, 121, 96,
|
|
172
|
+
101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 94, 95, 166, 155, 153, 152, 118,
|
|
173
|
+
119, 125, 93, 8191, 123, 124, 142, 143, 140, 141, 144, 8191, 145, 146, 147, 148, 8191, 8191, 8191, 8191,
|
|
174
|
+
8191, 8191, 8191, 8191, 8191, 8191, 8191, 126, 69, 69, 69, 8191, 8191, 11, 8191, 8191, 8191, 8191, 8191, 8191,
|
|
175
|
+
206, 132, 133, 135, 206, 205, 150, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 211, 115, 117, 189,
|
|
176
|
+
127, 128, 97, 8191, 8191, 8191, 210, 8191, 278, 217, 217, 217, 217, 34, 34, 34, 8191, 89, 34, 8191,
|
|
177
|
+
8191, 34, 34, 34, 8191, 8191, 8191, 8191, 195, 223, 217, 138, 8191, 129, 130, 131, 57, 8191, 8191, 193,
|
|
178
|
+
182, 8191, 2, 28, 28, 28, 8191, 236, 237, 238, 28, 28, 28, 28, 170, 36, 71, 28, 28, 71,
|
|
179
|
+
8191, 8191, 28, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 200, 8191, 221, 234, 185, 15, 20, 21, 8191,
|
|
180
|
+
200, 219, 136, 137, 139, 158, 159, 160, 161, 162, 163, 164, 261, 8191, 257, 188, 8191, 8191, 217, 8191,
|
|
181
|
+
8191, 277, 8191, 217, 134, 8191, 196, 241, 8191, 218, 217, 262, 8191, 8191, 8191, 59, 60, 8191, 8191, 8191,
|
|
182
|
+
8191, 197, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 55, 8191, 8191, 8191,
|
|
183
183
|
];
|
|
184
184
|
|
|
185
185
|
/** Map of non-terminals to a displacement into the self::Goto table. The corresponding goto state for this
|
|
186
186
|
* non-terminal/state pair is self::Goto[self::GotoBase[$nonTerminal] + $state] (unless defaulted) */
|
|
187
187
|
protected const GotoBase = [
|
|
188
|
-
0, 0, -1, 0, 0, 0,
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
25,
|
|
188
|
+
0, 0, -1, 0, 0, 0, 107, 0, 254, -126, 16, -28, 0, 235, -230, 0, 0, 0, 0, 166,
|
|
189
|
+
200, 52, -13, 262, -2, 58, 0, 63, 0, 57, 75, 0, 0, -61, 3, -34, -5, 124, 0, 0,
|
|
190
|
+
41, 0, 0, 65, 0, 0, 154, 0, 0, 0, 24, 0, 0, 0, 0, -77, -44, 0, 0, 14,
|
|
191
|
+
25, 12, 36, 37, -67, 0, 0, -51, 66, 0, -15, 109, 115, 44, 0, 0,
|
|
192
192
|
];
|
|
193
193
|
|
|
194
194
|
/** Table of states to goto after reduction. Indexed according to self::GotoBase comment. */
|
|
195
195
|
protected const Goto = [
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
308, 309, 310, 311,
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
130,
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
609, 609, 609,
|
|
205
|
-
554, 554, 554, 554, 554,
|
|
206
|
-
576,
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
196
|
+
111, 111, 110, 111, 316, 317, 111, 271, 272, 273, 110, 316, 317, 275, 320, 139, 127, 128, 127, 124,
|
|
197
|
+
124, 116, 137, 129, 129, 129, 129, 124, 109, 126, 126, 126, 121, 302, 303, 251, 304, 305, 306, 307,
|
|
198
|
+
308, 309, 310, 311, 454, 454, 122, 123, 112, 113, 114, 115, 117, 135, 136, 138, 156, 159, 160, 161,
|
|
199
|
+
164, 165, 166, 167, 168, 169, 170, 172, 173, 174, 175, 187, 201, 202, 203, 220, 221, 253, 254, 255,
|
|
200
|
+
324, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 157, 118, 119, 129,
|
|
201
|
+
130, 120, 158, 131, 132, 155, 133, 134, 180, 180, 180, 180, 327, 252, 180, 315, 315, 315, 180, 634,
|
|
202
|
+
635, 636, 612, 183, 185, 186, 185, 415, 415, 415, 415, 536, 536, 536, 415, 415, 415, 415, 415, 430,
|
|
203
|
+
224, 597, 597, 597, 538, 538, 538, 538, 538, 538, 538, 538, 538, 538, 538, 538, 236, 609, 609, 609,
|
|
204
|
+
609, 609, 609, 250, 330, 217, 218, 229, 318, 323, 222, 230, 231, 232, 300, 300, 554, 554, 554, 554,
|
|
205
|
+
554, 554, 554, 554, 554, 332, 352, 396, 595, 595, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576,
|
|
206
|
+
576, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 301, 301, 301, 301, 301, 301, 301, 301,
|
|
207
|
+
301, 301, 301, 228, 602, 603, 530, 532, 319, 400, 228, 228, 534, 584, 586, 587, 435, 340, 386, 228,
|
|
208
|
+
228, 644, 405, 445, 444, 342, 387, 337, 426, 348, 394, 628, 228, 408, 526, 299, 299, 299, 299, 503,
|
|
209
|
+
215, 299, 527, 312, 312, 299, 312, 628, 629, 312, 412, 419, 421, 420, 422, 268, 269, 599, 600, 601,
|
|
210
|
+
629, 331, 349, 181, 181, 439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 350, 529, 0, 440,
|
|
211
|
+
0, 0, 0, 441, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
211
212
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
213
|
+
389, 389, 389, 0, 0, 389, 0, 0, 389, 389, 389, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
212
214
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
213
|
-
0, 0, 389, 389, 389, 0, 0, 389, 0, 0, 389, 389, 389, 0, 0, 0, 0, 0, 0, 0,
|
|
214
215
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
215
|
-
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
216
|
-
0, 0, 0, 0, 0,
|
|
217
|
-
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 403, 403,
|
|
216
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 326, 0, 0,
|
|
217
|
+
0, 0, 0, 0, 0, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 403, 403,
|
|
218
218
|
];
|
|
219
219
|
|
|
220
220
|
/** Table indexed analogously to self::Goto. If self::GotoCheck[self::GotoBase[$nonTerminal] + $state] != $nonTerminal
|
|
221
221
|
* then the goto state is defaulted, i.e. self::GotoDefault[$nonTerminal] should be used. */
|
|
222
222
|
protected const GotoCheck = [
|
|
223
|
-
2, 2, 2, 2, 14, 14, 2, 36, 36, 36, 2, 14, 14, 14,
|
|
223
|
+
2, 2, 2, 2, 14, 14, 2, 36, 36, 36, 2, 14, 14, 14, 61, 2, 2, 2, 2, 2,
|
|
224
224
|
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
225
225
|
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
226
226
|
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
227
227
|
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
228
|
-
2, 2, 2, 2, 2, 2, 2, 2,
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
67, 67, 67,
|
|
232
|
-
24, 24, 24, 24, 24,
|
|
233
|
-
59,
|
|
234
|
-
62, 62, 62,
|
|
235
|
-
10, 10,
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
-1, -1, -1,
|
|
228
|
+
2, 2, 2, 2, 2, 2, 2, 2, 6, 6, 6, 6, 67, 71, 6, 55, 55, 55, 6, 9,
|
|
229
|
+
9, 9, 72, 6, 6, 6, 6, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 37,
|
|
230
|
+
64, 67, 67, 67, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 64, 67, 67, 67,
|
|
231
|
+
67, 67, 67, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 24, 24, 24, 24, 24, 24,
|
|
232
|
+
24, 24, 24, 24, 24, 46, 46, 19, 67, 67, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
|
|
233
|
+
59, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 62, 62, 62, 62, 62, 62, 62, 62,
|
|
234
|
+
62, 62, 62, 10, 70, 70, 35, 35, 20, 21, 10, 10, 35, 35, 35, 35, 11, 11, 13, 10,
|
|
235
|
+
10, 10, 11, 11, 11, 11, 13, 25, 29, 11, 11, 73, 10, 27, 11, 8, 8, 8, 8, 43,
|
|
236
|
+
63, 8, 50, 23, 23, 8, 23, 73, 73, 23, 30, 30, 30, 30, 30, 68, 68, 68, 68, 68,
|
|
237
|
+
73, 23, 34, 6, 6, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, 10, -1, 40,
|
|
238
|
+
-1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
239
239
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
240
|
-
|
|
240
|
+
6, 6, 6, -1, -1, 6, -1, -1, 6, 6, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
241
241
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
242
|
-
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, -1, -1, -1, -1, -1, 8, -1,
|
|
243
242
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
244
|
-
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
243
|
+
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1,
|
|
244
|
+
-1, -1, -1, -1, -1, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 23, 23,
|
|
245
245
|
];
|
|
246
246
|
|
|
247
247
|
/** Map of non-terminals to the default state to goto after their reduction */
|
|
248
248
|
protected const GotoDefault = [
|
|
249
|
-
-8192,
|
|
250
|
-
344, 399,
|
|
251
|
-
438, 442, 452,
|
|
252
|
-
|
|
249
|
+
-8192, 283, 125, 262, 357, 358, 184, 378, 325, 607, 593, 384, 263, 614, 281, 280, 453, 343, 278, 395,
|
|
250
|
+
344, 399, 162, 290, 291, 334, 270, 407, 243, 424, 256, 335, 336, 260, 346, 548, 265, 429, 264, 244,
|
|
251
|
+
438, 442, 452, 259, 519, 279, 328, 523, 351, 282, 528, 583, 261, 292, 266, 545, 248, 219, 293, 226,
|
|
252
|
+
216, 313, 205, 214, 627, 227, 294, 581, 267, 589, 596, 314, 613, 626, 322, 339,
|
|
253
253
|
];
|
|
254
254
|
|
|
255
255
|
/** Map of rules to the non-terminal on their left-hand side, i.e. the non-terminal to use for
|
|
@@ -279,7 +279,7 @@ abstract class TagParserData
|
|
|
279
279
|
1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 2, 0, 1, 3, 0, 1, 0, 1, 7, 0,
|
|
280
280
|
2, 1, 3, 3, 4, 1, 3, 1, 2, 1, 1, 2, 0, 1, 3, 4, 6, 1, 2, 1,
|
|
281
281
|
1, 1, 1, 1, 1, 3, 3, 3, 3, 0, 1, 0, 2, 2, 4, 1, 3, 1, 2, 2,
|
|
282
|
-
3, 2, 3, 1, 2, 2, 1, 2, 3, 0, 3, 3,
|
|
282
|
+
3, 2, 3, 1, 2, 2, 1, 2, 3, 0, 3, 3, 4, 1, 3, 3, 3, 4, 1, 1,
|
|
283
283
|
2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3,
|
|
284
284
|
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2,
|
|
285
285
|
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 4, 3, 3, 4, 4, 2, 2,
|
|
@@ -427,7 +427,7 @@ abstract class TagParserData
|
|
|
427
427
|
3 => fn() => $this->semValue = new Expression\ArrayNode($this->semStack[$pos], position: $this->startTokenStack[$pos]->position),
|
|
428
428
|
22, 23, 24, 25, 26, 62, 63, 64 => fn() => $this->semValue = new Node\IdentifierNode($this->semStack[$pos], $this->startTokenStack[$pos]->position),
|
|
429
429
|
27 => fn() => $this->semValue = new Expression\VariableNode(substr($this->semStack[$pos], 1), $this->startTokenStack[$pos]->position),
|
|
430
|
-
30, 40, 51, 81, 90, 91,
|
|
430
|
+
30, 40, 51, 81, 90, 91, 150, 151, 171, 172, 190, 218, 225, 251, 254, 286 => fn() => $this->semValue = $this->semStack[$pos - 1],
|
|
431
431
|
31, 39, 52, 73, 89, 170, 193 => fn() => $this->semValue = [],
|
|
432
432
|
32, 41, 53, 75, 83, 86, 173, 259, 274 => fn() => $this->semValue = [$this->semStack[$pos]],
|
|
433
433
|
33, 42, 54, 66, 68, 76, 82, 174, 258 => function () use ($pos) {
|
|
@@ -452,7 +452,7 @@ abstract class TagParserData
|
|
|
452
452
|
61 => fn() => $this->semValue = TagParser::handleBuiltinTypes($this->semStack[$pos]),
|
|
453
453
|
65, 67 => fn() => $this->semValue = [$this->semStack[$pos - 2], $this->semStack[$pos]],
|
|
454
454
|
69, 71, 215 => fn() => $this->semValue = null,
|
|
455
|
-
74 => fn() => $this->semValue = $this->semStack[$pos - 2],
|
|
455
|
+
74, 92 => fn() => $this->semValue = $this->semStack[$pos - 2],
|
|
456
456
|
77 => fn() => $this->semValue = new Node\ArgumentNode($this->semStack[$pos], false, false, null, $this->startTokenStack[$pos]->position),
|
|
457
457
|
78 => fn() => $this->semValue = new Node\ArgumentNode($this->semStack[$pos], true, false, null, $this->startTokenStack[$pos - 1]->position),
|
|
458
458
|
79 => fn() => $this->semValue = new Node\ArgumentNode($this->semStack[$pos], false, true, null, $this->startTokenStack[$pos - 1]->position),
|
|
@@ -82,7 +82,7 @@ final class TemplateParser
|
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
|
|
85
|
-
public function parseFragment(callable $resolver, callable $after = null): FragmentNode
|
|
85
|
+
public function parseFragment(callable $resolver, ?callable $after = null): FragmentNode
|
|
86
86
|
{
|
|
87
87
|
$res = new FragmentNode;
|
|
88
88
|
$save = [$this->lastResolver, $this->tag];
|
|
@@ -17,8 +17,8 @@ use Latte\Compiler\Nodes\TemplateNode;
|
|
|
17
17
|
*/
|
|
18
18
|
class Engine
|
|
19
19
|
{
|
|
20
|
-
public const Version = '3.0.
|
|
21
|
-
public const VersionId =
|
|
20
|
+
public const Version = '3.0.20';
|
|
21
|
+
public const VersionId = 30020;
|
|
22
22
|
|
|
23
23
|
/** @deprecated use Engine::Version */
|
|
24
24
|
public const
|
|
@@ -50,6 +50,7 @@ class Engine
|
|
|
50
50
|
private bool $sandboxed = false;
|
|
51
51
|
private ?string $phpBinary = null;
|
|
52
52
|
private ?string $cacheKey;
|
|
53
|
+
private ?string $locale = null;
|
|
53
54
|
|
|
54
55
|
|
|
55
56
|
public function __construct()
|
|
@@ -565,6 +566,25 @@ class Engine
|
|
|
565
566
|
}
|
|
566
567
|
|
|
567
568
|
|
|
569
|
+
/**
|
|
570
|
+
* Sets the locale. It uses the same identifiers as the PHP intl extension.
|
|
571
|
+
*/
|
|
572
|
+
public function setLocale(?string $locale): static
|
|
573
|
+
{
|
|
574
|
+
if ($locale && !extension_loaded('intl')) {
|
|
575
|
+
throw new RuntimeException("Setting a locale requires the 'intl' extension to be installed.");
|
|
576
|
+
}
|
|
577
|
+
$this->locale = $locale;
|
|
578
|
+
return $this;
|
|
579
|
+
}
|
|
580
|
+
|
|
581
|
+
|
|
582
|
+
public function getLocale(): ?string
|
|
583
|
+
{
|
|
584
|
+
return $this->locale;
|
|
585
|
+
}
|
|
586
|
+
|
|
587
|
+
|
|
568
588
|
public function setLoader(Loader $loader): static
|
|
569
589
|
{
|
|
570
590
|
$this->loader = $loader;
|
|
@@ -207,11 +207,10 @@ class CachingIterator extends \CachingIterator implements \Countable
|
|
|
207
207
|
* Returns property value.
|
|
208
208
|
* @throws \LogicException if the property is not defined.
|
|
209
209
|
*/
|
|
210
|
-
public function
|
|
210
|
+
public function __get(string $name): mixed
|
|
211
211
|
{
|
|
212
212
|
if (method_exists($this, $m = 'get' . $name) || method_exists($this, $m = 'is' . $name)) {
|
|
213
|
-
|
|
214
|
-
return $ret;
|
|
213
|
+
return $this->$m();
|
|
215
214
|
}
|
|
216
215
|
|
|
217
216
|
throw new \LogicException('Attempt to read undeclared property ' . static::class . "::\$$name.");
|
|
@@ -40,6 +40,12 @@ final class CoreExtension extends Latte\Extension
|
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
|
|
43
|
+
public function beforeRender(Runtime\Template $template): void
|
|
44
|
+
{
|
|
45
|
+
$this->filters->locale = $template->getEngine()->getLocale();
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
|
|
43
49
|
public function getTags(): array
|
|
44
50
|
{
|
|
45
51
|
return [
|
|
@@ -128,6 +134,7 @@ final class CoreExtension extends Latte\Extension
|
|
|
128
134
|
'escapeUrl' => 'rawurlencode',
|
|
129
135
|
'escapeXml' => [Latte\Runtime\Filters::class, 'escapeXml'],
|
|
130
136
|
'explode' => [$this->filters, 'explode'],
|
|
137
|
+
'filter' => [$this->filters, 'filter'],
|
|
131
138
|
'first' => [$this->filters, 'first'],
|
|
132
139
|
'firstUpper' => extension_loaded('mbstring')
|
|
133
140
|
? [$this->filters, 'firstUpper']
|
|
@@ -139,10 +146,11 @@ final class CoreExtension extends Latte\Extension
|
|
|
139
146
|
'join' => [$this->filters, 'implode'],
|
|
140
147
|
'last' => [$this->filters, 'last'],
|
|
141
148
|
'length' => [$this->filters, 'length'],
|
|
149
|
+
'localDate' => [$this->filters, 'localDate'],
|
|
142
150
|
'lower' => extension_loaded('mbstring')
|
|
143
151
|
? [$this->filters, 'lower']
|
|
144
152
|
: fn() => throw new RuntimeException('Filter |lower requires mbstring extension.'),
|
|
145
|
-
'number' => '
|
|
153
|
+
'number' => [$this->filters, 'number'],
|
|
146
154
|
'padLeft' => [$this->filters, 'padLeft'],
|
|
147
155
|
'padRight' => [$this->filters, 'padRight'],
|
|
148
156
|
'query' => [$this->filters, 'query'],
|