@pictogrammers/components 0.3.2 → 0.4.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/README.md +11 -12
- package/favicon.svg +20 -0
- package/index.html +67 -49
- package/main.js +2 -0
- package/main.js.LICENSE.txt +10 -0
- package/package.json +6 -6
- package/pg/annoy/README.md +0 -5
- package/pg/annoy/__examples__/basic/basic.css +3 -0
- package/pg/annoy/__examples__/basic/basic.html +4 -7
- package/pg/annoy/__examples__/basic/basic.ts +3 -1
- package/pg/annoy/annoy.css +29 -198
- package/pg/annoy/annoy.html +5 -56
- package/pg/annoy/annoy.ts +4 -25
- package/pg/app/README.md +11 -0
- package/pg/app/__examples__/basic/basic.css +8 -0
- package/pg/app/__examples__/basic/basic.html +15 -0
- package/pg/app/__examples__/basic/basic.ts +13 -0
- package/pg/app/app.css +108 -0
- package/pg/app/app.html +16 -0
- package/pg/app/app.ts +45 -0
- package/pg/app/index.ts +3 -0
- package/pg/avatar/__examples__/basic/basic.ts +5 -3
- package/pg/button/README.md +3 -0
- package/pg/button/button.css +13 -12
- package/pg/button/button.spec.ts +35 -0
- package/pg/button/button.ts +17 -12
- package/pg/buttonLink/buttonLink.css +3 -2
- package/pg/buttonMenu/README.md +54 -0
- package/pg/buttonMenu/__examples__/basic/basic.html +6 -0
- package/pg/buttonMenu/__examples__/basic/basic.ts +43 -0
- package/pg/buttonMenu/buttonMenu.css +12 -0
- package/pg/buttonMenu/buttonMenu.html +4 -0
- package/pg/buttonMenu/buttonMenu.ts +63 -0
- package/pg/buttonMenu/index.ts +3 -0
- package/pg/buttonToggle/__examples__/basic/basic.ts +2 -2
- package/pg/buttonToggle/__examples__/persist/persist.html +10 -0
- package/pg/buttonToggle/__examples__/persist/persist.ts +35 -0
- package/pg/cardUser/__examples__/basic/basic.ts +0 -1
- package/pg/cardUser/cardUser.css +2 -10
- package/pg/cardUser/cardUser.html +0 -5
- package/pg/cardUser/cardUser.ts +0 -6
- package/pg/database/README.md +1 -1
- package/pg/database/__examples__/basic/basic.html +2 -1
- package/pg/database/__examples__/basic/basic.ts +3 -3
- package/pg/dropdown/dropdown.ts +0 -19
- package/pg/grid/__examples__/basic/basic.html +2 -2
- package/pg/grid/__examples__/basic/basic.ts +3 -2
- package/pg/grid/grid.ts +0 -1
- package/pg/icon/README.md +6 -5
- package/pg/icon/__examples__/basic/basic.html +2 -2
- package/pg/icon/__examples__/basic/basic.ts +1 -1
- package/pg/icon/icon.ts +6 -0
- package/pg/inputCheckList/__examples__/basic/basic.ts +5 -5
- package/pg/inputCheckList/inputCheckList.ts +2 -0
- package/pg/inputFileLocal/inputFileLocal.css +3 -2
- package/pg/inputPixelEditor/README.md +132 -0
- package/pg/inputPixelEditor/__examples__/basic/basic.css +29 -0
- package/pg/inputPixelEditor/__examples__/basic/basic.html +63 -0
- package/pg/inputPixelEditor/__examples__/basic/basic.ts +200 -0
- package/pg/inputPixelEditor/__examples__/basic/openUtils.ts +41 -0
- package/pg/inputPixelEditor/__examples__/basic/saveUtil.ts +35 -0
- package/pg/inputPixelEditor/index.ts +3 -0
- package/pg/inputPixelEditor/inputPixelEditor.css +27 -0
- package/pg/inputPixelEditor/inputPixelEditor.html +3 -0
- package/pg/inputPixelEditor/inputPixelEditor.ts +839 -0
- package/pg/inputPixelEditor/utils/bitmapToMask.ts +202 -0
- package/pg/inputPixelEditor/utils/cloneGrid.ts +17 -0
- package/pg/inputPixelEditor/utils/constants.ts +1 -0
- package/pg/inputPixelEditor/utils/createLayer.ts +8 -0
- package/pg/inputPixelEditor/utils/debounce.ts +5 -0
- package/pg/inputPixelEditor/utils/diffGrid.ts +26 -0
- package/pg/inputPixelEditor/utils/fillGrid.ts +11 -0
- package/pg/inputPixelEditor/utils/getEllipseOutlinePixels.ts +105 -0
- package/pg/inputPixelEditor/utils/getEllipsePixels.ts +28 -0
- package/pg/inputPixelEditor/utils/getGuides.ts +232 -0
- package/pg/inputPixelEditor/utils/getLinePixels.ts +18 -0
- package/pg/inputPixelEditor/utils/getRectangleOutlinePixels.ts +20 -0
- package/pg/inputPixelEditor/utils/getRectanglePixels.ts +15 -0
- package/pg/inputPixelEditor/utils/inputMode.ts +8 -0
- package/pg/inputPixelEditor/utils/interateGrid.ts +7 -0
- package/pg/inputPixelEditor/utils/isEmptyGrid.ts +3 -0
- package/pg/inputPixelEditor/utils/maskToBitmap.ts +66 -0
- package/pg/inputRange/__examples__/basic/basic.ts +4 -4
- package/pg/inputRange/inputRange.ts +6 -4
- package/pg/inputSelect/README.md +1 -1
- package/pg/inputSelect/__examples__/basic/basic.ts +7 -5
- package/pg/inputSelect/inputSelect.css +15 -12
- package/pg/inputSelect/inputSelect.html +3 -3
- package/pg/inputSelect/inputSelect.ts +33 -30
- package/pg/inputText/__examples__/basic/basic.ts +6 -6
- package/pg/inputText/inputText.css +1 -0
- package/pg/inputUserSelect/README.md +1 -1
- package/pg/inputUserSelect/inputUserSelect.ts +1 -1
- package/pg/listTag/__examples__/basic/basic.ts +4 -5
- package/pg/markdown/README.md +17 -3
- package/pg/markdown/__examples__/basic/basic.ts +2 -2
- package/pg/markdown/__examples__/basic/constants.ts +1 -1
- package/pg/markdown/markdown.css +11 -0
- package/pg/menu/README.md +46 -0
- package/pg/menu/__examples__/basic/basic.html +6 -0
- package/pg/menu/__examples__/basic/basic.ts +46 -0
- package/pg/menu/index.ts +3 -0
- package/pg/menu/menu.css +19 -0
- package/pg/menu/menu.html +1 -0
- package/pg/menu/menu.ts +119 -0
- package/pg/menuDivider/README.md +7 -0
- package/pg/menuDivider/__examples__/basic/basic.html +3 -0
- package/pg/menuDivider/__examples__/basic/basic.ts +28 -0
- package/pg/menuDivider/index.ts +3 -0
- package/pg/menuDivider/menuDivider.css +9 -0
- package/pg/menuDivider/menuDivider.html +1 -0
- package/pg/menuDivider/menuDivider.ts +22 -0
- package/pg/menuIcon/menuIcon.ts +43 -36
- package/pg/menuItem/README.md +32 -0
- package/pg/menuItem/__examples__/basic/basic.html +26 -0
- package/pg/menuItem/__examples__/basic/basic.ts +41 -0
- package/pg/menuItem/index.ts +3 -0
- package/pg/menuItem/menuItem.css +97 -0
- package/pg/menuItem/menuItem.html +1 -0
- package/pg/menuItem/menuItem.ts +77 -0
- package/pg/menuItemIcon/README.md +32 -0
- package/pg/menuItemIcon/__examples__/basic/basic.html +34 -0
- package/pg/menuItemIcon/__examples__/basic/basic.ts +55 -0
- package/pg/menuItemIcon/index.ts +3 -0
- package/pg/menuItemIcon/menuItemIcon.css +106 -0
- package/pg/menuItemIcon/menuItemIcon.html +4 -0
- package/pg/menuItemIcon/menuItemIcon.ts +156 -0
- package/pg/modalAlert/__examples__/basic/basic.ts +1 -1
- package/pg/modalAlert/modalAlert.css +1 -4
- package/pg/modalAlert/modalAlert.ts +18 -4
- package/pg/modification/__examples__/basic/basic.ts +1 -2
- package/pg/modification/__examples__/basic/constants.ts +25 -50
- package/pg/modification/modification.ts +1 -1
- package/pg/overlay/overlay.ts +13 -12
- package/pg/overlayContextMenu/README.md +35 -0
- package/pg/overlayContextMenu/__examples__/basic/basic.css +23 -0
- package/pg/overlayContextMenu/__examples__/basic/basic.html +7 -0
- package/pg/overlayContextMenu/__examples__/basic/basic.ts +87 -0
- package/pg/overlayContextMenu/index.ts +3 -0
- package/pg/overlayContextMenu/overlayContextMenu.css +16 -0
- package/pg/overlayContextMenu/overlayContextMenu.html +3 -0
- package/pg/overlayContextMenu/overlayContextMenu.ts +98 -0
- package/pg/overlayMenu/README.md +33 -0
- package/pg/overlayMenu/__examples__/basic/basic.css +3 -0
- package/pg/overlayMenu/__examples__/basic/basic.html +5 -0
- package/pg/overlayMenu/__examples__/basic/basic.ts +62 -0
- package/pg/overlayMenu/index.ts +3 -0
- package/pg/overlayMenu/overlayMenu.css +16 -0
- package/pg/overlayMenu/overlayMenu.html +3 -0
- package/pg/overlayMenu/overlayMenu.ts +67 -0
- package/pg/overlaySelectMenu/README.md +33 -0
- package/pg/overlaySelectMenu/__examples__/basic/basic.css +3 -0
- package/pg/overlaySelectMenu/__examples__/basic/basic.html +5 -0
- package/pg/overlaySelectMenu/__examples__/basic/basic.ts +62 -0
- package/pg/overlaySelectMenu/index.ts +3 -0
- package/pg/overlaySelectMenu/overlaySelectMenu.css +17 -0
- package/pg/overlaySelectMenu/overlaySelectMenu.html +3 -0
- package/pg/overlaySelectMenu/overlaySelectMenu.ts +96 -0
- package/pg/overlaySubMenu/README.md +35 -0
- package/pg/overlaySubMenu/index.ts +3 -0
- package/pg/overlaySubMenu/overlaySubMenu.css +27 -0
- package/pg/overlaySubMenu/overlaySubMenu.html +3 -0
- package/pg/overlaySubMenu/overlaySubMenu.ts +103 -0
- package/pg/picker/picker.ts +1 -19
- package/pg/scroll/__examples__/basic/basic.ts +1 -1
- package/pg/search/__examples__/basic/basic.ts +10 -7
- package/pg/search/search.css +2 -2
- package/pg/shared/models/user.ts +0 -2
- package/pg/tab/tab.ts +0 -10
- package/pg/tabs/partials/tab.css +42 -0
- package/pg/tabs/partials/tab.ts +70 -0
- package/pg/tabs/tabs.css +0 -53
- package/pg/tabs/tabs.ts +54 -70
- package/pg/toast/README.md +35 -6
- package/pg/toast/__examples__/basic/basic.html +7 -0
- package/pg/toast/__examples__/basic/basic.ts +76 -0
- package/pg/toast/toast.css +3 -0
- package/pg/toast/toast.ts +20 -4
- package/pg/tooltip/addTooltip.ts +3 -1
- package/pg/tooltip/tooltip.ts +1 -1
- package/pg/tree/README.md +67 -0
- package/pg/tree/__examples__/basic/basic.html +10 -0
- package/pg/tree/__examples__/basic/basic.ts +162 -0
- package/pg/tree/index.ts +3 -0
- package/pg/tree/tree.css +28 -0
- package/pg/tree/tree.html +1 -0
- package/pg/tree/tree.ts +217 -0
- package/pg/treeButtonIcon/README.md +39 -0
- package/pg/treeButtonIcon/index.ts +3 -0
- package/pg/treeButtonIcon/treeButtonIcon.css +18 -0
- package/pg/treeButtonIcon/treeButtonIcon.html +3 -0
- package/pg/treeButtonIcon/treeButtonIcon.ts +42 -0
- package/pg/treeItem/README.md +3 -0
- package/pg/treeItem/index.ts +3 -0
- package/pg/treeItem/treeItem.css +263 -0
- package/pg/treeItem/treeItem.html +16 -0
- package/pg/treeItem/treeItem.ts +558 -0
- package/pgAnnoy.js +1 -0
- package/pgApp.js +1 -0
- package/pgAvatar.js +1 -0
- package/pgButton.js +1 -0
- package/pgButtonGroup.js +1 -0
- package/pgButtonLink.js +1 -0
- package/pgButtonMenu.js +1 -0
- package/pgButtonToggle.js +1 -0
- package/pgCard.js +1 -0
- package/pgCardUser.js +1 -0
- package/pgColor.js +1 -0
- package/pgDatabase.js +1 -0
- package/pgDropdown.js +1 -0
- package/pgGrid.js +1 -0
- package/pgHeader.js +1 -0
- package/pgIcon.js +1 -0
- package/pgInputCheck.js +1 -0
- package/pgInputCheckList.js +1 -0
- package/pgInputFileLocal.js +1 -0
- package/pgInputHexRgb.js +1 -0
- package/pgInputPixelEditor.js +1 -0
- package/pgInputRange.js +1 -0
- package/pgInputSelect.js +1 -0
- package/pgInputText.js +1 -0
- package/pgInputTextIcon.js +1 -0
- package/pgInputUserSelect.js +1 -0
- package/pgListTag.js +1 -0
- package/pgMarkdown.js +2 -0
- package/pgMarkdown.js.LICENSE.txt +10 -0
- package/pgMenu.js +1 -0
- package/pgMenuDivider.js +1 -0
- package/pgMenuIcon.js +1 -0
- package/pgMenuItem.js +1 -0
- package/pgMenuItemIcon.js +1 -0
- package/pgModalAlert.js +1 -0
- package/pgModification.js +1 -0
- package/pgNav.js +1 -0
- package/pgOverlay.js +1 -0
- package/pgOverlayContextMenu.js +1 -0
- package/pgOverlayMenu.js +1 -0
- package/pgOverlaySelectMenu.js +1 -0
- package/pgOverlaySubMenu.js +1 -0
- package/pgPicker.js +1 -0
- package/pgPreview.js +1 -0
- package/pgScroll.js +1 -0
- package/pgSearch.js +1 -0
- package/pgTab.js +1 -0
- package/pgTabs.js +1 -0
- package/pgToast.js +1 -0
- package/pgToasts.js +1 -0
- package/pgTooltip.js +1 -0
- package/pgTree.js +1 -0
- package/pgTreeButtonIcon.js +1 -0
- package/pgTreeItem.js +1 -0
- package/theme-ui3.css +31 -0
- package/@types/css.d.ts +0 -4
- package/@types/html.d.ts +0 -4
- package/dist/main.js +0 -3819
- package/dist/pgAnnoy.js +0 -116
- package/dist/pgAvatar.js +0 -136
- package/dist/pgButton.js +0 -116
- package/dist/pgButtonGroup.js +0 -116
- package/dist/pgButtonLink.js +0 -116
- package/dist/pgButtonToggle.js +0 -146
- package/dist/pgCard.js +0 -116
- package/dist/pgCardUser.js +0 -196
- package/dist/pgColor.js +0 -136
- package/dist/pgDatabase.js +0 -236
- package/dist/pgDropdown.js +0 -686
- package/dist/pgGrid.js +0 -126
- package/dist/pgHeader.js +0 -116
- package/dist/pgIcon.js +0 -116
- package/dist/pgInputCheck.js +0 -116
- package/dist/pgInputCheckList.js +0 -126
- package/dist/pgInputFileLocal.js +0 -116
- package/dist/pgInputHexRgb.js +0 -126
- package/dist/pgInputRange.js +0 -116
- package/dist/pgInputSelect.js +0 -116
- package/dist/pgInputText.js +0 -116
- package/dist/pgInputTextIcon.js +0 -176
- package/dist/pgInputUserSelect.js +0 -116
- package/dist/pgListTag.js +0 -136
- package/dist/pgMarkdown.js +0 -346
- package/dist/pgMenuIcon.js +0 -206
- package/dist/pgModalAlert.js +0 -126
- package/dist/pgModification.js +0 -396
- package/dist/pgNav.js +0 -116
- package/dist/pgOverlay.js +0 -96
- package/dist/pgPicker.js +0 -116
- package/dist/pgPreview.js +0 -116
- package/dist/pgScroll.js +0 -266
- package/dist/pgSearch.js +0 -146
- package/dist/pgTab.js +0 -116
- package/dist/pgTabs.js +0 -136
- package/dist/pgToast.js +0 -136
- package/dist/pgToasts.js +0 -136
- package/dist/pgTooltip.js +0 -126
|
@@ -0,0 +1,558 @@
|
|
|
1
|
+
import { Component, Prop, Part, forEach } from '@pictogrammers/element';
|
|
2
|
+
|
|
3
|
+
import PgIcon from '../icon/icon';
|
|
4
|
+
import PgTreeButtonIcon from '../treeButtonIcon/treeButtonIcon';
|
|
5
|
+
|
|
6
|
+
import template from './treeItem.html';
|
|
7
|
+
import style from './treeItem.css';
|
|
8
|
+
|
|
9
|
+
const noIcon = 'M0 0h24v24H0V0zm2 2v20h20V2H2z';
|
|
10
|
+
|
|
11
|
+
@Component({
|
|
12
|
+
selector: 'pg-tree-item',
|
|
13
|
+
style,
|
|
14
|
+
template
|
|
15
|
+
})
|
|
16
|
+
export default class PgTreeItem extends HTMLElement {
|
|
17
|
+
|
|
18
|
+
@Prop() index: number;
|
|
19
|
+
@Prop() label: string = '';
|
|
20
|
+
@Prop() selected: boolean = false;
|
|
21
|
+
@Prop() expanded: boolean = false;
|
|
22
|
+
@Prop() icon: { path: string } = { path: noIcon };
|
|
23
|
+
@Prop() actions: any[] = [];
|
|
24
|
+
@Prop() items: any[] = [];
|
|
25
|
+
|
|
26
|
+
@Part() $toggle: HTMLButtonElement;
|
|
27
|
+
@Part() $item: HTMLDivElement;
|
|
28
|
+
@Part() $input: HTMLInputElement;
|
|
29
|
+
@Part() $iconButton: HTMLButtonElement;
|
|
30
|
+
@Part() $icon: PgIcon;
|
|
31
|
+
@Part() $label: HTMLDivElement;
|
|
32
|
+
@Part() $labelButton: HTMLButtonElement;
|
|
33
|
+
@Part() $actions: HTMLDivElement;
|
|
34
|
+
@Part() $items: HTMLDivElement;
|
|
35
|
+
@Part() $dropabove: HTMLDivElement;
|
|
36
|
+
@Part() $dropon: HTMLDivElement;
|
|
37
|
+
@Part() $dropbelow: HTMLDivElement;
|
|
38
|
+
|
|
39
|
+
connectedCallback() {
|
|
40
|
+
this.$toggle.addEventListener('click', this.#handleToggleClick.bind(this));
|
|
41
|
+
this.$item.addEventListener('action', this.#handleItemAction.bind(this));
|
|
42
|
+
this.$item.addEventListener('pointerenter', this.#handlePointerEnter.bind(this));
|
|
43
|
+
this.$item.addEventListener('pointerleave', this.#handlePointerLeave.bind(this));
|
|
44
|
+
this.$item.addEventListener('dragstart', this.#handleDragStart.bind(this));
|
|
45
|
+
this.$item.addEventListener('dragend', this.#handleDragEnd.bind(this));
|
|
46
|
+
this.$labelButton.addEventListener('dblclick', this.#handleDoubleClick.bind(this));
|
|
47
|
+
this.$labelButton.addEventListener('click', this.#handleClick.bind(this));
|
|
48
|
+
this.$labelButton.addEventListener('keydown', this.#handleKeyDownLabel.bind(this));
|
|
49
|
+
this.$iconButton.addEventListener('dblclick', this.#handleIconDoubleClick.bind(this));
|
|
50
|
+
this.$iconButton.addEventListener('click', this.#handleIconClick.bind(this));
|
|
51
|
+
this.$iconButton.addEventListener('keydown', this.#handleIconKeyDown.bind(this));
|
|
52
|
+
this.$item.addEventListener('contextmenu', this.#handleContextMenu.bind(this));
|
|
53
|
+
this.$input.addEventListener('blur', this.#handleBlur.bind(this));
|
|
54
|
+
this.$input.addEventListener('keydown', this.#handleInputKeyDown.bind(this));
|
|
55
|
+
// Append Indexes
|
|
56
|
+
this.$items.addEventListener('action', this.#handleAction.bind(this));
|
|
57
|
+
this.$items.addEventListener('move', this.#handleMove.bind(this));
|
|
58
|
+
this.$items.addEventListener('toggle', this.#handleToggle.bind(this));
|
|
59
|
+
this.$items.addEventListener('select', this.#handleSelect.bind(this));
|
|
60
|
+
this.$items.addEventListener('rename', this.#handleRename.bind(this));
|
|
61
|
+
this.$items.addEventListener('up', this.#handleUp.bind(this));
|
|
62
|
+
this.$items.addEventListener('down', this.#handleDown.bind(this));
|
|
63
|
+
this.$items.addEventListener('itemdragstart', this.#handleItemDragStart.bind(this));
|
|
64
|
+
this.$items.addEventListener('itemdragend', this.#handleItemDragEnd.bind(this));
|
|
65
|
+
this.$items.addEventListener('itemdropenter', this.#handleItemDropEnter.bind(this));
|
|
66
|
+
// Drop
|
|
67
|
+
this.$dropabove.addEventListener('dragenter', this.#handleDragAboveEnter.bind(this));
|
|
68
|
+
this.$dropabove.addEventListener('dragleave', this.#handleDragAboveLeave.bind(this));
|
|
69
|
+
this.$dropabove.addEventListener('dragover', this.#handleDragOver.bind(this));
|
|
70
|
+
this.$dropabove.addEventListener('drop', this.#handleDragAbove.bind(this));
|
|
71
|
+
this.$dropon.addEventListener('dragenter', this.#handleDragOnEnter.bind(this));
|
|
72
|
+
this.$dropon.addEventListener('dragleave', this.#handleDragOnLeave.bind(this));
|
|
73
|
+
this.$dropon.addEventListener('dragover', this.#handleDragOver.bind(this));
|
|
74
|
+
this.$dropon.addEventListener('drop', this.#handleDropOn.bind(this));
|
|
75
|
+
this.$dropbelow.addEventListener('dragenter', this.#handleDragBelowEnter.bind(this));
|
|
76
|
+
this.$dropbelow.addEventListener('dragleave', this.#handleDragBelowLeave.bind(this));
|
|
77
|
+
this.$dropbelow.addEventListener('dragover', this.#handleDragOver.bind(this));
|
|
78
|
+
this.$dropbelow.addEventListener('drop', this.#handleDropBelow.bind(this));
|
|
79
|
+
|
|
80
|
+
forEach({
|
|
81
|
+
container: this.$actions,
|
|
82
|
+
items: this.actions,
|
|
83
|
+
type: (item) => {
|
|
84
|
+
return PgTreeButtonIcon;
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
if (this.expanded) {
|
|
88
|
+
this.#initItems();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
disconnectedCallback() {
|
|
93
|
+
console.log('disconnect', this.index);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
#initItemsOnce = true;
|
|
97
|
+
#initItems() {
|
|
98
|
+
if (this.#initItemsOnce) {
|
|
99
|
+
forEach({
|
|
100
|
+
container: this.$items,
|
|
101
|
+
items: this.items,
|
|
102
|
+
type: (item) => {
|
|
103
|
+
return PgTreeItem;
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
this.#initItemsOnce = false;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
render(changes) {
|
|
111
|
+
if (changes.label) {
|
|
112
|
+
this.$label.textContent = this.label;
|
|
113
|
+
}
|
|
114
|
+
if (changes.icon && this.icon) {
|
|
115
|
+
this.$icon.path = this.icon.path;
|
|
116
|
+
}
|
|
117
|
+
if (changes.selected) {
|
|
118
|
+
this.$item.classList.toggle('selected', this.selected);
|
|
119
|
+
}
|
|
120
|
+
if (changes.items) {
|
|
121
|
+
this.$item.classList.toggle('items', this.items.length !== 0);
|
|
122
|
+
}
|
|
123
|
+
if (changes.expanded) {
|
|
124
|
+
if (this.expanded) {
|
|
125
|
+
this.#initItems();
|
|
126
|
+
}
|
|
127
|
+
this.$item.classList.toggle('expanded', this.expanded);
|
|
128
|
+
this.$items.classList.toggle('expanded', this.expanded);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
#handleToggleClick() {
|
|
133
|
+
this.dispatchEvent(new CustomEvent('toggle', {
|
|
134
|
+
bubbles: true,
|
|
135
|
+
composed: true,
|
|
136
|
+
detail: {
|
|
137
|
+
indexes: [this.index]
|
|
138
|
+
}
|
|
139
|
+
}));
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
#handleIconDoubleClick(e: MouseEvent) {
|
|
143
|
+
const { ctrlKey, shiftKey } = e;
|
|
144
|
+
if (ctrlKey || shiftKey) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
this.dispatchEvent(new CustomEvent('select', {
|
|
148
|
+
bubbles: true,
|
|
149
|
+
composed: true,
|
|
150
|
+
detail: {
|
|
151
|
+
type: 'icondoubleclick',
|
|
152
|
+
indexes: [this.index]
|
|
153
|
+
}
|
|
154
|
+
}));
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
#handleIconClick() {
|
|
158
|
+
this.dispatchEvent(new CustomEvent('select', {
|
|
159
|
+
bubbles: true,
|
|
160
|
+
composed: true,
|
|
161
|
+
detail: {
|
|
162
|
+
type: 'icon',
|
|
163
|
+
indexes: [this.index]
|
|
164
|
+
}
|
|
165
|
+
}));
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
#handleClick(e: MouseEvent) {
|
|
169
|
+
if (this.#ignoreNextClick) {
|
|
170
|
+
this.#ignoreNextClick = false;
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
const { ctrlKey, shiftKey } = e;
|
|
174
|
+
this.dispatchEvent(new CustomEvent('select', {
|
|
175
|
+
bubbles: true,
|
|
176
|
+
composed: true,
|
|
177
|
+
detail: {
|
|
178
|
+
type: 'label',
|
|
179
|
+
indexes: [this.index],
|
|
180
|
+
ctrlKey,
|
|
181
|
+
shiftKey
|
|
182
|
+
}
|
|
183
|
+
}));
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
#handleKeyDownLabel(e: KeyboardEvent) {
|
|
187
|
+
if (e.key === 'Enter') {
|
|
188
|
+
this.#enableRename();
|
|
189
|
+
e.preventDefault();
|
|
190
|
+
}
|
|
191
|
+
// todo arrow keys
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
#handlePointerEnter() {
|
|
195
|
+
this.dispatchEvent(new CustomEvent('enter', {
|
|
196
|
+
bubbles: true,
|
|
197
|
+
composed: true,
|
|
198
|
+
detail: {
|
|
199
|
+
indexes: [this.index]
|
|
200
|
+
}
|
|
201
|
+
}));
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
#handlePointerLeave() {
|
|
205
|
+
this.dispatchEvent(new CustomEvent('leave', {
|
|
206
|
+
bubbles: true,
|
|
207
|
+
composed: true,
|
|
208
|
+
detail: {
|
|
209
|
+
indexes: [this.index]
|
|
210
|
+
}
|
|
211
|
+
}));
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
#handleItemAction(e) {
|
|
215
|
+
e.stopPropagation();
|
|
216
|
+
this.dispatchEvent(new CustomEvent('action', {
|
|
217
|
+
bubbles: true,
|
|
218
|
+
composed: true,
|
|
219
|
+
detail: {
|
|
220
|
+
indexes: [this.index],
|
|
221
|
+
actionIndex: e.detail.index
|
|
222
|
+
}
|
|
223
|
+
}));
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
#handleAction(e) {
|
|
227
|
+
e.detail.indexes.unshift(this.index);
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
#handleMove(e) {
|
|
231
|
+
e.detail.indexes.unshift(this.index);
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
#handleToggle(e: any) {
|
|
235
|
+
e.detail.indexes.unshift(this.index);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
#handleRename(e: any) {
|
|
239
|
+
e.detail.indexes.unshift(this.index);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
#handleUp(e: any) {
|
|
243
|
+
e.detail.indexes.unshift(this.index);
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
#handleDown(e: any) {
|
|
247
|
+
e.detail.indexes.unshift(this.index);
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
#handleSelect(e: any) {
|
|
251
|
+
e.detail.indexes.unshift(this.index);
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
#handleItemDropEnter(e: any) {
|
|
255
|
+
e.detail.indexes.unshift(this.index);
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
#handleContextMenu(e) {
|
|
259
|
+
e.preventDefault();
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
#enableRename() {
|
|
263
|
+
this.$labelButton.classList.add('hide');
|
|
264
|
+
this.$actions.classList.add('hide');
|
|
265
|
+
this.$input.classList.remove('hide');
|
|
266
|
+
this.$input.value = this.label;
|
|
267
|
+
this.$input.select();
|
|
268
|
+
this.#ignoreNextClick = true;
|
|
269
|
+
this.dispatchEvent(new CustomEvent('select', {
|
|
270
|
+
bubbles: true,
|
|
271
|
+
composed: true,
|
|
272
|
+
detail: {
|
|
273
|
+
type: 'rename',
|
|
274
|
+
indexes: [this.index]
|
|
275
|
+
}
|
|
276
|
+
}));
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
#ignoreNextClick = false;
|
|
280
|
+
#handleDoubleClick(e: MouseEvent) {
|
|
281
|
+
const { ctrlKey, shiftKey } = e;
|
|
282
|
+
if (ctrlKey || shiftKey) {
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
this.#enableRename();
|
|
286
|
+
e.preventDefault();
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
#handleBlur() {
|
|
290
|
+
this.$labelButton.classList.remove('hide');
|
|
291
|
+
this.$actions.classList.remove('hide');
|
|
292
|
+
this.$input.classList.add('hide');
|
|
293
|
+
this.$labelButton.click();
|
|
294
|
+
this.dispatchEvent(new CustomEvent('rename', {
|
|
295
|
+
bubbles: true,
|
|
296
|
+
composed: true,
|
|
297
|
+
detail: {
|
|
298
|
+
indexes: [this.index],
|
|
299
|
+
label: this.$input.value
|
|
300
|
+
}
|
|
301
|
+
}));
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
#handleIconKeyDown(e: KeyboardEvent) {
|
|
305
|
+
switch (e.key ) {
|
|
306
|
+
case 'ArrowUp':
|
|
307
|
+
this.dispatchEvent(new CustomEvent('up', {
|
|
308
|
+
bubbles: true,
|
|
309
|
+
composed: true,
|
|
310
|
+
detail: { indexes: [this.index] }
|
|
311
|
+
}));
|
|
312
|
+
e.preventDefault();
|
|
313
|
+
break;
|
|
314
|
+
case 'ArrowDown':
|
|
315
|
+
this.dispatchEvent(new CustomEvent('down', {
|
|
316
|
+
bubbles: true,
|
|
317
|
+
composed: true,
|
|
318
|
+
detail: { indexes: [this.index] }
|
|
319
|
+
}));
|
|
320
|
+
e.preventDefault();
|
|
321
|
+
break;
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
#handleInputKeyDown(e: KeyboardEvent) {
|
|
326
|
+
switch (e.key ) {
|
|
327
|
+
case 'Enter':
|
|
328
|
+
this.#handleBlur();
|
|
329
|
+
break;
|
|
330
|
+
case 'Escape':
|
|
331
|
+
this.$labelButton.classList.remove('hide');
|
|
332
|
+
this.$actions.classList.remove('hide');
|
|
333
|
+
this.$input.classList.add('hide');
|
|
334
|
+
this.$input.value = this.label;
|
|
335
|
+
this.$labelButton.click();
|
|
336
|
+
break;
|
|
337
|
+
case 'ArrowUp':
|
|
338
|
+
this.dispatchEvent(new CustomEvent('up', {
|
|
339
|
+
bubbles: true,
|
|
340
|
+
composed: true,
|
|
341
|
+
detail: { indexes: [this.index] }
|
|
342
|
+
}));
|
|
343
|
+
this.$labelButton.classList.remove('hide');
|
|
344
|
+
this.$actions.classList.remove('hide');
|
|
345
|
+
this.$input.classList.add('hide');
|
|
346
|
+
e.preventDefault();
|
|
347
|
+
break;
|
|
348
|
+
case 'ArrowDown':
|
|
349
|
+
this.dispatchEvent(new CustomEvent('down', {
|
|
350
|
+
bubbles: true,
|
|
351
|
+
composed: true,
|
|
352
|
+
detail: { indexes: [this.index] }
|
|
353
|
+
}));
|
|
354
|
+
this.$labelButton.classList.remove('hide');
|
|
355
|
+
this.$actions.classList.remove('hide');
|
|
356
|
+
this.$input.classList.add('hide');
|
|
357
|
+
e.preventDefault();
|
|
358
|
+
break;
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
#canvas;
|
|
363
|
+
#handleDragStart(event) {
|
|
364
|
+
let dragCount = 0;
|
|
365
|
+
this.dispatchEvent(new CustomEvent('itemdragstart', {
|
|
366
|
+
bubbles: true,
|
|
367
|
+
composed: true,
|
|
368
|
+
detail: {
|
|
369
|
+
ctrlKey: event.ctrlKey,
|
|
370
|
+
shiftKey: event.shiftKey,
|
|
371
|
+
indexes: [this.index],
|
|
372
|
+
callback: (count) => {
|
|
373
|
+
dragCount = count;
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
}));
|
|
377
|
+
this.$item.classList.toggle('dragging', true);
|
|
378
|
+
this.$items.classList.toggle('dragging', true);
|
|
379
|
+
// Generate drag image showing selected item count
|
|
380
|
+
const size = window.devicePixelRatio;
|
|
381
|
+
const canvas = document.createElement('canvas');
|
|
382
|
+
document.body.append(canvas);
|
|
383
|
+
// Larger than required!
|
|
384
|
+
canvas.width = 100 * size;
|
|
385
|
+
canvas.height = 40 * size;
|
|
386
|
+
canvas.style.width = `${canvas.width / size}px`;
|
|
387
|
+
// overlap cursor offset
|
|
388
|
+
const offsetInline = 20;
|
|
389
|
+
const fontSize = 16;
|
|
390
|
+
const paddingBlock = 6;
|
|
391
|
+
const paddingInline = 6;
|
|
392
|
+
var ctx = canvas.getContext('2d');
|
|
393
|
+
if (ctx) {
|
|
394
|
+
const text = `${dragCount}`;
|
|
395
|
+
ctx.font = `bold ${fontSize * size}px Segoe UI`;
|
|
396
|
+
const textSize = ctx.measureText(text);
|
|
397
|
+
ctx.fillStyle = '#453C4F';
|
|
398
|
+
ctx.beginPath();
|
|
399
|
+
ctx.roundRect(
|
|
400
|
+
(offsetInline) * size,
|
|
401
|
+
0,
|
|
402
|
+
(textSize.width + (paddingInline * 2)) * size,
|
|
403
|
+
(fontSize + (paddingBlock * 2)) * size,
|
|
404
|
+
8 + (size * 2)
|
|
405
|
+
);
|
|
406
|
+
ctx.fill();
|
|
407
|
+
ctx.fillStyle = '#FFF';
|
|
408
|
+
ctx.beginPath();
|
|
409
|
+
ctx.roundRect(
|
|
410
|
+
(offsetInline + 2) * size,
|
|
411
|
+
2 * size,
|
|
412
|
+
((textSize.width + (paddingInline * 2) - 4) * size),
|
|
413
|
+
((fontSize + (paddingBlock * 2) - 4) * size),
|
|
414
|
+
8
|
|
415
|
+
);
|
|
416
|
+
ctx.fill();
|
|
417
|
+
ctx.fillStyle = '#453C4F';
|
|
418
|
+
ctx.fillText(
|
|
419
|
+
text,
|
|
420
|
+
(offsetInline + paddingInline + 4) * size,
|
|
421
|
+
(fontSize + paddingBlock - 2) * size
|
|
422
|
+
);
|
|
423
|
+
}
|
|
424
|
+
event.dataTransfer.setDragImage(canvas, 0, 0);
|
|
425
|
+
this.#canvas = canvas;
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
#handleDragEnd(event) {
|
|
429
|
+
this.dispatchEvent(new CustomEvent('itemdragend', {
|
|
430
|
+
bubbles: true,
|
|
431
|
+
composed: true,
|
|
432
|
+
detail: { indexes: [this.index] }
|
|
433
|
+
}));
|
|
434
|
+
this.$item.classList.toggle('dragging', false);
|
|
435
|
+
this.$items.classList.toggle('dragging', false);
|
|
436
|
+
this.#canvas.remove();
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
#handleItemDragStart(e: any) {
|
|
440
|
+
e.detail.indexes.unshift(this.index);
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
#handleItemDragEnd(e: any) {
|
|
444
|
+
e.detail.indexes.unshift(this.index);
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
#handleDragAboveEnter(e: any) {
|
|
448
|
+
this.dispatchEvent(new CustomEvent('itemdropenter', {
|
|
449
|
+
bubbles: true,
|
|
450
|
+
composed: true,
|
|
451
|
+
detail: {
|
|
452
|
+
indexes: [this.index],
|
|
453
|
+
callback: (isValid) => {
|
|
454
|
+
if (isValid) {
|
|
455
|
+
e.dataTransfer.dropEffect = 'move';
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
}));
|
|
460
|
+
e.target.classList.toggle('drop', true);
|
|
461
|
+
e.dataTransfer.setData("text", 'test');
|
|
462
|
+
e.dataTransfer.effectAllowed = 'move';
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
#handleDragAboveLeave(e: any) {
|
|
466
|
+
console.log('darg leave');
|
|
467
|
+
e.target.classList.toggle('drop', false);
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
#dragOnTimer;
|
|
471
|
+
#handleDragOnEnter(e: any) {
|
|
472
|
+
this.dispatchEvent(new CustomEvent('itemdropenter', {
|
|
473
|
+
bubbles: true,
|
|
474
|
+
composed: true,
|
|
475
|
+
detail: {
|
|
476
|
+
indexes: [this.index],
|
|
477
|
+
callback: (isValid) => {
|
|
478
|
+
if (isValid) {
|
|
479
|
+
e.dataTransfer.dropEffect = 'move';
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
}));
|
|
484
|
+
e.target.classList.toggle('drop', true);
|
|
485
|
+
this.#dragOnTimer = setTimeout(() => {
|
|
486
|
+
this.#handleToggleClick();
|
|
487
|
+
}, 1500);
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
#handleDragOnLeave(e: any) {
|
|
491
|
+
clearTimeout(this.#dragOnTimer);
|
|
492
|
+
console.log('darg leave');
|
|
493
|
+
e.target.classList.toggle('drop', false);
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
#handleDragBelowEnter(e: any) {
|
|
497
|
+
this.dispatchEvent(new CustomEvent('itemdropenter', {
|
|
498
|
+
bubbles: true,
|
|
499
|
+
composed: true,
|
|
500
|
+
detail: {
|
|
501
|
+
indexes: [this.index],
|
|
502
|
+
callback: (isValid) => {
|
|
503
|
+
if (isValid) {
|
|
504
|
+
e.dataTransfer.dropEffect = 'move';
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
}));
|
|
509
|
+
e.target.classList.toggle('drop', true);
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
#handleDragBelowLeave(e: any) {
|
|
513
|
+
console.log('darg leave');
|
|
514
|
+
e.target.classList.toggle('drop', false);
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
#handleDragOver(e: any) {
|
|
518
|
+
e.preventDefault();
|
|
519
|
+
e.dataTransfer.dropEffect = 'move';
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
#handleDragAbove(e: any) {
|
|
523
|
+
e.target.classList.toggle('drop', false);
|
|
524
|
+
this.dispatchEvent(new CustomEvent('move', {
|
|
525
|
+
bubbles: true,
|
|
526
|
+
composed: true,
|
|
527
|
+
detail: {
|
|
528
|
+
indexes: [this.index],
|
|
529
|
+
position: 'before'
|
|
530
|
+
}
|
|
531
|
+
}));
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
#handleDropOn(e: any) {
|
|
535
|
+
e.target.classList.toggle('drop', false);
|
|
536
|
+
this.dispatchEvent(new CustomEvent('move', {
|
|
537
|
+
bubbles: true,
|
|
538
|
+
composed: true,
|
|
539
|
+
detail: {
|
|
540
|
+
indexes: [this.index],
|
|
541
|
+
position: 'on'
|
|
542
|
+
}
|
|
543
|
+
}));
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
#handleDropBelow(e: any) {
|
|
547
|
+
e.target.classList.toggle('drop', false);
|
|
548
|
+
this.dispatchEvent(new CustomEvent('move', {
|
|
549
|
+
bubbles: true,
|
|
550
|
+
composed: true,
|
|
551
|
+
detail: {
|
|
552
|
+
indexes: [this.index],
|
|
553
|
+
position: 'after'
|
|
554
|
+
}
|
|
555
|
+
}));
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
}
|
package/pgAnnoy.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(()=>{"use strict";var e={314:e=>{e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var o="",n=void 0!==t[5];return t[4]&&(o+="@supports (".concat(t[4],") {")),t[2]&&(o+="@media ".concat(t[2]," {")),n&&(o+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),o+=e(t),n&&(o+="}"),t[2]&&(o+="}"),t[4]&&(o+="}"),o})).join("")},t.i=function(e,o,n,r,a){"string"==typeof e&&(e=[[null,e,void 0]]);var i={};if(n)for(var l=0;l<this.length;l++){var s=this[l][0];null!=s&&(i[s]=!0)}for(var c=0;c<e.length;c++){var p=[].concat(e[c]);n&&i[p[0]]||(void 0!==a&&(void 0===p[5]||(p[1]="@layer".concat(p[5].length>0?" ".concat(p[5]):""," {").concat(p[1],"}")),p[5]=a),o&&(p[2]?(p[1]="@media ".concat(p[2]," {").concat(p[1],"}"),p[2]=o):p[2]=o),r&&(p[4]?(p[1]="@supports (".concat(p[4],") {").concat(p[1],"}"),p[4]=r):p[4]="".concat(r)),t.push(p))}},t}},497:(e,t,o)=>{o.d(t,{A:()=>s});var n=o(601),r=o.n(n),a=o(314),i=o.n(a)()(r());i.push([e.id,":host {\n display: block;\n position: var(--pg-annoy-position, fixed);\n font-family: var(--pg-font-family);\n width: var(--pg-annoy-width, 12rem);\n height: var(--pg-annoy-height, auto);\n max-height: var(--pg-annoy-max-height, auto);\n font-size: 1rem;\n transition: 0.1s margin-bottom ease-in;\n}\n:host(.footer) {\n margin-bottom: 4rem;\n}\n\ndiv {\n position: relative;\n display: grid;\n margin-right: 0.75rem;\n padding: 0.5rem;\n border: 1px solid #FFFFFF;\n border-radius: 0.25rem;\n background: #FFFFFF;\n box-shadow: 0 1px 2rem rgba(0, 0, 0, 0.3);\n}\n\n[part=close] {\n position: absolute;\n right: -0.75rem;\n top: -0.75rem;\n width: 1.5rem;\n height: 1.5rem;\n border: 1px solid #fff;\n border-radius: 50%;\n background: #fff;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 1px 0.25rem rgba(0, 0, 0, 0.4);\n padding: 0;\n color: rgba(69, 60, 79, 0.8);\n outline: none;\n}\n\n[part=close]:hover {\n color: #453C4F;\n border-color: rgba(69, 60, 79, 0.6);\n}\n\n[part=close]:active {\n box-shadow: 0 1px 0.25rem rgba(0, 0, 0, 0.2);\n border-color: rgba(69, 60, 79, 0.9);\n}\n\n[part=close]:focus::before {\n pointer-events: none;\n content: '';\n position: absolute;\n top: -1px;\n right: -1px;\n bottom: -1px;\n left: -1px;\n border-radius: 50%;\n box-shadow: 0 0 0 3px var(--pg-focus-color, rgb(79, 143, 249, 0.6));\n}\n\n[part=close] svg {\n width: 1rem;\n height: 1rem;\n}\n",""]);var l=new CSSStyleSheet;l.replaceSync(i.toString());const s=l},601:e=>{e.exports=function(e){return e[1]}}},t={};function o(n){var r=t[n];if(void 0!==r)return r.exports;var a=t[n]={id:n,exports:{}};return e[n](a,a.exports,o),a.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);Symbol("addObserver"),Symbol("removeObserver"),Symbol("getObservers"),Symbol("isProxy"),Symbol("getTarget");const n=new Map;window.observers=n;Error;Symbol("index");const r=Symbol("init"),a=Symbol("template"),i=Symbol("style"),l=Symbol("parent");function s(e){return e.replace(/-([a-z])/g,(e=>e[1].toUpperCase()))}function c(e={}){return function(t,o){if("class"!==o.kind)throw new Error("@Component() can only decorate a class");var n,c;Reflect.defineProperty(t,"name",{value:e.selector,writable:!1,configurable:!1}),!t.prototype[l]||t.prototype[l][t.prototype[l].length-1]instanceof Object.getPrototypeOf(t)?t.prototype instanceof HTMLElement&&(t.prototype[l]=[t.prototype],t.prototype[i]=e.style?[e.style]:[],t.prototype[a]=e.template||""):(t.prototype[l].push(t.prototype),t.prototype[i].push(e.style),t.prototype[a]=(n=t.prototype[a],(c=e.template||null)&&c.match(/<parent\/>/)?c.replace(/<parent\/>/,n):`${n}${c||""}`));const p=t.prototype.connectedCallback||(()=>{}),d=t.prototype.disconnectedCallback||(()=>{});t.prototype.connectedCallback=function(){if(this[r]||void 0!==e.template||void 0!==e.style)if(this[r]){if(this[r]&&e.style);else if(this[r]&&e.selector&&!e.template)throw new Error("You need to pass a template for an extended element.")}else{if(!1===e.useShadow)throw new Error("unsupported");{const e=document.createElement("template");e.innerHTML=t.prototype[a]||"";const o=document.importNode(e.content,!0),n=this.attachShadow({mode:"open"});n.adoptedStyleSheets=t.prototype[i].map((e=>{if(e instanceof CSSStyleSheet)return e;var t=new CSSStyleSheet;return t.replaceSync(e.toString()),t})),n.appendChild(o)}}else!1===e.useShadow||this.attachShadow({mode:"open"});const o=new Set;for(const e of this.shadowRoot.querySelectorAll("*"))-1!==e.localName.indexOf("-")&&o.add(e.localName);const n=Array.from(o.values()).map((e=>customElements.get(e)?Promise.resolve():customElements.whenDefined(e))),c=()=>{this[l].map((e=>{e.render&&e.render.call(this,t.observedAttributes?t.observedAttributes.reduce(((e,t)=>(e[s(t)]=!0,e)),{}):{})}))};0===n.length?(this[r]=!0,p.call(this),c()):Promise.all(n).then((()=>{this[r]=!0,p.call(this);for(const e of this.shadowRoot.querySelectorAll("slot"))e.dispatchEvent(new CustomEvent("slotchange"));c()}))},t.prototype.disconnectedCallback=function(){d.call(this)},t.prototype.attributeChangedCallback=function(e,t,o){this[s(e)]=o},o.addInitializer((function(){if(e.selector){if(window.customElements.get(e.selector))throw new Error(`@Component() ${o.name} duplicate selector '${e.selector}'`);window.customElements.define(e.selector,t)}}))}}Symbol("transmute");Symbol("hasProxy");Symbol("meta");var p=o(497),d=function(e,t,o,n,r,a){function i(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var l,s=n.kind,c="getter"===s?"get":"setter"===s?"set":"value",p=!t&&e?n.static?e:e.prototype:null,d=t||(p?Object.getOwnPropertyDescriptor(p,n.name):{}),u=!1,m=o.length-1;m>=0;m--){var h={};for(var f in n)h[f]="access"===f?{}:n[f];for(var f in n.access)h.access[f]=n.access[f];h.addInitializer=function(e){if(u)throw new TypeError("Cannot add initializers after decoration has completed");a.push(i(e||null))};var y=(0,o[m])("accessor"===s?{get:d.get,set:d.set}:d[c],h);if("accessor"===s){if(void 0===y)continue;if(null===y||"object"!=typeof y)throw new TypeError("Object expected");(l=i(y.get))&&(d.get=l),(l=i(y.set))&&(d.set=l),(l=i(y.init))&&r.unshift(l)}else(l=i(y))&&("field"===s?r.unshift(l):d[c]=l)}p&&Object.defineProperty(p,n.name,d),u=!0},u=function(e,t,o){for(var n=arguments.length>2,r=0;r<t.length;r++)o=n?t[r].call(e,o):t[r].call(e);return n?o:void 0};(()=>{let e,t,o,n=[c({selector:"pg-annoy",style:p.A,template:'<div> <button part="close"> <svg viewBox="0 0 24 24"> <path fill="currentColor" d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"/> </svg> </button> <slot></slot> </div>'})],r=[],a=HTMLElement,i=[],l=[];(class extends a{static{t=this}static{const s="function"==typeof Symbol&&Symbol.metadata?Object.create(a[Symbol.metadata]??null):void 0;o=[function(e,t){const o=t.name,n=o.replace(/^\$/,"");t.addInitializer((function(){let e=null;Reflect.defineProperty(this,o,{get(){return e??(e=this.shadowRoot?.querySelector(`[part~=${n}]`))}})}))}],d(null,null,o,{kind:"field",name:"$close",static:!1,private:!1,access:{has:e=>"$close"in e,get:e=>e.$close,set:(e,t)=>{e.$close=t}},metadata:s},i,l),d(null,e={value:t},n,{kind:"class",name:t.name,metadata:s},null,r),t=e.value,s&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:s}),u(t,r)}$close=u(this,i,void 0);list=(u(this,l),[]);connectedCallback(){}})})()})();
|
package/pgApp.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(()=>{"use strict";var e={314:e=>{e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",o=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),o&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),o&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,o,r,i){"string"==typeof e&&(e=[[null,e,void 0]]);var a={};if(o)for(var s=0;s<this.length;s++){var l=this[s][0];null!=l&&(a[l]=!0)}for(var c=0;c<e.length;c++){var d=[].concat(e[c]);o&&a[d[0]]||(void 0!==i&&(void 0===d[5]||(d[1]="@layer".concat(d[5].length>0?" ".concat(d[5]):""," {").concat(d[1],"}")),d[5]=i),n&&(d[2]?(d[1]="@media ".concat(d[2]," {").concat(d[1],"}"),d[2]=n):d[2]=n),r&&(d[4]?(d[1]="@supports (".concat(d[4],") {").concat(d[1],"}"),d[4]=r):d[4]="".concat(r)),t.push(d))}},t}},601:e=>{e.exports=function(e){return e[1]}},801:(e,t,n)=>{n.d(t,{A:()=>l});var o=n(601),r=n.n(o),i=n(314),a=n.n(i)()(r());a.push([e.id,":host {\n display: contents;\n}\n\n[part=grid] {\n display: grid;\n grid-template-columns: auto 0.5rem 1fr;\n grid-template-rows: auto 1fr;\n height: 100%;\n}\n\n[part=header] {\n display: flex;\n grid-column: 1 / 4;\n grid-row: 1;\n border-bottom: 2px solid #453C4F;\n}\n\n[part=header] > button {\n display: flex;\n border: 0;\n padding: 0.5rem;\n background-color: transparent;\n border-right: 1px solid rgba(69, 60, 79, 0.5);\n outline: none;\n}\n\n[part=header] > button:hover {\n background-color: rgba(69, 60, 79, 0.10);\n}\n\n[part=header] > button:focus-visible {\n position: relative;\n}\n\n[part=header] > button:focus-visible::before {\n pointer-events: none;\n content: '';\n position: absolute;\n top: 3px;\n right: 3px;\n bottom: 3px;\n left: 3px;\n box-shadow: 0 0 0 3px var(--pg-focus-color, rgba(79, 143, 249, 0.5));\n}\n\n[part=header] > button.selected {\n --pg-icon-color: rgb(79, 143, 249);\n}\n\n[part=header] > button.selected:hover {\n background-color: #fff;\n}\n\n[part=side] {\n display: flex;\n grid-column: 1;\n grid-row: 2;\n min-width: 10rem;\n max-width: 20rem;\n}\n\nslot[name=main] {\n display: flex;\n grid-column: 3;\n grid-row: 2;\n}\n\n[part=resize] {\n display: flex;\n grid-column: 2;\n grid-row: 2;\n border: 0;\n padding: 0;\n cursor: ew-resize;\n border-left: 1px solid #453C4F;\n border-right: 1px solid #453C4F;\n background-color: transparent;\n}\n\n[part=resize].dragging {\n background-color: var(--pg-focus-color, rgb(79, 143, 249, 0.5))\n}\n\n[part=home] {\n display: flex;\n grid-column: 1 / 4;\n grid-row: 2;\n background-color: #fff;\n position: relative;\n}\n\n[part=home]::before {\n content: ' ';\n position: absolute;\n top: -2px;\n width: 2.5rem;\n height: 2px;\n background-color: #fff;\n}\n\n[part=home].selected {\n background-color: #fff;\n}\n\n.hide {\n display: none;\n}",""]);var s=new CSSStyleSheet;s.replaceSync(a.toString());const l=s}},t={};function n(o){var r=t[o];if(void 0!==r)return r.exports;var i=t[o]={id:o,exports:{}};return e[o](i,i.exports,n),i.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);Symbol("addObserver"),Symbol("removeObserver"),Symbol("getObservers"),Symbol("isProxy"),Symbol("getTarget");const o=new Map;window.observers=o;Error;Symbol("index");const r=Symbol("init"),i=Symbol("template"),a=Symbol("style"),s=Symbol("parent");function l(e){return e.replace(/-([a-z])/g,(e=>e[1].toUpperCase()))}function c(e={}){return function(t,n){if("class"!==n.kind)throw new Error("@Component() can only decorate a class");var o,c;Reflect.defineProperty(t,"name",{value:e.selector,writable:!1,configurable:!1}),!t.prototype[s]||t.prototype[s][t.prototype[s].length-1]instanceof Object.getPrototypeOf(t)?t.prototype instanceof HTMLElement&&(t.prototype[s]=[t.prototype],t.prototype[a]=e.style?[e.style]:[],t.prototype[i]=e.template||""):(t.prototype[s].push(t.prototype),t.prototype[a].push(e.style),t.prototype[i]=(o=t.prototype[i],(c=e.template||null)&&c.match(/<parent\/>/)?c.replace(/<parent\/>/,o):`${o}${c||""}`));const d=t.prototype.connectedCallback||(()=>{}),p=t.prototype.disconnectedCallback||(()=>{});t.prototype.connectedCallback=function(){if(this[r]||void 0!==e.template||void 0!==e.style)if(this[r]){if(this[r]&&e.style);else if(this[r]&&e.selector&&!e.template)throw new Error("You need to pass a template for an extended element.")}else{if(!1===e.useShadow)throw new Error("unsupported");{const e=document.createElement("template");e.innerHTML=t.prototype[i]||"";const n=document.importNode(e.content,!0),o=this.attachShadow({mode:"open"});o.adoptedStyleSheets=t.prototype[a].map((e=>{if(e instanceof CSSStyleSheet)return e;var t=new CSSStyleSheet;return t.replaceSync(e.toString()),t})),o.appendChild(n)}}else!1===e.useShadow||this.attachShadow({mode:"open"});const n=new Set;for(const e of this.shadowRoot.querySelectorAll("*"))-1!==e.localName.indexOf("-")&&n.add(e.localName);const o=Array.from(n.values()).map((e=>customElements.get(e)?Promise.resolve():customElements.whenDefined(e))),c=()=>{this[s].map((e=>{e.render&&e.render.call(this,t.observedAttributes?t.observedAttributes.reduce(((e,t)=>(e[l(t)]=!0,e)),{}):{})}))};0===o.length?(this[r]=!0,d.call(this),c()):Promise.all(o).then((()=>{this[r]=!0,d.call(this);for(const e of this.shadowRoot.querySelectorAll("slot"))e.dispatchEvent(new CustomEvent("slotchange"));c()}))},t.prototype.disconnectedCallback=function(){p.call(this)},t.prototype.attributeChangedCallback=function(e,t,n){this[l(e)]=n},n.addInitializer((function(){if(e.selector){if(window.customElements.get(e.selector))throw new Error(`@Component() ${n.name} duplicate selector '${e.selector}'`);window.customElements.define(e.selector,t)}}))}}Symbol("transmute");function d(){return function(e,t){const n=t.name,o=n.replace(/^\$/,"");t.addInitializer((function(){let e=null;Reflect.defineProperty(this,n,{get(){return e??(e=this.shadowRoot?.querySelector(`[part~=${o}]`))}})}))}}Symbol("hasProxy");Symbol("meta");var p=n(801),u=function(e,t,n,o,r,i){function a(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var s,l=o.kind,c="getter"===l?"get":"setter"===l?"set":"value",d=!t&&e?o.static?e:e.prototype:null,p=t||(d?Object.getOwnPropertyDescriptor(d,o.name):{}),u=!1,h=n.length-1;h>=0;h--){var m={};for(var f in o)m[f]="access"===f?{}:o[f];for(var f in o.access)m.access[f]=o.access[f];m.addInitializer=function(e){if(u)throw new TypeError("Cannot add initializers after decoration has completed");i.push(a(e||null))};var g=(0,n[h])("accessor"===l?{get:p.get,set:p.set}:p[c],m);if("accessor"===l){if(void 0===g)continue;if(null===g||"object"!=typeof g)throw new TypeError("Object expected");(s=a(g.get))&&(p.get=s),(s=a(g.set))&&(p.set=s),(s=a(g.init))&&r.unshift(s)}else(s=a(g))&&("field"===l?r.unshift(s):p[c]=s)}d&&Object.defineProperty(d,o.name,p),u=!0},h=function(e,t,n){for(var o=arguments.length>2,r=0;r<t.length;r++)n=o?t[r].call(e,n):t[r].call(e);return o?n:void 0};(()=>{let e,t,n,o,r,i,a=[c({selector:"pg-app",style:p.A,template:'<div part="grid"> <header part="header"> <button part="logo"> <slot name="icon"></slot> </button> <slot name="top"></slot> </header> <div part="side"> <slot name="side"></slot> </div> <button part="resize"></button> <slot name="main"></slot> <div part="home" class="hide"> <slot name="home"></slot> </div> </div>'})],s=[],l=HTMLElement,m=[],f=[],g=[],b=[],y=[],v=[],w=[],S=[];(class extends l{static{t=this}static{const c="function"==typeof Symbol&&Symbol.metadata?Object.create(l[Symbol.metadata]??null):void 0;n=[d()],o=[d()],r=[d()],i=[d()],u(null,null,n,{kind:"field",name:"$logo",static:!1,private:!1,access:{has:e=>"$logo"in e,get:e=>e.$logo,set:(e,t)=>{e.$logo=t}},metadata:c},m,f),u(null,null,o,{kind:"field",name:"$home",static:!1,private:!1,access:{has:e=>"$home"in e,get:e=>e.$home,set:(e,t)=>{e.$home=t}},metadata:c},g,b),u(null,null,r,{kind:"field",name:"$side",static:!1,private:!1,access:{has:e=>"$side"in e,get:e=>e.$side,set:(e,t)=>{e.$side=t}},metadata:c},y,v),u(null,null,i,{kind:"field",name:"$resize",static:!1,private:!1,access:{has:e=>"$resize"in e,get:e=>e.$resize,set:(e,t)=>{e.$resize=t}},metadata:c},w,S),u(null,e={value:t},a,{kind:"class",name:t.name,metadata:c},null,s),t=e.value,c&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:c}),h(t,s)}$logo=h(this,m,void 0);$home=(h(this,f),h(this,g,void 0));$side=(h(this,b),h(this,y,void 0));$resize=(h(this,v),h(this,w,void 0));connectedCallback(){this.$logo.addEventListener("click",this.#e.bind(this)),this.$resize.addEventListener("pointerdown",this.#t.bind(this))}#e(){this.$logo.classList.toggle("selected"),this.$home.classList.toggle("hide")}#t(e){const{clientX:t}=e;this.$resize.classList.add("dragging");const n=this.$side.getBoundingClientRect().width;let o=t;const r=e=>{const t=o-e.clientX,r=n-t;this.$side.style.width=`${r}px`},i=()=>{this.$resize.classList.remove("dragging"),document.removeEventListener("pointermove",r),document.removeEventListener("pointerup",i)};document.addEventListener("pointermove",r),document.addEventListener("pointerup",i)}constructor(){super(...arguments),h(this,S)}})})()})();
|
package/pgAvatar.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(()=>{"use strict";var e={17:(e,t,r)=>{r.d(t,{A:()=>l});var o=r(601),n=r.n(o),a=r(314),i=r.n(a)()(n());i.push([e.id,':host {\n display: flex;\n position: relative;\n width: var(--pg-avatar-width, 3rem);\n height: var(--pg-avatar-height, 3rem);\n}\n\n[part="wrap"] {\n border: 1px solid var(--pg-icon-border-color, #453C4F);\n border-radius: 50%;\n overflow: hidden;\n}\n\n[part="img"] {\n width: calc(var(--pg-avatar-width, 3rem) - 2px);\n height: calc(var(--pg-avatar-height, 3rem) - 2px);\n}\n\n[part="sponsored"] {\n display: flex;\n position: absolute;\n bottom: -0.25rem;\n right: -0.5rem;\n border: 1px solid var(--pg-icon-border-color, #453C4F);\n background-color: #fff;\n border-radius: 50%;\n color: #ea4aaa;\n width: 1.5rem;\n height: 1.5rem;\n align-content: center;\n align-items: center;\n justify-items: center;\n justify-content: center;\n}\n[part="sponsored"]:hover {\n box-shadow: 0 0 0 0.125rem #fff;\n color: #fff;\n background-color: #ea4aaa;\n border-color: #ea4aaa;\n}\n[part="sponsored"] svg {\n width: 1rem;\n height: 1rem;\n margin-top: 1px; /* meh */\n}',""]);var s=new CSSStyleSheet;s.replaceSync(i.toString());const l=s},314:e=>{e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var r="",o=void 0!==t[5];return t[4]&&(r+="@supports (".concat(t[4],") {")),t[2]&&(r+="@media ".concat(t[2]," {")),o&&(r+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),r+=e(t),o&&(r+="}"),t[2]&&(r+="}"),t[4]&&(r+="}"),r})).join("")},t.i=function(e,r,o,n,a){"string"==typeof e&&(e=[[null,e,void 0]]);var i={};if(o)for(var s=0;s<this.length;s++){var l=this[s][0];null!=l&&(i[l]=!0)}for(var p=0;p<e.length;p++){var c=[].concat(e[p]);o&&i[c[0]]||(void 0!==a&&(void 0===c[5]||(c[1]="@layer".concat(c[5].length>0?" ".concat(c[5]):""," {").concat(c[1],"}")),c[5]=a),r&&(c[2]?(c[1]="@media ".concat(c[2]," {").concat(c[1],"}"),c[2]=r):c[2]=r),n&&(c[4]?(c[1]="@supports (".concat(c[4],") {").concat(c[1],"}"),c[4]=n):c[4]="".concat(n)),t.push(c))}},t}},489:e=>{e.exports="data:image/png;base64,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"},601:e=>{e.exports=function(e){return e[1]}}},t={};function r(o){var n=t[o];if(void 0!==n)return n.exports;var a=t[o]={id:o,exports:{}};return e[o](a,a.exports,r),a.exports}r.m=e,r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.b="undefined"!=typeof document&&document.baseURI||self.location.href;const o=Symbol("addObserver"),n=Symbol("removeObserver"),a=Symbol("getObservers"),i=Symbol("isProxy"),s=Symbol("getTarget"),l=["fill","pop","push","reverse","shift","sort","splice","unshift"],p=new Map;function c(e){return new Proxy(e,{get(t,r){if("symbol"==typeof r){switch(r){case i:return!0;case s:return t;case a:return p.has(e);case o:return(t,r)=>{p.has(e)?p.get(e).has(t)?p.get(e).get(t).push(r):p.get(e).set(t,[r]):p.set(e,new Map([[t,[r]]]))};case n:return t=>{p.has(e)&&(p.get(e).delete(t),0===p.get(e).size&&p.delete(e))};case Symbol.toPrimitive:case Symbol.toStringTag:return Reflect.get(t,r)}throw new Error("Unsupported symbol")}if(r in t){if(!Number.isNaN(Number(r)))return"object"==typeof t[r]?c(t[r]):t[r];if("copyWithin"===r)throw new Error("Unsupported array method copyWithin");if(l.includes(r))return p.has(t)?function(){const e=Array.prototype[r].apply(t,arguments);return p.get(t).forEach(((e,o)=>{e.forEach((e=>{e(t,r,arguments)}))})),e}:Reflect.get(t,r);if(t[r]instanceof Array)return c(t[r])}return Reflect.get(t,r)},set(e,t,r){if("symbol"==typeof t)throw new Error("Setting symbols not allowed.");if(Array.isArray(e))return Reflect.set(e,t,r);if(p.has(e)){p.get(e).forEach(((e,o)=>{e.forEach((e=>{e(t,r)}))}))}return Reflect.set(e,t,r)}})}window.observers=p;class PropError extends Error{constructor(e,t){super(e),this.name="PropError",Error.captureStackTrace&&Error.captureStackTrace(this,t)}}Symbol("index");const h=Symbol("init"),d=Symbol("template"),b=Symbol("style"),u=Symbol("parent");function m(e){return e.replace(/([a-zA-Z])(?=[A-Z])/g,"$1-").toLowerCase()}function f(e){return e.replace(/-([a-z])/g,(e=>e[1].toUpperCase()))}function E(e={}){return function(t,r){if("class"!==r.kind)throw new Error("@Component() can only decorate a class");var o,n;Reflect.defineProperty(t,"name",{value:e.selector,writable:!1,configurable:!1}),!t.prototype[u]||t.prototype[u][t.prototype[u].length-1]instanceof Object.getPrototypeOf(t)?t.prototype instanceof HTMLElement&&(t.prototype[u]=[t.prototype],t.prototype[b]=e.style?[e.style]:[],t.prototype[d]=e.template||""):(t.prototype[u].push(t.prototype),t.prototype[b].push(e.style),t.prototype[d]=(o=t.prototype[d],(n=e.template||null)&&n.match(/<parent\/>/)?n.replace(/<parent\/>/,o):`${o}${n||""}`));const a=t.prototype.connectedCallback||(()=>{}),i=t.prototype.disconnectedCallback||(()=>{});t.prototype.connectedCallback=function(){if(this[h]||void 0!==e.template||void 0!==e.style)if(this[h]){if(this[h]&&e.style);else if(this[h]&&e.selector&&!e.template)throw new Error("You need to pass a template for an extended element.")}else{if(!1===e.useShadow)throw new Error("unsupported");{const e=document.createElement("template");e.innerHTML=t.prototype[d]||"";const r=document.importNode(e.content,!0),o=this.attachShadow({mode:"open"});o.adoptedStyleSheets=t.prototype[b].map((e=>{if(e instanceof CSSStyleSheet)return e;var t=new CSSStyleSheet;return t.replaceSync(e.toString()),t})),o.appendChild(r)}}else!1===e.useShadow||this.attachShadow({mode:"open"});const r=new Set;for(const e of this.shadowRoot.querySelectorAll("*"))-1!==e.localName.indexOf("-")&&r.add(e.localName);const o=Array.from(r.values()).map((e=>customElements.get(e)?Promise.resolve():customElements.whenDefined(e))),n=()=>{this[u].map((e=>{e.render&&e.render.call(this,t.observedAttributes?t.observedAttributes.reduce(((e,t)=>(e[f(t)]=!0,e)),{}):{})}))};0===o.length?(this[h]=!0,a.call(this),n()):Promise.all(o).then((()=>{this[h]=!0,a.call(this);for(const e of this.shadowRoot.querySelectorAll("slot"))e.dispatchEvent(new CustomEvent("slotchange"));n()}))},t.prototype.disconnectedCallback=function(){i.call(this)},t.prototype.attributeChangedCallback=function(e,t,r){this[f(e)]=r},r.addInitializer((function(){if(e.selector){if(window.customElements.get(e.selector))throw new Error(`@Component() ${r.name} duplicate selector '${e.selector}'`);window.customElements.define(e.selector,t)}}))}}Symbol("transmute");function y(e){return!!e&&e.constructor===Array}function g(e,t){e[h]&&e[u].map((r=>{r.render&&r.render.call(e,{[t]:!0})}))}function S(e){return null===e?"null":y(e)?"array":typeof e}function Q(e){return function(t,r){const o=r.name,n=Symbol(o),l=Symbol(`${o}:type`),p=Symbol(`${o}:meta`);return r.addInitializer((function(){Reflect.defineProperty(this,o,{get:()=>"object"===this[l]||"array"===this[l]?this[n][i]?this[n]:c(this[n]):this[n],set:t=>{const r=S(e?e(t):t);if("index"!==o&&this[l]!==r&&"null"!==this[l]&&"null"!==r)throw new Error(`@Prop() ${o} with type '${this[l]}' cannot be set to ${r}.`);if("array"===this[l]){if(!y(t))throw new PropError(`Array "${o}" (Prop) initialized already. Reassignments must be array type.`,Object.getOwnPropertyDescriptor(this,o)?.set);if(this[n]===t)throw new Error("Setting an array to itself is not allowed.");const e=c(this[n]);if(e[a]){const r=t[i]?(p=t)[i]&&p[s]:t;e.splice(0,this[n].length,...r)}else this[n]=t}else this[n]=e?e(t):t,g(this,o);var p}})})),function(t){if(void 0===t&&"index"!==o)throw new Error(`@Prop() ${o} must have an initial value defined.`);if(void 0!==t&&"index"===o)throw new Error("@Prop() index must not have an initial value defined.");if(!0===t)throw new Error(`@Prop() ${o} boolean must initialize to false.`);if(!r.private){const{constructor:e}=this;e.observedAttributes??=[],e.symbols||(e.symbols={});const{symbols:t}=e,r=m(o);t[o]||(e.observedAttributes.push(r),t[o]=n)}return this[l]=S(t),"array"===this[l]?(this[n]=t,new Proxy(t,{get:(e,t)=>t===A?this[p]:(console.log("errr???"),Reflect.get(this[n],t)),set:(e,t,r)=>{if(t===A)return this[p]=r,!0;const a=Reflect.set(e,t,r);return"length"===t&&this[n].length===r||g(this,o),this[n]=r,a}})):(this[n]=e?e(this.getAttribute(o)??t):this.getAttribute(o)??t,this[n])}}}function C(){return function(e,t){const r=t.name,o=r.replace(/^\$/,"");t.addInitializer((function(){let e=null;Reflect.defineProperty(this,r,{get(){return e??(e=this.shadowRoot?.querySelector(`[part~=${o}]`))}})}))}}Symbol("hasProxy");const A=Symbol("meta");const R=`<div part="wrap"> <img part="img" src="${new URL(r(489),r.b)}"/> </div> <a part="sponsored" href=""> <svg viewBox="0 0 24 24"> <path fill="currentColor" d="M12,21.35L10.55,20.03C5.4,15.36 2,12.27 2,8.5C2,5.41 4.42,3 7.5,3C9.24,3 10.91,3.81 12,5.08C13.09,3.81 14.76,3 16.5,3C19.58,3 22,5.41 22,8.5C22,12.27 18.6,15.36 13.45,20.03L12,21.35Z"/> </svg> </a>`;var w=r(17);class User{id=null;github=null;name=null;base64=null;iconCount=null;description=null;website=null;sponsored=!1;sponsorship="";core=!1;from(e){return this.id=e.id,this.github=e.github,this.name=e.name,"string"==typeof e.base64&&(e.base64.match(/^data/)?this.base64=e.base64:this.base64=`data:image/png;base64,${e.base64}`),this.iconCount=e.iconCount,this.description=e.description,this.website=e.website,this.sponsored=e.sponsored,this.sponsorship=`https://github.com/users/${e.github}/sponsorship`,this.core=e.core,this}}var v=function(e,t,r,o,n,a){function i(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var s,l=o.kind,p="getter"===l?"get":"setter"===l?"set":"value",c=!t&&e?o.static?e:e.prototype:null,h=t||(c?Object.getOwnPropertyDescriptor(c,o.name):{}),d=!1,b=r.length-1;b>=0;b--){var u={};for(var m in o)u[m]="access"===m?{}:o[m];for(var m in o.access)u.access[m]=o.access[m];u.addInitializer=function(e){if(d)throw new TypeError("Cannot add initializers after decoration has completed");a.push(i(e||null))};var f=(0,r[b])("accessor"===l?{get:h.get,set:h.set}:h[p],u);if("accessor"===l){if(void 0===f)continue;if(null===f||"object"!=typeof f)throw new TypeError("Object expected");(s=i(f.get))&&(h.get=s),(s=i(f.set))&&(h.set=s),(s=i(f.init))&&n.unshift(s)}else(s=i(f))&&("field"===l?n.unshift(s):h[p]=s)}c&&Object.defineProperty(c,o.name,h),d=!0},N=function(e,t,r){for(var o=arguments.length>2,n=0;n<t.length;n++)r=o?t[n].call(e,r):t[n].call(e);return o?r:void 0};(()=>{let e,t,r,o,n,a=[E({selector:"pg-avatar",style:w.A,template:R})],i=[],s=HTMLElement,l=[],p=[],c=[],h=[],d=[],b=[];(class extends s{static{t=this}static{const u="function"==typeof Symbol&&Symbol.metadata?Object.create(s[Symbol.metadata]??null):void 0;r=[Q()],o=[C()],n=[C()],v(null,null,r,{kind:"field",name:"user",static:!1,private:!1,access:{has:e=>"user"in e,get:e=>e.user,set:(e,t)=>{e.user=t}},metadata:u},l,p),v(null,null,o,{kind:"field",name:"$img",static:!1,private:!1,access:{has:e=>"$img"in e,get:e=>e.$img,set:(e,t)=>{e.$img=t}},metadata:u},c,h),v(null,null,n,{kind:"field",name:"$sponsored",static:!1,private:!1,access:{has:e=>"$sponsored"in e,get:e=>e.$sponsored,set:(e,t)=>{e.$sponsored=t}},metadata:u},d,b),v(null,e={value:t},a,{kind:"class",name:t.name,metadata:u},null,i),t=e.value,u&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:u}),N(t,i)}user=N(this,l,new User);$img=(N(this,p),N(this,c,void 0));$sponsored=(N(this,h),N(this,d,void 0));connectedCallback(){!function(e,t,r){e.addEventListener("mouseenter",(function(){e.dispatchEvent(new CustomEvent("tooltip",{detail:{visible:!0,rect:e.getBoundingClientRect(),text:t(),position:r??"bottom"},bubbles:!0,composed:!0}))})),e.addEventListener("mouseleave",(function(){e.dispatchEvent(new CustomEvent("tooltip",{detail:{visible:!1},bubbles:!0,composed:!0}))}))}(this.$sponsored,(()=>`Sponsor ${this.user.name} on GitHub`))}render(e){e.user&&(this.$img.src=this.user.base64||"data:image/png;base64,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",this.$sponsored.style.display=this.user.sponsored?"flex":"none",this.user.sponsored&&(this.$sponsored.href=`https://github.com/sponsors/${this.user.github}`))}constructor(){super(...arguments),N(this,b)}})})()})();
|