1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 | const extendedWindow = window;
|
13 | extendedWindow['WebComponents'] = extendedWindow['WebComponents'] || {
|
14 | 'flags': {},
|
15 | };
|
16 |
|
17 | const file = 'webcomponents-bundle';
|
18 | const script = document.querySelector('script[src*="' + file + '"]');
|
19 | const flagMatcher = /wc-(.+)/;
|
20 |
|
21 |
|
22 |
|
23 |
|
24 | const flags = {};
|
25 | if (!flags['noOpts']) {
|
26 |
|
27 | location.search
|
28 | .slice(1)
|
29 | .split('&')
|
30 | .forEach(function (option) {
|
31 | const parts = option.split('=');
|
32 | let match;
|
33 | if (parts[0] && (match = parts[0].match(flagMatcher))) {
|
34 | flags[match[1]] = parts[1] || true;
|
35 | }
|
36 | });
|
37 |
|
38 | if (script) {
|
39 | for (let i = 0, a; (a = script.attributes[i]); i++) {
|
40 | if (a.name !== 'src') {
|
41 | flags[a.name] = a.value || true;
|
42 | }
|
43 | }
|
44 | }
|
45 |
|
46 | const log = {};
|
47 | if (flags['log'] && flags['log']['split']) {
|
48 | const parts = flags['log'].split(',');
|
49 | parts.forEach(function (f) {
|
50 | log[f] = true;
|
51 | });
|
52 | }
|
53 | flags['log'] = log;
|
54 | }
|
55 |
|
56 | extendedWindow['WebComponents']['flags'] = flags;
|
57 | const forceShady = flags['shadydom'];
|
58 | if (forceShady) {
|
59 | extendedWindow['ShadyDOM'] = extendedWindow['ShadyDOM'] || {};
|
60 | extendedWindow['ShadyDOM']['force'] = forceShady;
|
61 | const noPatch = flags['noPatch'];
|
62 | extendedWindow['ShadyDOM']['noPatch'] = noPatch === 'true' ? true : noPatch;
|
63 | }
|
64 | const forceCE = (flags['register'] || flags['ce']);
|
65 | if (forceCE && window['customElements']) {
|
66 | extendedWindow['customElements']['forcePolyfill'] = forceCE;
|
67 | }
|
68 | export {};
|
69 |
|
\ | No newline at end of file |