{"_id":"@belomonte/async-modal-ngx","_rev":"11-3755da9456751ef4163e418bb57851f4","name":"@belomonte/async-modal-ngx","dist-tags":{"latest":"21.0.0"},"versions":{"0.0.1":{"name":"@belomonte/async-modal-ngx","version":"0.0.1","_id":"@belomonte/async-modal-ngx@0.0.1","maintainers":[{"name":"anarcanudos","email":"canudos.sudestino@gmail.com"}],"dist":{"shasum":"992aa1c6b08c77c490cb225876faa0ccc901243f","tarball":"https://registry.npmjs.org/@belomonte/async-modal-ngx/-/async-modal-ngx-0.0.1.tgz","fileCount":19,"integrity":"sha512-CHaiCDZ+SXUPbrkuA5rudcfhRp1WUx8ePcPZiHEISpiympabWBB/ip5G7prx5E0e8KwXEtDrVSG95gFPLSojIg==","signatures":[{"sig":"MEUCIDNluwkNU4+rYiLqqT7iQ0v7MEf1+EkE/MLwalzDtFxcAiEA6b2+iYvy9upHvNR5XZS1S1WmBMZQQp6yxO+M11EEHQs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":55969},"module":"fesm2022/belomonte-async-modal-ngx.mjs","exports":{".":{"esm":"./esm2022/belomonte-async-modal-ngx.mjs","types":"./index.d.ts","default":"./fesm2022/belomonte-async-modal-ngx.mjs","esm2022":"./esm2022/belomonte-async-modal-ngx.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"f4193cea64a6831144e579888cbfca3f9983f9e0","typings":"index.d.ts","_npmUser":{"name":"anarcanudos","email":"canudos.sudestino@gmail.com"},"_npmVersion":"10.2.4","description":"> Mateus 5 > > ⁴³ Ouvistes que foi dito: Amarás o teu próximo, e odiarás o teu inimigo. ⁴⁴ Eu, porém, vos digo: Amai a vossos inimigos, bendizei os que vos maldizem, fazei bem aos que vos odeiam, e orai pelos que vos maltratam e vos perseguem; para que se","directories":{},"sideEffects":false,"_nodeVersion":"20.11.0","dependencies":{"tslib":"^2.3.0"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":"^17.1.0","@angular/common":"^17.1.0"},"_npmOperationalInternal":{"tmp":"tmp/async-modal-ngx_0.0.1_1708337661055_0.8259568147930509","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"@belomonte/async-modal-ngx","version":"0.0.2","_id":"@belomonte/async-modal-ngx@0.0.2","maintainers":[{"name":"anarcanudos","email":"canudos.sudestino@gmail.com"}],"dist":{"shasum":"6c640085f47c54e8c2f37fff5e9c926326856172","tarball":"https://registry.npmjs.org/@belomonte/async-modal-ngx/-/async-modal-ngx-0.0.2.tgz","fileCount":19,"integrity":"sha512-QfvkCm+ALjjr9psq5jFbThqRMd/4JR1Bkvzle1gsoA3eS4lEAR0Rq9Rrbp9RygVJ6aM7JAn/gq93PHTXx3sQWg==","signatures":[{"sig":"MEUCIQDpbFsxC1COzwR9GOYjHUopPILqxZPYolEp6psd8l1vAAIgQcxruWv9e8GhqldvPZ3uMwR0TcuUkRBdRzhP/jtVueg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":59148},"module":"fesm2022/belomonte-async-modal-ngx.mjs","exports":{".":{"esm":"./esm2022/belomonte-async-modal-ngx.mjs","types":"./index.d.ts","default":"./fesm2022/belomonte-async-modal-ngx.mjs","esm2022":"./esm2022/belomonte-async-modal-ngx.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"ba06ed2f136c499552977ec07e6d1cd367cf41aa","typings":"index.d.ts","_npmUser":{"name":"anarcanudos","email":"canudos.sudestino@gmail.com"},"_npmVersion":"10.2.4","description":"> Mateus 5 > > ⁴³ Ouvistes que foi dito: Amarás o teu próximo, e odiarás o teu inimigo. ⁴⁴ Eu, porém, vos digo: Amai a vossos inimigos, bendizei os que vos maldizem, fazei bem aos que vos odeiam, e orai pelos que vos maltratam e vos perseguem; para que se","directories":{},"sideEffects":false,"_nodeVersion":"20.11.0","dependencies":{"tslib":"^2.3.0"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":"^17.1.0","@angular/common":"^17.1.0"},"_npmOperationalInternal":{"tmp":"tmp/async-modal-ngx_0.0.2_1708359032196_0.06579821974274136","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"@belomonte/async-modal-ngx","version":"0.0.3","author":{"name":"António Conselheiro"},"license":"Unlicense","_id":"@belomonte/async-modal-ngx@0.0.3","maintainers":[{"name":"anarcanudos","email":"canudos.sudestino@gmail.com"}],"homepage":"https://github.com/antonioconselheiro/async-modal-ngx#readme","bugs":{"url":"https://github.com/antonioconselheiro/async-modal-ngx/issues"},"dist":{"shasum":"390b7b6c0f599cc09f596f266a1bd3e789cb73fc","tarball":"https://registry.npmjs.org/@belomonte/async-modal-ngx/-/async-modal-ngx-0.0.3.tgz","fileCount":19,"integrity":"sha512-aNNayrh7AHq54PRli5t/du/922OcLX49Rn3oT7bfOP3E0Do5PnDDJnjbpPVqv6tMfLHmUid+1c9yX4PJV2wN0g==","signatures":[{"sig":"MEUCIQDLDDya5Ny8xbiZozofFFkzWGkmHuyz+Pz09m7mzMF/OQIgbMWH3H4NX+kdKZjqTPrzdNPx2x5/2uXb8vPjqrZ2mcE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":65246},"module":"fesm2022/belomonte-async-modal-ngx.mjs","exports":{".":{"esm":"./esm2022/belomonte-async-modal-ngx.mjs","types":"./index.d.ts","default":"./fesm2022/belomonte-async-modal-ngx.mjs","esm2022":"./esm2022/belomonte-async-modal-ngx.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"384b136f7c485006c27786034cc553ff2ca6b978","typings":"index.d.ts","_npmUser":{"name":"anarcanudos","email":"canudos.sudestino@gmail.com"},"repository":{"url":"git+https://github.com/antonioconselheiro/async-modal-ngx.git","type":"git"},"_npmVersion":"10.2.4","description":"angular customizable modal that allows to asynchronously wait for user action and receive return data","directories":{},"sideEffects":false,"_nodeVersion":"20.11.0","dependencies":{"tslib":"^2.3.0"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":"^17.1.0","@angular/common":"^17.1.0"},"_npmOperationalInternal":{"tmp":"tmp/async-modal-ngx_0.0.3_1708431282673_0.1010198259089341","host":"s3://npm-registry-packages"}},"0.0.4":{"name":"@belomonte/async-modal-ngx","version":"0.0.4","author":{"name":"António Conselheiro"},"license":"Unlicense","_id":"@belomonte/async-modal-ngx@0.0.4","maintainers":[{"name":"anarcanudos","email":"canudos.sudestino@gmail.com"}],"homepage":"https://github.com/antonioconselheiro/async-modal-ngx#readme","bugs":{"url":"https://github.com/antonioconselheiro/async-modal-ngx/issues"},"dist":{"shasum":"529a073bc9668d517457fc19b4ea2033561513fc","tarball":"https://registry.npmjs.org/@belomonte/async-modal-ngx/-/async-modal-ngx-0.0.4.tgz","fileCount":19,"integrity":"sha512-/vMG3lWDLP6GFZWjceJ07jAmyj6Q3pt51coyiP1Y9oVhlEqxFnwbRKuctb1y46wTn6IEouPN7G+F5IhEB904pg==","signatures":[{"sig":"MEQCIH6oQJjiJnYqKFDTMTbY/syEIyJvo5oCuVSch4pcjgPOAiAQmz2ESR+qMSxr1DIFSA3csylBuHEJ3i61kOOlOPv3rw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":66531},"module":"fesm2022/belomonte-async-modal-ngx.mjs","exports":{".":{"esm":"./esm2022/belomonte-async-modal-ngx.mjs","types":"./index.d.ts","default":"./fesm2022/belomonte-async-modal-ngx.mjs","esm2022":"./esm2022/belomonte-async-modal-ngx.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"0fde077ee7574f0559b0a5ae0d75a8f81c1b4053","typings":"index.d.ts","_npmUser":{"name":"anarcanudos","email":"canudos.sudestino@gmail.com"},"repository":{"url":"git+https://github.com/antonioconselheiro/async-modal-ngx.git","type":"git"},"_npmVersion":"10.2.4","description":"angular customizable modal that allows to asynchronously wait for user action and receive return data","directories":{},"sideEffects":false,"_nodeVersion":"20.11.0","dependencies":{"tslib":"^2.3.0"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":"^17.1.0","@angular/common":"^17.1.0"},"_npmOperationalInternal":{"tmp":"tmp/async-modal-ngx_0.0.4_1708532289084_0.8887169475047287","host":"s3://npm-registry-packages"}},"0.1.0":{"name":"@belomonte/async-modal-ngx","version":"0.1.0","author":{"name":"António Conselheiro"},"license":"Unlicense","_id":"@belomonte/async-modal-ngx@0.1.0","maintainers":[{"name":"anarcanudos","email":"canudos.sudestino@gmail.com"}],"homepage":"https://github.com/antonioconselheiro/async-modal-ngx#readme","bugs":{"url":"https://github.com/antonioconselheiro/async-modal-ngx/issues"},"dist":{"shasum":"82677e8d3c9fdf123cfb72aa05a0a1b34b2e0cce","tarball":"https://registry.npmjs.org/@belomonte/async-modal-ngx/-/async-modal-ngx-0.1.0.tgz","fileCount":19,"integrity":"sha512-lWJ6Fpz1S9MXooS83lBJ081/TA8Fan7334FPbQcvVzwV5TZ4spJZPykDGoKy2jDwTLjkWoxaEiRhW4SNu65XGA==","signatures":[{"sig":"MEQCID6EH56T7SEq+E5782gd+VVEXJHLSqiu0ZZzh1L07BKoAiBcLMyxRfHVwZt0NX82SyfjvfQfJW8d3CLbLow9ndlPJQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":69501},"module":"fesm2022/belomonte-async-modal-ngx.mjs","exports":{".":{"esm":"./esm2022/belomonte-async-modal-ngx.mjs","types":"./index.d.ts","default":"./fesm2022/belomonte-async-modal-ngx.mjs","esm2022":"./esm2022/belomonte-async-modal-ngx.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"945af0bb5a72b8bb8db468918c59b91a7108564f","typings":"index.d.ts","_npmUser":{"name":"anarcanudos","email":"canudos.sudestino@gmail.com"},"repository":{"url":"git+https://github.com/antonioconselheiro/async-modal-ngx.git","type":"git"},"_npmVersion":"10.5.0","description":"angular customizable modal that allows to asynchronously wait for user action and receive return data","directories":{},"sideEffects":false,"_nodeVersion":"20.12.2","dependencies":{"tslib":"^2.3.0"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":"^17.1.0","@angular/common":"^17.1.0"},"_npmOperationalInternal":{"tmp":"tmp/async-modal-ngx_0.1.0_1717341123645_0.5981038579293259","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"@belomonte/async-modal-ngx","version":"1.0.0","author":{"name":"António Conselheiro"},"license":"Unlicense","_id":"@belomonte/async-modal-ngx@1.0.0","maintainers":[{"name":"anarcanudos","email":"canudos.sudestino@gmail.com"}],"homepage":"https://github.com/antonioconselheiro/async-modal-ngx#readme","bugs":{"url":"https://github.com/antonioconselheiro/async-modal-ngx/issues"},"dist":{"shasum":"d204e5e4863c3cdbea2b2ba6aa01ddd2ba1914d5","tarball":"https://registry.npmjs.org/@belomonte/async-modal-ngx/-/async-modal-ngx-1.0.0.tgz","fileCount":19,"integrity":"sha512-twLBMRAywmrWzUxQ96jF0mS+JzCzjVjtWCdqsZghhuNtoUbJQcABo7AZRC5P+xLuAeDk0mBqtjTKk4TLhia7nA==","signatures":[{"sig":"MEUCIHyYuuHVQ4g+af3UglbEbv5YrNz6iPvXIa2gH2/2tHhXAiEA0RMWBv+ECYC5wUVDX4h/IWdW+uupTnD3mU1QdgIUTto=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":69501},"module":"fesm2022/belomonte-async-modal-ngx.mjs","exports":{".":{"esm":"./esm2022/belomonte-async-modal-ngx.mjs","types":"./index.d.ts","default":"./fesm2022/belomonte-async-modal-ngx.mjs","esm2022":"./esm2022/belomonte-async-modal-ngx.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"7bb848808e648c2dbaa0d57b603ae5ebe9f15303","typings":"index.d.ts","_npmUser":{"name":"anarcanudos","email":"canudos.sudestino@gmail.com"},"repository":{"url":"git+https://github.com/antonioconselheiro/async-modal-ngx.git","type":"git"},"_npmVersion":"10.5.0","description":"angular customizable modal that allows to asynchronously wait for user action and receive return data","directories":{},"sideEffects":false,"_nodeVersion":"20.12.2","dependencies":{"tslib":"^2.3.0"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":"^18.1.3","@angular/common":"^18.1.3"},"_npmOperationalInternal":{"tmp":"tmp/async-modal-ngx_1.0.0_1722951778991_0.4146226469594292","host":"s3://npm-registry-packages"}},"18.1.0":{"name":"@belomonte/async-modal-ngx","version":"18.1.0","author":{"name":"António Conselheiro"},"license":"Ungovernable","_id":"@belomonte/async-modal-ngx@18.1.0","maintainers":[{"name":"anarcanudos","email":"canudos.sudestino@gmail.com"}],"homepage":"https://github.com/antonioconselheiro/async-modal-ngx#readme","bugs":{"url":"https://github.com/antonioconselheiro/async-modal-ngx/issues"},"dist":{"shasum":"8e83fe90b73289aeb82fe131aa3b8732effdb4b8","tarball":"https://registry.npmjs.org/@belomonte/async-modal-ngx/-/async-modal-ngx-18.1.0.tgz","fileCount":19,"integrity":"sha512-1pweBBClKToXRpOiris9TuE9wL0PPxl9nbotTfF33ATpYGyWzBKquw1qzLSAdiDcbcnVq5KsdtWlWnaqxilaRw==","signatures":[{"sig":"MEQCIHqxIbdx2Iqov9AIq03g9oSb7b3nO7QE0jHcyPjyv2rdAiASSUNoaWc0cH8g51LOwVBk54ptKfq0hTDmd4pDHWoXbg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71641},"module":"fesm2022/belomonte-async-modal-ngx.mjs","exports":{".":{"esm":"./esm2022/belomonte-async-modal-ngx.mjs","types":"./index.d.ts","default":"./fesm2022/belomonte-async-modal-ngx.mjs","esm2022":"./esm2022/belomonte-async-modal-ngx.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"442a0fc568e078d87cd0c6d39f8884fe65e15f75","typings":"index.d.ts","_npmUser":{"name":"anarcanudos","email":"canudos.sudestino@gmail.com"},"repository":{"url":"git+https://github.com/antonioconselheiro/async-modal-ngx.git","type":"git"},"_npmVersion":"10.8.2","description":"angular customizable modal that allows to asynchronously wait for user action and receive return data","directories":{},"sideEffects":false,"_nodeVersion":"20.18.2","dependencies":{"tslib":"^2.3.0"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":"^18.1.3","@angular/common":"^18.1.3"},"_npmOperationalInternal":{"tmp":"tmp/async-modal-ngx_18.1.0_1738186003102_0.8779484511703386","host":"s3://npm-registry-packages-npm-production"}},"18.1.1":{"name":"@belomonte/async-modal-ngx","version":"18.1.1","keywords":["angular","typescript","component","async","asynchronous","modal","dialog","ngx"],"author":{"name":"António Conselheiro"},"license":"Ungovernable","_id":"@belomonte/async-modal-ngx@18.1.1","maintainers":[{"name":"anarcanudos","email":"canudos.sudestino@gmail.com"}],"homepage":"https://github.com/antonioconselheiro/async-modal-ngx#readme","bugs":{"url":"https://github.com/antonioconselheiro/async-modal-ngx/issues"},"dist":{"shasum":"8c87899838f9ea1c16d8d8f57efe5b5101e4a44f","tarball":"https://registry.npmjs.org/@belomonte/async-modal-ngx/-/async-modal-ngx-18.1.1.tgz","fileCount":19,"integrity":"sha512-O96VPqv/sTnpiAjf1D9KFeh4lWyHG13nTpOcOZYy5Xqzmfd0hsxlWAn3ZeOeZ/Sx312NhtjeIOKvqrQ0nwndlw==","signatures":[{"sig":"MEQCIHSXdiBJBFarZbGDgwC6sNH0O/JyWWSML2er0WYNmb0pAiAhNP83aaSIY09AM3Lh0QAssZ2Cti0wnzbPUsKHkPCrqw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71782},"module":"fesm2022/belomonte-async-modal-ngx.mjs","exports":{".":{"esm":"./esm2022/belomonte-async-modal-ngx.mjs","types":"./index.d.ts","default":"./fesm2022/belomonte-async-modal-ngx.mjs","esm2022":"./esm2022/belomonte-async-modal-ngx.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"16fe0e2292ab224f5d748620cd4b72280e4ac98b","typings":"index.d.ts","_npmUser":{"name":"anarcanudos","email":"canudos.sudestino@gmail.com"},"repository":{"url":"git+https://github.com/antonioconselheiro/async-modal-ngx.git","type":"git"},"_npmVersion":"10.8.2","description":"angular customizable modal that allows to asynchronously wait for user action and receive return data","directories":{},"sideEffects":false,"_nodeVersion":"20.18.2","dependencies":{"tslib":"^2.3.0"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":"^18.1.3","@angular/common":"^18.1.3"},"_npmOperationalInternal":{"tmp":"tmp/async-modal-ngx_18.1.1_1738346011527_0.8067245983047238","host":"s3://npm-registry-packages-npm-production"}},"19.0.0":{"name":"@belomonte/async-modal-ngx","version":"19.0.0","keywords":["angular","typescript","component","async","asynchronous","modal","dialog","ngx"],"author":{"name":"António Conselheiro"},"license":"Ungovernable","_id":"@belomonte/async-modal-ngx@19.0.0","maintainers":[{"name":"anarcanudos","email":"canudos.sudestino@gmail.com"}],"homepage":"https://github.com/antonioconselheiro/async-modal-ngx#readme","bugs":{"url":"https://github.com/antonioconselheiro/async-modal-ngx/issues"},"dist":{"shasum":"4a1dc25628f7913730c09566aeee31a837da5795","tarball":"https://registry.npmjs.org/@belomonte/async-modal-ngx/-/async-modal-ngx-19.0.0.tgz","fileCount":11,"integrity":"sha512-VCUuPPxW/OMwMM6C/CzdycdFi2twS81AduwEQ7RxzJVd7YAl3jtobYAcyVSbZxphSrKkONPXH4VMq7/A0nE0vw==","signatures":[{"sig":"MEUCIQCIX3z4hmLUSFbJm4xULlCZ4JXnpm7RvEWH3UugqmKcTgIgRwCRwvLKFlfDpeTL2c6NY87CvD4jWhmMUg+/Kqm00WU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38626},"module":"fesm2022/belomonte-async-modal-ngx.mjs","exports":{".":{"types":"./index.d.ts","default":"./fesm2022/belomonte-async-modal-ngx.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"5d9c49b70db4a805685ebb42a2ac56b16674ff64","typings":"index.d.ts","_npmUser":{"name":"anarcanudos","email":"canudos.sudestino@gmail.com"},"repository":{"url":"git+https://github.com/antonioconselheiro/async-modal-ngx.git","type":"git"},"_npmVersion":"10.9.4","description":"angular customizable modal that allows to asynchronously wait for user action and receive return data","directories":{},"sideEffects":false,"_nodeVersion":"22.21.1","dependencies":{"tslib":"^2.3.0"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":"^19.2.17","@angular/common":"^19.2.17"},"_npmOperationalInternal":{"tmp":"tmp/async-modal-ngx_19.0.0_1768297496256_0.8145175008715544","host":"s3://npm-registry-packages-npm-production"}},"20.0.0":{"name":"@belomonte/async-modal-ngx","version":"20.0.0","keywords":["angular","typescript","component","async","asynchronous","modal","dialog","ngx"],"author":{"name":"António Conselheiro"},"license":"Ungovernable","_id":"@belomonte/async-modal-ngx@20.0.0","maintainers":[{"name":"anarcanudos","email":"canudos.sudestino@gmail.com"}],"homepage":"https://github.com/antonioconselheiro/async-modal-ngx#readme","bugs":{"url":"https://github.com/antonioconselheiro/async-modal-ngx/issues"},"dist":{"shasum":"bb20e48064ce0867f1f7eb6a9eda9f338980178c","tarball":"https://registry.npmjs.org/@belomonte/async-modal-ngx/-/async-modal-ngx-20.0.0.tgz","fileCount":5,"integrity":"sha512-7ywniezg6+u3jDPmkVs5NZgwGkFBzc7yFx4Jv3Vx8SfWg8KdUuqrwQDi0POfZIfmnPWtfg9anYiCmaOqzH8I9w==","signatures":[{"sig":"MEUCIENv/zQIHM611ondzad2TiOtZSx/j9ZtbFr2WwSV41tnAiEAu/QLxS8PcMrTtP1PV1AGEO3AOEfYR6/dtN6NswgAsy8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37724},"module":"fesm2022/belomonte-async-modal-ngx.mjs","exports":{".":{"types":"./index.d.ts","default":"./fesm2022/belomonte-async-modal-ngx.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"82a64d845e4417e87525cae84ad0922cc56d340b","typings":"index.d.ts","_npmUser":{"name":"anarcanudos","email":"canudos.sudestino@gmail.com"},"repository":{"url":"git+https://github.com/antonioconselheiro/async-modal-ngx.git","type":"git"},"_npmVersion":"10.9.4","description":"angular customizable modal that allows to asynchronously wait for user action and receive return data","directories":{},"sideEffects":false,"_nodeVersion":"22.21.1","dependencies":{"tslib":"^2.3.0"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":"^20.3.16","@angular/common":"^20.3.16"},"_npmOperationalInternal":{"tmp":"tmp/async-modal-ngx_20.0.0_1768298840149_0.6206096253906297","host":"s3://npm-registry-packages-npm-production"}},"21.0.0":{"name":"@belomonte/async-modal-ngx","version":"21.0.0","license":"Ungovernable","author":{"name":"António Conselheiro"},"description":"angular customizable modal that allows to asynchronously wait for user action and receive return data","peerDependencies":{"@angular/common":"^21.0.8","@angular/core":"^21.0.8"},"keywords":["angular","typescript","component","async","asynchronous","modal","dialog","ngx"],"dependencies":{"tslib":"^2.3.0"},"repository":{"type":"git","url":"git+https://github.com/antonioconselheiro/async-modal-ngx.git"},"bugs":{"url":"https://github.com/antonioconselheiro/async-modal-ngx/issues"},"homepage":"https://github.com/antonioconselheiro/async-modal-ngx#readme","sideEffects":false,"module":"fesm2022/belomonte-async-modal-ngx.mjs","typings":"types/belomonte-async-modal-ngx.d.ts","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./types/belomonte-async-modal-ngx.d.ts","default":"./fesm2022/belomonte-async-modal-ngx.mjs"}},"_id":"@belomonte/async-modal-ngx@21.0.0","gitHead":"993be03d9ae27bcede1c476ef5d354d9821389ce","_nodeVersion":"22.21.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-hLJYRISbwlKEFugI+CAdpiYDVdNWdZvMOXWLafnc5rFHBj3co7gmfbYJrNEdoZ4D1xuNd8EfZnSk9PaSzwFuyA==","shasum":"c15ad362b95d71cbfca5b7ad34f5f31064a59c7a","tarball":"https://registry.npmjs.org/@belomonte/async-modal-ngx/-/async-modal-ngx-21.0.0.tgz","fileCount":5,"unpackedSize":37764,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICpu3U6pWc5kUBD3CkxOe7zntcLKB8RewYjTwGp1n6aOAiAa3ldsCrG3vwjujCjqgCBXR1LeuHGF02x5bQtVs++XZg=="}]},"_npmUser":{"name":"anarcanudos","email":"canudos.sudestino@gmail.com"},"directories":{},"maintainers":[{"name":"anarcanudos","email":"canudos.sudestino@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/async-modal-ngx_21.0.0_1768299646472_0.06874086296554749"},"_hasShrinkwrap":false}},"time":{"created":"2024-02-19T10:14:20.941Z","modified":"2026-01-13T10:20:46.851Z","0.0.1":"2024-02-19T10:14:21.208Z","0.0.2":"2024-02-19T16:10:32.365Z","0.0.3":"2024-02-20T12:14:42.837Z","0.0.4":"2024-02-21T16:18:09.243Z","0.1.0":"2024-06-02T15:12:03.800Z","1.0.0":"2024-08-06T13:43:00.204Z","18.1.0":"2025-01-29T21:26:43.316Z","18.1.1":"2025-01-31T17:53:31.817Z","19.0.0":"2026-01-13T09:44:56.399Z","20.0.0":"2026-01-13T10:07:20.367Z","21.0.0":"2026-01-13T10:20:46.614Z"},"bugs":{"url":"https://github.com/antonioconselheiro/async-modal-ngx/issues"},"author":{"name":"António Conselheiro"},"license":"Ungovernable","homepage":"https://github.com/antonioconselheiro/async-modal-ngx#readme","keywords":["angular","typescript","component","async","asynchronous","modal","dialog","ngx"],"repository":{"type":"git","url":"git+https://github.com/antonioconselheiro/async-modal-ngx.git"},"description":"angular customizable modal that allows to asynchronously wait for user action and receive return data","maintainers":[{"name":"anarcanudos","email":"canudos.sudestino@gmail.com"}],"readme":"> Matthew 5\n>\n> [43] Ye have heard that it hath been said, Thou shalt love thy neighbour, and hate thine enemy. [44] But I say unto you, Love your enemies, bless them that curse you, do good to them that hate you, and pray for them which despitefully use you, and persecute you; [45] that ye may be the children of your Father which is in heaven: **for he maketh his sun to rise on the evil and on the good, and sendeth rain on the just and on the unjust.**\n\n# Asynchronous Modal for Angular (AsyncModalNgx)\n\n[![npm version](https://badge.fury.io/js/@belomonte%2Fasync-modal-ngx.svg)](https://github.com/antonioconselheiro/async-modal-ngx)\n[![Npm Total Downloads](https://img.shields.io/npm/dt/@belomonte/async-modal-ngx.svg)](https://github.com/antonioconselheiro/async-modal-ngx)\n[![Npm Monthly Downloads](https://img.shields.io/npm/dm/@belomonte/async-modal-ngx.svg)](https://github.com/antonioconselheiro/async-modal-ngx)\n\n\nThis library will give you the means to present an angular component on the screen with the possibility of sending data to it before rendering and will also provide an observable to receive data from this component and know when the interaction with it has been completed.\n\nThis library will not offer you style structures, an appearance for the component that will host your modals must be customized in your project.\n\n## Run example\n[Open example app](https://antonioconselheiro.github.io/async-modal-ngx/working-example/browser/)\n\n## Installation\n\n`npm install @belomonte/async-modal-ngx --save`\n\n## How to use\n\nYou must import AsyncModalModule where you gonna render <modal-outlet>. You can put it in `AppModule` or you can create a module for a complex and customized modal. \n\n```typescript\nimport { AsyncModalModule } from '@belomonte/async-modal-ngx';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    AsyncModalModule\n  ]\n})\nexport class AppModule { }\n```\n\nTo create a modal you must extends ModalableDirective as the example below:\n\n```typescript\nimport { ModalableDirective } from '@belomonte/async-modal-ngx';\n\n@Component({\n  selector: 'app-my-modal',\n  templateUrl: './my-modal.component.html',\n  styleUrl: './my-modal.component.scss'\n})\nexport class MyModalComponent extends ModalableDirective<{ name: string }, boolean> {\n\n  name!: string;\n\n  override response = new Subject<boolean | void>();\n  \n  override onInjectData(data: { name: string }): void {\n    this.name = data.name;\n  }\n\n  ok(): void {\n    this.response.next(true);\n    //  close method will complete the response observable\n    this.close();\n  }\n\n  cancel(): void {\n    this.response.next(false);\n    this.close();\n  }\n}\n```\n\nAfter you set <modal-outlet> in your template to render the modal, you can open it like this:\n\n```typescript\nimport { AsyncModalModule, ModalService } from '@belomonte/async-modal-ngx';\n\n@Component({\n  selector: 'app-root',\n  standalone: true,\n  imports: [\n    CommonModule,\n    RouterOutlet,\n    AsyncModalModule\n  ],\n  templateUrl: './app.component.html',\n  styleUrl: './app.component.scss'\n})\nexport class AppComponent {\n\n  pressed: boolean | null = null;\n\n  constructor(\n    private modalService: ModalService,\n    private router: Router\n  ) { }\n\n  open(): void {\n    this.modalService\n      .createModal(MyModalComponent)\n      //  the data send here will be received in onInjectData method\n      .setData({ name: 'user' })\n      //  optional, this will close modal when route changes\n      .setBindToRoute(this.router)\n      //  you can add css classes to modal root\n      .setRootCssClasses([\n        'my-custom-css-class-for-this-specific-instance',\n        'another-class'\n      ])\n      .build()\n      .subscribe({\n        next: response => {\n          this.pressed = response || null;\n          console.info('data received: ', response);\n        },\n        error: error => console.error(error),\n        complete: () => console.info('modal was closed')\n      });\n  }\n}\n```\n\nAlso you can open with a small set of configurations:\n```typescript\nimport { AsyncModalModule, ModalService } from '@belomonte/async-modal-ngx';\n\n@Component({\n  selector: 'app-root',\n  standalone: true,\n  imports: [\n    CommonModule,\n    AsyncModalModule\n  ],\n  templateUrl: './app.component.html',\n  styleUrl: './app.component.scss'\n})\nexport class AppComponent {\n\n  pressed: boolean | null = null;\n\n  constructor(\n    private modalService: ModalService\n  ) { }\n\n  open(): void {\n    this.modalService\n      .createModal(MyModalComponent)\n      .build()\n      .subscribe({\n        next: response => {\n          this.pressed = response || null;\n          console.info('data received: ', response);\n        }\n      });\n  }\n}\n```\n\n## Customize a main modal wrapping ModalOutletComponent\nInstead put the <modal-outlet> directly in app.component, you can create a component to work as your main modal and embed each modal component inside it, as the example below:\n\n```typescript\nimport { Component, HostListener, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { ModalBuilder, ModalOutletComponent } from '@belomonte/async-modal-ngx';\nimport { Subscription } from 'rxjs';\n\n@Component({\n  selector: 'app-main-modal',\n  templateUrl: './main-modal.component.html',\n  styleUrls: ['./main-modal.component.scss']\n})\nexport class MainModalComponent implements OnInit, OnDestroy {\n  \n  @ViewChild(ModalOutletComponent)\n  modal!: ModalOutletComponent;\n\n  title = '';\n  isOpen = false;\n\n  private subscriptions = new Subscription();\n\n  ngOnInit(): void {\n    this.subscribeModalData();\n  }\n\n  ngOnDestroy(): void {\n    this.subscriptions.unsubscribe();\n  }\n  \n  private subscribeModalData(): void {\n    this.subscriptions.add(ModalBuilder.modalInject$.subscribe({\n      next: metadata => {\n        //  casting from unknown\n        const data = Object(metadata.data);\n        if ('title' in data) {\n          this.title = data.title;\n        }\n      }\n    }));\n  }\n\n  @HostListener('document:keydown.escape')\n  close(): void {\n    this.modal.close();\n  }\n}\n```\n\n```html\n<section [class.hidden]=\"!isOpen\" class=\"modal\">\n  <header>\n    <button tabindex=\"1\" (click)=\"close()\" type=\"button\">\n      x\n    </button>\n    <h1>{{title}}</h1>\n  </header>\n  <div>\n    <modal-outlet\n      name=\"headedModal\"\n      (closed)=\"isOpen = false\"\n      (opened)=\"isOpen = true\"\n      showingDisplay=\"flex\"\n    ></modal-outlet>\n  </div>\n</section>\n\n```\n\nAnd then you can call it like this:\n```typescript\n  this.modalService\n    .createModal(MainModalComponent)\n    .setOutletName('headedModal')\n    .build();\n```\n\n## CSS Suggestion\nYou can full customize your modal style, but this is a suggestion from [working example app](https://antonioconselheiro.github.io/async-modal-ngx/working-example/browser/): \n\n```scss\nmodal-outlet {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  background-color: rgba(0,0,0,.1);\n  border: 1px solid;\n  position: fixed;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  z-index: 500;\n\n  > * {\n    margin: 0 auto;\n    display: block;\n    min-width: 200px;\n    background-color: white;\n    border-radius: 15px;\n    padding: 1rem;\n    box-sizing: border-box;\n  }\n}\n\n```\n\n## Donate\nHelp me continue working on tools like this one.\nThere's still a lot of work to do.\n\nLighting donate: <a href=\"lightning:antonioconselheiro@getalby.com\">lightning:antonioconselheiro@getalby.com</a>\n\n![zap me](https://raw.githubusercontent.com/antonioconselheiro/antonioconselheiro/main/img/qrcode-wallet-lighting.png)\n\nBitcoin onchain donate: <a href=\"bitcoin:bc1qrm99lmmpwk7zsh7njpgthw87yvdm38j2lzpq7q\">bc1qrm99lmmpwk7zsh7njpgthw87yvdm38j2lzpq7q</a>\n\n![zap me](https://raw.githubusercontent.com/antonioconselheiro/antonioconselheiro/main/img/qrcode-wallet-bitcoin.png)","readmeFilename":"README.md"}