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