svelte 3.46.6 → 3.47.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/compiler.js +208 -22
- package/compiler.js.map +1 -1
- package/compiler.mjs +208 -22
- package/compiler.mjs.map +1 -1
- package/internal/index.js +7 -1
- package/internal/index.mjs +7 -2
- package/package.json +1 -1
- package/types/compiler/compile/nodes/Element.d.ts +3 -0
- package/types/compiler/compile/render_dom/Block.d.ts +1 -0
- package/types/compiler/compile/render_dom/wrappers/Element/index.d.ts +6 -1
- package/types/runtime/internal/dev.d.ts +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Svelte changelog
|
|
2
2
|
|
|
3
|
+
## 3.47.0
|
|
4
|
+
|
|
5
|
+
* Add support for dynamic elements through `<svelte:element>` ([#2324](https://github.com/sveltejs/svelte/issues/2324))
|
|
6
|
+
* Miscellaneous variable context fixes in `{@const}` ([#7222](https://github.com/sveltejs/svelte/pull/7222))
|
|
7
|
+
* Fix `{#key}` block not being reactive when the key variable is not otherwise used ([#7408](https://github.com/sveltejs/svelte/issues/7408))
|
|
8
|
+
* Add `Symbol` as a known global ([#7418](https://github.com/sveltejs/svelte/issues/7418))
|
|
9
|
+
|
|
3
10
|
## 3.46.6
|
|
4
11
|
|
|
5
12
|
* Actually include action TypeScript interface in published package ([#7407](https://github.com/sveltejs/svelte/pull/7407))
|
package/compiler.js
CHANGED
|
@@ -5854,6 +5854,7 @@
|
|
|
5854
5854
|
'setTimeout',
|
|
5855
5855
|
'String',
|
|
5856
5856
|
'SVGElement',
|
|
5857
|
+
'Symbol',
|
|
5857
5858
|
'SyntaxError',
|
|
5858
5859
|
'TypeError',
|
|
5859
5860
|
'undefined',
|
|
@@ -6037,6 +6038,10 @@
|
|
|
6037
6038
|
code: `invalid-${slug}-content`,
|
|
6038
6039
|
message: `<${name}> cannot have children`
|
|
6039
6040
|
}),
|
|
6041
|
+
invalid_element_definition: {
|
|
6042
|
+
code: 'invalid-element-definition',
|
|
6043
|
+
message: 'Invalid element definition'
|
|
6044
|
+
},
|
|
6040
6045
|
invalid_element_placement: (slug, name) => ({
|
|
6041
6046
|
code: `invalid-${slug}-placement`,
|
|
6042
6047
|
message: `<${name}> tags cannot be inside elements or blocks`
|
|
@@ -6097,6 +6102,10 @@
|
|
|
6097
6102
|
code: 'missing-attribute-value',
|
|
6098
6103
|
message: 'Expected value for the attribute'
|
|
6099
6104
|
},
|
|
6105
|
+
missing_element_definition: {
|
|
6106
|
+
code: 'missing-element-definition',
|
|
6107
|
+
message: '<svelte:element> must have a \'this\' attribute'
|
|
6108
|
+
},
|
|
6100
6109
|
unclosed_script: {
|
|
6101
6110
|
code: 'unclosed-script',
|
|
6102
6111
|
message: '<script> must have a closing tag'
|
|
@@ -16685,7 +16694,7 @@
|
|
|
16685
16694
|
['svelte:window', 'Window'],
|
|
16686
16695
|
['svelte:body', 'Body']
|
|
16687
16696
|
]);
|
|
16688
|
-
const valid_meta_tags = Array.from(meta_tags.keys()).concat('svelte:self', 'svelte:component', 'svelte:fragment');
|
|
16697
|
+
const valid_meta_tags = Array.from(meta_tags.keys()).concat('svelte:self', 'svelte:component', 'svelte:fragment', 'svelte:element');
|
|
16689
16698
|
const specials = new Map([
|
|
16690
16699
|
[
|
|
16691
16700
|
'script',
|
|
@@ -16705,6 +16714,7 @@
|
|
|
16705
16714
|
const SELF = /^svelte:self(?=[\s/>])/;
|
|
16706
16715
|
const COMPONENT = /^svelte:component(?=[\s/>])/;
|
|
16707
16716
|
const SLOT = /^svelte:fragment(?=[\s/>])/;
|
|
16717
|
+
const ELEMENT = /^svelte:element(?=[\s/>])/;
|
|
16708
16718
|
function parent_is_head(stack) {
|
|
16709
16719
|
let i = stack.length;
|
|
16710
16720
|
while (i--) {
|
|
@@ -16807,7 +16817,7 @@
|
|
|
16807
16817
|
}
|
|
16808
16818
|
if (name === 'svelte:component') {
|
|
16809
16819
|
const index = element.attributes.findIndex(attr => attr.type === 'Attribute' && attr.name === 'this');
|
|
16810
|
-
if (
|
|
16820
|
+
if (index === -1) {
|
|
16811
16821
|
parser.error(parser_errors.missing_component_definition, start);
|
|
16812
16822
|
}
|
|
16813
16823
|
const definition = element.attributes.splice(index, 1)[0];
|
|
@@ -16816,6 +16826,17 @@
|
|
|
16816
16826
|
}
|
|
16817
16827
|
element.expression = definition.value[0].expression;
|
|
16818
16828
|
}
|
|
16829
|
+
if (name === 'svelte:element') {
|
|
16830
|
+
const index = element.attributes.findIndex(attr => attr.type === 'Attribute' && attr.name === 'this');
|
|
16831
|
+
if (index === -1) {
|
|
16832
|
+
parser.error(parser_errors.missing_element_definition, start);
|
|
16833
|
+
}
|
|
16834
|
+
const definition = element.attributes.splice(index, 1)[0];
|
|
16835
|
+
if (definition.value === true) {
|
|
16836
|
+
parser.error(parser_errors.invalid_element_definition, definition.start);
|
|
16837
|
+
}
|
|
16838
|
+
element.tag = definition.value[0].data || definition.value[0].expression;
|
|
16839
|
+
}
|
|
16819
16840
|
// special cases – top-level <script> and <style>
|
|
16820
16841
|
if (specials.has(name) && parser.stack.length === 1) {
|
|
16821
16842
|
const special = specials.get(name);
|
|
@@ -16872,6 +16893,8 @@
|
|
|
16872
16893
|
}
|
|
16873
16894
|
if (parser.read(COMPONENT))
|
|
16874
16895
|
return 'svelte:component';
|
|
16896
|
+
if (parser.read(ELEMENT))
|
|
16897
|
+
return 'svelte:element';
|
|
16875
16898
|
if (parser.read(SLOT))
|
|
16876
16899
|
return 'svelte:fragment';
|
|
16877
16900
|
const name = parser.read_until(/(\s|\/|>)/);
|
|
@@ -17912,6 +17935,7 @@
|
|
|
17912
17935
|
hydrate: [],
|
|
17913
17936
|
mount: [],
|
|
17914
17937
|
measure: [],
|
|
17938
|
+
restore_measurements: [],
|
|
17915
17939
|
fix: [],
|
|
17916
17940
|
animate: [],
|
|
17917
17941
|
intro: [],
|
|
@@ -18100,6 +18124,11 @@
|
|
|
18100
18124
|
properties.measure = x `function #measure() {
|
|
18101
18125
|
${this.chunks.measure}
|
|
18102
18126
|
}`;
|
|
18127
|
+
if (this.chunks.restore_measurements.length) {
|
|
18128
|
+
properties.restore_measurements = x `function #restore_measurements(#measurement) {
|
|
18129
|
+
${this.chunks.restore_measurements}
|
|
18130
|
+
}`;
|
|
18131
|
+
}
|
|
18103
18132
|
properties.fix = x `function #fix() {
|
|
18104
18133
|
${this.chunks.fix}
|
|
18105
18134
|
}`;
|
|
@@ -18151,6 +18180,7 @@
|
|
|
18151
18180
|
m: ${properties.mount},
|
|
18152
18181
|
p: ${properties.update},
|
|
18153
18182
|
r: ${properties.measure},
|
|
18183
|
+
s: ${properties.restore_measurements},
|
|
18154
18184
|
f: ${properties.fix},
|
|
18155
18185
|
a: ${properties.animate},
|
|
18156
18186
|
i: ${properties.intro},
|
|
@@ -19052,6 +19082,10 @@
|
|
|
19052
19082
|
code: 'invalid-animation',
|
|
19053
19083
|
message: 'An element that uses the animate directive must be the sole child of a keyed each block'
|
|
19054
19084
|
},
|
|
19085
|
+
invalid_animation_dynamic_element: {
|
|
19086
|
+
code: 'invalid-animation',
|
|
19087
|
+
message: '<svelte:element> cannot have a animate directive'
|
|
19088
|
+
},
|
|
19055
19089
|
invalid_directive_value: {
|
|
19056
19090
|
code: 'invalid-directive-value',
|
|
19057
19091
|
message: 'Can only bind to an identifier (e.g. `foo`) or a member expression (e.g. `foo.bar` or `foo[baz]`)'
|
|
@@ -19264,11 +19298,20 @@
|
|
|
19264
19298
|
const id = component.get_unique_name(sanitize(get_function_name(node, owner)));
|
|
19265
19299
|
const declaration = b `const ${id} = ${node}`;
|
|
19266
19300
|
if (owner.type === 'ConstTag') {
|
|
19301
|
+
let child_scope = scope;
|
|
19267
19302
|
walk(node, {
|
|
19268
|
-
enter(node) {
|
|
19269
|
-
if (node
|
|
19303
|
+
enter(node, parent) {
|
|
19304
|
+
if (map.has(node))
|
|
19305
|
+
child_scope = map.get(node);
|
|
19306
|
+
if (node.type === 'Identifier' && is_reference(node, parent)) {
|
|
19307
|
+
if (child_scope.has(node.name))
|
|
19308
|
+
return;
|
|
19270
19309
|
this.replace(block.renderer.reference(node, ctx));
|
|
19271
19310
|
}
|
|
19311
|
+
},
|
|
19312
|
+
leave(node) {
|
|
19313
|
+
if (map.has(node))
|
|
19314
|
+
child_scope = child_scope.parent;
|
|
19272
19315
|
}
|
|
19273
19316
|
});
|
|
19274
19317
|
}
|
|
@@ -20321,6 +20364,17 @@
|
|
|
20321
20364
|
this.outro = null;
|
|
20322
20365
|
this.animation = null;
|
|
20323
20366
|
this.name = info.name;
|
|
20367
|
+
if (info.name === 'svelte:element') {
|
|
20368
|
+
if (typeof info.tag !== 'string') {
|
|
20369
|
+
this.tag_expr = new Expression(component, this, scope, info.tag);
|
|
20370
|
+
}
|
|
20371
|
+
else {
|
|
20372
|
+
this.tag_expr = new Expression(component, this, scope, string_literal(info.tag));
|
|
20373
|
+
}
|
|
20374
|
+
}
|
|
20375
|
+
else {
|
|
20376
|
+
this.tag_expr = new Expression(component, this, scope, string_literal(this.name));
|
|
20377
|
+
}
|
|
20324
20378
|
this.namespace = get_namespace(parent, this, component.namespace);
|
|
20325
20379
|
if (this.namespace !== namespaces.foreign) {
|
|
20326
20380
|
if (this.name === 'textarea') {
|
|
@@ -20417,6 +20471,9 @@
|
|
|
20417
20471
|
this.optimise();
|
|
20418
20472
|
component.apply_stylesheet(this);
|
|
20419
20473
|
}
|
|
20474
|
+
get is_dynamic_element() {
|
|
20475
|
+
return this.name === 'svelte:element';
|
|
20476
|
+
}
|
|
20420
20477
|
validate() {
|
|
20421
20478
|
if (this.component.var_lookup.has(this.name) && this.component.var_lookup.get(this.name).imported) {
|
|
20422
20479
|
this.component.warn(this, compiler_warnings.component_name_lowercase(this.name));
|
|
@@ -23384,9 +23441,21 @@
|
|
|
23384
23441
|
filter: (node, _name) => node.name === 'details'
|
|
23385
23442
|
}
|
|
23386
23443
|
];
|
|
23444
|
+
const CHILD_DYNAMIC_ELEMENT_BLOCK = 'child_dynamic_element';
|
|
23387
23445
|
class ElementWrapper extends Wrapper {
|
|
23388
23446
|
constructor(renderer, block, parent, node, strip_whitespace, next_sibling) {
|
|
23389
23447
|
super(renderer, block, parent, node);
|
|
23448
|
+
this.child_dynamic_element_block = null;
|
|
23449
|
+
this.child_dynamic_element = null;
|
|
23450
|
+
if (node.is_dynamic_element && block.type !== CHILD_DYNAMIC_ELEMENT_BLOCK) {
|
|
23451
|
+
this.child_dynamic_element_block = block.child({
|
|
23452
|
+
comment: create_debugging_comment(node, renderer.component),
|
|
23453
|
+
name: renderer.component.get_unique_name('create_dynamic_element'),
|
|
23454
|
+
type: CHILD_DYNAMIC_ELEMENT_BLOCK
|
|
23455
|
+
});
|
|
23456
|
+
renderer.blocks.push(this.child_dynamic_element_block);
|
|
23457
|
+
this.child_dynamic_element = new ElementWrapper(renderer, this.child_dynamic_element_block, parent, node, strip_whitespace, next_sibling);
|
|
23458
|
+
}
|
|
23390
23459
|
this.var = {
|
|
23391
23460
|
type: 'Identifier',
|
|
23392
23461
|
name: node.name.replace(/[^a-zA-Z0-9_$]/g, '_')
|
|
@@ -23423,6 +23492,7 @@
|
|
|
23423
23492
|
if (node.animation) {
|
|
23424
23493
|
block.add_animation();
|
|
23425
23494
|
}
|
|
23495
|
+
block.add_dependencies(node.tag_expr.dependencies);
|
|
23426
23496
|
// add directive and handler dependencies
|
|
23427
23497
|
[node.animation, node.outro, ...node.actions, ...node.classes, ...node.styles].forEach(directive => {
|
|
23428
23498
|
if (directive && directive.expression) {
|
|
@@ -23443,6 +23513,7 @@
|
|
|
23443
23513
|
node.handlers.length > 0 ||
|
|
23444
23514
|
node.styles.length > 0 ||
|
|
23445
23515
|
this.node.name === 'option' ||
|
|
23516
|
+
node.tag_expr.dynamic_dependencies().length ||
|
|
23446
23517
|
renderer.options.dev) {
|
|
23447
23518
|
this.parent.cannot_use_innerhtml(); // need to use add_location
|
|
23448
23519
|
this.parent.not_static_content();
|
|
@@ -23451,6 +23522,90 @@
|
|
|
23451
23522
|
this.fragment = new FragmentWrapper(renderer, block, node.children, this, strip_whitespace, next_sibling);
|
|
23452
23523
|
}
|
|
23453
23524
|
render(block, parent_node, parent_nodes) {
|
|
23525
|
+
if (this.child_dynamic_element) {
|
|
23526
|
+
this.render_dynamic_element(block, parent_node, parent_nodes);
|
|
23527
|
+
}
|
|
23528
|
+
else {
|
|
23529
|
+
this.render_element(block, parent_node, parent_nodes);
|
|
23530
|
+
}
|
|
23531
|
+
}
|
|
23532
|
+
render_dynamic_element(block, parent_node, parent_nodes) {
|
|
23533
|
+
this.child_dynamic_element.render(this.child_dynamic_element_block, null, x `#nodes`);
|
|
23534
|
+
const previous_tag = block.get_unique_name('previous_tag');
|
|
23535
|
+
const tag = this.node.tag_expr.manipulate(block);
|
|
23536
|
+
block.add_variable(previous_tag, tag);
|
|
23537
|
+
block.chunks.init.push(b `
|
|
23538
|
+
${this.renderer.options.dev && b `@validate_dynamic_element(${tag});`}
|
|
23539
|
+
let ${this.var} = ${tag} && ${this.child_dynamic_element_block.name}(#ctx);
|
|
23540
|
+
`);
|
|
23541
|
+
block.chunks.create.push(b `
|
|
23542
|
+
if (${this.var}) ${this.var}.c();
|
|
23543
|
+
`);
|
|
23544
|
+
if (this.renderer.options.hydratable) {
|
|
23545
|
+
block.chunks.claim.push(b `
|
|
23546
|
+
if (${this.var}) ${this.var}.l(${parent_nodes});
|
|
23547
|
+
`);
|
|
23548
|
+
}
|
|
23549
|
+
block.chunks.mount.push(b `
|
|
23550
|
+
if (${this.var}) ${this.var}.m(${parent_node || '#target'}, ${parent_node ? 'null' : '#anchor'});
|
|
23551
|
+
`);
|
|
23552
|
+
const anchor = this.get_or_create_anchor(block, parent_node, parent_nodes);
|
|
23553
|
+
const has_transitions = !!(this.node.intro || this.node.outro);
|
|
23554
|
+
const not_equal = this.renderer.component.component_options.immutable ? x `@not_equal` : x `@safe_not_equal`;
|
|
23555
|
+
block.chunks.update.push(b `
|
|
23556
|
+
if (${tag}) {
|
|
23557
|
+
if (!${previous_tag}) {
|
|
23558
|
+
${this.var} = ${this.child_dynamic_element_block.name}(#ctx);
|
|
23559
|
+
${this.var}.c();
|
|
23560
|
+
${has_transitions && b `@transition_in(${this.var})`}
|
|
23561
|
+
${this.var}.m(${this.get_update_mount_node(anchor)}, ${anchor});
|
|
23562
|
+
} else if (${not_equal}(${previous_tag}, ${tag})) {
|
|
23563
|
+
${this.var}.d(1);
|
|
23564
|
+
${this.renderer.options.dev && b `@validate_dynamic_element(${tag});`}
|
|
23565
|
+
${this.var} = ${this.child_dynamic_element_block.name}(#ctx);
|
|
23566
|
+
${this.var}.c();
|
|
23567
|
+
${this.var}.m(${this.get_update_mount_node(anchor)}, ${anchor});
|
|
23568
|
+
} else {
|
|
23569
|
+
${this.var}.p(#ctx, #dirty);
|
|
23570
|
+
}
|
|
23571
|
+
} else if (${previous_tag}) {
|
|
23572
|
+
${has_transitions
|
|
23573
|
+
? b `
|
|
23574
|
+
@group_outros();
|
|
23575
|
+
@transition_out(${this.var}, 1, 1, () => {
|
|
23576
|
+
${this.var} = null;
|
|
23577
|
+
});
|
|
23578
|
+
@check_outros();
|
|
23579
|
+
`
|
|
23580
|
+
: b `
|
|
23581
|
+
${this.var}.d(1);
|
|
23582
|
+
${this.var} = null;
|
|
23583
|
+
`}
|
|
23584
|
+
}
|
|
23585
|
+
${previous_tag} = ${tag};
|
|
23586
|
+
`);
|
|
23587
|
+
if (this.child_dynamic_element_block.has_intros) {
|
|
23588
|
+
block.chunks.intro.push(b `@transition_in(${this.var});`);
|
|
23589
|
+
}
|
|
23590
|
+
if (this.child_dynamic_element_block.has_outros) {
|
|
23591
|
+
block.chunks.outro.push(b `@transition_out(${this.var});`);
|
|
23592
|
+
}
|
|
23593
|
+
block.chunks.destroy.push(b `if (${this.var}) ${this.var}.d(detaching)`);
|
|
23594
|
+
if (this.node.animation) {
|
|
23595
|
+
const measurements = block.get_unique_name('measurements');
|
|
23596
|
+
block.add_variable(measurements);
|
|
23597
|
+
block.chunks.measure.push(b `${measurements} = ${this.var}.r()`);
|
|
23598
|
+
block.chunks.fix.push(b `${this.var}.f();`);
|
|
23599
|
+
block.chunks.animate.push(b `
|
|
23600
|
+
${this.var}.s(${measurements});
|
|
23601
|
+
${this.var}.a()
|
|
23602
|
+
`);
|
|
23603
|
+
}
|
|
23604
|
+
}
|
|
23605
|
+
is_dom_node() {
|
|
23606
|
+
return super.is_dom_node() && !this.child_dynamic_element;
|
|
23607
|
+
}
|
|
23608
|
+
render_element(block, parent_node, parent_nodes) {
|
|
23454
23609
|
const { renderer } = this;
|
|
23455
23610
|
if (this.node.name === 'noscript')
|
|
23456
23611
|
return;
|
|
@@ -23463,7 +23618,7 @@
|
|
|
23463
23618
|
if (renderer.options.hydratable) {
|
|
23464
23619
|
if (parent_nodes) {
|
|
23465
23620
|
block.chunks.claim.push(b `
|
|
23466
|
-
${node} = ${this.get_claim_statement(parent_nodes)};
|
|
23621
|
+
${node} = ${this.get_claim_statement(block, parent_nodes)};
|
|
23467
23622
|
`);
|
|
23468
23623
|
if (!this.void && this.node.children.length > 0) {
|
|
23469
23624
|
block.chunks.claim.push(b `
|
|
@@ -23546,12 +23701,13 @@
|
|
|
23546
23701
|
const loc = renderer.locate(this.node.start);
|
|
23547
23702
|
block.chunks.hydrate.push(b `@add_location(${this.var}, ${renderer.file_var}, ${loc.line - 1}, ${loc.column}, ${this.node.start});`);
|
|
23548
23703
|
}
|
|
23704
|
+
block.renderer.dirty(this.node.tag_expr.dynamic_dependencies());
|
|
23549
23705
|
}
|
|
23550
23706
|
can_use_textcontent() {
|
|
23551
23707
|
return this.is_static_content && this.fragment.nodes.every(node => node.node.type === 'Text' || node.node.type === 'MustacheTag');
|
|
23552
23708
|
}
|
|
23553
23709
|
get_render_statement(block) {
|
|
23554
|
-
const { name, namespace } = this.node;
|
|
23710
|
+
const { name, namespace, tag_expr } = this.node;
|
|
23555
23711
|
if (namespace === namespaces.svg) {
|
|
23556
23712
|
return x `@svg_element("${name}")`;
|
|
23557
23713
|
}
|
|
@@ -23562,20 +23718,33 @@
|
|
|
23562
23718
|
if (is) {
|
|
23563
23719
|
return x `@element_is("${name}", ${is.render_chunks(block).reduce((lhs, rhs) => x `${lhs} + ${rhs}`)})`;
|
|
23564
23720
|
}
|
|
23565
|
-
|
|
23721
|
+
const reference = tag_expr.manipulate(block);
|
|
23722
|
+
return x `@element(${reference})`;
|
|
23566
23723
|
}
|
|
23567
|
-
get_claim_statement(nodes) {
|
|
23724
|
+
get_claim_statement(block, nodes) {
|
|
23568
23725
|
const attributes = this.attributes
|
|
23569
23726
|
.filter((attr) => !(attr instanceof SpreadAttributeWrapper) && !attr.property_name)
|
|
23570
23727
|
.map((attr) => p `${attr.name}: true`);
|
|
23571
|
-
|
|
23572
|
-
|
|
23573
|
-
|
|
23728
|
+
let reference;
|
|
23729
|
+
if (this.node.tag_expr.node.type === 'Literal') {
|
|
23730
|
+
if (this.node.namespace) {
|
|
23731
|
+
reference = `"${this.node.tag_expr.node.value}"`;
|
|
23732
|
+
}
|
|
23733
|
+
else {
|
|
23734
|
+
reference = `"${(this.node.tag_expr.node.value || '').toUpperCase()}"`;
|
|
23735
|
+
}
|
|
23736
|
+
}
|
|
23737
|
+
else if (this.node.namespace) {
|
|
23738
|
+
reference = x `${this.node.tag_expr.manipulate(block)}`;
|
|
23739
|
+
}
|
|
23740
|
+
else {
|
|
23741
|
+
reference = x `(${this.node.tag_expr.manipulate(block)} || 'null').toUpperCase()`;
|
|
23742
|
+
}
|
|
23574
23743
|
if (this.node.namespace === namespaces.svg) {
|
|
23575
|
-
return x `@claim_svg_element(${nodes},
|
|
23744
|
+
return x `@claim_svg_element(${nodes}, ${reference}, { ${attributes} })`;
|
|
23576
23745
|
}
|
|
23577
23746
|
else {
|
|
23578
|
-
return x `@claim_element(${nodes},
|
|
23747
|
+
return x `@claim_element(${nodes}, ${reference}, { ${attributes} })`;
|
|
23579
23748
|
}
|
|
23580
23749
|
}
|
|
23581
23750
|
add_directives_in_order(block) {
|
|
@@ -23944,6 +24113,10 @@
|
|
|
23944
24113
|
block.chunks.measure.push(b `
|
|
23945
24114
|
${rect} = ${this.var}.getBoundingClientRect();
|
|
23946
24115
|
`);
|
|
24116
|
+
if (block.type === CHILD_DYNAMIC_ELEMENT_BLOCK) {
|
|
24117
|
+
block.chunks.measure.push(b `return ${rect}`);
|
|
24118
|
+
block.chunks.restore_measurements.push(b `${rect} = #measurement;`);
|
|
24119
|
+
}
|
|
23947
24120
|
block.chunks.fix.push(b `
|
|
23948
24121
|
@fix_position(${this.var});
|
|
23949
24122
|
${stop_animation}();
|
|
@@ -24027,7 +24200,7 @@
|
|
|
24027
24200
|
if (should_cache) {
|
|
24028
24201
|
block.chunks.update.push(b `
|
|
24029
24202
|
if (${block.renderer.dirty(dependencies)} && (${cached_snippet} !== (${cached_snippet} = ${snippet}))) {
|
|
24030
|
-
${updater}
|
|
24203
|
+
${updater}
|
|
24031
24204
|
}
|
|
24032
24205
|
`);
|
|
24033
24206
|
}
|
|
@@ -24576,6 +24749,7 @@
|
|
|
24576
24749
|
name: renderer.component.get_unique_name('create_key_block'),
|
|
24577
24750
|
type: 'key'
|
|
24578
24751
|
});
|
|
24752
|
+
block.add_dependencies(node.expression.dependencies);
|
|
24579
24753
|
renderer.blocks.push(block);
|
|
24580
24754
|
}
|
|
24581
24755
|
this.block = block;
|
|
@@ -27727,7 +27901,8 @@
|
|
|
27727
27901
|
const contenteditable = (node.name !== 'textarea' &&
|
|
27728
27902
|
node.name !== 'input' &&
|
|
27729
27903
|
node.attributes.some((attribute) => attribute.name === 'contenteditable'));
|
|
27730
|
-
renderer.add_string(
|
|
27904
|
+
renderer.add_string('<');
|
|
27905
|
+
add_tag_name();
|
|
27731
27906
|
const class_expression_list = node.classes.map(class_directive => {
|
|
27732
27907
|
const { expression, name } = class_directive;
|
|
27733
27908
|
const snippet = expression ? expression.node : x `#ctx.${name}`; // TODO is this right?
|
|
@@ -27867,14 +28042,25 @@
|
|
|
27867
28042
|
else {
|
|
27868
28043
|
renderer.add_expression(node_contents);
|
|
27869
28044
|
}
|
|
27870
|
-
|
|
27871
|
-
renderer.add_string(`</${node.name}>`);
|
|
27872
|
-
}
|
|
28045
|
+
add_close_tag();
|
|
27873
28046
|
}
|
|
27874
28047
|
else {
|
|
27875
28048
|
renderer.render(children, options);
|
|
28049
|
+
add_close_tag();
|
|
28050
|
+
}
|
|
28051
|
+
function add_close_tag() {
|
|
27876
28052
|
if (!is_void(node.name)) {
|
|
27877
|
-
renderer.add_string(
|
|
28053
|
+
renderer.add_string('</');
|
|
28054
|
+
add_tag_name();
|
|
28055
|
+
renderer.add_string('>');
|
|
28056
|
+
}
|
|
28057
|
+
}
|
|
28058
|
+
function add_tag_name() {
|
|
28059
|
+
if (node.tag_expr.node.type === 'Literal') {
|
|
28060
|
+
renderer.add_string(node.tag_expr.node.value);
|
|
28061
|
+
}
|
|
28062
|
+
else {
|
|
28063
|
+
renderer.add_expression(node.tag_expr.node);
|
|
27878
28064
|
}
|
|
27879
28065
|
}
|
|
27880
28066
|
}
|
|
@@ -30495,7 +30681,7 @@
|
|
|
30495
30681
|
}
|
|
30496
30682
|
|
|
30497
30683
|
// This file is automatically generated
|
|
30498
|
-
var internal_exports = new Set(["HtmlTag", "HtmlTagHydration", "SvelteComponent", "SvelteComponentDev", "SvelteComponentTyped", "SvelteElement", "action_destroyer", "add_attribute", "add_classes", "add_flush_callback", "add_location", "add_render_callback", "add_resize_listener", "add_styles", "add_transform", "afterUpdate", "append", "append_dev", "append_empty_stylesheet", "append_hydration", "append_hydration_dev", "append_styles", "assign", "attr", "attr_dev", "attribute_to_object", "beforeUpdate", "bind", "binding_callbacks", "blank_object", "bubble", "check_outros", "children", "claim_component", "claim_element", "claim_html_tag", "claim_space", "claim_svg_element", "claim_text", "clear_loops", "component_subscribe", "compute_rest_props", "compute_slots", "createEventDispatcher", "create_animation", "create_bidirectional_transition", "create_component", "create_in_transition", "create_out_transition", "create_slot", "create_ssr_component", "current_component", "custom_event", "dataset_dev", "debug", "destroy_block", "destroy_component", "destroy_each", "detach", "detach_after_dev", "detach_before_dev", "detach_between_dev", "detach_dev", "dirty_components", "dispatch_dev", "each", "element", "element_is", "empty", "end_hydrating", "escape", "escape_attribute_value", "escape_object", "escaped", "exclude_internal_props", "fix_and_destroy_block", "fix_and_outro_and_destroy_block", "fix_position", "flush", "getAllContexts", "getContext", "get_all_dirty_from_scope", "get_binding_group_value", "get_current_component", "get_custom_elements_slots", "get_root_for_style", "get_slot_changes", "get_spread_object", "get_spread_update", "get_store_value", "globals", "group_outros", "handle_promise", "hasContext", "has_prop", "identity", "init", "insert", "insert_dev", "insert_hydration", "insert_hydration_dev", "intros", "invalid_attribute_name_character", "is_client", "is_crossorigin", "is_empty", "is_function", "is_promise", "listen", "listen_dev", "loop", "loop_guard", "merge_ssr_styles", "missing_component", "mount_component", "noop", "not_equal", "now", "null_to_empty", "object_without_properties", "onDestroy", "onMount", "once", "outro_and_destroy_block", "prevent_default", "prop_dev", "query_selector_all", "raf", "run", "run_all", "safe_not_equal", "schedule_update", "select_multiple_value", "select_option", "select_options", "select_value", "self", "setContext", "set_attributes", "set_current_component", "set_custom_element_data", "set_data", "set_data_dev", "set_input_type", "set_input_value", "set_now", "set_raf", "set_store_value", "set_style", "set_svg_attributes", "space", "spread", "src_url_equal", "start_hydrating", "stop_propagation", "subscribe", "svg_element", "text", "tick", "time_ranges_to_array", "to_number", "toggle_class", "transition_in", "transition_out", "trusted", "update_await_block_branch", "update_keyed_each", "update_slot", "update_slot_base", "validate_component", "validate_each_argument", "validate_each_keys", "validate_slots", "validate_store", "xlink_attr"]);
|
|
30684
|
+
var internal_exports = new Set(["HtmlTag", "HtmlTagHydration", "SvelteComponent", "SvelteComponentDev", "SvelteComponentTyped", "SvelteElement", "action_destroyer", "add_attribute", "add_classes", "add_flush_callback", "add_location", "add_render_callback", "add_resize_listener", "add_styles", "add_transform", "afterUpdate", "append", "append_dev", "append_empty_stylesheet", "append_hydration", "append_hydration_dev", "append_styles", "assign", "attr", "attr_dev", "attribute_to_object", "beforeUpdate", "bind", "binding_callbacks", "blank_object", "bubble", "check_outros", "children", "claim_component", "claim_element", "claim_html_tag", "claim_space", "claim_svg_element", "claim_text", "clear_loops", "component_subscribe", "compute_rest_props", "compute_slots", "createEventDispatcher", "create_animation", "create_bidirectional_transition", "create_component", "create_in_transition", "create_out_transition", "create_slot", "create_ssr_component", "current_component", "custom_event", "dataset_dev", "debug", "destroy_block", "destroy_component", "destroy_each", "detach", "detach_after_dev", "detach_before_dev", "detach_between_dev", "detach_dev", "dirty_components", "dispatch_dev", "each", "element", "element_is", "empty", "end_hydrating", "escape", "escape_attribute_value", "escape_object", "escaped", "exclude_internal_props", "fix_and_destroy_block", "fix_and_outro_and_destroy_block", "fix_position", "flush", "getAllContexts", "getContext", "get_all_dirty_from_scope", "get_binding_group_value", "get_current_component", "get_custom_elements_slots", "get_root_for_style", "get_slot_changes", "get_spread_object", "get_spread_update", "get_store_value", "globals", "group_outros", "handle_promise", "hasContext", "has_prop", "identity", "init", "insert", "insert_dev", "insert_hydration", "insert_hydration_dev", "intros", "invalid_attribute_name_character", "is_client", "is_crossorigin", "is_empty", "is_function", "is_promise", "listen", "listen_dev", "loop", "loop_guard", "merge_ssr_styles", "missing_component", "mount_component", "noop", "not_equal", "now", "null_to_empty", "object_without_properties", "onDestroy", "onMount", "once", "outro_and_destroy_block", "prevent_default", "prop_dev", "query_selector_all", "raf", "run", "run_all", "safe_not_equal", "schedule_update", "select_multiple_value", "select_option", "select_options", "select_value", "self", "setContext", "set_attributes", "set_current_component", "set_custom_element_data", "set_data", "set_data_dev", "set_input_type", "set_input_value", "set_now", "set_raf", "set_store_value", "set_style", "set_svg_attributes", "space", "spread", "src_url_equal", "start_hydrating", "stop_propagation", "subscribe", "svg_element", "text", "tick", "time_ranges_to_array", "to_number", "toggle_class", "transition_in", "transition_out", "trusted", "update_await_block_branch", "update_keyed_each", "update_slot", "update_slot_base", "validate_component", "validate_dynamic_element", "validate_each_argument", "validate_each_keys", "validate_slots", "validate_store", "xlink_attr"]);
|
|
30499
30685
|
|
|
30500
30686
|
function is_used_as_reference(node, parent) {
|
|
30501
30687
|
if (!is_reference(node, parent)) {
|
|
@@ -30677,7 +30863,7 @@
|
|
|
30677
30863
|
if (result) {
|
|
30678
30864
|
const { compile_options, name } = this;
|
|
30679
30865
|
const { format = 'esm' } = compile_options;
|
|
30680
|
-
const banner = `${this.file ? `${this.file} ` : ''}generated by Svelte v${'3.
|
|
30866
|
+
const banner = `${this.file ? `${this.file} ` : ''}generated by Svelte v${'3.47.0'}`;
|
|
30681
30867
|
const program = { type: 'Program', body: result.js };
|
|
30682
30868
|
walk(program, {
|
|
30683
30869
|
enter: (node, parent, key) => {
|
|
@@ -32170,7 +32356,7 @@
|
|
|
32170
32356
|
return result.to_processed();
|
|
32171
32357
|
}
|
|
32172
32358
|
|
|
32173
|
-
const VERSION = '3.
|
|
32359
|
+
const VERSION = '3.47.0';
|
|
32174
32360
|
|
|
32175
32361
|
exports.VERSION = VERSION;
|
|
32176
32362
|
exports.compile = compile;
|