@tampadevs/react 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.
Files changed (123) hide show
  1. package/dist/components/Avatar.d.ts +16 -0
  2. package/dist/components/Avatar.d.ts.map +1 -0
  3. package/dist/components/AvatarGroup.d.ts +14 -0
  4. package/dist/components/AvatarGroup.d.ts.map +1 -0
  5. package/dist/components/Button.d.ts +13 -0
  6. package/dist/components/Button.d.ts.map +1 -0
  7. package/dist/components/Button.test.d.ts +2 -0
  8. package/dist/components/Button.test.d.ts.map +1 -0
  9. package/dist/components/Calendar.d.ts +27 -0
  10. package/dist/components/Calendar.d.ts.map +1 -0
  11. package/dist/components/Carousel.d.ts +11 -0
  12. package/dist/components/Carousel.d.ts.map +1 -0
  13. package/dist/components/CtaSection.d.ts +13 -0
  14. package/dist/components/CtaSection.d.ts.map +1 -0
  15. package/dist/components/EventCard.d.ts +19 -0
  16. package/dist/components/EventCard.d.ts.map +1 -0
  17. package/dist/components/Footer.d.ts +25 -0
  18. package/dist/components/Footer.d.ts.map +1 -0
  19. package/dist/components/Header.d.ts +17 -0
  20. package/dist/components/Header.d.ts.map +1 -0
  21. package/dist/components/Icon.d.ts +8 -0
  22. package/dist/components/Icon.d.ts.map +1 -0
  23. package/dist/components/Image.d.ts +17 -0
  24. package/dist/components/Image.d.ts.map +1 -0
  25. package/dist/components/ImageCarousel.d.ts +18 -0
  26. package/dist/components/ImageCarousel.d.ts.map +1 -0
  27. package/dist/components/ImageText.d.ts +16 -0
  28. package/dist/components/ImageText.d.ts.map +1 -0
  29. package/dist/components/Logo.d.ts +15 -0
  30. package/dist/components/Logo.d.ts.map +1 -0
  31. package/dist/components/Logo3d.d.ts +28 -0
  32. package/dist/components/Logo3d.d.ts.map +1 -0
  33. package/dist/components/LogoMarquee.d.ts +18 -0
  34. package/dist/components/LogoMarquee.d.ts.map +1 -0
  35. package/dist/components/NewsletterSignup.d.ts +11 -0
  36. package/dist/components/NewsletterSignup.d.ts.map +1 -0
  37. package/dist/components/OpenCollective.d.ts +16 -0
  38. package/dist/components/OpenCollective.d.ts.map +1 -0
  39. package/dist/components/PersonCard.d.ts +20 -0
  40. package/dist/components/PersonCard.d.ts.map +1 -0
  41. package/dist/components/PersonTable.d.ts +28 -0
  42. package/dist/components/PersonTable.d.ts.map +1 -0
  43. package/dist/components/PromoSection.d.ts +20 -0
  44. package/dist/components/PromoSection.d.ts.map +1 -0
  45. package/dist/components/SponsorCard.d.ts +10 -0
  46. package/dist/components/SponsorCard.d.ts.map +1 -0
  47. package/dist/components/SponsorGrid.d.ts +21 -0
  48. package/dist/components/SponsorGrid.d.ts.map +1 -0
  49. package/dist/components/Table.d.ts +30 -0
  50. package/dist/components/Table.d.ts.map +1 -0
  51. package/dist/components/VideoEmbed.d.ts +14 -0
  52. package/dist/components/VideoEmbed.d.ts.map +1 -0
  53. package/dist/components/VideoHero.d.ts +16 -0
  54. package/dist/components/VideoHero.d.ts.map +1 -0
  55. package/dist/index.d.ts +53 -0
  56. package/dist/index.d.ts.map +1 -0
  57. package/dist/index.js +55 -0
  58. package/dist/index.js.map +1 -0
  59. package/dist/index10.js +185 -0
  60. package/dist/index10.js.map +1 -0
  61. package/dist/index11.js +268 -0
  62. package/dist/index11.js.map +1 -0
  63. package/dist/index12.js +133 -0
  64. package/dist/index12.js.map +1 -0
  65. package/dist/index13.js +112 -0
  66. package/dist/index13.js.map +1 -0
  67. package/dist/index14.js +286 -0
  68. package/dist/index14.js.map +1 -0
  69. package/dist/index15.js +325 -0
  70. package/dist/index15.js.map +1 -0
  71. package/dist/index16.js +204 -0
  72. package/dist/index16.js.map +1 -0
  73. package/dist/index17.js +269 -0
  74. package/dist/index17.js.map +1 -0
  75. package/dist/index18.js +147 -0
  76. package/dist/index18.js.map +1 -0
  77. package/dist/index19.js +697 -0
  78. package/dist/index19.js.map +1 -0
  79. package/dist/index2.js +181 -0
  80. package/dist/index2.js.map +1 -0
  81. package/dist/index20.js +492 -0
  82. package/dist/index20.js.map +1 -0
  83. package/dist/index21.js +277 -0
  84. package/dist/index21.js.map +1 -0
  85. package/dist/index22.js +331 -0
  86. package/dist/index22.js.map +1 -0
  87. package/dist/index23.js +98 -0
  88. package/dist/index23.js.map +1 -0
  89. package/dist/index24.js +406 -0
  90. package/dist/index24.js.map +1 -0
  91. package/dist/index25.js +464 -0
  92. package/dist/index25.js.map +1 -0
  93. package/dist/index26.js +280 -0
  94. package/dist/index26.js.map +1 -0
  95. package/dist/index27.js +234 -0
  96. package/dist/index27.js.map +1 -0
  97. package/dist/index28.js +18 -0
  98. package/dist/index28.js.map +1 -0
  99. package/dist/index29.js +10779 -0
  100. package/dist/index29.js.map +1 -0
  101. package/dist/index3.js +39 -0
  102. package/dist/index3.js.map +1 -0
  103. package/dist/index30.js +358 -0
  104. package/dist/index30.js.map +1 -0
  105. package/dist/index31.js +199 -0
  106. package/dist/index31.js.map +1 -0
  107. package/dist/index32.js +22762 -0
  108. package/dist/index32.js.map +1 -0
  109. package/dist/index4.js +142 -0
  110. package/dist/index4.js.map +1 -0
  111. package/dist/index5.js +128 -0
  112. package/dist/index5.js.map +1 -0
  113. package/dist/index6.js +109 -0
  114. package/dist/index6.js.map +1 -0
  115. package/dist/index7.js +254 -0
  116. package/dist/index7.js.map +1 -0
  117. package/dist/index8.js +237 -0
  118. package/dist/index8.js.map +1 -0
  119. package/dist/index9.js +142 -0
  120. package/dist/index9.js.map +1 -0
  121. package/dist/test/setup.d.ts +2 -0
  122. package/dist/test/setup.d.ts.map +1 -0
  123. package/package.json +58 -0
