PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.15.4
Independent Analytics – WordPress Analytics Plugin v2.15.4
2.15.5 2.15.4 2.15.3 2.15.2 2.15.1 2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / vendor / illuminate / support / Js.php
independent-analytics / vendor / illuminate / support Last commit date
Exceptions 1 month ago Facades 1 month ago Testing 1 month ago Traits 1 month ago AggregateServiceProvider.php 2 years ago Benchmark.php 1 month ago Carbon.php 1 month ago Composer.php 1 month ago ConfigurationUrlParser.php 1 month ago DateFactory.php 1 month ago Env.php 1 month ago Fluent.php 1 month ago HigherOrderTapProxy.php 2 years ago HtmlString.php 2 years ago InteractsWithTime.php 2 years ago Js.php 1 month ago Lottery.php 1 month ago Manager.php 2 years ago MessageBag.php 1 month ago MultipleInstanceManager.php 1 month ago NamespacedItemResolver.php 1 month ago Optional.php 1 month ago Pluralizer.php 1 month ago ProcessUtils.php 1 month ago Reflector.php 1 month ago ServiceProvider.php 2 years ago Str.php 1 month ago Stringable.php 1 month ago Timebox.php 1 month ago ValidatedInput.php 1 month ago ViewErrorBag.php 1 month ago helpers.php 1 month ago
Js.php
135 lines
1 <?php
2
3 namespace IAWPSCOPED\Illuminate\Support;
4
5 use BackedEnum;
6 use IAWPSCOPED\Illuminate\Contracts\Support\Arrayable;
7 use IAWPSCOPED\Illuminate\Contracts\Support\Htmlable;
8 use IAWPSCOPED\Illuminate\Contracts\Support\Jsonable;
9 use JsonSerializable;
10 /** @internal */
11 class Js implements Htmlable
12 {
13 /**
14 * The JavaScript string.
15 *
16 * @var string
17 */
18 protected $js;
19 /**
20 * Flags that should be used when encoding to JSON.
21 *
22 * @var int
23 */
24 protected const REQUIRED_FLAGS = \JSON_HEX_TAG | \JSON_HEX_APOS | \JSON_HEX_AMP | \JSON_HEX_QUOT | \JSON_THROW_ON_ERROR;
25 /**
26 * Create a new class instance.
27 *
28 * @param mixed $data
29 * @param int|null $flags
30 * @param int $depth
31 * @return void
32 *
33 * @throws \JsonException
34 */
35 public function __construct($data, $flags = 0, $depth = 512)
36 {
37 $this->js = $this->convertDataToJavaScriptExpression($data, $flags, $depth);
38 }
39 /**
40 * Create a new JavaScript string from the given data.
41 *
42 * @param mixed $data
43 * @param int $flags
44 * @param int $depth
45 * @return static
46 *
47 * @throws \JsonException
48 */
49 public static function from($data, $flags = 0, $depth = 512)
50 {
51 return new static($data, $flags, $depth);
52 }
53 /**
54 * Convert the given data to a JavaScript expression.
55 *
56 * @param mixed $data
57 * @param int $flags
58 * @param int $depth
59 * @return string
60 *
61 * @throws \JsonException
62 */
63 protected function convertDataToJavaScriptExpression($data, $flags = 0, $depth = 512)
64 {
65 if ($data instanceof self) {
66 return $data->toHtml();
67 }
68 if ($data instanceof BackedEnum) {
69 $data = $data->value;
70 }
71 $json = $this->jsonEncode($data, $flags, $depth);
72 if (\is_string($data)) {
73 return "'" . \substr($json, 1, -1) . "'";
74 }
75 return $this->convertJsonToJavaScriptExpression($json, $flags);
76 }
77 /**
78 * Encode the given data as JSON.
79 *
80 * @param mixed $data
81 * @param int $flags
82 * @param int $depth
83 * @return string
84 *
85 * @throws \JsonException
86 */
87 protected function jsonEncode($data, $flags = 0, $depth = 512)
88 {
89 if ($data instanceof Jsonable) {
90 return $data->toJson($flags | static::REQUIRED_FLAGS);
91 }
92 if ($data instanceof Arrayable && !$data instanceof JsonSerializable) {
93 $data = $data->toArray();
94 }
95 return \json_encode($data, $flags | static::REQUIRED_FLAGS, $depth);
96 }
97 /**
98 * Convert the given JSON to a JavaScript expression.
99 *
100 * @param string $json
101 * @param int $flags
102 * @return string
103 *
104 * @throws \JsonException
105 */
106 protected function convertJsonToJavaScriptExpression($json, $flags = 0)
107 {
108 if ($json === '[]' || $json === '{}') {
109 return $json;
110 }
111 if (Str::startsWith($json, ['"', '{', '['])) {
112 return "JSON.parse('" . \substr(\json_encode($json, $flags | static::REQUIRED_FLAGS), 1, -1) . "')";
113 }
114 return $json;
115 }
116 /**
117 * Get the string representation of the data for use in HTML.
118 *
119 * @return string
120 */
121 public function toHtml()
122 {
123 return $this->js;
124 }
125 /**
126 * Get the string representation of the data for use in HTML.
127 *
128 * @return string
129 */
130 public function __toString()
131 {
132 return $this->toHtml();
133 }
134 }
135