@usecapsule/core-components 3.14.0 → 3.16.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/capsule/capsule.esm.js +1 -1
- package/dist/capsule/capsule.esm.js.map +1 -1
- package/dist/capsule/index.esm.js +1 -1
- package/dist/capsule/index.esm.js.map +1 -1
- package/dist/capsule/{p-41bc3c58.entry.js → p-0a4c8cdc.entry.js} +2 -2
- package/dist/capsule/p-0a4c8cdc.entry.js.map +1 -0
- package/dist/capsule/{p-52bb30d8.entry.js → p-438442c7.entry.js} +2 -2
- package/dist/capsule/p-438442c7.entry.js.map +1 -0
- package/dist/capsule/{p-286db996.js → p-497acb43.js} +2 -2
- package/dist/capsule/{p-286db996.js.map → p-497acb43.js.map} +1 -1
- package/dist/capsule/p-982a7ebe.entry.js +28 -0
- package/dist/capsule/p-982a7ebe.entry.js.map +1 -0
- package/dist/capsule/{p-7dff759e.entry.js → p-d239d40d.entry.js} +2 -2
- package/dist/capsule/{p-7dff759e.entry.js.map → p-d239d40d.entry.js.map} +1 -1
- package/dist/capsule/p-f2393be6.js.map +1 -1
- package/dist/cjs/capsule.cjs.js +1 -1
- package/dist/cjs/constants-9b1b01bb.js.map +1 -1
- package/dist/cjs/cpsl-alert_34.cjs.entry.js +29 -23
- package/dist/cjs/cpsl-alert_34.cjs.entry.js.map +1 -1
- package/dist/cjs/cpsl-col.cjs.entry.js +1 -1
- package/dist/cjs/cpsl-col.cjs.entry.js.map +1 -1
- package/dist/cjs/cpsl-hero.cjs.entry.js +2 -2
- package/dist/cjs/cpsl-hero.cjs.entry.js.map +1 -1
- package/dist/cjs/cpsl-identicon.cjs.entry.js +2 -2
- package/dist/cjs/cpsl-identicon.cjs.entry.js.map +1 -1
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{prand-a35ea6b2.js → prand-76d9999c.js} +3 -4
- package/dist/cjs/prand-76d9999c.js.map +1 -0
- package/dist/collection/assets/icons/capsule-black-bg.svg +5 -5
- package/dist/collection/components/cpsl-alert/cpsl-alert.js +2 -2
- package/dist/collection/components/cpsl-alert/cpsl-alert.js.map +1 -1
- package/dist/collection/components/cpsl-auth-modal/cpsl-auth-modal.js +1 -1
- package/dist/collection/components/cpsl-auth-modal/cpsl-auth-modal.js.map +1 -1
- package/dist/collection/components/cpsl-button/cpsl-button.stories.js.map +1 -1
- package/dist/collection/components/cpsl-code-input/cpsl-code-input.js +3 -3
- package/dist/collection/components/cpsl-code-input/cpsl-code-input.js.map +1 -1
- package/dist/collection/components/cpsl-col/cpsl-col.js +2 -2
- package/dist/collection/components/cpsl-col/cpsl-col.js.map +1 -1
- package/dist/collection/components/cpsl-drawer/cpsl-drawer.js +3 -3
- package/dist/collection/components/cpsl-drawer/cpsl-drawer.js.map +1 -1
- package/dist/collection/components/cpsl-dropdown/cpsl-dropdown.js +5 -5
- package/dist/collection/components/cpsl-dropdown/cpsl-dropdown.js.map +1 -1
- package/dist/collection/components/cpsl-dropdown/dropdown-interface.js.map +1 -1
- package/dist/collection/components/cpsl-hero/cpsl-hero.js +3 -3
- package/dist/collection/components/cpsl-hero/cpsl-hero.js.map +1 -1
- package/dist/collection/components/cpsl-hero/cpsl-hero.stories.js.map +1 -1
- package/dist/collection/components/cpsl-icon/cpsl-icon.js +3 -3
- package/dist/collection/components/cpsl-icon/cpsl-icon.js.map +1 -1
- package/dist/collection/components/cpsl-icon-group/cpsl-icon-group.js +3 -3
- package/dist/collection/components/cpsl-icon-group/cpsl-icon-group.js.map +1 -1
- package/dist/collection/components/cpsl-identicon/cpsl-identicon.js +3 -3
- package/dist/collection/components/cpsl-identicon/cpsl-identicon.js.map +1 -1
- package/dist/collection/components/cpsl-identicon/cpsl-identicon.stories.js.map +1 -1
- package/dist/collection/components/cpsl-input/cpsl-input.js +29 -6
- package/dist/collection/components/cpsl-input/cpsl-input.js.map +1 -1
- package/dist/collection/components/cpsl-popover/cpsl-popover.js +2 -2
- package/dist/collection/components/cpsl-popover/cpsl-popover.js.map +1 -1
- package/dist/collection/components/cpsl-progress-indicator/cpsl-progress-indicator.js.map +1 -1
- package/dist/collection/components/cpsl-qr-code/cpsl-qr-code.js +3 -3
- package/dist/collection/components/cpsl-qr-code/cpsl-qr-code.js.map +1 -1
- package/dist/collection/components/cpsl-select/cpsl-select.js +3 -3
- package/dist/collection/components/cpsl-select/cpsl-select.js.map +1 -1
- package/dist/collection/components/cpsl-slide-button/cpsl-slide-button.js +3 -3
- package/dist/collection/components/cpsl-slide-button/cpsl-slide-button.js.map +1 -1
- package/dist/collection/components/cpsl-tab/cpsl-tab.js +3 -3
- package/dist/collection/components/cpsl-tab/cpsl-tab.js.map +1 -1
- package/dist/collection/components/cpsl-tabs/cpsl-tabs.js +3 -3
- package/dist/collection/components/cpsl-tabs/cpsl-tabs.js.map +1 -1
- package/dist/collection/components/cpsl-tile-button/cpsl-tile-button.js +2 -2
- package/dist/collection/components/cpsl-tile-button/cpsl-tile-button.js.map +1 -1
- package/dist/collection/constants.js.map +1 -1
- package/dist/collection/index.js +4 -3
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/interface.js.map +1 -1
- package/dist/collection/utils/prand.js +1 -1
- package/dist/collection/utils/prand.js.map +1 -1
- package/dist/collection/utils/theme/generateBorderRadii.js +1 -1
- package/dist/collection/utils/theme/generateBorderRadii.js.map +1 -1
- package/dist/collection/utils/theme/generateFont.js.map +1 -1
- package/dist/collection/utils/theme/generatePalette.js +2 -2
- package/dist/collection/utils/theme/generatePalette.js.map +1 -1
- package/dist/collection/utils/theme/generateTheme.js +4 -4
- package/dist/collection/utils/theme/generateTheme.js.map +1 -1
- package/dist/collection/utils/theme/utils.js.map +1 -1
- package/dist/esm/capsule.js +1 -1
- package/dist/esm/constants-fce138fa.js.map +1 -1
- package/dist/esm/cpsl-alert_34.entry.js +29 -23
- package/dist/esm/cpsl-alert_34.entry.js.map +1 -1
- package/dist/esm/cpsl-col.entry.js +1 -1
- package/dist/esm/cpsl-col.entry.js.map +1 -1
- package/dist/esm/cpsl-hero.entry.js +2 -2
- package/dist/esm/cpsl-hero.entry.js.map +1 -1
- package/dist/esm/cpsl-identicon.entry.js +2 -2
- package/dist/esm/cpsl-identicon.entry.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{prand-c8323494.js → prand-4c0d6ea7.js} +3 -4
- package/dist/esm/prand-4c0d6ea7.js.map +1 -0
- package/dist/index.js +2 -1
- package/dist/loader/package.json +3 -7
- package/dist/scripts/appendLoaderExports.js +52 -0
- package/dist/scripts/appendLoaderExports.js.map +1 -0
- package/dist/types/Users/norwood/capsule-repos/web-sdk/packages/core-components/.stencil/scripts/appendLoaderExports.d.ts +0 -0
- package/dist/types/components/cpsl-alert/cpsl-alert.d.ts +1 -1
- package/dist/types/components/cpsl-button/cpsl-button.stories.d.ts +1 -1
- package/dist/types/components/cpsl-code-input/cpsl-code-input.d.ts +1 -1
- package/dist/types/components/cpsl-dropdown/cpsl-dropdown.d.ts +1 -1
- package/dist/types/components/cpsl-dropdown/dropdown-interface.d.ts +1 -1
- package/dist/types/components/cpsl-hero/cpsl-hero.stories.d.ts +1 -1
- package/dist/types/components/cpsl-icon/cpsl-icon.d.ts +1 -1
- package/dist/types/components/cpsl-icon-group/cpsl-icon-group.d.ts +1 -1
- package/dist/types/components/cpsl-identicon/cpsl-identicon.stories.d.ts +1 -1
- package/dist/types/components/cpsl-input/cpsl-input.d.ts +6 -2
- package/dist/types/components/cpsl-qr-code/cpsl-qr-code.d.ts +1 -1
- package/dist/types/components/cpsl-select/cpsl-select.d.ts +1 -1
- package/dist/types/components/cpsl-slide-button/cpsl-slide-button.d.ts +1 -1
- package/dist/types/components/cpsl-tab/cpsl-tab.d.ts +2 -2
- package/dist/types/components/cpsl-tabs/cpsl-tabs.d.ts +2 -2
- package/dist/types/components/cpsl-tile-button/cpsl-tile-button.d.ts +1 -1
- package/dist/types/components.d.ts +20 -12
- package/dist/types/constants.d.ts +1 -1
- package/dist/types/index.d.ts +6 -4
- package/dist/types/interface.d.ts +2 -2
- package/dist/types/utils/theme/generateBorderRadii.d.ts +1 -1
- package/dist/types/utils/theme/generateFont.d.ts +1 -1
- package/dist/types/utils/theme/generatePalette.d.ts +1 -1
- package/dist/types/utils/theme/generateTheme.d.ts +1 -1
- package/dist/types/utils/theme/utils.d.ts +1 -1
- package/package.json +15 -7
- package/dist/capsule/p-07d8431a.entry.js +0 -28
- package/dist/capsule/p-07d8431a.entry.js.map +0 -1
- package/dist/capsule/p-41bc3c58.entry.js.map +0 -1
- package/dist/capsule/p-52bb30d8.entry.js.map +0 -1
- package/dist/cjs/prand-a35ea6b2.js.map +0 -1
- package/dist/esm/prand-c8323494.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["Prando","constructor","seed","this","_value","NaN","_seed","hashCode","getSafeSeed","MIN","Math","floor","MAX","random","reset","next","min","pseudoMax","recalculate","map","nextInt","max","nextString","length","chars","str","nextChar","substr","nextArrayItem","array","nextBoolean","skip","iterations","xorshift","value","val","minFrom","maxFrom","minTo","maxTo","hash","l","i","charCodeAt","COLORS","GRADIENTS","red","orange","yellow","green","blue","purple","getPseudoRandomBackground","rng","start","stop"],"sources":["src/lib/prando.ts","src/utils/prand.ts"],"sourcesContent":["/*\n * This file contains code from prando, which is licensed under the MIT License:\n *\n * Copyright (c) 2016 Zeh Fernando\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\nexport default class Prando {\n private static readonly MIN: number = -2147483648; // Int32 min\n private static readonly MAX: number = 2147483647; // Int32 max\n\n private _seed: number;\n private _value = NaN;\n\n // ================================================================================================================\n // CONSTRUCTOR ----------------------------------------------------------------------------------------------------\n\n /**\n * Generate a new Prando pseudo-random number generator.\n *\n * @param seed - A number or string seed that determines which pseudo-random number sequence will be created. Defaults to a random seed based on `Math.random()`.\n */\n constructor(seed?: number | string) {\n if (typeof seed === 'string') {\n // String seed\n this._seed = this.hashCode(seed);\n } else if (typeof seed === 'number') {\n // Numeric seed\n this._seed = this.getSafeSeed(seed);\n } else {\n // Pseudo-random seed\n this._seed = this.getSafeSeed(Prando.MIN + Math.floor((Prando.MAX - Prando.MIN) * Math.random()));\n }\n this.reset();\n }\n\n // ================================================================================================================\n // PUBLIC INTERFACE -----------------------------------------------------------------------------------------------\n\n /**\n * Generates a pseudo-random number between a lower (inclusive) and a higher (exclusive) bounds.\n *\n * @param min - The minimum number that can be randomly generated.\n * @param pseudoMax - The maximum number that can be randomly generated (exclusive).\n * @return The generated pseudo-random number.\n */\n public next(min = 0, pseudoMax = 1): number {\n this.recalculate();\n return this.map(this._value, Prando.MIN, Prando.MAX, min, pseudoMax);\n }\n\n /**\n * Generates a pseudo-random integer number in a range (inclusive).\n *\n * @param min - The minimum number that can be randomly generated.\n * @param max - The maximum number that can be randomly generated.\n * @return The generated pseudo-random number.\n */\n public nextInt(min = 10, max = 100): number {\n this.recalculate();\n return Math.floor(this.map(this._value, Prando.MIN, Prando.MAX, min, max + 1));\n }\n\n /**\n * Generates a pseudo-random string sequence of a particular length from a specific character range.\n *\n * Note: keep in mind that creating a random string sequence does not guarantee uniqueness; there is always a\n * 1 in (char_length^string_length) chance of collision. For real unique string ids, always check for\n * pre-existing ids, or employ a robust GUID/UUID generator.\n *\n * @param length - Length of the string to be generated.\n * @param chars - Characters that are used when creating the random string. Defaults to all alphanumeric chars (A-Z, a-z, 0-9).\n * @return The generated string sequence.\n */\n public nextString(length = 16, chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'): string {\n let str = '';\n while (str.length < length) {\n str += this.nextChar(chars);\n }\n return str;\n }\n\n /**\n * Generates a pseudo-random string of 1 character specific character range.\n *\n * @param chars - Characters that are used when creating the random string. Defaults to all alphanumeric chars (A-Z, a-z, 0-9).\n * @return The generated character.\n */\n public nextChar(chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'): string {\n return chars.substr(this.nextInt(0, chars.length - 1), 1);\n }\n\n /**\n * Picks a pseudo-random item from an array. The array is left unmodified.\n *\n * Note: keep in mind that while the returned item will be random enough, picking one item from the array at a time\n * does not guarantee nor imply that a sequence of random non-repeating items will be picked. If you want to\n * *pick items in a random order* from an array, instead of *pick one random item from an array*, it's best to\n * apply a *shuffle* transformation to the array instead, then read it linearly.\n *\n * @param array - Array of any type containing one or more candidates for random picking.\n * @return An item from the array.\n */\n public nextArrayItem<T>(array: T[]): T {\n return array[this.nextInt(0, array.length - 1)];\n }\n\n /**\n * Generates a pseudo-random boolean.\n *\n * @return A value of true or false.\n */\n public nextBoolean(): boolean {\n this.recalculate();\n return this._value > 0.5;\n }\n\n /**\n * Skips ahead in the sequence of numbers that are being generated. This is equivalent to\n * calling next() a specified number of times, but faster since it doesn't need to map the\n * new random numbers to a range and return it.\n *\n * @param iterations - The number of items to skip ahead.\n */\n public skip(iterations = 1): void {\n while (iterations-- > 0) {\n this.recalculate();\n }\n }\n\n /**\n * Reset the pseudo-random number sequence back to its starting seed. Further calls to next()\n * will then produce the same sequence of numbers it had produced before. This is equivalent to\n * creating a new Prando instance with the same seed as another Prando instance.\n *\n * Example:\n * let rng = new Prando(12345678);\n * console.log(rng.next()); // 0.6177754114889017\n * console.log(rng.next()); // 0.5784605181725837\n * rng.reset();\n * console.log(rng.next()); // 0.6177754114889017 again\n * console.log(rng.next()); // 0.5784605181725837 again\n */\n public reset(): void {\n this._value = this._seed;\n }\n\n // ================================================================================================================\n // PRIVATE INTERFACE ----------------------------------------------------------------------------------------------\n\n private recalculate(): void {\n this._value = this.xorshift(this._value);\n }\n\n private xorshift(value: number): number {\n // Xorshift*32\n // Based on George Marsaglia's work: http://www.jstatsoft.org/v08/i14/paper\n value ^= value << 13;\n value ^= value >> 17;\n value ^= value << 5;\n return value;\n }\n\n private map(val: number, minFrom: number, maxFrom: number, minTo: number, maxTo: number): number {\n return ((val - minFrom) / (maxFrom - minFrom)) * (maxTo - minTo) + minTo;\n }\n\n private hashCode(str: string): number {\n let hash = 0;\n if (str) {\n const l = str.length;\n for (let i = 0; i < l; i++) {\n hash = (hash << 5) - hash + str.charCodeAt(i);\n hash |= 0;\n hash = this.xorshift(hash);\n }\n }\n return this.getSafeSeed(hash);\n }\n\n private getSafeSeed(seed: number): number {\n if (seed === 0) return 1;\n return seed;\n }\n}\n","import Prando from '../lib/prando';\n\nexport type Color = 'red' | 'orange' | 'yellow' | 'green' | 'blue' | 'purple';\n\nexport const COLORS: Color[] = ['red', 'orange', 'yellow', 'green', 'blue', 'purple'];\n\nconst GRADIENTS = {\n red: ['#FF4270', '#FF7C7C'],\n orange: ['#F45532', '#FF9B63'],\n yellow: ['#FFA756', '#FBFF47'],\n green: ['#0CAE60', '#7BFFD0'],\n blue: ['#476FFF', '#47C8FF'],\n purple: ['#9747FF', '#DA47FF'],\n};\n\nexport function getPseudoRandomBackground(seed: string): string {\n const rng = new Prando(seed);\n\n const [start, stop] = GRADIENTS[COLORS[rng.nextInt(0, COLORS.length - 1)]];\n\n return `linear-gradient(136deg, ${start} 6.86%, ${stop} 93.78%)`;\n}\n"],"mappings":"AAwBA,MAAqBA,EAenB,WAAAC,CAAYC,GAVJC,KAAAC,OAASC,IAWf,UAAWH,IAAS,SAAU,CAE5BC,KAAKG,MAAQH,KAAKI,SAASL,E,MACtB,UAAWA,IAAS,SAAU,CAEnCC,KAAKG,MAAQH,KAAKK,YAAYN,E,KACzB,CAELC,KAAKG,MAAQH,KAAKK,YAAYR,EAAOS,IAAMC,KAAKC,OAAOX,EAAOY,IAAMZ,EAAOS,KAAOC,KAAKG,U,CAEzFV,KAAKW,O,CAaA,IAAAC,CAAKC,EAAM,EAAGC,EAAY,GAC/Bd,KAAKe,cACL,OAAOf,KAAKgB,IAAIhB,KAAKC,OAAQJ,EAAOS,IAAKT,EAAOY,IAAKI,EAAKC,E,CAUrD,OAAAG,CAAQJ,EAAM,GAAIK,EAAM,KAC7BlB,KAAKe,cACL,OAAOR,KAAKC,MAAMR,KAAKgB,IAAIhB,KAAKC,OAAQJ,EAAOS,IAAKT,EAAOY,IAAKI,EAAKK,EAAM,G,CActE,UAAAC,CAAWC,EAAS,GAAIC,EAAQ,kEACrC,IAAIC,EAAM,GACV,MAAOA,EAAIF,OAASA,EAAQ,CAC1BE,GAAOtB,KAAKuB,SAASF,E,CAEvB,OAAOC,C,CASF,QAAAC,CAASF,EAAQ,kEACtB,OAAOA,EAAMG,OAAOxB,KAAKiB,QAAQ,EAAGI,EAAMD,OAAS,GAAI,E,CAclD,aAAAK,CAAiBC,GACtB,OAAOA,EAAM1B,KAAKiB,QAAQ,EAAGS,EAAMN,OAAS,G,CAQvC,WAAAO,GACL3B,KAAKe,cACL,OAAOf,KAAKC,OAAS,E,CAUhB,IAAA2B,CAAKC,EAAa,GACvB,MAAOA,KAAe,EAAG,CACvB7B,KAAKe,a,EAiBF,KAAAJ,GACLX,KAAKC,OAASD,KAAKG,K,CAMb,WAAAY,GACNf,KAAKC,OAASD,KAAK8B,SAAS9B,KAAKC,O,CAG3B,QAAA6B,CAASC,GAGfA,GAASA,GAAS,GAClBA,GAASA,GAAS,GAClBA,GAASA,GAAS,EAClB,OAAOA,C,CAGD,GAAAf,CAAIgB,EAAaC,EAAiBC,EAAiBC,EAAeC,GACxE,OAASJ,EAAMC,IAAYC,EAAUD,IAAaG,EAAQD,GAASA,C,CAG7D,QAAA/B,CAASkB,GACf,IAAIe,EAAO,EACX,GAAIf,EAAK,CACP,MAAMgB,EAAIhB,EAAIF,OACd,IAAK,IAAImB,EAAI,EAAGA,EAAID,EAAGC,IAAK,CAC1BF,GAAQA,GAAQ,GAAKA,EAAOf,EAAIkB,WAAWD,GAC3CF,GAAQ,EACRA,EAAOrC,KAAK8B,SAASO,E,EAGzB,OAAOrC,KAAKK,YAAYgC,E,CAGlB,WAAAhC,CAAYN,GAClB,GAAIA,IAAS,EAAG,OAAO,EACvB,OAAOA,C,EA9KeF,EAAAS,KAAe,WACfT,EAAAY,IAAc,W,QAFnBZ,E,MCpBR4C,EAAkB,CAAC,MAAO,SAAU,SAAU,QAAS,OAAQ,UAE5E,MAAMC,EAAY,CAChBC,IAAK,CAAC,UAAW,WACjBC,OAAQ,CAAC,UAAW,WACpBC,OAAQ,CAAC,UAAW,WACpBC,MAAO,CAAC,UAAW,WACnBC,KAAM,CAAC,UAAW,WAClBC,OAAQ,CAAC,UAAW,Y,SAGNC,EAA0BlD,GACxC,MAAMmD,EAAM,IAAIrD,EAAOE,GAEvB,MAAOoD,EAAOC,GAAQV,EAAUD,EAAOS,EAAIjC,QAAQ,EAAGwB,EAAOrB,OAAS,KAEtE,MAAO,2BAA2B+B,YAAgBC,WACpD,Q","ignoreList":[]}
|
1
|
+
{"version":3,"names":["Prando","constructor","seed","this","_value","NaN","_seed","hashCode","getSafeSeed","MIN","Math","floor","MAX","random","reset","next","min","pseudoMax","recalculate","map","nextInt","max","nextString","length","chars","str","nextChar","substr","nextArrayItem","array","nextBoolean","skip","iterations","xorshift","value","val","minFrom","maxFrom","minTo","maxTo","hash","l","i","charCodeAt","COLORS","GRADIENTS","red","orange","yellow","green","blue","purple","getPseudoRandomBackground","rng","start","stop"],"sources":["src/lib/prando.ts","src/utils/prand.ts"],"sourcesContent":["/*\n * This file contains code from prando, which is licensed under the MIT License:\n *\n * Copyright (c) 2016 Zeh Fernando\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\nexport default class Prando {\n private static readonly MIN: number = -2147483648; // Int32 min\n private static readonly MAX: number = 2147483647; // Int32 max\n\n private _seed: number;\n private _value = NaN;\n\n // ================================================================================================================\n // CONSTRUCTOR ----------------------------------------------------------------------------------------------------\n\n /**\n * Generate a new Prando pseudo-random number generator.\n *\n * @param seed - A number or string seed that determines which pseudo-random number sequence will be created. Defaults to a random seed based on `Math.random()`.\n */\n constructor(seed?: number | string) {\n if (typeof seed === 'string') {\n // String seed\n this._seed = this.hashCode(seed);\n } else if (typeof seed === 'number') {\n // Numeric seed\n this._seed = this.getSafeSeed(seed);\n } else {\n // Pseudo-random seed\n this._seed = this.getSafeSeed(Prando.MIN + Math.floor((Prando.MAX - Prando.MIN) * Math.random()));\n }\n this.reset();\n }\n\n // ================================================================================================================\n // PUBLIC INTERFACE -----------------------------------------------------------------------------------------------\n\n /**\n * Generates a pseudo-random number between a lower (inclusive) and a higher (exclusive) bounds.\n *\n * @param min - The minimum number that can be randomly generated.\n * @param pseudoMax - The maximum number that can be randomly generated (exclusive).\n * @return The generated pseudo-random number.\n */\n public next(min = 0, pseudoMax = 1): number {\n this.recalculate();\n return this.map(this._value, Prando.MIN, Prando.MAX, min, pseudoMax);\n }\n\n /**\n * Generates a pseudo-random integer number in a range (inclusive).\n *\n * @param min - The minimum number that can be randomly generated.\n * @param max - The maximum number that can be randomly generated.\n * @return The generated pseudo-random number.\n */\n public nextInt(min = 10, max = 100): number {\n this.recalculate();\n return Math.floor(this.map(this._value, Prando.MIN, Prando.MAX, min, max + 1));\n }\n\n /**\n * Generates a pseudo-random string sequence of a particular length from a specific character range.\n *\n * Note: keep in mind that creating a random string sequence does not guarantee uniqueness; there is always a\n * 1 in (char_length^string_length) chance of collision. For real unique string ids, always check for\n * pre-existing ids, or employ a robust GUID/UUID generator.\n *\n * @param length - Length of the string to be generated.\n * @param chars - Characters that are used when creating the random string. Defaults to all alphanumeric chars (A-Z, a-z, 0-9).\n * @return The generated string sequence.\n */\n public nextString(length = 16, chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'): string {\n let str = '';\n while (str.length < length) {\n str += this.nextChar(chars);\n }\n return str;\n }\n\n /**\n * Generates a pseudo-random string of 1 character specific character range.\n *\n * @param chars - Characters that are used when creating the random string. Defaults to all alphanumeric chars (A-Z, a-z, 0-9).\n * @return The generated character.\n */\n public nextChar(chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'): string {\n return chars.substr(this.nextInt(0, chars.length - 1), 1);\n }\n\n /**\n * Picks a pseudo-random item from an array. The array is left unmodified.\n *\n * Note: keep in mind that while the returned item will be random enough, picking one item from the array at a time\n * does not guarantee nor imply that a sequence of random non-repeating items will be picked. If you want to\n * *pick items in a random order* from an array, instead of *pick one random item from an array*, it's best to\n * apply a *shuffle* transformation to the array instead, then read it linearly.\n *\n * @param array - Array of any type containing one or more candidates for random picking.\n * @return An item from the array.\n */\n public nextArrayItem<T>(array: T[]): T {\n return array[this.nextInt(0, array.length - 1)];\n }\n\n /**\n * Generates a pseudo-random boolean.\n *\n * @return A value of true or false.\n */\n public nextBoolean(): boolean {\n this.recalculate();\n return this._value > 0.5;\n }\n\n /**\n * Skips ahead in the sequence of numbers that are being generated. This is equivalent to\n * calling next() a specified number of times, but faster since it doesn't need to map the\n * new random numbers to a range and return it.\n *\n * @param iterations - The number of items to skip ahead.\n */\n public skip(iterations = 1): void {\n while (iterations-- > 0) {\n this.recalculate();\n }\n }\n\n /**\n * Reset the pseudo-random number sequence back to its starting seed. Further calls to next()\n * will then produce the same sequence of numbers it had produced before. This is equivalent to\n * creating a new Prando instance with the same seed as another Prando instance.\n *\n * Example:\n * let rng = new Prando(12345678);\n * console.log(rng.next()); // 0.6177754114889017\n * console.log(rng.next()); // 0.5784605181725837\n * rng.reset();\n * console.log(rng.next()); // 0.6177754114889017 again\n * console.log(rng.next()); // 0.5784605181725837 again\n */\n public reset(): void {\n this._value = this._seed;\n }\n\n // ================================================================================================================\n // PRIVATE INTERFACE ----------------------------------------------------------------------------------------------\n\n private recalculate(): void {\n this._value = this.xorshift(this._value);\n }\n\n private xorshift(value: number): number {\n // Xorshift*32\n // Based on George Marsaglia's work: http://www.jstatsoft.org/v08/i14/paper\n value ^= value << 13;\n value ^= value >> 17;\n value ^= value << 5;\n return value;\n }\n\n private map(val: number, minFrom: number, maxFrom: number, minTo: number, maxTo: number): number {\n return ((val - minFrom) / (maxFrom - minFrom)) * (maxTo - minTo) + minTo;\n }\n\n private hashCode(str: string): number {\n let hash = 0;\n if (str) {\n const l = str.length;\n for (let i = 0; i < l; i++) {\n hash = (hash << 5) - hash + str.charCodeAt(i);\n hash |= 0;\n hash = this.xorshift(hash);\n }\n }\n return this.getSafeSeed(hash);\n }\n\n private getSafeSeed(seed: number): number {\n if (seed === 0) return 1;\n return seed;\n }\n}\n","import Prando from '../lib/prando.js';\n\nexport type Color = 'red' | 'orange' | 'yellow' | 'green' | 'blue' | 'purple';\n\nexport const COLORS: Color[] = ['red', 'orange', 'yellow', 'green', 'blue', 'purple'];\n\nconst GRADIENTS = {\n red: ['#FF4270', '#FF7C7C'],\n orange: ['#F45532', '#FF9B63'],\n yellow: ['#FFA756', '#FBFF47'],\n green: ['#0CAE60', '#7BFFD0'],\n blue: ['#476FFF', '#47C8FF'],\n purple: ['#9747FF', '#DA47FF'],\n};\n\nexport function getPseudoRandomBackground(seed: string): string {\n const rng = new Prando(seed);\n\n const [start, stop] = GRADIENTS[COLORS[rng.nextInt(0, COLORS.length - 1)]];\n\n return `linear-gradient(136deg, ${start} 6.86%, ${stop} 93.78%)`;\n}\n"],"mappings":"AAwBA,MAAqBA,EAenB,WAAAC,CAAYC,GAVJC,KAAAC,OAASC,IAWf,UAAWH,IAAS,SAAU,CAE5BC,KAAKG,MAAQH,KAAKI,SAASL,E,MACtB,UAAWA,IAAS,SAAU,CAEnCC,KAAKG,MAAQH,KAAKK,YAAYN,E,KACzB,CAELC,KAAKG,MAAQH,KAAKK,YAAYR,EAAOS,IAAMC,KAAKC,OAAOX,EAAOY,IAAMZ,EAAOS,KAAOC,KAAKG,U,CAEzFV,KAAKW,O,CAaA,IAAAC,CAAKC,EAAM,EAAGC,EAAY,GAC/Bd,KAAKe,cACL,OAAOf,KAAKgB,IAAIhB,KAAKC,OAAQJ,EAAOS,IAAKT,EAAOY,IAAKI,EAAKC,E,CAUrD,OAAAG,CAAQJ,EAAM,GAAIK,EAAM,KAC7BlB,KAAKe,cACL,OAAOR,KAAKC,MAAMR,KAAKgB,IAAIhB,KAAKC,OAAQJ,EAAOS,IAAKT,EAAOY,IAAKI,EAAKK,EAAM,G,CActE,UAAAC,CAAWC,EAAS,GAAIC,EAAQ,kEACrC,IAAIC,EAAM,GACV,MAAOA,EAAIF,OAASA,EAAQ,CAC1BE,GAAOtB,KAAKuB,SAASF,E,CAEvB,OAAOC,C,CASF,QAAAC,CAASF,EAAQ,kEACtB,OAAOA,EAAMG,OAAOxB,KAAKiB,QAAQ,EAAGI,EAAMD,OAAS,GAAI,E,CAclD,aAAAK,CAAiBC,GACtB,OAAOA,EAAM1B,KAAKiB,QAAQ,EAAGS,EAAMN,OAAS,G,CAQvC,WAAAO,GACL3B,KAAKe,cACL,OAAOf,KAAKC,OAAS,E,CAUhB,IAAA2B,CAAKC,EAAa,GACvB,MAAOA,KAAe,EAAG,CACvB7B,KAAKe,a,EAiBF,KAAAJ,GACLX,KAAKC,OAASD,KAAKG,K,CAMb,WAAAY,GACNf,KAAKC,OAASD,KAAK8B,SAAS9B,KAAKC,O,CAG3B,QAAA6B,CAASC,GAGfA,GAASA,GAAS,GAClBA,GAASA,GAAS,GAClBA,GAASA,GAAS,EAClB,OAAOA,C,CAGD,GAAAf,CAAIgB,EAAaC,EAAiBC,EAAiBC,EAAeC,GACxE,OAASJ,EAAMC,IAAYC,EAAUD,IAAaG,EAAQD,GAASA,C,CAG7D,QAAA/B,CAASkB,GACf,IAAIe,EAAO,EACX,GAAIf,EAAK,CACP,MAAMgB,EAAIhB,EAAIF,OACd,IAAK,IAAImB,EAAI,EAAGA,EAAID,EAAGC,IAAK,CAC1BF,GAAQA,GAAQ,GAAKA,EAAOf,EAAIkB,WAAWD,GAC3CF,GAAQ,EACRA,EAAOrC,KAAK8B,SAASO,E,EAGzB,OAAOrC,KAAKK,YAAYgC,E,CAGlB,WAAAhC,CAAYN,GAClB,GAAIA,IAAS,EAAG,OAAO,EACvB,OAAOA,C,EA9KeF,EAAAS,KAAe,WACfT,EAAAY,IAAc,W,MCtB3BgC,EAAkB,CAAC,MAAO,SAAU,SAAU,QAAS,OAAQ,UAE5E,MAAMC,EAAY,CAChBC,IAAK,CAAC,UAAW,WACjBC,OAAQ,CAAC,UAAW,WACpBC,OAAQ,CAAC,UAAW,WACpBC,MAAO,CAAC,UAAW,WACnBC,KAAM,CAAC,UAAW,WAClBC,OAAQ,CAAC,UAAW,Y,SAGNC,EAA0BlD,GACxC,MAAMmD,EAAM,IAAIrD,EAAOE,GAEvB,MAAOoD,EAAOC,GAAQV,EAAUD,EAAOS,EAAIjC,QAAQ,EAAGwB,EAAOrB,OAAS,KAEtE,MAAO,2BAA2B+B,YAAgBC,WACpD,Q","ignoreList":[]}
|