@mborecki/memory-game 0.1.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/dist/cjs/app-globals-V2Kpy_OQ.js +5 -0
- package/dist/cjs/index-D_ddvJ2f.js +3228 -0
- package/dist/cjs/index.cjs.js +2 -0
- package/dist/cjs/loader.cjs.js +13 -0
- package/dist/cjs/mb-memory-game.cjs.entry.js +213 -0
- package/dist/cjs/memory-game.cjs.js +25 -0
- package/dist/collection/collection-manifest.json +12 -0
- package/dist/collection/components/sliding-puzzle/memory-game.css +72 -0
- package/dist/collection/components/sliding-puzzle/memory-game.js +357 -0
- package/dist/collection/components/sliding-puzzle/tile.js +16 -0
- package/dist/collection/components/sliding-puzzle/types.js +1 -0
- package/dist/collection/index.js +1 -0
- package/dist/collection/utils/get-set.js +23 -0
- package/dist/collection/utils/get-set.test.js +31 -0
- package/dist/components/index.d.ts +35 -0
- package/dist/components/index.js +1 -0
- package/dist/components/mb-memory-game.d.ts +11 -0
- package/dist/components/mb-memory-game.js +1 -0
- package/dist/esm/app-globals-DQuL1Twl.js +3 -0
- package/dist/esm/index-D2pBOsDL.js +3221 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/loader.js +11 -0
- package/dist/esm/mb-memory-game.entry.js +211 -0
- package/dist/esm/memory-game.js +21 -0
- package/dist/index.cjs.js +1 -0
- package/dist/index.js +1 -0
- package/dist/memory-game/index.esm.js +0 -0
- package/dist/memory-game/memory-game.esm.js +1 -0
- package/dist/memory-game/p-35b15a0c.entry.js +1 -0
- package/dist/memory-game/p-D2pBOsDL.js +2 -0
- package/dist/memory-game/p-DQuL1Twl.js +1 -0
- package/dist/types/components/sliding-puzzle/memory-game.d.ts +28 -0
- package/dist/types/components/sliding-puzzle/tile.d.ts +10 -0
- package/dist/types/components/sliding-puzzle/types.d.ts +24 -0
- package/dist/types/components.d.ts +84 -0
- package/dist/types/index.d.ts +10 -0
- package/dist/types/roboczy/mb-puzzle/apps/memory-game/.stencil/apps/memory-game/vitest.config.d.ts +2 -0
- package/dist/types/roboczy/mb-puzzle/apps/memory-game/.stencil/shared/grid/src/grid.d.ts +19 -0
- package/dist/types/roboczy/mb-puzzle/apps/memory-game/.stencil/shared/grid/src/grid.test.d.ts +1 -0
- package/dist/types/roboczy/mb-puzzle/apps/memory-game/.stencil/shared/grid/vitest.config.d.ts +2 -0
- package/dist/types/roboczy/mb-puzzle/apps/memory-game/.stencil/shared/vec2/src/vec2.d.ts +29 -0
- package/dist/types/roboczy/mb-puzzle/apps/memory-game/.stencil/shared/vec2/src/vec2.test.d.ts +1 -0
- package/dist/types/roboczy/mb-puzzle/apps/memory-game/.stencil/shared/vec2/vitest.config.d.ts +2 -0
- package/dist/types/stencil-public-runtime.d.ts +1839 -0
- package/dist/types/utils/get-set.d.ts +1 -0
- package/dist/types/utils/get-set.test.d.ts +1 -0
- package/dist/vitest.config.js +4 -0
- package/loader/cdn.js +1 -0
- package/loader/index.cjs.js +1 -0
- package/loader/index.d.ts +24 -0
- package/loader/index.es2017.js +1 -0
- package/loader/index.js +2 -0
- package/package.json +53 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { b as bootstrapLazy } from './index-D2pBOsDL.js';
|
|
2
|
+
export { s as setNonce } from './index-D2pBOsDL.js';
|
|
3
|
+
import { g as globalScripts } from './app-globals-DQuL1Twl.js';
|
|
4
|
+
|
|
5
|
+
const defineCustomElements = async (win, options) => {
|
|
6
|
+
if (typeof window === 'undefined') return undefined;
|
|
7
|
+
await globalScripts();
|
|
8
|
+
return bootstrapLazy([["mb-memory-game",[[513,"mb-memory-game",{"tileGroups":[16],"reverseTile":[16],"init":[4],"cols":[2],"tiles":[32],"selected":[32],"matchedTiles":[32],"uncoverSelected":[32],"initGame":[64]},null,{"board":[{"watchBoard":0}],"matchedTiles":[{"watchMatchedTiles":0}]}]]]], options);
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export { defineCustomElements };
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { h, r as registerInstance, c as createEvent } from './index-D2pBOsDL.js';
|
|
2
|
+
|
|
3
|
+
function getSet(items, count) {
|
|
4
|
+
console.log('getSet', items, count);
|
|
5
|
+
if (items.length <= 0)
|
|
6
|
+
throw new Error("getSet() - no items");
|
|
7
|
+
if (items.length === count) {
|
|
8
|
+
return [...items];
|
|
9
|
+
}
|
|
10
|
+
let result = [];
|
|
11
|
+
while (count - result.length > items.length) {
|
|
12
|
+
result = [
|
|
13
|
+
...result,
|
|
14
|
+
...items
|
|
15
|
+
];
|
|
16
|
+
}
|
|
17
|
+
const rest = new Set();
|
|
18
|
+
while (rest.size < count - result.length) {
|
|
19
|
+
rest.add(items[Math.floor(Math.random() * items.length)]);
|
|
20
|
+
}
|
|
21
|
+
return [
|
|
22
|
+
...result,
|
|
23
|
+
...rest
|
|
24
|
+
];
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function Tile({ tile, selected, matched, uncovered, reversTile }) {
|
|
28
|
+
return h("div", { class: {
|
|
29
|
+
'tile-container': true,
|
|
30
|
+
selected,
|
|
31
|
+
matched
|
|
32
|
+
} }, h(TileRender, { tile: uncovered ? tile.data : reversTile }));
|
|
33
|
+
}
|
|
34
|
+
function TileRender({ tile }) {
|
|
35
|
+
if (tile.type === 'text') {
|
|
36
|
+
return h("button", { class: "tile tile-text" }, tile.text);
|
|
37
|
+
}
|
|
38
|
+
if (tile.type === 'image') {
|
|
39
|
+
return h("button", { class: "tile tile-image" }, h("img", { src: tile.imageSrc }));
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const memoryGameCss = () => `:host{box-sizing:border-box;display:grid;place-content:center;width:100%;height:100%;container-type:size}[part=container]{width:min(100cqw, 100cqh / var(--aspect, 1));height:min(100cqw * var(--aspect, 1), 100cqh);container-type:size;background:pink}[part=list]{width:100cqw;height:100cqh;display:grid;grid-template-columns:repeat(var(--cols, 4), 1fr);grid-template-columns:repeat(var(--rows, 4), 1fr)}[part=tile-slot]{display:block;aspect-ratio:1;padding:5%}.tile-container{min-width:0;transition:scale 0.3s;width:100%;height:100%}.tile-container:hover{scale:1.05}.tile-container.selected{scale:1.1}.tile-container.matched{scale:0}.tile{border-radius:var(--tile-border-radius, 5px);border:var(--tile-border-width, 2px) solid var(--tile-border-color, black);padding:0;margin:0}.tile-text{width:100%;height:100%;aspect-ratio:1;background:#d9d9d9;display:grid;place-content:center}.tile-image{width:100%;height:100%}.tile-image img{display:block;width:100%;height:100%;object-fit:cover}`;
|
|
44
|
+
|
|
45
|
+
const MbMemoryGame = class {
|
|
46
|
+
constructor(hostRef) {
|
|
47
|
+
registerInstance(this, hostRef);
|
|
48
|
+
this.completed = createEvent(this, "completed");
|
|
49
|
+
this.matched = createEvent(this, "matched");
|
|
50
|
+
}
|
|
51
|
+
tileGroups = [];
|
|
52
|
+
reverseTile = { type: 'text', text: '?' };
|
|
53
|
+
init = true;
|
|
54
|
+
watchBoard() {
|
|
55
|
+
if (this.init) {
|
|
56
|
+
this.initGame();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
tiles = [];
|
|
60
|
+
selected = [];
|
|
61
|
+
matchedTiles = [];
|
|
62
|
+
watchMatchedTiles() {
|
|
63
|
+
if (this.matchedTiles.length === this.tiles.length) {
|
|
64
|
+
this.completed.emit();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
cols;
|
|
68
|
+
blockUI = false;
|
|
69
|
+
uncoverSelected = false;
|
|
70
|
+
completed;
|
|
71
|
+
matched;
|
|
72
|
+
componentWillLoad() {
|
|
73
|
+
console.log('componentDidLoad', this.init);
|
|
74
|
+
if (this.init && this.tileGroups) {
|
|
75
|
+
this.initGame();
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
slots = new Map();
|
|
79
|
+
get gridCols() {
|
|
80
|
+
if (this.cols) {
|
|
81
|
+
return this.cols;
|
|
82
|
+
}
|
|
83
|
+
return Math.floor(Math.sqrt(this.tiles.length));
|
|
84
|
+
}
|
|
85
|
+
get gridRows() {
|
|
86
|
+
return Math.ceil(this.tiles.length / this.gridCols);
|
|
87
|
+
}
|
|
88
|
+
get gridAspectRatio() {
|
|
89
|
+
return this.gridCols / this.gridRows;
|
|
90
|
+
}
|
|
91
|
+
async initGame(tileGroups = this.tileGroups, reverseTile = this.reverseTile) {
|
|
92
|
+
console.log('initGame', tileGroups);
|
|
93
|
+
this.reverseTile = reverseTile;
|
|
94
|
+
this.buildTiles(tileGroups);
|
|
95
|
+
}
|
|
96
|
+
buildTiles(tileGroups) {
|
|
97
|
+
let result = [];
|
|
98
|
+
let index = 0;
|
|
99
|
+
tileGroups.forEach(tg => {
|
|
100
|
+
const tiles = getSet(tg.tiles, tg.count);
|
|
101
|
+
result = [
|
|
102
|
+
...result,
|
|
103
|
+
...tiles.map(t => {
|
|
104
|
+
return {
|
|
105
|
+
id: index++,
|
|
106
|
+
data: { ...t },
|
|
107
|
+
groupId: tg.id,
|
|
108
|
+
uncovered: false,
|
|
109
|
+
matched: false
|
|
110
|
+
};
|
|
111
|
+
})
|
|
112
|
+
];
|
|
113
|
+
});
|
|
114
|
+
this.tiles = result.sort(() => Math.random() - .5);
|
|
115
|
+
}
|
|
116
|
+
async onTileClick(id) {
|
|
117
|
+
if (this.blockUI)
|
|
118
|
+
return;
|
|
119
|
+
if (this.selected.includes(id)) {
|
|
120
|
+
this.selected = this.selected.filter(i => i !== id);
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
this.selected = [...this.selected, id];
|
|
124
|
+
if (this.selected.length === 2) {
|
|
125
|
+
const t1 = this.tiles.find(t => t.id === this.selected[0]);
|
|
126
|
+
const t2 = this.tiles.find(t => t.id === this.selected[1]);
|
|
127
|
+
if (!t1 || !t2)
|
|
128
|
+
return;
|
|
129
|
+
this.blockUI = true;
|
|
130
|
+
this.uncoverSelected = true;
|
|
131
|
+
if (t1.groupId === t2.groupId) {
|
|
132
|
+
await Promise.all([
|
|
133
|
+
this.markAsMatched(t1.id),
|
|
134
|
+
this.markAsMatched(t2.id)
|
|
135
|
+
]);
|
|
136
|
+
this.matched.emit({ t1: t1.data, t2: t2.data, groupId: t1.groupId });
|
|
137
|
+
this.matchedTiles = [
|
|
138
|
+
...this.matchedTiles, t1.id, t2.id
|
|
139
|
+
];
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
await Promise.all([
|
|
143
|
+
this.animateWrongMatch(t1.id),
|
|
144
|
+
this.animateWrongMatch(t2.id)
|
|
145
|
+
]);
|
|
146
|
+
}
|
|
147
|
+
this.uncoverSelected = false;
|
|
148
|
+
this.blockUI = false;
|
|
149
|
+
this.selected = [];
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
markAsMatched(id) {
|
|
153
|
+
return new Promise(resolve => {
|
|
154
|
+
const slot = this.slots.get(id);
|
|
155
|
+
if (!slot)
|
|
156
|
+
return;
|
|
157
|
+
const tile = slot.children[0];
|
|
158
|
+
const anim = tile.animate([], { duration: 1000 });
|
|
159
|
+
anim.addEventListener('finish', () => {
|
|
160
|
+
resolve();
|
|
161
|
+
});
|
|
162
|
+
anim.addEventListener('cancel', () => {
|
|
163
|
+
resolve();
|
|
164
|
+
});
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
animateWrongMatch(id) {
|
|
168
|
+
return new Promise(resolve => {
|
|
169
|
+
const slot = this.slots.get(id);
|
|
170
|
+
if (!slot)
|
|
171
|
+
return;
|
|
172
|
+
const tile = slot.children[0];
|
|
173
|
+
const anim = tile.animate([
|
|
174
|
+
{ rotate: "0deg" },
|
|
175
|
+
{ rotate: "0deg" },
|
|
176
|
+
{ rotate: "30deg" },
|
|
177
|
+
{ rotate: "0deg" },
|
|
178
|
+
{ rotate: "-30deg" },
|
|
179
|
+
{ rotate: "0deg" },
|
|
180
|
+
{ rotate: "0deg" },
|
|
181
|
+
], { duration: 1500 });
|
|
182
|
+
anim.addEventListener('finish', () => {
|
|
183
|
+
resolve();
|
|
184
|
+
});
|
|
185
|
+
anim.addEventListener('cancel', () => {
|
|
186
|
+
resolve();
|
|
187
|
+
});
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
render() {
|
|
191
|
+
return h("div", { key: 'bb7b898014606de493fd580e50ef685f529ac2bb', part: "container", style: {
|
|
192
|
+
'--aspect': `${this.gridAspectRatio}`
|
|
193
|
+
} }, h("div", { key: '0c677fb539e7af023c21411e70adf64050c97077', part: "list", style: {
|
|
194
|
+
'--cols': `${this.gridCols}`,
|
|
195
|
+
'--rows': `${this.gridRows}`
|
|
196
|
+
} }, this.tiles.map(t => {
|
|
197
|
+
return h("div", { part: "tile-slot", onClick: () => this.onTileClick(t.id), ref: el => this.slots.set(t.id, el) }, h(Tile, { tile: t, selected: this.selected.includes(t.id), matched: this.matchedTiles.includes(t.id), reversTile: this.reverseTile, uncovered: this.uncoverSelected && this.selected.includes(t.id) }));
|
|
198
|
+
})));
|
|
199
|
+
}
|
|
200
|
+
static get watchers() { return {
|
|
201
|
+
"board": [{
|
|
202
|
+
"watchBoard": 0
|
|
203
|
+
}],
|
|
204
|
+
"matchedTiles": [{
|
|
205
|
+
"watchMatchedTiles": 0
|
|
206
|
+
}]
|
|
207
|
+
}; }
|
|
208
|
+
};
|
|
209
|
+
MbMemoryGame.style = memoryGameCss();
|
|
210
|
+
|
|
211
|
+
export { MbMemoryGame as mb_memory_game };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { p as promiseResolve, b as bootstrapLazy } from './index-D2pBOsDL.js';
|
|
2
|
+
export { s as setNonce } from './index-D2pBOsDL.js';
|
|
3
|
+
import { g as globalScripts } from './app-globals-DQuL1Twl.js';
|
|
4
|
+
|
|
5
|
+
/*
|
|
6
|
+
Stencil Client Patch Browser v4.41.0 | MIT Licensed | https://stenciljs.com
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
var patchBrowser = () => {
|
|
10
|
+
const importMeta = import.meta.url;
|
|
11
|
+
const opts = {};
|
|
12
|
+
if (importMeta !== "") {
|
|
13
|
+
opts.resourcesUrl = new URL(".", importMeta).href;
|
|
14
|
+
}
|
|
15
|
+
return promiseResolve(opts);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
patchBrowser().then(async (options) => {
|
|
19
|
+
await globalScripts();
|
|
20
|
+
return bootstrapLazy([["mb-memory-game",[[513,"mb-memory-game",{"tileGroups":[16],"reverseTile":[16],"init":[4],"cols":[2],"tiles":[32],"selected":[32],"matchedTiles":[32],"uncoverSelected":[32],"initGame":[64]},null,{"board":[{"watchBoard":0}],"matchedTiles":[{"watchMatchedTiles":0}]}]]]], options);
|
|
21
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('./cjs/index.cjs.js');
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './esm/index.js';
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{p as e,b as t}from"./p-D2pBOsDL.js";export{s as setNonce}from"./p-D2pBOsDL.js";import{g as a}from"./p-DQuL1Twl.js";(()=>{const s=import.meta.url,t={};return""!==s&&(t.resourcesUrl=new URL(".",s).href),e(t)})().then((async e=>(await a(),t([["p-35b15a0c",[[513,"mb-memory-game",{tileGroups:[16],reverseTile:[16],init:[4],cols:[2],tiles:[32],selected:[32],matchedTiles:[32],uncoverSelected:[32],initGame:[64]},null,{board:[{watchBoard:0}],matchedTiles:[{watchMatchedTiles:0}]}]]]],e))));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{h as t,r as e,c as i}from"./p-D2pBOsDL.js";function s({tile:e,selected:i,matched:s,uncovered:a,reversTile:h}){return t("div",{class:{"tile-container":!0,selected:i,matched:s}},t(r,{tile:a?e.data:h}))}function r({tile:e}){return"text"===e.type?t("button",{class:"tile tile-text"},e.text):"image"===e.type?t("button",{class:"tile tile-image"},t("img",{src:e.imageSrc})):void 0}const a=class{constructor(t){e(this,t),this.completed=i(this,"completed"),this.matched=i(this,"matched")}tileGroups=[];reverseTile={type:"text",text:"?"};init=!0;watchBoard(){this.init&&this.initGame()}tiles=[];selected=[];matchedTiles=[];watchMatchedTiles(){this.matchedTiles.length===this.tiles.length&&this.completed.emit()}cols;blockUI=!1;uncoverSelected=!1;completed;matched;componentWillLoad(){console.log("componentDidLoad",this.init),this.init&&this.tileGroups&&this.initGame()}slots=new Map;get gridCols(){return this.cols?this.cols:Math.floor(Math.sqrt(this.tiles.length))}get gridRows(){return Math.ceil(this.tiles.length/this.gridCols)}get gridAspectRatio(){return this.gridCols/this.gridRows}async initGame(t=this.tileGroups,e=this.reverseTile){console.log("initGame",t),this.reverseTile=e,this.buildTiles(t)}buildTiles(t){let e=[],i=0;t.forEach((t=>{const s=function(t,e){if(console.log("getSet",t,e),t.length<=0)throw new Error("getSet() - no items");if(t.length===e)return[...t];let i=[];for(;e-i.length>t.length;)i=[...i,...t];const s=new Set;for(;s.size<e-i.length;)s.add(t[Math.floor(Math.random()*t.length)]);return[...i,...s]}(t.tiles,t.count);e=[...e,...s.map((e=>({id:i++,data:{...e},groupId:t.id,uncovered:!1,matched:!1})))]})),this.tiles=e.sort((()=>Math.random()-.5))}async onTileClick(t){if(!this.blockUI)if(this.selected.includes(t))this.selected=this.selected.filter((e=>e!==t));else if(this.selected=[...this.selected,t],2===this.selected.length){const t=this.tiles.find((t=>t.id===this.selected[0])),e=this.tiles.find((t=>t.id===this.selected[1]));if(!t||!e)return;this.blockUI=!0,this.uncoverSelected=!0,t.groupId===e.groupId?(await Promise.all([this.markAsMatched(t.id),this.markAsMatched(e.id)]),this.matched.emit({t1:t.data,t2:e.data,groupId:t.groupId}),this.matchedTiles=[...this.matchedTiles,t.id,e.id]):await Promise.all([this.animateWrongMatch(t.id),this.animateWrongMatch(e.id)]),this.uncoverSelected=!1,this.blockUI=!1,this.selected=[]}}markAsMatched(t){return new Promise((e=>{const i=this.slots.get(t);if(!i)return;const s=i.children[0].animate([],{duration:1e3});s.addEventListener("finish",(()=>{e()})),s.addEventListener("cancel",(()=>{e()}))}))}animateWrongMatch(t){return new Promise((e=>{const i=this.slots.get(t);if(!i)return;const s=i.children[0].animate([{rotate:"0deg"},{rotate:"0deg"},{rotate:"30deg"},{rotate:"0deg"},{rotate:"-30deg"},{rotate:"0deg"},{rotate:"0deg"}],{duration:1500});s.addEventListener("finish",(()=>{e()})),s.addEventListener("cancel",(()=>{e()}))}))}render(){return t("div",{key:"bb7b898014606de493fd580e50ef685f529ac2bb",part:"container",style:{"--aspect":`${this.gridAspectRatio}`}},t("div",{key:"0c677fb539e7af023c21411e70adf64050c97077",part:"list",style:{"--cols":`${this.gridCols}`,"--rows":`${this.gridRows}`}},this.tiles.map((e=>t("div",{part:"tile-slot",onClick:()=>this.onTileClick(e.id),ref:t=>this.slots.set(e.id,t)},t(s,{tile:e,selected:this.selected.includes(e.id),matched:this.matchedTiles.includes(e.id),reversTile:this.reverseTile,uncovered:this.uncoverSelected&&this.selected.includes(e.id)}))))))}static get watchers(){return{board:[{watchBoard:0}],matchedTiles:[{watchMatchedTiles:0}]}}};a.style=":host{box-sizing:border-box;display:grid;place-content:center;width:100%;height:100%;container-type:size}[part=container]{width:min(100cqw, 100cqh / var(--aspect, 1));height:min(100cqw * var(--aspect, 1), 100cqh);container-type:size;background:pink}[part=list]{width:100cqw;height:100cqh;display:grid;grid-template-columns:repeat(var(--cols, 4), 1fr);grid-template-columns:repeat(var(--rows, 4), 1fr)}[part=tile-slot]{display:block;aspect-ratio:1;padding:5%}.tile-container{min-width:0;transition:scale 0.3s;width:100%;height:100%}.tile-container:hover{scale:1.05}.tile-container.selected{scale:1.1}.tile-container.matched{scale:0}.tile{border-radius:var(--tile-border-radius, 5px);border:var(--tile-border-width, 2px) solid var(--tile-border-color, black);padding:0;margin:0}.tile-text{width:100%;height:100%;aspect-ratio:1;background:#d9d9d9;display:grid;place-content:center}.tile-image{width:100%;height:100%}.tile-image img{display:block;width:100%;height:100%;object-fit:cover}";export{a as mb_memory_game}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var t,e,n,i,s,r,o,l,c,h,f,u,a,p,d,v,m,b=Object.create,w=Object.defineProperty,g=Object.getOwnPropertyDescriptor,y=Object.getOwnPropertyNames,$=Object.getPrototypeOf,O=Object.prototype.hasOwnProperty,j=t=>{throw TypeError(t)},S=(t,e)=>function(){return e||(0,t[y(t)[0]])((e={exports:{}}).exports,e),e.exports},E=(t,e,n)=>e.has(t)||j("Cannot "+n),M=(t,e,n)=>(E(t,e,"read from private field"),n?n.call(t):e.get(t)),k=(t,e,n)=>e.has(t)?j("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n),x=(t,e,n)=>(E(t,e,"write to private field"),e.set(t,n),n),N=(t,e,n)=>(E(t,e,"access private method"),n),P=S({"node_modules/balanced-match/index.js"(t,e){function n(t,e,n){t instanceof RegExp&&(t=i(t,n)),e instanceof RegExp&&(e=i(e,n));var r=s(t,e,n);return r&&{start:r[0],end:r[1],pre:n.slice(0,r[0]),body:n.slice(r[0]+t.length,r[1]),post:n.slice(r[1]+e.length)}}function i(t,e){var n=e.match(t);return n?n[0]:null}function s(t,e,n){var i,s,r,o,l,c=n.indexOf(t),h=n.indexOf(e,c+1),f=c;if(c>=0&&h>0){if(t===e)return[c,h];for(i=[],r=n.length;f>=0&&!l;)f==c?(i.push(f),c=n.indexOf(t,f+1)):1==i.length?l=[i.pop(),h]:((s=i.pop())<r&&(r=s,o=h),h=n.indexOf(e,f+1)),f=c<h&&c>=0?c:h;i.length&&(l=[r,o])}return l}e.exports=n,n.range=s}}),R=S({"node_modules/brace-expansion/index.js"(t,e){var n=P();e.exports=function(t){return t?("{}"===t.substr(0,2)&&(t="\\{\\}"+t.substr(2)),v(function(t){return t.split("\\\\").join(i).split("\\{").join(s).split("\\}").join(r).split("\\,").join(o).split("\\.").join(l)}(t),!0).map(h)):[]};var i="\0SLASH"+Math.random()+"\0",s="\0OPEN"+Math.random()+"\0",r="\0CLOSE"+Math.random()+"\0",o="\0COMMA"+Math.random()+"\0",l="\0PERIOD"+Math.random()+"\0";function c(t){return parseInt(t,10)==t?parseInt(t,10):t.charCodeAt(0)}function h(t){return t.split(i).join("\\").split(s).join("{").split(r).join("}").split(o).join(",").split(l).join(".")}function f(t){if(!t)return[""];var e=[],i=n("{","}",t);if(!i)return t.split(",");var s=i.body,r=i.post,o=i.pre.split(",");o[o.length-1]+="{"+s+"}";var l=f(r);return r.length&&(o[o.length-1]+=l.shift(),o.push.apply(o,l)),e.push.apply(e,o),e}function u(t){return"{"+t+"}"}function a(t){return/^-?0\d/.test(t)}function p(t,e){return t<=e}function d(t,e){return t>=e}function v(t,e){var i=[],s=n("{","}",t);if(!s)return[t];var o=s.pre,l=s.post.length?v(s.post,!1):[""];if(/\$$/.test(s.pre))for(var h=0;h<l.length;h++)i.push(C=o+"{"+s.body+"}"+l[h]);else{var m,b,w=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(s.body),g=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(s.body),y=w||g,$=s.body.indexOf(",")>=0;if(!y&&!$)return s.post.match(/,(?!,).*\}/)?v(t=s.pre+"{"+s.body+r+s.post):[t];if(y)m=s.body.split(/\.\./);else if(1===(m=f(s.body)).length&&1===(m=v(m[0],!1).map(u)).length)return l.map((function(t){return s.pre+m[0]+t}));if(y){var O=c(m[0]),j=c(m[1]),S=Math.max(m[0].length,m[1].length),E=3==m.length?Math.abs(c(m[2])):1,M=p;j<O&&(E*=-1,M=d);var k=m.some(a);b=[];for(var x=O;M(x,j);x+=E){var N;if(g)"\\"===(N=String.fromCharCode(x))&&(N="");else if(N=x+"",k){var P=S-N.length;if(P>0){var R=Array(P+1).join("0");N=x<0?"-"+R+N.slice(1):R+N}}b.push(N)}}else{b=[];for(var W=0;W<m.length;W++)b.push.apply(b,v(m[W],!1))}for(W=0;W<b.length;W++)for(h=0;h<l.length;h++){var C=o+b[W]+l[h];(!e||y||C)&&i.push(C)}}return i}}}),W=(t,e)=>{var n;Object.entries(null!=(n=e.i.t)?n:{}).map((([n,[i]])=>{if(31&i||32&i){const i=t[n],s=function(t,e){for(;t;){const n=Object.getOwnPropertyDescriptor(t,e);if(null==n?void 0:n.get)return n;t=Object.getPrototypeOf(t)}}(Object.getPrototypeOf(t),n)||Object.getOwnPropertyDescriptor(t,n);s&&Object.defineProperty(t,n,{get(){return s.get.call(this)},set(t){s.set.call(this,t)},configurable:!0,enumerable:!0}),t[n]=e.o.has(n)?e.o.get(n):i}}))},C=t=>{if(t.__stencil__getHostRef)return t.__stencil__getHostRef()},z=(t,e)=>{e&&(t.__stencil__getHostRef=()=>e,e.l=t,512&e.i.h&&W(t,e))},A=(t,e)=>e in t,L=(t,e)=>(0,console.error)(t,e),T=new Map,_=new Map,D="slot-fb{display:contents}slot-fb[hidden]{display:none}",G="undefined"!=typeof window?window:{},U={h:0,u:"",jmp:t=>t(),raf:t=>requestAnimationFrame(t),ael:(t,e,n,i)=>t.addEventListener(e,n,i),rel:(t,e,n,i)=>t.removeEventListener(e,n,i),ce:(t,e)=>new CustomEvent(t,e)},F=t=>Promise.resolve(t),I=(()=>{try{return!!G.document.adoptedStyleSheets&&(new CSSStyleSheet,"function"==typeof(new CSSStyleSheet).replaceSync)}catch(t){}return!1})(),Z=!!I&&(()=>!!G.document&&Object.getOwnPropertyDescriptor(G.document.adoptedStyleSheets,"length").writable)(),H=!1,V=[],q=[],B=(t,e)=>n=>{t.push(n),H||(H=!0,e&&4&U.h?K(Y):U.raf(Y))},J=t=>{for(let e=0;e<t.length;e++)try{t[e](performance.now())}catch(t){L(t)}t.length=0},Y=()=>{J(V),J(q),(H=V.length>0)&&U.raf(Y)},K=t=>F().then(t),Q=B(q,!0),X=t=>"object"==(t=typeof t)||"function"===t,tt=((t,e,n)=>(n=null!=t?b($(t)):{},((t,e,n,i)=>{if(e&&"object"==typeof e||"function"==typeof e)for(let n of y(e))O.call(t,n)||undefined===n||w(t,n,{get:()=>e[n],enumerable:!(i=g(e,n))||i.enumerable});return t})(w(n,"default",{value:t,enumerable:!0}),t)))(R()),et=t=>{if("string"!=typeof t)throw new TypeError("invalid pattern");if(t.length>65536)throw new TypeError("pattern is too long")},nt={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},it=t=>t.replace(/[[\]\\-]/g,"\\$&"),st=t=>t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),rt=t=>t.join(""),ot=(t,e)=>{const n=e;if("["!==t.charAt(n))throw Error("not in a brace expression");const i=[],s=[];let r=n+1,o=!1,l=!1,c=!1,h=!1,f=n,u="";t:for(;r<t.length;){const e=t.charAt(r);if("!"!==e&&"^"!==e||r!==n+1){if("]"===e&&o&&!c){f=r+1;break}if(o=!0,"\\"!==e||c){if("["===e&&!c)for(const[e,[o,c,h]]of Object.entries(nt))if(t.startsWith(e,r)){if(u)return["$.",!1,t.length-n,!0];r+=e.length,h?s.push(o):i.push(o),l=l||c;continue t}c=!1,u?(e>u?i.push(it(u)+"-"+it(e)):e===u&&i.push(it(e)),u="",r++):t.startsWith("-]",r+1)?(i.push(it(e+"-")),r+=2):t.startsWith("-",r+1)?(u=e,r+=2):(i.push(it(e)),r++)}else c=!0,r++}else h=!0,r++}if(f<r)return["",!1,0,!1];if(!i.length&&!s.length)return["$.",!1,t.length-n,!0];if(0===s.length&&1===i.length&&/^\\?.$/.test(i[0])&&!h){const t=2===i[0].length?i[0].slice(-1):i[0];return[st(t),!1,f-n,!1]}const a="["+(h?"^":"")+rt(i)+"]",p="["+(h?"":"^")+rt(s)+"]";return[i.length&&s.length?"("+a+"|"+p+")":i.length?a:p,l,f-n,!0]},lt=(t,{windowsPathsNoEscape:e=!1}={})=>e?t.replace(/\[([^\/\\])\]/g,"$1"):t.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1"),ct=new Set(["!","?","+","*","@"]),ht=t=>ct.has(t),ft="(?!\\.)",ut=new Set(["[","."]),at=new Set(["..","."]),pt=new Set("().*{}+?[]^$\\!"),dt=t=>t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),vt="[^/]",mt=vt+"*?",bt=vt+"+?",wt=class b{constructor(a,p,d={}){k(this,u),((t,e,n)=>{((t,e,n)=>{e in t?w(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n})(t,e+"",n)})(this,"type"),k(this,t),k(this,e),k(this,n,!1),k(this,i,[]),k(this,s),k(this,r),k(this,o),k(this,l,!1),k(this,c),k(this,h),k(this,f,!1),this.type=a,a&&x(this,e,!0),x(this,s,p),x(this,t,M(this,s)?M(M(this,s),t):this),x(this,c,M(this,t)===this?d:M(M(this,t),c)),x(this,o,M(this,t)===this?[]:M(M(this,t),o)),"!"!==a||M(M(this,t),l)||M(this,o).push(this),x(this,r,M(this,s)?M(M(this,s),i).length:0)}get hasMagic(){if(void 0!==M(this,e))return M(this,e);for(const t of M(this,i))if("string"!=typeof t&&(t.type||t.hasMagic))return x(this,e,!0);return M(this,e)}toString(){return void 0!==M(this,h)?M(this,h):x(this,h,this.type?this.type+"("+M(this,i).map((t=>t+"")).join("|")+")":M(this,i).map((t=>t+"")).join(""))}push(...t){for(const e of t)if(""!==e){if("string"!=typeof e&&!(e instanceof b&&M(e,s)===this))throw Error("invalid part: "+e);M(this,i).push(e)}}toJSON(){var e;const n=null===this.type?M(this,i).slice().map((t=>"string"==typeof t?t:t.toJSON())):[this.type,...M(this,i).map((t=>t.toJSON()))];return this.isStart()&&!this.type&&n.unshift([]),this.isEnd()&&(this===M(this,t)||M(M(this,t),l)&&"!"===(null==(e=M(this,s))?void 0:e.type))&&n.push({}),n}isStart(){var e;if(M(this,t)===this)return!0;if(!(null==(e=M(this,s))?void 0:e.isStart()))return!1;if(0===M(this,r))return!0;const n=M(this,s);for(let t=0;t<M(this,r);t++){const e=M(n,i)[t];if(!(e instanceof b&&"!"===e.type))return!1}return!0}isEnd(){var e,n,o;if(M(this,t)===this)return!0;if("!"===(null==(e=M(this,s))?void 0:e.type))return!0;if(!(null==(n=M(this,s))?void 0:n.isEnd()))return!1;if(!this.type)return null==(o=M(this,s))?void 0:o.isEnd();const l=M(this,s)?M(M(this,s),i).length:0;return M(this,r)===l-1}copyIn(t){this.push("string"==typeof t?t:t.clone(this))}clone(t){const e=new b(this.type,t);for(const t of M(this,i))e.copyIn(t);return e}static fromGlob(t,e={}){var n;const i=new b(null,void 0,e);return N(n=b,p,d).call(n,t,i,0,e),i}toMMPattern(){if(this!==M(this,t))return M(this,t).toMMPattern();const n=""+this,[i,s,r,o]=this.toRegExpSource();if(!(r||M(this,e)||M(this,c).nocase&&!M(this,c).nocaseMagicOnly&&n.toUpperCase()!==n.toLowerCase()))return s;const l=(M(this,c).nocase?"i":"")+(o?"u":"");return Object.assign(RegExp(`^${i}$`,l),{_src:i,_glob:n})}get options(){return M(this,c)}toRegExpSource(r){var o;const h=null!=r?r:!!M(this,c).dot;if(M(this,t)===this&&N(this,u,a).call(this),!this.type){const c=this.isStart()&&this.isEnd(),f=M(this,i).map((t=>{var i;const[s,o,l,h]="string"==typeof t?N(i=b,p,m).call(i,t,M(this,e),c):t.toRegExpSource(r);return x(this,e,M(this,e)||l),x(this,n,M(this,n)||h),s})).join("");let u="";if(this.isStart()&&"string"==typeof M(this,i)[0]&&(1!==M(this,i).length||!at.has(M(this,i)[0]))){const t=ut,e=h&&t.has(f.charAt(0))||f.startsWith("\\.")&&t.has(f.charAt(2))||f.startsWith("\\.\\.")&&t.has(f.charAt(4)),n=!h&&!r&&t.has(f.charAt(0));u=e?"(?!(?:^|/)\\.\\.?(?:$|/))":n?ft:""}let a="";return this.isEnd()&&M(M(this,t),l)&&"!"===(null==(o=M(this,s))?void 0:o.type)&&(a="(?:$|\\/)"),[u+f+a,lt(f),x(this,e,!!M(this,e)),M(this,n)]}const d="*"===this.type||"+"===this.type,w="!"===this.type?"(?:(?!(?:":"(?:";let g=N(this,u,v).call(this,h);if(this.isStart()&&this.isEnd()&&!g&&"!"!==this.type){const t=""+this;return x(this,i,[t]),this.type=null,x(this,e,void 0),[t,lt(""+this),!1,!1]}let y=!d||r||h?"":N(this,u,v).call(this,!0);y===g&&(y=""),y&&(g=`(?:${g})(?:${y})*?`);let $="";return $="!"===this.type&&M(this,f)?(this.isStart()&&!h?ft:"")+bt:w+g+("!"===this.type?"))"+(!this.isStart()||h||r?"":ft)+mt+")":"@"===this.type?")":"?"===this.type?")?":"+"===this.type&&y?")":"*"===this.type&&y?")?":")"+this.type),[$,lt(g),x(this,e,!!M(this,e)),M(this,n)]}};t=new WeakMap,e=new WeakMap,n=new WeakMap,i=new WeakMap,s=new WeakMap,r=new WeakMap,o=new WeakMap,l=new WeakMap,c=new WeakMap,h=new WeakMap,f=new WeakMap,u=new WeakSet,a=function(){if(this!==M(this,t))throw Error("should only call on root");if(M(this,l))return this;let e;for(x(this,l,!0);e=M(this,o).pop();){if("!"!==e.type)continue;let t=e,n=M(t,s);for(;n;){for(let s=M(t,r)+1;!n.type&&s<M(n,i).length;s++)for(const t of M(e,i)){if("string"==typeof t)throw Error("string part in extglob AST??");t.copyIn(M(n,i)[s])}t=n,n=M(t,s)}}return this},p=new WeakSet,d=function(t,n,s,r){var o,l;let c=!1,h=!1,u=-1,a=!1;if(null===n.type){let e=s,i="";for(;e<t.length;){const s=t.charAt(e++);if(c||"\\"===s)c=!c,i+=s;else if(h)e===u+1?"^"!==s&&"!"!==s||(a=!0):"]"!==s||e===u+2&&a||(h=!1),i+=s;else if("["!==s)if(r.noext||!ht(s)||"("!==t.charAt(e))i+=s;else{n.push(i),i="";const l=new wt(s,n);e=N(o=wt,p,d).call(o,t,l,e,r),n.push(l)}else h=!0,u=e,a=!1,i+=s}return n.push(i),e}let v=s+1,m=new wt(null,n);const b=[];let w="";for(;v<t.length;){const e=t.charAt(v++);if(c||"\\"===e)c=!c,w+=e;else if(h)v===u+1?"^"!==e&&"!"!==e||(a=!0):"]"!==e||v===u+2&&a||(h=!1),w+=e;else if("["!==e)if(ht(e)&&"("===t.charAt(v)){m.push(w),w="";const n=new wt(e,m);m.push(n),v=N(l=wt,p,d).call(l,t,n,v,r)}else if("|"!==e){if(")"===e)return""===w&&0===M(n,i).length&&x(n,f,!0),m.push(w),w="",n.push(...b,m),v;w+=e}else m.push(w),w="",b.push(m),m=new wt(null,n);else h=!0,u=v,a=!1,w+=e}return n.type=null,x(n,e,void 0),x(n,i,[t.substring(s-1)]),v},v=function(t){return M(this,i).map((e=>{if("string"==typeof e)throw Error("string type in extglob ast??");const[i,s,r,o]=e.toRegExpSource(t);return x(this,n,M(this,n)||o),i})).filter((t=>!(this.isStart()&&this.isEnd()&&!t))).join("|")},m=function(t,e,n=!1){let i=!1,s="",r=!1;for(let o=0;o<t.length;o++){const l=t.charAt(o);if(i)i=!1,s+=(pt.has(l)?"\\":"")+l;else if("\\"!==l){if("["===l){const[n,i,l,c]=ot(t,o);if(l){s+=n,r=r||i,o+=l-1,e=e||c;continue}}"*"!==l?"?"!==l?s+=dt(l):(s+=vt,e=!0):(s+=n&&"*"===t?bt:mt,e=!0)}else o===t.length-1?s+="\\\\":i=!0}return[s,lt(t),!!e,r]},k(wt,p);var gt=wt,yt=(t,e,n={})=>(et(e),!(!n.nocomment&&"#"===e.charAt(0))&&new Vt(e,n).match(t)),$t=/^\*+([^+@!?\*\[\(]*)$/,Ot=t=>e=>!e.startsWith(".")&&e.endsWith(t),jt=t=>e=>e.endsWith(t),St=t=>(t=t.toLowerCase(),e=>!e.startsWith(".")&&e.toLowerCase().endsWith(t)),Et=t=>(t=t.toLowerCase(),e=>e.toLowerCase().endsWith(t)),Mt=/^\*+\.\*+$/,kt=t=>!t.startsWith(".")&&t.includes("."),xt=t=>"."!==t&&".."!==t&&t.includes("."),Nt=/^\.\*+$/,Pt=t=>"."!==t&&".."!==t&&t.startsWith("."),Rt=/^\*+$/,Wt=t=>0!==t.length&&!t.startsWith("."),Ct=t=>0!==t.length&&"."!==t&&".."!==t,zt=/^\?+([^+@!?\*\[\(]*)?$/,At=([t,e=""])=>{const n=Dt([t]);return e?(e=e.toLowerCase(),t=>n(t)&&t.toLowerCase().endsWith(e)):n},Lt=([t,e=""])=>{const n=Gt([t]);return e?(e=e.toLowerCase(),t=>n(t)&&t.toLowerCase().endsWith(e)):n},Tt=([t,e=""])=>{const n=Gt([t]);return e?t=>n(t)&&t.endsWith(e):n},_t=([t,e=""])=>{const n=Dt([t]);return e?t=>n(t)&&t.endsWith(e):n},Dt=([t])=>{const e=t.length;return t=>t.length===e&&!t.startsWith(".")},Gt=([t])=>{const e=t.length;return t=>t.length===e&&"."!==t&&".."!==t},Ut="object"==typeof process&&process?"object"==typeof process.env&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix";yt.sep="win32"===Ut?"\\":"/";var Ft=Symbol("globstar **");yt.GLOBSTAR=Ft,yt.filter=(t,e={})=>n=>yt(n,t,e);var It=(t,e={})=>Object.assign({},t,e);yt.defaults=t=>{if(!t||"object"!=typeof t||!Object.keys(t).length)return yt;const e=yt;return Object.assign(((n,i,s={})=>e(n,i,It(t,s))),{Minimatch:class extends e.Minimatch{constructor(e,n={}){super(e,It(t,n))}static defaults(n){return e.defaults(It(t,n)).Minimatch}},AST:class extends e.AST{constructor(e,n,i={}){super(e,n,It(t,i))}static fromGlob(n,i={}){return e.AST.fromGlob(n,It(t,i))}},unescape:(n,i={})=>e.unescape(n,It(t,i)),escape:(n,i={})=>e.escape(n,It(t,i)),filter:(n,i={})=>e.filter(n,It(t,i)),defaults:n=>e.defaults(It(t,n)),makeRe:(n,i={})=>e.makeRe(n,It(t,i)),braceExpand:(n,i={})=>e.braceExpand(n,It(t,i)),match:(n,i,s={})=>e.match(n,i,It(t,s)),sep:e.sep,GLOBSTAR:Ft})};var Zt=(t,e={})=>(et(t),e.nobrace||!/\{(?:(?!\{).)*\}/.test(t)?[t]:(0,tt.default)(t));yt.braceExpand=Zt,yt.makeRe=(t,e={})=>new Vt(t,e).makeRe(),yt.match=(t,e,n={})=>{const i=new Vt(e,n);return t=t.filter((t=>i.match(t))),i.options.nonull&&!t.length&&t.push(e),t};var Ht=/[?*]|[+@!]\(.*?\)|\[|\]/,Vt=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(t,e={}){et(t),this.options=e=e||{},this.pattern=t,this.platform=e.platform||Ut,this.isWindows="win32"===this.platform,this.windowsPathsNoEscape=!!e.windowsPathsNoEscape||!1===e.allowWindowsEscape,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!e.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!e.nonegate,this.comment=!1,this.empty=!1,this.partial=!!e.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=void 0!==e.windowsNoMagicRoot?e.windowsNoMagicRoot:!(!this.isWindows||!this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(const t of this.set)for(const e of t)if("string"!=typeof e)return!0;return!1}debug(...t){}make(){const t=this.pattern,e=this.options;if(!e.nocomment&&"#"===t.charAt(0))return void(this.comment=!0);if(!t)return void(this.empty=!0);this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],e.debug&&(this.debug=(...t)=>console.error(...t)),this.debug(this.pattern,this.globSet);const n=this.globSet.map((t=>this.slashSplit(t)));this.globParts=this.preprocess(n),this.debug(this.pattern,this.globParts);let i=this.globParts.map((t=>{if(this.isWindows&&this.windowsNoMagicRoot){const e=!(""!==t[0]||""!==t[1]||"?"!==t[2]&&Ht.test(t[2])||Ht.test(t[3])),n=/^[a-z]:/i.test(t[0]);if(e)return[...t.slice(0,4),...t.slice(4).map((t=>this.parse(t)))];if(n)return[t[0],...t.slice(1).map((t=>this.parse(t)))]}return t.map((t=>this.parse(t)))}));if(this.debug(this.pattern,i),this.set=i.filter((t=>-1===t.indexOf(!1))),this.isWindows)for(let t=0;t<this.set.length;t++){const e=this.set[t];""===e[0]&&""===e[1]&&"?"===this.globParts[t][2]&&"string"==typeof e[3]&&/^[a-z]:$/i.test(e[3])&&(e[2]="?")}this.debug(this.pattern,this.set)}preprocess(t){if(this.options.noglobstar)for(let e=0;e<t.length;e++)for(let n=0;n<t[e].length;n++)"**"===t[e][n]&&(t[e][n]="*");const{optimizationLevel:e=1}=this.options;return e>=2?(t=this.firstPhasePreProcess(t),t=this.secondPhasePreProcess(t)):t=e>=1?this.levelOneOptimize(t):this.adjascentGlobstarOptimize(t),t}adjascentGlobstarOptimize(t){return t.map((t=>{let e=-1;for(;-1!==(e=t.indexOf("**",e+1));){let n=e;for(;"**"===t[n+1];)n++;n!==e&&t.splice(e,n-e)}return t}))}levelOneOptimize(t){return t.map((t=>0===(t=t.reduce(((t,e)=>{const n=t[t.length-1];return"**"===e&&"**"===n?t:".."===e&&n&&".."!==n&&"."!==n&&"**"!==n?(t.pop(),t):(t.push(e),t)}),[])).length?[""]:t))}levelTwoFileOptimize(t){Array.isArray(t)||(t=this.slashSplit(t));let e=!1;do{if(e=!1,!this.preserveMultipleSlashes){for(let n=1;n<t.length-1;n++){const i=t[n];1===n&&""===i&&""===t[0]||"."!==i&&""!==i||(e=!0,t.splice(n,1),n--)}"."!==t[0]||2!==t.length||"."!==t[1]&&""!==t[1]||(e=!0,t.pop())}let n=0;for(;-1!==(n=t.indexOf("..",n+1));){const i=t[n-1];i&&"."!==i&&".."!==i&&"**"!==i&&(e=!0,t.splice(n-1,2),n-=2)}}while(e);return 0===t.length?[""]:t}firstPhasePreProcess(t){let e=!1;do{e=!1;for(let n of t){let i=-1;for(;-1!==(i=n.indexOf("**",i+1));){let s=i;for(;"**"===n[s+1];)s++;s>i&&n.splice(i+1,s-i);const r=n[i+2],o=n[i+3];if(".."!==n[i+1])continue;if(!r||"."===r||".."===r||!o||"."===o||".."===o)continue;e=!0,n.splice(i,1);const l=n.slice(0);l[i]="**",t.push(l),i--}if(!this.preserveMultipleSlashes){for(let t=1;t<n.length-1;t++){const i=n[t];1===t&&""===i&&""===n[0]||"."!==i&&""!==i||(e=!0,n.splice(t,1),t--)}"."!==n[0]||2!==n.length||"."!==n[1]&&""!==n[1]||(e=!0,n.pop())}let s=0;for(;-1!==(s=n.indexOf("..",s+1));){const t=n[s-1];t&&"."!==t&&".."!==t&&"**"!==t&&(e=!0,n.splice(s-1,2,...1===s&&"**"===n[s+1]?["."]:[]),0===n.length&&n.push(""),s-=2)}}}while(e);return t}secondPhasePreProcess(t){for(let e=0;e<t.length-1;e++)for(let n=e+1;n<t.length;n++){const i=this.partsMatch(t[e],t[n],!this.preserveMultipleSlashes);i&&(t[e]=i,t[n]=[])}return t.filter((t=>t.length))}partsMatch(t,e,n=!1){let i=0,s=0,r=[],o="";for(;i<t.length&&s<e.length;)if(t[i]===e[s])r.push("b"===o?e[s]:t[i]),i++,s++;else if(n&&"**"===t[i]&&e[s]===t[i+1])r.push(t[i]),i++;else if(n&&"**"===e[s]&&t[i]===e[s+1])r.push(e[s]),s++;else if("*"!==t[i]||!e[s]||!this.options.dot&&e[s].startsWith(".")||"**"===e[s]){if("*"!==e[s]||!t[i]||!this.options.dot&&t[i].startsWith(".")||"**"===t[i])return!1;if("a"===o)return!1;o="b",r.push(e[s]),i++,s++}else{if("b"===o)return!1;o="a",r.push(t[i]),i++,s++}return t.length===e.length&&r}parseNegate(){if(this.nonegate)return;const t=this.pattern;let e=!1,n=0;for(let i=0;i<t.length&&"!"===t.charAt(i);i++)e=!e,n++;n&&(this.pattern=t.slice(n)),this.negate=e}matchOne(t,e,n=!1){const i=this.options;if(this.isWindows){const n="string"==typeof t[0]&&/^[a-z]:$/i.test(t[0]),i=!n&&""===t[0]&&""===t[1]&&"?"===t[2]&&/^[a-z]:$/i.test(t[3]),s="string"==typeof e[0]&&/^[a-z]:$/i.test(e[0]),r=i?3:n?0:void 0,o=!s&&""===e[0]&&""===e[1]&&"?"===e[2]&&"string"==typeof e[3]&&/^[a-z]:$/i.test(e[3])?3:s?0:void 0;if("number"==typeof r&&"number"==typeof o){const[n,i]=[t[r],e[o]];n.toLowerCase()===i.toLowerCase()&&(e[o]=n,o>r?e=e.slice(o):r>o&&(t=t.slice(r)))}}const{optimizationLevel:s=1}=this.options;s>=2&&(t=this.levelTwoFileOptimize(t)),this.debug("matchOne",this,{file:t,pattern:e}),this.debug("matchOne",t.length,e.length);for(var r=0,o=0,l=t.length,c=e.length;r<l&&o<c;r++,o++){this.debug("matchOne loop");var h=e[o],f=t[r];if(this.debug(e,h,f),!1===h)return!1;if(h===Ft){this.debug("GLOBSTAR",[e,h,f]);var u=r,a=o+1;if(a===c){for(this.debug("** at the end");r<l;r++)if("."===t[r]||".."===t[r]||!i.dot&&"."===t[r].charAt(0))return!1;return!0}for(;u<l;){var p=t[u];if(this.debug("\nglobstar while",t,u,e,a,p),this.matchOne(t.slice(u),e.slice(a),n))return this.debug("globstar found match!",u,l,p),!0;if("."===p||".."===p||!i.dot&&"."===p.charAt(0)){this.debug("dot detected!",t,u,e,a);break}this.debug("globstar swallow a segment, and continue"),u++}return!(!n||(this.debug("\n>>> no match, partial?",t,u,e,a),u!==l))}let s;if("string"==typeof h?(s=f===h,this.debug("string match",h,f,s)):(s=h.test(f),this.debug("pattern match",h,f,s)),!s)return!1}if(r===l&&o===c)return!0;if(r===l)return n;if(o===c)return r===l-1&&""===t[r];throw Error("wtf?")}braceExpand(){return Zt(this.pattern,this.options)}parse(t){et(t);const e=this.options;if("**"===t)return Ft;if(""===t)return"";let n,i=null;(n=t.match(Rt))?i=e.dot?Ct:Wt:(n=t.match($t))?i=(e.nocase?e.dot?Et:St:e.dot?jt:Ot)(n[1]):(n=t.match(zt))?i=(e.nocase?e.dot?Lt:At:e.dot?Tt:_t)(n):(n=t.match(Mt))?i=e.dot?xt:kt:(n=t.match(Nt))&&(i=Pt);const s=gt.fromGlob(t,this.options).toMMPattern();return i&&"object"==typeof s&&Reflect.defineProperty(s,"test",{value:i}),s}makeRe(){if(this.regexp||!1===this.regexp)return this.regexp;const t=this.set;if(!t.length)return this.regexp=!1,this.regexp;const e=this.options,n=e.noglobstar?"[^/]*?":e.dot?"(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?":"(?:(?!(?:\\/|^)\\.).)*?",i=new Set(e.nocase?["i"]:[]);let s=t.map((t=>{const e=t.map((t=>{if(t instanceof RegExp)for(const e of t.flags.split(""))i.add(e);return"string"==typeof t?(t=>t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"))(t):t===Ft?Ft:t._src}));return e.forEach(((t,i)=>{const s=e[i+1],r=e[i-1];t===Ft&&r!==Ft&&(void 0===r?void 0!==s&&s!==Ft?e[i+1]="(?:\\/|"+n+"\\/)?"+s:e[i]=n:void 0===s?e[i-1]=r+"(?:\\/|"+n+")?":s!==Ft&&(e[i-1]=r+"(?:\\/|\\/"+n+"\\/)"+s,e[i+1]=Ft))})),e.filter((t=>t!==Ft)).join("/")})).join("|");const[r,o]=t.length>1?["(?:",")"]:["",""];s="^"+r+s+o+"$",this.negate&&(s="^(?!"+s+").+$");try{this.regexp=RegExp(s,[...i].join(""))}catch(t){this.regexp=!1}return this.regexp}slashSplit(t){return this.preserveMultipleSlashes?t.split("/"):this.isWindows&&/^\/\/[^\/]+/.test(t)?["",...t.split(/\/+/)]:t.split(/\/+/)}match(t,e=this.partial){if(this.debug("match",t,this.pattern),this.comment)return!1;if(this.empty)return""===t;if("/"===t&&e)return!0;const n=this.options;this.isWindows&&(t=t.split("\\").join("/"));const i=this.slashSplit(t);this.debug(this.pattern,"split",i);const s=this.set;this.debug(this.pattern,"set",s);let r=i[i.length-1];if(!r)for(let t=i.length-2;!r&&t>=0;t--)r=i[t];for(let t=0;t<s.length;t++){const o=s[t];let l=i;if(n.matchBase&&1===o.length&&(l=[r]),this.matchOne(l,o,e))return!!n.flipNegate||!this.negate}return!n.flipNegate&&this.negate}static defaults(t){return yt.defaults(t).Minimatch}};function qt(t){var e,n,i;return null!=(i=null==(n=null==(e=t.head)?void 0:e.querySelector('meta[name="csp-nonce"]'))?void 0:n.getAttribute("content"))?i:void 0}yt.AST=gt,yt.Minimatch=Vt,yt.escape=(t,{windowsPathsNoEscape:e=!1}={})=>e?t.replace(/[?*()[\]]/g,"[$&]"):t.replace(/[?*()[\]\\]/g,"\\$&"),yt.unescape=lt,((t,e)=>{for(var n in e)w(t,n,{get:e[n],enumerable:!0})})({},{err:()=>Jt,map:()=>Yt,ok:()=>Bt,unwrap:()=>Qt,unwrapErr:()=>Xt});var Bt=t=>({isOk:!0,isErr:!1,value:t}),Jt=t=>({isOk:!1,isErr:!0,value:t});function Yt(t,e){if(t.isOk){const n=e(t.value);return n instanceof Promise?n.then((t=>Bt(t))):Bt(n)}if(t.isErr)return Jt(t.value);throw"should never get here"}var Kt,Qt=t=>{if(t.isOk)return t.value;throw t.value},Xt=t=>{if(t.isErr)return t.value;throw t.value};function te(){const t=this.attachShadow({mode:"open"});void 0===Kt&&(Kt=null),Kt&&(Z?t.adoptedStyleSheets.push(Kt):t.adoptedStyleSheets=[...t.adoptedStyleSheets,Kt])}function ee(t,e,n){let i,s=0,r=[];for(;s<t.length;s++){if(i=t[s],i["s-sr"]&&(!e||i["s-hn"]===e)&&(void 0===n||ne(i)===n)&&(r.push(i),void 0!==n))return r;r=[...r,...ee(i.childNodes,e,n)]}return r}var ne=t=>"string"==typeof t["s-sn"]?t["s-sn"]:1===t.nodeType&&t.getAttribute("slot")||void 0;var ie=new WeakMap,se=t=>"sc-"+t.p,re=(t,e,...n)=>{let i=null,s=null,r=!1,o=!1;const l=[],c=e=>{for(let n=0;n<e.length;n++)i=e[n],Array.isArray(i)?c(i):null!=i&&"boolean"!=typeof i&&((r="function"!=typeof t&&!X(i))&&(i+=""),r&&o?l[l.length-1].v+=i:l.push(r?oe(null,i):i),o=r)};if(c(n),e){e.key&&(s=e.key);{const t=e.className||e.class;t&&(e.class="object"!=typeof t?t:Object.keys(t).filter((e=>t[e])).join(" "))}}if("function"==typeof t)return t(null===e?{}:e,l,ce);const h=oe(t,null);return h.m=e,l.length>0&&(h.$=l),h.O=s,h},oe=(t,e)=>({h:0,j:t,v:e,S:null,$:null,m:null,O:null}),le={},ce={forEach:(t,e)=>t.map(he).forEach(e),map:(t,e)=>t.map(he).map(e).map(fe)},he=t=>({vattrs:t.m,vchildren:t.$,vkey:t.O,vname:t.M,vtag:t.j,vtext:t.v}),fe=t=>{if("function"==typeof t.vtag){const e={...t.vattrs};return t.vkey&&(e.key=t.vkey),t.vname&&(e.name=t.vname),re(t.vtag,e,...t.vchildren||[])}const e=oe(t.vtag,t.vtext);return e.m=t.vattrs,e.$=t.vchildren,e.O=t.vkey,e.M=t.vname,e},ue=t=>{const e=(t=>t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"))(t);return RegExp(`(^|[^@]|@(?!supports\\s+selector\\s*\\([^{]*?${e}))(${e}\\b)`,"g")};ue("::slotted"),ue(":host"),ue(":host-context");var ae,pe=(t,e)=>null==t||X(t)?t:4&e?"false"!==t&&(""===t||!!t):2&e?"string"==typeof t?parseFloat(t):"number"==typeof t?t:NaN:t,de=(t,e)=>{const n=(t=>{var e;return null==(e=C(t))?void 0:e.$hostElement$})(t);return{emit:t=>ve(n,e,{bubbles:!0,composed:!0,cancelable:!0,detail:t})}},ve=(t,e,n)=>{const i=U.ce(e,n);return t.dispatchEvent(i),i},me=(t,e,n,i,s,r)=>{if(n===i)return;let o=A(t,e),l=e.toLowerCase();if("class"===e){const e=t.classList,s=we(n);let r=we(i);e.remove(...s.filter((t=>t&&!r.includes(t)))),e.add(...r.filter((t=>t&&!s.includes(t))))}else if("style"===e){for(const e in n)i&&null!=i[e]||(e.includes("-")?t.style.removeProperty(e):t.style[e]="");for(const e in i)n&&i[e]===n[e]||(e.includes("-")?t.style.setProperty(e,i[e]):t.style[e]=i[e])}else if("key"===e);else if("ref"===e)i&&i(t);else if(o||"o"!==e[0]||"n"!==e[1]){const l=X(i);if(o||l&&null!==i)try{if(t.tagName.includes("-"))t[e]!==i&&(t[e]=i);else{const s=null==i?"":i;"list"===e?o=!1:null!=n&&t[e]==s||("function"==typeof t.__lookupSetter__(e)?t[e]=s:t.setAttribute(e,s))}}catch(t){}null==i||!1===i?!1===i&&""!==t.getAttribute(e)||t.removeAttribute(e):(!o||4&r||s)&&!l&&1===t.nodeType&&t.setAttribute(e,i=!0===i?"":i)}else if(e="-"===e[2]?e.slice(3):A(G,l)?l.slice(2):l[2]+e.slice(3),n||i){const s=e.endsWith(ge);e=e.replace(ye,""),n&&U.rel(t,e,n,s),i&&U.ael(t,e,i,s)}},be=/\s/,we=t=>("object"==typeof t&&t&&"baseVal"in t&&(t=t.baseVal),t&&"string"==typeof t?t.split(be):[]),ge="Capture",ye=RegExp(ge+"$"),$e=(t,e,n)=>{const i=11===e.S.nodeType&&e.S.host?e.S.host:e.S,s=t&&t.m||{},r=e.m||{};for(const t of Oe(Object.keys(s)))t in r||me(i,t,s[t],void 0,n,e.h);for(const t of Oe(Object.keys(r)))me(i,t,s[t],r[t],n,e.h)};function Oe(t){return t.includes("ref")?[...t.filter((t=>"ref"!==t)),"ref"]:t}var je=!1,Se=(t,e,n)=>{const i=e.$[n];let s,r,o=0;if(null!==i.v)s=i.S=G.document.createTextNode(i.v);else{if(!G.document)throw Error("You are trying to render a Stencil component in an environment that doesn't support the DOM. Make sure to populate the [`window`](https://developer.mozilla.org/en-US/docs/Web/API/Window/window) object before rendering a component.");if(s=i.S=G.document.createElement(i.j),$e(null,i,je),i.$){const e="template"===i.j?s.content:s;for(o=0;o<i.$.length;++o)r=Se(t,i,o),r&&e.appendChild(r)}}return s["s-hn"]=ae,s},Ee=(t,e,n,i,s,r)=>{let o,l=t;for(l.shadowRoot&&l.tagName===ae&&(l=l.shadowRoot),"template"===n.j&&(l=l.content);s<=r;++s)i[s]&&(o=Se(null,n,s),o&&(i[s].S=o,Pe(l,o,e)))},Me=(t,e,n)=>{for(let i=e;i<=n;++i){const e=t[i];if(e){const t=e.S;Ne(e),t&&t.remove()}}},ke=(t,e,n=!1)=>t.j===e.j&&(n?(n&&!t.O&&e.O&&(t.O=e.O),!0):t.O===e.O),xe=(t,e,n=!1)=>{const i=e.S=t.S,s=t.$,r=e.$,o=e.v;null===o?($e(t,e,je),null!==s&&null!==r?((t,e,n,i,s=!1)=>{let r,o,l=0,c=0,h=0,f=0,u=e.length-1,a=e[0],p=e[u],d=i.length-1,v=i[0],m=i[d];const b="template"===n.j?t.content:t;for(;l<=u&&c<=d;)if(null==a)a=e[++l];else if(null==p)p=e[--u];else if(null==v)v=i[++c];else if(null==m)m=i[--d];else if(ke(a,v,s))xe(a,v,s),a=e[++l],v=i[++c];else if(ke(p,m,s))xe(p,m,s),p=e[--u],m=i[--d];else if(ke(a,m,s))xe(a,m,s),Pe(b,a.S,p.S.nextSibling),a=e[++l],m=i[--d];else if(ke(p,v,s))xe(p,v,s),Pe(b,p.S,a.S),p=e[--u],v=i[++c];else{for(h=-1,f=l;f<=u;++f)if(e[f]&&null!==e[f].O&&e[f].O===v.O){h=f;break}h>=0?(o=e[h],o.j!==v.j?r=Se(e&&e[c],n,h):(xe(o,v,s),e[h]=void 0,r=o.S),v=i[++c]):(r=Se(e&&e[c],n,c),v=i[++c]),r&&Pe(a.S.parentNode,r,a.S)}l>u?Ee(t,null==i[d+1]?null:i[d+1].S,n,i,c,d):c>d&&Me(e,l,u)})(i,s,e,r,n):null!==r?(null!==t.v&&(i.textContent=""),Ee(i,null,e,r,0,r.length-1)):!n&&null!==s&&Me(s,0,s.length-1)):t.v!==o&&(i.data=o)},Ne=t=>{t.m&&t.m.ref&&t.m.ref(null),t.$&&t.$.map(Ne)},Pe=(t,e,n)=>{if("string"==typeof e["s-sn"]){t.insertBefore(e,n);const{slotNode:i}=function(t,e){var n;if(!(e=e||(null==(n=t["s-ol"])?void 0:n.parentElement)))return{slotNode:null,slotName:""};const i=t["s-sn"]=ne(t)||"";return{slotNode:ee(function(t,e){if("__"+e in t){const n=t["__"+e];return"function"!=typeof n?n:n.bind(t)}return"function"!=typeof t[e]?t[e]:t[e].bind(t)}(e,"childNodes"),e.tagName,i)[0],slotName:i}}(e);return i&&function(t){t.dispatchEvent(new CustomEvent("slotchange",{bubbles:!1,cancelable:!1,composed:!1}))}(i),e}return t.__insertBefore?t.__insertBefore(e,n):null==t?void 0:t.insertBefore(e,n)},Re=(t,e)=>{if(e&&!t.k&&e["s-p"]){const n=e["s-p"].push(new Promise((i=>t.k=()=>{e["s-p"].splice(n-1,1),i()})))}},We=(t,e)=>{if(t.h|=16,4&t.h)return void(t.h|=512);Re(t,t.N);const n=()=>Ce(t,e);if(!e)return Q(n);queueMicrotask((()=>{n()}))},Ce=(t,e)=>{const n=t.$hostElement$,i=t.l;if(!i)throw Error(`Can't render component <${n.tagName.toLowerCase()} /> with invalid Stencil runtime! Make sure this imported component is compiled with a \`externalRuntime: true\` flag. For more information, please refer to https://stenciljs.com/docs/custom-elements#externalruntime`);let s;return e?(t.P.length&&t.P.forEach((t=>t(n))),s=Ge(i,"componentWillLoad",void 0,n)):s=Ge(i,"componentWillUpdate",void 0,n),s=ze(s,(()=>Ge(i,"componentWillRender",void 0,n))),ze(s,(()=>Le(t,i,e)))},ze=(t,e)=>Ae(t)?t.then(e).catch((t=>{console.error(t),e()})):e(),Ae=t=>t instanceof Promise||t&&t.then&&"function"==typeof t.then,Le=async(t,e,n)=>{var i;const s=t.$hostElement$,r=s["s-rc"];n&&(t=>{const e=t.i,n=t.$hostElement$,i=e.h,s=((t,e)=>{var n,i,s;const r=se(e),o=_.get(r);if(!G.document)return r;if(t=11===t.nodeType?t:G.document,o)if("string"==typeof o){let s,l=ie.get(t=t.head||t);if(l||ie.set(t,l=new Set),!l.has(r)){s=G.document.createElement("style"),s.innerHTML=o;const c=null!=(n=U.R)?n:qt(G.document);if(null!=c&&s.setAttribute("nonce",c),!(1&e.h))if("HEAD"===t.nodeName){const e=t.querySelectorAll("link[rel=preconnect]"),n=e.length>0?e[e.length-1].nextSibling:t.querySelector("style");t.insertBefore(s,(null==n?void 0:n.parentNode)===t?n:null)}else if("host"in t)if(I){const e=new(null!=(i=t.defaultView)?i:t.ownerDocument.defaultView).CSSStyleSheet;e.replaceSync(o),Z?t.adoptedStyleSheets.unshift(e):t.adoptedStyleSheets=[e,...t.adoptedStyleSheets]}else{const e=t.querySelector("style");e?e.innerHTML=o+e.innerHTML:t.prepend(s)}else t.append(s);1&e.h&&t.insertBefore(s,null),4&e.h&&(s.innerHTML+=D),l&&l.add(r)}}else{let e=ie.get(t);if(e||ie.set(t,e=new Set),!e.has(r)){const n=null!=(s=t.defaultView)?s:t.ownerDocument.defaultView;let i;if(o.constructor===n.CSSStyleSheet)i=o;else{i=new n.CSSStyleSheet;for(let t=0;t<o.cssRules.length;t++)i.insertRule(o.cssRules[t].cssText,t)}Z?t.adoptedStyleSheets.push(i):t.adoptedStyleSheets=[...t.adoptedStyleSheets,i],e.add(r)}}return r})(n.shadowRoot?n.shadowRoot:n.getRootNode(),e);10&i&&(n["s-sc"]=s,n.classList.add(s+"-h"))})(t);Te(t,e,s,n),r&&(r.map((t=>t())),s["s-rc"]=void 0);{const e=null!=(i=s["s-p"])?i:[],n=()=>_e(t);0===e.length?n():(Promise.all(e).then(n),t.h|=4,e.length=0)}},Te=(t,e,n,i)=>{try{e=e.render(),t.h&=-17,t.h|=2,((t,e,n=!1)=>{const i=t.$hostElement$,s=t.W||oe(null,null),r=(t=>t&&t.j===le)(e)?e:re(null,null,e);if(ae=i.tagName,n&&r.m)for(const t of Object.keys(r.m))i.hasAttribute(t)&&!["key","ref","style","class"].includes(t)&&(r.m[t]=i[t]);r.j=null,r.h|=4,t.W=r,r.S=s.S=i.shadowRoot||i,xe(s,r,n)})(t,e,i)}catch(e){L(e,t.$hostElement$)}return null},_e=t=>{const e=t.$hostElement$,n=t.l,i=t.N;Ge(n,"componentDidRender",void 0,e),64&t.h?Ge(n,"componentDidUpdate",void 0,e):(t.h|=64,Ue(e),Ge(n,"componentDidLoad",void 0,e),t.C(e),i||De()),t.A(e),t.k&&(t.k(),t.k=void 0),512&t.h&&K((()=>We(t,!1))),t.h&=-517},De=()=>{K((()=>ve(G,"appload",{detail:{namespace:"memory-game"}})))},Ge=(t,e,n,i)=>{if(t&&t[e])try{return t[e](n)}catch(t){L(t,i)}},Ue=t=>t.classList.add("hydrated"),Fe=(t,e,n,i)=>{const s=C(t);if(!s)return;if(!s)throw Error(`Couldn't find host element for "${i.p}" as it is unknown to this Stencil runtime. This usually happens when integrating a 3rd party Stencil component with another Stencil component or application. Please reach out to the maintainers of the 3rd party Stencil component or report this on the Stencil Discord server (https://chat.stenciljs.com) or comment on this similar [GitHub issue](https://github.com/stenciljs/core/issues/5457).`);const r=s.$hostElement$,o=s.o.get(e),l=s.h,c=s.l;if(n=pe(n,i.t[e][0]),!(8&l&&void 0!==o||n===o||Number.isNaN(o)&&Number.isNaN(n))){if(s.o.set(e,n),i.L){const t=i.L[e];t&&t.map((t=>{try{const[[i,r]]=Object.entries(t);(128&l||1&r)&&(c?c[i](n,o,e):s.P.push((()=>{s.l[i](n,o,e)})))}catch(t){L(t,r)}}))}if(2==(18&l)){if(c.componentShouldUpdate&&!1===c.componentShouldUpdate(n,o,e))return;We(s,!1)}}},Ie=(t,e,n)=>{var i,s;const r=t.prototype;{t.watchers&&!e.L&&(e.L=t.watchers),t.deserializers&&!e.T&&(e.T=t.deserializers),t.serializers&&!e._&&(e._=t.serializers);const o=Object.entries(null!=(i=e.t)?i:{});if(o.map((([t,[i]])=>{if(31&i||2&n&&32&i){const{get:s,set:o}=Object.getOwnPropertyDescriptor(r,t)||{};s&&(e.t[t][0]|=2048),o&&(e.t[t][0]|=4096),(1&n||!s)&&Object.defineProperty(r,t,{get(){{if(!(2048&e.t[t][0]))return((t,e)=>C(this).o.get(e))(0,t);const n=C(this),i=n?n.l:r;if(!i)return;return i[t]}},configurable:!0,enumerable:!0}),Object.defineProperty(r,t,{set(s){const r=C(this);if(r){if(o)return void 0===(32&i?this[t]:r.$hostElement$[t])&&r.o.get(t)&&(s=r.o.get(t)),o.call(this,pe(s,i)),void Fe(this,t,s=32&i?this[t]:r.$hostElement$[t],e);{if(!(1&n&&4096&e.t[t][0]))return Fe(this,t,s,e),void(1&n&&!r.l&&r.P.push((()=>{4096&e.t[t][0]&&r.l[t]!==r.o.get(t)&&(r.l[t]=s)})));const o=()=>{const n=r.l[t];!r.o.get(t)&&n&&r.o.set(t,n),r.l[t]=pe(s,i),Fe(this,t,r.l[t],e)};r.l?o():r.P.push((()=>{o()}))}}}})}else 1&n&&64&i&&Object.defineProperty(r,t,{value(...e){var n;const i=C(this);return null==(n=null==i?void 0:i.D)?void 0:n.then((()=>{var n;return null==(n=i.l)?void 0:n[t](...e)}))}})})),1&n){const n=new Map;r.attributeChangedCallback=function(t,i,s){U.jmp((()=>{var l;const c=n.get(t),h=C(this);if(this.hasOwnProperty(c)&&(s=this[c],delete this[c]),r.hasOwnProperty(c)&&"number"==typeof this[c]&&this[c]==s)return;if(null==c){const n=null==h?void 0:h.h;if(h&&n&&!(8&n)&&s!==i){const r=h.l,o=null==(l=e.L)?void 0:l[t];null==o||o.forEach((e=>{const[[o,l]]=Object.entries(e);null!=r[o]&&(128&n||1&l)&&r[o].call(r,s,i,t)}))}return}const f=o.find((([t])=>t===c));f&&4&f[1][0]&&(s=null!==s&&"false"!==s);const u=Object.getOwnPropertyDescriptor(r,c);s==this[c]||u.get&&!u.set||(this[c]=s)}))},t.observedAttributes=Array.from(new Set([...Object.keys(null!=(s=e.L)?s:{}),...o.filter((([t,e])=>31&e[0])).map((([t,e])=>{const i=e[1]||t;return n.set(i,t),i}))]))}}return t},Ze=(t,e)=>{Ge(t,"connectedCallback",void 0,e)},He=(t,e)=>{Ge(t,"disconnectedCallback",void 0,e||t)},Ve=(t,e={})=>{var n;if(!G.document)return void console.warn("Stencil: No document found. Skipping bootstrapping lazy components.");const i=[],s=e.exclude||[],r=G.customElements,o=G.document.head,l=o.querySelector("meta[charset]"),c=G.document.createElement("style"),h=[];let f,u=!0;Object.assign(U,e),U.u=new URL(e.resourcesUrl||"./",G.document.baseURI).href;let a=!1;if(t.map((t=>{t[1].map((e=>{var n,o,l;const c={h:e[0],p:e[1],t:e[2],G:e[3]};4&c.h&&(a=!0),c.t=e[2],c.L=null!=(n=e[4])?n:{},c._=null!=(o=e[5])?o:{},c.T=null!=(l=e[6])?l:{};const p=c.p,d=class extends HTMLElement{"s-p";"s-rc";hasRegisteredEventListeners=!1;constructor(t){if(super(t),((t,e)=>{const n={h:0,$hostElement$:t,i:e,o:new Map,U:new Map};n.D=new Promise((t=>n.A=t)),n.F=new Promise((t=>n.C=t)),t["s-p"]=[],t["s-rc"]=[],n.P=[];const i=n;t.__stencil__getHostRef=()=>i})(t=this,c),1&c.h)if(t.shadowRoot){if("open"!==t.shadowRoot.mode)throw Error(`Unable to re-use existing shadow root for ${c.p}! Mode is set to ${t.shadowRoot.mode} but Stencil only supports open shadow roots.`)}else te.call(t,c)}connectedCallback(){C(this)&&(this.hasRegisteredEventListeners||(this.hasRegisteredEventListeners=!0),f&&(clearTimeout(f),f=null),u?h.push(this):U.jmp((()=>(t=>{if(!(1&U.h)){const e=C(t);if(!e)return;const n=e.i,i=()=>{};if(1&e.h)(null==e?void 0:e.l)?Ze(e.l,t):(null==e?void 0:e.F)&&e.F.then((()=>Ze(e.l,t)));else{e.h|=1;{let n=t;for(;n=n.parentNode||n.host;)if(n["s-p"]){Re(e,e.N=n);break}}n.t&&Object.entries(n.t).map((([e,[n]])=>{if(31&n&&e in t&&t[e]!==Object.prototype[e]){const n=t[e];delete t[e],t[e]=n}})),(async(t,e,n)=>{let i;if(!(32&e.h)){if(e.h|=32,n.I){const s=((t,e)=>{const n=t.p.replace(/-/g,"_"),i=t.I;if(!i)return;const s=T.get(i);return s?s[n]:import(`./${i}.entry.js`).then((t=>(T.set(i,t),t[n])),(t=>{L(t,e.$hostElement$)}))
|
|
2
|
+
/*!__STENCIL_STATIC_IMPORT_SWITCH__*/})(n,e);if(s&&"then"in s){const t=()=>{};i=await s,t()}else i=s;if(!i)throw Error(`Constructor for "${n.p}#${e.Z}" was not found`);i.isProxied||(n.L=i.watchers,n._=i.serializers,n.T=i.deserializers,Ie(i,n,2),i.isProxied=!0);const r=()=>{};e.h|=8;try{new i(e)}catch(e){L(e,t)}e.h&=-9,e.h|=128,r(),Ze(e.l,t)}else i=t.constructor,customElements.whenDefined(t.localName).then((()=>e.h|=128));if(i&&i.style){let t;"string"==typeof i.style&&(t=i.style);const e=se(n);if(!_.has(e)){const i=()=>{};((t,e,n)=>{let i=_.get(t);I&&n?(i=i||new CSSStyleSheet,"string"==typeof i?i=e:i.replaceSync(e)):i=e,_.set(t,i)})(e,t,!!(1&n.h)),i()}}}const s=e.N,r=()=>We(e,!0);s&&s["s-rc"]?s["s-rc"].push(r):r()})(t,e,n)}i()}})(this))))}disconnectedCallback(){U.jmp((()=>(async t=>{if(!(1&U.h)){const e=C(t);(null==e?void 0:e.l)?He(e.l,t):(null==e?void 0:e.F)&&e.F.then((()=>He(e.l,t)))}ie.has(t)&&ie.delete(t),t.shadowRoot&&ie.has(t.shadowRoot)&&ie.delete(t.shadowRoot)})(this))),U.raf((()=>{var t;const e=C(this);if(!e)return;const n=h.findIndex((t=>t===this));n>-1&&h.splice(n,1),(null==(t=null==e?void 0:e.W)?void 0:t.S)instanceof Node&&!e.W.S.isConnected&&delete e.W.S}))}componentOnReady(){var t;return null==(t=C(this))?void 0:t.F}};c.I=t[0],s.includes(p)||r.get(p)||(i.push(p),r.define(p,Ie(d,c,1)))}))})),i.length>0&&(a&&(c.textContent+=D),c.textContent+=i.sort()+"{visibility:hidden}.hydrated{visibility:inherit}",c.innerHTML.length)){c.setAttribute("data-styles","");const t=null!=(n=U.R)?n:qt(G.document);null!=t&&c.setAttribute("nonce",t),o.insertBefore(c,l?l.nextSibling:o.firstChild)}u=!1,h.length?h.map((t=>t.connectedCallback())):U.jmp((()=>f=setTimeout(De,30)))},qe=t=>U.R=t;export{Ve as b,de as c,re as h,F as p,z as r,qe as s}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const o=()=>{};export{o as g}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { EventEmitter } from "../../stencil-public-runtime";
|
|
2
|
+
import { ITile, MatchedEvent, TileDefinition, TileGroup, TileID } from "./types";
|
|
3
|
+
export declare class MbMemoryGame {
|
|
4
|
+
tileGroups: TileGroup[];
|
|
5
|
+
reverseTile: TileDefinition;
|
|
6
|
+
init: boolean;
|
|
7
|
+
watchBoard(): void;
|
|
8
|
+
tiles: ITile[];
|
|
9
|
+
selected: TileID[];
|
|
10
|
+
matchedTiles: (string | number | null)[];
|
|
11
|
+
watchMatchedTiles(): void;
|
|
12
|
+
cols?: number;
|
|
13
|
+
blockUI: boolean;
|
|
14
|
+
uncoverSelected: boolean;
|
|
15
|
+
completed: EventEmitter<void>;
|
|
16
|
+
matched: EventEmitter<MatchedEvent>;
|
|
17
|
+
componentWillLoad(): void;
|
|
18
|
+
slots: Map<TileID, HTMLDivElement>;
|
|
19
|
+
get gridCols(): number;
|
|
20
|
+
get gridRows(): number;
|
|
21
|
+
get gridAspectRatio(): number;
|
|
22
|
+
initGame(tileGroups?: TileGroup[], reverseTile?: TileDefinition): Promise<void>;
|
|
23
|
+
private buildTiles;
|
|
24
|
+
onTileClick(id: string | number): Promise<void>;
|
|
25
|
+
markAsMatched(id: TileID): Promise<void>;
|
|
26
|
+
animateWrongMatch(id: TileID): Promise<void>;
|
|
27
|
+
render(): any;
|
|
28
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ITile, TileDefinition } from "./types";
|
|
2
|
+
interface Props {
|
|
3
|
+
tile: ITile;
|
|
4
|
+
selected: boolean;
|
|
5
|
+
matched: boolean;
|
|
6
|
+
uncovered: boolean;
|
|
7
|
+
reversTile: TileDefinition;
|
|
8
|
+
}
|
|
9
|
+
export declare function Tile({ tile, selected, matched, uncovered, reversTile }: Props): any;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface TileGroup {
|
|
2
|
+
id: string;
|
|
3
|
+
tiles: TileDefinition[];
|
|
4
|
+
count: number;
|
|
5
|
+
}
|
|
6
|
+
export interface TileDefinition {
|
|
7
|
+
data?: any;
|
|
8
|
+
type: 'text' | 'image' | string;
|
|
9
|
+
text?: string;
|
|
10
|
+
imageSrc?: string;
|
|
11
|
+
}
|
|
12
|
+
export type TileID = number | string;
|
|
13
|
+
export interface ITile {
|
|
14
|
+
id: TileID;
|
|
15
|
+
data: TileDefinition;
|
|
16
|
+
groupId: string;
|
|
17
|
+
uncovered: boolean;
|
|
18
|
+
matched: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface MatchedEvent {
|
|
21
|
+
t1: TileDefinition;
|
|
22
|
+
t2: TileDefinition;
|
|
23
|
+
groupId: string;
|
|
24
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/* tslint:disable */
|
|
3
|
+
/**
|
|
4
|
+
* This is an autogenerated file created by the Stencil compiler.
|
|
5
|
+
* It contains typing information for all components that exist in this project.
|
|
6
|
+
*/
|
|
7
|
+
import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
|
|
8
|
+
import { MatchedEvent, TileDefinition, TileGroup } from "./components/sliding-puzzle/types";
|
|
9
|
+
export { MatchedEvent, TileDefinition, TileGroup } from "./components/sliding-puzzle/types";
|
|
10
|
+
export namespace Components {
|
|
11
|
+
interface MbMemoryGame {
|
|
12
|
+
"cols"?: number;
|
|
13
|
+
/**
|
|
14
|
+
* @default true
|
|
15
|
+
*/
|
|
16
|
+
"init": boolean;
|
|
17
|
+
"initGame": (tileGroups?: TileGroup[], reverseTile?: TileDefinition) => Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* @default { type: 'text', text: '?' }
|
|
20
|
+
*/
|
|
21
|
+
"reverseTile": TileDefinition;
|
|
22
|
+
/**
|
|
23
|
+
* @default []
|
|
24
|
+
*/
|
|
25
|
+
"tileGroups": TileGroup[];
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export interface MbMemoryGameCustomEvent<T> extends CustomEvent<T> {
|
|
29
|
+
detail: T;
|
|
30
|
+
target: HTMLMbMemoryGameElement;
|
|
31
|
+
}
|
|
32
|
+
declare global {
|
|
33
|
+
interface HTMLMbMemoryGameElementEventMap {
|
|
34
|
+
"completed": void;
|
|
35
|
+
"matched": MatchedEvent;
|
|
36
|
+
}
|
|
37
|
+
interface HTMLMbMemoryGameElement extends Components.MbMemoryGame, HTMLStencilElement {
|
|
38
|
+
addEventListener<K extends keyof HTMLMbMemoryGameElementEventMap>(type: K, listener: (this: HTMLMbMemoryGameElement, ev: MbMemoryGameCustomEvent<HTMLMbMemoryGameElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
39
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
40
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
41
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
42
|
+
removeEventListener<K extends keyof HTMLMbMemoryGameElementEventMap>(type: K, listener: (this: HTMLMbMemoryGameElement, ev: MbMemoryGameCustomEvent<HTMLMbMemoryGameElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
43
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
44
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
45
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
46
|
+
}
|
|
47
|
+
var HTMLMbMemoryGameElement: {
|
|
48
|
+
prototype: HTMLMbMemoryGameElement;
|
|
49
|
+
new (): HTMLMbMemoryGameElement;
|
|
50
|
+
};
|
|
51
|
+
interface HTMLElementTagNameMap {
|
|
52
|
+
"mb-memory-game": HTMLMbMemoryGameElement;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
declare namespace LocalJSX {
|
|
56
|
+
interface MbMemoryGame {
|
|
57
|
+
"cols"?: number;
|
|
58
|
+
/**
|
|
59
|
+
* @default true
|
|
60
|
+
*/
|
|
61
|
+
"init"?: boolean;
|
|
62
|
+
"onCompleted"?: (event: MbMemoryGameCustomEvent<void>) => void;
|
|
63
|
+
"onMatched"?: (event: MbMemoryGameCustomEvent<MatchedEvent>) => void;
|
|
64
|
+
/**
|
|
65
|
+
* @default { type: 'text', text: '?' }
|
|
66
|
+
*/
|
|
67
|
+
"reverseTile"?: TileDefinition;
|
|
68
|
+
/**
|
|
69
|
+
* @default []
|
|
70
|
+
*/
|
|
71
|
+
"tileGroups"?: TileGroup[];
|
|
72
|
+
}
|
|
73
|
+
interface IntrinsicElements {
|
|
74
|
+
"mb-memory-game": MbMemoryGame;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
export { LocalJSX as JSX };
|
|
78
|
+
declare module "@stencil/core" {
|
|
79
|
+
export namespace JSX {
|
|
80
|
+
interface IntrinsicElements {
|
|
81
|
+
"mb-memory-game": LocalJSX.MbMemoryGame & JSXBase.HTMLAttributes<HTMLMbMemoryGameElement>;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview entry point for your component library
|
|
3
|
+
*
|
|
4
|
+
* This is the entry point for your component library. Use this file to export utilities,
|
|
5
|
+
* constants or data structure that accompany your components.
|
|
6
|
+
*
|
|
7
|
+
* DO NOT use this file to export your components. Instead, use the recommended approaches
|
|
8
|
+
* to consume components of this package as outlined in the `README.md`.
|
|
9
|
+
*/
|
|
10
|
+
export type * from './components';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Vec2 } from '@mb-puzzle/vec2';
|
|
2
|
+
export declare class Grid {
|
|
3
|
+
size: Vec2;
|
|
4
|
+
constructor(size: Vec2);
|
|
5
|
+
getIndexFromVec(v: Vec2): number;
|
|
6
|
+
getVecFromIndex(index: number): Vec2;
|
|
7
|
+
getAllIndexes(): number[];
|
|
8
|
+
getAllCells(): Vec2[];
|
|
9
|
+
isBlack(v: Vec2): boolean;
|
|
10
|
+
isWhite(v: Vec2): boolean;
|
|
11
|
+
isInGrid(v: Vec2): boolean;
|
|
12
|
+
getOrtoSiblings(v: Vec2): Vec2[];
|
|
13
|
+
static getAllIndexes(v: Vec2): number[];
|
|
14
|
+
static getAllCells(v: Vec2): Vec2[];
|
|
15
|
+
static getVecFromIndex(index: number, width: number | Vec2): Vec2;
|
|
16
|
+
static getIndexFromVec(v: Vec2, width: number | Vec2): number;
|
|
17
|
+
static isInGrid(v: Vec2, size: Vec2): boolean;
|
|
18
|
+
static getOrtoSiblings(v: Vec2, size: Vec2): Vec2[];
|
|
19
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export interface Vec2ParsableObject {
|
|
2
|
+
x: number;
|
|
3
|
+
y: number;
|
|
4
|
+
}
|
|
5
|
+
export type Vec2Source = number | number[] | Required<Vec2ParsableObject>;
|
|
6
|
+
export declare class Vec2 {
|
|
7
|
+
x: number;
|
|
8
|
+
y: number;
|
|
9
|
+
get 0(): number;
|
|
10
|
+
set 0(x: number);
|
|
11
|
+
get 1(): number;
|
|
12
|
+
set 1(y: number);
|
|
13
|
+
get width(): number;
|
|
14
|
+
set width(x: number);
|
|
15
|
+
get height(): number;
|
|
16
|
+
set height(y: number);
|
|
17
|
+
get xy(): number[];
|
|
18
|
+
get size(): number;
|
|
19
|
+
[Symbol.iterator](): Generator<number, void, unknown>;
|
|
20
|
+
constructor(x: number, y: number);
|
|
21
|
+
set(source: Vec2Source): this;
|
|
22
|
+
add(v: Vec2): Vec2;
|
|
23
|
+
sub(v: Vec2): Vec2;
|
|
24
|
+
eq(v: Vec2): boolean;
|
|
25
|
+
clone(): Vec2;
|
|
26
|
+
static from(source: Vec2Source): Vec2;
|
|
27
|
+
static add(v1: Vec2, v2: Vec2): Vec2;
|
|
28
|
+
static sub(v1: Vec2, v2: Vec2): Vec2;
|
|
29
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|