shared-ui-test-1 1.0.1 → 1.0.2
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/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/01/3f/040c1228e816cb9c08fb64e187288ff8ba118a6a4c219c675b90c2f0671abcece1bf1df0d27972f342acaf58abc240b0471d630971f1d5612cb6f81cb96b +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/03/87/b241f3b8fe0a68120d1fbbca32d818992e4e6f7f0736cf0e24076081f6a9a33dfbbe2ea501b792021873bbd57e8d80ae431f3a33450e6edbfda087a52008 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/03/91/8ae3dd03a5e838bf09d1156e7747904ad1248c193d84645e18e765877dde63555c9e1171d434f5ac487e5066678d419ba30a463254b95e37323878dae4fe +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/09/84/f75112196f4637465d7d2c2dad9a2ef4a76b63627e0ffa88b4a1d8726bbb855ec4029f6a0b91cf25ba42fed69dabf4a3dcb5eb6cea3a29b7f29dc0f95ad3 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/0c/b6/4ac66157ec095ab06e6f94e77c813f2a0b0e0bc9f94ec6fc5650f962a58d6039273a8e036d97de741363053b2ac5fc962e9abaf28daf5a905634f43a27e7 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/16/7d/674f353083cdc1b159370608303143d35f80811d30a8bd9f5ade697dbf42e23bd5c9167f2c21ff2a367b94093f467803c7628dbb21ea2deda7643c744d5a +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/1a/34/1fcf4526ae84d16205b1a97140e2d91c14239ee771d58a1e75e3724ac7c078dfd70a8cc3e92275c72d9a258f48ef707dc15ff508c595134f7881c2bd7b0b +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/1a/fa/8692e121af8219a89ff147204e3a522889a929cf5609e53eb199e6935705a62a155cfb7ac3698967ebebbc44ce4bb60e4612a7694d6e101962fdc1a25ebc +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/1b/09/9b86f27a7ffeea90e563ce7e2e300f4c10cd18b9a4cc66f19a83b7808b9171acf25273b4083fb299a0b84e3f58d0e4a1f7657c89e6fbea48f24398010c90 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/29/d0/d1718ed580be27bdbf98f24ff09ca9b2ab05b01f777b6e080a43a7ed74f6debcfc532910fae123b3ebb259cc6c841edba6489feeff73f961b57e156aa00f +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/2f/62/9f9b2eb550581b217a08c833818d19ef6e25ed4e3f0d4b2268b10f17928720e786f81460f1c5709c5ffc0cecd01debdd117f4828ba46452bd2a3d531c4d6 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/3c/fe/e2a94d282ce21ea310e4ef9f9316258bccf0f70c478281a72361ffff5dea6e15b44f7548289d443a294dd8b5b1dbb3f894e71d56eef10571d07ea83fa162 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/43/d0/75f69dabc179a7b86d10ace74eda3d0deb88aeb115b8e63a3c9da23bccd9e588f2e440db7cec89be29218707c03623d30aa1ad754ff6f420711b53676f11 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/44/d6/167368c6ca1081a3641ebdb5e7b42e400ba6f3138594c55c9bb476066b38fe9878335903b2c98e78e1140b8d95a260001f2db8f887f934799f9a18d3e612 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/48/19/0c65d82328cdb245f5adaa377d4385a19f13ae1a54f41a6df487a0aea6f6fb5415c0722ade84364b0163a2349d2ebbfa3eb32a90c4545c6d32a2913b8325 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/4c/e0/055a8a72c82d0b20ae3a134efeb1c9d641f0f6c2549aa71faf71e5fc851d2b2144632103b0abc2812c53c379508b60a5dd7a39b73593d2aaa66a5011259b +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/51/36/4f6f84be92c83d4f3b9829eabf40f3cad08e2b055c9ce7a31bcd60d381b8167a6fc2d19c543f20b0daa644e1e084e12e12bf57fbf8e546cdfe6d064ac02e +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/56/c5/5f785e169abe56b821d239bff483b2de9ec104ec7c516d662470c09cdf52f12397cc1f9923e804290bb61a87c328793fc4bd40f390ce9a36e3c8368fd379 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/5e/c2/7ea5ed650645c26ba636105fc5d87f1f0e54f151821f9eb72494dbd5c3150d9792a6af2ddee9b53f16aa6b4655bf5c4b29fb645dba1d6d63e4b8c88b34c5 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/65/ff/5a611cccef718d4fc2c5a0b5636828ea347ab3bd0e61526a1dd3c3698e84b5240c3c3ef3ff5d64f78a85ad165a4c92fbd6a012062f03c5ab0e551f1d2cad +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/6e/88/2634e35647040e486fcd7bdc361790a6de80b7944334bd94caf0b36abcce92708a834f95748d99725440d1c2b335af77513a00567a49c5cdb0e77db6c7ac +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/75/20/8a68228ecaf5c095ccb13c602b80e1def4eb6126bc9a4fc8112c90bbeba11997c8b2ff976e3b5baf4ddab68322a29ef50b53a81cecbf756b6d2124df763a +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/78/e9/5c0c5a4fde32b4c9c8a32f5cf5dbfb52cb12a592dd496c8146f19cb888fe591b634d4e8ef9f01af8c061fa1172baceea9c05a8082102d59e06ffdbfb3084 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/7a/66/a503da27c1588e8c528364ad5b833c44884f8beceda66c243fee6c61f0a3014e4aca37cb951487afc0c7918bbd042202a222a2536a3f96202c0393820f17 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/82/ed/4e387fb3681817503fc98a1faaf4b46705bb416ef13d56c9044b0dbf66ebfbe66b7fb6d53d66102bb00131d78f4295c676902aac0cfed817f604b3784568 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/84/16/51187c6eee9fbb4c3dd2c2b7c92bdec498c2a5bbf7bf1ed20f722fe8cc7d72e827c40fb3894f6b53ba8639ec54af3eb332c2e6d6194c1a7394eb5d975191 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/84/bf/ebc190f5d498f3278c779ed69cac9dfa3ba4aa3830a52e47527f8d5abc8037e67166156a93beab03507fa7dbbbdede7f0c5d71b501d7c7a7f208a702f927 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/84/dd/9d32faefb04de7c1d7197aba2e8100e99139c5886e17e4bb7c563e68cb5ff5753286a4c09d5a545669d3496445c2562c0d7d71af2891d8208f0d6a004d0e +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/87/2e/9a95bc283d194e245b59e3f68467a8e4c68d14a5cbed6411b6a7343ad981d442d8abc8b83631f5a66f3e945df402e1e81ccc248d5d7d87ccb871bdfc779a +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/87/d1/7517ae69a5180682a55c23da05c5584296e45da7c8c5565feba5f6236deb3c1779fa3338ff801d3f373611145592e74cd99afbec648286695552b6488ab9 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/88/eb/3c2119d9f2a145ff38c080c16a6397257049a0322370671b9bd6ea3f091702d018dabe87d104d36b64952a885eac73f131367a6056a3d36519a6e83563c9 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/8d/53/ad58764bc240411378ae1c47c0c20525da378a3b143795a11bc3fdbf6c9cde6fb2de6c3947d673d5872b9ce205d6274114b3b4dfd27609a636df7fd0b600 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/8f/f1/55572297520b12ec95443743fd9842bceb718cdd356d0fb7f118cebe5453e5cd13582944e26afa865b52547eea6dbee44fe5bd4c0511b8f3f43ded77b2c3 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/92/3f/14cd3165c289adb03f841d783993d2d330ebd735e7bceb024d3453c911f1db41ba92dea5af2cd6dfd4170f3ff27d382dc7cb4212b81f6e07086bc266263e +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/94/10/35575692a66e889cc0129aa506297eb9c21a7d03a5754cf48dbca517155f97f0b41d12be78a62ffd767ea58d3160e32b2b80d3863aa8662795309b596db3 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/94/89/9aa199f0d0af3892408e55c51370ddf3def4e3a1384266675ae6600a1be7d5f117e1c82c633240c1b8ce4265259744ea06512292fda991d6430a3db95189 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/95/a6/e80bf112983cd6012f28ebaf1b7e8319f52752ebe99399db87eb2739808d9a7435576f44bfc57aaf4354ab4e1564fd821208a9cd074698d3c7f6fe93d898 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/98/47/0d1edd1ba683462af44c6410101da0a0a7949b7fc0b0bfc4103a6e0c8b851c9283847e29283df4dfc5c6cb386128918a1d403fb7d079684418c6f6ad3d48 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/99/10/267bbfe7c07e3e261f54dff371e9c83375394964ebaf5b5175b7bb4c07dbc022d32b0ae5c8c6ba6ece45b9edb884061bec5d629032f9e2dfc120bdfb7f9b +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/9a/c0/14d2e0477acec7e1e4b71fdc4ba7341048be96c19b1ab95cbacdbada8d63199d785338d8ff7d4adfef2a807bb1212829ef728ad139238605d60b10d3927b +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/9a/cf/679eb03d9351055692e7c51156330ea0dfb821bbe52d1a1f819b8f8d32311271e7bed56b6e3f556170f469ad3ba70ca4d413a94ab5332767fbc56595d399 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/a1/b9/3bd628719eb8b0aa13dd058f8e3cd945fc164a00bb76aec8106c2290fbde18418b6d50ca00b1b332e7bf61d945bb801e04d105800087fa1eb5046dcea73d +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/ac/ec/91861d1ebc9b64fc825f0a2da32bf28f213f2aafd1ac29233463abd9f5e0b6cd54d94c3931dd7ea50f56c19b358d08306b5e44375160e20a24b20ab2c48c +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/ac/f5/0a316e2f12282b53da47a607cda09afeccf401a03c56db801682a608e27a04c0d12bd63995961804bebc528ea667da10284fe48425086bf925cc3324bc15 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/b5/bb/a39701c6ee3f72e736885a0ab114e3f2f1680b30641f355633a1b4ca35f399963e6704a5ab9f475bd205675a361df06d3e4be8e6f3c12f2964bb793b49d5 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/b5/d2/84b38e7e367fe74b0220b7472cda2002a81693d5c1d9c3a0442a0d63254d8b6b27205f86d92417f588f38fa6ffc5f0f4969671d8a7a8d8df8d5ab471254d +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/b6/83/2a46bab1783498203f1a245cba1b5cee5cf794c96b00c6f33e2a30c21c038ac912833b3d865a7b786894dac34235a27dd2d76f8ea8496b5aaf482c3e9ef7 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/ba/46/626bfecccccad2466d4dd52d4e6b57919fd499decf5269614a4ef76f4ccdad9fea47bea50738cd86572fb94df4f96de8ab079c504094fefd81a34c38c8da +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/bd/be/c56ec8907548629bb1d2d93d70505a9eb00eed0760903e6e4a47c337fbc26b9487c67705c483a9f20167d82f40d1a1a32f9a7742c944a88a6a15056f2bac +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/c3/02/a1ce851f2405bd373fb34406acc6036afcf6a69c3511a61be0624274852513e02717467f3ef7fa1d1287d72e964ce5f7ec62830b10a0035d848e186f12d6 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/c5/17/a058edba55f38dad32ff3a10d4a16f7dc1150c4d302f2a862579d939c804f950c649296be845a9c02d22b69284ac62a48fd2ec478d185860454f84b855da +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/c8/30/fa0a509b6198ffe6c5ecb998b0caf34cd15578f7e9e24db3a374fae7fa4a43a23db38ea0b3e6da6640167a87c7f51e9fb9f805e1f9690c23fc8375d03f15 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/c8/fc/165bbbfdefb7e0f61eea111ebf064de4a36d1ebcf6fa753375dfe3080a2ac557f0e7f132ee529705c7c8d3a0be7b3685cb6c0dd4963e5900e33d97a0a153 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/ce/29/101aaced839a4e8f90b7222db64072ace54f5c650d88780e4804c596d46abbcc9d104d05e72ffd1c072d1d7b482e71f50db99c9d9ad2775b9e7587d292e3 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/d0/23/37cbacc1a5c5ad5f0a7b2d845c3bd9b06b3ae18a66d1e60f599667f043d01b35d6df1e05422c565e2f00436df639f8705bba6d95d680a6ac2c5eda9654e8 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/df/48/15fc389b3c57a852f5432ce8dc427bae0ab19b520054fbc9bd2d241199a90eebc00d3c1a4bdd2d74cb483c62d3a7de322ced687519a2aaac79600f90c168 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/e3/b2/5583e444df3b518f55a297880ee7b01c05d9e7e96266ec157582ca2e0604259544f451163032fb684eac58291b8ab1233716a7ee3712e2895392d56d64f4 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/e7/c2/515208bd5778c7075d3ced324598eba245d1c066636ef5a58fcfb27249ccb16c98112a3cde5e3a535ccf118defc8b57969dcd2d20f7abe2e228de894337c +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/ec/9a/bec9ed151b862b597562d22a54f0b06c94eaa1e5a196f9d47f943b0cc16ccedf27305b87cc838c91ec05c715829983c6cdd9af232101378481a4d602669c +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/f1/80/c04c06838e6cf8b883d71a14834afa023da192061a5b9a28015d65b3cb1d279e11b6703930ece6589ac67a897907f9458729e27543eccf97fd11e900b455 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/content-v2/sha512/fb/65/51e78c212f0cf1b47e458e7ab066e574cd7daa545f33ec86dc6a57f6c62acaa603fe0b6955c8d30b7855482e1c7e46706b56060cbfe783cc2f55f8456ee7 +1 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/03/cc/fccc1324935a8cd6808885ec55f74d0e10b96f038938d7807e0b48e54a64 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/04/2a/09f68bac69fd8c17a8dca637e4ca5e01857461367ae29e57d2f537ba5c22 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/07/07/93064b6474e5697b72e81e2c7e00e55e80cf208764bcac9b1fb4b188b703 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/0a/39/f021effdf4547fd0145c54ea9e872809b49ae65a8ec4b9795c4c53d7a92e +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/13/3c/df40919c399dbbd57e43b2d490abaa9506a42dda16f5eeebf712e403be68 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/15/7d/4603b8f10603172f32872df745036ea0100ca4d08dfdbc9dfbe6a68361ff +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/18/e4/7cba03fe874e9c3147b696aa2d89a201442b65877ded31a1099446320458 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/1e/86/ae7bc39d1872165863e59b3976a10a19d86b5b9d41b83e3068a3386cd215 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/22/06/83e91e52605724e45002b1ccaf24df27e841b8a95ddfd88aa644f4da3afa +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/24/dd/231d64e71afb0f204660bfafd6d20f295a1815014fa25ee10ef9647d9182 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/2b/8c/0c377f22ea2614d11bbe02829e28cc30d4bb6ed763285209533f8891bd38 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/2e/d8/5b0f9a037b5b154a637d1661d90828c3ed467e534606475c2283a546688a +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/30/a5/c911dc8a1039b24e79f70a027ad5f6c9eeb3954bfabca0573949ee642055 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/38/34/6cc834b0a8cbdc119f9e91f9511cf6a40ea6f6f20157e9521261c09af6f6 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/3b/57/a3cbd16654755426316e8b5b26fba94b77f3cfe58dca8181d7303d354cf5 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/45/f9/d75db2e622b940d6154bdaf058b76b95384b8f5bf40a2b72ec456097fc42 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/47/9d/af9ac41e81771d125a03964e32f39fa0350e263611dbd425fbeb0f32949f +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/49/b9/22a37e997496c6b1f18ae3d38f059bbccf7cf5ac31ae249f79ee83b1490d +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/51/ca/7a6efb6b231ae2a64492bc13d4e99a286c304789647530de423f72442116 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/5a/cc/93b0d0eb1d2e9bca4c782a293939eabade3c8fedbc0332b902e6d51c30ca +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/5d/2f/f7f32ebd68790c8e5def1d8a1f5dcff9def6ddc8debff8cca86d183fff19 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/5e/69/d79068a2032aec8784bfda54e9c535ec00731e741d0508927ca944e33c6f +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/60/f3/306ed2cf0f1f52765f23bc166481d24bfbd3e5d314567601194735dd82c1 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/64/2e/23ea5d26e77d446e1ae83859b634d9c7c9cb7f25841ba480b8d36580bba9 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/68/ba/8b5b3941a252f6e9c38f2ac2ad96c24295dd6eb2107db4da524e00347e8e +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/6a/7e/a360e6f1c837f98654b248e7358606b96cb6a3fe12073715dd9272833937 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/6b/ee/bb0fa5a017484edcd511fd080a98efd097ece7ad7ea9725fd83a587f243c +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/6c/98/1be6bd0818e1c01aa3feee96962cce6981957c74c6eac6641afdbf122935 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/6d/ae/9bf1c25011a108bf4f2816ab43ef70dad335b1d501b3d969f22a659adeb8 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/72/c9/82496d7fe9a33ea30092b35854bed610236c88184972c68ee4ec61c27fee +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/74/7d/58478b582031769fba0916ebcd9d286fac4a5cbbb4660347116d5ec3b4e9 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/77/74/9d1eb45ee7c8fb0781fe057451b71e71150e0d975897e40e09510ba7c477 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/7b/8d/4e13b95722de3f57a217658de81df2c8748908bbaa4b936f2dbba041d635 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/7c/39/41667eb235b317fe1ff9d8b2e8957fed7b251b658b1c84edbdfd91ccb717 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/83/4c/9a70e17c1ab1eb66010b81c88e5d9aad4b4c859001480a3c10b1c998e9d8 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/88/48/834aa59cc9e064e22267fe5b772a65e6dbab04ff413b2e975a7a41d897fd +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/89/d6/8dc2624cc13aa2b19f8d18063fa6f3156f8c61d9abc05b435b8bda1aa029 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/8a/97/397caffece331c5383bbbe0c64945c67b514709980c1c25e54e987829914 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/8f/e5/31f445a30d64be9093201ce089e65013ea520dbd888e9733e744983073a3 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/a7/bb/96f7882e22191e545fa7703ea0d61cfecad6b8f42ec8729a3fbeaab40b5d +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/b4/a8/e4c9a823f741eef483d66b2ccdfc1aa4c6f0fa291d99f6409ef3864ebb52 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/b6/11/310ada84de53822d34f3ccf53899cd39bdf2765d05112f3f8e6dd5d8959e +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/bf/d0/7707d0cf0504b5b9cc0d8bdc0d11d379c599492a9815e35993d361c4c48e +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/c0/3a/dc2902a9193df2a99ca784dcebdc69e87a28de8cc3c94c84a8eaf6390500 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/c4/d5/ac42529c8990209d82fa8ce72376cd558e6e7d8113b0ec87cf1cf66c74e3 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/c5/06/320510d7cbf26fcf1f5b3bf7ac927fe4d82bcaa7d3f9e3637d9edc5f6cba +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/c8/d2/52a4d7a6c2130a378f6e043e4365e84a88566c7c512eea26309ce175cbfd +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/d1/74/7078dc9dc9a16e17420aa3d977205a916bbfce8aae472b9af4139a8efcec +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/d1/8b/defe3fcd88fa8c696f6d6dd2dd80d1f1627e3f1b5d43c42ea6b5d281f404 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/d1/f0/7c002daa447b9b556104ec5191448560ea1e213aeec74e925dfbc0e24144 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/d5/bb/3dc594ac827dac3811e8eff9c5fa3c813f458bf4283a93f6e6e00bd0e24f +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/dd/94/c502ebe6b7ba00c8d3107c0c9585b5dcd17a15c386f4960147c92a327590 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/df/60/509f2f04af76cfbf44e26658a37d3dc281ec9b154b483e19d67b8f542f37 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/e6/58/2a2ab8a9ddbe3266c199425deecc67f4d9084548ccbb7923e9c1be60bb03 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/ed/b8/2a7a77fe55fa3e4d171e9885d4368866324cc179042f8da510d0a21d16f1 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/ee/44/b9449edadad6aee67b1407a16565368d7509a086655ddc81d084b636807a +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/f6/19/bdbf05d571bfb9e1c07532b119e3b992c93f8d9fd6c3800824764f86309c +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/f9/7b/316a425887d2d24e109ebdf8082a4fc1f991d4a9b8f46ed230955a0474b0 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/fa/a4/9c6343bad076da62b7cb4c157d9b19ce8176bf129fd73528c4a97d304607 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/fb/93/b7219657e24fa0cadcc24aee416abcb8531af8f71d5784201a3e3923d347 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/fc/88/bb8095394d06053fc935fd31e805e31b197dedbad579a831b8efba2b1701 +2 -0
- package/.angular/cache/18.2.20/ng-packagr/index-v5/fd/58/ab7dfeccb54c99d552967ff9e20ffaf6b60f9fe35c94c0028755d988dd3b +2 -0
- package/.angular/cache/18.2.20/ng-packagr/tmp/519e5708 +0 -0
- package/.angular/cache/18.2.20/ng-packagr/tmp/61ae2450 +0 -0
- package/.angular/cache/18.2.20/ng-packagr/tmp/bc568f26 +0 -0
- package/.angular/cache/18.2.20/ng-packagr/tmp/dca44689 +1 -0
- package/.editorconfig +17 -0
- package/lib/package.json +28 -0
- package/package.json +19 -19
- package/constants/breadcrumbs.const.d.ts +0 -1
- package/constants/query-design-custom-class.constant.d.ts +0 -1
- package/core/directive/authorize.directive.d.ts +0 -14
- package/core/interfaces/filters.api.interface.d.ts +0 -32
- package/core/models/menu-elements-dto.d.ts +0 -21
- package/core/services/local-storage.service.d.ts +0 -34
- package/core/services/user-management.service.d.ts +0 -39
- package/core/site/services/support-util.service.d.ts +0 -18
- package/core/token/client-injection-token.d.ts +0 -2
- package/core/utils/sql-to-filter-datatype-converter.d.ts +0 -2
- package/core/utils/type-checks.utils.d.ts +0 -10
- package/core/utils/uuid-generator.utils.d.ts +0 -1
- package/directives/let.directive.d.ts +0 -25
- package/directives/remove-cancel-button.directive.d.ts +0 -10
- package/enums/action-types.enum.d.ts +0 -16
- package/enums/sort-direction.enum.d.ts +0 -4
- package/enums/source-types.enum.d.ts +0 -4
- package/enums/tooltips-prop.enum.d.ts +0 -31
- package/esm2022/constants/breadcrumbs.const.mjs +0 -2
- package/esm2022/constants/query-design-custom-class.constant.mjs +0 -2
- package/esm2022/core/directive/authorize.directive.mjs +0 -37
- package/esm2022/core/interfaces/filters.api.interface.mjs +0 -12
- package/esm2022/core/models/menu-elements-dto.mjs +0 -2
- package/esm2022/core/services/local-storage.service.mjs +0 -55
- package/esm2022/core/services/user-management.service.mjs +0 -97
- package/esm2022/core/site/services/support-util.service.mjs +0 -55
- package/esm2022/core/token/client-injection-token.mjs +0 -3
- package/esm2022/core/utils/sql-to-filter-datatype-converter.mjs +0 -37
- package/esm2022/core/utils/type-checks.utils.mjs +0 -34
- package/esm2022/core/utils/uuid-generator.utils.mjs +0 -8
- package/esm2022/directives/let.directive.mjs +0 -48
- package/esm2022/directives/remove-cancel-button.directive.mjs +0 -23
- package/esm2022/enums/action-types.enum.mjs +0 -18
- package/esm2022/enums/sort-direction.enum.mjs +0 -6
- package/esm2022/enums/source-types.enum.mjs +0 -6
- package/esm2022/enums/tooltips-prop.enum.mjs +0 -33
- package/esm2022/modules/dynamic-cards/directives/flip-card.directive.mjs +0 -44
- package/esm2022/modules/dynamic-cards/dynamic-card/card-list-container/card-list-container.component.mjs +0 -20
- package/esm2022/modules/dynamic-cards/dynamic-card/dynamic-card/dynamic-card.component.mjs +0 -19
- package/esm2022/modules/dynamic-cards/dynamic-card/dynamic-card-back/dynamic-card-back.component.mjs +0 -16
- package/esm2022/modules/dynamic-cards/dynamic-card/dynamic-card-footer/dynamic-card-footer.component.mjs +0 -21
- package/esm2022/modules/dynamic-cards/dynamic-card/dynamic-card-front/dynamic-card-front.component.mjs +0 -18
- package/esm2022/modules/dynamic-cards/dynamic-cards.module.mjs +0 -60
- package/esm2022/modules/dynamic-cards/interface/card-list.interface.mjs +0 -2
- package/esm2022/modules/dynamic-cards/interface/card.interface.mjs +0 -2
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-button-control/dynamic-form-button-control.component.mjs +0 -27
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-checkbox-control/dynamic-form-checkbox-control.component.mjs +0 -19
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-control-label/dynamic-form-control-label.component.mjs +0 -14
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-counter-control/dynamic-form-counter-control.component.mjs +0 -43
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-datepicker-control/dynamic-form-datepicker-control.component.mjs +0 -48
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-field-control/dynamic-form-field-control.component.mjs +0 -96
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-field-control/dynamic-form-field.matcher.mjs +0 -9
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-input-control/dynamic-form-input-control.component.mjs +0 -22
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-ng-select-control/dynamic-form-ng-select-control.component.mjs +0 -27
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-radio-group/dynamic-form-radio-group.component.mjs +0 -31
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-radio-group/enum/radio-group-orientation.enum.mjs +0 -6
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-select-control/dynamic-form-select-control.component.mjs +0 -29
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-switch-control/dynamic-form-switch-control.component.mjs +0 -18
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-text-area-control/dynamic-form-text-area-control.component.mjs +0 -22
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-ui-control/dynamic-form-ui-control-list/dynamic-form-ui-control-list.component.mjs +0 -74
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-ui-control/dynamic-form-ui-control.component.mjs +0 -30
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form/base-form-actions/base-form-actions.component.mjs +0 -47
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form/base-form-actions/enums/base-form-action-types.mjs +0 -7
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form/base-form-actions/interfaces/base-form-action.interface.mjs +0 -2
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form/dynamic-form-ui.component.mjs +0 -64
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form-array/dynamic-form-ui-array.component.mjs +0 -26
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form-group/dynamic-form-group.component.mjs +0 -26
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form-layout/dynamic-form-layout-item/dynamic-form-layout-item.component.mjs +0 -65
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form-layout/dynamic-form-layout.component.mjs +0 -33
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/enums/form-field-css-class.enum.mjs +0 -9
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/errors-block/errors-block.component.mjs +0 -25
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/dynamic-form-ui.module.mjs +0 -117
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/providers/ui-form-control-map.provider.mjs +0 -47
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-array.component.mjs +0 -16
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-component.mjs +0 -82
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-control-container.component.mjs +0 -189
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-control.component.mjs +0 -112
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-layout.component.mjs +0 -34
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/constants/form-errors.constant.mjs +0 -34
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/constants/matchers/matchers.constant.mjs +0 -27
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/constants/reg-exp-error.constant.mjs +0 -10
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/directives/dynamic-id.directive.mjs +0 -24
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/directives/dynamic-list.directive.mjs +0 -26
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/directives/dynamic-template.directive.mjs +0 -29
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/dynamic-form-core.module.mjs +0 -49
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/enums/autocomplete.enum.mjs +0 -6
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/enums/control-types.enum.mjs +0 -22
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/enums/form-control-events.enum.mjs +0 -8
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/enums/form-hooks.enum.mjs +0 -7
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/enums/input-types.enum.mjs +0 -20
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/enums/matcher-types.enum.mjs +0 -10
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/enums/template-directive-alignment.mjs +0 -6
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/enums/textarea-wrap.enum.mjs +0 -6
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/index.mjs +0 -39
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/components/form-control/dynamic-form-control-event.interface.mjs +0 -2
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/components/form-control/dynamic-form-control.interface.mjs +0 -2
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/dynamic-form/dynamic-form-model.interface.mjs +0 -2
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/layout/form-control-layout.interface.mjs +0 -2
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/layout/form-layout-config.interface.mjs +0 -2
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/layout/form-layout.interface.mjs +0 -2
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/matchers/form-control-matcher.interface.mjs +0 -2
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-array/form-array-model-config.interface.mjs +0 -2
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-button-control/button-control-model-config.interface.mjs +0 -2
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-check-control/check-control-model-config.interface.mjs +0 -2
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-control/form-control-model-config.interface.mjs +0 -2
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-control/form-control-relation.interface.mjs +0 -2
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-date-control/date-control-model-config.interface.mjs +0 -2
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-group/form-group-model-config.interface.mjs +0 -2
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-input-control/form-input-control-config.interface.mjs +0 -2
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-number-control/form-number-control-config.interface.mjs +0 -2
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-option/form-option-config.interface.mjs +0 -2
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-option-control/form-option-control-config.interface.mjs +0 -2
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/button-control-model-config.interface.mjs +0 -2
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/checkbox-control-model-config.interface.mjs +0 -2
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/datepicker-control-model-config.interface.mjs +0 -2
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/input-control-model-config.interface.mjs +0 -2
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/radio-group-model-config.interface.mjs +0 -2
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/select-control-model-config.interface.mjs +0 -2
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/switch-control-model-config.interface.mjs +0 -2
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/textarea-control-model-config.interface.mjs +0 -2
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-value-control/form-value-control.interface.mjs +0 -2
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/validators/validators.interface.mjs +0 -2
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-array/dynamic-form-array.model.mjs +0 -51
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-array/form-array-group/dynamic-form-array-group.model.mjs +0 -15
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-button-control/dynamic-button-control.model.mjs +0 -19
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-check-control/dynamic-check-control.model.mjs +0 -19
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-control/dynamic-form-control.model.mjs +0 -23
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-date-control/dynamic-date-control.model.mjs +0 -11
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-group/dynamic-form-group.model.mjs +0 -37
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-input-control/dynamic-input-control.model.mjs +0 -20
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-number-control/dynamic-number-control.model.mjs +0 -15
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-option/form-option.model.mjs +0 -15
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-option-control/dynamic-option-control.model.mjs +0 -52
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-static-control/static-control.model.mjs +0 -7
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/button/dynamic-button.model.mjs +0 -13
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/checkbox/dynamic-checkbox.model.mjs +0 -12
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/counter/dynamic-counter.model.mjs +0 -11
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/datepicker/dynamic-datepicker.model.mjs +0 -18
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/input/dynamic-input.model.mjs +0 -13
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/radio/dynamic-radio-group.model.mjs +0 -13
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/select/dynamic-select.model.mjs +0 -18
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/switch/dynamic-switch.model.mjs +0 -11
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/textarea/dynamic-textarea.model.mjs +0 -14
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-value-control/form-value-control.model.mjs +0 -25
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/layout/enums/FormLayoutControlTypes.enum.mjs +0 -7
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/layout/layout-control.model.mjs +0 -8
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/ng-select-control/dynamic-ng-select.model.mjs +0 -19
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/pipes/find-dynamic-control-model/find-dynamic-control-model.pipe.mjs +0 -38
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/pipes/get-error-from-key-value.pipe.mjs +0 -20
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/service/dynamic-form-component.service.mjs +0 -37
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/service/dynamic-form-layout.service.mjs +0 -35
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/service/dynamic-form-validation.service.mjs +0 -35
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/service/dynamic-form.service.mjs +0 -239
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/tokens/dynamic-matchers.token.mjs +0 -3
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/tokens/form-control-map.token.mjs +0 -3
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/tokens/validators.token.mjs +0 -3
- package/esm2022/modules/dynamic-forms/dynamic-forms.module.mjs +0 -32
- package/esm2022/modules/material/mat-cdk-module.mjs +0 -17
- package/esm2022/modules/material/material.module.mjs +0 -201
- package/esm2022/modules/query-builder/components/query-design/query-design.component.mjs +0 -103
- package/esm2022/modules/query-builder/components/query-design/rule-line/components/alphanumeric-control/alphanumeric-control.component.mjs +0 -150
- package/esm2022/modules/query-builder/components/query-design/rule-line/components/boolean-control/boolean-control.component.mjs +0 -102
- package/esm2022/modules/query-builder/components/query-design/rule-line/components/date-control/date-control.component.mjs +0 -76
- package/esm2022/modules/query-builder/components/query-design/rule-line/components/numeric-control/numeric-control.component.mjs +0 -168
- package/esm2022/modules/query-builder/components/query-design/rule-line/constants/operators-sets.mjs +0 -108
- package/esm2022/modules/query-builder/components/query-design/rule-line/helpers/condition-operators.mapper.mjs +0 -8
- package/esm2022/modules/query-builder/components/query-design/rule-line/helpers/control-values-mapper.mjs +0 -78
- package/esm2022/modules/query-builder/components/query-design/rule-line/rule-line.component.mjs +0 -234
- package/esm2022/modules/query-builder/directive/auto-complete-position.directive.mjs +0 -30
- package/esm2022/modules/query-builder/interfaces/query-builder.interface.mjs +0 -39
- package/esm2022/modules/query-builder/interfaces/select-custom-css-object.mjs +0 -2
- package/esm2022/modules/query-builder/query-builder.module.mjs +0 -66
- package/esm2022/modules/ui-kit/components/accordion/accordion-content/accordion-content.component.mjs +0 -16
- package/esm2022/modules/ui-kit/components/accordion/accordion-trigger.directive.mjs +0 -30
- package/esm2022/modules/ui-kit/components/accordion/accordion.directive.mjs +0 -19
- package/esm2022/modules/ui-kit/components/banner/banner.component.mjs +0 -53
- package/esm2022/modules/ui-kit/components/banner/banner.service.mjs +0 -64
- package/esm2022/modules/ui-kit/components/breadcrumbs/breadcrumbs.component.mjs +0 -25
- package/esm2022/modules/ui-kit/components/breadcrumbs/model/breadCrumbItem.mjs +0 -2
- package/esm2022/modules/ui-kit/components/breadcrumbs/service/breadcrumb.service.mjs +0 -63
- package/esm2022/modules/ui-kit/components/breadcrumbs/utils/crumb-service.enum.mjs +0 -8
- package/esm2022/modules/ui-kit/components/buttons/button-control/button-control.component.mjs +0 -46
- package/esm2022/modules/ui-kit/components/buttons/buttons-list/buttons-list.component.mjs +0 -11
- package/esm2022/modules/ui-kit/components/buttons/circle-button/circle-button.component.mjs +0 -37
- package/esm2022/modules/ui-kit/components/card-container/card-container.component.mjs +0 -11
- package/esm2022/modules/ui-kit/components/common-breadcrumbs/common-breadcrumbs.component.mjs +0 -30
- package/esm2022/modules/ui-kit/components/common-breadcrumbs/interface/breadcrumb.interface.mjs +0 -2
- package/esm2022/modules/ui-kit/components/common-breadcrumbs/service/breadcrumb.service.mjs +0 -65
- package/esm2022/modules/ui-kit/components/data-pagination/data-pagination.component.mjs +0 -155
- package/esm2022/modules/ui-kit/components/data-table/api-classes/filter-manager.mjs +0 -50
- package/esm2022/modules/ui-kit/components/data-table/api-classes/grid-api.mjs +0 -73
- package/esm2022/modules/ui-kit/components/data-table/constants/change-type.enum.mjs +0 -8
- package/esm2022/modules/ui-kit/components/data-table/constants/column-id.mjs +0 -13
- package/esm2022/modules/ui-kit/components/data-table/constants/row.mjs +0 -4
- package/esm2022/modules/ui-kit/components/data-table/data-col/base-data-col/base-data-col.component.mjs +0 -93
- package/esm2022/modules/ui-kit/components/data-table/data-col/data-col/data-col.component.mjs +0 -17
- package/esm2022/modules/ui-kit/components/data-table/data-col/data-col-action-button/data-col-action-button.component.mjs +0 -27
- package/esm2022/modules/ui-kit/components/data-table/data-col/data-col-boolean/data-col-boolean.component.mjs +0 -20
- package/esm2022/modules/ui-kit/components/data-table/data-col/data-col-multivalue/data-col-multivalue.component.mjs +0 -18
- package/esm2022/modules/ui-kit/components/data-table/data-col/data-col-nested/data-col-nested.component.mjs +0 -31
- package/esm2022/modules/ui-kit/components/data-table/data-col/data-col-reference/data-col-reference.component.mjs +0 -96
- package/esm2022/modules/ui-kit/components/data-table/data-col/data-col-view/data-col-view.component.mjs +0 -75
- package/esm2022/modules/ui-kit/components/data-table/data-col-disp/data-col-disp.component.mjs +0 -248
- package/esm2022/modules/ui-kit/components/data-table/data-col-filter/data-col-filter.component.mjs +0 -323
- package/esm2022/modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/col-filter-between-value.mjs +0 -68
- package/esm2022/modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/col-filter-contains-value.mjs +0 -25
- package/esm2022/modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/col-filter-in-value.mjs +0 -64
- package/esm2022/modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/col-filter-slider-value.mjs +0 -42
- package/esm2022/modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/filter-value-executor-provider.mjs +0 -42
- package/esm2022/modules/ui-kit/components/data-table/data-column-filter/data-column-filter.component.mjs +0 -69
- package/esm2022/modules/ui-kit/components/data-table/data-row/data-row.component.mjs +0 -251
- package/esm2022/modules/ui-kit/components/data-table/data-table/data-table.component.mjs +0 -1534
- package/esm2022/modules/ui-kit/components/data-table/data-table-actions/data-table-actions.component.mjs +0 -153
- package/esm2022/modules/ui-kit/components/data-table/data-table-body/data-table-body.component.mjs +0 -205
- package/esm2022/modules/ui-kit/components/data-table/data-table-check-rows/data-table-check-rows.component.mjs +0 -61
- package/esm2022/modules/ui-kit/components/data-table/data-table-row-actions/const/data-table-actions.enum.mjs +0 -8
- package/esm2022/modules/ui-kit/components/data-table/data-table-row-actions/data-table-row-actions.component.mjs +0 -120
- package/esm2022/modules/ui-kit/components/data-table/enums/col-filter-types.mjs +0 -17
- package/esm2022/modules/ui-kit/components/data-table/header-row/header-row.component.mjs +0 -14
- package/esm2022/modules/ui-kit/components/data-table/interfaces/data-table-component.interface.mjs +0 -2
- package/esm2022/modules/ui-kit/components/data-table/interfaces/filter-value-executor.interface.mjs +0 -2
- package/esm2022/modules/ui-kit/components/data-table/services/data-table-context.service.mjs +0 -26
- package/esm2022/modules/ui-kit/components/data-table-wrap/data-table-wrap.component.mjs +0 -38
- package/esm2022/modules/ui-kit/components/excel-table/excel-table.component.mjs +0 -164
- package/esm2022/modules/ui-kit/components/excel-table/interface/excel-table.interface.mjs +0 -44
- package/esm2022/modules/ui-kit/components/form/base-form-control/base-form-control.component.mjs +0 -41
- package/esm2022/modules/ui-kit/components/form/checkbox-form-control/checkbox-form-control.component.mjs +0 -21
- package/esm2022/modules/ui-kit/components/form/counter-form-control/counter-form-control.component.mjs +0 -66
- package/esm2022/modules/ui-kit/components/form/form-container/form-container.component.mjs +0 -133
- package/esm2022/modules/ui-kit/components/form/form-group-container/form-group-container.component.mjs +0 -11
- package/esm2022/modules/ui-kit/components/form/input-form-control/input-form-control.component.mjs +0 -20
- package/esm2022/modules/ui-kit/components/form/multivalue-form-control/custom-input/custom-input.component.mjs +0 -35
- package/esm2022/modules/ui-kit/components/form/multivalue-form-control/custom-input/old-new-value.interface.mjs +0 -2
- package/esm2022/modules/ui-kit/components/form/multivalue-form-control/multivalue-form-control.component.mjs +0 -66
- package/esm2022/modules/ui-kit/components/form/radio-form-control/radio-form-control.component.mjs +0 -19
- package/esm2022/modules/ui-kit/components/form/select-form-control/select-form-control.component.mjs +0 -78
- package/esm2022/modules/ui-kit/components/form/selection-group-container/selection-group-container.component.mjs +0 -18
- package/esm2022/modules/ui-kit/components/form/textarea-form-control/textarea-form-control.component.mjs +0 -20
- package/esm2022/modules/ui-kit/components/icon/expand-collapse-icon/expand-collapse-icon.component.mjs +0 -26
- package/esm2022/modules/ui-kit/components/icon/icon/icon.component.mjs +0 -35
- package/esm2022/modules/ui-kit/components/icon/text-icon/text-icon.component.mjs +0 -22
- package/esm2022/modules/ui-kit/components/layouts/form-layout/form-layout.component.mjs +0 -56
- package/esm2022/modules/ui-kit/components/layouts/primary-layout/primary-layout.component.mjs +0 -11
- package/esm2022/modules/ui-kit/components/loader/loader.component.mjs +0 -27
- package/esm2022/modules/ui-kit/components/mat-actions-button/mat-actions-button.mjs +0 -34
- package/esm2022/modules/ui-kit/components/modals/common-confirm-modal/common-confirm-modal.component.mjs +0 -53
- package/esm2022/modules/ui-kit/components/modals/confirm-modal/confirm-modal.component.mjs +0 -37
- package/esm2022/modules/ui-kit/components/modals/delete-modal/delete-modal.component.mjs +0 -41
- package/esm2022/modules/ui-kit/components/modals/enums/confirmation-modal.enum.mjs +0 -13
- package/esm2022/modules/ui-kit/components/snackbar/snackbar.component.mjs +0 -21
- package/esm2022/modules/ui-kit/components/tabs/constants/index.mjs +0 -2
- package/esm2022/modules/ui-kit/components/tabs/interfaces/index.mjs +0 -2
- package/esm2022/modules/ui-kit/components/tabs/tab-group/tab-group.component.mjs +0 -77
- package/esm2022/modules/ui-kit/components/tabs/tab.directive.mjs +0 -60
- package/esm2022/modules/ui-kit/components/tree-view/tree-view.component.mjs +0 -374
- package/esm2022/modules/ui-kit/constants/data-table.constants.mjs +0 -7
- package/esm2022/modules/ui-kit/constants/snackbar.constants.mjs +0 -4
- package/esm2022/modules/ui-kit/enums/coderefs-prop.enum.mjs +0 -26
- package/esm2022/modules/ui-kit/enums/color-schemes.enum.mjs +0 -13
- package/esm2022/modules/ui-kit/enums/column-disable-mode.enum.mjs +0 -7
- package/esm2022/modules/ui-kit/enums/column-types.enum.mjs +0 -10
- package/esm2022/modules/ui-kit/enums/component-sizes.enum.mjs +0 -6
- package/esm2022/modules/ui-kit/enums/form-item-type.mjs +0 -7
- package/esm2022/modules/ui-kit/enums/form-types.enum.mjs +0 -7
- package/esm2022/modules/ui-kit/enums/form-url-params.enum.mjs +0 -6
- package/esm2022/modules/ui-kit/enums/icons.enum.mjs +0 -24
- package/esm2022/modules/ui-kit/enums/position.enum.mjs +0 -6
- package/esm2022/modules/ui-kit/enums/select-option.enum.mjs +0 -10
- package/esm2022/modules/ui-kit/enums/snackbar.enum.mjs +0 -8
- package/esm2022/modules/ui-kit/enums/url-param-action.enum.mjs +0 -6
- package/esm2022/modules/ui-kit/enums/viewType.enum.mjs +0 -7
- package/esm2022/modules/ui-kit/interfaces/api.interface.mjs +0 -2
- package/esm2022/modules/ui-kit/interfaces/confirm-modal-data.interface.mjs +0 -2
- package/esm2022/modules/ui-kit/interfaces/constants.interface.mjs +0 -2
- package/esm2022/modules/ui-kit/interfaces/data-table.interface.mjs +0 -2
- package/esm2022/modules/ui-kit/interfaces/form.interface.mjs +0 -2
- package/esm2022/modules/ui-kit/interfaces/generic.interface.mjs +0 -2
- package/esm2022/modules/ui-kit/interfaces/list-item.interface.mjs +0 -2
- package/esm2022/modules/ui-kit/interfaces/mat-action-buttons.interface.mjs +0 -2
- package/esm2022/modules/ui-kit/interfaces/row-selection-info.interface.mjs +0 -2
- package/esm2022/modules/ui-kit/interfaces/select.interface.mjs +0 -2
- package/esm2022/modules/ui-kit/interfaces/snackbar.interface.mjs +0 -2
- package/esm2022/modules/ui-kit/interfaces/tree-view.interface.mjs +0 -2
- package/esm2022/modules/ui-kit/pipes/column-filter.pipe.mjs +0 -21
- package/esm2022/modules/ui-kit/pipes/filter-by-prop.pipe.mjs +0 -27
- package/esm2022/modules/ui-kit/pipes/first-letter-text.pipe.mjs +0 -17
- package/esm2022/modules/ui-kit/pipes/keys.pipe.mjs +0 -17
- package/esm2022/modules/ui-kit/pipes/paginate.pipe.mjs +0 -29
- package/esm2022/modules/ui-kit/pipes/search.pipe.mjs +0 -50
- package/esm2022/modules/ui-kit/services/data-table.service.mjs +0 -202
- package/esm2022/modules/ui-kit/services/form.service.mjs +0 -91
- package/esm2022/modules/ui-kit/services/mappers/form-data-table-mapper.service.mjs +0 -19
- package/esm2022/modules/ui-kit/services/snackbar.service.mjs +0 -43
- package/esm2022/modules/ui-kit/services/url.service.mjs +0 -17
- package/esm2022/modules/ui-kit/types/basic.type.mjs +0 -2
- package/esm2022/modules/ui-kit/types/function.type.mjs +0 -2
- package/esm2022/modules/ui-kit/types/select.type.mjs +0 -2
- package/esm2022/modules/ui-kit/ui-kit.module.mjs +0 -370
- package/esm2022/public-api.mjs +0 -85
- package/esm2022/shared-pipes/pipes/search.pipe.mjs +0 -48
- package/esm2022/shared-ui-test-1.mjs +0 -5
- package/esm2022/shared.module.mjs +0 -57
- package/fesm2022/shared-ui-test-1.mjs +0 -10516
- package/fesm2022/shared-ui-test-1.mjs.map +0 -1
- package/index.d.ts +0 -5
- package/modules/dynamic-cards/directives/flip-card.directive.d.ts +0 -15
- package/modules/dynamic-cards/dynamic-card/card-list-container/card-list-container.component.d.ts +0 -10
- package/modules/dynamic-cards/dynamic-card/dynamic-card/dynamic-card.component.d.ts +0 -7
- package/modules/dynamic-cards/dynamic-card/dynamic-card-back/dynamic-card-back.component.d.ts +0 -7
- package/modules/dynamic-cards/dynamic-card/dynamic-card-footer/dynamic-card-footer.component.d.ts +0 -10
- package/modules/dynamic-cards/dynamic-card/dynamic-card-front/dynamic-card-front.component.d.ts +0 -8
- package/modules/dynamic-cards/dynamic-cards.module.d.ts +0 -18
- package/modules/dynamic-cards/interface/card-list.interface.d.ts +0 -9
- package/modules/dynamic-cards/interface/card.interface.d.ts +0 -12
- package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-button-control/dynamic-form-button-control.component.d.ts +0 -11
- package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-checkbox-control/dynamic-form-checkbox-control.component.d.ts +0 -9
- package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-control-label/dynamic-form-control-label.component.d.ts +0 -7
- package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-counter-control/dynamic-form-counter-control.component.d.ts +0 -13
- package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-datepicker-control/dynamic-form-datepicker-control.component.d.ts +0 -13
- package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-field-control/dynamic-form-field-control.component.d.ts +0 -34
- package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-field-control/dynamic-form-field.matcher.d.ts +0 -8
- package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-input-control/dynamic-form-input-control.component.d.ts +0 -8
- package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-ng-select-control/dynamic-form-ng-select-control.component.d.ts +0 -11
- package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-radio-group/dynamic-form-radio-group.component.d.ts +0 -12
- package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-radio-group/enum/radio-group-orientation.enum.d.ts +0 -4
- package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-select-control/dynamic-form-select-control.component.d.ts +0 -10
- package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-switch-control/dynamic-form-switch-control.component.d.ts +0 -9
- package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-text-area-control/dynamic-form-text-area-control.component.d.ts +0 -9
- package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-ui-control/dynamic-form-ui-control-list/dynamic-form-ui-control-list.component.d.ts +0 -26
- package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-ui-control/dynamic-form-ui-control.component.d.ts +0 -14
- package/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form/base-form-actions/base-form-actions.component.d.ts +0 -19
- package/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form/base-form-actions/enums/base-form-action-types.d.ts +0 -5
- package/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form/base-form-actions/interfaces/base-form-action.interface.d.ts +0 -5
- package/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form/dynamic-form-ui.component.d.ts +0 -26
- package/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form-array/dynamic-form-ui-array.component.d.ts +0 -9
- package/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form-group/dynamic-form-group.component.d.ts +0 -11
- package/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form-layout/dynamic-form-layout-item/dynamic-form-layout-item.component.d.ts +0 -23
- package/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form-layout/dynamic-form-layout.component.d.ts +0 -21
- package/modules/dynamic-forms/dynamic-form-UI/components/enums/form-field-css-class.enum.d.ts +0 -7
- package/modules/dynamic-forms/dynamic-form-UI/components/errors-block/errors-block.component.d.ts +0 -11
- package/modules/dynamic-forms/dynamic-form-UI/dynamic-form-ui.module.d.ts +0 -32
- package/modules/dynamic-forms/dynamic-form-UI/providers/ui-form-control-map.provider.d.ts +0 -6
- package/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-array.component.d.ts +0 -10
- package/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-component.d.ts +0 -26
- package/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-control-container.component.d.ts +0 -57
- package/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-control.component.d.ts +0 -42
- package/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-layout.component.d.ts +0 -28
- package/modules/dynamic-forms/dynamic-forms-core/constants/form-errors.constant.d.ts +0 -6
- package/modules/dynamic-forms/dynamic-forms-core/constants/matchers/matchers.constant.d.ts +0 -6
- package/modules/dynamic-forms/dynamic-forms-core/constants/reg-exp-error.constant.d.ts +0 -9
- package/modules/dynamic-forms/dynamic-forms-core/directives/dynamic-id.directive.d.ts +0 -11
- package/modules/dynamic-forms/dynamic-forms-core/directives/dynamic-list.directive.d.ts +0 -11
- package/modules/dynamic-forms/dynamic-forms-core/directives/dynamic-template.directive.d.ts +0 -13
- package/modules/dynamic-forms/dynamic-forms-core/dynamic-form-core.module.d.ts +0 -12
- package/modules/dynamic-forms/dynamic-forms-core/enums/autocomplete.enum.d.ts +0 -4
- package/modules/dynamic-forms/dynamic-forms-core/enums/control-types.enum.d.ts +0 -20
- package/modules/dynamic-forms/dynamic-forms-core/enums/form-control-events.enum.d.ts +0 -6
- package/modules/dynamic-forms/dynamic-forms-core/enums/form-hooks.enum.d.ts +0 -5
- package/modules/dynamic-forms/dynamic-forms-core/enums/input-types.enum.d.ts +0 -18
- package/modules/dynamic-forms/dynamic-forms-core/enums/matcher-types.enum.d.ts +0 -8
- package/modules/dynamic-forms/dynamic-forms-core/enums/template-directive-alignment.d.ts +0 -4
- package/modules/dynamic-forms/dynamic-forms-core/enums/textarea-wrap.enum.d.ts +0 -4
- package/modules/dynamic-forms/dynamic-forms-core/index.d.ts +0 -38
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/components/form-control/dynamic-form-control-event.interface.d.ts +0 -15
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/components/form-control/dynamic-form-control.interface.d.ts +0 -19
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/dynamic-form/dynamic-form-model.interface.d.ts +0 -4
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/layout/form-control-layout.interface.d.ts +0 -3
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/layout/form-layout-config.interface.d.ts +0 -6
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/layout/form-layout.interface.d.ts +0 -2
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/matchers/form-control-matcher.interface.d.ts +0 -8
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-array/form-array-model-config.interface.d.ts +0 -7
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-button-control/button-control-model-config.interface.d.ts +0 -4
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-check-control/check-control-model-config.interface.d.ts +0 -4
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-control/form-control-model-config.interface.d.ts +0 -16
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-control/form-control-relation.interface.d.ts +0 -8
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-date-control/date-control-model-config.interface.d.ts +0 -8
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-group/form-group-model-config.interface.d.ts +0 -6
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-input-control/form-input-control-config.interface.d.ts +0 -14
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-number-control/form-number-control-config.interface.d.ts +0 -7
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-option/form-option-config.interface.d.ts +0 -5
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-option-control/form-option-control-config.interface.d.ts +0 -6
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/button-control-model-config.interface.d.ts +0 -6
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/checkbox-control-model-config.interface.d.ts +0 -5
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/datepicker-control-model-config.interface.d.ts +0 -11
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/input-control-model-config.interface.d.ts +0 -9
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/radio-group-model-config.interface.d.ts +0 -4
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/select-control-model-config.interface.d.ts +0 -8
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/switch-control-model-config.interface.d.ts +0 -5
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/textarea-control-model-config.interface.d.ts +0 -6
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-value-control/form-value-control.interface.d.ts +0 -10
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/validators/validators.interface.d.ts +0 -5
- package/modules/dynamic-forms/dynamic-forms-core/models/form-array/dynamic-form-array.model.d.ts +0 -19
- package/modules/dynamic-forms/dynamic-forms-core/models/form-array/form-array-group/dynamic-form-array-group.model.d.ts +0 -12
- package/modules/dynamic-forms/dynamic-forms-core/models/form-button-control/dynamic-button-control.model.d.ts +0 -9
- package/modules/dynamic-forms/dynamic-forms-core/models/form-check-control/dynamic-check-control.model.d.ts +0 -9
- package/modules/dynamic-forms/dynamic-forms-core/models/form-control/dynamic-form-control.model.d.ts +0 -24
- package/modules/dynamic-forms/dynamic-forms-core/models/form-date-control/dynamic-date-control.model.d.ts +0 -9
- package/modules/dynamic-forms/dynamic-forms-core/models/form-group/dynamic-form-group.model.d.ts +0 -17
- package/modules/dynamic-forms/dynamic-forms-core/models/form-input-control/dynamic-input-control.model.d.ts +0 -16
- package/modules/dynamic-forms/dynamic-forms-core/models/form-number-control/dynamic-number-control.model.d.ts +0 -12
- package/modules/dynamic-forms/dynamic-forms-core/models/form-option/form-option.model.d.ts +0 -9
- package/modules/dynamic-forms/dynamic-forms-core/models/form-option-control/dynamic-option-control.model.d.ts +0 -19
- package/modules/dynamic-forms/dynamic-forms-core/models/form-static-control/static-control.model.d.ts +0 -7
- package/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/button/dynamic-button.model.d.ts +0 -10
- package/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/checkbox/dynamic-checkbox.model.d.ts +0 -8
- package/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/counter/dynamic-counter.model.d.ts +0 -7
- package/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/datepicker/dynamic-datepicker.model.d.ts +0 -15
- package/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/input/dynamic-input.model.d.ts +0 -10
- package/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/radio/dynamic-radio-group.model.d.ts +0 -8
- package/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/select/dynamic-select.model.d.ts +0 -11
- package/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/switch/dynamic-switch.model.d.ts +0 -8
- package/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/textarea/dynamic-textarea.model.d.ts +0 -9
- package/modules/dynamic-forms/dynamic-forms-core/models/form-value-control/form-value-control.model.d.ts +0 -17
- package/modules/dynamic-forms/dynamic-forms-core/models/layout/enums/FormLayoutControlTypes.enum.d.ts +0 -5
- package/modules/dynamic-forms/dynamic-forms-core/models/layout/layout-control.model.d.ts +0 -9
- package/modules/dynamic-forms/dynamic-forms-core/models/ng-select-control/dynamic-ng-select.model.d.ts +0 -12
- package/modules/dynamic-forms/dynamic-forms-core/pipes/find-dynamic-control-model/find-dynamic-control-model.pipe.d.ts +0 -20
- package/modules/dynamic-forms/dynamic-forms-core/pipes/get-error-from-key-value.pipe.d.ts +0 -8
- package/modules/dynamic-forms/dynamic-forms-core/service/dynamic-form-component.service.d.ts +0 -14
- package/modules/dynamic-forms/dynamic-forms-core/service/dynamic-form-layout.service.d.ts +0 -14
- package/modules/dynamic-forms/dynamic-forms-core/service/dynamic-form-validation.service.d.ts +0 -11
- package/modules/dynamic-forms/dynamic-forms-core/service/dynamic-form.service.d.ts +0 -30
- package/modules/dynamic-forms/dynamic-forms-core/tokens/dynamic-matchers.token.d.ts +0 -3
- package/modules/dynamic-forms/dynamic-forms-core/tokens/form-control-map.token.d.ts +0 -3
- package/modules/dynamic-forms/dynamic-forms-core/tokens/validators.token.d.ts +0 -3
- package/modules/dynamic-forms/dynamic-forms.module.d.ts +0 -9
- package/modules/material/mat-cdk-module.d.ts +0 -7
- package/modules/material/material.module.d.ts +0 -50
- package/modules/query-builder/components/query-design/query-design.component.d.ts +0 -35
- package/modules/query-builder/components/query-design/rule-line/components/alphanumeric-control/alphanumeric-control.component.d.ts +0 -46
- package/modules/query-builder/components/query-design/rule-line/components/boolean-control/boolean-control.component.d.ts +0 -29
- package/modules/query-builder/components/query-design/rule-line/components/date-control/date-control.component.d.ts +0 -21
- package/modules/query-builder/components/query-design/rule-line/components/numeric-control/numeric-control.component.d.ts +0 -46
- package/modules/query-builder/components/query-design/rule-line/constants/operators-sets.d.ts +0 -12
- package/modules/query-builder/components/query-design/rule-line/helpers/condition-operators.mapper.d.ts +0 -6
- package/modules/query-builder/components/query-design/rule-line/helpers/control-values-mapper.d.ts +0 -7
- package/modules/query-builder/components/query-design/rule-line/rule-line.component.d.ts +0 -64
- package/modules/query-builder/directive/auto-complete-position.directive.d.ts +0 -11
- package/modules/query-builder/interfaces/query-builder.interface.d.ts +0 -61
- package/modules/query-builder/interfaces/select-custom-css-object.d.ts +0 -7
- package/modules/query-builder/query-builder.module.d.ts +0 -18
- package/modules/ui-kit/components/accordion/accordion-content/accordion-content.component.d.ts +0 -8
- package/modules/ui-kit/components/accordion/accordion-trigger.directive.d.ts +0 -10
- package/modules/ui-kit/components/accordion/accordion.directive.d.ts +0 -7
- package/modules/ui-kit/components/banner/banner.component.d.ts +0 -14
- package/modules/ui-kit/components/banner/banner.service.d.ts +0 -27
- package/modules/ui-kit/components/breadcrumbs/breadcrumbs.component.d.ts +0 -15
- package/modules/ui-kit/components/breadcrumbs/model/breadCrumbItem.d.ts +0 -4
- package/modules/ui-kit/components/breadcrumbs/service/breadcrumb.service.d.ts +0 -19
- package/modules/ui-kit/components/breadcrumbs/utils/crumb-service.enum.d.ts +0 -6
- package/modules/ui-kit/components/buttons/button-control/button-control.component.d.ts +0 -16
- package/modules/ui-kit/components/buttons/buttons-list/buttons-list.component.d.ts +0 -5
- package/modules/ui-kit/components/buttons/circle-button/circle-button.component.d.ts +0 -20
- package/modules/ui-kit/components/card-container/card-container.component.d.ts +0 -5
- package/modules/ui-kit/components/common-breadcrumbs/common-breadcrumbs.component.d.ts +0 -20
- package/modules/ui-kit/components/common-breadcrumbs/interface/breadcrumb.interface.d.ts +0 -6
- package/modules/ui-kit/components/common-breadcrumbs/service/breadcrumb.service.d.ts +0 -21
- package/modules/ui-kit/components/data-pagination/data-pagination.component.d.ts +0 -54
- package/modules/ui-kit/components/data-table/api-classes/filter-manager.d.ts +0 -13
- package/modules/ui-kit/components/data-table/api-classes/grid-api.d.ts +0 -31
- package/modules/ui-kit/components/data-table/constants/change-type.enum.d.ts +0 -6
- package/modules/ui-kit/components/data-table/constants/column-id.d.ts +0 -2
- package/modules/ui-kit/components/data-table/constants/row.d.ts +0 -2
- package/modules/ui-kit/components/data-table/data-col/base-data-col/base-data-col.component.d.ts +0 -28
- package/modules/ui-kit/components/data-table/data-col/data-col/data-col.component.d.ts +0 -7
- package/modules/ui-kit/components/data-table/data-col/data-col-action-button/data-col-action-button.component.d.ts +0 -12
- package/modules/ui-kit/components/data-table/data-col/data-col-boolean/data-col-boolean.component.d.ts +0 -8
- package/modules/ui-kit/components/data-table/data-col/data-col-multivalue/data-col-multivalue.component.d.ts +0 -8
- package/modules/ui-kit/components/data-table/data-col/data-col-nested/data-col-nested.component.d.ts +0 -13
- package/modules/ui-kit/components/data-table/data-col/data-col-reference/data-col-reference.component.d.ts +0 -29
- package/modules/ui-kit/components/data-table/data-col/data-col-view/data-col-view.component.d.ts +0 -27
- package/modules/ui-kit/components/data-table/data-col-disp/data-col-disp.component.d.ts +0 -60
- package/modules/ui-kit/components/data-table/data-col-filter/data-col-filter.component.d.ts +0 -85
- package/modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/col-filter-between-value.d.ts +0 -12
- package/modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/col-filter-contains-value.d.ts +0 -9
- package/modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/col-filter-in-value.d.ts +0 -13
- package/modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/col-filter-slider-value.d.ts +0 -10
- package/modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/filter-value-executor-provider.d.ts +0 -11
- package/modules/ui-kit/components/data-table/data-column-filter/data-column-filter.component.d.ts +0 -29
- package/modules/ui-kit/components/data-table/data-row/data-row.component.d.ts +0 -81
- package/modules/ui-kit/components/data-table/data-table/data-table.component.d.ts +0 -302
- package/modules/ui-kit/components/data-table/data-table-actions/data-table-actions.component.d.ts +0 -53
- package/modules/ui-kit/components/data-table/data-table-body/data-table-body.component.d.ts +0 -75
- package/modules/ui-kit/components/data-table/data-table-check-rows/data-table-check-rows.component.d.ts +0 -25
- package/modules/ui-kit/components/data-table/data-table-row-actions/const/data-table-actions.enum.d.ts +0 -6
- package/modules/ui-kit/components/data-table/data-table-row-actions/data-table-row-actions.component.d.ts +0 -42
- package/modules/ui-kit/components/data-table/enums/col-filter-types.d.ts +0 -14
- package/modules/ui-kit/components/data-table/header-row/header-row.component.d.ts +0 -7
- package/modules/ui-kit/components/data-table/interfaces/data-table-component.interface.d.ts +0 -28
- package/modules/ui-kit/components/data-table/interfaces/filter-value-executor.interface.d.ts +0 -12
- package/modules/ui-kit/components/data-table/services/data-table-context.service.d.ts +0 -12
- package/modules/ui-kit/components/data-table-wrap/data-table-wrap.component.d.ts +0 -13
- package/modules/ui-kit/components/excel-table/excel-table.component.d.ts +0 -28
- package/modules/ui-kit/components/excel-table/interface/excel-table.interface.d.ts +0 -29
- package/modules/ui-kit/components/form/base-form-control/base-form-control.component.d.ts +0 -17
- package/modules/ui-kit/components/form/checkbox-form-control/checkbox-form-control.component.d.ts +0 -8
- package/modules/ui-kit/components/form/counter-form-control/counter-form-control.component.d.ts +0 -21
- package/modules/ui-kit/components/form/form-container/form-container.component.d.ts +0 -45
- package/modules/ui-kit/components/form/form-group-container/form-group-container.component.d.ts +0 -5
- package/modules/ui-kit/components/form/input-form-control/input-form-control.component.d.ts +0 -8
- package/modules/ui-kit/components/form/multivalue-form-control/custom-input/custom-input.component.d.ts +0 -15
- package/modules/ui-kit/components/form/multivalue-form-control/custom-input/old-new-value.interface.d.ts +0 -4
- package/modules/ui-kit/components/form/multivalue-form-control/multivalue-form-control.component.d.ts +0 -26
- package/modules/ui-kit/components/form/radio-form-control/radio-form-control.component.d.ts +0 -8
- package/modules/ui-kit/components/form/select-form-control/select-form-control.component.d.ts +0 -32
- package/modules/ui-kit/components/form/selection-group-container/selection-group-container.component.d.ts +0 -7
- package/modules/ui-kit/components/form/textarea-form-control/textarea-form-control.component.d.ts +0 -8
- package/modules/ui-kit/components/icon/expand-collapse-icon/expand-collapse-icon.component.d.ts +0 -11
- package/modules/ui-kit/components/icon/icon/icon.component.d.ts +0 -14
- package/modules/ui-kit/components/icon/text-icon/text-icon.component.d.ts +0 -10
- package/modules/ui-kit/components/layouts/form-layout/form-layout.component.d.ts +0 -29
- package/modules/ui-kit/components/layouts/primary-layout/primary-layout.component.d.ts +0 -5
- package/modules/ui-kit/components/loader/loader.component.d.ts +0 -12
- package/modules/ui-kit/components/mat-actions-button/mat-actions-button.d.ts +0 -14
- package/modules/ui-kit/components/modals/common-confirm-modal/common-confirm-modal.component.d.ts +0 -17
- package/modules/ui-kit/components/modals/confirm-modal/confirm-modal.component.d.ts +0 -13
- package/modules/ui-kit/components/modals/delete-modal/delete-modal.component.d.ts +0 -17
- package/modules/ui-kit/components/modals/enums/confirmation-modal.enum.d.ts +0 -11
- package/modules/ui-kit/components/snackbar/snackbar.component.d.ts +0 -10
- package/modules/ui-kit/components/tabs/constants/index.d.ts +0 -1
- package/modules/ui-kit/components/tabs/interfaces/index.d.ts +0 -3
- package/modules/ui-kit/components/tabs/tab-group/tab-group.component.d.ts +0 -25
- package/modules/ui-kit/components/tabs/tab.directive.d.ts +0 -16
- package/modules/ui-kit/components/tree-view/tree-view.component.d.ts +0 -67
- package/modules/ui-kit/constants/data-table.constants.d.ts +0 -6
- package/modules/ui-kit/constants/snackbar.constants.d.ts +0 -3
- package/modules/ui-kit/enums/coderefs-prop.enum.d.ts +0 -24
- package/modules/ui-kit/enums/color-schemes.enum.d.ts +0 -11
- package/modules/ui-kit/enums/column-disable-mode.enum.d.ts +0 -5
- package/modules/ui-kit/enums/column-types.enum.d.ts +0 -8
- package/modules/ui-kit/enums/component-sizes.enum.d.ts +0 -4
- package/modules/ui-kit/enums/form-item-type.d.ts +0 -5
- package/modules/ui-kit/enums/form-types.enum.d.ts +0 -5
- package/modules/ui-kit/enums/form-url-params.enum.d.ts +0 -4
- package/modules/ui-kit/enums/icons.enum.d.ts +0 -22
- package/modules/ui-kit/enums/position.enum.d.ts +0 -4
- package/modules/ui-kit/enums/select-option.enum.d.ts +0 -8
- package/modules/ui-kit/enums/snackbar.enum.d.ts +0 -6
- package/modules/ui-kit/enums/url-param-action.enum.d.ts +0 -4
- package/modules/ui-kit/enums/viewType.enum.d.ts +0 -5
- package/modules/ui-kit/interfaces/api.interface.d.ts +0 -45
- package/modules/ui-kit/interfaces/confirm-modal-data.interface.d.ts +0 -7
- package/modules/ui-kit/interfaces/constants.interface.d.ts +0 -4
- package/modules/ui-kit/interfaces/data-table.interface.d.ts +0 -253
- package/modules/ui-kit/interfaces/form.interface.d.ts +0 -21
- package/modules/ui-kit/interfaces/generic.interface.d.ts +0 -7
- package/modules/ui-kit/interfaces/list-item.interface.d.ts +0 -5
- package/modules/ui-kit/interfaces/mat-action-buttons.interface.d.ts +0 -14
- package/modules/ui-kit/interfaces/row-selection-info.interface.d.ts +0 -7
- package/modules/ui-kit/interfaces/select.interface.d.ts +0 -8
- package/modules/ui-kit/interfaces/snackbar.interface.d.ts +0 -4
- package/modules/ui-kit/interfaces/tree-view.interface.d.ts +0 -49
- package/modules/ui-kit/pipes/column-filter.pipe.d.ts +0 -12
- package/modules/ui-kit/pipes/filter-by-prop.pipe.d.ts +0 -9
- package/modules/ui-kit/pipes/first-letter-text.pipe.d.ts +0 -7
- package/modules/ui-kit/pipes/keys.pipe.d.ts +0 -7
- package/modules/ui-kit/pipes/paginate.pipe.d.ts +0 -12
- package/modules/ui-kit/pipes/search.pipe.d.ts +0 -16
- package/modules/ui-kit/services/data-table.service.d.ts +0 -37
- package/modules/ui-kit/services/form.service.d.ts +0 -26
- package/modules/ui-kit/services/mappers/form-data-table-mapper.service.d.ts +0 -8
- package/modules/ui-kit/services/snackbar.service.d.ts +0 -15
- package/modules/ui-kit/services/url.service.d.ts +0 -7
- package/modules/ui-kit/types/basic.type.d.ts +0 -2
- package/modules/ui-kit/types/function.type.d.ts +0 -20
- package/modules/ui-kit/types/select.type.d.ts +0 -2
- package/modules/ui-kit/ui-kit.module.d.ts +0 -79
- package/public-api.d.ts +0 -84
- package/shared-pipes/pipes/search.pipe.d.ts +0 -15
- package/shared.module.d.ts +0 -13
package/esm2022/modules/ui-kit/components/data-table/data-col-filter/data-col-filter.component.mjs
DELETED
|
@@ -1,323 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
-
import { FormControl, FormGroup } from '@angular/forms';
|
|
3
|
-
import { cloneDeep, isFunction } from 'lodash';
|
|
4
|
-
import { BehaviorSubject, Subject } from 'rxjs';
|
|
5
|
-
import { debounceTime, finalize, first, shareReplay, takeUntil, distinctUntilChanged } from 'rxjs/operators';
|
|
6
|
-
import { DataTableColumnFilterInputTypes, DataTableColumnFilterTypes } from '../../data-table/enums/col-filter-types';
|
|
7
|
-
import moment from 'moment';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "../../data-table/data-col-filter/filter-value-helpers/filter-value-executor-provider";
|
|
10
|
-
import * as i2 from "@angular/common";
|
|
11
|
-
import * as i3 from "@angular/material/input";
|
|
12
|
-
import * as i4 from "@angular/material/form-field";
|
|
13
|
-
import * as i5 from "@angular/material/button";
|
|
14
|
-
import * as i6 from "@angular/material/card";
|
|
15
|
-
import * as i7 from "@angular/material/checkbox";
|
|
16
|
-
import * as i8 from "@angular/material/datepicker";
|
|
17
|
-
import * as i9 from "@angular/material/icon";
|
|
18
|
-
import * as i10 from "@angular/material/menu";
|
|
19
|
-
import * as i11 from "@angular/material/progress-spinner";
|
|
20
|
-
import * as i12 from "@angular/material/radio";
|
|
21
|
-
import * as i13 from "@angular/forms";
|
|
22
|
-
import * as i14 from "@ng-select/ng-select";
|
|
23
|
-
import * as i15 from "@angular-slider/ngx-slider";
|
|
24
|
-
import * as i16 from "@angular/flex-layout/flex";
|
|
25
|
-
import * as i17 from "@angular/flex-layout/extended";
|
|
26
|
-
import * as i18 from "@ng-bootstrap/ng-bootstrap";
|
|
27
|
-
import * as i19 from "../../../pipes/filter-by-prop.pipe";
|
|
28
|
-
export class DataColFilterComponent {
|
|
29
|
-
constructor(filterValueExecutorProvider, cd) {
|
|
30
|
-
this.filterValueExecutorProvider = filterValueExecutorProvider;
|
|
31
|
-
this.cd = cd;
|
|
32
|
-
this.isClearFilter$ = new BehaviorSubject(false);
|
|
33
|
-
this.isUpdatedFilterDesign = false;
|
|
34
|
-
this.selectableItems$ = new BehaviorSubject(null);
|
|
35
|
-
this.searchText = new FormControl();
|
|
36
|
-
this.selectAllCtrl = new FormControl(false);
|
|
37
|
-
// eslint-disable-next-line @angular-eslint/no-output-on-prefix
|
|
38
|
-
this.onFilterClicked = new EventEmitter();
|
|
39
|
-
this.dateRangeFormGroup = new FormGroup({
|
|
40
|
-
startDate: new FormControl(''),
|
|
41
|
-
endDate: new FormControl(''),
|
|
42
|
-
});
|
|
43
|
-
this.dateRangeValue = '';
|
|
44
|
-
this.sliderValueOpt = {
|
|
45
|
-
maxScore: 100,
|
|
46
|
-
minScore: 0,
|
|
47
|
-
};
|
|
48
|
-
this.searchCtrl = new FormControl();
|
|
49
|
-
this.FILTER_TYPES = DataTableColumnFilterTypes;
|
|
50
|
-
this.FILTER_INPUT_TYPES = DataTableColumnFilterInputTypes;
|
|
51
|
-
this.sliderDefaultOptions = {
|
|
52
|
-
floor: 0,
|
|
53
|
-
ceil: 100,
|
|
54
|
-
};
|
|
55
|
-
this.isLoading$ = new BehaviorSubject(false);
|
|
56
|
-
this.selectableItems = [];
|
|
57
|
-
this.clearSubs$ = new Subject();
|
|
58
|
-
this.searchObject$ = new Subject();
|
|
59
|
-
this.setSearchWatcher$();
|
|
60
|
-
}
|
|
61
|
-
get getCheckBoxsValue() {
|
|
62
|
-
return Array.isArray(this.filterWorkingValue) ? this.filterWorkingValue.join(' ') : this.filterWorkingValue[0];
|
|
63
|
-
}
|
|
64
|
-
get isIndeterminate() {
|
|
65
|
-
return this.filterWorkingValue.length > 0 && this.filterWorkingValue.length !== this.selectableItems.length;
|
|
66
|
-
}
|
|
67
|
-
get isAllSelected() {
|
|
68
|
-
return this.filterWorkingValue.length > 0 && this.filterWorkingValue.length === this.selectableItems.length;
|
|
69
|
-
}
|
|
70
|
-
get isClearEnabled() {
|
|
71
|
-
return !!(this.dateRangeFormGroup.get('startDate').value || this.dateRangeFormGroup.get('endDate').value);
|
|
72
|
-
}
|
|
73
|
-
get isSearchBoxHide() {
|
|
74
|
-
return !!this.filterOption?.isSearchBoxHide;
|
|
75
|
-
}
|
|
76
|
-
ngOnDestroy() {
|
|
77
|
-
this.clearSubs$.next(null);
|
|
78
|
-
this.clearSubs$.complete();
|
|
79
|
-
this.isLoading$.next(false);
|
|
80
|
-
this.isLoading$.complete();
|
|
81
|
-
}
|
|
82
|
-
ngOnInit() {
|
|
83
|
-
this.filterValue = new FormControl('');
|
|
84
|
-
this.isClearFilter$.pipe(distinctUntilChanged()).subscribe(res => {
|
|
85
|
-
if (res) {
|
|
86
|
-
this.clearFilter();
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
if (this.filterOption && (this.filterOption.type === DataTableColumnFilterInputTypes.REFERENCE)) {
|
|
90
|
-
this.loadDefaultReferenceItems();
|
|
91
|
-
this.loadReferenceData();
|
|
92
|
-
}
|
|
93
|
-
this.filterValueMaker = this.filterValueExecutorProvider
|
|
94
|
-
.getFilterValueExecutorProvider(this.filterOption && this.filterOption.type || this.FILTER_TYPES.CONTAINS);
|
|
95
|
-
this.filterValueMaker.setInitValues(this);
|
|
96
|
-
}
|
|
97
|
-
ngOnChanges(changes) {
|
|
98
|
-
if (changes.filterParam && this.filterValue) {
|
|
99
|
-
this.filterValue.setValue(this.filterParam ? this.filterParam.filterValue : '');
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
selectAllCheckbox() {
|
|
103
|
-
if (this.selectAllCtrl.value) {
|
|
104
|
-
this.filterWorkingValue = this.selectableItems$.getValue().map(x => x.value);
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
this.filterWorkingValue = [];
|
|
108
|
-
}
|
|
109
|
-
this.emitFilterParam(this.filterWorkingValue);
|
|
110
|
-
}
|
|
111
|
-
columnFilterClicked() {
|
|
112
|
-
this.emitFilterParam();
|
|
113
|
-
this.ngbPopover.close();
|
|
114
|
-
}
|
|
115
|
-
columnFilterResetClicked() {
|
|
116
|
-
this.filterValueMaker.resetValue(this);
|
|
117
|
-
this.emitFilterParam();
|
|
118
|
-
this.ngbPopover.close();
|
|
119
|
-
}
|
|
120
|
-
matMenuOpend() {
|
|
121
|
-
this.previousSelectableItems = cloneDeep(this.selectableItems);
|
|
122
|
-
this.selectableItems = [];
|
|
123
|
-
this.selectableItems$.next(this.selectableItems);
|
|
124
|
-
if (this.searchText.value) {
|
|
125
|
-
this.searchText.setValue('');
|
|
126
|
-
}
|
|
127
|
-
if (this.filterOption.selectableItems) {
|
|
128
|
-
this.selectableItems = this.filterOption.selectableItems;
|
|
129
|
-
this.selectableItems$.next(this.filterOption.selectableItems);
|
|
130
|
-
return;
|
|
131
|
-
}
|
|
132
|
-
this.isLoading$.next(true);
|
|
133
|
-
if (this.filterOption && isFunction(this.filterOption.getSelectableFn$)) {
|
|
134
|
-
this.filterOption.getSelectableFn$('')
|
|
135
|
-
.pipe(first(), shareReplay(), takeUntil(this.clearSubs$), finalize(() => this.isLoading$.next(false)))
|
|
136
|
-
.subscribe((res) => {
|
|
137
|
-
const currntSelectedItems = this.getCurrentSelectedItems();
|
|
138
|
-
this.selectableItems = [...res];
|
|
139
|
-
this.removePreviousSelectedItems(currntSelectedItems, res);
|
|
140
|
-
this.selectableItems$.next(currntSelectedItems.concat(res));
|
|
141
|
-
});
|
|
142
|
-
this.getSelectableItems();
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
dateRangeClick(ev) {
|
|
146
|
-
this.dateRangeValue = ev.value;
|
|
147
|
-
const val = +ev.value;
|
|
148
|
-
const raw = { days: 1, weeks: 7, months: 30, years: 365 };
|
|
149
|
-
const days = (val * raw[this.filterOption.dateRangeItems?.unit ?? 'days']) - 1;
|
|
150
|
-
this.dateRangeFormGroup.setValue({ startDate: new Date(), endDate: moment().add(days, 'days').toDate() });
|
|
151
|
-
}
|
|
152
|
-
clearSelection() {
|
|
153
|
-
this.filterValueMaker.resetValue(this);
|
|
154
|
-
this.emitFilterParam();
|
|
155
|
-
this.selectAllCtrl.reset();
|
|
156
|
-
}
|
|
157
|
-
clearDateFilter() {
|
|
158
|
-
this.dateRangeFormGroup.reset({}, { emitEvent: false });
|
|
159
|
-
this.filterValueMaker.resetValue(this);
|
|
160
|
-
this.emitFilterParam();
|
|
161
|
-
this.dateRangeValue = '';
|
|
162
|
-
}
|
|
163
|
-
closePopup() {
|
|
164
|
-
this.ngbPopover.close();
|
|
165
|
-
}
|
|
166
|
-
clearSearch() {
|
|
167
|
-
this.searchText.setValue('');
|
|
168
|
-
}
|
|
169
|
-
changeContainsValue() {
|
|
170
|
-
this.filterWorkingValue = this.filterValue.value;
|
|
171
|
-
}
|
|
172
|
-
searchValueChanged() {
|
|
173
|
-
this.searchObject$.next(this.filterValue.value);
|
|
174
|
-
}
|
|
175
|
-
setCheckedValuesToFilter(item) {
|
|
176
|
-
if (!item) {
|
|
177
|
-
return;
|
|
178
|
-
}
|
|
179
|
-
this.filterWorkingValue = this.filterValueMaker.setFilterValue(this.filterOption, this.filterWorkingValue, item);
|
|
180
|
-
this.emitFilterParam(this.filterWorkingValue);
|
|
181
|
-
}
|
|
182
|
-
referenceValueChanged() {
|
|
183
|
-
this.emitFilterParam(this.filterValue.value);
|
|
184
|
-
}
|
|
185
|
-
sliderValueChanged() {
|
|
186
|
-
if (!this.filterWorkingValue) {
|
|
187
|
-
this.filterWorkingValue = {};
|
|
188
|
-
}
|
|
189
|
-
this.filterWorkingValue['maxScore'] = this.sliderValueOpt.maxScore;
|
|
190
|
-
this.filterWorkingValue['minScore'] = this.sliderValueOpt.minScore;
|
|
191
|
-
this.emitFilterParam();
|
|
192
|
-
}
|
|
193
|
-
setDateValue(formName) {
|
|
194
|
-
if (!this.filterWorkingValue) {
|
|
195
|
-
this.filterWorkingValue = {};
|
|
196
|
-
}
|
|
197
|
-
this.filterWorkingValue[formName] = this.dateRangeFormGroup.controls[formName].value;
|
|
198
|
-
if (this.isUpdatedFilterDesign && (this.filterWorkingValue[formName] ||
|
|
199
|
-
this.filterWorkingValue[formName])) {
|
|
200
|
-
this.emitFilterParam(this.populateDateRnage());
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
isItemChecked(item) {
|
|
204
|
-
return this.filterValueMaker.isCheckedFilterValue(this.filterOption, this.filterWorkingValue, item);
|
|
205
|
-
}
|
|
206
|
-
isFormInvalid() {
|
|
207
|
-
return this.filterValueMaker.isFormInvalid(this);
|
|
208
|
-
}
|
|
209
|
-
getFilterValue() {
|
|
210
|
-
return this.filterValueMaker.getFilterValue(this.filterWorkingValue, this.isUpdatedFilterDesign);
|
|
211
|
-
}
|
|
212
|
-
emitFilterParam(filterValue) {
|
|
213
|
-
this.onFilterClicked.emit({
|
|
214
|
-
filterColumn: this.columnName,
|
|
215
|
-
filterValue: filterValue ? filterValue : this.getFilterValue(),
|
|
216
|
-
columnName: this.columnName.prop,
|
|
217
|
-
filterType: this.filterOption && this.filterOption.type || this.FILTER_TYPES.CONTAINS,
|
|
218
|
-
});
|
|
219
|
-
}
|
|
220
|
-
getSelectableItems() {
|
|
221
|
-
this.searchText.valueChanges.pipe(debounceTime(500))
|
|
222
|
-
.subscribe(() => {
|
|
223
|
-
const existingObj = this.getCurrentSelectedItems();
|
|
224
|
-
this.isLoading$.next(true);
|
|
225
|
-
this.filterOption.getSelectableFn$(this.searchText.value, true)
|
|
226
|
-
.pipe(first(), shareReplay(), takeUntil(this.clearSubs$), finalize(() => this.isLoading$.next(false)))
|
|
227
|
-
.subscribe((response) => {
|
|
228
|
-
this.removePreviousSelectedItems(existingObj, response);
|
|
229
|
-
this.selectableItems = existingObj.concat(response);
|
|
230
|
-
this.selectableItems$.next(existingObj.concat(response));
|
|
231
|
-
});
|
|
232
|
-
});
|
|
233
|
-
}
|
|
234
|
-
clearFilter() {
|
|
235
|
-
this.filterValueMaker.resetValue(this);
|
|
236
|
-
this.dateRangeFormGroup.reset();
|
|
237
|
-
this.isClearFilter$.next(false);
|
|
238
|
-
}
|
|
239
|
-
getCurrentSelectedItems() {
|
|
240
|
-
const existingValues = this.filterWorkingValue;
|
|
241
|
-
return existingValues.map(item => {
|
|
242
|
-
const label = this.previousSelectableItems.find(x => x[this.filterOption.bindProp] === item)?.[this.filterOption.displayProp];
|
|
243
|
-
return { [this.filterOption.bindProp]: item, [this.filterOption.displayProp]: label || '' };
|
|
244
|
-
});
|
|
245
|
-
}
|
|
246
|
-
removePreviousSelectedItems(previousItems, currentItems) {
|
|
247
|
-
previousItems.forEach(x => {
|
|
248
|
-
const position = currentItems.findIndex(item => item[this.filterOption.bindProp] === x[this.filterOption.bindProp]);
|
|
249
|
-
if (position !== -1) {
|
|
250
|
-
currentItems.splice(position, 1);
|
|
251
|
-
}
|
|
252
|
-
});
|
|
253
|
-
}
|
|
254
|
-
populateDateRnage() {
|
|
255
|
-
const dateRanges = [];
|
|
256
|
-
dateRanges[0] = this.formatDate(this.filterWorkingValue.startDate);
|
|
257
|
-
dateRanges[1] = this.formatDate(this.filterWorkingValue.endDate);
|
|
258
|
-
return dateRanges;
|
|
259
|
-
}
|
|
260
|
-
formatDate(date) {
|
|
261
|
-
if (!date) {
|
|
262
|
-
return '';
|
|
263
|
-
}
|
|
264
|
-
return `${new Date(date).getFullYear()}-${new Date(date).getMonth() + 1}-${new Date(date).getDate()}`;
|
|
265
|
-
}
|
|
266
|
-
loadReferenceData() {
|
|
267
|
-
this.filterValue.setValue(null);
|
|
268
|
-
if (this.filterOption.selectableItems && this.filterOption.selectableItems.length) {
|
|
269
|
-
this.selectableItems$.next(this.filterOption.selectableItems);
|
|
270
|
-
return;
|
|
271
|
-
}
|
|
272
|
-
if (isFunction(this.filterOption.getSelectableFn$)) {
|
|
273
|
-
this.filterOption.getSelectableFn$().pipe(takeUntil(this.clearSubs$))
|
|
274
|
-
.subscribe((res) => {
|
|
275
|
-
if (res && res.length > 0) {
|
|
276
|
-
this.selectableItems$.next(res);
|
|
277
|
-
}
|
|
278
|
-
});
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
setSearchWatcher$() {
|
|
282
|
-
this.searchObject$.pipe(debounceTime(500), takeUntil(this.clearSubs$))
|
|
283
|
-
.subscribe((searchStr) => {
|
|
284
|
-
this.onFilterClicked.emit({
|
|
285
|
-
filterColumn: this.columnName,
|
|
286
|
-
filterValue: searchStr,
|
|
287
|
-
columnName: this.columnName.prop,
|
|
288
|
-
filterType: this.filterOption && this.filterOption.type || this.FILTER_TYPES.CONTAINS,
|
|
289
|
-
});
|
|
290
|
-
});
|
|
291
|
-
}
|
|
292
|
-
loadDefaultReferenceItems() {
|
|
293
|
-
this.selectableItems$.next([
|
|
294
|
-
{ [this.filterOption.displayProp]: 'SELECT', [this.filterOption.bindProp]: '' },
|
|
295
|
-
{ [this.filterOption.displayProp]: 'True', [this.filterOption.bindProp]: true },
|
|
296
|
-
{ [this.filterOption.displayProp]: 'False', [this.filterOption.bindProp]: false },
|
|
297
|
-
]);
|
|
298
|
-
}
|
|
299
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DataColFilterComponent, deps: [{ token: i1.FilterValueExecutorProvider }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
300
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DataColFilterComponent, selector: "app-data-col-filter", inputs: { isClearFilter$: "isClearFilter$", isUpdatedFilterDesign: "isUpdatedFilterDesign", columnName: "columnName", filterParam: "filterParam", numberOfTableRefresh: "numberOfTableRefresh", filterOption: "filterOption" }, outputs: { onFilterClicked: "onFilterClicked" }, viewQueries: [{ propertyName: "ngbPopover", first: true, predicate: ["ngbPopover"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"isUpdatedFilterDesign\">\n <ng-container [ngSwitch]=\"filterOption?.type\">\n <ng-container *ngSwitchCase=\"FILTER_INPUT_TYPES.TEXT\">\n <mat-form-field\n class=\"apollo-text-field table-header-apollo-text-field text-search\"\n [floatLabel]=\"'auto'\"\n >\n <input\n (ngModelChange)=\"searchValueChanged()\"\n matInput\n type=\"text\"\n placeholder=\"Search {{ columnName.header }}\"\n name=\"search\"\n [formControl]=\"searchCtrl\"\n (ngModelChange)=\"changeContainsValue()\"\n />\n </mat-form-field>\n </ng-container>\n <ng-container *ngSwitchCase=\"FILTER_INPUT_TYPES.REFERENCE\">\n <ng-select\n class=\"apollo-text-field table-header-apollo-text-field\"\n (change)=\"referenceValueChanged()\"\n [appendTo]=\"'mat-card'\"\n [items]=\"(selectableItems$ | async) || []\"\n [bindValue]=\"filterOption.bindProp\"\n [bindLabel]=\"filterOption.displayProp\"\n [multiple]=\"false\"\n placeholder=\"{{ columnName.header }}\"\n [formControl]=\"filterValue\"\n >\n </ng-select>\n </ng-container>\n <ng-container *ngSwitchCase=\"FILTER_INPUT_TYPES.CHECKBOX\">\n <button\n (menuOpened)=\"matMenuOpend()\"\n mat-raised-button\n [matMenuTriggerFor]=\"actions\"\n class=\"dropdown-toggle odp-secondary-button\"\n >\n <span>{{ columnName.header || columnName.prop | titlecase }}</span>\n <mat-menu\n #actions=\"matMenu\"\n focusFirstItem=\"false\"\n class=\"odb-mat-menu-panel custom-panel filter-panel\"\n >\n <div class=\"custom-panel-padding\">\n <span\n class=\"filter-search-container\"\n (click)=\"$event.stopPropagation()\"\n >\n <input\n *ngIf=\"!isSearchBoxHide\"\n required\n matInput\n type=\"text\"\n placeholder=\"Search {{ columnName.header }}\"\n name=\"search\"\n [formControl]=\"searchText\"\n />\n <span\n class=\"clear-filter-search\"\n *ngIf=\"searchText.value\"\n (click)=\"clearSearch()\"\n >✕</span\n >\n </span>\n <span\n (click)=\"clearSelection()\"\n class=\"clear-all\"\n >Clear all</span\n >\n <mat-spinner\n *ngIf=\"isLoading$ | async\"\n class=\"mr-1\"\n [diameter]=\"16\"\n ></mat-spinner>\n <div\n class=\"custom-mat-menu-item\"\n class=\"my-1\"\n >\n <span>\n <mat-checkbox\n class=\"bold-text\"\n [indeterminate]=\"isIndeterminate\"\n [checked]=\"isAllSelected\"\n [formControl]=\"selectAllCtrl\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"selectAllCheckbox()\"\n >Select All</mat-checkbox\n >\n </span>\n </div>\n <div\n class=\"custom-mat-menu-item\"\n *ngFor=\"\n let item of (selectableItems$ | async) ||\n filterOption.selectableItems ||\n []\n \"\n class=\"my-1\"\n >\n <span>\n <mat-checkbox\n (click)=\"$event.stopPropagation()\"\n [checked]=\"isItemChecked(item)\"\n (change)=\"setCheckedValuesToFilter(item)\"\n [title]=\"item[filterOption.displayProp]\"\n >{{ item[filterOption.displayProp] }}</mat-checkbox\n >\n </span>\n </div>\n </div>\n </mat-menu>\n </button>\n </ng-container>\n <ng-container *ngSwitchCase=\"FILTER_INPUT_TYPES.DATE_RANGE\">\n <ng-container *ngTemplateOutlet=\"dateRangeTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"FILTER_INPUT_TYPES.SLIDER\">\n <ng-container *ngIf=\"filterOption.filterTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n filterOption.filterTemplate;\n context: {\n $implicit: {\n filterOption: filterOption,\n thOptions: filterOption.thOptions\n }\n }\n \"\n >\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!filterOption.filterTemplate\">\n <div class=\"custom-slider custom-slider-alignment\">\n <ngx-slider (userChangeEnd)=\"sliderValueChanged()\" [(value)]=\"sliderValueOpt.minScore\"\n [(highValue)]=\"sliderValueOpt.maxScore\" [options]=\"sliderDefaultOptions\">\n </ngx-slider>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-container>\n<ng-container *ngIf=\"!isUpdatedFilterDesign\">\n <a #ngbPopover=\"ngbPopover\" [ngbPopover]=\"popTemplate\" [placement]=\"'bottom'\" [autoClose]=\"false\">\n <i class=\"fas fa-filter filter-icon\"></i>\n </a>\n <ng-template #popTemplate>\n <div class=\"card-width table-col-filter-panel\">\n <mat-icon (click)=\"closePopup()\" class=\"mat-icon material-icons close-icon\">close</mat-icon>\n <div class=\"card-form\">\n <mat-form-field *ngIf=\"!filterOption?.type || filterOption.type == FILTER_TYPES.CONTAINS\"\n class=\"card-full-width apollo-text-field\" [floatLabel]=\"'always'\">\n <mat-label>Filter By {{ columnName.header }}</mat-label>\n <input matInput placeholder=\"Enter {{ columnName.header }}\" [formControl]=\"filterValue\"\n (ngModelChange)=\"changeContainsValue()\">\n </mat-form-field>\n\n <mat-label *ngIf=\"filterOption?.type && filterOption?.type != FILTER_TYPES.CONTAINS\">Filter By\n {{columnName.header }}</mat-label>\n <div *ngIf=\"filterOption?.type === FILTER_TYPES.IN\">\n <section class=\"search\">\n <form ngForm>\n <div class=\"searchbar-wrapper\">\n <i class=\"svg-icon fa-solid fa-magnifying-glass\"></i>\n <input required matInput type=\"text\" placeholder=\"Search \"\n name=\"search\" />\n </div>\n </form>\n </section>\n <div [ngClass]=\"{ 'multi-select-section': filterOption.selectableItems?.length>6 }\">\n <div *ngFor=\"let item of filterOption.selectableItems | filterByProp: filterOption.displayProp: ''\"\n class=\"my-1\">\n <span>\n <mat-checkbox [checked]=\"isItemChecked(item)\"\n (change)=\"setCheckedValuesToFilter(item)\">\n {{item[filterOption.displayProp]}}</mat-checkbox>\n </span>\n </div>\n </div>\n </div>\n <div *ngIf=\"filterOption?.type === FILTER_TYPES.BETWEEN\" class=\"filter-item\" fxLayout=\"row\"\n [formGroup]=\"dateRangeFormGroup\">\n <div class=\"apollo-text-field date-picker-field\" fxLayout=\"row\">\n <input [readonly]=\"true\" matInput required (ngModelChange)=\"setDateValue('startDate')\"\n class=\"input-element\" [matDatepicker]=\"picker1\" [placeholder]=\"'Start Date'\"\n formControlName=\"startDate\">\n <mat-datepicker-toggle matSuffix [for]=\"picker1\"\n class=\"datepicker-toggle\"></mat-datepicker-toggle>\n <mat-datepicker #picker1></mat-datepicker>\n\n </div>\n <div class=\"apollo-text-field date-picker-field\" fxLayout=\"row\">\n <input [readonly]=\"true\" matInput required (ngModelChange)=\"setDateValue('endDate')\"\n class=\"input-element\" [matDatepicker]=\"picker2\" [placeholder]=\"'End Date'\"\n formControlName=\"endDate\">\n <mat-datepicker-toggle matSuffix [for]=\"picker2\"\n class=\"datepicker-toggle\"></mat-datepicker-toggle>\n <mat-datepicker #picker2></mat-datepicker>\n </div>\n </div>\n <div *ngIf=\"filterOption?.type === FILTER_INPUT_TYPES.CHECKBOX\" class=\"filter-item\" fxLayout=\"row\">\n <button (menuOpened)=\"matMenuOpend()\" mat-raised-button [matMenuTriggerFor]=\"actions\"\n class=\"dropdown-toggle odp-secondary-button\">\n <span>{{getCheckBoxsValue?? columnName.header || columnName.prop | titlecase }}</span>\n <mat-menu #actions=\"matMenu\" focusFirstItem=\"false\" class=\"odb-mat-menu-panel custom-panel filter-panel\">\n <div class=\"custom-panel-padding\">\n <span class=\"filter-search-container\" (click)=\"$event.stopPropagation()\">\n <input *ngIf=\"!isSearchBoxHide\" required matInput type=\"text\"\n placeholder=\"Search {{ columnName.header }}\" name=\"search\" [formControl]=\"searchText\" />\n <span class=\"clear-filter-search\" *ngIf=\"searchText.value\" (click)=\"clearSearch()\">✕</span>\n </span>\n <span (click)=\"clearSelection()\" class=\"clear-all\">Clear all</span>\n <mat-spinner *ngIf=\"isLoading$ | async\" class=\"mr-1\" [diameter]=\"16\"></mat-spinner>\n <div class=\"custom-mat-menu-item\" class=\"my-1\">\n <span>\n <mat-checkbox class=\"bold-text\" [indeterminate]=\"isIndeterminate\" [checked]=\"isAllSelected\"\n [formControl]=\"selectAllCtrl\" (click)=\"$event.stopPropagation()\"\n (change)=\"selectAllCheckbox()\">Select All</mat-checkbox>\n </span>\n </div>\n <div class=\"custom-mat-menu-item\" *ngFor=\"\n let item of (selectableItems$ | async) ||\n filterOption.selectableItems ||\n []\n \" class=\"my-1\">\n <span>\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"isItemChecked(item)\"\n (change)=\"setCheckedValuesToFilter(item)\" [title]=\"item[filterOption.displayProp]\">{{\n item[filterOption.displayProp] }}</mat-checkbox>\n </span>\n </div>\n </div>\n </mat-menu>\n </button>\n </div>\n </div>\n <mat-card-actions>\n <button [disabled]=\"isFormInvalid()\" (click)=\"columnFilterClicked()\" mat-button color=\"primary\"><i\n class=\"fa-solid fa-magnifying-glass\"></i> Search</button>\n <button (click)=\"columnFilterResetClicked()\" mat-button color=\"primary\"><i class=\"fas fa-redo\"></i>\n Clear</button>\n </mat-card-actions>\n </div>\n </ng-template>\n</ng-container>\n<ng-template #dateRangeTemplate>\n <button mat-raised-button [matMenuTriggerFor]=\"actions\" class=\"dropdown-toggle odp-secondary-button\">\n <span>{{ (columnName.header || columnName.prop) | titlecase}}</span>\n <mat-menu #actions=\"matMenu\" focusFirstItem=\"false\" class=\"date-range-panel\">\n <div class=\"filter-item\" fxLayout=\"row\" [formGroup]=\"dateRangeFormGroup\">\n <div class=\"apollo-text-field custom-date-picker-field\" fxLayout=\"row\">\n <input [readonly]=\"true\" (click)=\"picker1.open(); $event.stopPropagation();\" [max]=\"dateRangeFormGroup.controls['endDate'].value\" matInput required\n (ngModelChange)=\"setDateValue('startDate')\" class=\"custom-date-field\" [matDatepicker]=\"picker1\"\n [placeholder]=\"'From Date'\" formControlName=\"startDate\">\n <mat-datepicker-toggle matSuffix [for]=\"picker1\" class=\"datepicker-toggle\"></mat-datepicker-toggle>\n <mat-datepicker #picker1></mat-datepicker>\n\n </div>\n <div class=\"apollo-text-field custom-date-picker-field\" fxLayout=\"row\">\n <input (click)=\"picker2.open(); $event.stopPropagation();\" [readonly]=\"true\" matInput required (ngModelChange)=\"setDateValue('endDate')\"\n class=\"custom-date-field\" [min]=\"dateRangeFormGroup.controls['startDate'].value\"\n [matDatepicker]=\"picker2\" [placeholder]=\"'To Date'\" formControlName=\"endDate\">\n <mat-datepicker-toggle matSuffix [for]=\"picker2\" class=\"datepicker-toggle\"></mat-datepicker-toggle>\n <mat-datepicker #picker2></mat-datepicker>\n </div>\n <button title=\"Clear all\" [disabled]=\"!isClearEnabled\" class=\"date-clear\" (click)=\"clearDateFilter()\" mat-stroked-button color=\"primary\">\n <em class=\"fas fa-broom\"></em>\n </button>\n </div>\n <div *ngIf=\"filterOption.dateRangeItems\">\n <mat-radio-group name=\"fontStyle\" aria-label=\"Font Style\" [value]=\"dateRangeValue\"\n (change)=\"dateRangeClick($event)\">\n <mat-radio-button *ngFor=\"let item of filterOption.dateRangeItems.items\" value=\"{{ item }}\">\n {{ item }} {{ filterOption.dateRangeItems.unit }} \n </mat-radio-button>\n </mat-radio-group>\n </div>\n </mat-menu>\n </button>\n</ng-template>\n", styles: [":host ::ng-deep .mat-mdc-text-field-wrapper{margin-left:0!important}.apollo-text-field .mat-input-element{padding:10px;font-size:14px;border:1px solid #d4d4d4;border-radius:3px}.apollo-text-field .mat-form-field-wrapper{margin:0;padding:0;font-size:16px;color:#4d4d4d}.apollo-mat-label{font-size:18px;color:#4d4d4d;padding-bottom:15px}.apollo-mat-label .apollo-text-field .mat-input-element,.apollo-text-field .apollo-mat-label .mat-input-element{padding:10px;font-size:14px;border:1px solid #d4d4d4;border-radius:3px}.apollo-text-field .mat-form-field-underline{display:none}.apollo-text-field .mat-input-element:focus{border:1px solid #0768fd}.apollo-text-field .error-text{margin-top:10px}.mat-card.table-col-filter-panel{box-shadow:0 16px 24px #00000029;border-radius:4px;border:1px solid #d9d9d9}.mat-card.table-col-filter-panel .mat-card-actions i{vertical-align:baseline}.mat-card.table-col-filter-panel .mat-form-field-label{color:#000;font-size:17px}.mat-card.table-col-filter-panel .mat-card-content{margin-bottom:0;color:#000;font-size:17px}.date-picker-field{width:140px}.input-element{font:inherit;background:0 0;border:none;outline:0;padding:0;margin:0;width:130px!important;max-width:100%;vertical-align:bottom;text-align:inherit}.datepicker-toggle{right:40px;position:relative;margin-top:-7px}.multi-select-section{height:180px;overflow-y:auto}.custom-mat-menu-item{cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;text-align:left;text-decoration:none;max-width:100%;position:relative;height:40px;line-height:40px;font-family:Proxima-Nova-Regular,arial,sans-serif;font-size:14px;padding:0 20px;border:1px solid #f8f9fa}.custom-mat-menu-item:hover{background-color:#ecf3ff;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;text-align:left;text-decoration:none;max-width:100%;position:relative;height:40px;line-height:40px;font-family:Proxima-Nova-Regular,arial,sans-serif;font-size:14px;padding:0 20px;border:1px solid #f8f9fa}.disabled{pointer-events:none;background-color:#f8f9fa}.action-icon{margin-left:20px}.clear-all{color:#0768fd;font-weight:700;font-size:14px;float:right;padding:7px;cursor:pointer}.filter-icon{padding-right:6px}.custom-date-picker-field{width:130px}.custom-date-field{height:32px;padding:0 5px;width:125px}.date-clear{height:32px;line-height:32px;min-width:auto;padding:0 7px!important}.custom-panel-padding{padding:5px}.filter-search-container{position:relative}.clear-filter-search{position:absolute;right:6px;top:0%;cursor:pointer;font-size:14px;font-weight:600}.icon-container{display:flex;flex-direction:row;justify-content:space-between;width:100%}.card-width{max-width:300px}.card-form{min-width:150px;max-width:300px;width:100%}.card-full-width{width:100%}.close-icon{position:absolute;top:5px;right:-3px;font-size:16px;color:#4d4d4d;z-index:9999;opacity:.7}:host ::ng-deep .mdc-label{margin-bottom:0!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i6.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "component", type: i7.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i8.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i8.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i8.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "directive", type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i11.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i12.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i12.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "directive", type: i13.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i13.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i13.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i13.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i13.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i13.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i13.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i13.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i13.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i14.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "component", type: i15.SliderComponent, selector: "ngx-slider", inputs: ["value", "highValue", "options", "manualRefresh", "triggerFocus"], outputs: ["valueChange", "highValueChange", "userChangeStart", "userChange", "userChangeEnd"] }, { kind: "directive", type: i16.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i17.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i18.NgbPopover, selector: "[ngbPopover]", inputs: ["animation", "autoClose", "ngbPopover", "popoverTitle", "placement", "popperOptions", "triggers", "positionTarget", "container", "disablePopover", "popoverClass", "popoverContext", "openDelay", "closeDelay"], outputs: ["shown", "hidden"], exportAs: ["ngbPopover"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i19.FilterByPropPipe, name: "filterByProp" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
301
|
-
}
|
|
302
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DataColFilterComponent, decorators: [{
|
|
303
|
-
type: Component,
|
|
304
|
-
args: [{ selector: 'app-data-col-filter', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"isUpdatedFilterDesign\">\n <ng-container [ngSwitch]=\"filterOption?.type\">\n <ng-container *ngSwitchCase=\"FILTER_INPUT_TYPES.TEXT\">\n <mat-form-field\n class=\"apollo-text-field table-header-apollo-text-field text-search\"\n [floatLabel]=\"'auto'\"\n >\n <input\n (ngModelChange)=\"searchValueChanged()\"\n matInput\n type=\"text\"\n placeholder=\"Search {{ columnName.header }}\"\n name=\"search\"\n [formControl]=\"searchCtrl\"\n (ngModelChange)=\"changeContainsValue()\"\n />\n </mat-form-field>\n </ng-container>\n <ng-container *ngSwitchCase=\"FILTER_INPUT_TYPES.REFERENCE\">\n <ng-select\n class=\"apollo-text-field table-header-apollo-text-field\"\n (change)=\"referenceValueChanged()\"\n [appendTo]=\"'mat-card'\"\n [items]=\"(selectableItems$ | async) || []\"\n [bindValue]=\"filterOption.bindProp\"\n [bindLabel]=\"filterOption.displayProp\"\n [multiple]=\"false\"\n placeholder=\"{{ columnName.header }}\"\n [formControl]=\"filterValue\"\n >\n </ng-select>\n </ng-container>\n <ng-container *ngSwitchCase=\"FILTER_INPUT_TYPES.CHECKBOX\">\n <button\n (menuOpened)=\"matMenuOpend()\"\n mat-raised-button\n [matMenuTriggerFor]=\"actions\"\n class=\"dropdown-toggle odp-secondary-button\"\n >\n <span>{{ columnName.header || columnName.prop | titlecase }}</span>\n <mat-menu\n #actions=\"matMenu\"\n focusFirstItem=\"false\"\n class=\"odb-mat-menu-panel custom-panel filter-panel\"\n >\n <div class=\"custom-panel-padding\">\n <span\n class=\"filter-search-container\"\n (click)=\"$event.stopPropagation()\"\n >\n <input\n *ngIf=\"!isSearchBoxHide\"\n required\n matInput\n type=\"text\"\n placeholder=\"Search {{ columnName.header }}\"\n name=\"search\"\n [formControl]=\"searchText\"\n />\n <span\n class=\"clear-filter-search\"\n *ngIf=\"searchText.value\"\n (click)=\"clearSearch()\"\n >✕</span\n >\n </span>\n <span\n (click)=\"clearSelection()\"\n class=\"clear-all\"\n >Clear all</span\n >\n <mat-spinner\n *ngIf=\"isLoading$ | async\"\n class=\"mr-1\"\n [diameter]=\"16\"\n ></mat-spinner>\n <div\n class=\"custom-mat-menu-item\"\n class=\"my-1\"\n >\n <span>\n <mat-checkbox\n class=\"bold-text\"\n [indeterminate]=\"isIndeterminate\"\n [checked]=\"isAllSelected\"\n [formControl]=\"selectAllCtrl\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"selectAllCheckbox()\"\n >Select All</mat-checkbox\n >\n </span>\n </div>\n <div\n class=\"custom-mat-menu-item\"\n *ngFor=\"\n let item of (selectableItems$ | async) ||\n filterOption.selectableItems ||\n []\n \"\n class=\"my-1\"\n >\n <span>\n <mat-checkbox\n (click)=\"$event.stopPropagation()\"\n [checked]=\"isItemChecked(item)\"\n (change)=\"setCheckedValuesToFilter(item)\"\n [title]=\"item[filterOption.displayProp]\"\n >{{ item[filterOption.displayProp] }}</mat-checkbox\n >\n </span>\n </div>\n </div>\n </mat-menu>\n </button>\n </ng-container>\n <ng-container *ngSwitchCase=\"FILTER_INPUT_TYPES.DATE_RANGE\">\n <ng-container *ngTemplateOutlet=\"dateRangeTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"FILTER_INPUT_TYPES.SLIDER\">\n <ng-container *ngIf=\"filterOption.filterTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n filterOption.filterTemplate;\n context: {\n $implicit: {\n filterOption: filterOption,\n thOptions: filterOption.thOptions\n }\n }\n \"\n >\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!filterOption.filterTemplate\">\n <div class=\"custom-slider custom-slider-alignment\">\n <ngx-slider (userChangeEnd)=\"sliderValueChanged()\" [(value)]=\"sliderValueOpt.minScore\"\n [(highValue)]=\"sliderValueOpt.maxScore\" [options]=\"sliderDefaultOptions\">\n </ngx-slider>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-container>\n<ng-container *ngIf=\"!isUpdatedFilterDesign\">\n <a #ngbPopover=\"ngbPopover\" [ngbPopover]=\"popTemplate\" [placement]=\"'bottom'\" [autoClose]=\"false\">\n <i class=\"fas fa-filter filter-icon\"></i>\n </a>\n <ng-template #popTemplate>\n <div class=\"card-width table-col-filter-panel\">\n <mat-icon (click)=\"closePopup()\" class=\"mat-icon material-icons close-icon\">close</mat-icon>\n <div class=\"card-form\">\n <mat-form-field *ngIf=\"!filterOption?.type || filterOption.type == FILTER_TYPES.CONTAINS\"\n class=\"card-full-width apollo-text-field\" [floatLabel]=\"'always'\">\n <mat-label>Filter By {{ columnName.header }}</mat-label>\n <input matInput placeholder=\"Enter {{ columnName.header }}\" [formControl]=\"filterValue\"\n (ngModelChange)=\"changeContainsValue()\">\n </mat-form-field>\n\n <mat-label *ngIf=\"filterOption?.type && filterOption?.type != FILTER_TYPES.CONTAINS\">Filter By\n {{columnName.header }}</mat-label>\n <div *ngIf=\"filterOption?.type === FILTER_TYPES.IN\">\n <section class=\"search\">\n <form ngForm>\n <div class=\"searchbar-wrapper\">\n <i class=\"svg-icon fa-solid fa-magnifying-glass\"></i>\n <input required matInput type=\"text\" placeholder=\"Search \"\n name=\"search\" />\n </div>\n </form>\n </section>\n <div [ngClass]=\"{ 'multi-select-section': filterOption.selectableItems?.length>6 }\">\n <div *ngFor=\"let item of filterOption.selectableItems | filterByProp: filterOption.displayProp: ''\"\n class=\"my-1\">\n <span>\n <mat-checkbox [checked]=\"isItemChecked(item)\"\n (change)=\"setCheckedValuesToFilter(item)\">\n {{item[filterOption.displayProp]}}</mat-checkbox>\n </span>\n </div>\n </div>\n </div>\n <div *ngIf=\"filterOption?.type === FILTER_TYPES.BETWEEN\" class=\"filter-item\" fxLayout=\"row\"\n [formGroup]=\"dateRangeFormGroup\">\n <div class=\"apollo-text-field date-picker-field\" fxLayout=\"row\">\n <input [readonly]=\"true\" matInput required (ngModelChange)=\"setDateValue('startDate')\"\n class=\"input-element\" [matDatepicker]=\"picker1\" [placeholder]=\"'Start Date'\"\n formControlName=\"startDate\">\n <mat-datepicker-toggle matSuffix [for]=\"picker1\"\n class=\"datepicker-toggle\"></mat-datepicker-toggle>\n <mat-datepicker #picker1></mat-datepicker>\n\n </div>\n <div class=\"apollo-text-field date-picker-field\" fxLayout=\"row\">\n <input [readonly]=\"true\" matInput required (ngModelChange)=\"setDateValue('endDate')\"\n class=\"input-element\" [matDatepicker]=\"picker2\" [placeholder]=\"'End Date'\"\n formControlName=\"endDate\">\n <mat-datepicker-toggle matSuffix [for]=\"picker2\"\n class=\"datepicker-toggle\"></mat-datepicker-toggle>\n <mat-datepicker #picker2></mat-datepicker>\n </div>\n </div>\n <div *ngIf=\"filterOption?.type === FILTER_INPUT_TYPES.CHECKBOX\" class=\"filter-item\" fxLayout=\"row\">\n <button (menuOpened)=\"matMenuOpend()\" mat-raised-button [matMenuTriggerFor]=\"actions\"\n class=\"dropdown-toggle odp-secondary-button\">\n <span>{{getCheckBoxsValue?? columnName.header || columnName.prop | titlecase }}</span>\n <mat-menu #actions=\"matMenu\" focusFirstItem=\"false\" class=\"odb-mat-menu-panel custom-panel filter-panel\">\n <div class=\"custom-panel-padding\">\n <span class=\"filter-search-container\" (click)=\"$event.stopPropagation()\">\n <input *ngIf=\"!isSearchBoxHide\" required matInput type=\"text\"\n placeholder=\"Search {{ columnName.header }}\" name=\"search\" [formControl]=\"searchText\" />\n <span class=\"clear-filter-search\" *ngIf=\"searchText.value\" (click)=\"clearSearch()\">✕</span>\n </span>\n <span (click)=\"clearSelection()\" class=\"clear-all\">Clear all</span>\n <mat-spinner *ngIf=\"isLoading$ | async\" class=\"mr-1\" [diameter]=\"16\"></mat-spinner>\n <div class=\"custom-mat-menu-item\" class=\"my-1\">\n <span>\n <mat-checkbox class=\"bold-text\" [indeterminate]=\"isIndeterminate\" [checked]=\"isAllSelected\"\n [formControl]=\"selectAllCtrl\" (click)=\"$event.stopPropagation()\"\n (change)=\"selectAllCheckbox()\">Select All</mat-checkbox>\n </span>\n </div>\n <div class=\"custom-mat-menu-item\" *ngFor=\"\n let item of (selectableItems$ | async) ||\n filterOption.selectableItems ||\n []\n \" class=\"my-1\">\n <span>\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"isItemChecked(item)\"\n (change)=\"setCheckedValuesToFilter(item)\" [title]=\"item[filterOption.displayProp]\">{{\n item[filterOption.displayProp] }}</mat-checkbox>\n </span>\n </div>\n </div>\n </mat-menu>\n </button>\n </div>\n </div>\n <mat-card-actions>\n <button [disabled]=\"isFormInvalid()\" (click)=\"columnFilterClicked()\" mat-button color=\"primary\"><i\n class=\"fa-solid fa-magnifying-glass\"></i> Search</button>\n <button (click)=\"columnFilterResetClicked()\" mat-button color=\"primary\"><i class=\"fas fa-redo\"></i>\n Clear</button>\n </mat-card-actions>\n </div>\n </ng-template>\n</ng-container>\n<ng-template #dateRangeTemplate>\n <button mat-raised-button [matMenuTriggerFor]=\"actions\" class=\"dropdown-toggle odp-secondary-button\">\n <span>{{ (columnName.header || columnName.prop) | titlecase}}</span>\n <mat-menu #actions=\"matMenu\" focusFirstItem=\"false\" class=\"date-range-panel\">\n <div class=\"filter-item\" fxLayout=\"row\" [formGroup]=\"dateRangeFormGroup\">\n <div class=\"apollo-text-field custom-date-picker-field\" fxLayout=\"row\">\n <input [readonly]=\"true\" (click)=\"picker1.open(); $event.stopPropagation();\" [max]=\"dateRangeFormGroup.controls['endDate'].value\" matInput required\n (ngModelChange)=\"setDateValue('startDate')\" class=\"custom-date-field\" [matDatepicker]=\"picker1\"\n [placeholder]=\"'From Date'\" formControlName=\"startDate\">\n <mat-datepicker-toggle matSuffix [for]=\"picker1\" class=\"datepicker-toggle\"></mat-datepicker-toggle>\n <mat-datepicker #picker1></mat-datepicker>\n\n </div>\n <div class=\"apollo-text-field custom-date-picker-field\" fxLayout=\"row\">\n <input (click)=\"picker2.open(); $event.stopPropagation();\" [readonly]=\"true\" matInput required (ngModelChange)=\"setDateValue('endDate')\"\n class=\"custom-date-field\" [min]=\"dateRangeFormGroup.controls['startDate'].value\"\n [matDatepicker]=\"picker2\" [placeholder]=\"'To Date'\" formControlName=\"endDate\">\n <mat-datepicker-toggle matSuffix [for]=\"picker2\" class=\"datepicker-toggle\"></mat-datepicker-toggle>\n <mat-datepicker #picker2></mat-datepicker>\n </div>\n <button title=\"Clear all\" [disabled]=\"!isClearEnabled\" class=\"date-clear\" (click)=\"clearDateFilter()\" mat-stroked-button color=\"primary\">\n <em class=\"fas fa-broom\"></em>\n </button>\n </div>\n <div *ngIf=\"filterOption.dateRangeItems\">\n <mat-radio-group name=\"fontStyle\" aria-label=\"Font Style\" [value]=\"dateRangeValue\"\n (change)=\"dateRangeClick($event)\">\n <mat-radio-button *ngFor=\"let item of filterOption.dateRangeItems.items\" value=\"{{ item }}\">\n {{ item }} {{ filterOption.dateRangeItems.unit }} \n </mat-radio-button>\n </mat-radio-group>\n </div>\n </mat-menu>\n </button>\n</ng-template>\n", styles: [":host ::ng-deep .mat-mdc-text-field-wrapper{margin-left:0!important}.apollo-text-field .mat-input-element{padding:10px;font-size:14px;border:1px solid #d4d4d4;border-radius:3px}.apollo-text-field .mat-form-field-wrapper{margin:0;padding:0;font-size:16px;color:#4d4d4d}.apollo-mat-label{font-size:18px;color:#4d4d4d;padding-bottom:15px}.apollo-mat-label .apollo-text-field .mat-input-element,.apollo-text-field .apollo-mat-label .mat-input-element{padding:10px;font-size:14px;border:1px solid #d4d4d4;border-radius:3px}.apollo-text-field .mat-form-field-underline{display:none}.apollo-text-field .mat-input-element:focus{border:1px solid #0768fd}.apollo-text-field .error-text{margin-top:10px}.mat-card.table-col-filter-panel{box-shadow:0 16px 24px #00000029;border-radius:4px;border:1px solid #d9d9d9}.mat-card.table-col-filter-panel .mat-card-actions i{vertical-align:baseline}.mat-card.table-col-filter-panel .mat-form-field-label{color:#000;font-size:17px}.mat-card.table-col-filter-panel .mat-card-content{margin-bottom:0;color:#000;font-size:17px}.date-picker-field{width:140px}.input-element{font:inherit;background:0 0;border:none;outline:0;padding:0;margin:0;width:130px!important;max-width:100%;vertical-align:bottom;text-align:inherit}.datepicker-toggle{right:40px;position:relative;margin-top:-7px}.multi-select-section{height:180px;overflow-y:auto}.custom-mat-menu-item{cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;text-align:left;text-decoration:none;max-width:100%;position:relative;height:40px;line-height:40px;font-family:Proxima-Nova-Regular,arial,sans-serif;font-size:14px;padding:0 20px;border:1px solid #f8f9fa}.custom-mat-menu-item:hover{background-color:#ecf3ff;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;text-align:left;text-decoration:none;max-width:100%;position:relative;height:40px;line-height:40px;font-family:Proxima-Nova-Regular,arial,sans-serif;font-size:14px;padding:0 20px;border:1px solid #f8f9fa}.disabled{pointer-events:none;background-color:#f8f9fa}.action-icon{margin-left:20px}.clear-all{color:#0768fd;font-weight:700;font-size:14px;float:right;padding:7px;cursor:pointer}.filter-icon{padding-right:6px}.custom-date-picker-field{width:130px}.custom-date-field{height:32px;padding:0 5px;width:125px}.date-clear{height:32px;line-height:32px;min-width:auto;padding:0 7px!important}.custom-panel-padding{padding:5px}.filter-search-container{position:relative}.clear-filter-search{position:absolute;right:6px;top:0%;cursor:pointer;font-size:14px;font-weight:600}.icon-container{display:flex;flex-direction:row;justify-content:space-between;width:100%}.card-width{max-width:300px}.card-form{min-width:150px;max-width:300px;width:100%}.card-full-width{width:100%}.close-icon{position:absolute;top:5px;right:-3px;font-size:16px;color:#4d4d4d;z-index:9999;opacity:.7}:host ::ng-deep .mdc-label{margin-bottom:0!important}\n"] }]
|
|
305
|
-
}], ctorParameters: () => [{ type: i1.FilterValueExecutorProvider }, { type: i0.ChangeDetectorRef }], propDecorators: { isClearFilter$: [{
|
|
306
|
-
type: Input
|
|
307
|
-
}], isUpdatedFilterDesign: [{
|
|
308
|
-
type: Input
|
|
309
|
-
}], columnName: [{
|
|
310
|
-
type: Input
|
|
311
|
-
}], filterParam: [{
|
|
312
|
-
type: Input
|
|
313
|
-
}], numberOfTableRefresh: [{
|
|
314
|
-
type: Input
|
|
315
|
-
}], filterOption: [{
|
|
316
|
-
type: Input
|
|
317
|
-
}], onFilterClicked: [{
|
|
318
|
-
type: Output
|
|
319
|
-
}], ngbPopover: [{
|
|
320
|
-
type: ViewChild,
|
|
321
|
-
args: ['ngbPopover']
|
|
322
|
-
}] } });
|
|
323
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb2wtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvbW9kdWxlcy91aS1raXQvY29tcG9uZW50cy9kYXRhLXRhYmxlL2RhdGEtY29sLWZpbHRlci9kYXRhLWNvbC1maWx0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9tb2R1bGVzL3VpLWtpdC9jb21wb25lbnRzL2RhdGEtdGFibGUvZGF0YS1jb2wtZmlsdGVyL2RhdGEtY29sLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUVsRSxNQUFNLEVBQWlCLFNBQVMsRUFDekMsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSzdHLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRXRILE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUTVCLE1BQU0sT0FBTyxzQkFBc0I7SUF1Q2pDLFlBQ1UsMkJBQXdELEVBQ3hELEVBQXFCO1FBRHJCLGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBNkI7UUFDeEQsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUF4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Q0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0EvVFUsc0JBQXNCO21HQUF0QixzQkFBc0IsMmNDekJuQyxzc2NBeVJBOzs0RkRoUWEsc0JBQXNCO2tCQU5sQyxTQUFTOytCQUNFLHFCQUFxQixtQkFHZCx1QkFBdUIsQ0FBQyxNQUFNO2dJQUcvQixjQUFjO3NCQUE3QixLQUFLO2dCQUNVLHFCQUFxQjtzQkFBcEMsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUNVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1Usb0JBQW9CO3NCQUFuQyxLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBS1csZUFBZTtzQkFBL0IsTUFBTTtnQkFvQjBCLFVBQVU7c0JBQTFDLFNBQVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9wdGlvbnMgfSBmcm9tICdAYW5ndWxhci1zbGlkZXIvbmd4LXNsaWRlcic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTmdiUG9wb3ZlciB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IGNsb25lRGVlcCwgaXNGdW5jdGlvbiB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmluYWxpemUsIGZpcnN0LCBzaGFyZVJlcGxheSwgdGFrZVVudGlsLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IElLZXlWYWx1ZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvdWkta2l0L2ludGVyZmFjZXMvZ2VuZXJpYy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUZpbHRlck9wdGlvbiwgSUZpbHRlclBhcmFtIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9hcGkuaW50ZXJmYWNlJztcbmltcG9ydCB7IElEYXRhVGFibGVDb2x1bW4gfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2RhdGEtdGFibGUuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZpbHRlclZhbHVlRXhlY3V0b3JQcm92aWRlciB9IGZyb20gJy4uLy4uL2RhdGEtdGFibGUvZGF0YS1jb2wtZmlsdGVyL2ZpbHRlci12YWx1ZS1oZWxwZXJzL2ZpbHRlci12YWx1ZS1leGVjdXRvci1wcm92aWRlcic7XG5pbXBvcnQgeyBEYXRhVGFibGVDb2x1bW5GaWx0ZXJJbnB1dFR5cGVzLCBEYXRhVGFibGVDb2x1bW5GaWx0ZXJUeXBlcyB9IGZyb20gJy4uLy4uL2RhdGEtdGFibGUvZW51bXMvY29sLWZpbHRlci10eXBlcyc7XG5pbXBvcnQgeyBJRGF0YVRhYmxlQ29sdW1uRmlsdGVyVmFsdWUgfSBmcm9tICcuLi8uLi9kYXRhLXRhYmxlL2ludGVyZmFjZXMvZmlsdGVyLXZhbHVlLWV4ZWN1dG9yLmludGVyZmFjZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1kYXRhLWNvbC1maWx0ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS1jb2wtZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0YS1jb2wtZmlsdGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRhQ29sRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHB1YmxpYyBpc0NsZWFyRmlsdGVyJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIEBJbnB1dCgpIHB1YmxpYyBpc1VwZGF0ZWRGaWx0ZXJEZXNpZ24gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGNvbHVtbk5hbWU6IElEYXRhVGFibGVDb2x1bW47XG4gIEBJbnB1dCgpIHB1YmxpYyBmaWx0ZXJQYXJhbTogSUZpbHRlclBhcmFtO1xuICBASW5wdXQoKSBwdWJsaWMgbnVtYmVyT2ZUYWJsZVJlZnJlc2g6IG51bWJlcjtcbiAgQElucHV0KCkgcHVibGljIGZpbHRlck9wdGlvbjogSUZpbHRlck9wdGlvbjtcbiAgcHVibGljIHNlbGVjdGFibGVJdGVtcyQ6IEJlaGF2aW9yU3ViamVjdDxJS2V5VmFsdWVbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElLZXlWYWx1ZVtdPihudWxsKTtcbiAgcHVibGljIHNlYXJjaFRleHQ6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG4gIHB1YmxpYyBzZWxlY3RBbGxDdHJsOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbChmYWxzZSk7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW9uLXByZWZpeFxuICBAT3V0cHV0KCkgcHVibGljIG9uRmlsdGVyQ2xpY2tlZDogRXZlbnRFbWl0dGVyPElGaWx0ZXJQYXJhbT4gPSBuZXcgRXZlbnRFbWl0dGVyPElGaWx0ZXJQYXJhbT4oKTtcblxuICBwdWJsaWMgZGF0ZVJhbmdlRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgc3RhcnREYXRlOiBuZXcgRm9ybUNvbnRyb2woJycpLFxuICAgIGVuZERhdGU6IG5ldyBGb3JtQ29udHJvbCgnJyksXG4gIH0pO1xuICBwdWJsaWMgZGF0ZVJhbmdlVmFsdWUgPSAnJztcbiAgcHVibGljIHNsaWRlclZhbHVlT3B0ID0ge1xuICAgIG1heFNjb3JlOiAxMDAsXG4gICAgbWluU2NvcmU6IDAsXG4gIH07XG4gIHB1YmxpYyBmaWx0ZXJWYWx1ZTogRm9ybUNvbnRyb2w7XG4gIHB1YmxpYyBzZWFyY2hDdHJsOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICBwdWJsaWMgRklMVEVSX1RZUEVTID0gRGF0YVRhYmxlQ29sdW1uRmlsdGVyVHlwZXM7XG4gIHB1YmxpYyBGSUxURVJfSU5QVVRfVFlQRVMgPSBEYXRhVGFibGVDb2x1bW5GaWx0ZXJJbnB1dFR5cGVzO1xuICBwdWJsaWMgc2xpZGVyRGVmYXVsdE9wdGlvbnM6IE9wdGlvbnMgPSB7XG4gICAgZmxvb3I6IDAsXG4gICAgY2VpbDogMTAwLFxuICB9O1xuICBwdWJsaWMgaXNMb2FkaW5nJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIEBWaWV3Q2hpbGQoJ25nYlBvcG92ZXInKSBwcml2YXRlIG5nYlBvcG92ZXI6IE5nYlBvcG92ZXJcbiAgcHJpdmF0ZSBmaWx0ZXJWYWx1ZU1ha2VyOiBJRGF0YVRhYmxlQ29sdW1uRmlsdGVyVmFsdWU7XG4gIHByaXZhdGUgZmlsdGVyV29ya2luZ1ZhbHVlOiBJS2V5VmFsdWU7XG4gIHByaXZhdGUgc2VsZWN0YWJsZUl0ZW1zOiBJS2V5VmFsdWVbXSA9IFtdO1xuICBwcml2YXRlIHByZXZpb3VzU2VsZWN0YWJsZUl0ZW1zOiBJS2V5VmFsdWVbXTtcbiAgcHJpdmF0ZSBjbGVhclN1YnMkID0gbmV3IFN1YmplY3QoKTtcbiAgcHJpdmF0ZSBzZWFyY2hPYmplY3QkOiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmlsdGVyVmFsdWVFeGVjdXRvclByb3ZpZGVyOiBGaWx0ZXJWYWx1ZUV4ZWN1dG9yUHJvdmlkZXIsXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge1xuICAgIHRoaXMuc2V0U2VhcmNoV2F0Y2hlciQoKTtcbiAgfVxuXG4gIGdldCBnZXRDaGVja0JveHNWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHRoaXMuZmlsdGVyV29ya2luZ1ZhbHVlKSA/ICB0aGlzLmZpbHRlcldvcmtpbmdWYWx1ZS5qb2luKCcgJykgOiB0aGlzLmZpbHRlcldvcmtpbmdWYWx1ZVswXTtcbiAgfVxuICBcbiAgZ2V0IGlzSW5kZXRlcm1pbmF0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKDxzdHJpbmdbXT50aGlzLmZpbHRlcldvcmtpbmdWYWx1ZSkubGVuZ3RoID4gMCAmJiAoPHN0cmluZ1tdPnRoaXMuZmlsdGVyV29ya2luZ1ZhbHVlKS5sZW5ndGggIT09IHRoaXMuc2VsZWN0YWJsZUl0ZW1zLmxlbmd0aDtcbiAgfVxuXG4gIGdldCBpc0FsbFNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcldvcmtpbmdWYWx1ZS5sZW5ndGggPiAwICYmIHRoaXMuZmlsdGVyV29ya2luZ1ZhbHVlLmxlbmd0aCA9PT0gdGhpcy5zZWxlY3RhYmxlSXRlbXMubGVuZ3RoO1xuICB9XG5cbiAgZ2V0IGlzQ2xlYXJFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhISh0aGlzLmRhdGVSYW5nZUZvcm1Hcm91cC5nZXQoJ3N0YXJ0RGF0ZScpLnZhbHVlIHx8IHRoaXMuZGF0ZVJhbmdlRm9ybUdyb3VwLmdldCgnZW5kRGF0ZScpLnZhbHVlKTtcbiAgfVxuXG4gIGdldCBpc1NlYXJjaEJveEhpZGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5maWx0ZXJPcHRpb24/LmlzU2VhcmNoQm94SGlkZTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyU3VicyQubmV4dChudWxsKTtcbiAgICB0aGlzLmNsZWFyU3VicyQuY29tcGxldGUoKTtcbiAgICB0aGlzLmlzTG9hZGluZyQubmV4dChmYWxzZSk7XG4gICAgdGhpcy5pc0xvYWRpbmckLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJWYWx1ZSA9IG5ldyBGb3JtQ29udHJvbCgnJyk7XG4gICAgdGhpcy5pc0NsZWFyRmlsdGVyJC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgaWYgKHJlcykge1xuICAgICAgICB0aGlzLmNsZWFyRmlsdGVyKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKHRoaXMuZmlsdGVyT3B0aW9uICYmICh0aGlzLmZpbHRlck9wdGlvbi50eXBlID09PSBEYXRhVGFibGVDb2x1bW5GaWx0ZXJJbnB1dFR5cGVzLlJFRkVSRU5DRSkpIHtcbiAgICAgIHRoaXMubG9hZERlZmF1bHRSZWZlcmVuY2VJdGVtcygpO1xuICAgICAgdGhpcy5sb2FkUmVmZXJlbmNlRGF0YSgpO1xuICAgIH1cbiAgICB0aGlzLmZpbHRlclZhbHVlTWFrZXIgPSB0aGlzLmZpbHRlclZhbHVlRXhlY3V0b3JQcm92aWRlclxuICAgICAgLmdldEZpbHRlclZhbHVlRXhlY3V0b3JQcm92aWRlcih0aGlzLmZpbHRlck9wdGlvbiAmJiB0aGlzLmZpbHRlck9wdGlvbi50eXBlIHx8IHRoaXMuRklMVEVSX1RZUEVTLkNPTlRBSU5TKTtcbiAgICB0aGlzLmZpbHRlclZhbHVlTWFrZXIuc2V0SW5pdFZhbHVlcyh0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMuZmlsdGVyUGFyYW0gJiYgdGhpcy5maWx0ZXJWYWx1ZSkge1xuICAgICAgdGhpcy5maWx0ZXJWYWx1ZS5zZXRWYWx1ZSh0aGlzLmZpbHRlclBhcmFtID8gdGhpcy5maWx0ZXJQYXJhbS5maWx0ZXJWYWx1ZSA6ICcnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0QWxsQ2hlY2tib3goKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0QWxsQ3RybC52YWx1ZSkge1xuICAgICAgdGhpcy5maWx0ZXJXb3JraW5nVmFsdWUgPSB0aGlzLnNlbGVjdGFibGVJdGVtcyQuZ2V0VmFsdWUoKS5tYXAoeCA9PiB4LnZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWx0ZXJXb3JraW5nVmFsdWUgPSBbXTtcbiAgICB9XG4gICAgdGhpcy5lbWl0RmlsdGVyUGFyYW0oPHN0cmluZ1tdPnRoaXMuZmlsdGVyV29ya2luZ1ZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBjb2x1bW5GaWx0ZXJDbGlja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuZW1pdEZpbHRlclBhcmFtKCk7XG4gICAgdGhpcy5uZ2JQb3BvdmVyLmNsb3NlKCk7XG4gIH1cblxuICBwdWJsaWMgY29sdW1uRmlsdGVyUmVzZXRDbGlja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuZmlsdGVyVmFsdWVNYWtlci5yZXNldFZhbHVlKHRoaXMpO1xuICAgIHRoaXMuZW1pdEZpbHRlclBhcmFtKCk7XG4gICAgdGhpcy5uZ2JQb3BvdmVyLmNsb3NlKCk7XG4gIH1cblxuICBwdWJsaWMgbWF0TWVudU9wZW5kKCk6IHZvaWQge1xuICAgIHRoaXMucHJldmlvdXNTZWxlY3RhYmxlSXRlbXMgPSBjbG9uZURlZXAodGhpcy5zZWxlY3RhYmxlSXRlbXMpO1xuICAgIHRoaXMuc2VsZWN0YWJsZUl0ZW1zID0gW107XG4gICAgdGhpcy5zZWxlY3RhYmxlSXRlbXMkLm5leHQodGhpcy5zZWxlY3RhYmxlSXRlbXMpO1xuICAgIGlmICh0aGlzLnNlYXJjaFRleHQudmFsdWUpIHtcbiAgICAgIHRoaXMuc2VhcmNoVGV4dC5zZXRWYWx1ZSgnJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmZpbHRlck9wdGlvbi5zZWxlY3RhYmxlSXRlbXMpIHtcbiAgICAgIHRoaXMuc2VsZWN0YWJsZUl0ZW1zID0gdGhpcy5maWx0ZXJPcHRpb24uc2VsZWN0YWJsZUl0ZW1zO1xuICAgICAgdGhpcy5zZWxlY3RhYmxlSXRlbXMkLm5leHQodGhpcy5maWx0ZXJPcHRpb24uc2VsZWN0YWJsZUl0ZW1zKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pc0xvYWRpbmckLm5leHQodHJ1ZSk7XG4gICAgaWYgKHRoaXMuZmlsdGVyT3B0aW9uICYmIGlzRnVuY3Rpb24odGhpcy5maWx0ZXJPcHRpb24uZ2V0U2VsZWN0YWJsZUZuJCkpIHtcbiAgICAgIHRoaXMuZmlsdGVyT3B0aW9uLmdldFNlbGVjdGFibGVGbiQoJycpXG4gICAgICAgIC5waXBlKGZpcnN0KCksIHNoYXJlUmVwbGF5KCksIHRha2VVbnRpbCh0aGlzLmNsZWFyU3VicyQpLCBmaW5hbGl6ZSgoKSA9PiB0aGlzLmlzTG9hZGluZyQubmV4dChmYWxzZSkpKVxuICAgICAgICAuc3Vic2NyaWJlKChyZXM6IElLZXlWYWx1ZTxhbnk+W10pID0+IHtcbiAgICAgICAgICBjb25zdCBjdXJybnRTZWxlY3RlZEl0ZW1zID0gdGhpcy5nZXRDdXJyZW50U2VsZWN0ZWRJdGVtcygpO1xuICAgICAgICAgIHRoaXMuc2VsZWN0YWJsZUl0ZW1zID0gWy4uLnJlc107XG4gICAgICAgICAgdGhpcy5yZW1vdmVQcmV2aW91c1NlbGVjdGVkSXRlbXMoY3Vycm50U2VsZWN0ZWRJdGVtcywgcmVzKTtcbiAgICAgICAgICB0aGlzLnNlbGVjdGFibGVJdGVtcyQubmV4dChjdXJybnRTZWxlY3RlZEl0ZW1zLmNvbmNhdChyZXMpKTtcbiAgICAgICAgfSk7XG4gICAgICB0aGlzLmdldFNlbGVjdGFibGVJdGVtcygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBkYXRlUmFuZ2VDbGljayhldjogYW55KSB7XG4gICAgdGhpcy5kYXRlUmFuZ2VWYWx1ZSA9IGV2LnZhbHVlO1xuICAgIGNvbnN0IHZhbCA9ICtldi52YWx1ZTtcbiAgICBjb25zdCByYXcgPSB7IGRheXM6IDEsIHdlZWtzOiA3LCBtb250aHM6IDMwLCB5ZWFyczogMzY1IH07XG4gICAgY29uc3QgZGF5cyA9ICh2YWwgKiByYXdbdGhpcy5maWx0ZXJPcHRpb24uZGF0ZVJhbmdlSXRlbXM/LnVuaXQgPz8gJ2RheXMnXSkgLSAxO1xuICAgIHRoaXMuZGF0ZVJhbmdlRm9ybUdyb3VwLnNldFZhbHVlKHsgc3RhcnREYXRlOiBuZXcgRGF0ZSgpIGFzIGFueSwgZW5kRGF0ZTogbW9tZW50KCkuYWRkKGRheXMsICdkYXlzJykudG9EYXRlKCkgYXMgYW55IH0pO1xuICB9XG5cblxuICBwdWJsaWMgY2xlYXJTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJWYWx1ZU1ha2VyLnJlc2V0VmFsdWUodGhpcyk7XG4gICAgdGhpcy5lbWl0RmlsdGVyUGFyYW0oKTtcbiAgICB0aGlzLnNlbGVjdEFsbEN0cmwucmVzZXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhckRhdGVGaWx0ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5kYXRlUmFuZ2VGb3JtR3JvdXAucmVzZXQoe30sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB0aGlzLmZpbHRlclZhbHVlTWFrZXIucmVzZXRWYWx1ZSh0aGlzKTtcbiAgICB0aGlzLmVtaXRGaWx0ZXJQYXJhbSgpO1xuICAgIHRoaXMuZGF0ZVJhbmdlVmFsdWUgPSAnJztcbiAgfVxuXG4gIHB1YmxpYyBjbG9zZVBvcHVwKCk6IHZvaWQge1xuICAgIHRoaXMubmdiUG9wb3Zlci5jbG9zZSgpO1xuICB9XG5cbiAgcHVibGljIGNsZWFyU2VhcmNoKCk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoVGV4dC5zZXRWYWx1ZSgnJyk7XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlQ29udGFpbnNWYWx1ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlcldvcmtpbmdWYWx1ZSA9IHRoaXMuZmlsdGVyVmFsdWUudmFsdWU7XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoVmFsdWVDaGFuZ2VkKCk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoT2JqZWN0JC5uZXh0KHRoaXMuZmlsdGVyVmFsdWUudmFsdWUpO1xuICB9XG5cbiAgcHVibGljIHNldENoZWNrZWRWYWx1ZXNUb0ZpbHRlcihpdGVtOiBJS2V5VmFsdWUpOiB2b2lkIHtcbiAgICBpZiAoIWl0ZW0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5maWx0ZXJXb3JraW5nVmFsdWUgPSB0aGlzLmZpbHRlclZhbHVlTWFrZXIuc2V0RmlsdGVyVmFsdWUodGhpcy5maWx0ZXJPcHRpb24sIHRoaXMuZmlsdGVyV29ya2luZ1ZhbHVlLCBpdGVtKTtcbiAgICB0aGlzLmVtaXRGaWx0ZXJQYXJhbSg8c3RyaW5nW10+dGhpcy5maWx0ZXJXb3JraW5nVmFsdWUpO1xuICB9XG5cbiAgcHVibGljIHJlZmVyZW5jZVZhbHVlQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmVtaXRGaWx0ZXJQYXJhbSh0aGlzLmZpbHRlclZhbHVlLnZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBzbGlkZXJWYWx1ZUNoYW5nZWQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmZpbHRlcldvcmtpbmdWYWx1ZSkge1xuICAgICAgdGhpcy5maWx0ZXJXb3JraW5nVmFsdWUgPSB7fTtcbiAgICB9XG4gICAgdGhpcy5maWx0ZXJXb3JraW5nVmFsdWVbJ21heFNjb3JlJ10gPSB0aGlzLnNsaWRlclZhbHVlT3B0Lm1heFNjb3JlO1xuICAgIHRoaXMuZmlsdGVyV29ya2luZ1ZhbHVlWydtaW5TY29yZSddID0gdGhpcy5zbGlkZXJWYWx1ZU9wdC5taW5TY29yZTtcbiAgICB0aGlzLmVtaXRGaWx0ZXJQYXJhbSgpO1xuXG4gIH1cblxuICBwdWJsaWMgc2V0RGF0ZVZhbHVlKGZvcm1OYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZmlsdGVyV29ya2luZ1ZhbHVlKSB7XG4gICAgICB0aGlzLmZpbHRlcldvcmtpbmdWYWx1ZSA9IHt9O1xuICAgIH1cbiAgICB0aGlzLmZpbHRlcldvcmtpbmdWYWx1ZVtmb3JtTmFtZV0gPSB0aGlzLmRhdGVSYW5nZUZvcm1Hcm91cC5jb250cm9sc1tmb3JtTmFtZV0udmFsdWU7XG4gICAgaWYgKHRoaXMuaXNVcGRhdGVkRmlsdGVyRGVzaWduICYmICh0aGlzLmZpbHRlcldvcmtpbmdWYWx1ZVtmb3JtTmFtZV0gfHxcbiAgICAgIHRoaXMuZmlsdGVyV29ya2luZ1ZhbHVlW2Zvcm1OYW1lXSkpIHtcbiAgICAgIHRoaXMuZW1pdEZpbHRlclBhcmFtKHRoaXMucG9wdWxhdGVEYXRlUm5hZ2UoKSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlzSXRlbUNoZWNrZWQoaXRlbTogSUtleVZhbHVlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyVmFsdWVNYWtlci5pc0NoZWNrZWRGaWx0ZXJWYWx1ZSh0aGlzLmZpbHRlck9wdGlvbiwgdGhpcy5maWx0ZXJXb3JraW5nVmFsdWUsIGl0ZW0pO1xuICB9XG5cbiAgcHVibGljIGlzRm9ybUludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyVmFsdWVNYWtlci5pc0Zvcm1JbnZhbGlkKHRoaXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaWx0ZXJWYWx1ZSgpOiBzdHJpbmcgfCBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyVmFsdWVNYWtlci5nZXRGaWx0ZXJWYWx1ZSh0aGlzLmZpbHRlcldvcmtpbmdWYWx1ZSwgdGhpcy5pc1VwZGF0ZWRGaWx0ZXJEZXNpZ24pO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0RmlsdGVyUGFyYW0oZmlsdGVyVmFsdWU/OiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xuICAgIHRoaXMub25GaWx0ZXJDbGlja2VkLmVtaXQoe1xuICAgICAgZmlsdGVyQ29sdW1uOiB0aGlzLmNvbHVtbk5hbWUsXG4gICAgICBmaWx0ZXJWYWx1ZTogZmlsdGVyVmFsdWUgPyBmaWx0ZXJWYWx1ZSA6IHRoaXMuZ2V0RmlsdGVyVmFsdWUoKSxcbiAgICAgIGNvbHVtbk5hbWU6IHRoaXMuY29sdW1uTmFtZS5wcm9wLFxuICAgICAgZmlsdGVyVHlwZTogdGhpcy5maWx0ZXJPcHRpb24gJiYgdGhpcy5maWx0ZXJPcHRpb24udHlwZSB8fCB0aGlzLkZJTFRFUl9UWVBFUy5DT05UQUlOUyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2VsZWN0YWJsZUl0ZW1zKCk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoVGV4dC52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoNTAwKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBjb25zdCBleGlzdGluZ09iaiA9IHRoaXMuZ2V0Q3VycmVudFNlbGVjdGVkSXRlbXMoKTtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmckLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZmlsdGVyT3B0aW9uLmdldFNlbGVjdGFibGVGbiQodGhpcy5zZWFyY2hUZXh0LnZhbHVlLCB0cnVlKVxuICAgICAgICAgIC5waXBlKGZpcnN0KCksIHNoYXJlUmVwbGF5KCksIHRha2VVbnRpbCh0aGlzLmNsZWFyU3VicyQpLCBmaW5hbGl6ZSgoKSA9PiB0aGlzLmlzTG9hZGluZyQubmV4dChmYWxzZSkpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBJS2V5VmFsdWU8YW55PltdKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZVByZXZpb3VzU2VsZWN0ZWRJdGVtcyhleGlzdGluZ09iaiwgcmVzcG9uc2UpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RhYmxlSXRlbXMgPSBleGlzdGluZ09iai5jb25jYXQocmVzcG9uc2UpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RhYmxlSXRlbXMkLm5leHQoZXhpc3RpbmdPYmouY29uY2F0KHJlc3BvbnNlKSk7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJGaWx0ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJWYWx1ZU1ha2VyLnJlc2V0VmFsdWUodGhpcyk7XG4gICAgdGhpcy5kYXRlUmFuZ2VGb3JtR3JvdXAucmVzZXQoKTtcbiAgICB0aGlzLmlzQ2xlYXJGaWx0ZXIkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDdXJyZW50U2VsZWN0ZWRJdGVtcygpOiBJS2V5VmFsdWVbXSB7XG4gICAgY29uc3QgZXhpc3RpbmdWYWx1ZXMgPSA8W10+IHRoaXMuZmlsdGVyV29ya2luZ1ZhbHVlO1xuICAgIHJldHVybiBleGlzdGluZ1ZhbHVlcy5tYXAoaXRlbSA9PiB7XG4gICAgICBjb25zdCBsYWJlbCA9IHRoaXMucHJldmlvdXNTZWxlY3RhYmxlSXRlbXMuZmluZCh4ID0+IHhbdGhpcy5maWx0ZXJPcHRpb24uYmluZFByb3BdID09PSBpdGVtKT8uW3RoaXMuZmlsdGVyT3B0aW9uLmRpc3BsYXlQcm9wXTtcbiAgICAgIHJldHVybiA8SUtleVZhbHVlPnsgW3RoaXMuZmlsdGVyT3B0aW9uLmJpbmRQcm9wXTogaXRlbSwgW3RoaXMuZmlsdGVyT3B0aW9uLmRpc3BsYXlQcm9wXTogbGFiZWwgfHwgJycgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlUHJldmlvdXNTZWxlY3RlZEl0ZW1zKHByZXZpb3VzSXRlbXM6IElLZXlWYWx1ZVtdLCBjdXJyZW50SXRlbXM6IElLZXlWYWx1ZVtdKTogdm9pZCB7XG4gICAgcHJldmlvdXNJdGVtcy5mb3JFYWNoKHggPT4ge1xuICAgICAgY29uc3QgcG9zaXRpb24gPSBjdXJyZW50SXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbVt0aGlzLmZpbHRlck9wdGlvbi5iaW5kUHJvcF0gPT09IHhbdGhpcy5maWx0ZXJPcHRpb24uYmluZFByb3BdKTtcbiAgICAgIGlmIChwb3NpdGlvbiAhPT0gLSAxKSB7XG4gICAgICAgIGN1cnJlbnRJdGVtcy5zcGxpY2UocG9zaXRpb24sIDEpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBwb3B1bGF0ZURhdGVSbmFnZSgpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgZGF0ZVJhbmdlczogc3RyaW5nW10gPSBbXTtcbiAgICBkYXRlUmFuZ2VzWzBdID0gdGhpcy5mb3JtYXREYXRlKHRoaXMuZmlsdGVyV29ya2luZ1ZhbHVlLnN0YXJ0RGF0ZSk7XG4gICAgZGF0ZVJhbmdlc1sxXSA9IHRoaXMuZm9ybWF0RGF0ZSh0aGlzLmZpbHRlcldvcmtpbmdWYWx1ZS5lbmREYXRlKTtcbiAgICByZXR1cm4gZGF0ZVJhbmdlcztcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0RGF0ZShkYXRlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghZGF0ZSkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICByZXR1cm4gYCR7bmV3IERhdGUoZGF0ZSkuZ2V0RnVsbFllYXIoKX0tJHtuZXcgRGF0ZShkYXRlKS5nZXRNb250aCgpICsgMX0tJHtuZXcgRGF0ZShkYXRlKS5nZXREYXRlKCl9YDtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZFJlZmVyZW5jZURhdGEoKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJWYWx1ZS5zZXRWYWx1ZShudWxsKTtcbiAgICBpZiAodGhpcy5maWx0ZXJPcHRpb24uc2VsZWN0YWJsZUl0ZW1zICYmIHRoaXMuZmlsdGVyT3B0aW9uLnNlbGVjdGFibGVJdGVtcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc2VsZWN0YWJsZUl0ZW1zJC5uZXh0KHRoaXMuZmlsdGVyT3B0aW9uLnNlbGVjdGFibGVJdGVtcyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChpc0Z1bmN0aW9uKHRoaXMuZmlsdGVyT3B0aW9uLmdldFNlbGVjdGFibGVGbiQpKSB7XG4gICAgICB0aGlzLmZpbHRlck9wdGlvbi5nZXRTZWxlY3RhYmxlRm4kKCkucGlwZSh0YWtlVW50aWwodGhpcy5jbGVhclN1YnMkKSlcbiAgICAgICAgLnN1YnNjcmliZSgocmVzOiBJS2V5VmFsdWU8YW55PltdKSA9PiB7XG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RhYmxlSXRlbXMkLm5leHQocmVzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0U2VhcmNoV2F0Y2hlciQoKTogdm9pZCB7XG4gICAgIHRoaXMuc2VhcmNoT2JqZWN0JC5waXBlKGRlYm91bmNlVGltZSg1MDApLCB0YWtlVW50aWwodGhpcy5jbGVhclN1YnMkKSlcbiAgICAgLnN1YnNjcmliZSgoc2VhcmNoU3RyOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMub25GaWx0ZXJDbGlja2VkLmVtaXQoe1xuICAgICAgICBmaWx0ZXJDb2x1bW46IHRoaXMuY29sdW1uTmFtZSxcbiAgICAgICAgZmlsdGVyVmFsdWU6IHNlYXJjaFN0cixcbiAgICAgICAgY29sdW1uTmFtZTogdGhpcy5jb2x1bW5OYW1lLnByb3AsXG4gICAgICAgIGZpbHRlclR5cGU6IHRoaXMuZmlsdGVyT3B0aW9uICYmIHRoaXMuZmlsdGVyT3B0aW9uLnR5cGUgfHwgdGhpcy5GSUxURVJfVFlQRVMuQ09OVEFJTlMsXG4gICAgICB9KTtcbiAgICAgfSk7XG4gIH1cbiAgXG4gIHByaXZhdGUgbG9hZERlZmF1bHRSZWZlcmVuY2VJdGVtcygpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGFibGVJdGVtcyQubmV4dChbXG4gICAgICB7IFt0aGlzLmZpbHRlck9wdGlvbi5kaXNwbGF5UHJvcF06ICdTRUxFQ1QnLCBbdGhpcy5maWx0ZXJPcHRpb24uYmluZFByb3BdOiAnJyB9LFxuICAgICAgeyBbdGhpcy5maWx0ZXJPcHRpb24uZGlzcGxheVByb3BdOiAnVHJ1ZScsIFt0aGlzLmZpbHRlck9wdGlvbi5iaW5kUHJvcF06IHRydWUgfSxcbiAgICAgIHsgW3RoaXMuZmlsdGVyT3B0aW9uLmRpc3BsYXlQcm9wXTogJ0ZhbHNlJywgW3RoaXMuZmlsdGVyT3B0aW9uLmJpbmRQcm9wXTogZmFsc2UgfSxcbiAgICBdKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzVXBkYXRlZEZpbHRlckRlc2lnblwiPlxuICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJmaWx0ZXJPcHRpb24/LnR5cGVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJGSUxURVJfSU5QVVRfVFlQRVMuVEVYVFwiPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkXG4gICAgICAgIGNsYXNzPVwiYXBvbGxvLXRleHQtZmllbGQgdGFibGUtaGVhZGVyLWFwb2xsby10ZXh0LWZpZWxkIHRleHQtc2VhcmNoXCJcbiAgICAgICAgW2Zsb2F0TGFiZWxdPVwiJ2F1dG8nXCJcbiAgICAgID5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VhcmNoVmFsdWVDaGFuZ2VkKClcIlxuICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIHt7IGNvbHVtbk5hbWUuaGVhZGVyIH19XCJcbiAgICAgICAgICBuYW1lPVwic2VhcmNoXCJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwic2VhcmNoQ3RybFwiXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiY2hhbmdlQ29udGFpbnNWYWx1ZSgpXCJcbiAgICAgICAgLz5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiRklMVEVSX0lOUFVUX1RZUEVTLlJFRkVSRU5DRVwiPlxuICAgICAgPG5nLXNlbGVjdFxuICAgICAgICBjbGFzcz1cImFwb2xsby10ZXh0LWZpZWxkIHRhYmxlLWhlYWRlci1hcG9sbG8tdGV4dC1maWVsZFwiXG4gICAgICAgIChjaGFuZ2UpPVwicmVmZXJlbmNlVmFsdWVDaGFuZ2VkKClcIlxuICAgICAgICBbYXBwZW5kVG9dPVwiJ21hdC1jYXJkJ1wiXG4gICAgICAgIFtpdGVtc109XCIoc2VsZWN0YWJsZUl0ZW1zJCB8IGFzeW5jKSB8fCBbXVwiXG4gICAgICAgIFtiaW5kVmFsdWVdPVwiZmlsdGVyT3B0aW9uLmJpbmRQcm9wXCJcbiAgICAgICAgW2JpbmRMYWJlbF09XCJmaWx0ZXJPcHRpb24uZGlzcGxheVByb3BcIlxuICAgICAgICBbbXVsdGlwbGVdPVwiZmFsc2VcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7IGNvbHVtbk5hbWUuaGVhZGVyIH19XCJcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cImZpbHRlclZhbHVlXCJcbiAgICAgID5cbiAgICAgIDwvbmctc2VsZWN0PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIkZJTFRFUl9JTlBVVF9UWVBFUy5DSEVDS0JPWFwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAobWVudU9wZW5lZCk9XCJtYXRNZW51T3BlbmQoKVwiXG4gICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJhY3Rpb25zXCJcbiAgICAgICAgY2xhc3M9XCJkcm9wZG93bi10b2dnbGUgb2RwLXNlY29uZGFyeS1idXR0b25cIlxuICAgICAgPlxuICAgICAgICA8c3Bhbj57eyBjb2x1bW5OYW1lLmhlYWRlciB8fCBjb2x1bW5OYW1lLnByb3AgfCB0aXRsZWNhc2UgfX08L3NwYW4+XG4gICAgICAgIDxtYXQtbWVudVxuICAgICAgICAgICNhY3Rpb25zPVwibWF0TWVudVwiXG4gICAgICAgICAgZm9jdXNGaXJzdEl0ZW09XCJmYWxzZVwiXG4gICAgICAgICAgY2xhc3M9XCJvZGItbWF0LW1lbnUtcGFuZWwgY3VzdG9tLXBhbmVsIGZpbHRlci1wYW5lbFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLXBhbmVsLXBhZGRpbmdcIj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwiZmlsdGVyLXNlYXJjaC1jb250YWluZXJcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhaXNTZWFyY2hCb3hIaWRlXCJcbiAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIHt7IGNvbHVtbk5hbWUuaGVhZGVyIH19XCJcbiAgICAgICAgICAgICAgICBuYW1lPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwic2VhcmNoVGV4dFwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjbGVhci1maWx0ZXItc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInNlYXJjaFRleHQudmFsdWVcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGVhclNlYXJjaCgpXCJcbiAgICAgICAgICAgICAgICA+JiN4MjcxNTs8L3NwYW5cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyU2VsZWN0aW9uKClcIlxuICAgICAgICAgICAgICBjbGFzcz1cImNsZWFyLWFsbFwiXG4gICAgICAgICAgICAgID5DbGVhciBhbGw8L3NwYW5cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxtYXQtc3Bpbm5lclxuICAgICAgICAgICAgICAqbmdJZj1cImlzTG9hZGluZyQgfCBhc3luY1wiXG4gICAgICAgICAgICAgIGNsYXNzPVwibXItMVwiXG4gICAgICAgICAgICAgIFtkaWFtZXRlcl09XCIxNlwiXG4gICAgICAgICAgICA+PC9tYXQtc3Bpbm5lcj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJjdXN0b20tbWF0LW1lbnUtaXRlbVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwibXktMVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYm9sZC10ZXh0XCJcbiAgICAgICAgICAgICAgICAgIFtpbmRldGVybWluYXRlXT1cImlzSW5kZXRlcm1pbmF0ZVwiXG4gICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJpc0FsbFNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJzZWxlY3RBbGxDdHJsXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3RBbGxDaGVja2JveCgpXCJcbiAgICAgICAgICAgICAgICAgID5TZWxlY3QgQWxsPC9tYXQtY2hlY2tib3hcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImN1c3RvbS1tYXQtbWVudS1pdGVtXCJcbiAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgbGV0IGl0ZW0gb2YgKHNlbGVjdGFibGVJdGVtcyQgfCBhc3luYykgfHxcbiAgICAgICAgICAgICAgICAgIGZpbHRlck9wdGlvbi5zZWxlY3RhYmxlSXRlbXMgfHxcbiAgICAgICAgICAgICAgICAgIFtdXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwibXktMVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiaXNJdGVtQ2hlY2tlZChpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInNldENoZWNrZWRWYWx1ZXNUb0ZpbHRlcihpdGVtKVwiXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiaXRlbVtmaWx0ZXJPcHRpb24uZGlzcGxheVByb3BdXCJcbiAgICAgICAgICAgICAgICAgID57eyBpdGVtW2ZpbHRlck9wdGlvbi5kaXNwbGF5UHJvcF0gfX08L21hdC1jaGVja2JveFxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbWF0LW1lbnU+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJGSUxURVJfSU5QVVRfVFlQRVMuREFURV9SQU5HRVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRhdGVSYW5nZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiRklMVEVSX0lOUFVUX1RZUEVTLlNMSURFUlwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpbHRlck9wdGlvbi5maWx0ZXJUZW1wbGF0ZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIGZpbHRlck9wdGlvbi5maWx0ZXJUZW1wbGF0ZTtcbiAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgJGltcGxpY2l0OiB7XG4gICAgICAgICAgICAgICAgZmlsdGVyT3B0aW9uOiBmaWx0ZXJPcHRpb24sXG4gICAgICAgICAgICAgICAgdGhPcHRpb25zOiBmaWx0ZXJPcHRpb24udGhPcHRpb25zXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZmlsdGVyT3B0aW9uLmZpbHRlclRlbXBsYXRlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20tc2xpZGVyIGN1c3RvbS1zbGlkZXItYWxpZ25tZW50XCI+XG4gICAgICAgICAgPG5neC1zbGlkZXIgKHVzZXJDaGFuZ2VFbmQpPVwic2xpZGVyVmFsdWVDaGFuZ2VkKClcIiBbKHZhbHVlKV09XCJzbGlkZXJWYWx1ZU9wdC5taW5TY29yZVwiXG4gICAgICAgICAgICBbKGhpZ2hWYWx1ZSldPVwic2xpZGVyVmFsdWVPcHQubWF4U2NvcmVcIiBbb3B0aW9uc109XCJzbGlkZXJEZWZhdWx0T3B0aW9uc1wiPlxuICAgICAgICAgIDwvbmd4LXNsaWRlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG48bmctY29udGFpbmVyICpuZ0lmPVwiIWlzVXBkYXRlZEZpbHRlckRlc2lnblwiPlxuICA8YSAjbmdiUG9wb3Zlcj1cIm5nYlBvcG92ZXJcIiBbbmdiUG9wb3Zlcl09XCJwb3BUZW1wbGF0ZVwiIFtwbGFjZW1lbnRdPVwiJ2JvdHRvbSdcIiBbYXV0b0Nsb3NlXT1cImZhbHNlXCI+XG4gICAgICA8aSBjbGFzcz1cImZhcyBmYS1maWx0ZXIgZmlsdGVyLWljb25cIj48L2k+XG4gIDwvYT5cbiAgPG5nLXRlbXBsYXRlICNwb3BUZW1wbGF0ZT5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXdpZHRoIHRhYmxlLWNvbC1maWx0ZXItcGFuZWxcIj5cbiAgICAgICAgPG1hdC1pY29uIChjbGljayk9XCJjbG9zZVBvcHVwKClcIiBjbGFzcz1cIm1hdC1pY29uIG1hdGVyaWFsLWljb25zIGNsb3NlLWljb25cIj5jbG9zZTwvbWF0LWljb24+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWZvcm1cIj5cbiAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCAqbmdJZj1cIiFmaWx0ZXJPcHRpb24/LnR5cGUgfHwgZmlsdGVyT3B0aW9uLnR5cGUgPT0gRklMVEVSX1RZUEVTLkNPTlRBSU5TXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNhcmQtZnVsbC13aWR0aCBhcG9sbG8tdGV4dC1maWVsZFwiIFtmbG9hdExhYmVsXT1cIidhbHdheXMnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5GaWx0ZXIgQnkge3sgY29sdW1uTmFtZS5oZWFkZXIgfX08L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJFbnRlciB7eyBjb2x1bW5OYW1lLmhlYWRlciB9fVwiIFtmb3JtQ29udHJvbF09XCJmaWx0ZXJWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZUNvbnRhaW5zVmFsdWUoKVwiPlxuICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbCAqbmdJZj1cImZpbHRlck9wdGlvbj8udHlwZSAmJiBmaWx0ZXJPcHRpb24/LnR5cGUgIT0gRklMVEVSX1RZUEVTLkNPTlRBSU5TXCI+RmlsdGVyIEJ5XG4gICAgICAgICAgICAgICAgICAgICAge3tjb2x1bW5OYW1lLmhlYWRlciB9fTwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImZpbHRlck9wdGlvbj8udHlwZSA9PT0gRklMVEVSX1RZUEVTLklOXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJzZWFyY2hcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gbmdGb3JtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaGJhci13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJzdmctaWNvbiBmYS1zb2xpZCBmYS1tYWduaWZ5aW5nLWdsYXNzXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCByZXF1aXJlZCBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJzZWFyY2hcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJ7ICdtdWx0aS1zZWxlY3Qtc2VjdGlvbic6IGZpbHRlck9wdGlvbi5zZWxlY3RhYmxlSXRlbXM/Lmxlbmd0aD42IH1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBmaWx0ZXJPcHRpb24uc2VsZWN0YWJsZUl0ZW1zIHwgZmlsdGVyQnlQcm9wOiBmaWx0ZXJPcHRpb24uZGlzcGxheVByb3A6ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXktMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveCBbY2hlY2tlZF09XCJpc0l0ZW1DaGVja2VkKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZXRDaGVja2VkVmFsdWVzVG9GaWx0ZXIoaXRlbSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtW2ZpbHRlck9wdGlvbi5kaXNwbGF5UHJvcF19fTwvbWF0LWNoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImZpbHRlck9wdGlvbj8udHlwZSA9PT0gRklMVEVSX1RZUEVTLkJFVFdFRU5cIiBjbGFzcz1cImZpbHRlci1pdGVtXCIgZnhMYXlvdXQ9XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBdPVwiZGF0ZVJhbmdlRm9ybUdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFwb2xsby10ZXh0LWZpZWxkIGRhdGUtcGlja2VyLWZpZWxkXCIgZnhMYXlvdXQ9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtyZWFkb25seV09XCJ0cnVlXCIgbWF0SW5wdXQgcmVxdWlyZWQgKG5nTW9kZWxDaGFuZ2UpPVwic2V0RGF0ZVZhbHVlKCdzdGFydERhdGUnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImlucHV0LWVsZW1lbnRcIiBbbWF0RGF0ZXBpY2tlcl09XCJwaWNrZXIxXCIgW3BsYWNlaG9sZGVyXT1cIidTdGFydCBEYXRlJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzdGFydERhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJwaWNrZXIxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZGF0ZXBpY2tlci10b2dnbGVcIj48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyICNwaWNrZXIxPjwvbWF0LWRhdGVwaWNrZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXBvbGxvLXRleHQtZmllbGQgZGF0ZS1waWNrZXItZmllbGRcIiBmeExheW91dD1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW3JlYWRvbmx5XT1cInRydWVcIiBtYXRJbnB1dCByZXF1aXJlZCAobmdNb2RlbENoYW5nZSk9XCJzZXREYXRlVmFsdWUoJ2VuZERhdGUnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImlucHV0LWVsZW1lbnRcIiBbbWF0RGF0ZXBpY2tlcl09XCJwaWNrZXIyXCIgW3BsYWNlaG9sZGVyXT1cIidFbmQgRGF0ZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZW5kRGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cInBpY2tlcjJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkYXRlcGlja2VyLXRvZ2dsZVwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI3BpY2tlcjI+PC9tYXQtZGF0ZXBpY2tlcj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmaWx0ZXJPcHRpb24/LnR5cGUgPT09IEZJTFRFUl9JTlBVVF9UWVBFUy5DSEVDS0JPWFwiIGNsYXNzPVwiZmlsdGVyLWl0ZW1cIiBmeExheW91dD1cInJvd1wiPlxuICAgICAgICAgIDxidXR0b24gKG1lbnVPcGVuZWQpPVwibWF0TWVudU9wZW5kKClcIiBtYXQtcmFpc2VkLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwiYWN0aW9uc1wiXG4gICAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duLXRvZ2dsZSBvZHAtc2Vjb25kYXJ5LWJ1dHRvblwiPlxuICAgICAgICAgICAgPHNwYW4+e3tnZXRDaGVja0JveHNWYWx1ZT8/IGNvbHVtbk5hbWUuaGVhZGVyIHx8IGNvbHVtbk5hbWUucHJvcCB8IHRpdGxlY2FzZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxtYXQtbWVudSAjYWN0aW9ucz1cIm1hdE1lbnVcIiBmb2N1c0ZpcnN0SXRlbT1cImZhbHNlXCIgY2xhc3M9XCJvZGItbWF0LW1lbnUtcGFuZWwgY3VzdG9tLXBhbmVsIGZpbHRlci1wYW5lbFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLXBhbmVsLXBhZGRpbmdcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbHRlci1zZWFyY2gtY29udGFpbmVyXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0ICpuZ0lmPVwiIWlzU2VhcmNoQm94SGlkZVwiIHJlcXVpcmVkIG1hdElucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2gge3sgY29sdW1uTmFtZS5oZWFkZXIgfX1cIiBuYW1lPVwic2VhcmNoXCIgW2Zvcm1Db250cm9sXT1cInNlYXJjaFRleHRcIiAvPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjbGVhci1maWx0ZXItc2VhcmNoXCIgKm5nSWY9XCJzZWFyY2hUZXh0LnZhbHVlXCIgKGNsaWNrKT1cImNsZWFyU2VhcmNoKClcIj4mI3gyNzE1Ozwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gKGNsaWNrKT1cImNsZWFyU2VsZWN0aW9uKClcIiBjbGFzcz1cImNsZWFyLWFsbFwiPkNsZWFyIGFsbDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8bWF0LXNwaW5uZXIgKm5nSWY9XCJpc0xvYWRpbmckIHwgYXN5bmNcIiBjbGFzcz1cIm1yLTFcIiBbZGlhbWV0ZXJdPVwiMTZcIj48L21hdC1zcGlubmVyPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20tbWF0LW1lbnUtaXRlbVwiIGNsYXNzPVwibXktMVwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggY2xhc3M9XCJib2xkLXRleHRcIiBbaW5kZXRlcm1pbmF0ZV09XCJpc0luZGV0ZXJtaW5hdGVcIiBbY2hlY2tlZF09XCJpc0FsbFNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwic2VsZWN0QWxsQ3RybFwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwic2VsZWN0QWxsQ2hlY2tib3goKVwiPlNlbGVjdCBBbGw8L21hdC1jaGVja2JveD5cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLW1hdC1tZW51LWl0ZW1cIiAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICBsZXQgaXRlbSBvZiAoc2VsZWN0YWJsZUl0ZW1zJCB8IGFzeW5jKSB8fFxuICAgICAgICAgICAgICAgICAgZmlsdGVyT3B0aW9uLnNlbGVjdGFibGVJdGVtcyB8fFxuICAgICAgICAgICAgICAgICAgW11cbiAgICAgICAgICAgICAgXCIgY2xhc3M9XCJteS0xXCI+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveCAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCIgW2NoZWNrZWRdPVwiaXNJdGVtQ2hlY2tlZChpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZXRDaGVja2VkVmFsdWVzVG9GaWx0ZXIoaXRlbSlcIiBbdGl0bGVdPVwiaXRlbVtmaWx0ZXJPcHRpb24uZGlzcGxheVByb3BdXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICBpdGVtW2ZpbHRlck9wdGlvbi5kaXNwbGF5UHJvcF0gfX08L21hdC1jaGVja2JveD5cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPG1hdC1jYXJkLWFjdGlvbnM+XG4gICAgICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cImlzRm9ybUludmFsaWQoKVwiIChjbGljayk9XCJjb2x1bW5GaWx0ZXJDbGlja2VkKClcIiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiPjxpXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYS1zb2xpZCBmYS1tYWduaWZ5aW5nLWdsYXNzXCI+PC9pPiBTZWFyY2g8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY29sdW1uRmlsdGVyUmVzZXRDbGlja2VkKClcIiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiPjxpIGNsYXNzPVwiZmFzIGZhLXJlZG9cIj48L2k+XG4gICAgICAgICAgICAgICAgICBDbGVhcjwvYnV0dG9uPlxuICAgICAgICAgIDwvbWF0LWNhcmQtYWN0aW9ucz5cbiAgICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG48bmctdGVtcGxhdGUgI2RhdGVSYW5nZVRlbXBsYXRlPlxuICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cImFjdGlvbnNcIiBjbGFzcz1cImRyb3Bkb3duLXRvZ2dsZSBvZHAtc2Vjb25kYXJ5LWJ1dHRvblwiPlxuICAgICAgICA8c3Bhbj57eyAoY29sdW1uTmFtZS5oZWFkZXIgfHwgY29sdW1uTmFtZS5wcm9wKSB8IHRpdGxlY2FzZX19PC9zcGFuPlxuICAgICAgICA8bWF0LW1lbnUgI2FjdGlvbnM9XCJtYXRNZW51XCIgZm9jdXNGaXJzdEl0ZW09XCJmYWxzZVwiIGNsYXNzPVwiZGF0ZS1yYW5nZS1wYW5lbFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1pdGVtXCIgZnhMYXlvdXQ9XCJyb3dcIiBbZm9ybUdyb3VwXT1cImRhdGVSYW5nZUZvcm1Hcm91cFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcG9sbG8tdGV4dC1maWVsZCBjdXN0b20tZGF0ZS1waWNrZXItZmllbGRcIiBmeExheW91dD1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW3JlYWRvbmx5XT1cInRydWVcIiAoY2xpY2spPVwicGlja2VyMS5vcGVuKCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIiBbbWF4XT1cImRhdGVSYW5nZUZvcm1Hcm91cC5jb250cm9sc1snZW5kRGF0ZSddLnZhbHVlXCIgbWF0SW5wdXQgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNldERhdGVWYWx1ZSgnc3RhcnREYXRlJylcIiBjbGFzcz1cImN1c3RvbS1kYXRlLWZpZWxkXCIgW21hdERhdGVwaWNrZXJdPVwicGlja2VyMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0Zyb20gRGF0ZSdcIiBmb3JtQ29udHJvbE5hbWU9XCJzdGFydERhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJwaWNrZXIxXCIgY2xhc3M9XCJkYXRlcGlja2VyLXRvZ2dsZVwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI3BpY2tlcjE+PC9tYXQtZGF0ZXBpY2tlcj5cblxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcG9sbG8tdGV4dC1maWVsZCBjdXN0b20tZGF0ZS1waWNrZXItZmllbGRcIiBmeExheW91dD1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgKGNsaWNrKT1cInBpY2tlcjIub3BlbigpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XCIgW3JlYWRvbmx5XT1cInRydWVcIiBtYXRJbnB1dCByZXF1aXJlZCAobmdNb2RlbENoYW5nZSk9XCJzZXREYXRlVmFsdWUoJ2VuZERhdGUnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImN1c3RvbS1kYXRlLWZpZWxkXCIgW21pbl09XCJkYXRlUmFuZ2VGb3JtR3JvdXAuY29udHJvbHNbJ3N0YXJ0RGF0ZSddLnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttYXREYXRlcGlja2VyXT1cInBpY2tlcjJcIiBbcGxhY2Vob2xkZXJdPVwiJ1RvIERhdGUnXCIgZm9ybUNvbnRyb2xOYW1lPVwiZW5kRGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cInBpY2tlcjJcIiBjbGFzcz1cImRhdGVwaWNrZXItdG9nZ2xlXCI+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlciAjcGlja2VyMj48L21hdC1kYXRlcGlja2VyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxidXR0b24gdGl0bGU9XCJDbGVhciBhbGxcIiBbZGlzYWJsZWRdPVwiIWlzQ2xlYXJFbmFibGVkXCIgY2xhc3M9XCJkYXRlLWNsZWFyXCIgKGNsaWNrKT1cImNsZWFyRGF0ZUZpbHRlcigpXCIgbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZW0gY2xhc3M9XCJmYXMgZmEtYnJvb21cIj48L2VtPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImZpbHRlck9wdGlvbi5kYXRlUmFuZ2VJdGVtc1wiPlxuICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1ncm91cCBuYW1lPVwiZm9udFN0eWxlXCIgYXJpYS1sYWJlbD1cIkZvbnQgU3R5bGVcIiBbdmFsdWVdPVwiZGF0ZVJhbmdlVmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImRhdGVSYW5nZUNsaWNrKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmlsdGVyT3B0aW9uLmRhdGVSYW5nZUl0ZW1zLml0ZW1zXCIgdmFsdWU9XCJ7eyBpdGVtIH19XCI+XG4gICAgICAgICAgICAgICAgICAgICAge3sgaXRlbSB9fSB7eyBmaWx0ZXJPcHRpb24uZGF0ZVJhbmdlSXRlbXMudW5pdCB9fSAmbmJzcDtcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbWF0LW1lbnU+XG4gICAgPC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuIl19
|