PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.15.2
Independent Analytics – WordPress Analytics Plugin v2.15.2
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 2 weeks ago Facades 2 weeks ago Testing 2 weeks ago Traits 2 weeks ago AggregateServiceProvider.php 2 years ago Benchmark.php 2 weeks ago Carbon.php 2 weeks ago Composer.php 2 weeks ago ConfigurationUrlParser.php 2 weeks ago DateFactory.php 2 weeks ago Env.php 2 weeks ago Fluent.php 2 weeks ago HigherOrderTapProxy.php 2 years ago HtmlString.php 2 years ago InteractsWithTime.php 2 years ago Js.php 2 weeks ago Lottery.php 2 weeks ago Manager.php 2 years ago MessageBag.php 2 weeks ago MultipleInstanceManager.php 2 weeks ago NamespacedItemResolver.php 2 weeks ago Optional.php 2 weeks ago Pluralizer.php 2 weeks ago ProcessUtils.php 2 weeks ago Reflector.php 2 weeks ago ServiceProvider.php 2 years ago Str.php 2 weeks ago Stringable.php 2 weeks ago Timebox.php 2 weeks ago ValidatedInput.php 2 weeks ago ViewErrorBag.php 2 weeks ago helpers.php 2 weeks 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