PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.2.0
Independent Analytics – WordPress Analytics Plugin v2.2.0
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
Facades 2 years ago Testing 2 years ago Traits 2 years ago AggregateServiceProvider.php 2 years ago Carbon.php 2 years ago Composer.php 2 years ago ConfigurationUrlParser.php 2 years ago DateFactory.php 2 years ago Env.php 2 years ago Fluent.php 2 years ago HigherOrderTapProxy.php 2 years ago HtmlString.php 2 years ago InteractsWithTime.php 2 years ago Js.php 2 years ago Manager.php 2 years ago MessageBag.php 2 years ago MultipleInstanceManager.php 2 years ago NamespacedItemResolver.php 2 years ago Optional.php 2 years ago Pluralizer.php 2 years ago ProcessUtils.php 2 years ago Reflector.php 2 years ago ServiceProvider.php 2 years ago Str.php 2 years ago Stringable.php 2 years ago Timebox.php 2 years ago ValidatedInput.php 2 years ago ViewErrorBag.php 2 years ago helpers.php 2 years ago
Js.php
131 lines
1 <?php
2
3 namespace IAWP_SCOPED\Illuminate\Support;
4
5 use IAWP_SCOPED\Illuminate\Contracts\Support\Arrayable;
6 use IAWP_SCOPED\Illuminate\Contracts\Support\Htmlable;
7 use IAWP_SCOPED\Illuminate\Contracts\Support\Jsonable;
8 use JsonSerializable;
9 /** @internal */
10 class Js implements Htmlable
11 {
12 /**
13 * The JavaScript string.
14 *
15 * @var string
16 */
17 protected $js;
18 /**
19 * Flags that should be used when encoding to JSON.
20 *
21 * @var int
22 */
23 protected const REQUIRED_FLAGS = \JSON_HEX_TAG | \JSON_HEX_APOS | \JSON_HEX_AMP | \JSON_HEX_QUOT | \JSON_THROW_ON_ERROR;
24 /**
25 * Create a new class instance.
26 *
27 * @param mixed $data
28 * @param int|null $flags
29 * @param int $depth
30 * @return void
31 *
32 * @throws \JsonException
33 */
34 public function __construct($data, $flags = 0, $depth = 512)
35 {
36 $this->js = $this->convertDataToJavaScriptExpression($data, $flags, $depth);
37 }
38 /**
39 * Create a new JavaScript string from the given data.
40 *
41 * @param mixed $data
42 * @param int $flags
43 * @param int $depth
44 * @return static
45 *
46 * @throws \JsonException
47 */
48 public static function from($data, $flags = 0, $depth = 512)
49 {
50 return new static($data, $flags, $depth);
51 }
52 /**
53 * Convert the given data to a JavaScript expression.
54 *
55 * @param mixed $data
56 * @param int $flags
57 * @param int $depth
58 * @return string
59 *
60 * @throws \JsonException
61 */
62 protected function convertDataToJavaScriptExpression($data, $flags = 0, $depth = 512)
63 {
64 if ($data instanceof self) {
65 return $data->toHtml();
66 }
67 $json = $this->jsonEncode($data, $flags, $depth);
68 if (\is_string($data)) {
69 return "'" . \substr($json, 1, -1) . "'";
70 }
71 return $this->convertJsonToJavaScriptExpression($json, $flags);
72 }
73 /**
74 * Encode the given data as JSON.
75 *
76 * @param mixed $data
77 * @param int $flags
78 * @param int $depth
79 * @return string
80 *
81 * @throws \JsonException
82 */
83 protected function jsonEncode($data, $flags = 0, $depth = 512)
84 {
85 if ($data instanceof Jsonable) {
86 return $data->toJson($flags | static::REQUIRED_FLAGS);
87 }
88 if ($data instanceof Arrayable && !$data instanceof JsonSerializable) {
89 $data = $data->toArray();
90 }
91 return \json_encode($data, $flags | static::REQUIRED_FLAGS, $depth);
92 }
93 /**
94 * Convert the given JSON to a JavaScript expression.
95 *
96 * @param string $json
97 * @param int $flags
98 * @return string
99 *
100 * @throws \JsonException
101 */
102 protected function convertJsonToJavaScriptExpression($json, $flags = 0)
103 {
104 if ('[]' === $json || '{}' === $json) {
105 return $json;
106 }
107 if (Str::startsWith($json, ['"', '{', '['])) {
108 return "JSON.parse('" . \substr(\json_encode($json, $flags | static::REQUIRED_FLAGS), 1, -1) . "')";
109 }
110 return $json;
111 }
112 /**
113 * Get the string representation of the data for use in HTML.
114 *
115 * @return string
116 */
117 public function toHtml()
118 {
119 return $this->js;
120 }
121 /**
122 * Get the string representation of the data for use in HTML.
123 *
124 * @return string
125 */
126 public function __toString()
127 {
128 return $this->toHtml();
129 }
130 }
131