@esotericsoftware/spine-core 4.2.117 → 4.3.1
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/Animation.d.ts +426 -274
- package/dist/Animation.js +1174 -1210
- package/dist/AnimationState.d.ts +246 -201
- package/dist/AnimationState.js +508 -471
- package/dist/AnimationStateData.d.ts +12 -10
- package/dist/AnimationStateData.js +19 -20
- package/dist/AssetManagerBase.d.ts +27 -21
- package/dist/AssetManagerBase.js +67 -43
- package/dist/AtlasAttachmentLoader.d.ts +18 -12
- package/dist/AtlasAttachmentLoader.js +28 -39
- package/dist/Bone.d.ts +15 -109
- package/dist/Bone.js +22 -362
- package/dist/BoneData.d.ts +13 -28
- package/dist/BoneData.js +20 -29
- package/dist/BonePose.d.ts +132 -0
- package/dist/BonePose.js +456 -0
- package/dist/Constraint.d.ts +41 -0
- package/dist/Constraint.js +38 -0
- package/dist/ConstraintData.d.ts +16 -5
- package/dist/ConstraintData.js +15 -9
- package/dist/DrawOrder.d.ts +48 -0
- package/dist/DrawOrder.js +64 -0
- package/dist/Event.d.ts +11 -6
- package/dist/Event.js +10 -5
- package/dist/EventData.d.ts +10 -6
- package/dist/EventData.js +18 -7
- package/dist/IkConstraint.d.ts +23 -28
- package/dist/IkConstraint.js +122 -124
- package/dist/IkConstraintData.d.ts +14 -19
- package/dist/IkConstraintData.js +22 -23
- package/dist/IkConstraintPose.d.ts +49 -0
- package/dist/IkConstraintPose.js +55 -0
- package/dist/PathConstraint.d.ts +18 -23
- package/dist/PathConstraint.js +162 -139
- package/dist/PathConstraintData.d.ts +11 -14
- package/dist/PathConstraintData.js +14 -16
- package/dist/PathConstraintPose.d.ts +43 -0
- package/dist/PathConstraintPose.js +49 -0
- package/dist/Physics.d.ts +39 -0
- package/dist/Physics.js +41 -0
- package/dist/PhysicsConstraint.d.ts +26 -30
- package/dist/PhysicsConstraint.js +114 -94
- package/dist/PhysicsConstraintData.d.ts +28 -13
- package/dist/PhysicsConstraintData.js +35 -13
- package/dist/PhysicsConstraintPose.d.ts +47 -0
- package/dist/PhysicsConstraintPose.js +55 -0
- package/dist/Pose.d.ts +33 -0
- package/dist/Pose.js +30 -0
- package/dist/Posed.d.ts +58 -0
- package/dist/Posed.js +78 -0
- package/dist/PosedActive.d.ts +41 -0
- package/dist/{attachments/HasTextureRegion.js → PosedActive.js} +17 -2
- package/dist/PosedData.d.ts +40 -0
- package/dist/PosedData.js +45 -0
- package/dist/Skeleton.d.ts +110 -99
- package/dist/Skeleton.js +271 -449
- package/dist/SkeletonBinary.d.ts +1 -1
- package/dist/SkeletonBinary.js +655 -466
- package/dist/SkeletonBounds.d.ts +4 -4
- package/dist/SkeletonBounds.js +45 -46
- package/dist/SkeletonClipping.d.ts +26 -22
- package/dist/SkeletonClipping.js +654 -340
- package/dist/SkeletonData.d.ts +18 -35
- package/dist/SkeletonData.js +57 -97
- package/dist/SkeletonJson.d.ts +8 -6
- package/dist/SkeletonJson.js +895 -640
- package/dist/SkeletonRendererCore.d.ts +58 -0
- package/dist/SkeletonRendererCore.js +310 -0
- package/dist/Skin.d.ts +20 -16
- package/dist/Skin.js +58 -53
- package/dist/Slider.d.ts +46 -0
- package/dist/Slider.js +115 -0
- package/dist/SliderData.d.ts +58 -0
- package/dist/SliderData.js +59 -0
- package/dist/SliderPose.d.ts +37 -0
- package/dist/SliderPose.js +40 -0
- package/dist/Slot.d.ts +16 -38
- package/dist/Slot.js +37 -60
- package/dist/SlotData.d.ts +5 -12
- package/dist/SlotData.js +7 -15
- package/dist/SlotPose.d.ts +59 -0
- package/dist/SlotPose.js +81 -0
- package/dist/Texture.d.ts +1 -0
- package/dist/Texture.js +2 -1
- package/dist/TextureAtlas.d.ts +3 -3
- package/dist/TextureAtlas.js +49 -49
- package/dist/TransformConstraint.d.ts +16 -28
- package/dist/TransformConstraint.js +72 -209
- package/dist/TransformConstraintData.d.ts +108 -20
- package/dist/TransformConstraintData.js +274 -24
- package/dist/TransformConstraintPose.d.ts +45 -0
- package/dist/TransformConstraintPose.js +52 -0
- package/dist/Triangulator.d.ts +1 -1
- package/dist/Triangulator.js +91 -107
- package/dist/{Updatable.d.ts → Update.d.ts} +5 -12
- package/dist/Update.js +30 -0
- package/dist/Utils.d.ts +14 -3
- package/dist/Utils.js +80 -37
- package/dist/attachments/Attachment.d.ts +27 -19
- package/dist/attachments/Attachment.js +59 -35
- package/dist/attachments/AttachmentLoader.d.ts +14 -14
- package/dist/attachments/AttachmentLoader.js +1 -1
- package/dist/attachments/BoundingBoxAttachment.d.ts +1 -1
- package/dist/attachments/BoundingBoxAttachment.js +2 -2
- package/dist/attachments/ClippingAttachment.d.ts +10 -3
- package/dist/attachments/ClippingAttachment.js +12 -3
- package/dist/attachments/{HasTextureRegion.d.ts → HasSequence.d.ts} +11 -14
- package/dist/attachments/HasSequence.js +30 -0
- package/dist/attachments/MeshAttachment.d.ts +28 -35
- package/dist/attachments/MeshAttachment.js +85 -97
- package/dist/attachments/PathAttachment.d.ts +3 -3
- package/dist/attachments/PathAttachment.js +6 -6
- package/dist/attachments/PointAttachment.d.ts +11 -6
- package/dist/attachments/PointAttachment.js +8 -3
- package/dist/attachments/RegionAttachment.d.ts +25 -27
- package/dist/attachments/RegionAttachment.js +101 -113
- package/dist/attachments/Sequence.d.ts +31 -6
- package/dist/attachments/Sequence.js +79 -13
- package/dist/esm/spine-core.min.mjs +2 -2
- package/dist/esm/spine-core.mjs +7747 -6116
- package/dist/esm/spine-core.mjs.map +4 -4
- package/dist/iife/spine-core.js +7747 -6116
- package/dist/iife/spine-core.js.map +4 -4
- package/dist/iife/spine-core.min.js +2 -2
- package/dist/index.d.ts +32 -11
- package/dist/index.js +33 -12
- package/dist/polyfills.js +4 -5
- package/package.json +1 -1
- package/dist/Updatable.js +0 -30
package/dist/SkeletonData.d.ts
CHANGED
|
@@ -26,15 +26,12 @@
|
|
|
26
26
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
27
27
|
* THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
28
28
|
*****************************************************************************/
|
|
29
|
-
import { Animation } from "./Animation.js";
|
|
30
|
-
import { BoneData } from "./BoneData.js";
|
|
31
|
-
import {
|
|
32
|
-
import {
|
|
33
|
-
import {
|
|
34
|
-
import {
|
|
35
|
-
import { Skin } from "./Skin.js";
|
|
36
|
-
import { SlotData } from "./SlotData.js";
|
|
37
|
-
import { TransformConstraintData } from "./TransformConstraintData.js";
|
|
29
|
+
import type { Animation } from "./Animation.js";
|
|
30
|
+
import type { BoneData } from "./BoneData.js";
|
|
31
|
+
import type { ConstraintData } from "./ConstraintData.js";
|
|
32
|
+
import type { EventData } from "./EventData.js";
|
|
33
|
+
import type { Skin } from "./Skin.js";
|
|
34
|
+
import type { SlotData } from "./SlotData.js";
|
|
38
35
|
/** Stores the setup pose and all of the stateless data for a skeleton.
|
|
39
36
|
*
|
|
40
37
|
* See [Data objects](http://esotericsoftware.com/spine-runtime-architecture#Data-objects) in the Spine Runtimes
|
|
@@ -49,7 +46,7 @@ export declare class SkeletonData {
|
|
|
49
46
|
skins: Skin[];
|
|
50
47
|
/** The skeleton's default skin. By default this skin contains all attachments that were not in a skin in Spine.
|
|
51
48
|
*
|
|
52
|
-
* See {@link Skeleton
|
|
49
|
+
* See {@link Skeleton.getAttachmentByName}.
|
|
53
50
|
* May be null. */
|
|
54
51
|
defaultSkin: Skin | null;
|
|
55
52
|
/** The skeleton's events. */
|
|
@@ -57,13 +54,7 @@ export declare class SkeletonData {
|
|
|
57
54
|
/** The skeleton's animations. */
|
|
58
55
|
animations: Animation[];
|
|
59
56
|
/** The skeleton's IK constraints. */
|
|
60
|
-
|
|
61
|
-
/** The skeleton's transform constraints. */
|
|
62
|
-
transformConstraints: TransformConstraintData[];
|
|
63
|
-
/** The skeleton's path constraints. */
|
|
64
|
-
pathConstraints: PathConstraintData[];
|
|
65
|
-
/** The skeleton's physics constraints. */
|
|
66
|
-
physicsConstraints: PhysicsConstraintData[];
|
|
57
|
+
constraints: ConstraintData<any, any>[];
|
|
67
58
|
/** The X coordinate of the skeleton's axis aligned bounding box in the setup pose. */
|
|
68
59
|
x: number;
|
|
69
60
|
/** The Y coordinate of the skeleton's axis aligned bounding box in the setup pose. */
|
|
@@ -81,9 +72,9 @@ export declare class SkeletonData {
|
|
|
81
72
|
hash: string | null;
|
|
82
73
|
/** The dopesheet FPS in Spine. Available only when nonessential data was exported. */
|
|
83
74
|
fps: number;
|
|
84
|
-
/** The path to the images
|
|
75
|
+
/** The path to the images folder as defined in Spine. Available only when nonessential data was exported. May be null. */
|
|
85
76
|
imagesPath: string | null;
|
|
86
|
-
/** The path to the audio
|
|
77
|
+
/** The path to the audio folder as defined in Spine. Available only when nonessential data was exported. May be null. */
|
|
87
78
|
audioPath: string | null;
|
|
88
79
|
/** Finds a bone by comparing each bone's name. It is more efficient to cache the results of this method than to call it
|
|
89
80
|
* multiple times.
|
|
@@ -101,24 +92,16 @@ export declare class SkeletonData {
|
|
|
101
92
|
* multiple times.
|
|
102
93
|
* @returns May be null. */
|
|
103
94
|
findEvent(eventDataName: string): EventData | null;
|
|
95
|
+
/** Collects animations used by {@link SliderData slider constraints}.
|
|
96
|
+
*
|
|
97
|
+
* Slider animations are designed to be applied by slider constraints rather than on their own. Applications that have a user
|
|
98
|
+
* choose an animation may want to exclude them. */
|
|
99
|
+
findSliderAnimations(animations: Animation[]): Animation[];
|
|
104
100
|
/** Finds an animation by comparing each animation's name. It is more efficient to cache the results of this method than to
|
|
105
101
|
* call it multiple times.
|
|
106
102
|
* @returns May be null. */
|
|
107
103
|
findAnimation(animationName: string): Animation | null;
|
|
108
|
-
/** Finds
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
findIkConstraint(constraintName: string): IkConstraintData | null;
|
|
112
|
-
/** Finds a transform constraint by comparing each transform constraint's name. It is more efficient to cache the results of
|
|
113
|
-
* this method than to call it multiple times.
|
|
114
|
-
* @return May be null. */
|
|
115
|
-
findTransformConstraint(constraintName: string): TransformConstraintData | null;
|
|
116
|
-
/** Finds a path constraint by comparing each path constraint's name. It is more efficient to cache the results of this method
|
|
117
|
-
* than to call it multiple times.
|
|
118
|
-
* @return May be null. */
|
|
119
|
-
findPathConstraint(constraintName: string): PathConstraintData | null;
|
|
120
|
-
/** Finds a physics constraint by comparing each physics constraint's name. It is more efficient to cache the results of this method
|
|
121
|
-
* than to call it multiple times.
|
|
122
|
-
* @return May be null. */
|
|
123
|
-
findPhysicsConstraint(constraintName: string): PhysicsConstraintData | null;
|
|
104
|
+
/** Finds a constraint of the specified type by comparing each constraints's name. It is more efficient to cache the results of
|
|
105
|
+
* this method than to call it multiple times. */
|
|
106
|
+
findConstraint<T extends ConstraintData<any, any>>(constraintName: string, type: new (name: string) => T): T | null;
|
|
124
107
|
}
|
package/dist/SkeletonData.js
CHANGED
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
27
27
|
* THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
28
28
|
*****************************************************************************/
|
|
29
|
+
import { SliderData } from "./SliderData.js";
|
|
29
30
|
/** Stores the setup pose and all of the stateless data for a skeleton.
|
|
30
31
|
*
|
|
31
32
|
* See [Data objects](http://esotericsoftware.com/spine-runtime-architecture#Data-objects) in the Spine Runtimes
|
|
@@ -34,27 +35,22 @@ export class SkeletonData {
|
|
|
34
35
|
/** The skeleton's name, which by default is the name of the skeleton data file, if possible. May be null. */
|
|
35
36
|
name = null;
|
|
36
37
|
/** The skeleton's bones, sorted parent first. The root bone is always the first bone. */
|
|
37
|
-
bones =
|
|
38
|
+
bones = []; // Ordered parents first.
|
|
38
39
|
/** The skeleton's slots in the setup pose draw order. */
|
|
39
|
-
slots =
|
|
40
|
-
skins =
|
|
40
|
+
slots = []; // Setup pose draw order.
|
|
41
|
+
skins = [];
|
|
41
42
|
/** The skeleton's default skin. By default this skin contains all attachments that were not in a skin in Spine.
|
|
42
43
|
*
|
|
43
|
-
* See {@link Skeleton
|
|
44
|
+
* See {@link Skeleton.getAttachmentByName}.
|
|
44
45
|
* May be null. */
|
|
45
46
|
defaultSkin = null;
|
|
46
47
|
/** The skeleton's events. */
|
|
47
|
-
events =
|
|
48
|
+
events = [];
|
|
48
49
|
/** The skeleton's animations. */
|
|
49
|
-
animations =
|
|
50
|
+
animations = [];
|
|
50
51
|
/** The skeleton's IK constraints. */
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
transformConstraints = new Array();
|
|
54
|
-
/** The skeleton's path constraints. */
|
|
55
|
-
pathConstraints = new Array();
|
|
56
|
-
/** The skeleton's physics constraints. */
|
|
57
|
-
physicsConstraints = new Array();
|
|
52
|
+
// biome-ignore lint/suspicious/noExplicitAny: reference runtime does not restrict to specific types
|
|
53
|
+
constraints = [];
|
|
58
54
|
/** The X coordinate of the skeleton's axis aligned bounding box in the setup pose. */
|
|
59
55
|
x = 0;
|
|
60
56
|
/** The Y coordinate of the skeleton's axis aligned bounding box in the setup pose. */
|
|
@@ -72,10 +68,10 @@ export class SkeletonData {
|
|
|
72
68
|
hash = null;
|
|
73
69
|
// Nonessential
|
|
74
70
|
/** The dopesheet FPS in Spine. Available only when nonessential data was exported. */
|
|
75
|
-
fps =
|
|
76
|
-
/** The path to the images
|
|
71
|
+
fps = 30;
|
|
72
|
+
/** The path to the images folder as defined in Spine. Available only when nonessential data was exported. May be null. */
|
|
77
73
|
imagesPath = null;
|
|
78
|
-
/** The path to the audio
|
|
74
|
+
/** The path to the audio folder as defined in Spine. Available only when nonessential data was exported. May be null. */
|
|
79
75
|
audioPath = null;
|
|
80
76
|
/** Finds a bone by comparing each bone's name. It is more efficient to cache the results of this method than to call it
|
|
81
77
|
* multiple times.
|
|
@@ -83,12 +79,10 @@ export class SkeletonData {
|
|
|
83
79
|
findBone(boneName) {
|
|
84
80
|
if (!boneName)
|
|
85
81
|
throw new Error("boneName cannot be null.");
|
|
86
|
-
|
|
87
|
-
for (let i = 0, n = bones.length; i < n; i++)
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
return bone;
|
|
91
|
-
}
|
|
82
|
+
const bones = this.bones;
|
|
83
|
+
for (let i = 0, n = bones.length; i < n; i++)
|
|
84
|
+
if (bones[i].name === boneName)
|
|
85
|
+
return bones[i];
|
|
92
86
|
return null;
|
|
93
87
|
}
|
|
94
88
|
/** Finds a slot by comparing each slot's name. It is more efficient to cache the results of this method than to call it
|
|
@@ -97,12 +91,10 @@ export class SkeletonData {
|
|
|
97
91
|
findSlot(slotName) {
|
|
98
92
|
if (!slotName)
|
|
99
93
|
throw new Error("slotName cannot be null.");
|
|
100
|
-
|
|
101
|
-
for (let i = 0, n = slots.length; i < n; i++)
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
return slot;
|
|
105
|
-
}
|
|
94
|
+
const slots = this.slots;
|
|
95
|
+
for (let i = 0, n = slots.length; i < n; i++)
|
|
96
|
+
if (slots[i].name === slotName)
|
|
97
|
+
return slots[i];
|
|
106
98
|
return null;
|
|
107
99
|
}
|
|
108
100
|
/** Finds a skin by comparing each skin's name. It is more efficient to cache the results of this method than to call it
|
|
@@ -111,12 +103,10 @@ export class SkeletonData {
|
|
|
111
103
|
findSkin(skinName) {
|
|
112
104
|
if (!skinName)
|
|
113
105
|
throw new Error("skinName cannot be null.");
|
|
114
|
-
|
|
115
|
-
for (let i = 0, n = skins.length; i < n; i++)
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
return skin;
|
|
119
|
-
}
|
|
106
|
+
const skins = this.skins;
|
|
107
|
+
for (let i = 0, n = skins.length; i < n; i++)
|
|
108
|
+
if (skins[i].name === skinName)
|
|
109
|
+
return skins[i];
|
|
120
110
|
return null;
|
|
121
111
|
}
|
|
122
112
|
/** Finds an event by comparing each events's name. It is more efficient to cache the results of this method than to call it
|
|
@@ -125,83 +115,53 @@ export class SkeletonData {
|
|
|
125
115
|
findEvent(eventDataName) {
|
|
126
116
|
if (!eventDataName)
|
|
127
117
|
throw new Error("eventDataName cannot be null.");
|
|
128
|
-
|
|
129
|
-
for (let i = 0, n = events.length; i < n; i++)
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
return event;
|
|
133
|
-
}
|
|
118
|
+
const events = this.events;
|
|
119
|
+
for (let i = 0, n = events.length; i < n; i++)
|
|
120
|
+
if (events[i].name === eventDataName)
|
|
121
|
+
return events[i];
|
|
134
122
|
return null;
|
|
135
123
|
}
|
|
124
|
+
/** Collects animations used by {@link SliderData slider constraints}.
|
|
125
|
+
*
|
|
126
|
+
* Slider animations are designed to be applied by slider constraints rather than on their own. Applications that have a user
|
|
127
|
+
* choose an animation may want to exclude them. */
|
|
128
|
+
findSliderAnimations(animations) {
|
|
129
|
+
const constraints = this.constraints;
|
|
130
|
+
for (let i = 0, n = this.constraints.length; i < n; i++) {
|
|
131
|
+
const data = constraints[i];
|
|
132
|
+
if (data instanceof SliderData && data.animation != null)
|
|
133
|
+
animations.push(data.animation);
|
|
134
|
+
}
|
|
135
|
+
return animations;
|
|
136
|
+
}
|
|
136
137
|
/** Finds an animation by comparing each animation's name. It is more efficient to cache the results of this method than to
|
|
137
138
|
* call it multiple times.
|
|
138
139
|
* @returns May be null. */
|
|
139
140
|
findAnimation(animationName) {
|
|
140
141
|
if (!animationName)
|
|
141
142
|
throw new Error("animationName cannot be null.");
|
|
142
|
-
|
|
143
|
-
for (let i = 0, n = animations.length; i < n; i++)
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
return animation;
|
|
147
|
-
}
|
|
148
|
-
return null;
|
|
149
|
-
}
|
|
150
|
-
/** Finds an IK constraint by comparing each IK constraint's name. It is more efficient to cache the results of this method
|
|
151
|
-
* than to call it multiple times.
|
|
152
|
-
* @return May be null. */
|
|
153
|
-
findIkConstraint(constraintName) {
|
|
154
|
-
if (!constraintName)
|
|
155
|
-
throw new Error("constraintName cannot be null.");
|
|
156
|
-
const ikConstraints = this.ikConstraints;
|
|
157
|
-
for (let i = 0, n = ikConstraints.length; i < n; i++) {
|
|
158
|
-
const constraint = ikConstraints[i];
|
|
159
|
-
if (constraint.name == constraintName)
|
|
160
|
-
return constraint;
|
|
161
|
-
}
|
|
162
|
-
return null;
|
|
163
|
-
}
|
|
164
|
-
/** Finds a transform constraint by comparing each transform constraint's name. It is more efficient to cache the results of
|
|
165
|
-
* this method than to call it multiple times.
|
|
166
|
-
* @return May be null. */
|
|
167
|
-
findTransformConstraint(constraintName) {
|
|
168
|
-
if (!constraintName)
|
|
169
|
-
throw new Error("constraintName cannot be null.");
|
|
170
|
-
const transformConstraints = this.transformConstraints;
|
|
171
|
-
for (let i = 0, n = transformConstraints.length; i < n; i++) {
|
|
172
|
-
const constraint = transformConstraints[i];
|
|
173
|
-
if (constraint.name == constraintName)
|
|
174
|
-
return constraint;
|
|
175
|
-
}
|
|
176
|
-
return null;
|
|
177
|
-
}
|
|
178
|
-
/** Finds a path constraint by comparing each path constraint's name. It is more efficient to cache the results of this method
|
|
179
|
-
* than to call it multiple times.
|
|
180
|
-
* @return May be null. */
|
|
181
|
-
findPathConstraint(constraintName) {
|
|
182
|
-
if (!constraintName)
|
|
183
|
-
throw new Error("constraintName cannot be null.");
|
|
184
|
-
const pathConstraints = this.pathConstraints;
|
|
185
|
-
for (let i = 0, n = pathConstraints.length; i < n; i++) {
|
|
186
|
-
const constraint = pathConstraints[i];
|
|
187
|
-
if (constraint.name == constraintName)
|
|
188
|
-
return constraint;
|
|
189
|
-
}
|
|
143
|
+
const animations = this.animations;
|
|
144
|
+
for (let i = 0, n = animations.length; i < n; i++)
|
|
145
|
+
if (animations[i].name === animationName)
|
|
146
|
+
return animations[i];
|
|
190
147
|
return null;
|
|
191
148
|
}
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
149
|
+
// --- Constraints.
|
|
150
|
+
/** Finds a constraint of the specified type by comparing each constraints's name. It is more efficient to cache the results of
|
|
151
|
+
* this method than to call it multiple times. */
|
|
152
|
+
// biome-ignore lint/suspicious/noExplicitAny: reference runtime does not restrict to specific types
|
|
153
|
+
findConstraint(constraintName, type) {
|
|
196
154
|
if (!constraintName)
|
|
197
155
|
throw new Error("constraintName cannot be null.");
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
156
|
+
if (type == null)
|
|
157
|
+
throw new Error("type cannot be null.");
|
|
158
|
+
const constraints = this.constraints;
|
|
159
|
+
for (let i = 0, n = this.constraints.length; i < n; i++) {
|
|
160
|
+
const constraint = constraints[i];
|
|
161
|
+
if (constraint instanceof type && constraint.name === constraintName)
|
|
202
162
|
return constraint;
|
|
203
163
|
}
|
|
204
164
|
return null;
|
|
205
165
|
}
|
|
206
166
|
}
|
|
207
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2tlbGV0b25EYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1NrZWxldG9uRGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OytFQTJCK0U7QUFZL0U7OztZQUdZO0FBQ1osTUFBTSxPQUFPLFlBQVk7SUFFeEIsNkdBQTZHO0lBQzdHLElBQUksR0FBa0IsSUFBSSxDQUFDO0lBRTNCLHlGQUF5RjtJQUN6RixLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQVksQ0FBQyxDQUFDLHlCQUF5QjtJQUV4RCx5REFBeUQ7SUFDekQsS0FBSyxHQUFHLElBQUksS0FBSyxFQUFZLENBQUMsQ0FBQyx5QkFBeUI7SUFFeEQsS0FBSyxHQUFHLElBQUksS0FBSyxFQUFRLENBQUM7SUFFMUI7OztzQkFHa0I7SUFDbEIsV0FBVyxHQUFnQixJQUFJLENBQUM7SUFFaEMsNkJBQTZCO0lBQzdCLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBYSxDQUFDO0lBRWhDLGlDQUFpQztJQUNqQyxVQUFVLEdBQUcsSUFBSSxLQUFLLEVBQWEsQ0FBQztJQUVwQyxxQ0FBcUM7SUFDckMsYUFBYSxHQUFHLElBQUksS0FBSyxFQUFvQixDQUFDO0lBRTlDLDRDQUE0QztJQUM1QyxvQkFBb0IsR0FBRyxJQUFJLEtBQUssRUFBMkIsQ0FBQztJQUU1RCx1Q0FBdUM7SUFDdkMsZUFBZSxHQUFHLElBQUksS0FBSyxFQUFzQixDQUFDO0lBRWxELDBDQUEwQztJQUMxQyxrQkFBa0IsR0FBRyxJQUFJLEtBQUssRUFBeUIsQ0FBQztJQUV4RCxzRkFBc0Y7SUFDdEYsQ0FBQyxHQUFXLENBQUMsQ0FBQztJQUVkLHNGQUFzRjtJQUN0RixDQUFDLEdBQVcsQ0FBQyxDQUFDO0lBRWQsK0VBQStFO0lBQy9FLEtBQUssR0FBVyxDQUFDLENBQUM7SUFFbEIsZ0ZBQWdGO0lBQ2hGLE1BQU0sR0FBVyxDQUFDLENBQUM7SUFFbkI7aUJBQ2E7SUFDYixj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RSxDQUFDO1lBQzNELE1BQU0sVUFBVSxHQUFHLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLElBQUksVUFBVSxDQUFDLElBQUksSUFBSSxjQUFjO2dCQUFFLE9BQU8sVUFBVSxDQUFDO1FBQzFELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7Q0FDRCIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIFNwaW5lIFJ1bnRpbWVzIExpY2Vuc2UgQWdyZWVtZW50XG4gKiBMYXN0IHVwZGF0ZWQgQXByaWwgNSwgMjAyNS4gUmVwbGFjZXMgYWxsIHByaW9yIHZlcnNpb25zLlxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxMy0yMDI1LCBFc290ZXJpYyBTb2Z0d2FyZSBMTENcbiAqXG4gKiBJbnRlZ3JhdGlvbiBvZiB0aGUgU3BpbmUgUnVudGltZXMgaW50byBzb2Z0d2FyZSBvciBvdGhlcndpc2UgY3JlYXRpbmdcbiAqIGRlcml2YXRpdmUgd29ya3Mgb2YgdGhlIFNwaW5lIFJ1bnRpbWVzIGlzIHBlcm1pdHRlZCB1bmRlciB0aGUgdGVybXMgYW5kXG4gKiBjb25kaXRpb25zIG9mIFNlY3Rpb24gMiBvZiB0aGUgU3BpbmUgRWRpdG9yIExpY2Vuc2UgQWdyZWVtZW50OlxuICogaHR0cDovL2Vzb3Rlcmljc29mdHdhcmUuY29tL3NwaW5lLWVkaXRvci1saWNlbnNlXG4gKlxuICogT3RoZXJ3aXNlLCBpdCBpcyBwZXJtaXR0ZWQgdG8gaW50ZWdyYXRlIHRoZSBTcGluZSBSdW50aW1lcyBpbnRvIHNvZnR3YXJlXG4gKiBvciBvdGhlcndpc2UgY3JlYXRlIGRlcml2YXRpdmUgd29ya3Mgb2YgdGhlIFNwaW5lIFJ1bnRpbWVzIChjb2xsZWN0aXZlbHksXG4gKiBcIlByb2R1Y3RzXCIpLCBwcm92aWRlZCB0aGF0IGVhY2ggdXNlciBvZiB0aGUgUHJvZHVjdHMgbXVzdCBvYnRhaW4gdGhlaXIgb3duXG4gKiBTcGluZSBFZGl0b3IgbGljZW5zZSBhbmQgcmVkaXN0cmlidXRpb24gb2YgdGhlIFByb2R1Y3RzIGluIGFueSBmb3JtIG11c3RcbiAqIGluY2x1ZGUgdGhpcyBsaWNlbnNlIGFuZCBjb3B5cmlnaHQgbm90aWNlLlxuICpcbiAqIFRIRSBTUElORSBSVU5USU1FUyBBUkUgUFJPVklERUQgQlkgRVNPVEVSSUMgU09GVFdBUkUgTExDIFwiQVMgSVNcIiBBTkQgQU5ZXG4gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEXG4gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFXG4gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBFU09URVJJQyBTT0ZUV0FSRSBMTEMgQkUgTElBQkxFIEZPUiBBTllcbiAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTXG4gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVMsXG4gKiBCVVNJTkVTUyBJTlRFUlJVUFRJT04sIE9SIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTKSBIT1dFVkVSIENBVVNFRCBBTkRcbiAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUXG4gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0ZcbiAqIFRIRSBTUElORSBSVU5USU1FUywgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS5cbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuaW1wb3J0IHsgQW5pbWF0aW9uIH0gZnJvbSBcIi4vQW5pbWF0aW9uLmpzXCJcbmltcG9ydCB7IEJvbmVEYXRhIH0gZnJvbSBcIi4vQm9uZURhdGEuanNcIjtcbmltcG9ydCB7IEV2ZW50RGF0YSB9IGZyb20gXCIuL0V2ZW50RGF0YS5qc1wiO1xuaW1wb3J0IHsgSWtDb25zdHJhaW50RGF0YSB9IGZyb20gXCIuL0lrQ29uc3RyYWludERhdGEuanNcIjtcbmltcG9ydCB7IFBhdGhDb25zdHJhaW50RGF0YSB9IGZyb20gXCIuL1BhdGhDb25zdHJhaW50RGF0YS5qc1wiO1xuaW1wb3J0IHsgUGh5c2ljc0NvbnN0cmFpbnREYXRhIH0gZnJvbSBcIi4vUGh5c2ljc0NvbnN0cmFpbnREYXRhLmpzXCI7XG5pbXBvcnQgeyBTa2luIH0gZnJvbSBcIi4vU2tpbi5qc1wiO1xuaW1wb3J0IHsgU2xvdERhdGEgfSBmcm9tIFwiLi9TbG90RGF0YS5qc1wiO1xuaW1wb3J0IHsgVHJhbnNmb3JtQ29uc3RyYWludERhdGEgfSBmcm9tIFwiLi9UcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5qc1wiO1xuXG4vKiogU3RvcmVzIHRoZSBzZXR1cCBwb3NlIGFuZCBhbGwgb2YgdGhlIHN0YXRlbGVzcyBkYXRhIGZvciBhIHNrZWxldG9uLlxuICpcbiAqIFNlZSBbRGF0YSBvYmplY3RzXShodHRwOi8vZXNvdGVyaWNzb2Z0d2FyZS5jb20vc3BpbmUtcnVudGltZS1hcmNoaXRlY3R1cmUjRGF0YS1vYmplY3RzKSBpbiB0aGUgU3BpbmUgUnVudGltZXNcbiAqIEd1aWRlLiAqL1xuZXhwb3J0IGNsYXNzIFNrZWxldG9uRGF0YSB7XG5cblx0LyoqIFRoZSBza2VsZXRvbidzIG5hbWUsIHdoaWNoIGJ5IGRlZmF1bHQgaXMgdGhlIG5hbWUgb2YgdGhlIHNrZWxldG9uIGRhdGEgZmlsZSwgaWYgcG9zc2libGUuIE1heSBiZSBudWxsLiAqL1xuXHRuYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuXHQvKiogVGhlIHNrZWxldG9uJ3MgYm9uZXMsIHNvcnRlZCBwYXJlbnQgZmlyc3QuIFRoZSByb290IGJvbmUgaXMgYWx3YXlzIHRoZSBmaXJzdCBib25lLiAqL1xuXHRib25lcyA9IG5ldyBBcnJheTxCb25lRGF0YT4oKTsgLy8gT3JkZXJlZCBwYXJlbnRzIGZpcnN0LlxuXG5cdC8qKiBUaGUgc2tlbGV0b24ncyBzbG90cyBpbiB0aGUgc2V0dXAgcG9zZSBkcmF3IG9yZGVyLiAqL1xuXHRzbG90cyA9IG5ldyBBcnJheTxTbG90RGF0YT4oKTsgLy8gU2V0dXAgcG9zZSBkcmF3IG9yZGVyLlxuXG5cdHNraW5zID0gbmV3IEFycmF5PFNraW4+KCk7XG5cblx0LyoqIFRoZSBza2VsZXRvbidzIGRlZmF1bHQgc2tpbi4gQnkgZGVmYXVsdCB0aGlzIHNraW4gY29udGFpbnMgYWxsIGF0dGFjaG1lbnRzIHRoYXQgd2VyZSBub3QgaW4gYSBza2luIGluIFNwaW5lLlxuXHQgKlxuXHQgKiBTZWUge0BsaW5rIFNrZWxldG9uI2dldEF0dGFjaG1lbnRCeU5hbWUoKX0uXG5cdCAqIE1heSBiZSBudWxsLiAqL1xuXHRkZWZhdWx0U2tpbjogU2tpbiB8IG51bGwgPSBudWxsO1xuXG5cdC8qKiBUaGUgc2tlbGV0b24ncyBldmVudHMuICovXG5cdGV2ZW50cyA9IG5ldyBBcnJheTxFdmVudERhdGE+KCk7XG5cblx0LyoqIFRoZSBza2VsZXRvbidzIGFuaW1hdGlvbnMuICovXG5cdGFuaW1hdGlvbnMgPSBuZXcgQXJyYXk8QW5pbWF0aW9uPigpO1xuXG5cdC8qKiBUaGUgc2tlbGV0b24ncyBJSyBjb25zdHJhaW50cy4gKi9cblx0aWtDb25zdHJhaW50cyA9IG5ldyBBcnJheTxJa0NvbnN0cmFpbnREYXRhPigpO1xuXG5cdC8qKiBUaGUgc2tlbGV0b24ncyB0cmFuc2Zvcm0gY29uc3RyYWludHMuICovXG5cdHRyYW5zZm9ybUNvbnN0cmFpbnRzID0gbmV3IEFycmF5PFRyYW5zZm9ybUNvbnN0cmFpbnREYXRhPigpO1xuXG5cdC8qKiBUaGUgc2tlbGV0b24ncyBwYXRoIGNvbnN0cmFpbnRzLiAqL1xuXHRwYXRoQ29uc3RyYWludHMgPSBuZXcgQXJyYXk8UGF0aENvbnN0cmFpbnREYXRhPigpO1xuXG5cdC8qKiBUaGUgc2tlbGV0b24ncyBwaHlzaWNzIGNvbnN0cmFpbnRzLiAqL1xuXHRwaHlzaWNzQ29uc3RyYWludHMgPSBuZXcgQXJyYXk8UGh5c2ljc0NvbnN0cmFpbnREYXRhPigpO1xuXG5cdC8qKiBUaGUgWCBjb29yZGluYXRlIG9mIHRoZSBza2VsZXRvbidzIGF4aXMgYWxpZ25lZCBib3VuZGluZyBib3ggaW4gdGhlIHNldHVwIHBvc2UuICovXG5cdHg6IG51bWJlciA9IDA7XG5cblx0LyoqIFRoZSBZIGNvb3JkaW5hdGUgb2YgdGhlIHNrZWxldG9uJ3MgYXhpcyBhbGlnbmVkIGJvdW5kaW5nIGJveCBpbiB0aGUgc2V0dXAgcG9zZS4gKi9cblx0eTogbnVtYmVyID0gMDtcblxuXHQvKiogVGhlIHdpZHRoIG9mIHRoZSBza2VsZXRvbidzIGF4aXMgYWxpZ25lZCBib3VuZGluZyBib3ggaW4gdGhlIHNldHVwIHBvc2UuICovXG5cdHdpZHRoOiBudW1iZXIgPSAwO1xuXG5cdC8qKiBUaGUgaGVpZ2h0IG9mIHRoZSBza2VsZXRvbidzIGF4aXMgYWxpZ25lZCBib3VuZGluZyBib3ggaW4gdGhlIHNldHVwIHBvc2UuICovXG5cdGhlaWdodDogbnVtYmVyID0gMDtcblxuXHQvKiogQmFzZWxpbmUgc2NhbGUgZmFjdG9yIGZvciBhcHBseWluZyBkaXN0YW5jZS1kZXBlbmRlbnQgZWZmZWN0cyBvbiBub24tc2NhbGFibGUgcHJvcGVydGllcywgc3VjaCBhcyBhbmdsZSBvciBzY2FsZS4gRGVmYXVsdFxuXHQgKiBpcyAxMDAuICovXG5cdHJlZmVyZW5jZVNjYWxlID0gMTAwO1xuXG5cdC8qKiBUaGUgU3BpbmUgdmVyc2lvbiB1c2VkIHRvIGV4cG9ydCB0aGUgc2tlbGV0b24gZGF0YSwgb3IgbnVsbC4gKi9cblx0dmVyc2lvbjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cblx0LyoqIFRoZSBza2VsZXRvbiBkYXRhIGhhc2guIFRoaXMgdmFsdWUgd2lsbCBjaGFuZ2UgaWYgYW55IG9mIHRoZSBza2VsZXRvbiBkYXRhIGhhcyBjaGFuZ2VkLiBNYXkgYmUgbnVsbC4gKi9cblx0aGFzaDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cblx0Ly8gTm9uZXNzZW50aWFsXG5cdC8qKiBUaGUgZG9wZXNoZWV0IEZQUyBpbiBTcGluZS4gQXZhaWxhYmxlIG9ubHkgd2hlbiBub25lc3NlbnRpYWwgZGF0YSB3YXMgZXhwb3J0ZWQuICovXG5cdGZwcyA9IDA7XG5cblx0LyoqIFRoZSBwYXRoIHRvIHRoZSBpbWFnZXMgZGlyZWN0b3J5IGFzIGRlZmluZWQgaW4gU3BpbmUuIEF2YWlsYWJsZSBvbmx5IHdoZW4gbm9uZXNzZW50aWFsIGRhdGEgd2FzIGV4cG9ydGVkLiBNYXkgYmUgbnVsbC4gKi9cblx0aW1hZ2VzUGF0aDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cblx0LyoqIFRoZSBwYXRoIHRvIHRoZSBhdWRpbyBkaXJlY3RvcnkgYXMgZGVmaW5lZCBpbiBTcGluZS4gQXZhaWxhYmxlIG9ubHkgd2hlbiBub25lc3NlbnRpYWwgZGF0YSB3YXMgZXhwb3J0ZWQuIE1heSBiZSBudWxsLiAqL1xuXHRhdWRpb1BhdGg6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG5cdC8qKiBGaW5kcyBhIGJvbmUgYnkgY29tcGFyaW5nIGVhY2ggYm9uZSdzIG5hbWUuIEl0IGlzIG1vcmUgZWZmaWNpZW50IHRvIGNhY2hlIHRoZSByZXN1bHRzIG9mIHRoaXMgbWV0aG9kIHRoYW4gdG8gY2FsbCBpdFxuXHQgKiBtdWx0aXBsZSB0aW1lcy5cblx0ICogQHJldHVybnMgTWF5IGJlIG51bGwuICovXG5cdGZpbmRCb25lIChib25lTmFtZTogc3RyaW5nKSB7XG5cdFx0aWYgKCFib25lTmFtZSkgdGhyb3cgbmV3IEVycm9yKFwiYm9uZU5hbWUgY2Fubm90IGJlIG51bGwuXCIpO1xuXHRcdGxldCBib25lcyA9IHRoaXMuYm9uZXM7XG5cdFx0Zm9yIChsZXQgaSA9IDAsIG4gPSBib25lcy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcblx0XHRcdGxldCBib25lID0gYm9uZXNbaV07XG5cdFx0XHRpZiAoYm9uZS5uYW1lID09IGJvbmVOYW1lKSByZXR1cm4gYm9uZTtcblx0XHR9XG5cdFx0cmV0dXJuIG51bGw7XG5cdH1cblxuXHQvKiogRmluZHMgYSBzbG90IGJ5IGNvbXBhcmluZyBlYWNoIHNsb3QncyBuYW1lLiBJdCBpcyBtb3JlIGVmZmljaWVudCB0byBjYWNoZSB0aGUgcmVzdWx0cyBvZiB0aGlzIG1ldGhvZCB0aGFuIHRvIGNhbGwgaXRcblx0ICogbXVsdGlwbGUgdGltZXMuXG5cdCAqIEByZXR1cm5zIE1heSBiZSBudWxsLiAqL1xuXHRmaW5kU2xvdCAoc2xvdE5hbWU6IHN0cmluZykge1xuXHRcdGlmICghc2xvdE5hbWUpIHRocm93IG5ldyBFcnJvcihcInNsb3ROYW1lIGNhbm5vdCBiZSBudWxsLlwiKTtcblx0XHRsZXQgc2xvdHMgPSB0aGlzLnNsb3RzO1xuXHRcdGZvciAobGV0IGkgPSAwLCBuID0gc2xvdHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG5cdFx0XHRsZXQgc2xvdCA9IHNsb3RzW2ldO1xuXHRcdFx0aWYgKHNsb3QubmFtZSA9PSBzbG90TmFtZSkgcmV0dXJuIHNsb3Q7XG5cdFx0fVxuXHRcdHJldHVybiBudWxsO1xuXHR9XG5cblx0LyoqIEZpbmRzIGEgc2tpbiBieSBjb21wYXJpbmcgZWFjaCBza2luJ3MgbmFtZS4gSXQgaXMgbW9yZSBlZmZpY2llbnQgdG8gY2FjaGUgdGhlIHJlc3VsdHMgb2YgdGhpcyBtZXRob2QgdGhhbiB0byBjYWxsIGl0XG5cdCAqIG11bHRpcGxlIHRpbWVzLlxuXHQgKiBAcmV0dXJucyBNYXkgYmUgbnVsbC4gKi9cblx0ZmluZFNraW4gKHNraW5OYW1lOiBzdHJpbmcpIHtcblx0XHRpZiAoIXNraW5OYW1lKSB0aHJvdyBuZXcgRXJyb3IoXCJza2luTmFtZSBjYW5ub3QgYmUgbnVsbC5cIik7XG5cdFx0bGV0IHNraW5zID0gdGhpcy5za2lucztcblx0XHRmb3IgKGxldCBpID0gMCwgbiA9IHNraW5zLmxlbmd0aDsgaSA8IG47IGkrKykge1xuXHRcdFx0bGV0IHNraW4gPSBza2luc1tpXTtcblx0XHRcdGlmIChza2luLm5hbWUgPT0gc2tpbk5hbWUpIHJldHVybiBza2luO1xuXHRcdH1cblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdC8qKiBGaW5kcyBhbiBldmVudCBieSBjb21wYXJpbmcgZWFjaCBldmVudHMncyBuYW1lLiBJdCBpcyBtb3JlIGVmZmljaWVudCB0byBjYWNoZSB0aGUgcmVzdWx0cyBvZiB0aGlzIG1ldGhvZCB0aGFuIHRvIGNhbGwgaXRcblx0ICogbXVsdGlwbGUgdGltZXMuXG5cdCAqIEByZXR1cm5zIE1heSBiZSBudWxsLiAqL1xuXHRmaW5kRXZlbnQgKGV2ZW50RGF0YU5hbWU6IHN0cmluZykge1xuXHRcdGlmICghZXZlbnREYXRhTmFtZSkgdGhyb3cgbmV3IEVycm9yKFwiZXZlbnREYXRhTmFtZSBjYW5ub3QgYmUgbnVsbC5cIik7XG5cdFx0bGV0IGV2ZW50cyA9IHRoaXMuZXZlbnRzO1xuXHRcdGZvciAobGV0IGkgPSAwLCBuID0gZXZlbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuXHRcdFx0bGV0IGV2ZW50ID0gZXZlbnRzW2ldO1xuXHRcdFx0aWYgKGV2ZW50Lm5hbWUgPT0gZXZlbnREYXRhTmFtZSkgcmV0dXJuIGV2ZW50O1xuXHRcdH1cblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdC8qKiBGaW5kcyBhbiBhbmltYXRpb24gYnkgY29tcGFyaW5nIGVhY2ggYW5pbWF0aW9uJ3MgbmFtZS4gSXQgaXMgbW9yZSBlZmZpY2llbnQgdG8gY2FjaGUgdGhlIHJlc3VsdHMgb2YgdGhpcyBtZXRob2QgdGhhbiB0b1xuXHQgKiBjYWxsIGl0IG11bHRpcGxlIHRpbWVzLlxuXHQgKiBAcmV0dXJucyBNYXkgYmUgbnVsbC4gKi9cblx0ZmluZEFuaW1hdGlvbiAoYW5pbWF0aW9uTmFtZTogc3RyaW5nKSB7XG5cdFx0aWYgKCFhbmltYXRpb25OYW1lKSB0aHJvdyBuZXcgRXJyb3IoXCJhbmltYXRpb25OYW1lIGNhbm5vdCBiZSBudWxsLlwiKTtcblx0XHRsZXQgYW5pbWF0aW9ucyA9IHRoaXMuYW5pbWF0aW9ucztcblx0XHRmb3IgKGxldCBpID0gMCwgbiA9IGFuaW1hdGlvbnMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG5cdFx0XHRsZXQgYW5pbWF0aW9uID0gYW5pbWF0aW9uc1tpXTtcblx0XHRcdGlmIChhbmltYXRpb24ubmFtZSA9PSBhbmltYXRpb25OYW1lKSByZXR1cm4gYW5pbWF0aW9uO1xuXHRcdH1cblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdC8qKiBGaW5kcyBhbiBJSyBjb25zdHJhaW50IGJ5IGNvbXBhcmluZyBlYWNoIElLIGNvbnN0cmFpbnQncyBuYW1lLiBJdCBpcyBtb3JlIGVmZmljaWVudCB0byBjYWNoZSB0aGUgcmVzdWx0cyBvZiB0aGlzIG1ldGhvZFxuXHQgKiB0aGFuIHRvIGNhbGwgaXQgbXVsdGlwbGUgdGltZXMuXG5cdCAqIEByZXR1cm4gTWF5IGJlIG51bGwuICovXG5cdGZpbmRJa0NvbnN0cmFpbnQgKGNvbnN0cmFpbnROYW1lOiBzdHJpbmcpIHtcblx0XHRpZiAoIWNvbnN0cmFpbnROYW1lKSB0aHJvdyBuZXcgRXJyb3IoXCJjb25zdHJhaW50TmFtZSBjYW5ub3QgYmUgbnVsbC5cIik7XG5cdFx0Y29uc3QgaWtDb25zdHJhaW50cyA9IHRoaXMuaWtDb25zdHJhaW50cztcblx0XHRmb3IgKGxldCBpID0gMCwgbiA9IGlrQ29uc3RyYWludHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG5cdFx0XHRjb25zdCBjb25zdHJhaW50ID0gaWtDb25zdHJhaW50c1tpXTtcblx0XHRcdGlmIChjb25zdHJhaW50Lm5hbWUgPT0gY29uc3RyYWludE5hbWUpIHJldHVybiBjb25zdHJhaW50O1xuXHRcdH1cblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdC8qKiBGaW5kcyBhIHRyYW5zZm9ybSBjb25zdHJhaW50IGJ5IGNvbXBhcmluZyBlYWNoIHRyYW5zZm9ybSBjb25zdHJhaW50J3MgbmFtZS4gSXQgaXMgbW9yZSBlZmZpY2llbnQgdG8gY2FjaGUgdGhlIHJlc3VsdHMgb2Zcblx0ICogdGhpcyBtZXRob2QgdGhhbiB0byBjYWxsIGl0IG11bHRpcGxlIHRpbWVzLlxuXHQgKiBAcmV0dXJuIE1heSBiZSBudWxsLiAqL1xuXHRmaW5kVHJhbnNmb3JtQ29uc3RyYWludCAoY29uc3RyYWludE5hbWU6IHN0cmluZykge1xuXHRcdGlmICghY29uc3RyYWludE5hbWUpIHRocm93IG5ldyBFcnJvcihcImNvbnN0cmFpbnROYW1lIGNhbm5vdCBiZSBudWxsLlwiKTtcblx0XHRjb25zdCB0cmFuc2Zvcm1Db25zdHJhaW50cyA9IHRoaXMudHJhbnNmb3JtQ29uc3RyYWludHM7XG5cdFx0Zm9yIChsZXQgaSA9IDAsIG4gPSB0cmFuc2Zvcm1Db25zdHJhaW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcblx0XHRcdGNvbnN0IGNvbnN0cmFpbnQgPSB0cmFuc2Zvcm1Db25zdHJhaW50c1tpXTtcblx0XHRcdGlmIChjb25zdHJhaW50Lm5hbWUgPT0gY29uc3RyYWludE5hbWUpIHJldHVybiBjb25zdHJhaW50O1xuXHRcdH1cblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdC8qKiBGaW5kcyBhIHBhdGggY29uc3RyYWludCBieSBjb21wYXJpbmcgZWFjaCBwYXRoIGNvbnN0cmFpbnQncyBuYW1lLiBJdCBpcyBtb3JlIGVmZmljaWVudCB0byBjYWNoZSB0aGUgcmVzdWx0cyBvZiB0aGlzIG1ldGhvZFxuXHQgKiB0aGFuIHRvIGNhbGwgaXQgbXVsdGlwbGUgdGltZXMuXG5cdCAqIEByZXR1cm4gTWF5IGJlIG51bGwuICovXG5cdGZpbmRQYXRoQ29uc3RyYWludCAoY29uc3RyYWludE5hbWU6IHN0cmluZykge1xuXHRcdGlmICghY29uc3RyYWludE5hbWUpIHRocm93IG5ldyBFcnJvcihcImNvbnN0cmFpbnROYW1lIGNhbm5vdCBiZSBudWxsLlwiKTtcblx0XHRjb25zdCBwYXRoQ29uc3RyYWludHMgPSB0aGlzLnBhdGhDb25zdHJhaW50cztcblx0XHRmb3IgKGxldCBpID0gMCwgbiA9IHBhdGhDb25zdHJhaW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcblx0XHRcdGNvbnN0IGNvbnN0cmFpbnQgPSBwYXRoQ29uc3RyYWludHNbaV07XG5cdFx0XHRpZiAoY29uc3RyYWludC5uYW1lID09IGNvbnN0cmFpbnROYW1lKSByZXR1cm4gY29uc3RyYWludDtcblx0XHR9XG5cdFx0cmV0dXJuIG51bGw7XG5cdH1cblxuXHQvKiogRmluZHMgYSBwaHlzaWNzIGNvbnN0cmFpbnQgYnkgY29tcGFyaW5nIGVhY2ggcGh5c2ljcyBjb25zdHJhaW50J3MgbmFtZS4gSXQgaXMgbW9yZSBlZmZpY2llbnQgdG8gY2FjaGUgdGhlIHJlc3VsdHMgb2YgdGhpcyBtZXRob2Rcblx0ICogdGhhbiB0byBjYWxsIGl0IG11bHRpcGxlIHRpbWVzLlxuXHQgKiBAcmV0dXJuIE1heSBiZSBudWxsLiAqL1xuXHRmaW5kUGh5c2ljc0NvbnN0cmFpbnQgKGNvbnN0cmFpbnROYW1lOiBzdHJpbmcpIHtcblx0XHRpZiAoIWNvbnN0cmFpbnROYW1lKSB0aHJvdyBuZXcgRXJyb3IoXCJjb25zdHJhaW50TmFtZSBjYW5ub3QgYmUgbnVsbC5cIik7XG5cdFx0Y29uc3QgcGh5c2ljc0NvbnN0cmFpbnRzID0gdGhpcy5waHlzaWNzQ29uc3RyYWludHM7XG5cdFx0Zm9yIChsZXQgaSA9IDAsIG4gPSBwaHlzaWNzQ29uc3RyYWludHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG5cdFx0XHRjb25zdCBjb25zdHJhaW50ID0gcGh5c2ljc0NvbnN0cmFpbnRzW2ldO1xuXHRcdFx0aWYgKGNvbnN0cmFpbnQubmFtZSA9PSBjb25zdHJhaW50TmFtZSkgcmV0dXJuIGNvbnN0cmFpbnQ7XG5cdFx0fVxuXHRcdHJldHVybiBudWxsO1xuXHR9XG59XG4iXX0=
|
|
167
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2tlbGV0b25EYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1NrZWxldG9uRGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OytFQTJCK0U7QUFRL0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRzdDOzs7WUFHWTtBQUNaLE1BQU0sT0FBTyxZQUFZO0lBRXhCLDZHQUE2RztJQUM3RyxJQUFJLEdBQWtCLElBQUksQ0FBQztJQUUzQix5RkFBeUY7SUFDekYsS0FBSyxHQUFHLEVBQWdCLENBQUMsQ0FBQyx5QkFBeUI7SUFFbkQseURBQXlEO0lBQ3pELEtBQUssR0FBRyxFQUFnQixDQUFDLENBQUMseUJBQXlCO0lBRW5ELEtBQUssR0FBRyxFQUFZLENBQUM7SUFFckI7OztzQkFHa0I7SUFDbEIsV0FBVyxHQUFnQixJQUFJLENBQUM7SUFFaEMsNkJBQTZCO0lBQzdCLE1BQU0sR0FBRyxFQUFpQixDQUFDO0lBRTNCLGlDQUFpQztJQUNqQyxVQUFVLEdBQUcsRUFBaUIsQ0FBQztJQUUvQixxQ0FBcUM7SUFDckMsb0dBQW9HO0lBQ3BHLFdBQVcsR0FBRyxFQUFnQyxDQUFDO0lBRS9DLHNGQUFzRjtJQUN0RixDQUFDLEdBQVcsQ0FBQyxDQUFDO0lBRWQsc0ZBQXNGO0lBQ3RGLENBQUMsR0FBVyxDQUFDLENBQUM7SUFFZCwrRUFBK0U7SUFDL0UsS0FBSyxHQUFXLENBQUMsQ0FBQztJQUVsQixnRkFBZ0Y7SUFDaEYsTUFBTSxHQUFXLENBQUMsQ0FBQztJQUVuQjtpQkFDYTtJQUNiLGNBQWMsR0FBRyxHQUFHLENBQUM7SUFFckIsbUVBQW1FO0lBQ25FLE9BQU8sR0FBa0IsSUFBSSxDQUFDO0lBRTlCLDJHQUEyRztJQUMzRyxJQUFJLEdBQWtCLElBQUksQ0FBQztJQUUzQixlQUFlO0lBQ2Ysc0ZBQXNGO0lBQ3RGLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFFVCww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TyxVQUFlLENBQUM7UUFDOUYsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQztDQUVEIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogU3BpbmUgUnVudGltZXMgTGljZW5zZSBBZ3JlZW1lbnRcbiAqIExhc3QgdXBkYXRlZCBBcHJpbCA1LCAyMDI1LiBSZXBsYWNlcyBhbGwgcHJpb3IgdmVyc2lvbnMuXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLTIwMjUsIEVzb3RlcmljIFNvZnR3YXJlIExMQ1xuICpcbiAqIEludGVncmF0aW9uIG9mIHRoZSBTcGluZSBSdW50aW1lcyBpbnRvIHNvZnR3YXJlIG9yIG90aGVyd2lzZSBjcmVhdGluZ1xuICogZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU3BpbmUgUnVudGltZXMgaXMgcGVybWl0dGVkIHVuZGVyIHRoZSB0ZXJtcyBhbmRcbiAqIGNvbmRpdGlvbnMgb2YgU2VjdGlvbiAyIG9mIHRoZSBTcGluZSBFZGl0b3IgTGljZW5zZSBBZ3JlZW1lbnQ6XG4gKiBodHRwOi8vZXNvdGVyaWNzb2Z0d2FyZS5jb20vc3BpbmUtZWRpdG9yLWxpY2Vuc2VcbiAqXG4gKiBPdGhlcndpc2UsIGl0IGlzIHBlcm1pdHRlZCB0byBpbnRlZ3JhdGUgdGhlIFNwaW5lIFJ1bnRpbWVzIGludG8gc29mdHdhcmVcbiAqIG9yIG90aGVyd2lzZSBjcmVhdGUgZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU3BpbmUgUnVudGltZXMgKGNvbGxlY3RpdmVseSxcbiAqIFwiUHJvZHVjdHNcIiksIHByb3ZpZGVkIHRoYXQgZWFjaCB1c2VyIG9mIHRoZSBQcm9kdWN0cyBtdXN0IG9idGFpbiB0aGVpciBvd25cbiAqIFNwaW5lIEVkaXRvciBsaWNlbnNlIGFuZCByZWRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZHVjdHMgaW4gYW55IGZvcm0gbXVzdFxuICogaW5jbHVkZSB0aGlzIGxpY2Vuc2UgYW5kIGNvcHlyaWdodCBub3RpY2UuXG4gKlxuICogVEhFIFNQSU5FIFJVTlRJTUVTIEFSRSBQUk9WSURFRCBCWSBFU09URVJJQyBTT0ZUV0FSRSBMTEMgXCJBUyBJU1wiIEFORCBBTllcbiAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRURcbiAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkVcbiAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEVTT1RFUklDIFNPRlRXQVJFIExMQyBCRSBMSUFCTEUgRk9SIEFOWVxuICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVNcbiAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUyxcbiAqIEJVU0lORVNTIElOVEVSUlVQVElPTiwgT1IgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFMpIEhPV0VWRVIgQ0FVU0VEIEFORFxuICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlRcbiAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRlxuICogVEhFIFNQSU5FIFJVTlRJTUVTLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5pbXBvcnQgdHlwZSB7IEFuaW1hdGlvbiB9IGZyb20gXCIuL0FuaW1hdGlvbi5qc1wiO1xuaW1wb3J0IHR5cGUgeyBTa2VsZXRvbiB9IGZyb20gXCIuL1NrZWxldG9uLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEJvbmVEYXRhIH0gZnJvbSBcIi4vQm9uZURhdGEuanNcIjtcbmltcG9ydCB0eXBlIHsgQ29uc3RyYWludERhdGEgfSBmcm9tIFwiLi9Db25zdHJhaW50RGF0YS5qc1wiO1xuaW1wb3J0IHR5cGUgeyBFdmVudERhdGEgfSBmcm9tIFwiLi9FdmVudERhdGEuanNcIjtcbmltcG9ydCB0eXBlIHsgU2tpbiB9IGZyb20gXCIuL1NraW4uanNcIjtcbmltcG9ydCB7IFNsaWRlckRhdGEgfSBmcm9tIFwiLi9TbGlkZXJEYXRhLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFNsb3REYXRhIH0gZnJvbSBcIi4vU2xvdERhdGEuanNcIjtcblxuLyoqIFN0b3JlcyB0aGUgc2V0dXAgcG9zZSBhbmQgYWxsIG9mIHRoZSBzdGF0ZWxlc3MgZGF0YSBmb3IgYSBza2VsZXRvbi5cbiAqXG4gKiBTZWUgW0RhdGEgb2JqZWN0c10oaHR0cDovL2Vzb3Rlcmljc29mdHdhcmUuY29tL3NwaW5lLXJ1bnRpbWUtYXJjaGl0ZWN0dXJlI0RhdGEtb2JqZWN0cykgaW4gdGhlIFNwaW5lIFJ1bnRpbWVzXG4gKiBHdWlkZS4gKi9cbmV4cG9ydCBjbGFzcyBTa2VsZXRvbkRhdGEge1xuXG5cdC8qKiBUaGUgc2tlbGV0b24ncyBuYW1lLCB3aGljaCBieSBkZWZhdWx0IGlzIHRoZSBuYW1lIG9mIHRoZSBza2VsZXRvbiBkYXRhIGZpbGUsIGlmIHBvc3NpYmxlLiBNYXkgYmUgbnVsbC4gKi9cblx0bmFtZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cblx0LyoqIFRoZSBza2VsZXRvbidzIGJvbmVzLCBzb3J0ZWQgcGFyZW50IGZpcnN0LiBUaGUgcm9vdCBib25lIGlzIGFsd2F5cyB0aGUgZmlyc3QgYm9uZS4gKi9cblx0Ym9uZXMgPSBbXSBhcyBCb25lRGF0YVtdOyAvLyBPcmRlcmVkIHBhcmVudHMgZmlyc3QuXG5cblx0LyoqIFRoZSBza2VsZXRvbidzIHNsb3RzIGluIHRoZSBzZXR1cCBwb3NlIGRyYXcgb3JkZXIuICovXG5cdHNsb3RzID0gW10gYXMgU2xvdERhdGFbXTsgLy8gU2V0dXAgcG9zZSBkcmF3IG9yZGVyLlxuXG5cdHNraW5zID0gW10gYXMgU2tpbltdO1xuXG5cdC8qKiBUaGUgc2tlbGV0b24ncyBkZWZhdWx0IHNraW4uIEJ5IGRlZmF1bHQgdGhpcyBza2luIGNvbnRhaW5zIGFsbCBhdHRhY2htZW50cyB0aGF0IHdlcmUgbm90IGluIGEgc2tpbiBpbiBTcGluZS5cblx0ICpcblx0ICogU2VlIHtAbGluayBTa2VsZXRvbi5nZXRBdHRhY2htZW50QnlOYW1lfS5cblx0ICogTWF5IGJlIG51bGwuICovXG5cdGRlZmF1bHRTa2luOiBTa2luIHwgbnVsbCA9IG51bGw7XG5cblx0LyoqIFRoZSBza2VsZXRvbidzIGV2ZW50cy4gKi9cblx0ZXZlbnRzID0gW10gYXMgRXZlbnREYXRhW107XG5cblx0LyoqIFRoZSBza2VsZXRvbidzIGFuaW1hdGlvbnMuICovXG5cdGFuaW1hdGlvbnMgPSBbXSBhcyBBbmltYXRpb25bXTtcblxuXHQvKiogVGhlIHNrZWxldG9uJ3MgSUsgY29uc3RyYWludHMuICovXG5cdC8vIGJpb21lLWlnbm9yZSBsaW50L3N1c3BpY2lvdXMvbm9FeHBsaWNpdEFueTogcmVmZXJlbmNlIHJ1bnRpbWUgZG9lcyBub3QgcmVzdHJpY3QgdG8gc3BlY2lmaWMgdHlwZXNcblx0Y29uc3RyYWludHMgPSBbXSBhcyBDb25zdHJhaW50RGF0YTxhbnksIGFueT5bXTtcblxuXHQvKiogVGhlIFggY29vcmRpbmF0ZSBvZiB0aGUgc2tlbGV0b24ncyBheGlzIGFsaWduZWQgYm91bmRpbmcgYm94IGluIHRoZSBzZXR1cCBwb3NlLiAqL1xuXHR4OiBudW1iZXIgPSAwO1xuXG5cdC8qKiBUaGUgWSBjb29yZGluYXRlIG9mIHRoZSBza2VsZXRvbidzIGF4aXMgYWxpZ25lZCBib3VuZGluZyBib3ggaW4gdGhlIHNldHVwIHBvc2UuICovXG5cdHk6IG51bWJlciA9IDA7XG5cblx0LyoqIFRoZSB3aWR0aCBvZiB0aGUgc2tlbGV0b24ncyBheGlzIGFsaWduZWQgYm91bmRpbmcgYm94IGluIHRoZSBzZXR1cCBwb3NlLiAqL1xuXHR3aWR0aDogbnVtYmVyID0gMDtcblxuXHQvKiogVGhlIGhlaWdodCBvZiB0aGUgc2tlbGV0b24ncyBheGlzIGFsaWduZWQgYm91bmRpbmcgYm94IGluIHRoZSBzZXR1cCBwb3NlLiAqL1xuXHRoZWlnaHQ6IG51bWJlciA9IDA7XG5cblx0LyoqIEJhc2VsaW5lIHNjYWxlIGZhY3RvciBmb3IgYXBwbHlpbmcgZGlzdGFuY2UtZGVwZW5kZW50IGVmZmVjdHMgb24gbm9uLXNjYWxhYmxlIHByb3BlcnRpZXMsIHN1Y2ggYXMgYW5nbGUgb3Igc2NhbGUuIERlZmF1bHRcblx0ICogaXMgMTAwLiAqL1xuXHRyZWZlcmVuY2VTY2FsZSA9IDEwMDtcblxuXHQvKiogVGhlIFNwaW5lIHZlcnNpb24gdXNlZCB0byBleHBvcnQgdGhlIHNrZWxldG9uIGRhdGEsIG9yIG51bGwuICovXG5cdHZlcnNpb246IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG5cdC8qKiBUaGUgc2tlbGV0b24gZGF0YSBoYXNoLiBUaGlzIHZhbHVlIHdpbGwgY2hhbmdlIGlmIGFueSBvZiB0aGUgc2tlbGV0b24gZGF0YSBoYXMgY2hhbmdlZC4gTWF5IGJlIG51bGwuICovXG5cdGhhc2g6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG5cdC8vIE5vbmVzc2VudGlhbFxuXHQvKiogVGhlIGRvcGVzaGVldCBGUFMgaW4gU3BpbmUuIEF2YWlsYWJsZSBvbmx5IHdoZW4gbm9uZXNzZW50aWFsIGRhdGEgd2FzIGV4cG9ydGVkLiAqL1xuXHRmcHMgPSAzMDtcblxuXHQvKiogVGhlIHBhdGggdG8gdGhlIGltYWdlcyBmb2xkZXIgYXMgZGVmaW5lZCBpbiBTcGluZS4gQXZhaWxhYmxlIG9ubHkgd2hlbiBub25lc3NlbnRpYWwgZGF0YSB3YXMgZXhwb3J0ZWQuIE1heSBiZSBudWxsLiAqL1xuXHRpbWFnZXNQYXRoOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuXHQvKiogVGhlIHBhdGggdG8gdGhlIGF1ZGlvIGZvbGRlciBhcyBkZWZpbmVkIGluIFNwaW5lLiBBdmFpbGFibGUgb25seSB3aGVuIG5vbmVzc2VudGlhbCBkYXRhIHdhcyBleHBvcnRlZC4gTWF5IGJlIG51bGwuICovXG5cdGF1ZGlvUGF0aDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cblx0LyoqIEZpbmRzIGEgYm9uZSBieSBjb21wYXJpbmcgZWFjaCBib25lJ3MgbmFtZS4gSXQgaXMgbW9yZSBlZmZpY2llbnQgdG8gY2FjaGUgdGhlIHJlc3VsdHMgb2YgdGhpcyBtZXRob2QgdGhhbiB0byBjYWxsIGl0XG5cdCAqIG11bHRpcGxlIHRpbWVzLlxuXHQgKiBAcmV0dXJucyBNYXkgYmUgbnVsbC4gKi9cblx0ZmluZEJvbmUgKGJvbmVOYW1lOiBzdHJpbmcpIHtcblx0XHRpZiAoIWJvbmVOYW1lKSB0aHJvdyBuZXcgRXJyb3IoXCJib25lTmFtZSBjYW5ub3QgYmUgbnVsbC5cIik7XG5cdFx0Y29uc3QgYm9uZXMgPSB0aGlzLmJvbmVzO1xuXHRcdGZvciAobGV0IGkgPSAwLCBuID0gYm9uZXMubGVuZ3RoOyBpIDwgbjsgaSsrKVxuXHRcdFx0aWYgKGJvbmVzW2ldLm5hbWUgPT09IGJvbmVOYW1lKSByZXR1cm4gYm9uZXNbaV07XG5cdFx0cmV0dXJuIG51bGw7XG5cdH1cblxuXHQvKiogRmluZHMgYSBzbG90IGJ5IGNvbXBhcmluZyBlYWNoIHNsb3QncyBuYW1lLiBJdCBpcyBtb3JlIGVmZmljaWVudCB0byBjYWNoZSB0aGUgcmVzdWx0cyBvZiB0aGlzIG1ldGhvZCB0aGFuIHRvIGNhbGwgaXRcblx0ICogbXVsdGlwbGUgdGltZXMuXG5cdCAqIEByZXR1cm5zIE1heSBiZSBudWxsLiAqL1xuXHRmaW5kU2xvdCAoc2xvdE5hbWU6IHN0cmluZykge1xuXHRcdGlmICghc2xvdE5hbWUpIHRocm93IG5ldyBFcnJvcihcInNsb3ROYW1lIGNhbm5vdCBiZSBudWxsLlwiKTtcblx0XHRjb25zdCBzbG90cyA9IHRoaXMuc2xvdHM7XG5cdFx0Zm9yIChsZXQgaSA9IDAsIG4gPSBzbG90cy5sZW5ndGg7IGkgPCBuOyBpKyspXG5cdFx0XHRpZiAoc2xvdHNbaV0ubmFtZSA9PT0gc2xvdE5hbWUpIHJldHVybiBzbG90c1tpXTtcblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdC8qKiBGaW5kcyBhIHNraW4gYnkgY29tcGFyaW5nIGVhY2ggc2tpbidzIG5hbWUuIEl0IGlzIG1vcmUgZWZmaWNpZW50IHRvIGNhY2hlIHRoZSByZXN1bHRzIG9mIHRoaXMgbWV0aG9kIHRoYW4gdG8gY2FsbCBpdFxuXHQgKiBtdWx0aXBsZSB0aW1lcy5cblx0ICogQHJldHVybnMgTWF5IGJlIG51bGwuICovXG5cdGZpbmRTa2luIChza2luTmFtZTogc3RyaW5nKSB7XG5cdFx0aWYgKCFza2luTmFtZSkgdGhyb3cgbmV3IEVycm9yKFwic2tpbk5hbWUgY2Fubm90IGJlIG51bGwuXCIpO1xuXHRcdGNvbnN0IHNraW5zID0gdGhpcy5za2lucztcblx0XHRmb3IgKGxldCBpID0gMCwgbiA9IHNraW5zLmxlbmd0aDsgaSA8IG47IGkrKylcblx0XHRcdGlmIChza2luc1tpXS5uYW1lID09PSBza2luTmFtZSkgcmV0dXJuIHNraW5zW2ldO1xuXHRcdHJldHVybiBudWxsO1xuXHR9XG5cblx0LyoqIEZpbmRzIGFuIGV2ZW50IGJ5IGNvbXBhcmluZyBlYWNoIGV2ZW50cydzIG5hbWUuIEl0IGlzIG1vcmUgZWZmaWNpZW50IHRvIGNhY2hlIHRoZSByZXN1bHRzIG9mIHRoaXMgbWV0aG9kIHRoYW4gdG8gY2FsbCBpdFxuXHQgKiBtdWx0aXBsZSB0aW1lcy5cblx0ICogQHJldHVybnMgTWF5IGJlIG51bGwuICovXG5cdGZpbmRFdmVudCAoZXZlbnREYXRhTmFtZTogc3RyaW5nKSB7XG5cdFx0aWYgKCFldmVudERhdGFOYW1lKSB0aHJvdyBuZXcgRXJyb3IoXCJldmVudERhdGFOYW1lIGNhbm5vdCBiZSBudWxsLlwiKTtcblx0XHRjb25zdCBldmVudHMgPSB0aGlzLmV2ZW50cztcblx0XHRmb3IgKGxldCBpID0gMCwgbiA9IGV2ZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspXG5cdFx0XHRpZiAoZXZlbnRzW2ldLm5hbWUgPT09IGV2ZW50RGF0YU5hbWUpIHJldHVybiBldmVudHNbaV07XG5cdFx0cmV0dXJuIG51bGw7XG5cdH1cblxuXHQvKiogQ29sbGVjdHMgYW5pbWF0aW9ucyB1c2VkIGJ5IHtAbGluayBTbGlkZXJEYXRhIHNsaWRlciBjb25zdHJhaW50c30uXG5cdCAqXG5cdCAqIFNsaWRlciBhbmltYXRpb25zIGFyZSBkZXNpZ25lZCB0byBiZSBhcHBsaWVkIGJ5IHNsaWRlciBjb25zdHJhaW50cyByYXRoZXIgdGhhbiBvbiB0aGVpciBvd24uIEFwcGxpY2F0aW9ucyB0aGF0IGhhdmUgYSB1c2VyXG5cdCAqIGNob29zZSBhbiBhbmltYXRpb24gbWF5IHdhbnQgdG8gZXhjbHVkZSB0aGVtLiAqL1xuXHRmaW5kU2xpZGVyQW5pbWF0aW9ucyAoYW5pbWF0aW9uczogQW5pbWF0aW9uW10pOiBBbmltYXRpb25bXSB7XG5cdFx0Y29uc3QgY29uc3RyYWludHMgPSB0aGlzLmNvbnN0cmFpbnRzO1xuXHRcdGZvciAobGV0IGkgPSAwLCBuID0gdGhpcy5jb25zdHJhaW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcblx0XHRcdGNvbnN0IGRhdGEgPSBjb25zdHJhaW50c1tpXTtcblx0XHRcdGlmIChkYXRhIGluc3RhbmNlb2YgU2xpZGVyRGF0YSAmJiBkYXRhLmFuaW1hdGlvbiAhPSBudWxsKSBhbmltYXRpb25zLnB1c2goZGF0YS5hbmltYXRpb24pO1xuXHRcdH1cblx0XHRyZXR1cm4gYW5pbWF0aW9ucztcblx0fVxuXG5cdC8qKiBGaW5kcyBhbiBhbmltYXRpb24gYnkgY29tcGFyaW5nIGVhY2ggYW5pbWF0aW9uJ3MgbmFtZS4gSXQgaXMgbW9yZSBlZmZpY2llbnQgdG8gY2FjaGUgdGhlIHJlc3VsdHMgb2YgdGhpcyBtZXRob2QgdGhhbiB0b1xuXHQgKiBjYWxsIGl0IG11bHRpcGxlIHRpbWVzLlxuXHQgKiBAcmV0dXJucyBNYXkgYmUgbnVsbC4gKi9cblx0ZmluZEFuaW1hdGlvbiAoYW5pbWF0aW9uTmFtZTogc3RyaW5nKSB7XG5cdFx0aWYgKCFhbmltYXRpb25OYW1lKSB0aHJvdyBuZXcgRXJyb3IoXCJhbmltYXRpb25OYW1lIGNhbm5vdCBiZSBudWxsLlwiKTtcblx0XHRjb25zdCBhbmltYXRpb25zID0gdGhpcy5hbmltYXRpb25zO1xuXHRcdGZvciAobGV0IGkgPSAwLCBuID0gYW5pbWF0aW9ucy5sZW5ndGg7IGkgPCBuOyBpKyspXG5cdFx0XHRpZiAoYW5pbWF0aW9uc1tpXS5uYW1lID09PSBhbmltYXRpb25OYW1lKSByZXR1cm4gYW5pbWF0aW9uc1tpXTtcblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdC8vIC0tLSBDb25zdHJhaW50cy5cblxuXHQvKiogRmluZHMgYSBjb25zdHJhaW50IG9mIHRoZSBzcGVjaWZpZWQgdHlwZSBieSBjb21wYXJpbmcgZWFjaCBjb25zdHJhaW50cydzIG5hbWUuIEl0IGlzIG1vcmUgZWZmaWNpZW50IHRvIGNhY2hlIHRoZSByZXN1bHRzIG9mXG5cdCAgKiB0aGlzIG1ldGhvZCB0aGFuIHRvIGNhbGwgaXQgbXVsdGlwbGUgdGltZXMuICovXG5cdC8vIGJpb21lLWlnbm9yZSBsaW50L3N1c3BpY2lvdXMvbm9FeHBsaWNpdEFueTogcmVmZXJlbmNlIHJ1bnRpbWUgZG9lcyBub3QgcmVzdHJpY3QgdG8gc3BlY2lmaWMgdHlwZXNcblx0ZmluZENvbnN0cmFpbnQ8VCBleHRlbmRzIENvbnN0cmFpbnREYXRhPGFueSwgYW55Pj4gKGNvbnN0cmFpbnROYW1lOiBzdHJpbmcsIHR5cGU6IG5ldyAobmFtZTogc3RyaW5nKSA9PiBUKTogVCB8IG51bGwge1xuXHRcdGlmICghY29uc3RyYWludE5hbWUpIHRocm93IG5ldyBFcnJvcihcImNvbnN0cmFpbnROYW1lIGNhbm5vdCBiZSBudWxsLlwiKTtcblx0XHRpZiAodHlwZSA9PSBudWxsKSB0aHJvdyBuZXcgRXJyb3IoXCJ0eXBlIGNhbm5vdCBiZSBudWxsLlwiKTtcblx0XHRjb25zdCBjb25zdHJhaW50cyA9IHRoaXMuY29uc3RyYWludHM7XG5cdFx0Zm9yIChsZXQgaSA9IDAsIG4gPSB0aGlzLmNvbnN0cmFpbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuXHRcdFx0Y29uc3QgY29uc3RyYWludCA9IGNvbnN0cmFpbnRzW2ldO1xuXHRcdFx0aWYgKGNvbnN0cmFpbnQgaW5zdGFuY2VvZiB0eXBlICYmIGNvbnN0cmFpbnQubmFtZSA9PT0gY29uc3RyYWludE5hbWUpIHJldHVybiBjb25zdHJhaW50IGFzIFQ7XG5cdFx0fVxuXHRcdHJldHVybiBudWxsO1xuXHR9XG5cbn1cbiJdfQ==
|
package/dist/SkeletonJson.d.ts
CHANGED
|
@@ -26,11 +26,11 @@
|
|
|
26
26
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
27
27
|
* THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
28
28
|
*****************************************************************************/
|
|
29
|
-
import {
|
|
30
|
-
import { AttachmentLoader } from "./attachments/AttachmentLoader.js";
|
|
29
|
+
import type { Attachment, VertexAttachment } from "./attachments/Attachment.js";
|
|
30
|
+
import type { AttachmentLoader } from "./attachments/AttachmentLoader.js";
|
|
31
|
+
import { Sequence } from "./attachments/Sequence.js";
|
|
31
32
|
import { SkeletonData } from "./SkeletonData.js";
|
|
32
33
|
import { Skin } from "./Skin.js";
|
|
33
|
-
import { Sequence } from "./attachments/Sequence.js";
|
|
34
34
|
/** Loads skeleton data in the Spine JSON format.
|
|
35
35
|
*
|
|
36
36
|
* See [Spine JSON format](http://esotericsoftware.com/spine-json-format) and
|
|
@@ -43,11 +43,13 @@ export declare class SkeletonJson {
|
|
|
43
43
|
*
|
|
44
44
|
* See [Scaling](http://esotericsoftware.com/spine-loading-skeleton-data#Scaling) in the Spine Runtimes Guide. */
|
|
45
45
|
scale: number;
|
|
46
|
-
private linkedMeshes;
|
|
46
|
+
private readonly linkedMeshes;
|
|
47
47
|
constructor(attachmentLoader: AttachmentLoader);
|
|
48
48
|
readSkeletonData(json: string | any): SkeletonData;
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
private fromProperty;
|
|
50
|
+
private propertyScale;
|
|
51
|
+
readAttachment(map: any, skin: Skin, slotIndex: number, placeholder: string, skeletonData: SkeletonData): Attachment | null;
|
|
52
|
+
readSequence(map: object): Sequence;
|
|
51
53
|
readVertices(map: any, attachment: VertexAttachment, verticesLength: number): void;
|
|
52
54
|
readAnimation(map: any, name: string, skeletonData: SkeletonData): void;
|
|
53
55
|
}
|