@swiftwc/ui 1.0.1-canary.3 → 1.0.1-canary.5
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/generated/components/content-view.d.ts +2 -0
- package/generated/components/content-view.js +2 -0
- package/generated/components/date-picker.d.ts +2 -0
- package/generated/components/date-picker.js +20 -16
- package/generated/components/detail-placeholder.d.ts +4 -0
- package/generated/components/detail-placeholder.js +4 -0
- package/generated/components/disclosure-group.d.ts +2 -0
- package/generated/components/disclosure-group.js +2 -0
- package/generated/components/fine-tooltip.js +5 -3
- package/generated/components/form-view.d.ts +2 -0
- package/generated/components/form-view.js +2 -0
- package/generated/components/h-flex-stack.d.ts +2 -0
- package/generated/components/h-flex-stack.js +2 -0
- package/generated/components/h-stack.d.ts +2 -0
- package/generated/components/h-stack.js +2 -0
- package/generated/components/image-view.d.ts +3 -0
- package/generated/components/image-view.js +3 -0
- package/generated/components/list-view.d.ts +2 -0
- package/generated/components/list-view.js +2 -0
- package/generated/components/menu-view.js +11 -9
- package/generated/components/navigation-large-title.d.ts +1 -0
- package/generated/components/navigation-large-title.js +7 -4
- package/generated/components/navigation-split-view.d.ts +2 -0
- package/generated/components/navigation-split-view.js +2 -0
- package/generated/components/navigation-stack.d.ts +2 -0
- package/generated/components/navigation-stack.js +2 -0
- package/generated/components/picker-view.js +46 -44
- package/generated/components/progress-view.js +8 -6
- package/generated/components/scroll-view-proxy.d.ts +2 -0
- package/generated/components/scroll-view-proxy.js +2 -0
- package/generated/components/scroll-view.js +9 -7
- package/generated/components/sheet-view.d.ts +2 -0
- package/generated/components/sheet-view.js +2 -0
- package/generated/components/sidebar-toggle.d.ts +2 -0
- package/generated/components/sidebar-toggle.js +12 -8
- package/generated/components/sidebar-view.d.ts +2 -0
- package/generated/components/sidebar-view.js +2 -0
- package/generated/components/tab-bar.d.ts +2 -0
- package/generated/components/tab-bar.js +2 -0
- package/generated/components/tab-item.d.ts +2 -0
- package/generated/components/tab-item.js +2 -0
- package/generated/components/tab-view.d.ts +2 -0
- package/generated/components/tab-view.js +12 -8
- package/generated/components/table-view.js +7 -5
- package/generated/components/text-field.js +11 -9
- package/generated/components/toggle-view.js +14 -12
- package/generated/components/tool-bar-item-group.d.ts +2 -0
- package/generated/components/tool-bar-item-group.js +2 -0
- package/generated/components/tool-bar-item.d.ts +2 -0
- package/generated/components/tool-bar-item.js +2 -0
- package/generated/components/tool-bar.js +5 -3
- package/generated/components/v-flex-stack.d.ts +2 -0
- package/generated/components/v-flex-stack.js +2 -0
- package/generated/components/v-keyboard.js +6 -4
- package/generated/components/v-stack.d.ts +2 -0
- package/generated/components/v-stack.js +2 -0
- package/generated/css/index.css +5 -1
- package/generated/i18n/index.js +2 -0
- package/generated/internal/class/css-style-observer.js +3 -1
- package/generated/internal/class/navigation-view.js +4 -2
- package/generated/snapshot/index.d.ts +1 -1
- package/generated/snapshot/index.js +7 -7
- package/html-data/en.json +29 -23
- package/package.json +1 -1
- package/scss/components/_text-view.scss +6 -1
|
@@ -3,6 +3,8 @@ declare const datePickerStyles: readonly ["graphical", "field", "automatic"];
|
|
|
3
3
|
export type DatePickerStyle = (typeof datePickerStyles)[number];
|
|
4
4
|
/**
|
|
5
5
|
* @summary A control that selects an absolute date.
|
|
6
|
+
*
|
|
7
|
+
* @slot — The default slot
|
|
6
8
|
*/
|
|
7
9
|
export declare class DatePicker extends FormAssociatedBase {
|
|
8
10
|
#private;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
var _a;
|
|
1
2
|
import { I18n } from '../i18n';
|
|
2
3
|
import { CleanupRegistry } from '../internal/class/cleanup-registry';
|
|
3
4
|
import { FormAssociatedBase, getInternals } from '../internal/class/form-associated-base';
|
|
@@ -8,6 +9,8 @@ import { html } from '../tpl';
|
|
|
8
9
|
const datePickerStyles = ['graphical', 'field', 'automatic'];
|
|
9
10
|
/**
|
|
10
11
|
* @summary A control that selects an absolute date.
|
|
12
|
+
*
|
|
13
|
+
* @slot — The default slot
|
|
11
14
|
*/
|
|
12
15
|
export class DatePicker extends FormAssociatedBase {
|
|
13
16
|
static get observedAttributes() {
|
|
@@ -36,7 +39,7 @@ export class DatePicker extends FormAssociatedBase {
|
|
|
36
39
|
static #templates = new Map();
|
|
37
40
|
// #lastRenderedStyle?: DatePickerStyle //string | null
|
|
38
41
|
#renderValidityMsgs = (entries) => {
|
|
39
|
-
debug(`${
|
|
42
|
+
debug(`${_a.name} ⚡️ mutation`);
|
|
40
43
|
this.setValidity(this.validity, this.validationMessage);
|
|
41
44
|
};
|
|
42
45
|
#shadowRoot;
|
|
@@ -73,7 +76,7 @@ export class DatePicker extends FormAssociatedBase {
|
|
|
73
76
|
// break
|
|
74
77
|
// }
|
|
75
78
|
// return DatePicker.#templates.get(this.datePickerStyle)!
|
|
76
|
-
return
|
|
79
|
+
return _a.#templates.getOrInsertComputed(this.datePickerStyle, () => {
|
|
77
80
|
switch (this.datePickerStyle) {
|
|
78
81
|
default:
|
|
79
82
|
return $(html `<label part="root date-picker-stack">
|
|
@@ -97,7 +100,7 @@ export class DatePicker extends FormAssociatedBase {
|
|
|
97
100
|
this.#shadowRoot = this.attachShadow({ mode: 'closed' });
|
|
98
101
|
}
|
|
99
102
|
attributeChangedCallback(name, oldValue, newValue) {
|
|
100
|
-
debug(`${
|
|
103
|
+
debug(`${_a.name} ⚡️ attr-change [${name}] ("${oldValue}" → "${newValue}")`);
|
|
101
104
|
switch (name) {
|
|
102
105
|
case 'selection':
|
|
103
106
|
// nothing happens// const [y = '', m = '', d = ''] = (newValue ?? '').split(/\D+/)
|
|
@@ -150,7 +153,7 @@ export class DatePicker extends FormAssociatedBase {
|
|
|
150
153
|
return datePickerStyles.includes(this.getAttribute('date-picker-style') ?? '') ? this.getAttribute('date-picker-style') : 'automatic';
|
|
151
154
|
}
|
|
152
155
|
#render() {
|
|
153
|
-
debug(`${
|
|
156
|
+
debug(`${_a.name} ⚡️ #render (${this.datePickerStyle})`);
|
|
154
157
|
// if (this.#lastRenderedStyle === this.datePickerStyle) return // skip if already applied
|
|
155
158
|
// this.#lastRenderedStyle = this.datePickerStyle
|
|
156
159
|
// clear shadow DOM
|
|
@@ -194,7 +197,7 @@ export class DatePicker extends FormAssociatedBase {
|
|
|
194
197
|
}
|
|
195
198
|
}
|
|
196
199
|
#handleValiditiesSlotchange = ({ type, target: slot }) => {
|
|
197
|
-
debug(`${
|
|
200
|
+
debug(`${_a.name} ⚡️ ${type}`);
|
|
198
201
|
if (!(slot instanceof HTMLSlotElement))
|
|
199
202
|
return;
|
|
200
203
|
const assigned = slot.assignedElements();
|
|
@@ -214,15 +217,15 @@ export class DatePicker extends FormAssociatedBase {
|
|
|
214
217
|
for (const input of this.#inputs) {
|
|
215
218
|
const nv = v[input.name] ?? '', pattern = /^(\d+)?$/;
|
|
216
219
|
let finalValue = pattern.test(nv) ? nv : '', parsedValue = parseInt(finalValue);
|
|
217
|
-
if (
|
|
220
|
+
if (_a.#min(input) > parsedValue)
|
|
218
221
|
finalValue = '';
|
|
219
|
-
else if (
|
|
222
|
+
else if (_a.#max(input) < parsedValue)
|
|
220
223
|
finalValue = '';
|
|
221
224
|
input.value = finalValue;
|
|
222
225
|
}
|
|
223
226
|
}
|
|
224
227
|
#handleClick = (evt) => {
|
|
225
|
-
debug(`${
|
|
228
|
+
debug(`${_a.name} ⚡️ ${evt?.type}`);
|
|
226
229
|
const { target } = evt;
|
|
227
230
|
if (!(target instanceof HTMLElement))
|
|
228
231
|
return;
|
|
@@ -265,7 +268,7 @@ export class DatePicker extends FormAssociatedBase {
|
|
|
265
268
|
this.dispatchEvent(new CustomEvent('selection', { detail: { selection }, bubbles: true, composed: true }));
|
|
266
269
|
};
|
|
267
270
|
#handleInputPaste = (evt) => {
|
|
268
|
-
debug(`${
|
|
271
|
+
debug(`${_a.name} ⚡️ ${evt?.type}`);
|
|
269
272
|
const { target: input } = evt;
|
|
270
273
|
if (!(input instanceof HTMLInputElement))
|
|
271
274
|
return;
|
|
@@ -287,7 +290,7 @@ export class DatePicker extends FormAssociatedBase {
|
|
|
287
290
|
this.#sendValueToForm();
|
|
288
291
|
};
|
|
289
292
|
#handleInputBeforeinput = (evt) => {
|
|
290
|
-
debug(`${
|
|
293
|
+
debug(`${_a.name} ⚡️ ${evt?.type}`);
|
|
291
294
|
const { target: input } = evt;
|
|
292
295
|
if (!(input instanceof HTMLInputElement))
|
|
293
296
|
return;
|
|
@@ -310,7 +313,7 @@ export class DatePicker extends FormAssociatedBase {
|
|
|
310
313
|
}
|
|
311
314
|
};
|
|
312
315
|
#handleInputKeydown = ({ type, target, key }) => {
|
|
313
|
-
debug(`${
|
|
316
|
+
debug(`${_a.name} ⚡️ ${type}`);
|
|
314
317
|
if (!(target instanceof HTMLInputElement))
|
|
315
318
|
return;
|
|
316
319
|
const input = target;
|
|
@@ -329,25 +332,25 @@ export class DatePicker extends FormAssociatedBase {
|
|
|
329
332
|
this.#inputs[index]?.focus();
|
|
330
333
|
};
|
|
331
334
|
#handleInputFocus = (evt) => {
|
|
332
|
-
debug(`${
|
|
335
|
+
debug(`${_a.name} ⚡️ ${evt?.type}`);
|
|
333
336
|
for (const input of this.#inputs)
|
|
334
337
|
input.classList.toggle('focus', input === evt.target);
|
|
335
338
|
};
|
|
336
339
|
#handleInputBlur = ({ target, type }) => {
|
|
337
|
-
debug(`${
|
|
340
|
+
debug(`${_a.name} ⚡️ ${type}`);
|
|
338
341
|
if (!(target instanceof HTMLInputElement))
|
|
339
342
|
return;
|
|
340
343
|
const input = target;
|
|
341
344
|
if (0 === input.value.length)
|
|
342
345
|
return;
|
|
343
|
-
const finalText = `${clamp(this.value[input.name] ?? '0',
|
|
346
|
+
const finalText = `${clamp(this.value[input.name] ?? '0', _a.#min(input), _a.#max(input))}`.padStart(parseInt(input.getAttribute('maxlength') ?? '0'), '0');
|
|
344
347
|
if (!set(input, 'value', finalText))
|
|
345
348
|
return;
|
|
346
349
|
// this.selection = this.selection
|
|
347
350
|
this.#sendValueToForm();
|
|
348
351
|
};
|
|
349
352
|
#handleInputInput = (evt) => {
|
|
350
|
-
debug(`${
|
|
353
|
+
debug(`${_a.name} ⚡️ ${evt?.type}`);
|
|
351
354
|
this.#sendValueToForm();
|
|
352
355
|
};
|
|
353
356
|
/**
|
|
@@ -458,7 +461,7 @@ export class DatePicker extends FormAssociatedBase {
|
|
|
458
461
|
message = kebabCase(key);
|
|
459
462
|
break;
|
|
460
463
|
}
|
|
461
|
-
debug(`${
|
|
464
|
+
debug(`${_a.name} ⚡️ validity-change`);
|
|
462
465
|
return this.#internals.setValidity(flags, this.#customValidity || message, anchor ?? this.#inputs.at(0));
|
|
463
466
|
};
|
|
464
467
|
setCustomValidity = (message) => {
|
|
@@ -487,3 +490,4 @@ export class DatePicker extends FormAssociatedBase {
|
|
|
487
490
|
this.#sendValueToForm(false);
|
|
488
491
|
}
|
|
489
492
|
}
|
|
493
|
+
_a = DatePicker;
|
|
@@ -4,6 +4,8 @@ import { DetailsBase } from '../namespace-browser/base';
|
|
|
4
4
|
*
|
|
5
5
|
* @example <details is="disclosure-group"><summary><label-view title="Items"></label-view></summary><label-view title="Item 1"></label-view><label-view title="Item 2"></label-view><details is="disclosure-group"><summary><label-view title="Sub-items"></label-view></summary><label-view title="Sub-item 1"></label-view></details></details> — Use the `is` attribute to convert a `details` element into a disclosure group
|
|
6
6
|
*
|
|
7
|
+
* @slot — The default slot
|
|
8
|
+
*
|
|
7
9
|
* @fires is-expanded
|
|
8
10
|
* @fires is-collapsed
|
|
9
11
|
*/
|
|
@@ -7,6 +7,8 @@ const toggleTimers = new WeakMap();
|
|
|
7
7
|
*
|
|
8
8
|
* @example <details is="disclosure-group"><summary><label-view title="Items"></label-view></summary><label-view title="Item 1"></label-view><label-view title="Item 2"></label-view><details is="disclosure-group"><summary><label-view title="Sub-items"></label-view></summary><label-view title="Sub-item 1"></label-view></details></details> — Use the `is` attribute to convert a `details` element into a disclosure group
|
|
9
9
|
*
|
|
10
|
+
* @slot — The default slot
|
|
11
|
+
*
|
|
10
12
|
* @fires is-expanded
|
|
11
13
|
* @fires is-collapsed
|
|
12
14
|
*/
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
var _a;
|
|
1
2
|
import { CleanupRegistry } from '../internal/class/cleanup-registry';
|
|
2
3
|
import { $, debug, onoff } from '../internal/utils';
|
|
3
4
|
import { html } from '../tpl';
|
|
@@ -19,7 +20,7 @@ export class FineTooltip extends HTMLElement {
|
|
|
19
20
|
this.#render(target.getAttribute(attributeName));
|
|
20
21
|
};
|
|
21
22
|
#handleMeasure = ([{ target, borderBoxSize }]) => {
|
|
22
|
-
debug(`${
|
|
23
|
+
debug(`${_a.name} ⚡️ measure`);
|
|
23
24
|
if (target.hasAttribute('closing'))
|
|
24
25
|
return;
|
|
25
26
|
if (!(target instanceof HTMLElement))
|
|
@@ -49,7 +50,7 @@ export class FineTooltip extends HTMLElement {
|
|
|
49
50
|
label.removeAttribute('title');
|
|
50
51
|
};
|
|
51
52
|
connectedCallback() {
|
|
52
|
-
debug(`${
|
|
53
|
+
debug(`${_a.name} ⚡️ connect`);
|
|
53
54
|
this.removeAttribute('closing');
|
|
54
55
|
this.popover = 'manual';
|
|
55
56
|
this.inert = true;
|
|
@@ -58,7 +59,7 @@ export class FineTooltip extends HTMLElement {
|
|
|
58
59
|
this.showPopover();
|
|
59
60
|
}
|
|
60
61
|
disconnectedCallback() {
|
|
61
|
-
debug(`${
|
|
62
|
+
debug(`${_a.name} ⚡️ disconnect`);
|
|
62
63
|
this.#resizeObserver.unobserve(this);
|
|
63
64
|
this.#mutationObserver?.disconnect();
|
|
64
65
|
this.#mutationObserver2?.disconnect();
|
|
@@ -104,3 +105,4 @@ export class FineTooltip extends HTMLElement {
|
|
|
104
105
|
});
|
|
105
106
|
}
|
|
106
107
|
}
|
|
108
|
+
_a = FineTooltip;
|
|
@@ -2,6 +2,8 @@ import { FormBase } from '../namespace-browser/base';
|
|
|
2
2
|
/**
|
|
3
3
|
* @summary A container view that groups controls together for entering data, like a settings screen.
|
|
4
4
|
*
|
|
5
|
+
* @slot — The default slot
|
|
6
|
+
*
|
|
5
7
|
* @attr {hidden} navigation-link-indicator-visibility — Hides accessories like right-arrow-chevron on NavigationLink buttons inside.
|
|
6
8
|
*/
|
|
7
9
|
export declare class FormView extends FormBase {
|
|
@@ -4,6 +4,8 @@ import { FormBase } from '../namespace-browser/base';
|
|
|
4
4
|
/**
|
|
5
5
|
* @summary A container view that groups controls together for entering data, like a settings screen.
|
|
6
6
|
*
|
|
7
|
+
* @slot — The default slot
|
|
8
|
+
*
|
|
7
9
|
* @attr {hidden} navigation-link-indicator-visibility — Hides accessories like right-arrow-chevron on NavigationLink buttons inside.
|
|
8
10
|
*/
|
|
9
11
|
export class FormView extends FormBase {
|
|
@@ -10,6 +10,8 @@ import { debug } from '../internal/utils';
|
|
|
10
10
|
* @attr {@inlineSet} distribution — The main-axis alignment
|
|
11
11
|
* @attr {@inlinePlacementSet} placement — The main-axis alignment
|
|
12
12
|
*
|
|
13
|
+
* @slot — The default slot
|
|
14
|
+
*
|
|
13
15
|
*/
|
|
14
16
|
export class HStack extends HTMLElement {
|
|
15
17
|
constructor() {
|
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
* @attr {hidden} navigation-link-indicator-visibility — Hides accessories like right-arrow-chevron on NavigationLink buttons inside
|
|
5
5
|
* @attr {sidebar} preferred-root-disclosure-style
|
|
6
6
|
*
|
|
7
|
+
* @slot — The default slot
|
|
8
|
+
*
|
|
7
9
|
* @cssprop {length} --list-row-gap — The gap between rows
|
|
8
10
|
* @cssprop {length} --list--media-inner-padding-inline-start — The inline paddint start for each row
|
|
9
11
|
*/
|
|
@@ -6,6 +6,8 @@ import { debug, listActive, onoff } from '../internal/utils';
|
|
|
6
6
|
* @attr {hidden} navigation-link-indicator-visibility — Hides accessories like right-arrow-chevron on NavigationLink buttons inside
|
|
7
7
|
* @attr {sidebar} preferred-root-disclosure-style
|
|
8
8
|
*
|
|
9
|
+
* @slot — The default slot
|
|
10
|
+
*
|
|
9
11
|
* @cssprop {length} --list-row-gap — The gap between rows
|
|
10
12
|
* @cssprop {length} --list--media-inner-padding-inline-start — The inline paddint start for each row
|
|
11
13
|
*/
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
var _a;
|
|
1
2
|
import { CleanupRegistry } from '../internal/class/cleanup-registry';
|
|
2
3
|
import { $, debug, onoff, touchGlass } from '../internal/utils';
|
|
3
4
|
import { queryMorph } from '../morphdom';
|
|
@@ -33,14 +34,14 @@ export class MenuView extends HTMLElement {
|
|
|
33
34
|
this.#shadowRoot.appendChild(document.importNode(this.constructor.template, true));
|
|
34
35
|
}
|
|
35
36
|
attributeChangedCallback(name, oldValue, newValue) {
|
|
36
|
-
debug(`${
|
|
37
|
+
debug(`${_a.name} ⚡️ attr-change [${name}] ("${oldValue}" → "${newValue}")`);
|
|
37
38
|
switch (name) {
|
|
38
39
|
case 'open':
|
|
39
40
|
if (!this.#dialog)
|
|
40
41
|
break;
|
|
41
42
|
this.#dialog.inert = null === newValue;
|
|
42
43
|
if (null === newValue && this.#dialog.open) {
|
|
43
|
-
debug(`${
|
|
44
|
+
debug(`${_a.name} ⚡️ will-close`);
|
|
44
45
|
this.setAttribute('closing', '');
|
|
45
46
|
Promise.allSettled(this.#dialog.getAnimations().map(({ finished }) => finished)).then(() => {
|
|
46
47
|
if (!this.hasAttribute('closing'))
|
|
@@ -50,7 +51,7 @@ export class MenuView extends HTMLElement {
|
|
|
50
51
|
});
|
|
51
52
|
}
|
|
52
53
|
if ('' === newValue && !this.#dialog.open) {
|
|
53
|
-
debug(`${
|
|
54
|
+
debug(`${_a.name} ⚡️ will-open`);
|
|
54
55
|
this.removeAttribute('closing');
|
|
55
56
|
const form = this.#shadowRoot.querySelector('form');
|
|
56
57
|
form.scrollTop = 0;
|
|
@@ -63,14 +64,14 @@ export class MenuView extends HTMLElement {
|
|
|
63
64
|
}
|
|
64
65
|
}
|
|
65
66
|
disconnectedCallback() {
|
|
66
|
-
debug(`${
|
|
67
|
+
debug(`${_a.name} ⚡️ disconnect`);
|
|
67
68
|
const summaryPart = this.#shadowRoot.querySelector('[part*=menu-summary]'), dialogPart = this.#shadowRoot.querySelector('[part*=menu-dialog]');
|
|
68
69
|
summaryPart?.style.removeProperty('anchor-name'); //$.prop('anchor-name', null, summaryPart)
|
|
69
70
|
dialogPart?.style.removeProperty('position-anchor'); //$.prop('position-anchor', null, dialogPart)
|
|
70
71
|
CleanupRegistry.unregister(this);
|
|
71
72
|
}
|
|
72
73
|
connectedCallback() {
|
|
73
|
-
debug(`${
|
|
74
|
+
debug(`${_a.name} ⚡️ connect`);
|
|
74
75
|
this.#dialog = this.#shadowRoot.querySelector('dialog') ?? undefined;
|
|
75
76
|
const trigger = this.#shadowRoot.querySelector('button') ?? undefined;
|
|
76
77
|
CleanupRegistry.register(this, onoff('click', this.#handleTriggerClick, trigger).on());
|
|
@@ -94,7 +95,7 @@ export class MenuView extends HTMLElement {
|
|
|
94
95
|
dialogPart?.style.setProperty('position-anchor', newAnchorName); // $.prop('position-anchor', newAnchorName, dialogPart) //
|
|
95
96
|
}
|
|
96
97
|
#handleDialogClick = ({ type, target }) => {
|
|
97
|
-
debug(`${
|
|
98
|
+
debug(`${_a.name} ⚡️ ${type}`);
|
|
98
99
|
if (!(target instanceof HTMLElement))
|
|
99
100
|
return;
|
|
100
101
|
if (target.matches('dialog'))
|
|
@@ -111,19 +112,20 @@ export class MenuView extends HTMLElement {
|
|
|
111
112
|
// event.stopPropagation() //NOTE: add this only if not nested, disposes all nicely if ommited
|
|
112
113
|
};
|
|
113
114
|
#handleTriggerClick = (evt) => {
|
|
114
|
-
debug(`${
|
|
115
|
+
debug(`${_a.name} ⚡️ ${evt?.type}`);
|
|
115
116
|
this.toggleAttribute('open', true);
|
|
116
117
|
};
|
|
117
118
|
// intercept to modify open attr
|
|
118
119
|
#handleDialogCancel = (evt) => {
|
|
119
|
-
debug(`${
|
|
120
|
+
debug(`${_a.name} ⚡️ ${evt?.type}`);
|
|
120
121
|
if (!evt.cancelable)
|
|
121
122
|
return;
|
|
122
123
|
evt.preventDefault();
|
|
123
124
|
this.toggleAttribute('open', false);
|
|
124
125
|
};
|
|
125
126
|
#handleDialogClose = (evt) => {
|
|
126
|
-
debug(`${
|
|
127
|
+
debug(`${_a.name} ⚡️ ${evt?.type}`);
|
|
127
128
|
this.toggleAttribute('open', this.#shadowRoot.querySelector('dialog')?.open ?? false);
|
|
128
129
|
};
|
|
129
130
|
}
|
|
131
|
+
_a = MenuView;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
var _a;
|
|
1
2
|
import { CleanupRegistry } from '../internal/class/cleanup-registry';
|
|
2
3
|
import { CSSStyleObserver } from '../internal/class/css-style-observer';
|
|
3
4
|
import { add, debug, frame, onoff, slowHideShow, timeout } from '../internal/utils';
|
|
@@ -71,6 +72,7 @@ function isIntersectingWithContainer(el, container, rootMargin = '0px 0px 0px 0p
|
|
|
71
72
|
* @attr {boolean} padding
|
|
72
73
|
* @attr {boolean} navigation-bar-auto-hide
|
|
73
74
|
*
|
|
75
|
+
* @slot — The default slot
|
|
74
76
|
*/
|
|
75
77
|
export class NavigationLargeTitle extends HTMLElement {
|
|
76
78
|
#styleObserver;
|
|
@@ -81,13 +83,13 @@ export class NavigationLargeTitle extends HTMLElement {
|
|
|
81
83
|
super();
|
|
82
84
|
}
|
|
83
85
|
disconnectedCallback() {
|
|
84
|
-
debug(`${
|
|
86
|
+
debug(`${_a.name} ⚡️ disconnect`);
|
|
85
87
|
this.#clearScrollState();
|
|
86
88
|
this.#styleObserver?.disconnect();
|
|
87
89
|
CleanupRegistry.unregister(this);
|
|
88
90
|
}
|
|
89
91
|
connectedCallback() {
|
|
90
|
-
debug(`${
|
|
92
|
+
debug(`${_a.name} ⚡️ connect`);
|
|
91
93
|
const root = this.closest('scroll-view') ?? undefined;
|
|
92
94
|
if (!root)
|
|
93
95
|
return;
|
|
@@ -110,7 +112,7 @@ export class NavigationLargeTitle extends HTMLElement {
|
|
|
110
112
|
});
|
|
111
113
|
}
|
|
112
114
|
#handleStyleChange = () => {
|
|
113
|
-
debug(`${
|
|
115
|
+
debug(`${_a.name} ⚡️ style`);
|
|
114
116
|
const root = this.closest('scroll-view') ?? undefined;
|
|
115
117
|
if (!root)
|
|
116
118
|
return;
|
|
@@ -155,7 +157,7 @@ export class NavigationLargeTitle extends HTMLElement {
|
|
|
155
157
|
// this.#applySlowness(root, isIntersecting)
|
|
156
158
|
// }
|
|
157
159
|
#handleIntersect = (entries, { root }) => {
|
|
158
|
-
debug(`${
|
|
160
|
+
debug(`${_a.name} ⚡️ intersect (${entries?.at(0)?.isIntersecting})`);
|
|
159
161
|
if (!(root instanceof HTMLElement))
|
|
160
162
|
return;
|
|
161
163
|
for (const { isIntersecting } of entries)
|
|
@@ -179,3 +181,4 @@ export class NavigationLargeTitle extends HTMLElement {
|
|
|
179
181
|
slowHideShow(isIntersecting ? 'show' : 'hide', this);
|
|
180
182
|
};
|
|
181
183
|
}
|
|
184
|
+
_a = NavigationLargeTitle;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { NavigationView } from '../internal/class/navigation-view';
|
|
2
2
|
/**
|
|
3
3
|
* @summary A container view with two or three side-by-side screens, where what the user chooses in the left screen changes what appears in the next screen.
|
|
4
|
+
*
|
|
5
|
+
* @slot — The default slot
|
|
4
6
|
*/
|
|
5
7
|
export declare class NavigationSplitView extends NavigationView {
|
|
6
8
|
constructor();
|
|
@@ -2,6 +2,8 @@ import { NavigationView } from '../internal/class/navigation-view';
|
|
|
2
2
|
import { debug } from '../internal/utils';
|
|
3
3
|
/**
|
|
4
4
|
* @summary A container view with two or three side-by-side screens, where what the user chooses in the left screen changes what appears in the next screen.
|
|
5
|
+
*
|
|
6
|
+
* @slot — The default slot
|
|
5
7
|
*/
|
|
6
8
|
export class NavigationSplitView extends NavigationView {
|
|
7
9
|
constructor() {
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { NavigationView } from '../internal/class/navigation-view';
|
|
2
2
|
/**
|
|
3
3
|
* @summary A container view that shows a main screen and lets the user open other screens on top of it.
|
|
4
|
+
*
|
|
5
|
+
* @slot — The default slot
|
|
4
6
|
*/
|
|
5
7
|
export declare class NavigationStack extends NavigationView {
|
|
6
8
|
constructor();
|
|
@@ -2,6 +2,8 @@ import { NavigationView } from '../internal/class/navigation-view';
|
|
|
2
2
|
import { debug } from '../internal/utils';
|
|
3
3
|
/**
|
|
4
4
|
* @summary A container view that shows a main screen and lets the user open other screens on top of it.
|
|
5
|
+
*
|
|
6
|
+
* @slot — The default slot
|
|
5
7
|
*/
|
|
6
8
|
export class NavigationStack extends NavigationView {
|
|
7
9
|
constructor() {
|