PluginProbe
WCPOS – Point of Sale (POS) plugin for WooCommerce / 1.10.18
WCPOS – Point of Sale (POS) plugin for WooCommerce v1.10.18
1.10.19 1.10.18 1.10.17 1.10.16 1.10.15 1.10.13 1.10.14 1.10.12 1.10.11 1.10.10 1.10.9 1.10.8 untagged-3d9b7ccddc54df87c672 1.10.7 1.10.6 1.10.5 1.10.3 1.10.4 1.10.2 1.10.1 1.10.0 1.9.17 1.9.15 1.9.16 1.9.14 All 163 releases
woocommerce-pos / vendor_prefixed / sabberworm / php-css-parser / src / Settings.php

Settings.php in WCPOS – Point of Sale (POS) plugin for WooCommerce 1.10.18, at vendor_prefixed/sabberworm/php-css-parser/src/Settings.php

110 lines 2.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 declare (strict_types=1);
4 namespace WCPOS\Vendor\Sabberworm\CSS;
5
6 /**
7 * Parser settings class.
8 *
9 * Configure parser behaviour here.
10 */
11 class Settings
12 {
13 /**
14 * Multi-byte string support.
15 *
16 * If `true` (`mbstring` extension must be enabled), will use (slower) `mb_strlen`, `mb_convert_case`, `mb_substr`
17 * and `mb_strpos` functions. Otherwise, the normal (ASCII-Only) functions will be used.
18 *
19 * @var bool
20 */
21 private $multibyteSupport;
22 /**
23 * The default charset for the CSS if no `@charset` declaration is found. Defaults to utf-8.
24 *
25 * @var non-empty-string
26 */
27 private $defaultCharset = 'utf-8';
28 /**
29 * Whether the parser silently ignore invalid rules instead of choking on them.
30 *
31 * @var bool
32 */
33 private $lenientParsing = \true;
34 private function __construct()
35 {
36 $this->multibyteSupport = \extension_loaded('mbstring');
37 }
38 public static function create() : self
39 {
40 return new Settings();
41 }
42 /**
43 * Enables/disables multi-byte string support.
44 *
45 * If `true` (`mbstring` extension must be enabled), will use (slower) `mb_strlen`, `mb_convert_case`, `mb_substr`
46 * and `mb_strpos` functions. Otherwise, the normal (ASCII-Only) functions will be used.
47 *
48 * @return $this fluent interface
49 */
50 public function withMultibyteSupport(bool $multibyteSupport = \true) : self
51 {
52 $this->multibyteSupport = $multibyteSupport;
53 return $this;
54 }
55 /**
56 * Sets the charset to be used if the CSS does not contain an `@charset` declaration.
57 *
58 * @param non-empty-string $defaultCharset
59 *
60 * @return $this fluent interface
61 */
62 public function withDefaultCharset(string $defaultCharset) : self
63 {
64 $this->defaultCharset = $defaultCharset;
65 return $this;
66 }
67 /**
68 * Configures whether the parser should silently ignore invalid rules.
69 *
70 * @return $this fluent interface
71 */
72 public function withLenientParsing(bool $usesLenientParsing = \true) : self
73 {
74 $this->lenientParsing = $usesLenientParsing;
75 return $this;
76 }
77 /**
78 * Configures the parser to choke on invalid rules.
79 *
80 * @return $this fluent interface
81 */
82 public function beStrict() : self
83 {
84 return $this->withLenientParsing(\false);
85 }
86 /**
87 * @internal
88 */
89 public function hasMultibyteSupport() : bool
90 {
91 return $this->multibyteSupport;
92 }
93 /**
94 * @return non-empty-string
95 *
96 * @internal
97 */
98 public function getDefaultCharset() : string
99 {
100 return $this->defaultCharset;
101 }
102 /**
103 * @internal
104 */
105 public function usesLenientParsing() : bool
106 {
107 return $this->lenientParsing;
108 }
109 }
110