@@ -0,0 +1,199 @@
1
+ import "./index29.js";
2
+ import { Loader as b, LoaderUtils as w, FileLoader as M, FrontSide as x, RepeatWrapping as F, ColorManagement as d, Color as u, SRGBColorSpace as f, MeshPhongMaterial as O, Vector2 as g, DefaultLoadingManager as y, TextureLoader as L } from "./index32.js";
3
+ class S extends b {
4
+ constructor(t) {
5
+ super(t);
6
+ }
7
+ /**
8
+ * Starts loading from the given URL and passes the loaded MTL asset
9
+ * to the `onLoad()` callback.
10
+ *
11
+ * @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.
12
+ * @param {function(MaterialCreator)} onLoad - Executed when the loading process has been finished.
13
+ * @param {onProgressCallback} onProgress - Executed while the loading is in progress.
14
+ * @param {onErrorCallback} onError - Executed when errors occur.
15
+ */
16
+ load(t, o, p, e) {
17
+ const a = this, n = this.path === "" ? w.extractUrlBase(t) : this.path, r = new M(this.manager);
18
+ r.setPath(this.path), r.setRequestHeader(this.requestHeader), r.setWithCredentials(this.withCredentials), r.load(t, function(s) {
19
+ try {
20
+ o(a.parse(s, n));
21
+ } catch (i) {
22
+ e ? e(i) : console.error(i), a.manager.itemError(t);
23
+ }
24
+ }, p, e);
25
+ }
26
+ /**
27
+ * Sets the material options.
28
+ *
29
+ * @param {MTLLoader~MaterialOptions} value - The material options.
30
+ * @return {MTLLoader} A reference to this loader.
31
+ */
32
+ setMaterialOptions(t) {
33
+ return this.materialOptions = t, this;
34
+ }
35
+ /**
36
+ * Parses the given MTL data and returns the resulting material creator.
37
+ *
38
+ * @param {string} text - The raw MTL data as a string.
39
+ * @param {string} path - The URL base path.
40
+ * @return {MaterialCreator} The material creator.
41
+ */
42
+ parse(t, o) {
43
+ const p = t.split(`
44
+ `);
45
+ let e = {};
46
+ const a = /\s+/, n = {};
47
+ for (let s = 0; s < p.length; s++) {
48
+ let i = p[s];
49
+ if (i = i.trim(), i.length === 0 || i.charAt(0) === "#")
50
+ continue;
51
+ const c = i.indexOf(" ");
52
+ let l = c >= 0 ? i.substring(0, c) : i;
53
+ l = l.toLowerCase();
54
+ let h = c >= 0 ? i.substring(c + 1) : "";
55
+ if (h = h.trim(), l === "newmtl")
56
+ e = { name: h }, n[h] = e;
57
+ else if (l === "ka" || l === "kd" || l === "ks" || l === "ke") {
58
+ const m = h.split(a, 3);
59
+ e[l] = [parseFloat(m[0]), parseFloat(m[1]), parseFloat(m[2])];
60
+ } else
61
+ e[l] = h;
62
+ }
63
+ const r = new C(this.resourcePath || o, this.materialOptions);
64
+ return r.setCrossOrigin(this.crossOrigin), r.setManager(this.manager), r.setMaterials(n), r;
65
+ }
66
+ }
67
+ class C {
68
+ constructor(t = "", o = {}) {
69
+ this.baseUrl = t, this.options = o, this.materialsInfo = {}, this.materials = {}, this.materialsArray = [], this.nameLookup = {}, this.crossOrigin = "anonymous", this.side = this.options.side !== void 0 ? this.options.side : x, this.wrap = this.options.wrap !== void 0 ? this.options.wrap : F;
70
+ }
71
+ setCrossOrigin(t) {
72
+ return this.crossOrigin = t, this;
73
+ }
74
+ setManager(t) {
75
+ this.manager = t;
76
+ }
77
+ setMaterials(t) {
78
+ this.materialsInfo = this.convert(t), this.materials = {}, this.materialsArray = [], this.nameLookup = {};
79
+ }
80
+ convert(t) {
81
+ if (!this.options) return t;
82
+ const o = {};
83
+ for (const p in t) {
84
+ const e = t[p], a = {};
85
+ o[p] = a;
86
+ for (const n in e) {
87
+ let r = !0, s = e[n];
88
+ const i = n.toLowerCase();
89
+ switch (i) {
90
+ case "kd":
91
+ case "ka":
92
+ case "ks":
93
+ this.options && this.options.normalizeRGB && (s = [s[0] / 255, s[1] / 255, s[2] / 255]), this.options && this.options.ignoreZeroRGBs && s[0] === 0 && s[1] === 0 && s[2] === 0 && (r = !1);
94
+ break;
95
+ }
96
+ r && (a[i] = s);
97
+ }
98
+ }
99
+ return o;
100
+ }
101
+ preload() {
102
+ for (const t in this.materialsInfo)
103
+ this.create(t);
104
+ }
105
+ getIndex(t) {
106
+ return this.nameLookup[t];
107
+ }
108
+ getAsArray() {
109
+ let t = 0;
110
+ for (const o in this.materialsInfo)
111
+ this.materialsArray[t] = this.create(o), this.nameLookup[o] = t, t++;
112
+ return this.materialsArray;
113
+ }
114
+ create(t) {
115
+ return this.materials[t] === void 0 && this.createMaterial_(t), this.materials[t];
116
+ }
117
+ createMaterial_(t) {
118
+ const o = this, p = this.materialsInfo[t], e = {
119
+ name: t,
120
+ side: this.side
121
+ };
122
+ function a(r, s) {
123
+ return typeof s != "string" || s === "" ? "" : /^https?:\/\//i.test(s) ? s : r + s;
124
+ }
125
+ function n(r, s) {
126
+ if (e[r]) return;
127
+ const i = o.getTextureParams(s, e), c = o.loadTexture(a(o.baseUrl, i.url));
128
+ c.repeat.copy(i.scale), c.offset.copy(i.offset), c.wrapS = o.wrap, c.wrapT = o.wrap, (r === "map" || r === "emissiveMap") && (c.colorSpace = f), e[r] = c;
129
+ }
130
+ for (const r in p) {
131
+ const s = p[r];
132
+ let i;
133
+ if (s !== "")
134
+ switch (r.toLowerCase()) {
135
+ // Ns is material specular exponent
136
+ case "kd":
137
+ e.color = d.colorSpaceToWorking(new u().fromArray(s), f);
138
+ break;
139
+ case "ks":
140
+ e.specular = d.colorSpaceToWorking(new u().fromArray(s), f);
141
+ break;
142
+ case "ke":
143
+ e.emissive = d.colorSpaceToWorking(new u().fromArray(s), f);
144
+ break;
145
+ case "map_kd":
146
+ n("map", s);
147
+ break;
148
+ case "map_ks":
149
+ n("specularMap", s);
150
+ break;
151
+ case "map_ke":
152
+ n("emissiveMap", s);
153
+ break;
154
+ case "norm":
155
+ n("normalMap", s);
156
+ break;
157
+ case "map_bump":
158
+ case "bump":
159
+ n("bumpMap", s);
160
+ break;
161
+ case "disp":
162
+ n("displacementMap", s);
163
+ break;
164
+ case "map_d":
165
+ n("alphaMap", s), e.transparent = !0;
166
+ break;
167
+ case "ns":
168
+ e.shininess = parseFloat(s);
169
+ break;
170
+ case "d":
171
+ i = parseFloat(s), i < 1 && (e.opacity = i, e.transparent = !0);
172
+ break;
173
+ case "tr":
174
+ i = parseFloat(s), this.options && this.options.invertTrProperty && (i = 1 - i), i > 0 && (e.opacity = 1 - i, e.transparent = !0);
175
+ break;
176
+ }
177
+ }
178
+ return this.materials[t] = new O(e), this.materials[t];
179
+ }
180
+ getTextureParams(t, o) {
181
+ const p = {
182
+ scale: new g(1, 1),
183
+ offset: new g(0, 0)
184
+ }, e = t.split(/\s+/);
185
+ let a;
186
+ return a = e.indexOf("-bm"), a >= 0 && (o.bumpScale = parseFloat(e[a + 1]), e.splice(a, 2)), a = e.indexOf("-mm"), a >= 0 && (o.displacementBias = parseFloat(e[a + 1]), o.displacementScale = parseFloat(e[a + 2]), e.splice(a, 3)), a = e.indexOf("-s"), a >= 0 && (p.scale.set(parseFloat(e[a + 1]), parseFloat(e[a + 2])), e.splice(a, 4)), a = e.indexOf("-o"), a >= 0 && (p.offset.set(parseFloat(e[a + 1]), parseFloat(e[a + 2])), e.splice(a, 4)), p.url = e.join(" ").trim(), p;
187
+ }
188
+ loadTexture(t, o, p, e, a) {
189
+ const n = this.manager !== void 0 ? this.manager : y;
190
+ let r = n.getHandler(t);
191
+ r === null && (r = new L(n)), r.setCrossOrigin && r.setCrossOrigin(this.crossOrigin);
192
+ const s = r.load(t, p, e, a);
193
+ return o !== void 0 && (s.mapping = o), s;
194
+ }
195
+ }
196
+ export {
197
+ S as MTLLoader
198
+ };
199
+ //# sourceMappingURL=index31.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index31.js","sources":["../../../node_modules/.pnpm/three@0.182.0/node_modules/three/examples/jsm/loaders/MTLLoader.js"],"sourcesContent":["import {\n\tColor,\n\tColorManagement,\n\tDefaultLoadingManager,\n\tFileLoader,\n\tFrontSide,\n\tLoader,\n\tLoaderUtils,\n\tMeshPhongMaterial,\n\tRepeatWrapping,\n\tTextureLoader,\n\tVector2,\n\tSRGBColorSpace\n} from 'three';\n\n/**\n * A loader for the MTL format.\n *\n * The Material Template Library format (MTL) or .MTL File Format is a companion file format\n * to OBJ that describes surface shading (material) properties of objects within one or more\n * OBJ files.\n *\n * ```js\n * const loader = new MTLLoader();\n * const materials = await loader.loadAsync( 'models/obj/male02/male02.mtl' );\n *\n * const objLoader = new OBJLoader();\n * objLoader.setMaterials( materials );\n * ```\n *\n * @augments Loader\n * @three_import import { MTLLoader } from 'three/addons/loaders/MTLLoader.js';\n */\nclass MTLLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\t/**\n\t * Starts loading from the given URL and passes the loaded MTL asset\n\t * to the `onLoad()` callback.\n\t *\n\t * @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.\n\t * @param {function(MaterialCreator)} onLoad - Executed when the loading process has been finished.\n\t * @param {onProgressCallback} onProgress - Executed while the loading is in progress.\n\t * @param {onErrorCallback} onError - Executed when errors occur.\n\t */\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst path = ( this.path === '' ) ? LoaderUtils.extractUrlBase( url ) : this.path;\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setPath( this.path );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( this.withCredentials );\n\t\tloader.load( url, function ( text ) {\n\n\t\t\ttry {\n\n\t\t\t\tonLoad( scope.parse( text, path ) );\n\n\t\t\t} catch ( e ) {\n\n\t\t\t\tif ( onError ) {\n\n\t\t\t\t\tonError( e );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( e );\n\n\t\t\t\t}\n\n\t\t\t\tscope.manager.itemError( url );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t}\n\n\t/**\n\t * Sets the material options.\n\t *\n\t * @param {MTLLoader~MaterialOptions} value - The material options.\n\t * @return {MTLLoader} A reference to this loader.\n\t */\n\tsetMaterialOptions( value ) {\n\n\t\tthis.materialOptions = value;\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Parses the given MTL data and returns the resulting material creator.\n\t *\n\t * @param {string} text - The raw MTL data as a string.\n\t * @param {string} path - The URL base path.\n\t * @return {MaterialCreator} The material creator.\n\t */\n\tparse( text, path ) {\n\n\t\tconst lines = text.split( '\\n' );\n\t\tlet info = {};\n\t\tconst delimiter_pattern = /\\s+/;\n\t\tconst materialsInfo = {};\n\n\t\tfor ( let i = 0; i < lines.length; i ++ ) {\n\n\t\t\tlet line = lines[ i ];\n\t\t\tline = line.trim();\n\n\t\t\tif ( line.length === 0 || line.charAt( 0 ) === '#' ) {\n\n\t\t\t\t// Blank line or comment ignore\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tconst pos = line.indexOf( ' ' );\n\n\t\t\tlet key = ( pos >= 0 ) ? line.substring( 0, pos ) : line;\n\t\t\tkey = key.toLowerCase();\n\n\t\t\tlet value = ( pos >= 0 ) ? line.substring( pos + 1 ) : '';\n\t\t\tvalue = value.trim();\n\n\t\t\tif ( key === 'newmtl' ) {\n\n\t\t\t\t// New material\n\n\t\t\t\tinfo = { name: value };\n\t\t\t\tmaterialsInfo[ value ] = info;\n\n\t\t\t} else {\n\n\t\t\t\tif ( key === 'ka' || key === 'kd' || key === 'ks' || key === 'ke' ) {\n\n\t\t\t\t\tconst ss = value.split( delimiter_pattern, 3 );\n\t\t\t\t\tinfo[ key ] = [ parseFloat( ss[ 0 ] ), parseFloat( ss[ 1 ] ), parseFloat( ss[ 2 ] ) ];\n\n\t\t\t\t} else {\n\n\t\t\t\t\tinfo[ key ] = value;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst materialCreator = new MaterialCreator( this.resourcePath || path, this.materialOptions );\n\t\tmaterialCreator.setCrossOrigin( this.crossOrigin );\n\t\tmaterialCreator.setManager( this.manager );\n\t\tmaterialCreator.setMaterials( materialsInfo );\n\t\treturn materialCreator;\n\n\t}\n\n}\n\n/**\n * Material options of `MTLLoader`.\n *\n * @typedef {Object} MTLLoader~MaterialOptions\n * @property {(FrontSide|BackSide|DoubleSide)} [side=FrontSide] - Which side to apply the material.\n * @property {(RepeatWrapping|ClampToEdgeWrapping|MirroredRepeatWrapping)} [wrap=RepeatWrapping] - What type of wrapping to apply for textures.\n * @property {boolean} [normalizeRGB=false] - Whether RGB colors should be normalized to `0-1` from `0-255`.\n * @property {boolean} [ignoreZeroRGBs=false] - Ignore values of RGBs (Ka,Kd,Ks) that are all 0's.\n */\n\nclass MaterialCreator {\n\n\tconstructor( baseUrl = '', options = {} ) {\n\n\t\tthis.baseUrl = baseUrl;\n\t\tthis.options = options;\n\t\tthis.materialsInfo = {};\n\t\tthis.materials = {};\n\t\tthis.materialsArray = [];\n\t\tthis.nameLookup = {};\n\n\t\tthis.crossOrigin = 'anonymous';\n\n\t\tthis.side = ( this.options.side !== undefined ) ? this.options.side : FrontSide;\n\t\tthis.wrap = ( this.options.wrap !== undefined ) ? this.options.wrap : RepeatWrapping;\n\n\t}\n\n\tsetCrossOrigin( value ) {\n\n\t\tthis.crossOrigin = value;\n\t\treturn this;\n\n\t}\n\n\tsetManager( value ) {\n\n\t\tthis.manager = value;\n\n\t}\n\n\tsetMaterials( materialsInfo ) {\n\n\t\tthis.materialsInfo = this.convert( materialsInfo );\n\t\tthis.materials = {};\n\t\tthis.materialsArray = [];\n\t\tthis.nameLookup = {};\n\n\t}\n\n\tconvert( materialsInfo ) {\n\n\t\tif ( ! this.options ) return materialsInfo;\n\n\t\tconst converted = {};\n\n\t\tfor ( const mn in materialsInfo ) {\n\n\t\t\t// Convert materials info into normalized form based on options\n\n\t\t\tconst mat = materialsInfo[ mn ];\n\n\t\t\tconst covmat = {};\n\n\t\t\tconverted[ mn ] = covmat;\n\n\t\t\tfor ( const prop in mat ) {\n\n\t\t\t\tlet save = true;\n\t\t\t\tlet value = mat[ prop ];\n\t\t\t\tconst lprop = prop.toLowerCase();\n\n\t\t\t\tswitch ( lprop ) {\n\n\t\t\t\t\tcase 'kd':\n\t\t\t\t\tcase 'ka':\n\t\t\t\t\tcase 'ks':\n\n\t\t\t\t\t\t// Diffuse color (color under white light) using RGB values\n\n\t\t\t\t\t\tif ( this.options && this.options.normalizeRGB ) {\n\n\t\t\t\t\t\t\tvalue = [ value[ 0 ] / 255, value[ 1 ] / 255, value[ 2 ] / 255 ];\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( this.options && this.options.ignoreZeroRGBs ) {\n\n\t\t\t\t\t\t\tif ( value[ 0 ] === 0 && value[ 1 ] === 0 && value[ 2 ] === 0 ) {\n\n\t\t\t\t\t\t\t\t// ignore\n\n\t\t\t\t\t\t\t\tsave = false;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t}\n\n\t\t\t\tif ( save ) {\n\n\t\t\t\t\tcovmat[ lprop ] = value;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn converted;\n\n\t}\n\n\tpreload() {\n\n\t\tfor ( const mn in this.materialsInfo ) {\n\n\t\t\tthis.create( mn );\n\n\t\t}\n\n\t}\n\n\tgetIndex( materialName ) {\n\n\t\treturn this.nameLookup[ materialName ];\n\n\t}\n\n\tgetAsArray() {\n\n\t\tlet index = 0;\n\n\t\tfor ( const mn in this.materialsInfo ) {\n\n\t\t\tthis.materialsArray[ index ] = this.create( mn );\n\t\t\tthis.nameLookup[ mn ] = index;\n\t\t\tindex ++;\n\n\t\t}\n\n\t\treturn this.materialsArray;\n\n\t}\n\n\tcreate( materialName ) {\n\n\t\tif ( this.materials[ materialName ] === undefined ) {\n\n\t\t\tthis.createMaterial_( materialName );\n\n\t\t}\n\n\t\treturn this.materials[ materialName ];\n\n\t}\n\n\tcreateMaterial_( materialName ) {\n\n\t\t// Create material\n\n\t\tconst scope = this;\n\t\tconst mat = this.materialsInfo[ materialName ];\n\t\tconst params = {\n\n\t\t\tname: materialName,\n\t\t\tside: this.side\n\n\t\t};\n\n\t\tfunction resolveURL( baseUrl, url ) {\n\n\t\t\tif ( typeof url !== 'string' || url === '' )\n\t\t\t\treturn '';\n\n\t\t\t// Absolute URL\n\t\t\tif ( /^https?:\\/\\//i.test( url ) ) return url;\n\n\t\t\treturn baseUrl + url;\n\n\t\t}\n\n\t\tfunction setMapForType( mapType, value ) {\n\n\t\t\tif ( params[ mapType ] ) return; // Keep the first encountered texture\n\n\t\t\tconst texParams = scope.getTextureParams( value, params );\n\t\t\tconst map = scope.loadTexture( resolveURL( scope.baseUrl, texParams.url ) );\n\n\t\t\tmap.repeat.copy( texParams.scale );\n\t\t\tmap.offset.copy( texParams.offset );\n\n\t\t\tmap.wrapS = scope.wrap;\n\t\t\tmap.wrapT = scope.wrap;\n\n\t\t\tif ( mapType === 'map' || mapType === 'emissiveMap' ) {\n\n\t\t\t\tmap.colorSpace = SRGBColorSpace;\n\n\t\t\t}\n\n\t\t\tparams[ mapType ] = map;\n\n\t\t}\n\n\t\tfor ( const prop in mat ) {\n\n\t\t\tconst value = mat[ prop ];\n\t\t\tlet n;\n\n\t\t\tif ( value === '' ) continue;\n\n\t\t\tswitch ( prop.toLowerCase() ) {\n\n\t\t\t\t// Ns is material specular exponent\n\n\t\t\t\tcase 'kd':\n\n\t\t\t\t\t// Diffuse color (color under white light) using RGB values\n\n\t\t\t\t\tparams.color = ColorManagement.colorSpaceToWorking( new Color().fromArray( value ), SRGBColorSpace );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'ks':\n\n\t\t\t\t\t// Specular color (color when light is reflected from shiny surface) using RGB values\n\t\t\t\t\tparams.specular = ColorManagement.colorSpaceToWorking( new Color().fromArray( value ), SRGBColorSpace );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'ke':\n\n\t\t\t\t\t// Emissive using RGB values\n\t\t\t\t\tparams.emissive = ColorManagement.colorSpaceToWorking( new Color().fromArray( value ), SRGBColorSpace );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'map_kd':\n\n\t\t\t\t\t// Diffuse texture map\n\n\t\t\t\t\tsetMapForType( 'map', value );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'map_ks':\n\n\t\t\t\t\t// Specular map\n\n\t\t\t\t\tsetMapForType( 'specularMap', value );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'map_ke':\n\n\t\t\t\t\t// Emissive map\n\n\t\t\t\t\tsetMapForType( 'emissiveMap', value );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'norm':\n\n\t\t\t\t\tsetMapForType( 'normalMap', value );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'map_bump':\n\t\t\t\tcase 'bump':\n\n\t\t\t\t\t// Bump texture map\n\n\t\t\t\t\tsetMapForType( 'bumpMap', value );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'disp':\n\n\t\t\t\t\t// Displacement texture map\n\n\t\t\t\t\tsetMapForType( 'displacementMap', value );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'map_d':\n\n\t\t\t\t\t// Alpha map\n\n\t\t\t\t\tsetMapForType( 'alphaMap', value );\n\t\t\t\t\tparams.transparent = true;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'ns':\n\n\t\t\t\t\t// The specular exponent (defines the focus of the specular highlight)\n\t\t\t\t\t// A high exponent results in a tight, concentrated highlight. Ns values normally range from 0 to 1000.\n\n\t\t\t\t\tparams.shininess = parseFloat( value );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'd':\n\t\t\t\t\tn = parseFloat( value );\n\n\t\t\t\t\tif ( n < 1 ) {\n\n\t\t\t\t\t\tparams.opacity = n;\n\t\t\t\t\t\tparams.transparent = true;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'tr':\n\t\t\t\t\tn = parseFloat( value );\n\n\t\t\t\t\tif ( this.options && this.options.invertTrProperty ) n = 1 - n;\n\n\t\t\t\t\tif ( n > 0 ) {\n\n\t\t\t\t\t\tparams.opacity = 1 - n;\n\t\t\t\t\t\tparams.transparent = true;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.materials[ materialName ] = new MeshPhongMaterial( params );\n\t\treturn this.materials[ materialName ];\n\n\t}\n\n\tgetTextureParams( value, matParams ) {\n\n\t\tconst texParams = {\n\n\t\t\tscale: new Vector2( 1, 1 ),\n\t\t\toffset: new Vector2( 0, 0 )\n\n\t\t };\n\n\t\tconst items = value.split( /\\s+/ );\n\t\tlet pos;\n\n\t\tpos = items.indexOf( '-bm' );\n\n\t\tif ( pos >= 0 ) {\n\n\t\t\tmatParams.bumpScale = parseFloat( items[ pos + 1 ] );\n\t\t\titems.splice( pos, 2 );\n\n\t\t}\n\n\t\tpos = items.indexOf( '-mm' );\n\n\t\tif ( pos >= 0 ) {\n\n\t\t\tmatParams.displacementBias = parseFloat( items[ pos + 1 ] );\n\t\t\tmatParams.displacementScale = parseFloat( items[ pos + 2 ] );\n\t\t\titems.splice( pos, 3 );\n\n\t\t}\n\n\t\tpos = items.indexOf( '-s' );\n\n\t\tif ( pos >= 0 ) {\n\n\t\t\ttexParams.scale.set( parseFloat( items[ pos + 1 ] ), parseFloat( items[ pos + 2 ] ) );\n\t\t\titems.splice( pos, 4 ); // we expect 3 parameters here!\n\n\t\t}\n\n\t\tpos = items.indexOf( '-o' );\n\n\t\tif ( pos >= 0 ) {\n\n\t\t\ttexParams.offset.set( parseFloat( items[ pos + 1 ] ), parseFloat( items[ pos + 2 ] ) );\n\t\t\titems.splice( pos, 4 ); // we expect 3 parameters here!\n\n\t\t}\n\n\t\ttexParams.url = items.join( ' ' ).trim();\n\t\treturn texParams;\n\n\t}\n\n\tloadTexture( url, mapping, onLoad, onProgress, onError ) {\n\n\t\tconst manager = ( this.manager !== undefined ) ? this.manager : DefaultLoadingManager;\n\t\tlet loader = manager.getHandler( url );\n\n\t\tif ( loader === null ) {\n\n\t\t\tloader = new TextureLoader( manager );\n\n\t\t}\n\n\t\tif ( loader.setCrossOrigin ) loader.setCrossOrigin( this.crossOrigin );\n\n\t\tconst texture = loader.load( url, onLoad, onProgress, onError );\n\n\t\tif ( mapping !== undefined ) texture.mapping = mapping;\n\n\t\treturn texture;\n\n\t}\n\n}\n\nexport { MTLLoader };\n"],"names":["MTLLoader","Loader","manager","url","onLoad","onProgress","onError","scope","path","LoaderUtils","loader","FileLoader","text","e","value","lines","info","delimiter_pattern","materialsInfo","i","line","pos","key","ss","materialCreator","MaterialCreator","baseUrl","options","FrontSide","RepeatWrapping","converted","mn","mat","covmat","prop","save","lprop","materialName","index","params","resolveURL","setMapForType","mapType","texParams","map","SRGBColorSpace","n","ColorManagement","Color","MeshPhongMaterial","matParams","Vector2","items","mapping","DefaultLoadingManager","TextureLoader","texture"],"mappings":"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","x_google_ignoreList":[0]}