@swiftwc/ui 0.0.0-dev.46 → 0.0.0-dev.47
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/client/index.js +4 -4
- package/generated/components/alert-dialog.js +5 -5
- package/generated/components/bordered-button.js +1 -1
- package/generated/components/bordered-prominent-button.js +1 -1
- package/generated/components/borderless-button.js +1 -1
- package/generated/components/confirmation-dialog.js +5 -5
- package/generated/components/content-unavailable-view.d.ts +1 -1
- package/generated/components/content-unavailable-view.js +8 -8
- package/generated/components/date-picker.d.ts +2 -2
- package/generated/components/date-picker.js +24 -24
- package/generated/components/disclosure-group.js +3 -4
- package/generated/components/fine-tooltip.js +2 -2
- package/generated/components/glass-button.js +1 -1
- package/generated/components/glass-prominent-button.js +1 -1
- package/generated/components/label-view.d.ts +1 -1
- package/generated/components/label-view.js +8 -8
- package/generated/components/menu-view.d.ts +1 -1
- package/generated/components/menu-view.js +40 -40
- package/generated/components/navigation-split-view.d.ts +1 -1
- package/generated/components/navigation-split-view.js +5 -5
- package/generated/components/navigation-stack.d.ts +1 -1
- package/generated/components/navigation-stack.js +10 -10
- package/generated/components/navigation-title.d.ts +1 -1
- package/generated/components/navigation-title.js +31 -25
- package/generated/components/picker-view.d.ts +2 -2
- package/generated/components/picker-view.js +35 -35
- package/generated/components/progress-view.d.ts +1 -1
- package/generated/components/progress-view.js +15 -15
- package/generated/components/scroll-view.d.ts +1 -1
- package/generated/components/scroll-view.js +60 -59
- package/generated/components/search-view.js +1 -1
- package/generated/components/section-view.d.ts +1 -1
- package/generated/components/section-view.js +23 -23
- package/generated/components/sidebar-toggle.js +2 -2
- package/generated/components/sidebar-view.js +2 -2
- package/generated/components/sticky-container.js +1 -1
- package/generated/components/tab-bar.js +2 -2
- package/generated/components/tab-item.js +3 -4
- package/generated/components/tab-view.js +1 -1
- package/generated/components/table-view.js +2 -2
- package/generated/components/text-field.d.ts +2 -2
- package/generated/components/text-field.js +16 -16
- package/generated/components/tool-bar-item.d.ts +1 -1
- package/generated/components/tool-bar-item.js +18 -18
- package/generated/internal/class/navigation-view.d.ts +1 -1
- package/generated/internal/class/navigation-view.js +32 -39
- package/generated/internal/decorators/index.d.ts +2 -0
- package/generated/internal/decorators/index.js +2 -0
- package/generated/internal/decorators/microtask-on-connected.d.ts +39 -0
- package/generated/internal/decorators/microtask-on-connected.js +67 -0
- package/generated/internal/utils/list-active.js +5 -5
- package/generated/namespace-browser/base.d.ts +5 -5
- package/generated/namespace-browser/base.js +32 -32
- package/package.json +1 -1
- package/web-components.html-data/en.json +1 -0
|
@@ -1,39 +1,31 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var NavigationTitle_1;
|
|
8
|
+
import { microtaskOnConnected } from '../internal/decorators';
|
|
1
9
|
import { $, devFlags } from '../internal/utils';
|
|
2
|
-
|
|
10
|
+
let NavigationTitle = NavigationTitle_1 = class NavigationTitle extends HTMLElement {
|
|
3
11
|
static get observedAttributes() {
|
|
4
12
|
return ['value', 'subtitle'];
|
|
5
13
|
}
|
|
6
14
|
constructor() {
|
|
7
15
|
super();
|
|
8
16
|
}
|
|
9
|
-
|
|
17
|
+
attributeChangedCallback(name, oldValue, newValue) {
|
|
10
18
|
if (devFlags.debug)
|
|
11
|
-
console.debug(`${
|
|
19
|
+
console.debug(`${NavigationTitle_1.name} ⚡️ attr-change [${name}] ("${oldValue}" → "${newValue}")`);
|
|
20
|
+
this.#render(this.getAttribute('value'), this.getAttribute('subtitle'));
|
|
12
21
|
}
|
|
13
|
-
|
|
22
|
+
disconnectedCallback() {
|
|
14
23
|
if (devFlags.debug)
|
|
15
|
-
console.debug(`${
|
|
24
|
+
console.debug(`${NavigationTitle_1.name} ⚡️ disconnect`);
|
|
16
25
|
}
|
|
17
|
-
|
|
26
|
+
connectedCallback() {
|
|
18
27
|
if (devFlags.debug)
|
|
19
|
-
console.debug(`${
|
|
20
|
-
const sibling = this.closest('scroll-view') ?? undefined;
|
|
21
|
-
switch (name) {
|
|
22
|
-
case 'value':
|
|
23
|
-
if (null === newValue)
|
|
24
|
-
sibling?.removeAttribute('navigation-inline-title');
|
|
25
|
-
else
|
|
26
|
-
sibling?.setAttribute('navigation-inline-title', newValue);
|
|
27
|
-
this.#render(newValue, this.getAttribute('subtitle'));
|
|
28
|
-
break;
|
|
29
|
-
case 'subtitle':
|
|
30
|
-
if (null === newValue)
|
|
31
|
-
sibling?.removeAttribute('navigation-inline-subtitle');
|
|
32
|
-
else
|
|
33
|
-
sibling?.setAttribute('navigation-inline-subtitle', newValue);
|
|
34
|
-
this.#render(this.getAttribute('value'), newValue);
|
|
35
|
-
break;
|
|
36
|
-
}
|
|
28
|
+
console.debug(`${NavigationTitle_1.name} ⚡️ connect`);
|
|
37
29
|
}
|
|
38
30
|
#render = (title, subtitle) => {
|
|
39
31
|
const titleTemplate = `<label-view line-limit="1" truncation-mode="tail" font="headline"></label-view>`, subtitleTemplate = `<label-view line-limit="1" truncation-mode="tail" foreground="secondary" font="callout"></label-view>`, vStactTemplate = `<v-stack spacing="0" alignment="fill">${titleTemplate}${subtitleTemplate}</v-stack>`;
|
|
@@ -49,4 +41,18 @@ export class NavigationTitle extends HTMLElement {
|
|
|
49
41
|
else
|
|
50
42
|
subtitleLabel?.removeAttribute('title');
|
|
51
43
|
};
|
|
52
|
-
}
|
|
44
|
+
};
|
|
45
|
+
NavigationTitle = NavigationTitle_1 = __decorate([
|
|
46
|
+
microtaskOnConnected((el) => {
|
|
47
|
+
const sibling = el.closest('scroll-view'), value = el.getAttribute('value'), subtitle = el.getAttribute('subtitle');
|
|
48
|
+
if (null === value)
|
|
49
|
+
sibling?.removeAttribute('navigation-inline-title');
|
|
50
|
+
else
|
|
51
|
+
sibling?.setAttribute('navigation-inline-title', value);
|
|
52
|
+
if (null === subtitle)
|
|
53
|
+
sibling?.removeAttribute('navigation-inline-subtitle');
|
|
54
|
+
else
|
|
55
|
+
sibling?.setAttribute('navigation-inline-subtitle', subtitle);
|
|
56
|
+
})
|
|
57
|
+
], NavigationTitle);
|
|
58
|
+
export { NavigationTitle };
|
|
@@ -14,9 +14,9 @@ export declare class PickerView extends FormAssociatedBase {
|
|
|
14
14
|
static get observedAttributes(): string[];
|
|
15
15
|
get template(): DocumentFragment;
|
|
16
16
|
constructor();
|
|
17
|
-
connectedCallback(): void;
|
|
18
|
-
disconnectedCallback(): void;
|
|
19
17
|
attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
|
|
18
|
+
disconnectedCallback(): void;
|
|
19
|
+
connectedCallback(): void;
|
|
20
20
|
get pickerStyle(): PickerStyle;
|
|
21
21
|
get name(): string;
|
|
22
22
|
setValidity: (flags?: ValidityStateFlags, message?: string, anchor?: HTMLElement) => void;
|
|
@@ -90,26 +90,26 @@ export class PickerView extends FormAssociatedBase {
|
|
|
90
90
|
</v-stack>
|
|
91
91
|
</sticky-container>`);
|
|
92
92
|
const searchInput = sv?.querySelector('input'); // FIXME: compoennt is=search-view??
|
|
93
|
-
searchInput?.addEventListener('focus', (
|
|
93
|
+
searchInput?.addEventListener('focus', ({ target }) => {
|
|
94
94
|
if (this.#spawn)
|
|
95
95
|
this.dispatchEvent(new CustomEvent('picker:searchfocus', {
|
|
96
|
-
detail: { element: this.#spawn, search:
|
|
96
|
+
detail: { element: this.#spawn, search: target instanceof HTMLInputElement ? target.value : '' },
|
|
97
97
|
bubbles: true,
|
|
98
98
|
composed: true,
|
|
99
99
|
}));
|
|
100
100
|
});
|
|
101
|
-
searchInput?.addEventListener('blur', (
|
|
101
|
+
searchInput?.addEventListener('blur', ({ target }) => {
|
|
102
102
|
if (this.#spawn)
|
|
103
103
|
this.dispatchEvent(new CustomEvent('picker:searchblur', {
|
|
104
|
-
detail: { element: this.#spawn, search:
|
|
104
|
+
detail: { element: this.#spawn, search: target instanceof HTMLInputElement ? target.value : '' },
|
|
105
105
|
bubbles: true,
|
|
106
106
|
composed: true,
|
|
107
107
|
}));
|
|
108
108
|
});
|
|
109
|
-
searchInput?.addEventListener('input', (
|
|
109
|
+
searchInput?.addEventListener('input', ({ target }) => {
|
|
110
110
|
if (this.#spawn)
|
|
111
111
|
this.dispatchEvent(new CustomEvent('picker:searchinput', {
|
|
112
|
-
detail: { element: this.#spawn, search:
|
|
112
|
+
detail: { element: this.#spawn, search: target instanceof HTMLInputElement ? target.value : '' },
|
|
113
113
|
bubbles: true,
|
|
114
114
|
composed: true,
|
|
115
115
|
}));
|
|
@@ -120,7 +120,7 @@ export class PickerView extends FormAssociatedBase {
|
|
|
120
120
|
evt.stopImmediatePropagation();
|
|
121
121
|
evt.preventDefault();
|
|
122
122
|
const { target } = evt;
|
|
123
|
-
if (!(target instanceof HTMLElement
|
|
123
|
+
if (!(target instanceof HTMLElement))
|
|
124
124
|
return;
|
|
125
125
|
const { component } = new NavigationPath(target)?.hydrate();
|
|
126
126
|
await startViewTransition(target, 'backwards', async () => {
|
|
@@ -154,7 +154,7 @@ export class PickerView extends FormAssociatedBase {
|
|
|
154
154
|
evt.stopImmediatePropagation();
|
|
155
155
|
evt.preventDefault();
|
|
156
156
|
const { target } = evt;
|
|
157
|
-
if (!(target instanceof HTMLElement
|
|
157
|
+
if (!(target instanceof HTMLElement))
|
|
158
158
|
return;
|
|
159
159
|
const newPage = this.#spawnPage('body-view', this.hasAttribute('searchable'), el.dataset.label, el);
|
|
160
160
|
if (!newPage)
|
|
@@ -358,28 +358,6 @@ export class PickerView extends FormAssociatedBase {
|
|
|
358
358
|
super();
|
|
359
359
|
this.#shadowRoot = this.attachShadow({ mode: 'closed' });
|
|
360
360
|
}
|
|
361
|
-
connectedCallback() {
|
|
362
|
-
if (devFlags.debug)
|
|
363
|
-
console.debug(`${_a.name} ⚡️ connect`);
|
|
364
|
-
CleanupRegistry.register(this, onoff('localechange', () => {
|
|
365
|
-
this.#renderSlotted([]);
|
|
366
|
-
}, I18n.on).on());
|
|
367
|
-
CleanupRegistry.register(this, onoff('click', this.#handleClick, this).on());
|
|
368
|
-
if (!this.hasAttribute(this.constructor.ATTR.PICKER_STYLE))
|
|
369
|
-
this.#render(); // will be picked up by attr-change!
|
|
370
|
-
// finally
|
|
371
|
-
if (!this.hasAttribute('selection'))
|
|
372
|
-
return;
|
|
373
|
-
this.#selection = this.getAttribute('selection') ?? '';
|
|
374
|
-
this.#sendValueToForm(false);
|
|
375
|
-
}
|
|
376
|
-
disconnectedCallback() {
|
|
377
|
-
if (devFlags.debug)
|
|
378
|
-
console.debug(`${_a.name} ⚡️ disconnect`);
|
|
379
|
-
CleanupRegistry.unregister(this);
|
|
380
|
-
this.#validityObservers.unobserveAll();
|
|
381
|
-
this.#observers.unobserveAll();
|
|
382
|
-
}
|
|
383
361
|
attributeChangedCallback(name, oldValue, newValue) {
|
|
384
362
|
if (devFlags.debug)
|
|
385
363
|
console.debug(`${_a.name} ⚡️ attr-change [${name}] ("${oldValue}" → "${newValue}")`);
|
|
@@ -410,6 +388,28 @@ export class PickerView extends FormAssociatedBase {
|
|
|
410
388
|
break;
|
|
411
389
|
}
|
|
412
390
|
}
|
|
391
|
+
disconnectedCallback() {
|
|
392
|
+
if (devFlags.debug)
|
|
393
|
+
console.debug(`${_a.name} ⚡️ disconnect`);
|
|
394
|
+
CleanupRegistry.unregister(this);
|
|
395
|
+
this.#validityObservers.unobserveAll();
|
|
396
|
+
this.#observers.unobserveAll();
|
|
397
|
+
}
|
|
398
|
+
connectedCallback() {
|
|
399
|
+
if (devFlags.debug)
|
|
400
|
+
console.debug(`${_a.name} ⚡️ connect`);
|
|
401
|
+
CleanupRegistry.register(this, onoff('localechange', () => {
|
|
402
|
+
this.#renderSlotted([]);
|
|
403
|
+
}, I18n.on).on());
|
|
404
|
+
CleanupRegistry.register(this, onoff('click', this.#handleClick, this).on());
|
|
405
|
+
if (!this.hasAttribute(this.constructor.ATTR.PICKER_STYLE))
|
|
406
|
+
this.#render(); // skip if already rendered by attr-change during upgrade!
|
|
407
|
+
// finally
|
|
408
|
+
if (!this.hasAttribute('selection'))
|
|
409
|
+
return;
|
|
410
|
+
this.#selection = this.getAttribute('selection') ?? '';
|
|
411
|
+
this.#sendValueToForm(false);
|
|
412
|
+
}
|
|
413
413
|
get pickerStyle() {
|
|
414
414
|
const attr = this.constructor.ATTR.PICKER_STYLE;
|
|
415
415
|
return pickerStyles.includes(this.getAttribute(attr) ?? '') ? this.getAttribute(attr) : 'automatic';
|
|
@@ -459,7 +459,7 @@ export class PickerView extends FormAssociatedBase {
|
|
|
459
459
|
#handleTriggerClick = async ({ type, target }) => {
|
|
460
460
|
if (devFlags.debug)
|
|
461
461
|
console.debug(`${_a.name} ⚡️ ${type}`);
|
|
462
|
-
if (!(target instanceof HTMLElement
|
|
462
|
+
if (!(target instanceof HTMLElement))
|
|
463
463
|
return;
|
|
464
464
|
this.#spawn?.remove?.();
|
|
465
465
|
const level0 = this.#spawnPage('sheet' === this.pickerStyle ? 'sheet-view' : 'body-view', this.hasAttribute('searchable'), this.getAttribute('label'));
|
|
@@ -478,7 +478,7 @@ export class PickerView extends FormAssociatedBase {
|
|
|
478
478
|
evt.stopImmediatePropagation();
|
|
479
479
|
evt.preventDefault();
|
|
480
480
|
const { currentTarget: btn } = evt;
|
|
481
|
-
if (!(btn instanceof HTMLElement
|
|
481
|
+
if (!(btn instanceof HTMLElement))
|
|
482
482
|
return;
|
|
483
483
|
// const btn = target.closest('button')
|
|
484
484
|
// if (!btn) return
|
|
@@ -499,7 +499,7 @@ export class PickerView extends FormAssociatedBase {
|
|
|
499
499
|
#handleClick({ type, target }) {
|
|
500
500
|
if (devFlags.debug)
|
|
501
501
|
console.debug(`${_a.name} ⚡️ ${type}`);
|
|
502
|
-
if (!(target instanceof HTMLElement
|
|
502
|
+
if (!(target instanceof HTMLElement))
|
|
503
503
|
return;
|
|
504
504
|
const btn = target.closest('button');
|
|
505
505
|
if (!btn)
|
|
@@ -512,7 +512,7 @@ export class PickerView extends FormAssociatedBase {
|
|
|
512
512
|
#handleValiditiesSlotchange = ({ type, target: slot }) => {
|
|
513
513
|
if (devFlags.debug)
|
|
514
514
|
console.debug(`${_a.name} ⚡️ ${type}`);
|
|
515
|
-
if (!(slot instanceof HTMLSlotElement
|
|
515
|
+
if (!(slot instanceof HTMLSlotElement))
|
|
516
516
|
return;
|
|
517
517
|
const assigned = slot.assignedElements();
|
|
518
518
|
this.#validityObservers.syncObservations(assigned, ['value', 'label']);
|
|
@@ -522,7 +522,7 @@ export class PickerView extends FormAssociatedBase {
|
|
|
522
522
|
#handleListSlotchange = ({ type, target: slot }) => {
|
|
523
523
|
if (devFlags.debug)
|
|
524
524
|
console.debug(`${_a.name} ⚡️ ${type}`);
|
|
525
|
-
if (!(slot instanceof HTMLSlotElement
|
|
525
|
+
if (!(slot instanceof HTMLSlotElement))
|
|
526
526
|
return;
|
|
527
527
|
const assigned = slot.assignedElements();
|
|
528
528
|
this.#observers.syncObservations(assigned);
|
|
@@ -7,7 +7,7 @@ export declare class ProgressView extends HTMLElement {
|
|
|
7
7
|
get progressViewStyle(): "circular" | "linear";
|
|
8
8
|
get template(): DocumentFragment;
|
|
9
9
|
constructor();
|
|
10
|
+
attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
|
|
10
11
|
disconnectedCallback(): void;
|
|
11
12
|
connectedCallback(): void;
|
|
12
|
-
attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
|
|
13
13
|
}
|
|
@@ -54,21 +54,6 @@ export class ProgressView extends HTMLElement {
|
|
|
54
54
|
super();
|
|
55
55
|
this.#shadowRoot = this.attachShadow({ mode: 'closed' });
|
|
56
56
|
}
|
|
57
|
-
disconnectedCallback() {
|
|
58
|
-
if (devFlags.debug)
|
|
59
|
-
console.debug(`${_a.name} ⚡️ disconnect`);
|
|
60
|
-
CleanupRegistry.unregister(this);
|
|
61
|
-
}
|
|
62
|
-
connectedCallback() {
|
|
63
|
-
if (devFlags.debug)
|
|
64
|
-
console.debug(`${_a.name} ⚡️ connect`);
|
|
65
|
-
this.inert = true;
|
|
66
|
-
this.#cssStyleObserver = new CSSStyleObserver({
|
|
67
|
-
properties: ['--progress-view-style-index'],
|
|
68
|
-
});
|
|
69
|
-
this.#cssStyleObserver.observe(this, this.#handleStyleChange);
|
|
70
|
-
Snapshot.waitReady.then(() => self.requestAnimationFrame(this.#handleStyleChange));
|
|
71
|
-
}
|
|
72
57
|
attributeChangedCallback(name, oldValue, newValue) {
|
|
73
58
|
if (devFlags.debug)
|
|
74
59
|
console.debug(`${_a.name} ⚡️ attr-change [${name}] ("${oldValue}" → "${newValue}")`);
|
|
@@ -94,6 +79,21 @@ export class ProgressView extends HTMLElement {
|
|
|
94
79
|
}
|
|
95
80
|
}
|
|
96
81
|
}
|
|
82
|
+
disconnectedCallback() {
|
|
83
|
+
if (devFlags.debug)
|
|
84
|
+
console.debug(`${_a.name} ⚡️ disconnect`);
|
|
85
|
+
CleanupRegistry.unregister(this);
|
|
86
|
+
}
|
|
87
|
+
connectedCallback() {
|
|
88
|
+
if (devFlags.debug)
|
|
89
|
+
console.debug(`${_a.name} ⚡️ connect`);
|
|
90
|
+
this.inert = true;
|
|
91
|
+
this.#cssStyleObserver = new CSSStyleObserver({
|
|
92
|
+
properties: ['--progress-view-style-index'],
|
|
93
|
+
});
|
|
94
|
+
this.#cssStyleObserver.observe(this, this.#handleStyleChange);
|
|
95
|
+
Snapshot.waitReady.then(() => self.requestAnimationFrame(this.#handleStyleChange));
|
|
96
|
+
}
|
|
97
97
|
#handleStyleChange = () => {
|
|
98
98
|
if (devFlags.debug)
|
|
99
99
|
console.debug(`${_a.name} ⚡️ style`);
|
|
@@ -3,8 +3,8 @@ export declare class ScrollView extends HTMLElement {
|
|
|
3
3
|
static get observedAttributes(): string[];
|
|
4
4
|
static get template(): DocumentFragment;
|
|
5
5
|
constructor();
|
|
6
|
+
attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
|
|
6
7
|
disconnectedCallback(): void;
|
|
7
8
|
connectedCallback(): void;
|
|
8
|
-
attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
|
|
9
9
|
centerScrollToElement(child: Element): void;
|
|
10
10
|
}
|
|
@@ -40,6 +40,26 @@ export class ScrollView extends HTMLElement {
|
|
|
40
40
|
this.#slots = new Map();
|
|
41
41
|
});
|
|
42
42
|
}
|
|
43
|
+
attributeChangedCallback(name, oldValue, newValue) {
|
|
44
|
+
if (devFlags.debug)
|
|
45
|
+
console.debug(`${_a.name} ⚡️ attr-change [${name}] ("${oldValue}" → "${newValue}")`);
|
|
46
|
+
switch (name) {
|
|
47
|
+
case 'navigation-inline-title':
|
|
48
|
+
this.#renderNavTitle(newValue, this.getAttribute('navigation-inline-subtitle'));
|
|
49
|
+
break;
|
|
50
|
+
case 'navigation-inline-subtitle':
|
|
51
|
+
this.#renderNavTitle(this.getAttribute('navigation-inline-title'), newValue);
|
|
52
|
+
break;
|
|
53
|
+
case 'navigation-title':
|
|
54
|
+
//
|
|
55
|
+
break;
|
|
56
|
+
case 'navigation-bar-title-display-mode':
|
|
57
|
+
if (oldValue === newValue)
|
|
58
|
+
break;
|
|
59
|
+
this.#syncSibling(`${oldValue}${newValue}`);
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
43
63
|
disconnectedCallback() {
|
|
44
64
|
if (devFlags.debug)
|
|
45
65
|
console.debug(`${_a.name} ⚡️ disconnect`);
|
|
@@ -72,38 +92,23 @@ export class ScrollView extends HTMLElement {
|
|
|
72
92
|
// })
|
|
73
93
|
// })
|
|
74
94
|
}
|
|
75
|
-
|
|
76
|
-
if (
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
case 'navigation-title':
|
|
86
|
-
//
|
|
87
|
-
break;
|
|
88
|
-
case 'navigation-bar-title-display-mode':
|
|
89
|
-
if (oldValue === newValue)
|
|
90
|
-
break;
|
|
91
|
-
if (this.closest('[hidden]'))
|
|
92
|
-
break; // iREPAINT ALERT! if (0 === this.offsetHeight + this.offsetWidth) break
|
|
93
|
-
if (!this.#isMidScroll)
|
|
94
|
-
break;
|
|
95
|
-
const title = this.#slots?.get('top-bar-principal')?.assignedElements({ flatten: true })?.at(0);
|
|
96
|
-
slowHideShow('largeinline' === `${oldValue}${newValue}` ? 'show' : 'hide', title);
|
|
97
|
-
break;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
95
|
+
#syncSibling = (comp) => {
|
|
96
|
+
if (!this.isConnected)
|
|
97
|
+
return;
|
|
98
|
+
if (this.closest('[hidden]'))
|
|
99
|
+
return; // iREPAINT ALERT! if (0 === this.offsetHeight + this.offsetWidth) break
|
|
100
|
+
if (!this.#isMidScroll)
|
|
101
|
+
return;
|
|
102
|
+
const title = this.#slots?.get('top-bar-principal')?.assignedElements({ flatten: true })?.at(0);
|
|
103
|
+
slowHideShow('largeinline' === `${comp}` ? 'show' : 'hide', title);
|
|
104
|
+
};
|
|
100
105
|
#handleScroll = ({ target, type }) => {
|
|
101
106
|
if (devFlags.debug)
|
|
102
107
|
console.debug(`${_a.name} ⚡️ ${type}`);
|
|
103
108
|
if (!this.#isMidScroll)
|
|
104
109
|
this.#isMidScroll = true;
|
|
105
110
|
// if (this.#stopRecordingScrollTop) return
|
|
106
|
-
if (!(target instanceof HTMLElement
|
|
111
|
+
if (!(target instanceof HTMLElement))
|
|
107
112
|
return;
|
|
108
113
|
this.#lastScrollTop = target.scrollTop;
|
|
109
114
|
};
|
|
@@ -131,42 +136,38 @@ export class ScrollView extends HTMLElement {
|
|
|
131
136
|
// this.#stopRecordingScrollTop = false
|
|
132
137
|
this.#beforeTabSwapLastScrolltop = undefined;
|
|
133
138
|
};
|
|
134
|
-
#handleTabReveal = ({ type, target }) => {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
// // // this.style.removeProperty('opacity')
|
|
163
|
-
// // })
|
|
164
|
-
// })
|
|
165
|
-
};
|
|
139
|
+
// #handleTabReveal = ({ type, target }: CustomEvent<TabDetail>) => {
|
|
140
|
+
// if (devFlags.debug) console.debug(`${ScrollView.name} ⚡️ ${type}`)
|
|
141
|
+
// if (!(target instanceof HTMLElement)) return
|
|
142
|
+
// if (!target.contains(this)) return
|
|
143
|
+
// if (this.closest('[hidden]')) return
|
|
144
|
+
// // console.log(888, this.#beforeTabSwapLastScrolltop, this.#lastScrollTop)
|
|
145
|
+
// // this.style.setProperty('clip-path', 'inset(50%)')
|
|
146
|
+
// // this.style.setProperty('opacity', '0.001')
|
|
147
|
+
// // this.style.opacity = '0.001'
|
|
148
|
+
// // console.log(99, this.style.opacity)
|
|
149
|
+
// // self.requestAnimationFrame(() => {
|
|
150
|
+
// // if (undefined === this.#beforeTabSwapLastScrolltop) return
|
|
151
|
+
// // if (this.#beforeTabSwapLastScrolltop === this.#lastScrollTop) return
|
|
152
|
+
// // this.#stopRecordingScrollTop = true
|
|
153
|
+
// // // console.log(999, this.#beforeTabSwapLastScrolltop)
|
|
154
|
+
// // // console.log(999, this, this.#beforeTabSwapLastScrolltop, this.#lastScrollTop)
|
|
155
|
+
// // this.scrollTop = this.#beforeTabSwapLastScrolltop
|
|
156
|
+
// // // this.scrollTo({
|
|
157
|
+
// // // top: this.#beforeTabSwapLastScrolltop,
|
|
158
|
+
// // // behavior: 'instant',
|
|
159
|
+
// // // }) //
|
|
160
|
+
// // this.#stopRecordingScrollTop = false
|
|
161
|
+
// // this.#beforeTabSwapLastScrolltop = undefined
|
|
162
|
+
// // // self.requestAnimationFrame(() => {
|
|
163
|
+
// // // // this.style.removeProperty('opacity')
|
|
164
|
+
// // // })
|
|
165
|
+
// // })
|
|
166
|
+
// }
|
|
166
167
|
#handleTabBeforeswap = ({ type, target }) => {
|
|
167
168
|
if (devFlags.debug)
|
|
168
169
|
console.debug(`${_a.name} ⚡️ ${type}`);
|
|
169
|
-
if (!(target instanceof HTMLElement
|
|
170
|
+
if (!(target instanceof HTMLElement))
|
|
170
171
|
return;
|
|
171
172
|
if (!target.contains(this))
|
|
172
173
|
return;
|
|
@@ -22,7 +22,7 @@ export class SearchView extends InputBase {
|
|
|
22
22
|
static polyfillAttributeChangedCallback([{ attributeName, target, oldValue }]) {
|
|
23
23
|
if (devFlags.debug)
|
|
24
24
|
console.debug(`${SearchView.name} ⚡️ attr-change [${attributeName}] ("${oldValue}" → "${target.getAttribute(attributeName ?? '')}")`);
|
|
25
|
-
const node = target instanceof HTMLInputElement
|
|
25
|
+
const node = target instanceof HTMLInputElement;
|
|
26
26
|
if (!node)
|
|
27
27
|
return;
|
|
28
28
|
//
|
|
@@ -3,7 +3,7 @@ export declare class SectionView extends HTMLElement {
|
|
|
3
3
|
static get observedAttributes(): string[];
|
|
4
4
|
static get template(): DocumentFragment;
|
|
5
5
|
constructor();
|
|
6
|
+
attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
|
|
6
7
|
disconnectedCallback(): void;
|
|
7
8
|
connectedCallback(): void;
|
|
8
|
-
attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
|
|
9
9
|
}
|
|
@@ -31,29 +31,6 @@ export class SectionView extends HTMLElement {
|
|
|
31
31
|
// this.#sentinel = this.#shadowRoot.querySelector('.sticky-sentinel') ?? undefined
|
|
32
32
|
// })
|
|
33
33
|
}
|
|
34
|
-
disconnectedCallback() {
|
|
35
|
-
if (devFlags.debug)
|
|
36
|
-
console.debug(`${SectionView.name} ⚡️ disconnect`);
|
|
37
|
-
// if (this.#sentinel) this.#observer?.unobserve(this.#sentinel)
|
|
38
|
-
// this.#observer?.unobserve(this)
|
|
39
|
-
}
|
|
40
|
-
connectedCallback() {
|
|
41
|
-
if (devFlags.debug)
|
|
42
|
-
console.debug(`${SectionView.name} ⚡️ connect`);
|
|
43
|
-
// this.#sibling = this.closest('scroll-view') ?? undefined
|
|
44
|
-
// Snapshot.waitReady.then(() => {
|
|
45
|
-
// if (!(await frame(this))) return // NOTE: Required or BREAKS transitions // self.requestAnimationFrame(() => {
|
|
46
|
-
// const blockSizeProp = getComputedStyle(this).getPropertyValue('--navigation-bar-block-size') || '0', //`${document.documentElement.computedStyleMap().get(`--navigation-bar-block-size`) ?? '0'}`, //
|
|
47
|
-
// blockSize = parseFloat(blockSizeProp) * (blockSizeProp.endsWith('rem') ? parseFloat(getComputedStyle(document.documentElement).fontSize) : 1)
|
|
48
|
-
// this.#observer = new IntersectionObserver(this.#handleIntersect, {
|
|
49
|
-
// root: this.#sibling,
|
|
50
|
-
// rootMargin: `-${blockSize}px 0px 0px 0px`,
|
|
51
|
-
// threshold: [0, 1],
|
|
52
|
-
// })
|
|
53
|
-
// if (this.#sentinel) this.#observer.observe(this.#sentinel)
|
|
54
|
-
// this.#observer.observe(this)
|
|
55
|
-
// })
|
|
56
|
-
}
|
|
57
34
|
attributeChangedCallback(name, oldValue, newValue) {
|
|
58
35
|
if (devFlags.debug)
|
|
59
36
|
console.debug(`${SectionView.name} ⚡️ attr-change [${name}] ("${oldValue}" → "${newValue}")`);
|
|
@@ -80,4 +57,27 @@ export class SectionView extends HTMLElement {
|
|
|
80
57
|
}
|
|
81
58
|
// })
|
|
82
59
|
}
|
|
60
|
+
disconnectedCallback() {
|
|
61
|
+
if (devFlags.debug)
|
|
62
|
+
console.debug(`${SectionView.name} ⚡️ disconnect`);
|
|
63
|
+
// if (this.#sentinel) this.#observer?.unobserve(this.#sentinel)
|
|
64
|
+
// this.#observer?.unobserve(this)
|
|
65
|
+
}
|
|
66
|
+
connectedCallback() {
|
|
67
|
+
if (devFlags.debug)
|
|
68
|
+
console.debug(`${SectionView.name} ⚡️ connect`);
|
|
69
|
+
// this.#sibling = this.closest('scroll-view') ?? undefined
|
|
70
|
+
// Snapshot.waitReady.then(() => {
|
|
71
|
+
// if (!(await frame(this))) return // NOTE: Required or BREAKS transitions // self.requestAnimationFrame(() => {
|
|
72
|
+
// const blockSizeProp = getComputedStyle(this).getPropertyValue('--navigation-bar-block-size') || '0', //`${document.documentElement.computedStyleMap().get(`--navigation-bar-block-size`) ?? '0'}`, //
|
|
73
|
+
// blockSize = parseFloat(blockSizeProp) * (blockSizeProp.endsWith('rem') ? parseFloat(getComputedStyle(document.documentElement).fontSize) : 1)
|
|
74
|
+
// this.#observer = new IntersectionObserver(this.#handleIntersect, {
|
|
75
|
+
// root: this.#sibling,
|
|
76
|
+
// rootMargin: `-${blockSize}px 0px 0px 0px`,
|
|
77
|
+
// threshold: [0, 1],
|
|
78
|
+
// })
|
|
79
|
+
// if (this.#sentinel) this.#observer.observe(this.#sentinel)
|
|
80
|
+
// this.#observer.observe(this)
|
|
81
|
+
// })
|
|
82
|
+
}
|
|
83
83
|
}
|
|
@@ -33,7 +33,7 @@ export class SidebarToggle extends HTMLElement {
|
|
|
33
33
|
if (devFlags.debug)
|
|
34
34
|
console.debug(`${_a.name} ⚡️ measure`);
|
|
35
35
|
const { target } = entry ?? {};
|
|
36
|
-
if (!(target instanceof HTMLElement
|
|
36
|
+
if (!(target instanceof HTMLElement))
|
|
37
37
|
return;
|
|
38
38
|
// set/remove css var/prop to parent based on shown/hidden
|
|
39
39
|
const tv = target.parentElement;
|
|
@@ -71,7 +71,7 @@ export class SidebarToggle extends HTMLElement {
|
|
|
71
71
|
#handleClick({ target, type }) {
|
|
72
72
|
if (devFlags.debug)
|
|
73
73
|
console.debug(`${_a.name} ⚡️ ${type}`);
|
|
74
|
-
if (!(target instanceof HTMLElement
|
|
74
|
+
if (!(target instanceof HTMLElement))
|
|
75
75
|
return;
|
|
76
76
|
if (!target?.closest('button'))
|
|
77
77
|
return;
|
|
@@ -12,7 +12,7 @@ export class SidebarView extends DialogBase {
|
|
|
12
12
|
static polyfillConnectedCallback(el) {
|
|
13
13
|
CleanupRegistry.register(el, onoff('click', SidebarView.#handleClick, el).on());
|
|
14
14
|
CleanupRegistry.register(el, onoff(touchGlass(el, (t) => t, ({ target }) => {
|
|
15
|
-
if (!(target instanceof HTMLElement
|
|
15
|
+
if (!(target instanceof HTMLElement))
|
|
16
16
|
return true;
|
|
17
17
|
if (target.matches('[is=sidebar-view]'))
|
|
18
18
|
return false;
|
|
@@ -26,7 +26,7 @@ export class SidebarView extends DialogBase {
|
|
|
26
26
|
static #handleClick = async ({ target, type }) => {
|
|
27
27
|
if (devFlags.debug)
|
|
28
28
|
console.debug(`${SidebarView.name} ⚡️ ${type}`);
|
|
29
|
-
if (!(target instanceof HTMLElement
|
|
29
|
+
if (!(target instanceof HTMLElement))
|
|
30
30
|
return;
|
|
31
31
|
if (target instanceof HTMLDialogElement && 'sidebar-view' === target.getAttribute('is'))
|
|
32
32
|
target.close?.();
|
|
@@ -16,7 +16,7 @@ export class StickyContainer extends HTMLElement {
|
|
|
16
16
|
CleanupRegistry.unregister(this);
|
|
17
17
|
}
|
|
18
18
|
#handleTransitionrun = ({ target, propertyName, pseudoElement }) => {
|
|
19
|
-
if (!(target instanceof HTMLElement
|
|
19
|
+
if (!(target instanceof HTMLElement))
|
|
20
20
|
return;
|
|
21
21
|
if ('--stuck' !== propertyName || '::before' !== pseudoElement || !target.matches('sticky-container'))
|
|
22
22
|
return;
|
|
@@ -22,7 +22,7 @@ export class TabBar extends DialogBase {
|
|
|
22
22
|
// if (!r) return
|
|
23
23
|
CleanupRegistry.register(el, onoff('click', TabBar.#handleClick, el).on());
|
|
24
24
|
CleanupRegistry.register(el, onoff(touchGlass(el, (t) => t, ({ target }) => {
|
|
25
|
-
if (!(target instanceof HTMLElement
|
|
25
|
+
if (!(target instanceof HTMLElement))
|
|
26
26
|
return true;
|
|
27
27
|
if (target.matches('[is=tab-bar]'))
|
|
28
28
|
return false;
|
|
@@ -35,7 +35,7 @@ export class TabBar extends DialogBase {
|
|
|
35
35
|
static #handleClick = async ({ target, type }) => {
|
|
36
36
|
if (devFlags.debug)
|
|
37
37
|
console.debug(`${TabBar.name} ⚡️ ${type}`);
|
|
38
|
-
if (!(target instanceof HTMLElement
|
|
38
|
+
if (!(target instanceof HTMLElement))
|
|
39
39
|
return;
|
|
40
40
|
if (target instanceof HTMLDialogElement && 'tab-bar' === target.getAttribute('is'))
|
|
41
41
|
target.close?.();
|
|
@@ -65,11 +65,10 @@ export class TabItem extends ButtonBase {
|
|
|
65
65
|
});
|
|
66
66
|
}, 100);
|
|
67
67
|
};
|
|
68
|
-
static #handleClick = async (
|
|
68
|
+
static #handleClick = async ({ type, currentTarget: btn }) => {
|
|
69
69
|
if (devFlags.debug)
|
|
70
|
-
console.debug(`${TabItem.name} ⚡️ ${
|
|
71
|
-
|
|
72
|
-
if (!btn)
|
|
70
|
+
console.debug(`${TabItem.name} ⚡️ ${type}`);
|
|
71
|
+
if (!(btn instanceof HTMLElement))
|
|
73
72
|
return;
|
|
74
73
|
// const tag = btn.getAttribute('value')
|
|
75
74
|
// if (!tag) return // sidebartoggle > tab-item //throw new DOMException(`Attribute "tag" is set but invalid`, 'InvalidStateError')
|
|
@@ -75,7 +75,7 @@ export class TabView extends HTMLElement {
|
|
|
75
75
|
// })
|
|
76
76
|
}
|
|
77
77
|
#handleSummaryClick = ({ target }) => {
|
|
78
|
-
if (!(target instanceof HTMLElement
|
|
78
|
+
if (!(target instanceof HTMLElement))
|
|
79
79
|
return;
|
|
80
80
|
const summary = target.closest('summary');
|
|
81
81
|
if (!summary)
|
|
@@ -109,7 +109,7 @@ export class TableView extends HTMLElement {
|
|
|
109
109
|
#handleColumnSlotchange = ({ type, target: slot }) => {
|
|
110
110
|
if (devFlags.debug)
|
|
111
111
|
console.debug(`${_a.name} ⚡️ ${type}`);
|
|
112
|
-
if (!(slot instanceof HTMLSlotElement
|
|
112
|
+
if (!(slot instanceof HTMLSlotElement))
|
|
113
113
|
return;
|
|
114
114
|
const assigned = slot.assignedElements();
|
|
115
115
|
this.#observers.syncObservations(assigned);
|
|
@@ -164,7 +164,7 @@ export class TableView extends HTMLElement {
|
|
|
164
164
|
}
|
|
165
165
|
};
|
|
166
166
|
#handleMenuClick = ({ target }) => {
|
|
167
|
-
if (!(target instanceof HTMLElement
|
|
167
|
+
if (!(target instanceof HTMLElement))
|
|
168
168
|
return;
|
|
169
169
|
const btn = target.closest('button');
|
|
170
170
|
if (!btn)
|