File: /var/www/lcc.kaunokolegija.lt/wp-content/plugins/codepress-admin-columns/classes/Asset/Script.php
<?php
namespace AC\Asset;
use AC\Asset\Script\Inline\Position;
class Script extends Enqueueable
{
protected $in_footer;
public function __construct(
string $handle,
Location $location = null,
array $dependencies = [],
bool $in_footer = false
) {
parent::__construct($handle, $location, $dependencies);
$this->in_footer = $in_footer;
}
protected function is_registered(): bool
{
return wp_script_is($this->get_handle(), 'registered');
}
public function is_in_footer(): bool
{
return $this->in_footer;
}
public function register(): void
{
if ( ! $this->location instanceof Location) {
return;
}
wp_register_script(
$this->get_handle(),
$this->location->get_url(),
$this->dependencies,
$this->get_version(),
$this->is_in_footer()
);
}
public function enqueue(): void
{
if (wp_script_is($this->get_handle())) {
return;
}
if ( ! $this->is_registered()) {
$this->register();
}
wp_enqueue_script($this->get_handle());
}
public function localize(string $name, Script\Localize\Translation $translation): self
{
if ( ! $this->is_registered()) {
$this->register();
}
wp_localize_script($this->handle, $name, $translation->get_translation());
return $this;
}
public function add_inline(string $data, Position $position = null): self
{
if (null === $position) {
$position = Position::after();
}
if ( ! $this->is_registered()) {
$this->register();
}
wp_add_inline_script($this->handle, $data, (string)$position);
return $this;
}
public function add_inline_variable(string $name, $data): self
{
return $this->add_inline(
sprintf('var %s = %s;', $name, json_encode($data)),
Position::before()
);
}
}