{"version":3,"sources":["../ts/modules/utilities/array.ts"],"names":["exports","isArrayLike","arr","String","length","generate","value","getValue","retval","let","i","push","removeOne","haystack","needle","test","t","splice","removeAll","count"],"mappings":"2MAAAA,QAAAC,YAAA,SAAgCC,KAC/B,MAAA,EAAKA,CAAAA,KACc,UAAf,OAAOA,KAAoBA,eAAeC,QACjB,UAAtB,OAAOD,IAAIE,OACnB,EAEAJ,QAAAK,SAAA,SAA6BD,OAAgBE,OAC5C,IAAMC,SAAuD,YAArB,OAASD,MAA2BA,MAAQ,IAAQA,MAEtFE,OAAS,GACf,IAAKC,IAAIC,EAAI,EAAGA,EAAIN,OAAQ,EAAEM,EAC7BF,OAAOG,KAAMJ,SAAUG,CAAC,CAAE,EAE3B,OAAOF,MACR,EAEAR,QAAAY,UAAA,SAA8BC,SAAwBC,QACrD,IAAMC,KAAqD,YAAtB,OAASD,OAA4BA,OAAWE,GAAKA,IAAMF,OAChG,IAAKL,IAAIC,EAAI,EAAGA,EAAIG,SAAST,OAAQ,EAAEM,EACtC,GAAIK,KAAMF,SAAUH,EAAG,EAEtB,MADA,GAAGO,OAAQP,CAAC,GAAI,CAAC,EACV,CAAA,EAGT,MAAO,CAAA,CACR,EAEAV,QAAAkB,UAAA,SAA8BL,SAAwBC,QACrD,IAAMC,KAAqD,YAAtB,OAASD,OAA4BA,OAAWE,GAAKA,IAAMF,OAChGL,IAAIU,MAAQ,EACZ,IAAKV,IAAIC,EAAI,EAAGA,EAAIG,SAAST,OAAQ,EAAEM,EAClCK,KAAMF,SAAUH,EAAG,IACtB,GAAGO,OAAQP,CAAC,GAAI,CAAC,EACjB,EAAES,OAGJ,OAAOA,KACR","file":"array.js","sourcesContent":["export function isArrayLike( arr: any ): arr is ArrayLike {\r\n\tif( !arr ) return false;\r\n\tif( typeof arr === 'string' || arr instanceof String ) return false;\r\n\treturn typeof arr.length === 'number';\r\n}\r\n\r\nexport function generate( length: number, value?: T|{ ( number ): T } ) {\r\n\tconst getValue = <{ ( number ): T }>( ( ( typeof value ) === 'function' ) ? value : ( () => value ) );\r\n\r\n\tconst retval = [];\r\n\tfor( let i = 0; i < length; ++i ) {\r\n\t\tretval.push( getValue( i ) );\r\n\t}\r\n\treturn retval;\r\n}\r\n\r\nexport function removeOne( haystack: ArrayLike, needle: T|{ ( T ): boolean } ) {\r\n\tconst test = <{ ( T ): boolean }>( ( ( typeof needle ) === 'function' ) ? needle : ( t => t === needle ) );\r\n\tfor( let i = 0; i < haystack.length; ++i ) {\r\n\t\tif( test( haystack[ i ] ) ) {\r\n\t\t\t[].splice( i--, 1 );\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\treturn false;\r\n}\r\n\r\nexport function removeAll( haystack: ArrayLike, needle: T|{ ( T ): boolean } ) {\r\n\tconst test = <{ ( T ): boolean }>( ( ( typeof needle ) === 'function' ) ? needle : ( t => t === needle ) );\r\n\tlet count = 0;\r\n\tfor( let i = 0; i < haystack.length; ++i ) {\r\n\t\tif( test( haystack[ i ] ) ) {\r\n\t\t\t[].splice( i--, 1 );\r\n\t\t\t++count;\r\n\t\t}\r\n\t}\r\n\treturn count;\r\n}\r\n"]}