@formio/angular 5.4.0-rc.2 → 5.5.0-rc.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/15.0.1/ng-packagr/content-v2/sha512/01/e5/e23b89936960de6ad3508f850be720524a6231b49e8520d80bd5f9468e9404dd6ee313e5127d0648608ef8fa2b469c2c0f7c49f89162b05bbcce80461e9c +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/01/f5/4259bfb27e15abda81ea61ae4e2d8f29ef518e099f1d7c8693fa453843a874ee8d04e25a99f4061c0400be1a9f3f1a874a330fcf0a5dba082ca951c8707b +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/03/23/c769271f9bbd8eda9edbc085d8f53d3bb02909ee0a22a3de1c89b7df544beced4e74167af785a6bf25e0c981807e78868d1032267e98cd714e7779902ff9 +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/0c/7a/916bd866cb386cc87b9ea07c40edc23df9d726d1865e6699b42dedfbfb2a8364ced191aa62680a9297d7644cdfa64753b8975cc254c7c581f28bba0acd15 +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/15/a9/1d68fcff615e0cffcaad777402e5642b8a3bd360ad0af813af9691e0b7309038151eac43ae8e67d6b3be5a00cfaea2667e654c24ea55ff4cd2f8b58dc2a7 +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/1d/f9/f8694213d5dd173183df341996413ab4b230954a5cb5fec27b2fe58be33155dca699aa3562b45b88aed867a901c5a8b5242f02d28d55bee5523532679008 +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/21/d0/9bcc3e57b3d1375b9e47de16213e34f68cc10f0eff6bf1776422eeb0888c8deefdedb4d34bbfb5a48a31e3db208d2363f8aa16ee35183a90b382fa888e9f +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/22/f0/5cfa42afa778fe6e8c9d64a24c1a0c66e766ea8737f3336df95c535613589b840b5d7d45cfc0548bb91e69d1ec3acc0055e0d56b19fb05d7de846d1b8b43 +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/3a/b3/f51b230d4fc92fcc2a671feb65e5d1995435fd44aeede5840708854fc200fc6e885145882b27d2e8967b1dcc1a4558ebd3afee0e3ba1bba76c4e042a509c +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/43/05/c86feb68c6e6f17d2b1e7d4aadfbef2f8554b42c9e0b7516b22a7c34044b513c23987b00507d17cb8f89b9b762b5499483d4ec16708519940e00cee5863a +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/49/83/fe1894f290d2c7b62071613c17ef550fc151acb486bca8d907dc1da702f3a83f0cc638e33acdccf4a8710f342bb39ca4e591b35f5551706578315a4ec9f1 +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/4b/50/b112c9a92c939784f8af5ea5888188aa9dfc5114485463d0dbf84d8e7b48ff7e52f8d012badd74347a83a214c8504cda54769f9f86774919184fed955fea +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/52/5a/4fa0f73bf834435defcfd550b63ea9924b0f0af5d8cbfe2c79ee2a3efd8b4c50c47a048c8daf54afceec58ad38159c690afe1224832ecd8e724ff4030068 +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/5f/1e/aef8c84037440da9067e57fe4fb8d14c4226a97e0d41a321755d9068d490b7c37504fd2e4345ca98b2c824b940fe036e499998be3343a89e6845767dc806 +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/69/49/5bcde08bb3541360e80c857e93c622592b2605f53500ec939f264908603a030c9e3da2f7ec05883f3f8ccb19f158d4e249a665f5d6a46c6c8aae7ecb7ff2 +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/78/6b/938be911c6fa1b8ab5c1136954cd375f6d24ca77880eefc4f59bd030cc7c9d462b400d3db051117bcbaa5fb2037c4c08c892c5d3ceb7ac6e3f11e0b3130a +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/81/f7/21b01b64900856c9f64f17129a8865cd92a471eb4c6dd452e870d5f3d685b57bc7a48759458d345cb081523d23b4f8ff7f3e6d133fcea11f971be8d7b396 +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/8b/1d/9d06e2b1f63c60745b165ba2236f3b2366a6f2c2b5cfd12c73508e54cc5a4b4d5e47015a1a2188c9f3cb7ed82e5cc0d5790bd55fb6883942279d8e69d98a +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/94/37/128b088664cddaff6cbdcabc604d8f559d8b8f7c3655c1e42d86e9d91c3e51483fff7e27be62ca9790fc43d271fd4c87d2246c5423f9e681793832bd3b4e +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/9c/21/3b8af7b6ee09c29bf340610026191af56f9ba1cba1f5e4476424775d5e322f84d7e900c4d264d39804cebf3dcb5aaa5eb5e9d8fd143bc3a8aa76c3d5325e +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/9f/9a/6055949c6d628b4f34b5f43410d5efbbacd956e52240b30278fd4dfe5182a206d91728e0d16b71904e0cf5b40d7944f054d7fa6f45ce38502aa3c654446c +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/a2/a1/90177481ee6a42670513d750763246aef60819ab74d0835ca92f243cd8970edc9c6e2d63a576e9edb1f702810a8632512b623550c454d16596aa29f6553a +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/ab/fd/668e4582483cadf906c6b8199541af6c4c843761aa3d2372088613a1b17498c302709580ea641920b5c1e67265bf88e6e3901a210be18a8f24bc58743200 +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/af/4a/cafdd325d47ab347fd8f7d3828818bd4305919aeaa02a86850a77589b07e81162d9f3d08619d253037c6562d1a1389fcd99713cef96ff394d7ec55134deb +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/af/5c/97d9a08342685ee95844b54aed260370df0de7c2408ec7b14f7da3972c811ee5a4cae7be4f51de07dd039c8639ec4e9008733bcf0b6a438b29a83d7fabe3 +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/b9/9d/f7b80ff9e7ab8eb61b27b29fa5b2790f18fda8b2d23d4e821ede655c7f981c37d90094cf772ec02b8fc1730b94bd8154534a39191b9a9fc7de88974d57f4 +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/ba/5d/d939f6c0890924d0234b6253e4c7baab7e285c4e9e3b838d4f223f5365ce00c421e48383fc21ecdf847e1592936f5be80b0d20ea3db471bfe39e181c091a +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/c3/a1/25be872308b2510aa4e49fee9fb3708fe45d0526c4094a8b1af3bf8edd7e3c5cfb58a1c15523673b91a4c02bd4ec7baa1b88ec8ab73c7e3dde53898fe98a +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/c7/4b/efaebbbabff0924b290dafa529aee821d250fc178047868b7f63c849de6af1f9557825b665fd50a87cf363e2967a7913e60a9860cac818737c43f088a0b6 +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/d3/15/8fda1c88b170d1f252a22dc3be6211581e1b9975058b870c182b3b66ea5b0f3f2edfafb3ef7b10c42cfdf97b8cbbe1aeb57c965e6e6bb2b5076848889691 +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/d7/53/c9807659c1f98269ec82d2980bda0b81da57c9dec6efd59cf3e7abdbfa6a3e751ab0eb4d66e6b62d31873b4b74c349c87fa194d0e7b7e114e5bdcc3cdcdb +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/e1/3b/a5699b2b00255cbdc58efdda462de0c9fffe6b82cd5482a49f4fd918ecf98ffd08211dbf1d80cb60ac0052b8d9919c6d5d16fa99300dfc3be3c2b85ffbf9 +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/e8/bf/a382f2ee2851df30c90d614c8104b97c8352c9d894966fe19f3c5ae632bc3fdf2c4879c1f9ec67fb28afdf19cd1683e9305c193d6e82835b688e3474447e +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/e9/87/edf15f2af87d650e35a6dd3675d7e6910c0ee3f095e95542c581d3b89e3cfde325714bf4a93e1c7665bc33adbbfe4cc49c073ac122ee697681d01d041eba +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/e9/aa/76646c61fad4972df6b5625be826a0d182cbe21632fdba1458c6e7d87f394dd5c9ccf71389772b2a5edb616e477f74f351d88eab7c39c76afe95bb851e27 +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/e9/ca/53ff813610ae5d57a25518e6546b659a092de2c929fd43130db59358947aa9aa5797289f7ca39fe550d2e41050a69cb26e6b5dd6ebbcae0207ab08474dc8 +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/f7/c4/20025dfcab6ef6645c04bf03ab9e87e06f5526f8c1428595f87ec9b7c23c8a04fb146e47e176baf3da8a852b7bf277bb1ab27ecb61b699cb216edd3ff8ec +1 -0
- package/.angular/cache/15.0.1/ng-packagr/content-v2/sha512/ff/c7/bd261ba278c31a35ab220845891f83c1a18a7cf5f398b7a4332a32e1644dd6c07d5895d3cdfc546b48c66757613d53238d475eb2ce78d9fdf5e917b917f7 +1 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/06/aa/f9f76fa9af3d6ac714d85ff94f703a46f8d164984ebe228161ea6bab4330 +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/15/37/6487aecd2b887fd9938044ee0b6b002f232abb4c6aec11e76060169b9e17 +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/16/36/7bfa836eaa2a8c347d0c61df497c7a72fdaf1ece0490da0636f036301a1b +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/16/6d/027642a28349d275131e5f0b4ad89dd3195a2f18a3f50faa97040e54a6ed +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/19/b4/673449e1657c54805f54357ac1b0c2052b322e18bceea346d725d761f87a +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/20/1f/18abae6c79ef08c9450a94eb2437726e500da0b14300d33930df97307cb0 +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/2c/fe/611a98b5c956bb3f524e1f272f4b9774f7fc218f52aba3dc2cab06fcf387 +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/3d/b3/64dc80c6357f1a2b2c91aa11aa6ecb61f21e75fa0bbbc24e6c943d6ec9c4 +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/45/ac/c73386e65ccdcdd759a1005f9529b60e5f62b952e99c3ff44fdf91ca3597 +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/4d/17/ade79a816bd9ec1fe3ed0094c6663e36d494fb60dc2fd5b9152ef6a92154 +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/5a/5a/2ea76a4fa29eeba07bf099c32987d2c0e772b5550ae461c48f330004eb13 +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/65/cb/5c5e267d1c02bd4744018bfc1139c92977232bcc803b1c1778fd9c395608 +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/69/a1/d2c99d238cd15fce83d764481d6ecd5aba0f315b2013cc786399af5bba7e +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/6e/0f/2a2f6d0f5e763edefe274f04be01a682b7ff3b273317529d0811e7fff34d +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/70/10/5fc5cf1f12c9d98551a642ed8eaf8360c071c8c03095682ca2adb0bffc0b +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/76/f7/775d6b60ae22b890a075a569cf117568ebe446e138798cbc10dfe25426e1 +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/7c/5a/0a1aff5c26b4da864f046051e8fd2e52689a9b97db1af2b8abed22bef859 +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/81/90/4cdd95a8c37245adad95077bb618adab90df01de114668e4ebf3f2a1e743 +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/88/1f/b7baf347b035cabea06d7352a540cb882747f1a3d5f891a5552cfb0e0766 +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/88/38/558f66bfdbac1cf6bb7af18752df87101e04586813c23311b30277327000 +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/90/12/9dab17b6ac5409fb5088b46f01d7fc9fa2ae6f497b210ad215149856deac +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/9a/be/450f4f44251c1ada84de327410e3cd1122c019774eeeb19a32e25257c00b +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/9d/fc/b6889318df1cc51a1588cacb4017e725777e9c218239d49c9f81eb2fb5a0 +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/ae/7e/c1b7a3d4262ee1e7602bffa167279a4f87c28fb896a6ced429b70103b7df +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/b2/bd/e73968b87cffc870f7d7a1c48f8541b9a267388eb59a8959ebad9229920c +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/b9/cd/83db609579af94239f033ccb4367ed430d5ec50ddd5b5df6f0f175d48ce3 +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/ba/e4/9e5145decd9e9b59e84aacc20459537106be69ebc18986f93b34355078bd +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/bc/3e/9599aa4a23f1e642f1c9e194c6ab52c84468a90b96b7e736f9bd5a607a19 +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/c5/16/22f2736652223dd09835db0221a6fde19987bec58c72db2279eb16cee8e9 +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/c6/36/d327400b7b6399d718fc68d5cac0cbd87552b456c2c2d5ce5b614ee10009 +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/c9/c6/a3ec65df56befe84cb12519323461415d4fd1b6f2bf4827a93f6b1663e7f +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/cc/ed/ffba3de0599f554db4d2b4a12e7099247521660f7cfcd92971593e98eaf1 +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/cf/0c/9b4c301350d8bcec537c0c04a268f1710fea9e9635a6c5015799d7c77c41 +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/d9/35/1df9c5a929d12127cfe114f0ca55ea62916ca47861545762e55bf8c8735d +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/de/45/beac4cd852a628afa272062823137beb64fea6591b775133caf55358d021 +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/df/6d/addfb17e1ad55ce1fbe607edaffd16f53ff1715df0ab656ac01cc8c4887c +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/e1/de/7105702be767c43ff63b8192a07fc2a6685d997867cd0b39c09599acf769 +2 -0
- package/.angular/cache/15.0.1/ng-packagr/index-v5/f6/d8/e94a21d22f73e0e1744e3509373c84104e0267b44be10ef1597a9bce2dd0 +2 -0
- package/.dccache +1 -0
- package/.dockerignore +5 -0
- package/.editorconfig +13 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
- package/.github/ISSUE_TEMPLATE/custom-components-support-request.md +15 -0
- package/.github/ISSUE_TEMPLATE/question.md +8 -0
- package/.travis.yml +4 -0
- package/.yo-rc.json +7 -0
- package/CHANGELOG.md +1045 -0
- package/Dockerfile +20 -0
- package/LICENSE +21 -0
- package/README.md +170 -13
- package/angular.json +38 -0
- package/bs-config.json +11 -0
- package/{FormioBaseComponent.d.ts → dist/angular-formio/FormioBaseComponent.d.ts} +1 -1
- package/{FormioBaseComponent.d.ts.map → dist/angular-formio/FormioBaseComponent.d.ts.map} +0 -0
- package/dist/angular-formio/README.md +24 -0
- package/{auth → dist/angular-formio/auth}/auth.component.d.ts +1 -1
- package/{auth → dist/angular-formio/auth}/auth.component.d.ts.map +0 -0
- package/{auth → dist/angular-formio/auth}/auth.config.d.ts +0 -0
- package/{auth → dist/angular-formio/auth}/auth.config.d.ts.map +0 -0
- package/{auth → dist/angular-formio/auth}/auth.module.d.ts +0 -0
- package/{auth → dist/angular-formio/auth}/auth.module.d.ts.map +0 -0
- package/{auth → dist/angular-formio/auth}/auth.routes.d.ts +0 -0
- package/{auth → dist/angular-formio/auth}/auth.routes.d.ts.map +0 -0
- package/{auth → dist/angular-formio/auth}/auth.service.d.ts +1 -0
- package/{auth → dist/angular-formio/auth}/auth.service.d.ts.map +1 -1
- package/{auth → dist/angular-formio/auth}/formio-angular-auth.d.ts.map +0 -0
- package/{auth → dist/angular-formio/auth}/index.d.ts +0 -0
- package/{auth → dist/angular-formio/auth}/index.d.ts.map +0 -0
- package/{auth → dist/angular-formio/auth}/login/login.component.d.ts +1 -1
- package/{auth → dist/angular-formio/auth}/login/login.component.d.ts.map +0 -0
- package/{auth → dist/angular-formio/auth}/register/register.component.d.ts +1 -1
- package/{auth → dist/angular-formio/auth}/register/register.component.d.ts.map +0 -0
- package/{auth → dist/angular-formio/auth}/resetpass/resetpass.component.d.ts +1 -1
- package/{auth → dist/angular-formio/auth}/resetpass/resetpass.component.d.ts.map +0 -0
- package/{components → dist/angular-formio/components}/alerts/formio.alerts.component.d.ts +1 -1
- package/{components → dist/angular-formio/components}/alerts/formio.alerts.component.d.ts.map +0 -0
- package/{components → dist/angular-formio/components}/alerts/formio.alerts.d.ts +0 -0
- package/{components → dist/angular-formio/components}/alerts/formio.alerts.d.ts.map +0 -0
- package/{components → dist/angular-formio/components}/alerts/parse-html-content.pipe.d.ts +0 -0
- package/{components → dist/angular-formio/components}/alerts/parse-html-content.pipe.d.ts.map +0 -0
- package/{components → dist/angular-formio/components}/formbuilder/formbuilder.component.d.ts +1 -1
- package/{components → dist/angular-formio/components}/formbuilder/formbuilder.component.d.ts.map +0 -0
- package/{components → dist/angular-formio/components}/formio/formio.component.d.ts +1 -1
- package/{components → dist/angular-formio/components}/formio/formio.component.d.ts.map +0 -0
- package/{components → dist/angular-formio/components}/loader/formio.loader.component.d.ts +1 -1
- package/{components → dist/angular-formio/components}/loader/formio.loader.component.d.ts.map +0 -0
- package/{core.d.ts → dist/angular-formio/core.d.ts} +0 -0
- package/{core.d.ts.map → dist/angular-formio/core.d.ts.map} +0 -0
- package/{custom-component → dist/angular-formio/custom-component}/create-custom-component.d.ts +0 -0
- package/{custom-component → dist/angular-formio/custom-component}/create-custom-component.d.ts.map +0 -0
- package/{custom-component → dist/angular-formio/custom-component}/custom-tags.service.d.ts +0 -0
- package/{custom-component → dist/angular-formio/custom-component}/custom-tags.service.d.ts.map +0 -0
- package/{custom-component → dist/angular-formio/custom-component}/register-custom-component.d.ts +0 -0
- package/{custom-component → dist/angular-formio/custom-component}/register-custom-component.d.ts.map +0 -0
- package/{elements.common.d.ts → dist/angular-formio/elements.common.d.ts} +0 -0
- package/{elements.common.d.ts.map → dist/angular-formio/elements.common.d.ts.map} +0 -0
- package/dist/angular-formio/esm2020/FormioBaseComponent.mjs +533 -0
- package/dist/angular-formio/esm2020/auth/auth.component.mjs +25 -0
- package/dist/angular-formio/esm2020/auth/auth.config.mjs +15 -0
- package/dist/angular-formio/esm2020/auth/auth.module.mjs +47 -0
- package/{esm2020 → dist/angular-formio/esm2020}/auth/auth.routes.mjs +0 -0
- package/{esm2020 → dist/angular-formio/esm2020}/auth/auth.service.mjs +13 -6
- package/{esm2020 → dist/angular-formio/esm2020}/auth/formio-angular-auth.mjs +0 -0
- package/{esm2020 → dist/angular-formio/esm2020}/auth/index.mjs +0 -0
- package/dist/angular-formio/esm2020/auth/login/login.component.mjs +22 -0
- package/dist/angular-formio/esm2020/auth/register/register.component.mjs +22 -0
- package/dist/angular-formio/esm2020/auth/resetpass/resetpass.component.mjs +22 -0
- package/dist/angular-formio/esm2020/components/alerts/formio.alerts.component.mjs +46 -0
- package/{esm2020 → dist/angular-formio/esm2020}/components/alerts/formio.alerts.mjs +0 -0
- package/dist/angular-formio/esm2020/components/alerts/parse-html-content.pipe.mjs +19 -0
- package/dist/angular-formio/esm2020/components/formbuilder/formbuilder.component.mjs +195 -0
- package/dist/angular-formio/esm2020/components/formio/formio.component.mjs +82 -0
- package/dist/angular-formio/esm2020/components/loader/formio.loader.component.mjs +23 -0
- package/{esm2020 → dist/angular-formio/esm2020}/core.mjs +0 -0
- package/{esm2020 → dist/angular-formio/esm2020}/custom-component/create-custom-component.mjs +0 -0
- package/dist/angular-formio/esm2020/custom-component/custom-tags.service.mjs +16 -0
- package/{esm2020 → dist/angular-formio/esm2020}/custom-component/register-custom-component.mjs +0 -0
- package/{esm2020 → dist/angular-formio/esm2020}/elements.common.mjs +0 -0
- package/{esm2020 → dist/angular-formio/esm2020}/formio-angular.mjs +0 -0
- package/{esm2020 → dist/angular-formio/esm2020}/formio-promise.service.mjs +0 -0
- package/{esm2020 → dist/angular-formio/esm2020}/formio.common.mjs +0 -0
- package/dist/angular-formio/esm2020/formio.config.mjs +14 -0
- package/dist/angular-formio/esm2020/formio.module.mjs +55 -0
- package/{esm2020 → dist/angular-formio/esm2020}/formio.service.mjs +0 -0
- package/{esm2020 → dist/angular-formio/esm2020}/formio.utils.mjs +0 -0
- package/dist/angular-formio/esm2020/grid/GridBodyComponent.mjs +86 -0
- package/dist/angular-formio/esm2020/grid/GridFooterComponent.mjs +41 -0
- package/dist/angular-formio/esm2020/grid/GridHeaderComponent.mjs +35 -0
- package/dist/angular-formio/esm2020/grid/form/FormGridBody.component.mjs +117 -0
- package/dist/angular-formio/esm2020/grid/form/FormGridFooter.component.mjs +110 -0
- package/dist/angular-formio/esm2020/grid/form/FormGridHeader.component.mjs +52 -0
- package/{esm2020 → dist/angular-formio/esm2020}/grid/form/index.mjs +0 -0
- package/{esm2020 → dist/angular-formio/esm2020}/grid/form/time-since.pipe.mjs +9 -9
- package/{esm2020 → dist/angular-formio/esm2020}/grid/formio-angular-grid.mjs +0 -0
- package/dist/angular-formio/esm2020/grid/grid.component.mjs +297 -0
- package/dist/angular-formio/esm2020/grid/grid.module.mjs +80 -0
- package/dist/angular-formio/esm2020/grid/grid.service.mjs +17 -0
- package/{esm2020 → dist/angular-formio/esm2020}/grid/index.mjs +0 -0
- package/dist/angular-formio/esm2020/grid/submission/SubmissionGridBody.component.mjs +73 -0
- package/dist/angular-formio/esm2020/grid/submission/SubmissionGridFooter.component.mjs +101 -0
- package/dist/angular-formio/esm2020/grid/submission/SubmissionGridHeader.component.mjs +93 -0
- package/{esm2020 → dist/angular-formio/esm2020}/grid/submission/index.mjs +0 -0
- package/{esm2020 → dist/angular-formio/esm2020}/grid/types/grid-column.mjs +0 -0
- package/{esm2020 → dist/angular-formio/esm2020}/grid/types/grid-footer-positions.mjs +0 -0
- package/{esm2020 → dist/angular-formio/esm2020}/grid/types/grid-header.mjs +0 -0
- package/{esm2020 → dist/angular-formio/esm2020}/index.mjs +0 -0
- package/dist/angular-formio/esm2020/manager/create/create.component.mjs +59 -0
- package/dist/angular-formio/esm2020/manager/delete/delete.component.mjs +52 -0
- package/dist/angular-formio/esm2020/manager/edit/edit.component.mjs +161 -0
- package/dist/angular-formio/esm2020/manager/form/form.component.mjs +167 -0
- package/dist/angular-formio/esm2020/manager/form-manager.config.mjs +15 -0
- package/dist/angular-formio/esm2020/manager/form-manager.module.mjs +84 -0
- package/{esm2020 → dist/angular-formio/esm2020}/manager/form-manager.routes.mjs +0 -0
- package/{esm2020 → dist/angular-formio/esm2020}/manager/form-manager.service.mjs +6 -6
- package/{esm2020 → dist/angular-formio/esm2020}/manager/formio-angular-manager.mjs +0 -0
- package/dist/angular-formio/esm2020/manager/index/index.component.mjs +126 -0
- package/{esm2020 → dist/angular-formio/esm2020}/manager/index.mjs +0 -0
- package/dist/angular-formio/esm2020/manager/submission/delete/delete.component.mjs +43 -0
- package/dist/angular-formio/esm2020/manager/submission/edit/edit.component.mjs +28 -0
- package/dist/angular-formio/esm2020/manager/submission/index/index.component.mjs +28 -0
- package/dist/angular-formio/esm2020/manager/submission/submission/submission.component.mjs +64 -0
- package/dist/angular-formio/esm2020/manager/submission/view/view.component.mjs +22 -0
- package/dist/angular-formio/esm2020/manager/view/view.component.mjs +55 -0
- package/dist/angular-formio/esm2020/resource/create/create.component.mjs +57 -0
- package/dist/angular-formio/esm2020/resource/delete/delete.component.mjs +38 -0
- package/dist/angular-formio/esm2020/resource/edit/edit.component.mjs +42 -0
- package/{esm2020 → dist/angular-formio/esm2020}/resource/formio-angular-resource.mjs +0 -0
- package/dist/angular-formio/esm2020/resource/index/index.component.mjs +70 -0
- package/{esm2020 → dist/angular-formio/esm2020}/resource/index.mjs +0 -0
- package/dist/angular-formio/esm2020/resource/resource.component.mjs +72 -0
- package/dist/angular-formio/esm2020/resource/resource.config.mjs +15 -0
- package/dist/angular-formio/esm2020/resource/resource.module.mjs +63 -0
- package/{esm2020 → dist/angular-formio/esm2020}/resource/resource.routes.mjs +0 -0
- package/{esm2020 → dist/angular-formio/esm2020}/resource/resource.service.mjs +8 -8
- package/dist/angular-formio/esm2020/resource/resources.service.mjs +22 -0
- package/dist/angular-formio/esm2020/resource/view/view.component.mjs +27 -0
- package/{esm2020 → dist/angular-formio/esm2020}/types/alerts-position.mjs +0 -0
- package/{esm2020 → dist/angular-formio/esm2020}/types/formio-metadata.mjs +0 -0
- package/{esm2020 → dist/angular-formio/esm2020}/types/formio-submission.mjs +0 -0
- package/{fesm2020 → dist/angular-formio/fesm2015}/formio-angular-auth.mjs +101 -34
- package/dist/angular-formio/fesm2015/formio-angular-auth.mjs.map +1 -0
- package/dist/angular-formio/fesm2015/formio-angular-grid.mjs +1255 -0
- package/dist/angular-formio/fesm2015/formio-angular-grid.mjs.map +1 -0
- package/dist/angular-formio/fesm2015/formio-angular-manager.mjs +1178 -0
- package/dist/angular-formio/fesm2015/formio-angular-manager.mjs.map +1 -0
- package/{fesm2015 → dist/angular-formio/fesm2015}/formio-angular-resource.mjs +175 -50
- package/dist/angular-formio/fesm2015/formio-angular-resource.mjs.map +1 -0
- package/{fesm2015 → dist/angular-formio/fesm2015}/formio-angular.mjs +188 -53
- package/dist/angular-formio/fesm2015/formio-angular.mjs.map +1 -0
- package/dist/angular-formio/fesm2020/formio-angular-auth.mjs +330 -0
- package/dist/angular-formio/fesm2020/formio-angular-auth.mjs.map +1 -0
- package/dist/angular-formio/fesm2020/formio-angular-grid.mjs +1108 -0
- package/dist/angular-formio/fesm2020/formio-angular-grid.mjs.map +1 -0
- package/dist/angular-formio/fesm2020/formio-angular-manager.mjs +1066 -0
- package/dist/angular-formio/fesm2020/formio-angular-manager.mjs.map +1 -0
- package/dist/angular-formio/fesm2020/formio-angular-resource.mjs +582 -0
- package/dist/angular-formio/fesm2020/formio-angular-resource.mjs.map +1 -0
- package/dist/angular-formio/fesm2020/formio-angular.mjs +1253 -0
- package/dist/angular-formio/fesm2020/formio-angular.mjs.map +1 -0
- package/{formio-angular.d.ts.map → dist/angular-formio/formio-angular.d.ts.map} +0 -0
- package/{formio-promise.service.d.ts → dist/angular-formio/formio-promise.service.d.ts} +0 -0
- package/{formio-promise.service.d.ts.map → dist/angular-formio/formio-promise.service.d.ts.map} +0 -0
- package/{formio.common.d.ts → dist/angular-formio/formio.common.d.ts} +0 -0
- package/{formio.common.d.ts.map → dist/angular-formio/formio.common.d.ts.map} +0 -0
- package/{formio.config.d.ts → dist/angular-formio/formio.config.d.ts} +0 -0
- package/{formio.config.d.ts.map → dist/angular-formio/formio.config.d.ts.map} +0 -0
- package/{formio.module.d.ts → dist/angular-formio/formio.module.d.ts} +0 -0
- package/{formio.module.d.ts.map → dist/angular-formio/formio.module.d.ts.map} +0 -0
- package/{formio.service.d.ts → dist/angular-formio/formio.service.d.ts} +0 -0
- package/{formio.service.d.ts.map → dist/angular-formio/formio.service.d.ts.map} +0 -0
- package/{formio.utils.d.ts → dist/angular-formio/formio.utils.d.ts} +0 -0
- package/{formio.utils.d.ts.map → dist/angular-formio/formio.utils.d.ts.map} +0 -0
- package/{grid → dist/angular-formio/grid}/GridBodyComponent.d.ts +1 -1
- package/{grid → dist/angular-formio/grid}/GridBodyComponent.d.ts.map +0 -0
- package/{grid → dist/angular-formio/grid}/GridFooterComponent.d.ts +1 -1
- package/{grid → dist/angular-formio/grid}/GridFooterComponent.d.ts.map +0 -0
- package/{grid → dist/angular-formio/grid}/GridHeaderComponent.d.ts +1 -1
- package/{grid → dist/angular-formio/grid}/GridHeaderComponent.d.ts.map +0 -0
- package/{grid → dist/angular-formio/grid}/form/FormGridBody.component.d.ts +1 -1
- package/{grid → dist/angular-formio/grid}/form/FormGridBody.component.d.ts.map +0 -0
- package/{grid → dist/angular-formio/grid}/form/FormGridFooter.component.d.ts +1 -1
- package/{grid → dist/angular-formio/grid}/form/FormGridFooter.component.d.ts.map +0 -0
- package/{grid → dist/angular-formio/grid}/form/FormGridHeader.component.d.ts +1 -1
- package/{grid → dist/angular-formio/grid}/form/FormGridHeader.component.d.ts.map +0 -0
- package/{grid → dist/angular-formio/grid}/form/index.d.ts +0 -0
- package/{grid → dist/angular-formio/grid}/form/index.d.ts.map +0 -0
- package/{grid → dist/angular-formio/grid}/form/time-since.pipe.d.ts +0 -0
- package/{grid → dist/angular-formio/grid}/form/time-since.pipe.d.ts.map +0 -0
- package/{grid → dist/angular-formio/grid}/formio-angular-grid.d.ts.map +0 -0
- package/{grid → dist/angular-formio/grid}/grid.component.d.ts +1 -1
- package/{grid → dist/angular-formio/grid}/grid.component.d.ts.map +0 -0
- package/{grid → dist/angular-formio/grid}/grid.module.d.ts +0 -0
- package/{grid → dist/angular-formio/grid}/grid.module.d.ts.map +0 -0
- package/{grid → dist/angular-formio/grid}/grid.service.d.ts +0 -0
- package/{grid → dist/angular-formio/grid}/grid.service.d.ts.map +0 -0
- package/{grid → dist/angular-formio/grid}/index.d.ts +0 -0
- package/{grid → dist/angular-formio/grid}/index.d.ts.map +0 -0
- package/{grid → dist/angular-formio/grid}/submission/SubmissionGridBody.component.d.ts +1 -1
- package/{grid → dist/angular-formio/grid}/submission/SubmissionGridBody.component.d.ts.map +0 -0
- package/{grid → dist/angular-formio/grid}/submission/SubmissionGridFooter.component.d.ts +1 -1
- package/{grid → dist/angular-formio/grid}/submission/SubmissionGridFooter.component.d.ts.map +0 -0
- package/{grid → dist/angular-formio/grid}/submission/SubmissionGridHeader.component.d.ts +1 -1
- package/{grid → dist/angular-formio/grid}/submission/SubmissionGridHeader.component.d.ts.map +0 -0
- package/{grid → dist/angular-formio/grid}/submission/index.d.ts +0 -0
- package/{grid → dist/angular-formio/grid}/submission/index.d.ts.map +0 -0
- package/{grid → dist/angular-formio/grid}/types/grid-column.d.ts +0 -0
- package/{grid → dist/angular-formio/grid}/types/grid-column.d.ts.map +0 -0
- package/{grid → dist/angular-formio/grid}/types/grid-footer-positions.d.ts +0 -0
- package/{grid → dist/angular-formio/grid}/types/grid-footer-positions.d.ts.map +0 -0
- package/{grid → dist/angular-formio/grid}/types/grid-header.d.ts +0 -0
- package/{grid → dist/angular-formio/grid}/types/grid-header.d.ts.map +0 -0
- package/{index.d.ts → dist/angular-formio/index.d.ts} +0 -0
- package/{index.d.ts.map → dist/angular-formio/index.d.ts.map} +0 -0
- package/{manager → dist/angular-formio/manager}/create/create.component.d.ts +1 -1
- package/{manager → dist/angular-formio/manager}/create/create.component.d.ts.map +0 -0
- package/{manager → dist/angular-formio/manager}/delete/delete.component.d.ts +1 -1
- package/{manager → dist/angular-formio/manager}/delete/delete.component.d.ts.map +0 -0
- package/{manager → dist/angular-formio/manager}/edit/edit.component.d.ts +1 -1
- package/{manager → dist/angular-formio/manager}/edit/edit.component.d.ts.map +0 -0
- package/{manager → dist/angular-formio/manager}/form/form.component.d.ts +1 -1
- package/{manager → dist/angular-formio/manager}/form/form.component.d.ts.map +0 -0
- package/{manager → dist/angular-formio/manager}/form-manager.config.d.ts +0 -0
- package/{manager → dist/angular-formio/manager}/form-manager.config.d.ts.map +0 -0
- package/{manager → dist/angular-formio/manager}/form-manager.module.d.ts +0 -0
- package/{manager → dist/angular-formio/manager}/form-manager.module.d.ts.map +0 -0
- package/{manager → dist/angular-formio/manager}/form-manager.routes.d.ts +0 -0
- package/{manager → dist/angular-formio/manager}/form-manager.routes.d.ts.map +0 -0
- package/{manager → dist/angular-formio/manager}/form-manager.service.d.ts +0 -0
- package/{manager → dist/angular-formio/manager}/form-manager.service.d.ts.map +0 -0
- package/{manager → dist/angular-formio/manager}/formio-angular-manager.d.ts.map +0 -0
- package/{manager → dist/angular-formio/manager}/index/index.component.d.ts +1 -1
- package/{manager → dist/angular-formio/manager}/index/index.component.d.ts.map +0 -0
- package/{manager → dist/angular-formio/manager}/index.d.ts +0 -0
- package/{manager → dist/angular-formio/manager}/index.d.ts.map +0 -0
- package/{manager → dist/angular-formio/manager}/submission/delete/delete.component.d.ts +1 -1
- package/{manager → dist/angular-formio/manager}/submission/delete/delete.component.d.ts.map +0 -0
- package/{manager → dist/angular-formio/manager}/submission/edit/edit.component.d.ts +1 -1
- package/{manager → dist/angular-formio/manager}/submission/edit/edit.component.d.ts.map +0 -0
- package/{manager → dist/angular-formio/manager}/submission/index/index.component.d.ts +1 -1
- package/{manager → dist/angular-formio/manager}/submission/index/index.component.d.ts.map +0 -0
- package/{manager → dist/angular-formio/manager}/submission/submission/submission.component.d.ts +1 -1
- package/{manager → dist/angular-formio/manager}/submission/submission/submission.component.d.ts.map +0 -0
- package/{manager → dist/angular-formio/manager}/submission/view/view.component.d.ts +1 -1
- package/{manager → dist/angular-formio/manager}/submission/view/view.component.d.ts.map +0 -0
- package/{manager → dist/angular-formio/manager}/view/view.component.d.ts +1 -1
- package/{manager → dist/angular-formio/manager}/view/view.component.d.ts.map +0 -0
- package/dist/angular-formio/package.json +94 -0
- package/{resource → dist/angular-formio/resource}/create/create.component.d.ts +1 -1
- package/{resource → dist/angular-formio/resource}/create/create.component.d.ts.map +0 -0
- package/{resource → dist/angular-formio/resource}/delete/delete.component.d.ts +1 -1
- package/{resource → dist/angular-formio/resource}/delete/delete.component.d.ts.map +0 -0
- package/{resource → dist/angular-formio/resource}/edit/edit.component.d.ts +1 -1
- package/{resource → dist/angular-formio/resource}/edit/edit.component.d.ts.map +0 -0
- package/{resource → dist/angular-formio/resource}/formio-angular-resource.d.ts.map +0 -0
- package/{resource → dist/angular-formio/resource}/index/index.component.d.ts +1 -1
- package/{resource → dist/angular-formio/resource}/index/index.component.d.ts.map +0 -0
- package/{resource → dist/angular-formio/resource}/index.d.ts +0 -0
- package/{resource → dist/angular-formio/resource}/index.d.ts.map +0 -0
- package/{resource → dist/angular-formio/resource}/resource.component.d.ts +1 -1
- package/{resource → dist/angular-formio/resource}/resource.component.d.ts.map +0 -0
- package/{resource → dist/angular-formio/resource}/resource.config.d.ts +0 -0
- package/{resource → dist/angular-formio/resource}/resource.config.d.ts.map +0 -0
- package/{resource → dist/angular-formio/resource}/resource.module.d.ts +0 -0
- package/{resource → dist/angular-formio/resource}/resource.module.d.ts.map +0 -0
- package/{resource → dist/angular-formio/resource}/resource.routes.d.ts +0 -0
- package/{resource → dist/angular-formio/resource}/resource.routes.d.ts.map +0 -0
- package/{resource → dist/angular-formio/resource}/resource.service.d.ts +0 -0
- package/{resource → dist/angular-formio/resource}/resource.service.d.ts.map +0 -0
- package/{resource → dist/angular-formio/resource}/resources.service.d.ts +0 -0
- package/{resource → dist/angular-formio/resource}/resources.service.d.ts.map +0 -0
- package/{resource → dist/angular-formio/resource}/view/view.component.d.ts +1 -1
- package/{resource → dist/angular-formio/resource}/view/view.component.d.ts.map +0 -0
- package/{types → dist/angular-formio/types}/alerts-position.d.ts +0 -0
- package/{types → dist/angular-formio/types}/alerts-position.d.ts.map +0 -0
- package/{types → dist/angular-formio/types}/formio-metadata.d.ts +0 -0
- package/{types → dist/angular-formio/types}/formio-metadata.d.ts.map +0 -0
- package/{types → dist/angular-formio/types}/formio-submission.d.ts +0 -0
- package/{types → dist/angular-formio/types}/formio-submission.d.ts.map +0 -0
- package/package.json +56 -72
- package/projects/angular-formio/README.md +24 -0
- package/projects/angular-formio/auth/ng-package.json +5 -0
- package/projects/angular-formio/auth/src/auth.component.html +12 -0
- package/projects/angular-formio/auth/src/auth.component.ts +5 -0
- package/projects/angular-formio/auth/src/auth.config.ts +72 -0
- package/projects/angular-formio/auth/src/auth.module.ts +33 -0
- package/projects/angular-formio/auth/src/auth.routes.ts +34 -0
- package/projects/angular-formio/auth/src/auth.service.ts +209 -0
- package/projects/angular-formio/auth/src/index.ts +8 -0
- package/projects/angular-formio/auth/src/login/login.component.html +1 -0
- package/projects/angular-formio/auth/src/login/login.component.ts +8 -0
- package/projects/angular-formio/auth/src/public_api.ts +5 -0
- package/projects/angular-formio/auth/src/register/register.component.html +1 -0
- package/projects/angular-formio/auth/src/register/register.component.ts +8 -0
- package/projects/angular-formio/auth/src/resetpass/resetpass.component.html +1 -0
- package/projects/angular-formio/auth/src/resetpass/resetpass.component.ts +8 -0
- package/projects/angular-formio/grid/ng-package.json +5 -0
- package/projects/angular-formio/grid/src/GridBodyComponent.ts +80 -0
- package/projects/angular-formio/grid/src/GridFooterComponent.ts +25 -0
- package/projects/angular-formio/grid/src/GridHeaderComponent.ts +25 -0
- package/projects/angular-formio/grid/src/form/FormGridBody.component.html +23 -0
- package/projects/angular-formio/grid/src/form/FormGridBody.component.scss +4 -0
- package/projects/angular-formio/grid/src/form/FormGridBody.component.ts +15 -0
- package/projects/angular-formio/grid/src/form/FormGridFooter.component.html +21 -0
- package/projects/angular-formio/grid/src/form/FormGridFooter.component.ts +23 -0
- package/projects/angular-formio/grid/src/form/FormGridHeader.component.html +18 -0
- package/projects/angular-formio/grid/src/form/FormGridHeader.component.ts +24 -0
- package/projects/angular-formio/grid/src/form/index.ts +8 -0
- package/projects/angular-formio/grid/src/form/time-since.pipe.ts +31 -0
- package/projects/angular-formio/grid/src/grid.component.html +18 -0
- package/projects/angular-formio/grid/src/grid.component.scss +9 -0
- package/projects/angular-formio/grid/src/grid.component.ts +242 -0
- package/projects/angular-formio/grid/src/grid.footer.scss +14 -0
- package/projects/angular-formio/grid/src/grid.module.ts +49 -0
- package/projects/angular-formio/grid/src/grid.service.ts +16 -0
- package/projects/angular-formio/grid/src/index.ts +12 -0
- package/projects/angular-formio/grid/src/public_api.ts +5 -0
- package/projects/angular-formio/grid/src/submission/SubmissionGridBody.component.html +7 -0
- package/projects/angular-formio/grid/src/submission/SubmissionGridBody.component.ts +39 -0
- package/projects/angular-formio/grid/src/submission/SubmissionGridFooter.component.html +18 -0
- package/projects/angular-formio/grid/src/submission/SubmissionGridFooter.component.ts +20 -0
- package/projects/angular-formio/grid/src/submission/SubmissionGridHeader.component.html +11 -0
- package/projects/angular-formio/grid/src/submission/SubmissionGridHeader.component.ts +72 -0
- package/projects/angular-formio/grid/src/submission/index.ts +8 -0
- package/projects/angular-formio/grid/src/types/grid-column.ts +7 -0
- package/projects/angular-formio/grid/src/types/grid-footer-positions.ts +5 -0
- package/projects/angular-formio/grid/src/types/grid-header.ts +14 -0
- package/projects/angular-formio/karma.conf.js +32 -0
- package/projects/angular-formio/manager/ng-package.json +5 -0
- package/projects/angular-formio/manager/src/create/create.component.ts +11 -0
- package/projects/angular-formio/manager/src/delete/delete.component.html +6 -0
- package/projects/angular-formio/manager/src/delete/delete.component.ts +37 -0
- package/projects/angular-formio/manager/src/edit/edit.component.html +19 -0
- package/projects/angular-formio/manager/src/edit/edit.component.ts +107 -0
- package/projects/angular-formio/manager/src/form/form.component.html +32 -0
- package/projects/angular-formio/manager/src/form/form.component.ts +73 -0
- package/projects/angular-formio/manager/src/form-manager.config.ts +26 -0
- package/projects/angular-formio/manager/src/form-manager.module.ts +54 -0
- package/projects/angular-formio/manager/src/form-manager.routes.ts +75 -0
- package/projects/angular-formio/manager/src/form-manager.service.ts +195 -0
- package/projects/angular-formio/manager/src/index/index.component.html +14 -0
- package/projects/angular-formio/manager/src/index/index.component.scss +22 -0
- package/projects/angular-formio/manager/src/index/index.component.ts +84 -0
- package/projects/angular-formio/manager/src/index.ts +16 -0
- package/projects/angular-formio/manager/src/public_api.ts +5 -0
- package/projects/angular-formio/manager/src/submission/delete/delete.component.html +6 -0
- package/projects/angular-formio/manager/src/submission/delete/delete.component.ts +26 -0
- package/projects/angular-formio/manager/src/submission/edit/edit.component.html +7 -0
- package/projects/angular-formio/manager/src/submission/edit/edit.component.ts +18 -0
- package/projects/angular-formio/manager/src/submission/index/index.component.html +1 -0
- package/projects/angular-formio/manager/src/submission/index/index.component.ts +18 -0
- package/projects/angular-formio/manager/src/submission/submission/submission.component.html +8 -0
- package/projects/angular-formio/manager/src/submission/submission/submission.component.ts +24 -0
- package/projects/angular-formio/manager/src/submission/view/view.component.html +7 -0
- package/projects/angular-formio/manager/src/submission/view/view.component.ts +9 -0
- package/projects/angular-formio/manager/src/view/view.component.html +10 -0
- package/projects/angular-formio/manager/src/view/view.component.ts +41 -0
- package/projects/angular-formio/ng-package.json +7 -0
- package/projects/angular-formio/package.json +39 -0
- package/projects/angular-formio/resource/ng-package.json +5 -0
- package/projects/angular-formio/resource/src/create/create.component.html +13 -0
- package/projects/angular-formio/resource/src/create/create.component.scss +3 -0
- package/projects/angular-formio/resource/src/create/create.component.ts +37 -0
- package/projects/angular-formio/resource/src/delete/delete.component.html +5 -0
- package/projects/angular-formio/resource/src/delete/delete.component.ts +24 -0
- package/projects/angular-formio/resource/src/edit/edit.component.html +6 -0
- package/projects/angular-formio/resource/src/edit/edit.component.ts +33 -0
- package/projects/angular-formio/resource/src/index/index.component.html +10 -0
- package/projects/angular-formio/resource/src/index/index.component.ts +66 -0
- package/projects/angular-formio/resource/src/index.js +24 -0
- package/projects/angular-formio/resource/src/index.ts +11 -0
- package/projects/angular-formio/resource/src/public_api.ts +5 -0
- package/projects/angular-formio/resource/src/resource.component.html +7 -0
- package/projects/angular-formio/resource/src/resource.component.ts +48 -0
- package/projects/angular-formio/resource/src/resource.config.ts +17 -0
- package/projects/angular-formio/resource/src/resource.module.ts +43 -0
- package/projects/angular-formio/resource/src/resource.routes.ts +43 -0
- package/projects/angular-formio/resource/src/resource.service.ts +232 -0
- package/projects/angular-formio/resource/src/resources.service.ts +24 -0
- package/projects/angular-formio/resource/src/view/view.component.html +6 -0
- package/projects/angular-formio/resource/src/view/view.component.ts +19 -0
- package/projects/angular-formio/src/FormioBaseComponent.ts +525 -0
- package/projects/angular-formio/src/components/alerts/formio.alerts.component.html +3 -0
- package/projects/angular-formio/src/components/alerts/formio.alerts.component.ts +19 -0
- package/projects/angular-formio/src/components/alerts/formio.alerts.ts +21 -0
- package/projects/angular-formio/src/components/alerts/parse-html-content.pipe.ts +15 -0
- package/projects/angular-formio/src/components/formbuilder/formbuilder.component.html +1 -0
- package/projects/angular-formio/src/components/formbuilder/formbuilder.component.ts +213 -0
- package/projects/angular-formio/src/components/formio/formio.component.html +8 -0
- package/projects/angular-formio/src/components/formio/formio.component.ts +33 -0
- package/projects/angular-formio/src/components/loader/formio.loader.component.html +3 -0
- package/projects/angular-formio/src/components/loader/formio.loader.component.scss +26 -0
- package/projects/angular-formio/src/components/loader/formio.loader.component.ts +10 -0
- package/projects/angular-formio/src/core.ts +21 -0
- package/projects/angular-formio/src/custom-component/create-custom-component.ts +173 -0
- package/projects/angular-formio/src/custom-component/custom-tags.service.ts +10 -0
- package/projects/angular-formio/src/custom-component/register-custom-component.ts +41 -0
- package/projects/angular-formio/src/elements.common.ts +31 -0
- package/projects/angular-formio/src/formio-promise.service.ts +36 -0
- package/projects/angular-formio/src/formio.common.ts +81 -0
- package/projects/angular-formio/src/formio.config.ts +9 -0
- package/projects/angular-formio/src/formio.module.ts +35 -0
- package/projects/angular-formio/src/formio.service.ts +57 -0
- package/projects/angular-formio/src/formio.utils.ts +23 -0
- package/projects/angular-formio/src/index.ts +6 -0
- package/projects/angular-formio/src/public-api.ts +5 -0
- package/projects/angular-formio/src/test.ts +28 -0
- package/projects/angular-formio/src/types/alerts-position.ts +6 -0
- package/projects/angular-formio/src/types/formio-metadata.ts +10 -0
- package/projects/angular-formio/src/types/formio-submission.ts +20 -0
- package/projects/angular-formio/tsconfig.lib.json +27 -0
- package/projects/angular-formio/tsconfig.lib.prod.json +8 -0
- package/projects/angular-formio/tsconfig.spec.json +17 -0
- package/projects/angular-formio/tslint.json +17 -0
- package/tsconfig.json +28 -0
- package/tslint.json +140 -0
- package/esm2020/FormioBaseComponent.mjs +0 -527
- package/esm2020/auth/auth.component.mjs +0 -12
- package/esm2020/auth/auth.config.mjs +0 -15
- package/esm2020/auth/auth.module.mjs +0 -46
- package/esm2020/auth/login/login.component.mjs +0 -16
- package/esm2020/auth/register/register.component.mjs +0 -16
- package/esm2020/auth/resetpass/resetpass.component.mjs +0 -16
- package/esm2020/components/alerts/formio.alerts.component.mjs +0 -29
- package/esm2020/components/alerts/parse-html-content.pipe.mjs +0 -19
- package/esm2020/components/formbuilder/formbuilder.component.mjs +0 -187
- package/esm2020/components/formio/formio.component.mjs +0 -40
- package/esm2020/components/loader/formio.loader.component.mjs +0 -14
- package/esm2020/custom-component/custom-tags.service.mjs +0 -16
- package/esm2020/formio.config.mjs +0 -14
- package/esm2020/formio.module.mjs +0 -54
- package/esm2020/grid/GridBodyComponent.mjs +0 -81
- package/esm2020/grid/GridFooterComponent.mjs +0 -36
- package/esm2020/grid/GridHeaderComponent.mjs +0 -30
- package/esm2020/grid/form/FormGridBody.component.mjs +0 -19
- package/esm2020/grid/form/FormGridFooter.component.mjs +0 -26
- package/esm2020/grid/form/FormGridHeader.component.mjs +0 -26
- package/esm2020/grid/grid.component.mjs +0 -230
- package/esm2020/grid/grid.module.mjs +0 -79
- package/esm2020/grid/grid.service.mjs +0 -17
- package/esm2020/grid/submission/SubmissionGridBody.component.mjs +0 -43
- package/esm2020/grid/submission/SubmissionGridFooter.component.mjs +0 -23
- package/esm2020/grid/submission/SubmissionGridHeader.component.mjs +0 -61
- package/esm2020/manager/create/create.component.mjs +0 -18
- package/esm2020/manager/delete/delete.component.mjs +0 -37
- package/esm2020/manager/edit/edit.component.mjs +0 -109
- package/esm2020/manager/form/form.component.mjs +0 -70
- package/esm2020/manager/form-manager.config.mjs +0 -15
- package/esm2020/manager/form-manager.module.mjs +0 -83
- package/esm2020/manager/index/index.component.mjs +0 -84
- package/esm2020/manager/submission/delete/delete.component.mjs +0 -28
- package/esm2020/manager/submission/edit/edit.component.mjs +0 -22
- package/esm2020/manager/submission/index/index.component.mjs +0 -22
- package/esm2020/manager/submission/submission/submission.component.mjs +0 -26
- package/esm2020/manager/submission/view/view.component.mjs +0 -16
- package/esm2020/manager/view/view.component.mjs +0 -42
- package/esm2020/resource/create/create.component.mjs +0 -37
- package/esm2020/resource/delete/delete.component.mjs +0 -26
- package/esm2020/resource/edit/edit.component.mjs +0 -36
- package/esm2020/resource/index/index.component.mjs +0 -61
- package/esm2020/resource/resource.component.mjs +0 -46
- package/esm2020/resource/resource.config.mjs +0 -15
- package/esm2020/resource/resource.module.mjs +0 -62
- package/esm2020/resource/resources.service.mjs +0 -22
- package/esm2020/resource/view/view.component.mjs +0 -23
- package/fesm2015/formio-angular-auth.mjs +0 -290
- package/fesm2015/formio-angular-auth.mjs.map +0 -1
- package/fesm2015/formio-angular-grid.mjs +0 -677
- package/fesm2015/formio-angular-grid.mjs.map +0 -1
- package/fesm2015/formio-angular-manager.mjs +0 -733
- package/fesm2015/formio-angular-manager.mjs.map +0 -1
- package/fesm2015/formio-angular-resource.mjs.map +0 -1
- package/fesm2015/formio-angular.mjs.map +0 -1
- package/fesm2020/formio-angular-auth.mjs.map +0 -1
- package/fesm2020/formio-angular-grid.mjs +0 -676
- package/fesm2020/formio-angular-grid.mjs.map +0 -1
- package/fesm2020/formio-angular-manager.mjs +0 -733
- package/fesm2020/formio-angular-manager.mjs.map +0 -1
- package/fesm2020/formio-angular-resource.mjs +0 -503
- package/fesm2020/formio-angular-resource.mjs.map +0 -1
- package/fesm2020/formio-angular.mjs +0 -1169
- package/fesm2020/formio-angular.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"hash":"095c2048860827c0014ec217459c50cd4f14e781","fesm2020":{"code":"import * as i0 from '@angular/core';\nimport { EventEmitter, TemplateRef, Component, Input, Output, ViewChild, Injectable, Pipe, ViewEncapsulation, ViewContainerRef, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i2$1 from '@angular/forms';\nimport { FormsModule } from '@angular/forms';\nimport * as i2 from '@angular/router';\nimport { RouterModule } from '@angular/router';\nimport * as i1$1 from '@formio/angular';\nimport { FormioPromiseService, FormioModule, FormioAlerts } from '@formio/angular';\nimport { each, clone, get } from 'lodash';\nimport { Components, Utils, Formio } from 'formiojs';\nimport * as i3 from 'ngx-bootstrap/pagination';\nimport { PaginationModule } from 'ngx-bootstrap/pagination';\n\nvar GridFooterPositions;\n(function (GridFooterPositions) {\n GridFooterPositions[GridFooterPositions[\"bottom\"] = 0] = \"bottom\";\n GridFooterPositions[GridFooterPositions[\"top\"] = 1] = \"top\";\n GridFooterPositions[GridFooterPositions[\"both\"] = 2] = \"both\";\n})(GridFooterPositions || (GridFooterPositions = {}));\n\nclass GridHeaderComponent {\n constructor() {\n this.headers = [];\n this.sort = new EventEmitter();\n }\n get numHeaders() {\n return this.headers.length;\n }\n load(formio, query, columns) {\n return Promise.resolve([]);\n }\n}\nGridHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: GridHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nGridHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.1\", type: GridHeaderComponent, selector: \"ng-component\", inputs: { actionAllowed: \"actionAllowed\" }, outputs: { sort: \"sort\" }, viewQueries: [{ propertyName: \"template\", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: '', isInline: true });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: GridHeaderComponent, decorators: [{\n type: Component,\n args: [{\n template: ''\n }]\n }], ctorParameters: function () { return []; }, propDecorators: { actionAllowed: [{\n type: Input\n }], sort: [{\n type: Output\n }], template: [{\n type: ViewChild,\n args: [TemplateRef, { static: true }]\n }] } });\n\nvar SortType;\n(function (SortType) {\n SortType[\"ASC\"] = \"asc\";\n SortType[\"DESC\"] = \"desc\";\n})(SortType || (SortType = {}));\n\nclass FormGridHeaderComponent extends GridHeaderComponent {\n load(formio) {\n this.header = {\n label: 'Title',\n key: 'title',\n sort: SortType.ASC\n };\n this.headers = [this.header];\n return Promise.resolve(this.headers);\n }\n get numHeaders() {\n return 2;\n }\n}\nFormGridHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: FormGridHeaderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\nFormGridHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.1\", type: FormGridHeaderComponent, selector: \"form-grid-header\", usesInheritance: true, ngImport: i0, template: \"<ng-template>\\n <thead>\\n <tr>\\n <th>\\n <div class=\\\"row\\\">\\n <div class=\\\"col-sm-8\\\">\\n <a (click)=\\\"sort.emit(header)\\\">\\n {{ header.label }} <span [ngClass]=\\\"{'glyphicon-triangle-top fa-caret-up': (header.sort === 'asc'), 'glyphicon-triangle-bottom fa-caret-down': (header.sort === 'desc')}\\\" class=\\\"glyphicon fa\\\" *ngIf=\\\"header.sort\\\"></span>\\n </a>\\n </div>\\n <div class=\\\"col-sm-4\\\">\\n Operations\\n </div>\\n </div>\\n </th>\\n </tr>\\n </thead>\\n</ng-template>\\n\", dependencies: [{ kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: FormGridHeaderComponent, decorators: [{\n type: Component,\n args: [{ selector: 'form-grid-header', template: \"<ng-template>\\n <thead>\\n <tr>\\n <th>\\n <div class=\\\"row\\\">\\n <div class=\\\"col-sm-8\\\">\\n <a (click)=\\\"sort.emit(header)\\\">\\n {{ header.label }} <span [ngClass]=\\\"{'glyphicon-triangle-top fa-caret-up': (header.sort === 'asc'), 'glyphicon-triangle-bottom fa-caret-down': (header.sort === 'desc')}\\\" class=\\\"glyphicon fa\\\" *ngIf=\\\"header.sort\\\"></span>\\n </a>\\n </div>\\n <div class=\\\"col-sm-4\\\">\\n Operations\\n </div>\\n </div>\\n </th>\\n </tr>\\n </thead>\\n</ng-template>\\n\" }]\n }] });\n\nclass GridService {\n constructor() { }\n setRows(rows) {\n this.rows = rows;\n }\n getFormsPerPage() {\n return this.rows?.length;\n }\n}\nGridService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: GridService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nGridService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: GridService });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: GridService, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return []; } });\n\nclass GridBodyComponent {\n constructor(service) {\n this.service = service;\n this.firstItem = 0;\n this.lastItem = 0;\n this.skip = 0;\n this.limit = 0;\n this.total = 0;\n this.rowSelect = new EventEmitter();\n this.rowAction = new EventEmitter();\n this.loading = true;\n }\n load(formio, query) {\n return formio.loadForm(query);\n }\n onRowSelect(event, row) {\n event.preventDefault();\n this.rowSelect.emit(row);\n }\n onRowAction(event, row, action) {\n event.preventDefault();\n this.rowAction.emit({ row, action });\n }\n /**\n * Set the rows for this Grid body.\n *\n * @param query\n * @param items\n * @return any\n */\n setRows(query, items) {\n this.rows = [];\n if (typeof items !== 'object') {\n this.firstItem = 0;\n this.lastItem = 0;\n this.total = 0;\n this.skip = 0;\n this.loading = false;\n this.service.setRows(this.rows);\n return this.rows;\n }\n this.firstItem = query.skip + 1;\n this.lastItem = this.firstItem + items.length - 1;\n if (this.lastItem === 0) {\n this.firstItem = 0;\n }\n this.total = items.serverCount;\n this.limit = query.limit;\n this.skip = Math.floor(items.skip / query.limit) + 1;\n this.loading = false;\n each(items, (item) => {\n this.rows.push(clone(item));\n });\n this.service.setRows(this.rows);\n return this.rows;\n }\n}\nGridBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: GridBodyComponent, deps: [{ token: GridService }], target: i0.ɵɵFactoryTarget.Component });\nGridBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.1\", type: GridBodyComponent, selector: \"ng-component\", inputs: { header: \"header\", actionAllowed: \"actionAllowed\" }, outputs: { rowSelect: \"rowSelect\", rowAction: \"rowAction\" }, viewQueries: [{ propertyName: \"template\", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: '', isInline: true });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: GridBodyComponent, decorators: [{\n type: Component,\n args: [{\n template: ''\n }]\n }], ctorParameters: function () { return [{ type: GridService }]; }, propDecorators: { header: [{\n type: Input\n }], actionAllowed: [{\n type: Input\n }], rowSelect: [{\n type: Output\n }], rowAction: [{\n type: Output\n }], template: [{\n type: ViewChild,\n args: [TemplateRef, { static: true }]\n }] } });\n\nclass TimeSince {\n transform(date) {\n const elapsed = (new Date().getTime() - new Date(date).getTime()) / 1000;\n let interval;\n if (interval >= 1) {\n return interval + ' year' + (interval > 1 ? 's' : '');\n }\n interval = Math.floor(elapsed / 2592000);\n if (interval >= 1) {\n return interval + ' month' + (interval > 1 ? 's' : '');\n }\n interval = Math.floor(elapsed / 86400);\n if (interval >= 1) {\n return interval + ' day' + (interval > 1 ? 's' : '');\n }\n interval = Math.floor(elapsed / 3600);\n if (interval >= 1) {\n return interval + ' hour' + (interval > 1 ? 's' : '');\n }\n interval = Math.floor(elapsed / 60);\n if (interval >= 1) {\n return interval + ' minute' + (interval > 1 ? 's' : '');\n }\n return Math.floor(elapsed) + ' second' + (elapsed > 1 ? 's' : '');\n }\n}\nTimeSince.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: TimeSince, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nTimeSince.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"15.0.1\", ngImport: i0, type: TimeSince, name: \"timeSince\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: TimeSince, decorators: [{\n type: Pipe,\n args: [{\n name: 'timeSince'\n }]\n }] });\n\nclass FormGridBodyComponent extends GridBodyComponent {\n load(formio, query) {\n query = query || {};\n return formio.loadForms({ params: query }).then((forms) => this.setRows(query, forms));\n }\n}\nFormGridBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: FormGridBodyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\nFormGridBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.1\", type: FormGridBodyComponent, selector: \"form-grid-body\", usesInheritance: true, ngImport: i0, template: \"<ng-template>\\n <tbody *ngIf=\\\"rows\\\">\\n <tr *ngFor=\\\"let form of rows\\\">\\n <td>\\n <div class=\\\"row\\\">\\n <div class=\\\"col-sm-8\\\">\\n <a routerLink=\\\"{{form._id}}/view\\\" (click)=\\\"onRowSelect($event, form)\\\"><h5>{{ form.title }}</h5></a>\\n <div class=\\\"form-updated small text-muted\\\">\\n Updated {{ form.modified | timeSince }} ago\\n </div>\\n </div>\\n <div class=\\\"col-sm-4\\\">\\n <button *ngIf=\\\"actionAllowed('formView')\\\" class=\\\"btn btn-outline-secondary btn-sm form-btn form-btn-use\\\" (click)=\\\"onRowAction($event, form, 'view')\\\"><span class=\\\"fa fa-pencil\\\"></span> Enter Data</button> \\n <button *ngIf=\\\"actionAllowed('formSubmission')\\\" class=\\\"btn btn-outline-secondary btn-sm form-btn\\\" (click)=\\\"onRowAction($event, form, 'submission')\\\"><span class=\\\"fa fa-list-alt\\\"></span> View Data</button> \\n <button *ngIf=\\\"actionAllowed('formEdit')\\\" class=\\\"btn btn-outline-secondary btn-sm form-btn\\\" (click)=\\\"onRowAction($event, form, 'edit')\\\"><span class=\\\"fa fa-edit\\\"></span> Edit Form</button> \\n <button *ngIf=\\\"actionAllowed('formPermission')\\\" class=\\\"btn btn-outline-secondary btn-sm form-btn\\\" (click)=\\\"onRowAction($event, form, 'permissions')\\\"><span class=\\\"fa fa-lock\\\"></span> Permissions</button> \\n <button *ngIf=\\\"actionAllowed('formDelete')\\\" class=\\\"btn btn-danger btn-sm form-btn form-btn-delete\\\" (click)=\\\"onRowAction($event, form, 'delete')\\\" title=\\\"Delete form\\\"><span class=\\\"fa fa-trash\\\"></span></button>\\n </div>\\n </div>\\n </td>\\n </tr>\\n </tbody>\\n</ng-template>\\n\", styles: [\".form-btn{font-size:.75rem;margin:2px 0}\\n\"], dependencies: [{ kind: \"directive\", type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i2.RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"pipe\", type: TimeSince, name: \"timeSince\" }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: FormGridBodyComponent, decorators: [{\n type: Component,\n args: [{ selector: 'form-grid-body', template: \"<ng-template>\\n <tbody *ngIf=\\\"rows\\\">\\n <tr *ngFor=\\\"let form of rows\\\">\\n <td>\\n <div class=\\\"row\\\">\\n <div class=\\\"col-sm-8\\\">\\n <a routerLink=\\\"{{form._id}}/view\\\" (click)=\\\"onRowSelect($event, form)\\\"><h5>{{ form.title }}</h5></a>\\n <div class=\\\"form-updated small text-muted\\\">\\n Updated {{ form.modified | timeSince }} ago\\n </div>\\n </div>\\n <div class=\\\"col-sm-4\\\">\\n <button *ngIf=\\\"actionAllowed('formView')\\\" class=\\\"btn btn-outline-secondary btn-sm form-btn form-btn-use\\\" (click)=\\\"onRowAction($event, form, 'view')\\\"><span class=\\\"fa fa-pencil\\\"></span> Enter Data</button> \\n <button *ngIf=\\\"actionAllowed('formSubmission')\\\" class=\\\"btn btn-outline-secondary btn-sm form-btn\\\" (click)=\\\"onRowAction($event, form, 'submission')\\\"><span class=\\\"fa fa-list-alt\\\"></span> View Data</button> \\n <button *ngIf=\\\"actionAllowed('formEdit')\\\" class=\\\"btn btn-outline-secondary btn-sm form-btn\\\" (click)=\\\"onRowAction($event, form, 'edit')\\\"><span class=\\\"fa fa-edit\\\"></span> Edit Form</button> \\n <button *ngIf=\\\"actionAllowed('formPermission')\\\" class=\\\"btn btn-outline-secondary btn-sm form-btn\\\" (click)=\\\"onRowAction($event, form, 'permissions')\\\"><span class=\\\"fa fa-lock\\\"></span> Permissions</button> \\n <button *ngIf=\\\"actionAllowed('formDelete')\\\" class=\\\"btn btn-danger btn-sm form-btn form-btn-delete\\\" (click)=\\\"onRowAction($event, form, 'delete')\\\" title=\\\"Delete form\\\"><span class=\\\"fa fa-trash\\\"></span></button>\\n </div>\\n </div>\\n </td>\\n </tr>\\n </tbody>\\n</ng-template>\\n\", styles: [\".form-btn{font-size:.75rem;margin:2px 0}\\n\"] }]\n }] });\n\nclass GridFooterComponent {\n constructor() {\n this.footerPositions = GridFooterPositions;\n this.pageChanged = new EventEmitter();\n this.createItem = new EventEmitter();\n }\n}\nGridFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: GridFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nGridFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.1\", type: GridFooterComponent, selector: \"ng-component\", inputs: { header: \"header\", body: \"body\", createText: \"createText\", size: \"size\", actionAllowed: \"actionAllowed\" }, outputs: { pageChanged: \"pageChanged\", createItem: \"createItem\" }, viewQueries: [{ propertyName: \"template\", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: '', isInline: true });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: GridFooterComponent, decorators: [{\n type: Component,\n args: [{\n template: ''\n }]\n }], ctorParameters: function () { return []; }, propDecorators: { header: [{\n type: Input\n }], body: [{\n type: Input\n }], createText: [{\n type: Input\n }], size: [{\n type: Input\n }], actionAllowed: [{\n type: Input\n }], pageChanged: [{\n type: Output\n }], createItem: [{\n type: Output\n }], template: [{\n type: ViewChild,\n args: [TemplateRef, { static: true }]\n }] } });\n\nclass FormGridFooterComponent extends GridFooterComponent {\n constructor() {\n super();\n }\n ngOnInit() {\n if (!this.createText) {\n this.createText = 'Create Form';\n }\n if (!this.size) {\n this.size = 7;\n }\n }\n}\nFormGridFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: FormGridFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nFormGridFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.1\", type: FormGridFooterComponent, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: \"<ng-template #footer let-position=\\\"position\\\" let-label=\\\"label\\\">\\n <thead class=\\\"formio-grid-footer\\\" *ngIf=\\\"position === footerPositions.top\\\">\\n <ng-container [ngTemplateOutlet]=\\\"defaultFooterTemplate\\\" [ngTemplateOutletContext]=\\\"{ label: label }\\\"></ng-container>\\n </thead>\\n <tfoot class=\\\"formio-grid-footer\\\" *ngIf=\\\"position === footerPositions.bottom\\\">\\n <ng-container [ngTemplateOutlet]=\\\"defaultFooterTemplate\\\" [ngTemplateOutletContext]=\\\"{ label: label }\\\"></ng-container>\\n </tfoot>\\n</ng-template>\\n\\n<ng-template let-label=\\\"label\\\" #defaultFooterTemplate>\\n <tr>\\n <td *ngIf=\\\"header\\\" [colSpan]=\\\"header.numHeaders\\\">\\n <button *ngIf=\\\"actionAllowed('formCreate')\\\" class=\\\"btn btn-primary form-btn-use pull-left float-left\\\" (click)=\\\"createItem.emit('form')\\\"><em class=\\\"glyphicon glyphicon-plus fa fa-plus\\\"></em> {{ createText }}</button>\\n <span class=\\\"pull-right float-right item-counter\\\"><span class=\\\"page-num\\\">{{ body.firstItem }} - {{ body.lastItem }}</span> / {{ body.total }} total</span>\\n <span [attr.aria-label]=\\\"label\\\" role=\\\"navigation\\\">\\n <pagination [totalItems]=\\\"body.total\\\" [itemsPerPage]=\\\"body.limit\\\" [(ngModel)]=\\\"body.skip\\\" (pageChanged)=\\\"pageChanged.emit($event)\\\" [maxSize]=\\\"size\\\" class=\\\"justify-content-center pagination-sm\\\">\\n </pagination>\\n </span>\\n </td>\\n </tr>\\n</ng-template>\\n\", styles: [\"tfoot.formio-grid-footer td{padding:.3rem}tfoot.formio-grid-footer .page-num{font-size:1.4em}tfoot.formio-grid-footer ul.pagination{margin-top:5px;margin-bottom:0}\\n\"], dependencies: [{ kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: i2$1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i2$1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"component\", type: i3.PaginationComponent, selector: \"pagination\", inputs: [\"align\", \"maxSize\", \"boundaryLinks\", \"directionLinks\", \"firstText\", \"previousText\", \"nextText\", \"lastText\", \"rotate\", \"pageBtnClass\", \"disabled\", \"customPageTemplate\", \"customNextTemplate\", \"customPreviousTemplate\", \"customFirstTemplate\", \"customLastTemplate\", \"itemsPerPage\", \"totalItems\"], outputs: [\"numPages\", \"pageChanged\"] }], encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: FormGridFooterComponent, decorators: [{\n type: Component,\n args: [{ encapsulation: ViewEncapsulation.None, template: \"<ng-template #footer let-position=\\\"position\\\" let-label=\\\"label\\\">\\n <thead class=\\\"formio-grid-footer\\\" *ngIf=\\\"position === footerPositions.top\\\">\\n <ng-container [ngTemplateOutlet]=\\\"defaultFooterTemplate\\\" [ngTemplateOutletContext]=\\\"{ label: label }\\\"></ng-container>\\n </thead>\\n <tfoot class=\\\"formio-grid-footer\\\" *ngIf=\\\"position === footerPositions.bottom\\\">\\n <ng-container [ngTemplateOutlet]=\\\"defaultFooterTemplate\\\" [ngTemplateOutletContext]=\\\"{ label: label }\\\"></ng-container>\\n </tfoot>\\n</ng-template>\\n\\n<ng-template let-label=\\\"label\\\" #defaultFooterTemplate>\\n <tr>\\n <td *ngIf=\\\"header\\\" [colSpan]=\\\"header.numHeaders\\\">\\n <button *ngIf=\\\"actionAllowed('formCreate')\\\" class=\\\"btn btn-primary form-btn-use pull-left float-left\\\" (click)=\\\"createItem.emit('form')\\\"><em class=\\\"glyphicon glyphicon-plus fa fa-plus\\\"></em> {{ createText }}</button>\\n <span class=\\\"pull-right float-right item-counter\\\"><span class=\\\"page-num\\\">{{ body.firstItem }} - {{ body.lastItem }}</span> / {{ body.total }} total</span>\\n <span [attr.aria-label]=\\\"label\\\" role=\\\"navigation\\\">\\n <pagination [totalItems]=\\\"body.total\\\" [itemsPerPage]=\\\"body.limit\\\" [(ngModel)]=\\\"body.skip\\\" (pageChanged)=\\\"pageChanged.emit($event)\\\" [maxSize]=\\\"size\\\" class=\\\"justify-content-center pagination-sm\\\">\\n </pagination>\\n </span>\\n </td>\\n </tr>\\n</ng-template>\\n\", styles: [\"tfoot.formio-grid-footer td{padding:.3rem}tfoot.formio-grid-footer .page-num{font-size:1.4em}tfoot.formio-grid-footer ul.pagination{margin-top:5px;margin-bottom:0}\\n\"] }]\n }], ctorParameters: function () { return []; } });\n\nvar FormComponents = {\n header: FormGridHeaderComponent,\n body: FormGridBodyComponent,\n footer: FormGridFooterComponent\n};\n\nclass SubmissionGridHeaderComponent extends GridHeaderComponent {\n load(formio, query, columns) {\n query = query || {};\n return formio.loadForm({ params: query }).then((form) => {\n this.headers = [];\n this.formComponents = new Map();\n this.setComponents(form.components);\n columns ? columns.forEach(column => {\n this.setHeader(this.getHeaderForColumn(column, this.formComponents.get(column.path)));\n }) : this.setComponentsHeaders(this.formComponents);\n return this.headers;\n });\n }\n setHeader(header) {\n this.headers.push(header);\n }\n getHeaderForColumn(column, component, sort) {\n return {\n label: column.label,\n key: column.path,\n sort: sort,\n component: component ? Components.create(component, null, null, true) : undefined,\n renderCell: column ? column.renderCell : undefined\n };\n }\n getHeaderForComponent(component, path, sort) {\n return {\n label: component.label,\n key: path,\n sort: sort,\n component: component ? Components.create(component, null, null, true) : undefined,\n };\n }\n // Set headers from components in case if columns are not provided\n setComponentsHeaders(components, sort) {\n components.forEach((component, path) => {\n if (component.input &&\n (!component.hasOwnProperty('tableView') || component.tableView)) {\n this.setHeader(this.getHeaderForComponent(component, path, sort));\n }\n });\n }\n // Map components\n setComponents(components) {\n Utils.eachComponent(components, (component, newPath) => {\n this.formComponents.set(`data.${newPath}`, component);\n });\n }\n}\nSubmissionGridHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: SubmissionGridHeaderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\nSubmissionGridHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.1\", type: SubmissionGridHeaderComponent, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: \"<ng-template>\\n <thead>\\n <tr>\\n <th *ngFor=\\\"let header of headers\\\">\\n <a (click)=\\\"sort.emit(header)\\\">\\n {{ header.label }} <span [ngClass]=\\\"{'glyphicon-triangle-top': (header.sort === 'asc'), 'glyphicon-triangle-bottom': (header.sort === 'desc')}\\\" class=\\\"glyphicon\\\" *ngIf=\\\"header.sort\\\"></span>\\n </a>\\n </th>\\n </tr>\\n </thead>\\n</ng-template>\\n\", dependencies: [{ kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: SubmissionGridHeaderComponent, decorators: [{\n type: Component,\n args: [{ template: \"<ng-template>\\n <thead>\\n <tr>\\n <th *ngFor=\\\"let header of headers\\\">\\n <a (click)=\\\"sort.emit(header)\\\">\\n {{ header.label }} <span [ngClass]=\\\"{'glyphicon-triangle-top': (header.sort === 'asc'), 'glyphicon-triangle-bottom': (header.sort === 'desc')}\\\" class=\\\"glyphicon\\\" *ngIf=\\\"header.sort\\\"></span>\\n </a>\\n </th>\\n </tr>\\n </thead>\\n</ng-template>\\n\" }]\n }] });\n\nclass SubmissionGridBodyComponent extends GridBodyComponent {\n load(formio, query) {\n query = query || {};\n return formio.loadSubmissions({ params: query })\n .then((submissions) => this.setRows(query, submissions));\n }\n /**\n * Render the cell data.\n *\n * @param submission\n * @param header\n * @return any\n */\n view(submission, header) {\n const cellValue = get(submission, header.key);\n if (header.renderCell) {\n return header.renderCell(cellValue, header.component);\n }\n else {\n if (header.component) {\n if (header.component.getView) {\n return header.component.getView(cellValue);\n }\n return header.component.asString(cellValue);\n }\n else {\n return cellValue.toString();\n }\n }\n }\n}\nSubmissionGridBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: SubmissionGridBodyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\nSubmissionGridBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.1\", type: SubmissionGridBodyComponent, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: \"<ng-template>\\n <tbody>\\n <tr *ngFor=\\\"let row of rows\\\" (click)=\\\"onRowSelect($event, row)\\\">\\n <td *ngFor=\\\"let rowHeader of header.headers\\\" [innerHTML]=\\\"view(row, rowHeader)\\\"></td>\\n </tr>\\n </tbody>\\n</ng-template>\\n\", dependencies: [{ kind: \"directive\", type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: SubmissionGridBodyComponent, decorators: [{\n type: Component,\n args: [{ template: \"<ng-template>\\n <tbody>\\n <tr *ngFor=\\\"let row of rows\\\" (click)=\\\"onRowSelect($event, row)\\\">\\n <td *ngFor=\\\"let rowHeader of header.headers\\\" [innerHTML]=\\\"view(row, rowHeader)\\\"></td>\\n </tr>\\n </tbody>\\n</ng-template>\\n\" }]\n }] });\n\nclass SubmissionGridFooterComponent extends GridFooterComponent {\n constructor() {\n super();\n }\n ngOnInit() {\n if (!this.size) {\n this.size = 7;\n }\n }\n}\nSubmissionGridFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: SubmissionGridFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nSubmissionGridFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.1\", type: SubmissionGridFooterComponent, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: \"<ng-template #footer let-position=\\\"position\\\">\\n <thead class=\\\"formio-grid-footer\\\" *ngIf=\\\"position === footerPositions.top\\\">\\n <ng-container [ngTemplateOutlet]=\\\"defaultFooterTemplate\\\"></ng-container>\\n </thead>\\n <tfoot class=\\\"formio-grid-footer\\\" *ngIf=\\\"position === footerPositions.bottom\\\">\\n <ng-container [ngTemplateOutlet]=\\\"defaultFooterTemplate\\\"></ng-container>\\n </tfoot>\\n</ng-template>\\n\\n<ng-template #defaultFooterTemplate>\\n <tr>\\n <td *ngIf=\\\"header\\\" [colSpan]=\\\"header.numHeaders\\\">\\n <button *ngIf=\\\"actionAllowed('submissionCreate') && createText\\\" class=\\\"btn btn-primary pull-left float-left\\\" (click)=\\\"createItem.emit('form')\\\"><em class=\\\"glyphicon glyphicon-plus fa fa-plus\\\"></em> {{ createText }}</button>\\n <span class=\\\"pull-right float-right item-counter\\\"><span class=\\\"page-num\\\">{{ body.firstItem }} - {{ body.lastItem }}</span> / {{ body.total }} total</span>\\n <pagination [totalItems]=\\\"body.total\\\" [itemsPerPage]=\\\"body.limit\\\" [(ngModel)]=\\\"body.skip\\\" (pageChanged)=\\\"pageChanged.emit($event)\\\" [maxSize]=\\\"size\\\" class=\\\"justify-content-center pagination-sm\\\"></pagination>\\n </td>\\n </tr>\\n</ng-template>\\n\", styles: [\"tfoot.formio-grid-footer td{padding:.3rem}tfoot.formio-grid-footer .page-num{font-size:1.4em}tfoot.formio-grid-footer ul.pagination{margin-top:5px;margin-bottom:0}\\n\"], dependencies: [{ kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: i2$1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i2$1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"component\", type: i3.PaginationComponent, selector: \"pagination\", inputs: [\"align\", \"maxSize\", \"boundaryLinks\", \"directionLinks\", \"firstText\", \"previousText\", \"nextText\", \"lastText\", \"rotate\", \"pageBtnClass\", \"disabled\", \"customPageTemplate\", \"customNextTemplate\", \"customPreviousTemplate\", \"customFirstTemplate\", \"customLastTemplate\", \"itemsPerPage\", \"totalItems\"], outputs: [\"numPages\", \"pageChanged\"] }], encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: SubmissionGridFooterComponent, decorators: [{\n type: Component,\n args: [{ encapsulation: ViewEncapsulation.None, template: \"<ng-template #footer let-position=\\\"position\\\">\\n <thead class=\\\"formio-grid-footer\\\" *ngIf=\\\"position === footerPositions.top\\\">\\n <ng-container [ngTemplateOutlet]=\\\"defaultFooterTemplate\\\"></ng-container>\\n </thead>\\n <tfoot class=\\\"formio-grid-footer\\\" *ngIf=\\\"position === footerPositions.bottom\\\">\\n <ng-container [ngTemplateOutlet]=\\\"defaultFooterTemplate\\\"></ng-container>\\n </tfoot>\\n</ng-template>\\n\\n<ng-template #defaultFooterTemplate>\\n <tr>\\n <td *ngIf=\\\"header\\\" [colSpan]=\\\"header.numHeaders\\\">\\n <button *ngIf=\\\"actionAllowed('submissionCreate') && createText\\\" class=\\\"btn btn-primary pull-left float-left\\\" (click)=\\\"createItem.emit('form')\\\"><em class=\\\"glyphicon glyphicon-plus fa fa-plus\\\"></em> {{ createText }}</button>\\n <span class=\\\"pull-right float-right item-counter\\\"><span class=\\\"page-num\\\">{{ body.firstItem }} - {{ body.lastItem }}</span> / {{ body.total }} total</span>\\n <pagination [totalItems]=\\\"body.total\\\" [itemsPerPage]=\\\"body.limit\\\" [(ngModel)]=\\\"body.skip\\\" (pageChanged)=\\\"pageChanged.emit($event)\\\" [maxSize]=\\\"size\\\" class=\\\"justify-content-center pagination-sm\\\"></pagination>\\n </td>\\n </tr>\\n</ng-template>\\n\", styles: [\"tfoot.formio-grid-footer td{padding:.3rem}tfoot.formio-grid-footer .page-num{font-size:1.4em}tfoot.formio-grid-footer ul.pagination{margin-top:5px;margin-bottom:0}\\n\"] }]\n }], ctorParameters: function () { return []; } });\n\nvar SubmissionComponents = {\n header: SubmissionGridHeaderComponent,\n body: SubmissionGridBodyComponent,\n footer: SubmissionGridFooterComponent\n};\n\nclass FormioGridComponent {\n constructor(alerts, resolver, ref) {\n this.alerts = alerts;\n this.resolver = resolver;\n this.ref = ref;\n this.footerPosition = GridFooterPositions.bottom;\n this.page = 0;\n this.isLoading = false;\n this.initialized = false;\n this.footerPositions = GridFooterPositions;\n this.select = this.rowSelect = new EventEmitter();\n this.rowAction = new EventEmitter();\n this.createItem = new EventEmitter();\n this.error = new EventEmitter();\n this.isLoading = true;\n }\n createComponent(property, component) {\n const factory = this.resolver.resolveComponentFactory(component);\n const componentRef = property.createComponent(factory);\n return componentRef.instance;\n }\n loadGrid(src) {\n // If no source is provided, then skip.\n if (!src && !this.formio) {\n return;\n }\n // Do not double load.\n if (this.formio && this.src && (src === this.src)) {\n return;\n }\n if (src) {\n this.src = src;\n this.formio = new FormioPromiseService(this.src, { formOnly: true });\n }\n // Load the header.\n this.header.load(this.formio, {}, this.columns)\n .then(() => this.setPage(0))\n .catch(error => this.onError(error));\n }\n ngOnInit() {\n // Create our components.\n const comps = this.components || ((this.gridType === 'form') ? FormComponents : SubmissionComponents);\n this.header = this.createComponent(this.headerElement, comps.header);\n this.header.actionAllowed = this.actionAllowed.bind(this);\n this.header.sort.subscribe(header => this.sortColumn(header));\n this.body = this.createComponent(this.bodyElement, comps.body);\n this.body.header = this.header;\n this.body.actionAllowed = this.actionAllowed.bind(this);\n this.body.rowSelect.subscribe(row => this.rowSelect.emit(row));\n this.body.rowAction.subscribe(action => this.rowAction.emit(action));\n this.footer = this.createComponent(this.footerElement, comps.footer);\n this.footer.header = this.header;\n this.footer.body = this.body;\n this.footer.actionAllowed = this.actionAllowed.bind(this);\n this.footer.createText = this.createText;\n this.footer.size = this.size;\n this.footer.pageChanged.subscribe(page => this.pageChanged(page));\n this.footer.createItem.subscribe(item => this.createItem.emit(item));\n }\n ngOnChanges(changes) {\n if (this.initialized) {\n if ((changes.src && changes.src.currentValue) ||\n (changes.formio && changes.formio.currentValue)) {\n this.loadGrid(changes.src.currentValue);\n }\n if (changes.items && changes.items.currentValue) {\n this.refreshGrid();\n }\n }\n if (this.footer &&\n (changes.createText && changes.createText.currentValue)) {\n this.footer.createText = changes.createText.currentValue;\n }\n }\n ngAfterViewInit() {\n this.alerts.setAlerts([]);\n this.query = this.query || {};\n if (this.refresh) {\n this.refresh.subscribe((query) => this.refreshGrid(query));\n }\n this.loadGrid(this.src);\n this.initialized = true;\n this.ref.detectChanges();\n }\n actionAllowed(action) {\n if (this.isActionAllowed) {\n return this.isActionAllowed(action);\n }\n else {\n return true;\n }\n }\n onError(error) {\n this.isLoading = false;\n this.error.emit(error);\n if (typeof error === 'string' || error.message) {\n this.alerts.setAlert({\n type: 'danger',\n message: error.message || error\n });\n }\n }\n refreshGrid(query) {\n this.alerts.setAlerts([]);\n this.query = query || this.query;\n if (!this.query.hasOwnProperty('limit')) {\n this.query.limit = 10;\n }\n if (!this.query.hasOwnProperty('skip')) {\n this.query.skip = 0;\n }\n this.isLoading = true;\n this.ref.detectChanges();\n Formio.cache = {};\n let loader = null;\n if (this.items) {\n loader = Promise.resolve(this.body.setRows(this.query, this.items));\n }\n else {\n loader = this.body.load(this.formio, this.query);\n }\n return loader.then(info => {\n this.isLoading = false;\n this.initialized = true;\n this.ref.detectChanges();\n }).catch(error => this.onError(error));\n }\n setPage(num = -1) {\n this.page = num !== -1 ? num : this.page;\n if (!this.query.hasOwnProperty('limit')) {\n this.query.limit = 10;\n }\n if (!this.query.hasOwnProperty('skip')) {\n this.query.skip = 0;\n }\n this.query.skip = this.page * this.query.limit;\n this.refreshGrid();\n }\n sortColumn(header) {\n // Reset all other column sorts.\n each(this.header.headers, (col) => {\n if (col.key !== header.key) {\n col.sort = '';\n }\n });\n switch (header.sort) {\n case 'asc':\n header.sort = SortType.DESC;\n this.query.sort = '-' + header.key;\n break;\n case 'desc':\n header.sort = undefined;\n delete this.query.sort;\n break;\n case undefined:\n header.sort = SortType.ASC;\n this.query.sort = header.key;\n break;\n }\n this.refreshGrid();\n }\n pageChanged(page) {\n this.setPage(page.page - 1);\n }\n}\nFormioGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: FormioGridComponent, deps: [{ token: i1$1.FormioAlerts }, { token: i0.ComponentFactoryResolver }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });\nFormioGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.1\", type: FormioGridComponent, selector: \"formio-grid\", inputs: { footerPosition: \"footerPosition\", src: \"src\", items: \"items\", onForm: \"onForm\", query: \"query\", refresh: \"refresh\", columns: \"columns\", gridType: \"gridType\", size: \"size\", components: \"components\", formio: \"formio\", label: \"label\", createText: \"createText\", isActionAllowed: \"isActionAllowed\" }, outputs: { select: \"select\", rowSelect: \"rowSelect\", rowAction: \"rowAction\", createItem: \"createItem\", error: \"error\" }, viewQueries: [{ propertyName: \"headerElement\", first: true, predicate: [\"headerTemplate\"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: \"bodyElement\", first: true, predicate: [\"bodyTemplate\"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: \"footerElement\", first: true, predicate: [\"footerTemplate\"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: \"<ng-template #headerTemplate></ng-template>\\n<ng-template #bodyTemplate></ng-template>\\n<ng-template #footerTemplate></ng-template>\\n<div class=\\\"formio-grid\\\">\\n <formio-alerts [alerts]=\\\"alerts\\\"></formio-alerts>\\n <table class=\\\"table table-bordered table-striped table-hover\\\">\\n <ng-container *ngIf=\\\"initialized && [footerPositions.top, footerPositions.both].indexOf(footerPosition) !== -1\\\"\\n [ngTemplateOutlet]=\\\"footer.template\\\" [ngTemplateOutletContext]=\\\"{ position: footerPositions.top, label: label }\\\">\\n </ng-container>\\n <ng-container *ngIf=\\\"initialized\\\"\\n [ngTemplateOutlet]=\\\"header.template\\\"></ng-container>\\n <formio-loader [isLoading]=\\\"isLoading\\\"></formio-loader>\\n <ng-container *ngIf=\\\"initialized\\\" [ngTemplateOutlet]=\\\"body.template\\\"></ng-container>\\n <ng-container *ngIf=\\\"initialized && [footerPositions.bottom, footerPositions.both].indexOf(footerPosition) !== -1\\\"\\n [ngTemplateOutlet]=\\\"footer.template\\\" [ngTemplateOutletContext]=\\\"{ position: footerPositions.bottom, label: label }\\\">\\n </ng-container>\\n </table>\\n</div>\\n\", styles: [\".formio-grid{position:relative;width:100%}.grid-refresh{height:400px;width:100%}\\n\"], dependencies: [{ kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: i1$1.FormioLoaderComponent, selector: \"formio-loader\", inputs: [\"isLoading\"] }, { kind: \"component\", type: i1$1.FormioAlertsComponent, selector: \"formio-alerts\", inputs: [\"alerts\"], outputs: [\"focusComponent\"] }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: FormioGridComponent, decorators: [{\n type: Component,\n args: [{ selector: 'formio-grid', template: \"<ng-template #headerTemplate></ng-template>\\n<ng-template #bodyTemplate></ng-template>\\n<ng-template #footerTemplate></ng-template>\\n<div class=\\\"formio-grid\\\">\\n <formio-alerts [alerts]=\\\"alerts\\\"></formio-alerts>\\n <table class=\\\"table table-bordered table-striped table-hover\\\">\\n <ng-container *ngIf=\\\"initialized && [footerPositions.top, footerPositions.both].indexOf(footerPosition) !== -1\\\"\\n [ngTemplateOutlet]=\\\"footer.template\\\" [ngTemplateOutletContext]=\\\"{ position: footerPositions.top, label: label }\\\">\\n </ng-container>\\n <ng-container *ngIf=\\\"initialized\\\"\\n [ngTemplateOutlet]=\\\"header.template\\\"></ng-container>\\n <formio-loader [isLoading]=\\\"isLoading\\\"></formio-loader>\\n <ng-container *ngIf=\\\"initialized\\\" [ngTemplateOutlet]=\\\"body.template\\\"></ng-container>\\n <ng-container *ngIf=\\\"initialized && [footerPositions.bottom, footerPositions.both].indexOf(footerPosition) !== -1\\\"\\n [ngTemplateOutlet]=\\\"footer.template\\\" [ngTemplateOutletContext]=\\\"{ position: footerPositions.bottom, label: label }\\\">\\n </ng-container>\\n </table>\\n</div>\\n\", styles: [\".formio-grid{position:relative;width:100%}.grid-refresh{height:400px;width:100%}\\n\"] }]\n }], ctorParameters: function () { return [{ type: i1$1.FormioAlerts }, { type: i0.ComponentFactoryResolver }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { footerPosition: [{\n type: Input\n }], src: [{\n type: Input\n }], items: [{\n type: Input\n }], onForm: [{\n type: Input\n }], query: [{\n type: Input\n }], refresh: [{\n type: Input\n }], columns: [{\n type: Input\n }], gridType: [{\n type: Input\n }], size: [{\n type: Input\n }], components: [{\n type: Input\n }], formio: [{\n type: Input\n }], label: [{\n type: Input\n }], createText: [{\n type: Input\n }], isActionAllowed: [{\n type: Input\n }], select: [{\n type: Output\n }], rowSelect: [{\n type: Output\n }], rowAction: [{\n type: Output\n }], createItem: [{\n type: Output\n }], error: [{\n type: Output\n }], headerElement: [{\n type: ViewChild,\n args: ['headerTemplate', { read: ViewContainerRef, static: true }]\n }], bodyElement: [{\n type: ViewChild,\n args: ['bodyTemplate', { read: ViewContainerRef, static: true }]\n }], footerElement: [{\n type: ViewChild,\n args: ['footerTemplate', { read: ViewContainerRef, static: true }]\n }] } });\n\nclass FormioGrid {\n}\nFormioGrid.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: FormioGrid, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nFormioGrid.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.0.1\", ngImport: i0, type: FormioGrid, declarations: [FormioGridComponent,\n FormGridHeaderComponent,\n FormGridBodyComponent,\n FormGridFooterComponent,\n SubmissionGridHeaderComponent,\n SubmissionGridBodyComponent,\n SubmissionGridFooterComponent,\n GridHeaderComponent,\n GridBodyComponent,\n GridFooterComponent,\n TimeSince], imports: [CommonModule,\n FormsModule,\n FormioModule,\n RouterModule, i3.PaginationModule], exports: [FormioGridComponent] });\nFormioGrid.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: FormioGrid, providers: [\n FormioAlerts,\n GridService\n ], imports: [CommonModule,\n FormsModule,\n FormioModule,\n RouterModule,\n PaginationModule.forRoot()] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: FormioGrid, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule,\n FormsModule,\n FormioModule,\n RouterModule,\n PaginationModule.forRoot()\n ],\n declarations: [\n FormioGridComponent,\n FormGridHeaderComponent,\n FormGridBodyComponent,\n FormGridFooterComponent,\n SubmissionGridHeaderComponent,\n SubmissionGridBodyComponent,\n SubmissionGridFooterComponent,\n GridHeaderComponent,\n GridBodyComponent,\n GridFooterComponent,\n TimeSince\n ],\n exports: [\n FormioGridComponent\n ],\n providers: [\n FormioAlerts,\n GridService\n ]\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FormGridBodyComponent, FormGridFooterComponent, FormGridHeaderComponent, FormioGrid, FormioGridComponent, GridBodyComponent, GridFooterComponent, GridHeaderComponent, GridService, SubmissionGridBodyComponent, SubmissionGridFooterComponent, SubmissionGridHeaderComponent };\n//# sourceMappingURL=formio-angular-grid.mjs.map\n//# sourceMappingURL=formio-angular-grid.mjs.map\n","map":{"version":3,"file":"formio-angular-grid.mjs","sources":["../../../projects/angular-formio/grid/src/types/grid-footer-positions.ts","../../../projects/angular-formio/grid/src/GridHeaderComponent.ts","../../../projects/angular-formio/grid/src/types/grid-header.ts","../../../projects/angular-formio/grid/src/form/FormGridHeader.component.ts","../../../projects/angular-formio/grid/src/form/FormGridHeader.component.html","../../../projects/angular-formio/grid/src/grid.service.ts","../../../projects/angular-formio/grid/src/GridBodyComponent.ts","../../../projects/angular-formio/grid/src/form/time-since.pipe.ts","../../../projects/angular-formio/grid/src/form/FormGridBody.component.ts","../../../projects/angular-formio/grid/src/form/FormGridBody.component.html","../../../projects/angular-formio/grid/src/GridFooterComponent.ts","../../../projects/angular-formio/grid/src/form/FormGridFooter.component.ts","../../../projects/angular-formio/grid/src/form/FormGridFooter.component.html","../../../projects/angular-formio/grid/src/form/index.ts","../../../projects/angular-formio/grid/src/submission/SubmissionGridHeader.component.ts","../../../projects/angular-formio/grid/src/submission/SubmissionGridHeader.component.html","../../../projects/angular-formio/grid/src/submission/SubmissionGridBody.component.ts","../../../projects/angular-formio/grid/src/submission/SubmissionGridBody.component.html","../../../projects/angular-formio/grid/src/submission/SubmissionGridFooter.component.ts","../../../projects/angular-formio/grid/src/submission/SubmissionGridFooter.component.html","../../../projects/angular-formio/grid/src/submission/index.ts","../../../projects/angular-formio/grid/src/grid.component.ts","../../../projects/angular-formio/grid/src/grid.component.html","../../../projects/angular-formio/grid/src/grid.module.ts","../../../projects/angular-formio/grid/src/formio-angular-grid.ts"],"sourcesContent":["export enum GridFooterPositions {\n bottom,\n top,\n both\n}\n","import { Output, EventEmitter, ViewChild, TemplateRef, Input, Component } from '@angular/core';\nimport {FormioPromiseService} from '@formio/angular';\nimport {GridHeader} from './types/grid-header';\n\n@Component({\n template: ''\n})\nexport class GridHeaderComponent {\n @Input() actionAllowed: any;\n @Output() sort: EventEmitter<GridHeader>;\n @ViewChild(TemplateRef, {static: true}) template: TemplateRef<any>;\n public headers: Array<GridHeader>;\n constructor() {\n this.headers = [];\n this.sort = new EventEmitter();\n }\n\n get numHeaders() {\n return this.headers.length;\n }\n\n load(formio: FormioPromiseService, query?: any, columns?: Array<any>): Promise<any> {\n return Promise.resolve([]);\n }\n}\n","import {ComponentInstance} from '@formio/angular';\n\nexport interface GridHeader {\n component?: ComponentInstance;\n key: string;\n sort?: SortType;\n label: string;\n renderCell?(cellValue: any, component?: ComponentInstance): string;\n}\n\nexport enum SortType {\n ASC = 'asc',\n DESC = 'desc'\n}\n","import {Component} from '@angular/core';\nimport {GridHeaderComponent} from '../GridHeaderComponent';\nimport {GridHeader, SortType} from '../types/grid-header';\n\n@Component({\n selector: 'form-grid-header',\n templateUrl: './FormGridHeader.component.html'\n})\nexport class FormGridHeaderComponent extends GridHeaderComponent {\n public header: GridHeader;\n load(formio?: any) {\n this.header = {\n label: 'Title',\n key: 'title',\n sort: SortType.ASC\n };\n this.headers = [this.header];\n return Promise.resolve(this.headers);\n }\n\n get numHeaders() {\n return 2;\n }\n}\n","<ng-template>\n <thead>\n <tr>\n <th>\n <div class=\"row\">\n <div class=\"col-sm-8\">\n <a (click)=\"sort.emit(header)\">\n {{ header.label }} <span [ngClass]=\"{'glyphicon-triangle-top fa-caret-up': (header.sort === 'asc'), 'glyphicon-triangle-bottom fa-caret-down': (header.sort === 'desc')}\" class=\"glyphicon fa\" *ngIf=\"header.sort\"></span>\n </a>\n </div>\n <div class=\"col-sm-4\">\n Operations\n </div>\n </div>\n </th>\n </tr>\n </thead>\n</ng-template>\n","import { Injectable } from '@angular/core';\nimport _intersection from 'lodash/intersection';\n\n@Injectable()\nexport class GridService {\n public rows: Array<any>;\n constructor() {}\n\n setRows(rows) {\n this.rows = rows;\n }\n\n getFormsPerPage() {\n return this.rows?.length;\n }\n}\n","import { Input, Output, EventEmitter, ViewChild, TemplateRef, Component } from '@angular/core';\nimport { each, clone } from 'lodash';\nimport { GridHeaderComponent } from './GridHeaderComponent';\nimport { GridService } from './grid.service';\nimport {FormioPromiseService} from '@formio/angular';\n\n@Component({\n template: ''\n})\nexport class GridBodyComponent {\n @Input() header: GridHeaderComponent;\n @Input() actionAllowed: any;\n @Output() rowSelect: EventEmitter<any>;\n @Output() rowAction: EventEmitter<any>;\n @ViewChild(TemplateRef, {static: true}) template: TemplateRef<any>;\n public rows: Array<any>;\n public loading: Boolean;\n public firstItem = 0;\n public lastItem = 0;\n public skip = 0;\n public limit = 0;\n public total = 0;\n constructor(public service: GridService) {\n this.rowSelect = new EventEmitter();\n this.rowAction = new EventEmitter();\n this.loading = true;\n }\n\n load(formio: FormioPromiseService, query?: any): Promise<any> {\n return formio.loadForm(query);\n }\n\n onRowSelect(event, row) {\n event.preventDefault();\n this.rowSelect.emit(row);\n }\n\n onRowAction(event, row, action) {\n event.preventDefault();\n this.rowAction.emit({ row, action });\n }\n\n /**\n * Set the rows for this Grid body.\n *\n * @param query\n * @param items\n * @return any\n */\n setRows(query: any, items: any) {\n this.rows = [];\n\n if (typeof items !== 'object') {\n this.firstItem = 0;\n this.lastItem = 0;\n this.total = 0;\n this.skip = 0;\n this.loading = false;\n this.service.setRows(this.rows);\n \n return this.rows;\n }\n\n this.firstItem = query.skip + 1;\n this.lastItem = this.firstItem + items.length - 1;\n if (this.lastItem === 0) {\n this.firstItem = 0;\n }\n this.total = items.serverCount;\n this.limit = query.limit;\n this.skip = Math.floor(items.skip / query.limit) + 1;\n this.loading = false;\n each(items, (item: any) => {\n this.rows.push(clone(item));\n });\n this.service.setRows(this.rows);\n\n return this.rows;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'timeSince'\n})\nexport class TimeSince implements PipeTransform {\n transform(date: Date): string {\n const elapsed = (new Date().getTime() - new Date(date).getTime()) / 1000;\n let interval;\n if (interval >= 1) {\n return interval + ' year' + (interval > 1 ? 's' : '');\n }\n interval = Math.floor(elapsed / 2592000);\n if (interval >= 1){\n return interval + ' month' + (interval > 1 ? 's' : '');\n }\n interval = Math.floor(elapsed / 86400);\n if (interval >= 1) {\n return interval + ' day' + (interval > 1 ? 's' : '');\n }\n interval = Math.floor(elapsed / 3600);\n if (interval >= 1) {\n return interval + ' hour' + (interval > 1 ? 's' : '');\n }\n interval = Math.floor(elapsed / 60);\n if (interval >= 1) {\n return interval + ' minute' + (interval > 1 ? 's' : '');\n }\n return Math.floor(elapsed) + ' second' + (elapsed > 1 ? 's' : '');\n }\n}","import { Component } from '@angular/core';\nimport { GridBodyComponent } from '../GridBodyComponent';\nimport { FormioPromiseService } from '@formio/angular';\n\n@Component({\n selector: 'form-grid-body',\n styleUrls: ['./FormGridBody.component.scss'],\n templateUrl: './FormGridBody.component.html'\n})\nexport class FormGridBodyComponent extends GridBodyComponent {\n load(formio: FormioPromiseService, query?: any) {\n query = query || {};\n return formio.loadForms({ params: query }).then((forms: any) => this.setRows(query, forms));\n }\n}\n","<ng-template>\n <tbody *ngIf=\"rows\">\n <tr *ngFor=\"let form of rows\">\n <td>\n <div class=\"row\">\n <div class=\"col-sm-8\">\n <a routerLink=\"{{form._id}}/view\" (click)=\"onRowSelect($event, form)\"><h5>{{ form.title }}</h5></a>\n <div class=\"form-updated small text-muted\">\n Updated {{ form.modified | timeSince }} ago\n </div>\n </div>\n <div class=\"col-sm-4\">\n <button *ngIf=\"actionAllowed('formView')\" class=\"btn btn-outline-secondary btn-sm form-btn form-btn-use\" (click)=\"onRowAction($event, form, 'view')\"><span class=\"fa fa-pencil\"></span> Enter Data</button> \n <button *ngIf=\"actionAllowed('formSubmission')\" class=\"btn btn-outline-secondary btn-sm form-btn\" (click)=\"onRowAction($event, form, 'submission')\"><span class=\"fa fa-list-alt\"></span> View Data</button> \n <button *ngIf=\"actionAllowed('formEdit')\" class=\"btn btn-outline-secondary btn-sm form-btn\" (click)=\"onRowAction($event, form, 'edit')\"><span class=\"fa fa-edit\"></span> Edit Form</button> \n <button *ngIf=\"actionAllowed('formPermission')\" class=\"btn btn-outline-secondary btn-sm form-btn\" (click)=\"onRowAction($event, form, 'permissions')\"><span class=\"fa fa-lock\"></span> Permissions</button> \n <button *ngIf=\"actionAllowed('formDelete')\" class=\"btn btn-danger btn-sm form-btn form-btn-delete\" (click)=\"onRowAction($event, form, 'delete')\" title=\"Delete form\"><span class=\"fa fa-trash\"></span></button>\n </div>\n </div>\n </td>\n </tr>\n </tbody>\n</ng-template>\n","import { GridFooterPositions } from './types/grid-footer-positions';\nimport { Input, Output, ViewChild, TemplateRef, EventEmitter, Component } from '@angular/core';\nimport { GridHeaderComponent } from './GridHeaderComponent';\nimport { GridBodyComponent } from './GridBodyComponent';\n\n@Component({\n template: ''\n})\nexport class GridFooterComponent {\n @Input() header: GridHeaderComponent;\n @Input() body: GridBodyComponent;\n @Input() createText: String;\n @Input() size: number;\n @Input() actionAllowed: any;\n @Output() pageChanged: EventEmitter<any>;\n @Output() createItem: EventEmitter<any>;\n @ViewChild(TemplateRef, {static: true}) template: TemplateRef<any>;\n\n public footerPositions = GridFooterPositions;\n\n constructor() {\n this.pageChanged = new EventEmitter();\n this.createItem = new EventEmitter();\n }\n}\n","import {Component, ViewEncapsulation, OnInit } from '@angular/core';\nimport { GridFooterComponent } from '../GridFooterComponent';\n\n@Component({\n templateUrl: './FormGridFooter.component.html',\n styleUrls: ['../grid.footer.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FormGridFooterComponent extends GridFooterComponent implements OnInit {\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n if (!this.createText) {\n this.createText = 'Create Form';\n }\n if (!this.size) {\n this.size = 7;\n }\n }\n}\n","<ng-template #footer let-position=\"position\" let-label=\"label\">\n <thead class=\"formio-grid-footer\" *ngIf=\"position === footerPositions.top\">\n <ng-container [ngTemplateOutlet]=\"defaultFooterTemplate\" [ngTemplateOutletContext]=\"{ label: label }\"></ng-container>\n </thead>\n <tfoot class=\"formio-grid-footer\" *ngIf=\"position === footerPositions.bottom\">\n <ng-container [ngTemplateOutlet]=\"defaultFooterTemplate\" [ngTemplateOutletContext]=\"{ label: label }\"></ng-container>\n </tfoot>\n</ng-template>\n\n<ng-template let-label=\"label\" #defaultFooterTemplate>\n <tr>\n <td *ngIf=\"header\" [colSpan]=\"header.numHeaders\">\n <button *ngIf=\"actionAllowed('formCreate')\" class=\"btn btn-primary form-btn-use pull-left float-left\" (click)=\"createItem.emit('form')\"><em class=\"glyphicon glyphicon-plus fa fa-plus\"></em> {{ createText }}</button>\n <span class=\"pull-right float-right item-counter\"><span class=\"page-num\">{{ body.firstItem }} - {{ body.lastItem }}</span> / {{ body.total }} total</span>\n <span [attr.aria-label]=\"label\" role=\"navigation\">\n <pagination [totalItems]=\"body.total\" [itemsPerPage]=\"body.limit\" [(ngModel)]=\"body.skip\" (pageChanged)=\"pageChanged.emit($event)\" [maxSize]=\"size\" class=\"justify-content-center pagination-sm\">\n </pagination>\n </span>\n </td>\n </tr>\n</ng-template>\n","import { FormGridHeaderComponent } from './FormGridHeader.component';\nimport { FormGridBodyComponent } from './FormGridBody.component';\nimport { FormGridFooterComponent } from './FormGridFooter.component';\nexport default {\n header: FormGridHeaderComponent,\n body: FormGridBodyComponent,\n footer: FormGridFooterComponent\n};\n","import {Component, EventEmitter} from '@angular/core';\nimport {Utils, Components, ExtendedComponentSchema} from 'formiojs';\nimport {GridHeaderComponent} from '../GridHeaderComponent';\nimport {FormioPromiseService} from '@formio/angular';\nimport {ComponentInstance, FormioForm} from '@formio/angular';\nimport {GridColumn} from '../types/grid-column';\nimport {GridHeader, SortType} from '../types/grid-header';\n\n@Component({\n templateUrl: './SubmissionGridHeader.component.html'\n})\nexport class SubmissionGridHeaderComponent extends GridHeaderComponent {\n\n // Map structure where the key is the path and the value is the component\n formComponents: Map<string, ExtendedComponentSchema>;\n\n load(formio: FormioPromiseService, query?: any, columns?: Array<GridColumn>) {\n query = query || {};\n return formio.loadForm({params: query}).then((form: FormioForm) => {\n this.headers = [];\n this.formComponents = new Map<string, ExtendedComponentSchema>();\n this.setComponents(form.components);\n columns ? columns.forEach(column => {\n this.setHeader(this.getHeaderForColumn(column, this.formComponents.get(column.path)));\n }) : this.setComponentsHeaders(this.formComponents);\n\n return this.headers;\n });\n }\n\n setHeader(header: GridHeader) {\n this.headers.push(header);\n }\n\n getHeaderForColumn(column: GridColumn, component?: ExtendedComponentSchema, sort?: SortType) {\n return {\n label: column.label,\n key: column.path,\n sort: sort,\n component: component ? Components.create(component, null, null, true) as ComponentInstance : undefined,\n renderCell: column ? column.renderCell : undefined\n };\n }\n\n getHeaderForComponent(component: ExtendedComponentSchema, path: string, sort?: SortType) {\n return {\n label: component.label,\n key: path,\n sort: sort,\n component: component ? Components.create(component, null, null, true) as ComponentInstance : undefined,\n };\n }\n // Set headers from components in case if columns are not provided\n setComponentsHeaders(components: Map<string, ExtendedComponentSchema>, sort?: SortType) {\n components.forEach((component, path) => {\n if (\n component.input &&\n (!component.hasOwnProperty('tableView') || component.tableView)\n ) {\n this.setHeader(this.getHeaderForComponent(component, path, sort));\n }\n });\n }\n\n // Map components\n setComponents(components) {\n Utils.eachComponent(components, (component: ExtendedComponentSchema, newPath: string) => {\n this.formComponents.set(`data.${newPath}`, component);\n });\n }\n}\n\n","<ng-template>\n <thead>\n <tr>\n <th *ngFor=\"let header of headers\">\n <a (click)=\"sort.emit(header)\">\n {{ header.label }} <span [ngClass]=\"{'glyphicon-triangle-top': (header.sort === 'asc'), 'glyphicon-triangle-bottom': (header.sort === 'desc')}\" class=\"glyphicon\" *ngIf=\"header.sort\"></span>\n </a>\n </th>\n </tr>\n </thead>\n</ng-template>\n","import { Component } from '@angular/core';\nimport { each, get } from 'lodash';\nimport { GridBodyComponent } from '../GridBodyComponent';\nimport {FormioPromiseService} from '@formio/angular';\nimport { GridHeader } from '../types/grid-header';\nimport {FormioSubmission} from '@formio/angular';\n@Component({\n templateUrl: './SubmissionGridBody.component.html'\n})\nexport class SubmissionGridBodyComponent extends GridBodyComponent {\n load(formio: FormioPromiseService, query?: any) {\n query = query || {};\n return formio.loadSubmissions({ params: query })\n .then((submissions: any) => this.setRows(query, submissions));\n }\n\n /**\n * Render the cell data.\n *\n * @param submission\n * @param header\n * @return any\n */\n view(submission: FormioSubmission, header: GridHeader): string {\n const cellValue: any = get(submission, header.key);\n if (header.renderCell) {\n return header.renderCell(cellValue, header.component);\n } else {\n if (header.component) {\n if (header.component.getView) {\n return header.component.getView(cellValue);\n }\n return header.component.asString(cellValue);\n } else {\n return cellValue.toString();\n }\n }\n }\n}\n","<ng-template>\n <tbody>\n <tr *ngFor=\"let row of rows\" (click)=\"onRowSelect($event, row)\">\n <td *ngFor=\"let rowHeader of header.headers\" [innerHTML]=\"view(row, rowHeader)\"></td>\n </tr>\n </tbody>\n</ng-template>\n","import {Component, OnInit, ViewEncapsulation} from '@angular/core';\nimport { GridFooterComponent } from '../GridFooterComponent';\n\n@Component({\n templateUrl: './SubmissionGridFooter.component.html',\n styleUrls: ['../grid.footer.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class SubmissionGridFooterComponent extends GridFooterComponent implements OnInit {\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n if (!this.size) {\n this.size = 7;\n }\n }\n}\n","<ng-template #footer let-position=\"position\">\n <thead class=\"formio-grid-footer\" *ngIf=\"position === footerPositions.top\">\n <ng-container [ngTemplateOutlet]=\"defaultFooterTemplate\"></ng-container>\n </thead>\n <tfoot class=\"formio-grid-footer\" *ngIf=\"position === footerPositions.bottom\">\n <ng-container [ngTemplateOutlet]=\"defaultFooterTemplate\"></ng-container>\n </tfoot>\n</ng-template>\n\n<ng-template #defaultFooterTemplate>\n <tr>\n <td *ngIf=\"header\" [colSpan]=\"header.numHeaders\">\n <button *ngIf=\"actionAllowed('submissionCreate') && createText\" class=\"btn btn-primary pull-left float-left\" (click)=\"createItem.emit('form')\"><em class=\"glyphicon glyphicon-plus fa fa-plus\"></em> {{ createText }}</button>\n <span class=\"pull-right float-right item-counter\"><span class=\"page-num\">{{ body.firstItem }} - {{ body.lastItem }}</span> / {{ body.total }} total</span>\n <pagination [totalItems]=\"body.total\" [itemsPerPage]=\"body.limit\" [(ngModel)]=\"body.skip\" (pageChanged)=\"pageChanged.emit($event)\" [maxSize]=\"size\" class=\"justify-content-center pagination-sm\"></pagination>\n </td>\n </tr>\n</ng-template>\n","import { SubmissionGridHeaderComponent } from './SubmissionGridHeader.component';\nimport { SubmissionGridBodyComponent } from './SubmissionGridBody.component';\nimport { SubmissionGridFooterComponent } from './SubmissionGridFooter.component';\nexport default {\n header: SubmissionGridHeaderComponent,\n body: SubmissionGridBodyComponent,\n footer: SubmissionGridFooterComponent\n};\n","import { GridFooterPositions } from './types/grid-footer-positions';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport {FormioAlerts} from '@formio/angular';\nimport {each} from 'lodash';\nimport {Formio} from 'formiojs';\nimport {GridHeaderComponent} from './GridHeaderComponent';\nimport {GridBodyComponent} from './GridBodyComponent';\nimport {GridFooterComponent} from './GridFooterComponent';\nimport FormComponents from './form/index';\nimport SubmissionComponents from './submission/index';\nimport {FormioPromiseService} from '@formio/angular';\nimport {GridColumn} from './types/grid-column';\nimport {GridHeader, SortType} from './types/grid-header';\n\n@Component({\n selector: 'formio-grid',\n styleUrls: ['./grid.component.scss'],\n templateUrl: './grid.component.html'\n})\nexport class FormioGridComponent implements OnChanges, OnInit, AfterViewInit {\n @Input() footerPosition = GridFooterPositions.bottom;\n @Input() src?: string;\n @Input() items?: Array<any>;\n @Input() onForm?: Promise<any>;\n @Input() query?: any;\n @Input() refresh?: EventEmitter<object>;\n @Input() columns?: Array<GridColumn>;\n @Input() gridType?: string;\n @Input() size?: number;\n @Input() components?: any;\n @Input() formio?: FormioPromiseService;\n @Input() label?: string;\n @Input() createText: String;\n @Input() isActionAllowed: any;\n @Output() select: EventEmitter<object>;\n @Output() rowSelect: EventEmitter<object>;\n @Output() rowAction: EventEmitter<object>;\n @Output() createItem: EventEmitter<any>;\n @Output() error: EventEmitter<any>;\n @ViewChild('headerTemplate', {read: ViewContainerRef, static: true}) headerElement: ViewContainerRef;\n @ViewChild('bodyTemplate', {read: ViewContainerRef, static: true}) bodyElement: ViewContainerRef;\n @ViewChild('footerTemplate', {read: ViewContainerRef, static: true}) footerElement: ViewContainerRef;\n\n public page = 0;\n public isLoading = false;\n public initialized = false;\n public header: GridHeaderComponent;\n public body: GridBodyComponent;\n public footer: GridFooterComponent;\n public footerPositions = GridFooterPositions;\n\n constructor(\n public alerts: FormioAlerts,\n private resolver: ComponentFactoryResolver,\n private ref: ChangeDetectorRef\n ) {\n this.select = this.rowSelect = new EventEmitter();\n this.rowAction = new EventEmitter();\n this.createItem = new EventEmitter();\n this.error = new EventEmitter();\n this.isLoading = true;\n }\n\n createComponent(property, component) {\n const factory = this.resolver.resolveComponentFactory(component);\n const componentRef = property.createComponent(factory);\n return componentRef.instance;\n }\n\n loadGrid(src?: string) {\n // If no source is provided, then skip.\n if (!src && !this.formio) {\n return;\n }\n // Do not double load.\n if (this.formio && this.src && (src === this.src)) {\n return;\n }\n\n if (src) {\n this.src = src;\n this.formio = new FormioPromiseService(this.src, { formOnly: true });\n }\n\n // Load the header.\n this.header.load(this.formio, {}, this.columns)\n .then(() => this.setPage(0))\n .catch(error => this.onError(error));\n }\n\n ngOnInit() {\n // Create our components.\n const comps = this.components || ((this.gridType === 'form') ? FormComponents : SubmissionComponents);\n\n this.header = this.createComponent(this.headerElement, comps.header);\n this.header.actionAllowed = this.actionAllowed.bind(this);\n this.header.sort.subscribe(header => this.sortColumn(header));\n\n this.body = this.createComponent(this.bodyElement, comps.body);\n this.body.header = this.header;\n this.body.actionAllowed = this.actionAllowed.bind(this);\n this.body.rowSelect.subscribe(row => this.rowSelect.emit(row));\n this.body.rowAction.subscribe(action => this.rowAction.emit(action));\n\n this.footer = this.createComponent(this.footerElement, comps.footer);\n this.footer.header = this.header;\n this.footer.body = this.body;\n this.footer.actionAllowed = this.actionAllowed.bind(this);\n this.footer.createText = this.createText;\n this.footer.size = this.size;\n this.footer.pageChanged.subscribe(page => this.pageChanged(page));\n this.footer.createItem.subscribe(item => this.createItem.emit(item));\n }\n\n ngOnChanges(changes: any) {\n if (this.initialized) {\n if (\n (changes.src && changes.src.currentValue) ||\n (changes.formio && changes.formio.currentValue)\n ) {\n this.loadGrid(changes.src.currentValue);\n }\n\n if (changes.items && changes.items.currentValue) {\n this.refreshGrid();\n }\n }\n\n if (this.footer &&\n (changes.createText && changes.createText.currentValue)) {\n this.footer.createText = changes.createText.currentValue;\n }\n }\n\n ngAfterViewInit() {\n this.alerts.setAlerts([]);\n this.query = this.query || {};\n if (this.refresh) {\n this.refresh.subscribe((query: object) => this.refreshGrid(query));\n }\n this.loadGrid(this.src);\n this.initialized = true;\n this.ref.detectChanges();\n }\n\n actionAllowed(action) {\n if (this.isActionAllowed) {\n return this.isActionAllowed(action);\n } else {\n return true;\n }\n }\n\n onError(error: any) {\n this.isLoading = false;\n this.error.emit(error);\n if (typeof error === 'string' || error.message) {\n this.alerts.setAlert({\n type: 'danger',\n message: error.message || error\n });\n }\n }\n\n refreshGrid(query?: any) {\n this.alerts.setAlerts([]);\n this.query = query || this.query;\n if (!this.query.hasOwnProperty('limit')) {\n this.query.limit = 10;\n }\n if (!this.query.hasOwnProperty('skip')) {\n this.query.skip = 0;\n }\n this.isLoading = true;\n this.ref.detectChanges();\n Formio.cache = {};\n let loader = null;\n if (this.items) {\n loader = Promise.resolve(this.body.setRows(this.query, this.items));\n } else {\n loader = this.body.load(this.formio, this.query);\n }\n\n return loader.then(info => {\n this.isLoading = false;\n this.initialized = true;\n this.ref.detectChanges();\n }).catch(error => this.onError(error));\n }\n\n setPage(num = -1) {\n this.page = num !== -1 ? num : this.page;\n if (!this.query.hasOwnProperty('limit')) {\n this.query.limit = 10;\n }\n if (!this.query.hasOwnProperty('skip')) {\n this.query.skip = 0;\n }\n this.query.skip = this.page * this.query.limit;\n this.refreshGrid();\n }\n\n sortColumn(header: GridHeader) {\n // Reset all other column sorts.\n each(this.header.headers, (col: any) => {\n if (col.key !== header.key) {\n col.sort = '';\n }\n });\n switch (header.sort) {\n case 'asc':\n header.sort = SortType.DESC;\n this.query.sort = '-' + header.key;\n break;\n case 'desc':\n header.sort = undefined;\n delete this.query.sort;\n break;\n case undefined:\n header.sort = SortType.ASC;\n this.query.sort = header.key;\n break;\n }\n this.refreshGrid();\n }\n\n pageChanged(page: any) {\n this.setPage(page.page - 1);\n }\n}\n","<ng-template #headerTemplate></ng-template>\n<ng-template #bodyTemplate></ng-template>\n<ng-template #footerTemplate></ng-template>\n<div class=\"formio-grid\">\n <formio-alerts [alerts]=\"alerts\"></formio-alerts>\n <table class=\"table table-bordered table-striped table-hover\">\n <ng-container *ngIf=\"initialized && [footerPositions.top, footerPositions.both].indexOf(footerPosition) !== -1\"\n [ngTemplateOutlet]=\"footer.template\" [ngTemplateOutletContext]=\"{ position: footerPositions.top, label: label }\">\n </ng-container>\n <ng-container *ngIf=\"initialized\"\n [ngTemplateOutlet]=\"header.template\"></ng-container>\n <formio-loader [isLoading]=\"isLoading\"></formio-loader>\n <ng-container *ngIf=\"initialized\" [ngTemplateOutlet]=\"body.template\"></ng-container>\n <ng-container *ngIf=\"initialized && [footerPositions.bottom, footerPositions.both].indexOf(footerPosition) !== -1\"\n [ngTemplateOutlet]=\"footer.template\" [ngTemplateOutletContext]=\"{ position: footerPositions.bottom, label: label }\">\n </ng-container>\n </table>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { FormioModule } from '@formio/angular';\nimport { FormioAlerts } from '@formio/angular';\nimport { FormioGridComponent } from './grid.component';\nimport { PaginationModule } from 'ngx-bootstrap/pagination';\nimport { FormGridHeaderComponent } from './form/FormGridHeader.component';\nimport { FormGridBodyComponent } from './form/FormGridBody.component';\nimport { FormGridFooterComponent } from './form/FormGridFooter.component';\nimport { SubmissionGridHeaderComponent } from './submission/SubmissionGridHeader.component';\nimport { SubmissionGridBodyComponent } from './submission/SubmissionGridBody.component';\nimport { SubmissionGridFooterComponent } from './submission/SubmissionGridFooter.component';\nimport { GridHeaderComponent } from './GridHeaderComponent';\nimport { GridBodyComponent } from './GridBodyComponent';\nimport { GridFooterComponent } from './GridFooterComponent';\nimport { GridService } from './grid.service';\nimport { TimeSince } from './form/time-since.pipe'\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n FormioModule,\n RouterModule,\n PaginationModule.forRoot()\n ],\n declarations: [\n FormioGridComponent,\n FormGridHeaderComponent,\n FormGridBodyComponent,\n FormGridFooterComponent,\n SubmissionGridHeaderComponent,\n SubmissionGridBodyComponent,\n SubmissionGridFooterComponent,\n GridHeaderComponent,\n GridBodyComponent,\n GridFooterComponent,\n TimeSince\n ],\n exports: [\n FormioGridComponent\n ],\n providers: [\n FormioAlerts,\n GridService\n ]\n})\nexport class FormioGrid {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.GridService","i3.TimeSince","i2","i1"],"mappings":";;;;;;;;;;;;;;;AAAA,IAAY,mBAIX,CAAA;AAJD,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACN,IAAA,mBAAA,CAAA,mBAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;AACH,IAAA,mBAAA,CAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACN,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,GAI9B,EAAA,CAAA,CAAA;;MCGY,mBAAmB,CAAA;AAK9B,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;KAChC;AAED,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;KAC5B;AAED,IAAA,IAAI,CAAC,MAA4B,EAAE,KAAW,EAAE,OAAoB,EAAA;AAClE,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;KAC5B;;gHAhBU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;oGAAnB,mBAAmB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAGnB,WAAW,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EALZ,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;2FAED,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,EAAE;AACb,iBAAA,CAAA;0EAEU,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACI,IAAI,EAAA,CAAA;sBAAb,MAAM;gBACiC,QAAQ,EAAA,CAAA;sBAA/C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAA;;;ACAxC,IAAY,QAGX,CAAA;AAHD,CAAA,UAAY,QAAQ,EAAA;AAClB,IAAA,QAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,QAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EAHW,QAAQ,KAAR,QAAQ,GAGnB,EAAA,CAAA,CAAA;;ACLK,MAAO,uBAAwB,SAAQ,mBAAmB,CAAA;AAE9D,IAAA,IAAI,CAAC,MAAY,EAAA;QACf,IAAI,CAAC,MAAM,GAAG;AACZ,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,GAAG,EAAE,OAAO;YACZ,IAAI,EAAE,QAAQ,CAAC,GAAG;SACnB,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACtC;AAED,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,CAAC,CAAC;KACV;;oHAdU,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,+ECRpC,6kBAkBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDVa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,6kBAAA,EAAA,CAAA;;;MEDjB,WAAW,CAAA;AAEtB,IAAA,WAAA,GAAA,GAAgB;AAEhB,IAAA,OAAO,CAAC,IAAI,EAAA;AACV,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;KAClB;IAED,eAAe,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;KAC1B;;wGAVU,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;4GAAX,WAAW,EAAA,CAAA,CAAA;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB,UAAU;;;MCME,iBAAiB,CAAA;AAa5B,IAAA,WAAA,CAAmB,OAAoB,EAAA;QAApB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAa;QALhC,IAAS,CAAA,SAAA,GAAG,CAAC,CAAC;QACd,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC;QACb,IAAI,CAAA,IAAA,GAAG,CAAC,CAAC;QACT,IAAK,CAAA,KAAA,GAAG,CAAC,CAAC;QACV,IAAK,CAAA,KAAA,GAAG,CAAC,CAAC;AAEf,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,YAAY,EAAE,CAAC;AACpC,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,YAAY,EAAE,CAAC;AACpC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;KACrB;IAED,IAAI,CAAC,MAA4B,EAAE,KAAW,EAAA;AAC5C,QAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KAC/B;IAED,WAAW,CAAC,KAAK,EAAE,GAAG,EAAA;QACpB,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC1B;AAED,IAAA,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAA;QAC5B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;KACtC;AAED;;;;;;AAMG;IACH,OAAO,CAAC,KAAU,EAAE,KAAU,EAAA;AAC5B,QAAA,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;AAEf,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACnB,YAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClB,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACf,YAAA,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AACd,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEhC,OAAO,IAAI,CAAC,IAAI,CAAC;AAClB,SAAA;QAED,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAClD,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE;AACvB,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACpB,SAAA;AACD,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC;AAC/B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrD,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,QAAA,IAAI,CAAC,KAAK,EAAE,CAAC,IAAS,KAAI;YACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9B,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEhC,OAAO,IAAI,CAAC,IAAI,CAAC;KAClB;;8GArEU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAKjB,WAAW,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAPZ,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;2FAED,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,EAAE;AACb,iBAAA,CAAA;+FAEU,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACI,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACiC,QAAQ,EAAA,CAAA;sBAA/C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAA;;;MCT3B,SAAS,CAAA;AACpB,IAAA,SAAS,CAAC,IAAU,EAAA;QAClB,MAAM,OAAO,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC;AACzE,QAAA,IAAI,QAAQ,CAAC;QACb,IAAI,QAAQ,IAAI,CAAC,EAAE;AACjB,YAAA,OAAO,QAAQ,GAAG,OAAO,IAAI,QAAQ,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;AACvD,SAAA;QACD,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC;QACzC,IAAI,QAAQ,IAAI,CAAC,EAAC;AAChB,YAAA,OAAO,QAAQ,GAAG,QAAQ,IAAI,QAAQ,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;AACxD,SAAA;QACD,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;QACvC,IAAI,QAAQ,IAAI,CAAC,EAAE;AACjB,YAAA,OAAO,QAAQ,GAAG,MAAM,IAAI,QAAQ,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;AACtD,SAAA;QACD,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;QACtC,IAAI,QAAQ,IAAI,CAAC,EAAE;AACjB,YAAA,OAAO,QAAQ,GAAG,OAAO,IAAI,QAAQ,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;AACvD,SAAA;QACD,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QACpC,IAAI,QAAQ,IAAI,CAAC,EAAE;AACjB,YAAA,OAAO,QAAQ,GAAG,SAAS,IAAI,QAAQ,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;AACzD,SAAA;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,SAAS,IAAI,OAAO,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;KACnE;;sGAxBU,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;oGAAT,SAAS,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,CAAA;2FAAT,SAAS,EAAA,UAAA,EAAA,CAAA;kBAHrB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,WAAW;AAClB,iBAAA,CAAA;;;ACKK,MAAO,qBAAsB,SAAQ,iBAAiB,CAAA;IAC1D,IAAI,CAAC,MAA4B,EAAE,KAAW,EAAA;AAC5C,QAAA,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAU,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;KAC7F;;kHAJU,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,6ECTlC,2pDAuBA,EAAA,MAAA,EAAA,CAAA,4CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,SAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDda,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,2pDAAA,EAAA,MAAA,EAAA,CAAA,4CAAA,CAAA,EAAA,CAAA;;;MEGf,mBAAmB,CAAA;AAY9B,IAAA,WAAA,GAAA;QAFO,IAAe,CAAA,eAAA,GAAG,mBAAmB,CAAC;AAG3C,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,YAAY,EAAE,CAAC;AACtC,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,EAAE,CAAC;KACtC;;gHAfU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;oGAAnB,mBAAmB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAQnB,WAAW,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAVZ,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;2FAED,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,EAAE;AACb,iBAAA,CAAA;0EAEU,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACI,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBACiC,QAAQ,EAAA,CAAA;sBAA/C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAA;;;ACRlC,MAAO,uBAAwB,SAAQ,mBAAmB,CAAA;AAE9D,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE,CAAC;KACT;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACpB,YAAA,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC;AACjC,SAAA;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACd,YAAA,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AACf,SAAA;KACF;;oHAbU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,2ECRpC,i4CAqBA,EAAA,MAAA,EAAA,CAAA,uKAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,wBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FDba,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;AAGO,YAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,i4CAAA,EAAA,MAAA,EAAA,CAAA,uKAAA,CAAA,EAAA,CAAA;;;AEHvC,qBAAe;AACb,IAAA,MAAM,EAAE,uBAAuB;AAC/B,IAAA,IAAI,EAAE,qBAAqB;AAC3B,IAAA,MAAM,EAAE,uBAAuB;CAChC;;ACIK,MAAO,6BAA8B,SAAQ,mBAAmB,CAAA;AAKpE,IAAA,IAAI,CAAC,MAA4B,EAAE,KAAW,EAAE,OAA2B,EAAA;AACzE,QAAA,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC;AACpB,QAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,EAAC,MAAM,EAAE,KAAK,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAgB,KAAI;AAChE,YAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAClB,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,EAAmC,CAAC;AACjE,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACpC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,IAAG;gBAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxF,aAAC,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAEtD,OAAO,IAAI,CAAC,OAAO,CAAC;AACtB,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,SAAS,CAAC,MAAkB,EAAA;AAC1B,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC3B;AAED,IAAA,kBAAkB,CAAC,MAAkB,EAAE,SAAmC,EAAE,IAAe,EAAA;QACzF,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,GAAG,EAAE,MAAM,CAAC,IAAI;AAChB,YAAA,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAsB,GAAG,SAAS;YACtG,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,UAAU,GAAG,SAAS;SACnD,CAAC;KACH;AAED,IAAA,qBAAqB,CAAC,SAAkC,EAAE,IAAY,EAAE,IAAe,EAAA;QACrF,OAAO;YACL,KAAK,EAAE,SAAS,CAAC,KAAK;AACtB,YAAA,GAAG,EAAE,IAAI;AACT,YAAA,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAsB,GAAG,SAAS;SACvG,CAAC;KACH;;IAED,oBAAoB,CAAC,UAAgD,EAAE,IAAe,EAAA;QACpF,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,IAAI,KAAI;YACrC,IACE,SAAS,CAAC,KAAK;AACf,iBAAC,CAAC,SAAS,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,SAAS,CAAC,EAC/D;AACA,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACnE,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;;AAGD,IAAA,aAAa,CAAC,UAAU,EAAA;QACtB,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,SAAkC,EAAE,OAAe,KAAI;YACtF,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAQ,KAAA,EAAA,OAAO,CAAE,CAAA,EAAE,SAAS,CAAC,CAAC;AACxD,SAAC,CAAC,CAAC;KACJ;;0HA1DU,6BAA6B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,6BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,2ECX1C,oZAWA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDAa,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAHzC,SAAS;;;;AECJ,MAAO,2BAA4B,SAAQ,iBAAiB,CAAA;IAChE,IAAI,CAAC,MAA4B,EAAE,KAAW,EAAA;AAC5C,QAAA,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC7C,aAAA,IAAI,CAAC,CAAC,WAAgB,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;KACjE;AAED;;;;;;AAMG;IACH,IAAI,CAAC,UAA4B,EAAE,MAAkB,EAAA;QACnD,MAAM,SAAS,GAAQ,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QACnD,IAAI,MAAM,CAAC,UAAU,EAAE;YACrB,OAAO,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;AACvD,SAAA;AAAM,aAAA;YACL,IAAI,MAAM,CAAC,SAAS,EAAE;AACpB,gBAAA,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE;oBAC5B,OAAO,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAC5C,iBAAA;gBACD,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC7C,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC;AAC7B,aAAA;AACF,SAAA;KACF;;wHA5BU,2BAA2B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,2BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,2ECTxC,8OAOA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDEa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAHvC,SAAS;;;;AEEJ,MAAO,6BAA8B,SAAQ,mBAAmB,CAAA;AAEpE,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE,CAAC;KACT;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACd,YAAA,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AACf,SAAA;KACF;;0HAVU,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,6BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,2ECR1C,yqCAkBA,EAAA,MAAA,EAAA,CAAA,uKAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,wBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FDVa,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBALzC,SAAS;AAGO,YAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,yqCAAA,EAAA,MAAA,EAAA,CAAA,uKAAA,CAAA,EAAA,CAAA;;;AEHvC,2BAAe;AACb,IAAA,MAAM,EAAE,6BAA6B;AACrC,IAAA,IAAI,EAAE,2BAA2B;AACjC,IAAA,MAAM,EAAE,6BAA6B;CACtC;;MCwBY,mBAAmB,CAAA;AAgC9B,IAAA,WAAA,CACS,MAAoB,EACnB,QAAkC,EAClC,GAAsB,EAAA;QAFvB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAc;QACnB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAA0B;QAClC,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AAlCvB,QAAA,IAAA,CAAA,cAAc,GAAG,mBAAmB,CAAC,MAAM,CAAC;QAuB9C,IAAI,CAAA,IAAA,GAAG,CAAC,CAAC;QACT,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAClB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAIpB,IAAe,CAAA,eAAA,GAAG,mBAAmB,CAAC;QAO3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,YAAY,EAAE,CAAC;AAClD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,YAAY,EAAE,CAAC;AACpC,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,EAAE,CAAC;AACrC,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;AAChC,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;KACvB;IAED,eAAe,CAAC,QAAQ,EAAE,SAAS,EAAA;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;QACjE,MAAM,YAAY,GAAG,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACvD,OAAO,YAAY,CAAC,QAAQ,CAAC;KAC9B;AAED,IAAA,QAAQ,CAAC,GAAY,EAAA;;AAEnB,QAAA,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACxB,OAAO;AACR,SAAA;;AAED,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE;YACjD,OAAO;AACR,SAAA;AAED,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;AACf,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACtE,SAAA;;AAGD,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC;aAC5C,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC3B,aAAA,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;KACxC;IAED,QAAQ,GAAA;;QAEN,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,MAAM,IAAI,cAAc,GAAG,oBAAoB,CAAC,CAAC;AAEtG,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;AACrE,QAAA,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1D,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AAE9D,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC/B,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAErE,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AAC7B,QAAA,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AAC7B,QAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;KACtE;AAED,IAAA,WAAW,CAAC,OAAY,EAAA;QACtB,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IACE,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY;iBACvC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,EAC/C;gBACA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACzC,aAAA;YAED,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE;gBAC/C,IAAI,CAAC,WAAW,EAAE,CAAC;AACpB,aAAA;AACF,SAAA;QAED,IAAI,IAAI,CAAC,MAAM;aACV,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;YAC3D,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC;AAC1D,SAAA;KACF;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAa,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;AACpE,SAAA;AACD,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC1B;AAED,IAAA,aAAa,CAAC,MAAM,EAAA;QAClB,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AACrC,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;KACF;AAED,IAAA,OAAO,CAAC,KAAU,EAAA;AAChB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,EAAE;AAC9C,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;AACnB,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK;AAChC,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;AAED,IAAA,WAAW,CAAC,KAAW,EAAA;AACrB,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;AACvC,YAAA,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;AACvB,SAAA;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;AACtC,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;AACrB,SAAA;AACD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;AACzB,QAAA,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;QAClB,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACrE,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAClD,SAAA;AAED,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,IAAG;AACxB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;AAC3B,SAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;KACxC;AAED,IAAA,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,EAAA;AACd,QAAA,IAAI,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;AACvC,YAAA,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;AACvB,SAAA;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;AACtC,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;AACrB,SAAA;AACD,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAC/C,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;AAED,IAAA,UAAU,CAAC,MAAkB,EAAA;;QAE3B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,GAAQ,KAAI;AACrC,YAAA,IAAI,GAAG,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,EAAE;AAC1B,gBAAA,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;AACf,aAAA;AACH,SAAC,CAAC,CAAC;QACH,QAAQ,MAAM,CAAC,IAAI;AACjB,YAAA,KAAK,KAAK;AACR,gBAAA,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;gBACnC,MAAM;AACR,YAAA,KAAK,MAAM;AACT,gBAAA,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;AACxB,gBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBACvB,MAAM;AACR,YAAA,KAAK,SAAS;AACZ,gBAAA,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC;gBAC3B,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC;gBAC7B,MAAM;AACT,SAAA;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;AAED,IAAA,WAAW,CAAC,IAAS,EAAA;QACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;KAC7B;;gHAjNU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,0jBAoBM,gBAAgB,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAClB,gBAAgB,EACd,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,gBAAgB,gECrDtD,+kCAkBA,EAAA,MAAA,EAAA,CAAA,oFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDaa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACE,aAAa,EAAA,QAAA,EAAA,+kCAAA,EAAA,MAAA,EAAA,CAAA,oFAAA,CAAA,EAAA,CAAA;4KAKd,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACI,MAAM,EAAA,CAAA;sBAAf,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBACG,KAAK,EAAA,CAAA;sBAAd,MAAM;gBAC8D,aAAa,EAAA,CAAA;sBAAjF,SAAS;uBAAC,gBAAgB,EAAE,EAAC,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAC,CAAA;gBACA,WAAW,EAAA,CAAA;sBAA7E,SAAS;uBAAC,cAAc,EAAE,EAAC,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAC,CAAA;gBACI,aAAa,EAAA,CAAA;sBAAjF,SAAS;uBAAC,gBAAgB,EAAE,EAAC,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAC,CAAA;;;MELxD,UAAU,CAAA;;uGAAV,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAV,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,iBApBf,mBAAmB;QACnB,uBAAuB;QACvB,qBAAqB;QACrB,uBAAuB;QACvB,6BAA6B;QAC7B,2BAA2B;QAC3B,6BAA6B;QAC7B,mBAAmB;QACnB,iBAAiB;QACjB,mBAAmB;AACnB,QAAA,SAAS,aAjBT,YAAY;QACZ,WAAW;QACX,YAAY;AACZ,QAAA,YAAY,kCAiBZ,mBAAmB,CAAA,EAAA,CAAA,CAAA;AAOd,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,EALR,SAAA,EAAA;QACP,YAAY;QACZ,WAAW;AACd,KAAA,EAAA,OAAA,EAAA,CAzBG,YAAY;QACZ,WAAW;QACX,YAAY;QACZ,YAAY;QACZ,gBAAgB,CAAC,OAAO,EAAE,CAAA,EAAA,CAAA,CAAA;2FAuBrB,UAAU,EAAA,UAAA,EAAA,CAAA;kBA7BtB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,WAAW;wBACX,YAAY;wBACZ,YAAY;wBACZ,gBAAgB,CAAC,OAAO,EAAE;AAC7B,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACV,mBAAmB;wBACnB,uBAAuB;wBACvB,qBAAqB;wBACrB,uBAAuB;wBACvB,6BAA6B;wBAC7B,2BAA2B;wBAC3B,6BAA6B;wBAC7B,mBAAmB;wBACnB,iBAAiB;wBACjB,mBAAmB;wBACnB,SAAS;AACZ,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,mBAAmB;AACtB,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACP,YAAY;wBACZ,WAAW;AACd,qBAAA;AACJ,iBAAA,CAAA;;;AC/CD;;AAEG;;;;"}},"fesm2015":{"code":"import * as i0 from '@angular/core';\nimport { EventEmitter, TemplateRef, Component, Input, Output, ViewChild, Injectable, Pipe, ViewEncapsulation, ViewContainerRef, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i2$1 from '@angular/forms';\nimport { FormsModule } from '@angular/forms';\nimport * as i2 from '@angular/router';\nimport { RouterModule } from '@angular/router';\nimport * as i1$1 from '@formio/angular';\nimport { FormioPromiseService, FormioModule, FormioAlerts } from '@formio/angular';\nimport { each, clone, get } from 'lodash';\nimport { Components, Utils, Formio } from 'formiojs';\nimport * as i3 from 'ngx-bootstrap/pagination';\nimport { PaginationModule } from 'ngx-bootstrap/pagination';\n\nvar GridFooterPositions;\n(function (GridFooterPositions) {\n GridFooterPositions[GridFooterPositions[\"bottom\"] = 0] = \"bottom\";\n GridFooterPositions[GridFooterPositions[\"top\"] = 1] = \"top\";\n GridFooterPositions[GridFooterPositions[\"both\"] = 2] = \"both\";\n})(GridFooterPositions || (GridFooterPositions = {}));\n\nclass GridHeaderComponent {\n constructor() {\n this.headers = [];\n this.sort = new EventEmitter();\n }\n get numHeaders() {\n return this.headers.length;\n }\n load(formio, query, columns) {\n return Promise.resolve([]);\n }\n}\nGridHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: GridHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nGridHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.1\", type: GridHeaderComponent, selector: \"ng-component\", inputs: { actionAllowed: \"actionAllowed\" }, outputs: { sort: \"sort\" }, viewQueries: [{ propertyName: \"template\", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: '', isInline: true });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: GridHeaderComponent, decorators: [{\n type: Component,\n args: [{\n template: ''\n }]\n }], ctorParameters: function () { return []; }, propDecorators: { actionAllowed: [{\n type: Input\n }], sort: [{\n type: Output\n }], template: [{\n type: ViewChild,\n args: [TemplateRef, { static: true }]\n }] } });\n\nvar SortType;\n(function (SortType) {\n SortType[\"ASC\"] = \"asc\";\n SortType[\"DESC\"] = \"desc\";\n})(SortType || (SortType = {}));\n\nclass FormGridHeaderComponent extends GridHeaderComponent {\n load(formio) {\n this.header = {\n label: 'Title',\n key: 'title',\n sort: SortType.ASC\n };\n this.headers = [this.header];\n return Promise.resolve(this.headers);\n }\n get numHeaders() {\n return 2;\n }\n}\nFormGridHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: FormGridHeaderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\nFormGridHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.1\", type: FormGridHeaderComponent, selector: \"form-grid-header\", usesInheritance: true, ngImport: i0, template: \"<ng-template>\\n <thead>\\n <tr>\\n <th>\\n <div class=\\\"row\\\">\\n <div class=\\\"col-sm-8\\\">\\n <a (click)=\\\"sort.emit(header)\\\">\\n {{ header.label }} <span [ngClass]=\\\"{'glyphicon-triangle-top fa-caret-up': (header.sort === 'asc'), 'glyphicon-triangle-bottom fa-caret-down': (header.sort === 'desc')}\\\" class=\\\"glyphicon fa\\\" *ngIf=\\\"header.sort\\\"></span>\\n </a>\\n </div>\\n <div class=\\\"col-sm-4\\\">\\n Operations\\n </div>\\n </div>\\n </th>\\n </tr>\\n </thead>\\n</ng-template>\\n\", dependencies: [{ kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: FormGridHeaderComponent, decorators: [{\n type: Component,\n args: [{ selector: 'form-grid-header', template: \"<ng-template>\\n <thead>\\n <tr>\\n <th>\\n <div class=\\\"row\\\">\\n <div class=\\\"col-sm-8\\\">\\n <a (click)=\\\"sort.emit(header)\\\">\\n {{ header.label }} <span [ngClass]=\\\"{'glyphicon-triangle-top fa-caret-up': (header.sort === 'asc'), 'glyphicon-triangle-bottom fa-caret-down': (header.sort === 'desc')}\\\" class=\\\"glyphicon fa\\\" *ngIf=\\\"header.sort\\\"></span>\\n </a>\\n </div>\\n <div class=\\\"col-sm-4\\\">\\n Operations\\n </div>\\n </div>\\n </th>\\n </tr>\\n </thead>\\n</ng-template>\\n\" }]\n }] });\n\nclass GridService {\n constructor() { }\n setRows(rows) {\n this.rows = rows;\n }\n getFormsPerPage() {\n var _a;\n return (_a = this.rows) === null || _a === void 0 ? void 0 : _a.length;\n }\n}\nGridService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: GridService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nGridService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: GridService });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: GridService, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return []; } });\n\nclass GridBodyComponent {\n constructor(service) {\n this.service = service;\n this.firstItem = 0;\n this.lastItem = 0;\n this.skip = 0;\n this.limit = 0;\n this.total = 0;\n this.rowSelect = new EventEmitter();\n this.rowAction = new EventEmitter();\n this.loading = true;\n }\n load(formio, query) {\n return formio.loadForm(query);\n }\n onRowSelect(event, row) {\n event.preventDefault();\n this.rowSelect.emit(row);\n }\n onRowAction(event, row, action) {\n event.preventDefault();\n this.rowAction.emit({ row, action });\n }\n /**\n * Set the rows for this Grid body.\n *\n * @param query\n * @param items\n * @return any\n */\n setRows(query, items) {\n this.rows = [];\n if (typeof items !== 'object') {\n this.firstItem = 0;\n this.lastItem = 0;\n this.total = 0;\n this.skip = 0;\n this.loading = false;\n this.service.setRows(this.rows);\n return this.rows;\n }\n this.firstItem = query.skip + 1;\n this.lastItem = this.firstItem + items.length - 1;\n if (this.lastItem === 0) {\n this.firstItem = 0;\n }\n this.total = items.serverCount;\n this.limit = query.limit;\n this.skip = Math.floor(items.skip / query.limit) + 1;\n this.loading = false;\n each(items, (item) => {\n this.rows.push(clone(item));\n });\n this.service.setRows(this.rows);\n return this.rows;\n }\n}\nGridBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: GridBodyComponent, deps: [{ token: GridService }], target: i0.ɵɵFactoryTarget.Component });\nGridBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.1\", type: GridBodyComponent, selector: \"ng-component\", inputs: { header: \"header\", actionAllowed: \"actionAllowed\" }, outputs: { rowSelect: \"rowSelect\", rowAction: \"rowAction\" }, viewQueries: [{ propertyName: \"template\", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: '', isInline: true });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: GridBodyComponent, decorators: [{\n type: Component,\n args: [{\n template: ''\n }]\n }], ctorParameters: function () { return [{ type: GridService }]; }, propDecorators: { header: [{\n type: Input\n }], actionAllowed: [{\n type: Input\n }], rowSelect: [{\n type: Output\n }], rowAction: [{\n type: Output\n }], template: [{\n type: ViewChild,\n args: [TemplateRef, { static: true }]\n }] } });\n\nclass TimeSince {\n transform(date) {\n const elapsed = (new Date().getTime() - new Date(date).getTime()) / 1000;\n let interval;\n if (interval >= 1) {\n return interval + ' year' + (interval > 1 ? 's' : '');\n }\n interval = Math.floor(elapsed / 2592000);\n if (interval >= 1) {\n return interval + ' month' + (interval > 1 ? 's' : '');\n }\n interval = Math.floor(elapsed / 86400);\n if (interval >= 1) {\n return interval + ' day' + (interval > 1 ? 's' : '');\n }\n interval = Math.floor(elapsed / 3600);\n if (interval >= 1) {\n return interval + ' hour' + (interval > 1 ? 's' : '');\n }\n interval = Math.floor(elapsed / 60);\n if (interval >= 1) {\n return interval + ' minute' + (interval > 1 ? 's' : '');\n }\n return Math.floor(elapsed) + ' second' + (elapsed > 1 ? 's' : '');\n }\n}\nTimeSince.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: TimeSince, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nTimeSince.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"15.0.1\", ngImport: i0, type: TimeSince, name: \"timeSince\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: TimeSince, decorators: [{\n type: Pipe,\n args: [{\n name: 'timeSince'\n }]\n }] });\n\nclass FormGridBodyComponent extends GridBodyComponent {\n load(formio, query) {\n query = query || {};\n return formio.loadForms({ params: query }).then((forms) => this.setRows(query, forms));\n }\n}\nFormGridBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: FormGridBodyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\nFormGridBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.1\", type: FormGridBodyComponent, selector: \"form-grid-body\", usesInheritance: true, ngImport: i0, template: \"<ng-template>\\n <tbody *ngIf=\\\"rows\\\">\\n <tr *ngFor=\\\"let form of rows\\\">\\n <td>\\n <div class=\\\"row\\\">\\n <div class=\\\"col-sm-8\\\">\\n <a routerLink=\\\"{{form._id}}/view\\\" (click)=\\\"onRowSelect($event, form)\\\"><h5>{{ form.title }}</h5></a>\\n <div class=\\\"form-updated small text-muted\\\">\\n Updated {{ form.modified | timeSince }} ago\\n </div>\\n </div>\\n <div class=\\\"col-sm-4\\\">\\n <button *ngIf=\\\"actionAllowed('formView')\\\" class=\\\"btn btn-outline-secondary btn-sm form-btn form-btn-use\\\" (click)=\\\"onRowAction($event, form, 'view')\\\"><span class=\\\"fa fa-pencil\\\"></span> Enter Data</button> \\n <button *ngIf=\\\"actionAllowed('formSubmission')\\\" class=\\\"btn btn-outline-secondary btn-sm form-btn\\\" (click)=\\\"onRowAction($event, form, 'submission')\\\"><span class=\\\"fa fa-list-alt\\\"></span> View Data</button> \\n <button *ngIf=\\\"actionAllowed('formEdit')\\\" class=\\\"btn btn-outline-secondary btn-sm form-btn\\\" (click)=\\\"onRowAction($event, form, 'edit')\\\"><span class=\\\"fa fa-edit\\\"></span> Edit Form</button> \\n <button *ngIf=\\\"actionAllowed('formPermission')\\\" class=\\\"btn btn-outline-secondary btn-sm form-btn\\\" (click)=\\\"onRowAction($event, form, 'permissions')\\\"><span class=\\\"fa fa-lock\\\"></span> Permissions</button> \\n <button *ngIf=\\\"actionAllowed('formDelete')\\\" class=\\\"btn btn-danger btn-sm form-btn form-btn-delete\\\" (click)=\\\"onRowAction($event, form, 'delete')\\\" title=\\\"Delete form\\\"><span class=\\\"fa fa-trash\\\"></span></button>\\n </div>\\n </div>\\n </td>\\n </tr>\\n </tbody>\\n</ng-template>\\n\", styles: [\".form-btn{font-size:.75rem;margin:2px 0}\\n\"], dependencies: [{ kind: \"directive\", type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i2.RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"pipe\", type: TimeSince, name: \"timeSince\" }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: FormGridBodyComponent, decorators: [{\n type: Component,\n args: [{ selector: 'form-grid-body', template: \"<ng-template>\\n <tbody *ngIf=\\\"rows\\\">\\n <tr *ngFor=\\\"let form of rows\\\">\\n <td>\\n <div class=\\\"row\\\">\\n <div class=\\\"col-sm-8\\\">\\n <a routerLink=\\\"{{form._id}}/view\\\" (click)=\\\"onRowSelect($event, form)\\\"><h5>{{ form.title }}</h5></a>\\n <div class=\\\"form-updated small text-muted\\\">\\n Updated {{ form.modified | timeSince }} ago\\n </div>\\n </div>\\n <div class=\\\"col-sm-4\\\">\\n <button *ngIf=\\\"actionAllowed('formView')\\\" class=\\\"btn btn-outline-secondary btn-sm form-btn form-btn-use\\\" (click)=\\\"onRowAction($event, form, 'view')\\\"><span class=\\\"fa fa-pencil\\\"></span> Enter Data</button> \\n <button *ngIf=\\\"actionAllowed('formSubmission')\\\" class=\\\"btn btn-outline-secondary btn-sm form-btn\\\" (click)=\\\"onRowAction($event, form, 'submission')\\\"><span class=\\\"fa fa-list-alt\\\"></span> View Data</button> \\n <button *ngIf=\\\"actionAllowed('formEdit')\\\" class=\\\"btn btn-outline-secondary btn-sm form-btn\\\" (click)=\\\"onRowAction($event, form, 'edit')\\\"><span class=\\\"fa fa-edit\\\"></span> Edit Form</button> \\n <button *ngIf=\\\"actionAllowed('formPermission')\\\" class=\\\"btn btn-outline-secondary btn-sm form-btn\\\" (click)=\\\"onRowAction($event, form, 'permissions')\\\"><span class=\\\"fa fa-lock\\\"></span> Permissions</button> \\n <button *ngIf=\\\"actionAllowed('formDelete')\\\" class=\\\"btn btn-danger btn-sm form-btn form-btn-delete\\\" (click)=\\\"onRowAction($event, form, 'delete')\\\" title=\\\"Delete form\\\"><span class=\\\"fa fa-trash\\\"></span></button>\\n </div>\\n </div>\\n </td>\\n </tr>\\n </tbody>\\n</ng-template>\\n\", styles: [\".form-btn{font-size:.75rem;margin:2px 0}\\n\"] }]\n }] });\n\nclass GridFooterComponent {\n constructor() {\n this.footerPositions = GridFooterPositions;\n this.pageChanged = new EventEmitter();\n this.createItem = new EventEmitter();\n }\n}\nGridFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: GridFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nGridFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.1\", type: GridFooterComponent, selector: \"ng-component\", inputs: { header: \"header\", body: \"body\", createText: \"createText\", size: \"size\", actionAllowed: \"actionAllowed\" }, outputs: { pageChanged: \"pageChanged\", createItem: \"createItem\" }, viewQueries: [{ propertyName: \"template\", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: '', isInline: true });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: GridFooterComponent, decorators: [{\n type: Component,\n args: [{\n template: ''\n }]\n }], ctorParameters: function () { return []; }, propDecorators: { header: [{\n type: Input\n }], body: [{\n type: Input\n }], createText: [{\n type: Input\n }], size: [{\n type: Input\n }], actionAllowed: [{\n type: Input\n }], pageChanged: [{\n type: Output\n }], createItem: [{\n type: Output\n }], template: [{\n type: ViewChild,\n args: [TemplateRef, { static: true }]\n }] } });\n\nclass FormGridFooterComponent extends GridFooterComponent {\n constructor() {\n super();\n }\n ngOnInit() {\n if (!this.createText) {\n this.createText = 'Create Form';\n }\n if (!this.size) {\n this.size = 7;\n }\n }\n}\nFormGridFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: FormGridFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nFormGridFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.1\", type: FormGridFooterComponent, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: \"<ng-template #footer let-position=\\\"position\\\" let-label=\\\"label\\\">\\n <thead class=\\\"formio-grid-footer\\\" *ngIf=\\\"position === footerPositions.top\\\">\\n <ng-container [ngTemplateOutlet]=\\\"defaultFooterTemplate\\\" [ngTemplateOutletContext]=\\\"{ label: label }\\\"></ng-container>\\n </thead>\\n <tfoot class=\\\"formio-grid-footer\\\" *ngIf=\\\"position === footerPositions.bottom\\\">\\n <ng-container [ngTemplateOutlet]=\\\"defaultFooterTemplate\\\" [ngTemplateOutletContext]=\\\"{ label: label }\\\"></ng-container>\\n </tfoot>\\n</ng-template>\\n\\n<ng-template let-label=\\\"label\\\" #defaultFooterTemplate>\\n <tr>\\n <td *ngIf=\\\"header\\\" [colSpan]=\\\"header.numHeaders\\\">\\n <button *ngIf=\\\"actionAllowed('formCreate')\\\" class=\\\"btn btn-primary form-btn-use pull-left float-left\\\" (click)=\\\"createItem.emit('form')\\\"><em class=\\\"glyphicon glyphicon-plus fa fa-plus\\\"></em> {{ createText }}</button>\\n <span class=\\\"pull-right float-right item-counter\\\"><span class=\\\"page-num\\\">{{ body.firstItem }} - {{ body.lastItem }}</span> / {{ body.total }} total</span>\\n <span [attr.aria-label]=\\\"label\\\" role=\\\"navigation\\\">\\n <pagination [totalItems]=\\\"body.total\\\" [itemsPerPage]=\\\"body.limit\\\" [(ngModel)]=\\\"body.skip\\\" (pageChanged)=\\\"pageChanged.emit($event)\\\" [maxSize]=\\\"size\\\" class=\\\"justify-content-center pagination-sm\\\">\\n </pagination>\\n </span>\\n </td>\\n </tr>\\n</ng-template>\\n\", styles: [\"tfoot.formio-grid-footer td{padding:.3rem}tfoot.formio-grid-footer .page-num{font-size:1.4em}tfoot.formio-grid-footer ul.pagination{margin-top:5px;margin-bottom:0}\\n\"], dependencies: [{ kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: i2$1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i2$1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"component\", type: i3.PaginationComponent, selector: \"pagination\", inputs: [\"align\", \"maxSize\", \"boundaryLinks\", \"directionLinks\", \"firstText\", \"previousText\", \"nextText\", \"lastText\", \"rotate\", \"pageBtnClass\", \"disabled\", \"customPageTemplate\", \"customNextTemplate\", \"customPreviousTemplate\", \"customFirstTemplate\", \"customLastTemplate\", \"itemsPerPage\", \"totalItems\"], outputs: [\"numPages\", \"pageChanged\"] }], encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: FormGridFooterComponent, decorators: [{\n type: Component,\n args: [{ encapsulation: ViewEncapsulation.None, template: \"<ng-template #footer let-position=\\\"position\\\" let-label=\\\"label\\\">\\n <thead class=\\\"formio-grid-footer\\\" *ngIf=\\\"position === footerPositions.top\\\">\\n <ng-container [ngTemplateOutlet]=\\\"defaultFooterTemplate\\\" [ngTemplateOutletContext]=\\\"{ label: label }\\\"></ng-container>\\n </thead>\\n <tfoot class=\\\"formio-grid-footer\\\" *ngIf=\\\"position === footerPositions.bottom\\\">\\n <ng-container [ngTemplateOutlet]=\\\"defaultFooterTemplate\\\" [ngTemplateOutletContext]=\\\"{ label: label }\\\"></ng-container>\\n </tfoot>\\n</ng-template>\\n\\n<ng-template let-label=\\\"label\\\" #defaultFooterTemplate>\\n <tr>\\n <td *ngIf=\\\"header\\\" [colSpan]=\\\"header.numHeaders\\\">\\n <button *ngIf=\\\"actionAllowed('formCreate')\\\" class=\\\"btn btn-primary form-btn-use pull-left float-left\\\" (click)=\\\"createItem.emit('form')\\\"><em class=\\\"glyphicon glyphicon-plus fa fa-plus\\\"></em> {{ createText }}</button>\\n <span class=\\\"pull-right float-right item-counter\\\"><span class=\\\"page-num\\\">{{ body.firstItem }} - {{ body.lastItem }}</span> / {{ body.total }} total</span>\\n <span [attr.aria-label]=\\\"label\\\" role=\\\"navigation\\\">\\n <pagination [totalItems]=\\\"body.total\\\" [itemsPerPage]=\\\"body.limit\\\" [(ngModel)]=\\\"body.skip\\\" (pageChanged)=\\\"pageChanged.emit($event)\\\" [maxSize]=\\\"size\\\" class=\\\"justify-content-center pagination-sm\\\">\\n </pagination>\\n </span>\\n </td>\\n </tr>\\n</ng-template>\\n\", styles: [\"tfoot.formio-grid-footer td{padding:.3rem}tfoot.formio-grid-footer .page-num{font-size:1.4em}tfoot.formio-grid-footer ul.pagination{margin-top:5px;margin-bottom:0}\\n\"] }]\n }], ctorParameters: function () { return []; } });\n\nvar FormComponents = {\n header: FormGridHeaderComponent,\n body: FormGridBodyComponent,\n footer: FormGridFooterComponent\n};\n\nclass SubmissionGridHeaderComponent extends GridHeaderComponent {\n load(formio, query, columns) {\n query = query || {};\n return formio.loadForm({ params: query }).then((form) => {\n this.headers = [];\n this.formComponents = new Map();\n this.setComponents(form.components);\n columns ? columns.forEach(column => {\n this.setHeader(this.getHeaderForColumn(column, this.formComponents.get(column.path)));\n }) : this.setComponentsHeaders(this.formComponents);\n return this.headers;\n });\n }\n setHeader(header) {\n this.headers.push(header);\n }\n getHeaderForColumn(column, component, sort) {\n return {\n label: column.label,\n key: column.path,\n sort: sort,\n component: component ? Components.create(component, null, null, true) : undefined,\n renderCell: column ? column.renderCell : undefined\n };\n }\n getHeaderForComponent(component, path, sort) {\n return {\n label: component.label,\n key: path,\n sort: sort,\n component: component ? Components.create(component, null, null, true) : undefined,\n };\n }\n // Set headers from components in case if columns are not provided\n setComponentsHeaders(components, sort) {\n components.forEach((component, path) => {\n if (component.input &&\n (!component.hasOwnProperty('tableView') || component.tableView)) {\n this.setHeader(this.getHeaderForComponent(component, path, sort));\n }\n });\n }\n // Map components\n setComponents(components) {\n Utils.eachComponent(components, (component, newPath) => {\n this.formComponents.set(`data.${newPath}`, component);\n });\n }\n}\nSubmissionGridHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: SubmissionGridHeaderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\nSubmissionGridHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.1\", type: SubmissionGridHeaderComponent, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: \"<ng-template>\\n <thead>\\n <tr>\\n <th *ngFor=\\\"let header of headers\\\">\\n <a (click)=\\\"sort.emit(header)\\\">\\n {{ header.label }} <span [ngClass]=\\\"{'glyphicon-triangle-top': (header.sort === 'asc'), 'glyphicon-triangle-bottom': (header.sort === 'desc')}\\\" class=\\\"glyphicon\\\" *ngIf=\\\"header.sort\\\"></span>\\n </a>\\n </th>\\n </tr>\\n </thead>\\n</ng-template>\\n\", dependencies: [{ kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: SubmissionGridHeaderComponent, decorators: [{\n type: Component,\n args: [{ template: \"<ng-template>\\n <thead>\\n <tr>\\n <th *ngFor=\\\"let header of headers\\\">\\n <a (click)=\\\"sort.emit(header)\\\">\\n {{ header.label }} <span [ngClass]=\\\"{'glyphicon-triangle-top': (header.sort === 'asc'), 'glyphicon-triangle-bottom': (header.sort === 'desc')}\\\" class=\\\"glyphicon\\\" *ngIf=\\\"header.sort\\\"></span>\\n </a>\\n </th>\\n </tr>\\n </thead>\\n</ng-template>\\n\" }]\n }] });\n\nclass SubmissionGridBodyComponent extends GridBodyComponent {\n load(formio, query) {\n query = query || {};\n return formio.loadSubmissions({ params: query })\n .then((submissions) => this.setRows(query, submissions));\n }\n /**\n * Render the cell data.\n *\n * @param submission\n * @param header\n * @return any\n */\n view(submission, header) {\n const cellValue = get(submission, header.key);\n if (header.renderCell) {\n return header.renderCell(cellValue, header.component);\n }\n else {\n if (header.component) {\n if (header.component.getView) {\n return header.component.getView(cellValue);\n }\n return header.component.asString(cellValue);\n }\n else {\n return cellValue.toString();\n }\n }\n }\n}\nSubmissionGridBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: SubmissionGridBodyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\nSubmissionGridBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.1\", type: SubmissionGridBodyComponent, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: \"<ng-template>\\n <tbody>\\n <tr *ngFor=\\\"let row of rows\\\" (click)=\\\"onRowSelect($event, row)\\\">\\n <td *ngFor=\\\"let rowHeader of header.headers\\\" [innerHTML]=\\\"view(row, rowHeader)\\\"></td>\\n </tr>\\n </tbody>\\n</ng-template>\\n\", dependencies: [{ kind: \"directive\", type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: SubmissionGridBodyComponent, decorators: [{\n type: Component,\n args: [{ template: \"<ng-template>\\n <tbody>\\n <tr *ngFor=\\\"let row of rows\\\" (click)=\\\"onRowSelect($event, row)\\\">\\n <td *ngFor=\\\"let rowHeader of header.headers\\\" [innerHTML]=\\\"view(row, rowHeader)\\\"></td>\\n </tr>\\n </tbody>\\n</ng-template>\\n\" }]\n }] });\n\nclass SubmissionGridFooterComponent extends GridFooterComponent {\n constructor() {\n super();\n }\n ngOnInit() {\n if (!this.size) {\n this.size = 7;\n }\n }\n}\nSubmissionGridFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: SubmissionGridFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nSubmissionGridFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.1\", type: SubmissionGridFooterComponent, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: \"<ng-template #footer let-position=\\\"position\\\">\\n <thead class=\\\"formio-grid-footer\\\" *ngIf=\\\"position === footerPositions.top\\\">\\n <ng-container [ngTemplateOutlet]=\\\"defaultFooterTemplate\\\"></ng-container>\\n </thead>\\n <tfoot class=\\\"formio-grid-footer\\\" *ngIf=\\\"position === footerPositions.bottom\\\">\\n <ng-container [ngTemplateOutlet]=\\\"defaultFooterTemplate\\\"></ng-container>\\n </tfoot>\\n</ng-template>\\n\\n<ng-template #defaultFooterTemplate>\\n <tr>\\n <td *ngIf=\\\"header\\\" [colSpan]=\\\"header.numHeaders\\\">\\n <button *ngIf=\\\"actionAllowed('submissionCreate') && createText\\\" class=\\\"btn btn-primary pull-left float-left\\\" (click)=\\\"createItem.emit('form')\\\"><em class=\\\"glyphicon glyphicon-plus fa fa-plus\\\"></em> {{ createText }}</button>\\n <span class=\\\"pull-right float-right item-counter\\\"><span class=\\\"page-num\\\">{{ body.firstItem }} - {{ body.lastItem }}</span> / {{ body.total }} total</span>\\n <pagination [totalItems]=\\\"body.total\\\" [itemsPerPage]=\\\"body.limit\\\" [(ngModel)]=\\\"body.skip\\\" (pageChanged)=\\\"pageChanged.emit($event)\\\" [maxSize]=\\\"size\\\" class=\\\"justify-content-center pagination-sm\\\"></pagination>\\n </td>\\n </tr>\\n</ng-template>\\n\", styles: [\"tfoot.formio-grid-footer td{padding:.3rem}tfoot.formio-grid-footer .page-num{font-size:1.4em}tfoot.formio-grid-footer ul.pagination{margin-top:5px;margin-bottom:0}\\n\"], dependencies: [{ kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: i2$1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i2$1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"component\", type: i3.PaginationComponent, selector: \"pagination\", inputs: [\"align\", \"maxSize\", \"boundaryLinks\", \"directionLinks\", \"firstText\", \"previousText\", \"nextText\", \"lastText\", \"rotate\", \"pageBtnClass\", \"disabled\", \"customPageTemplate\", \"customNextTemplate\", \"customPreviousTemplate\", \"customFirstTemplate\", \"customLastTemplate\", \"itemsPerPage\", \"totalItems\"], outputs: [\"numPages\", \"pageChanged\"] }], encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: SubmissionGridFooterComponent, decorators: [{\n type: Component,\n args: [{ encapsulation: ViewEncapsulation.None, template: \"<ng-template #footer let-position=\\\"position\\\">\\n <thead class=\\\"formio-grid-footer\\\" *ngIf=\\\"position === footerPositions.top\\\">\\n <ng-container [ngTemplateOutlet]=\\\"defaultFooterTemplate\\\"></ng-container>\\n </thead>\\n <tfoot class=\\\"formio-grid-footer\\\" *ngIf=\\\"position === footerPositions.bottom\\\">\\n <ng-container [ngTemplateOutlet]=\\\"defaultFooterTemplate\\\"></ng-container>\\n </tfoot>\\n</ng-template>\\n\\n<ng-template #defaultFooterTemplate>\\n <tr>\\n <td *ngIf=\\\"header\\\" [colSpan]=\\\"header.numHeaders\\\">\\n <button *ngIf=\\\"actionAllowed('submissionCreate') && createText\\\" class=\\\"btn btn-primary pull-left float-left\\\" (click)=\\\"createItem.emit('form')\\\"><em class=\\\"glyphicon glyphicon-plus fa fa-plus\\\"></em> {{ createText }}</button>\\n <span class=\\\"pull-right float-right item-counter\\\"><span class=\\\"page-num\\\">{{ body.firstItem }} - {{ body.lastItem }}</span> / {{ body.total }} total</span>\\n <pagination [totalItems]=\\\"body.total\\\" [itemsPerPage]=\\\"body.limit\\\" [(ngModel)]=\\\"body.skip\\\" (pageChanged)=\\\"pageChanged.emit($event)\\\" [maxSize]=\\\"size\\\" class=\\\"justify-content-center pagination-sm\\\"></pagination>\\n </td>\\n </tr>\\n</ng-template>\\n\", styles: [\"tfoot.formio-grid-footer td{padding:.3rem}tfoot.formio-grid-footer .page-num{font-size:1.4em}tfoot.formio-grid-footer ul.pagination{margin-top:5px;margin-bottom:0}\\n\"] }]\n }], ctorParameters: function () { return []; } });\n\nvar SubmissionComponents = {\n header: SubmissionGridHeaderComponent,\n body: SubmissionGridBodyComponent,\n footer: SubmissionGridFooterComponent\n};\n\nclass FormioGridComponent {\n constructor(alerts, resolver, ref) {\n this.alerts = alerts;\n this.resolver = resolver;\n this.ref = ref;\n this.footerPosition = GridFooterPositions.bottom;\n this.page = 0;\n this.isLoading = false;\n this.initialized = false;\n this.footerPositions = GridFooterPositions;\n this.select = this.rowSelect = new EventEmitter();\n this.rowAction = new EventEmitter();\n this.createItem = new EventEmitter();\n this.error = new EventEmitter();\n this.isLoading = true;\n }\n createComponent(property, component) {\n const factory = this.resolver.resolveComponentFactory(component);\n const componentRef = property.createComponent(factory);\n return componentRef.instance;\n }\n loadGrid(src) {\n // If no source is provided, then skip.\n if (!src && !this.formio) {\n return;\n }\n // Do not double load.\n if (this.formio && this.src && (src === this.src)) {\n return;\n }\n if (src) {\n this.src = src;\n this.formio = new FormioPromiseService(this.src, { formOnly: true });\n }\n // Load the header.\n this.header.load(this.formio, {}, this.columns)\n .then(() => this.setPage(0))\n .catch(error => this.onError(error));\n }\n ngOnInit() {\n // Create our components.\n const comps = this.components || ((this.gridType === 'form') ? FormComponents : SubmissionComponents);\n this.header = this.createComponent(this.headerElement, comps.header);\n this.header.actionAllowed = this.actionAllowed.bind(this);\n this.header.sort.subscribe(header => this.sortColumn(header));\n this.body = this.createComponent(this.bodyElement, comps.body);\n this.body.header = this.header;\n this.body.actionAllowed = this.actionAllowed.bind(this);\n this.body.rowSelect.subscribe(row => this.rowSelect.emit(row));\n this.body.rowAction.subscribe(action => this.rowAction.emit(action));\n this.footer = this.createComponent(this.footerElement, comps.footer);\n this.footer.header = this.header;\n this.footer.body = this.body;\n this.footer.actionAllowed = this.actionAllowed.bind(this);\n this.footer.createText = this.createText;\n this.footer.size = this.size;\n this.footer.pageChanged.subscribe(page => this.pageChanged(page));\n this.footer.createItem.subscribe(item => this.createItem.emit(item));\n }\n ngOnChanges(changes) {\n if (this.initialized) {\n if ((changes.src && changes.src.currentValue) ||\n (changes.formio && changes.formio.currentValue)) {\n this.loadGrid(changes.src.currentValue);\n }\n if (changes.items && changes.items.currentValue) {\n this.refreshGrid();\n }\n }\n if (this.footer &&\n (changes.createText && changes.createText.currentValue)) {\n this.footer.createText = changes.createText.currentValue;\n }\n }\n ngAfterViewInit() {\n this.alerts.setAlerts([]);\n this.query = this.query || {};\n if (this.refresh) {\n this.refresh.subscribe((query) => this.refreshGrid(query));\n }\n this.loadGrid(this.src);\n this.initialized = true;\n this.ref.detectChanges();\n }\n actionAllowed(action) {\n if (this.isActionAllowed) {\n return this.isActionAllowed(action);\n }\n else {\n return true;\n }\n }\n onError(error) {\n this.isLoading = false;\n this.error.emit(error);\n if (typeof error === 'string' || error.message) {\n this.alerts.setAlert({\n type: 'danger',\n message: error.message || error\n });\n }\n }\n refreshGrid(query) {\n this.alerts.setAlerts([]);\n this.query = query || this.query;\n if (!this.query.hasOwnProperty('limit')) {\n this.query.limit = 10;\n }\n if (!this.query.hasOwnProperty('skip')) {\n this.query.skip = 0;\n }\n this.isLoading = true;\n this.ref.detectChanges();\n Formio.cache = {};\n let loader = null;\n if (this.items) {\n loader = Promise.resolve(this.body.setRows(this.query, this.items));\n }\n else {\n loader = this.body.load(this.formio, this.query);\n }\n return loader.then(info => {\n this.isLoading = false;\n this.initialized = true;\n this.ref.detectChanges();\n }).catch(error => this.onError(error));\n }\n setPage(num = -1) {\n this.page = num !== -1 ? num : this.page;\n if (!this.query.hasOwnProperty('limit')) {\n this.query.limit = 10;\n }\n if (!this.query.hasOwnProperty('skip')) {\n this.query.skip = 0;\n }\n this.query.skip = this.page * this.query.limit;\n this.refreshGrid();\n }\n sortColumn(header) {\n // Reset all other column sorts.\n each(this.header.headers, (col) => {\n if (col.key !== header.key) {\n col.sort = '';\n }\n });\n switch (header.sort) {\n case 'asc':\n header.sort = SortType.DESC;\n this.query.sort = '-' + header.key;\n break;\n case 'desc':\n header.sort = undefined;\n delete this.query.sort;\n break;\n case undefined:\n header.sort = SortType.ASC;\n this.query.sort = header.key;\n break;\n }\n this.refreshGrid();\n }\n pageChanged(page) {\n this.setPage(page.page - 1);\n }\n}\nFormioGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: FormioGridComponent, deps: [{ token: i1$1.FormioAlerts }, { token: i0.ComponentFactoryResolver }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });\nFormioGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.1\", type: FormioGridComponent, selector: \"formio-grid\", inputs: { footerPosition: \"footerPosition\", src: \"src\", items: \"items\", onForm: \"onForm\", query: \"query\", refresh: \"refresh\", columns: \"columns\", gridType: \"gridType\", size: \"size\", components: \"components\", formio: \"formio\", label: \"label\", createText: \"createText\", isActionAllowed: \"isActionAllowed\" }, outputs: { select: \"select\", rowSelect: \"rowSelect\", rowAction: \"rowAction\", createItem: \"createItem\", error: \"error\" }, viewQueries: [{ propertyName: \"headerElement\", first: true, predicate: [\"headerTemplate\"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: \"bodyElement\", first: true, predicate: [\"bodyTemplate\"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: \"footerElement\", first: true, predicate: [\"footerTemplate\"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: \"<ng-template #headerTemplate></ng-template>\\n<ng-template #bodyTemplate></ng-template>\\n<ng-template #footerTemplate></ng-template>\\n<div class=\\\"formio-grid\\\">\\n <formio-alerts [alerts]=\\\"alerts\\\"></formio-alerts>\\n <table class=\\\"table table-bordered table-striped table-hover\\\">\\n <ng-container *ngIf=\\\"initialized && [footerPositions.top, footerPositions.both].indexOf(footerPosition) !== -1\\\"\\n [ngTemplateOutlet]=\\\"footer.template\\\" [ngTemplateOutletContext]=\\\"{ position: footerPositions.top, label: label }\\\">\\n </ng-container>\\n <ng-container *ngIf=\\\"initialized\\\"\\n [ngTemplateOutlet]=\\\"header.template\\\"></ng-container>\\n <formio-loader [isLoading]=\\\"isLoading\\\"></formio-loader>\\n <ng-container *ngIf=\\\"initialized\\\" [ngTemplateOutlet]=\\\"body.template\\\"></ng-container>\\n <ng-container *ngIf=\\\"initialized && [footerPositions.bottom, footerPositions.both].indexOf(footerPosition) !== -1\\\"\\n [ngTemplateOutlet]=\\\"footer.template\\\" [ngTemplateOutletContext]=\\\"{ position: footerPositions.bottom, label: label }\\\">\\n </ng-container>\\n </table>\\n</div>\\n\", styles: [\".formio-grid{position:relative;width:100%}.grid-refresh{height:400px;width:100%}\\n\"], dependencies: [{ kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: i1$1.FormioLoaderComponent, selector: \"formio-loader\", inputs: [\"isLoading\"] }, { kind: \"component\", type: i1$1.FormioAlertsComponent, selector: \"formio-alerts\", inputs: [\"alerts\"], outputs: [\"focusComponent\"] }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: FormioGridComponent, decorators: [{\n type: Component,\n args: [{ selector: 'formio-grid', template: \"<ng-template #headerTemplate></ng-template>\\n<ng-template #bodyTemplate></ng-template>\\n<ng-template #footerTemplate></ng-template>\\n<div class=\\\"formio-grid\\\">\\n <formio-alerts [alerts]=\\\"alerts\\\"></formio-alerts>\\n <table class=\\\"table table-bordered table-striped table-hover\\\">\\n <ng-container *ngIf=\\\"initialized && [footerPositions.top, footerPositions.both].indexOf(footerPosition) !== -1\\\"\\n [ngTemplateOutlet]=\\\"footer.template\\\" [ngTemplateOutletContext]=\\\"{ position: footerPositions.top, label: label }\\\">\\n </ng-container>\\n <ng-container *ngIf=\\\"initialized\\\"\\n [ngTemplateOutlet]=\\\"header.template\\\"></ng-container>\\n <formio-loader [isLoading]=\\\"isLoading\\\"></formio-loader>\\n <ng-container *ngIf=\\\"initialized\\\" [ngTemplateOutlet]=\\\"body.template\\\"></ng-container>\\n <ng-container *ngIf=\\\"initialized && [footerPositions.bottom, footerPositions.both].indexOf(footerPosition) !== -1\\\"\\n [ngTemplateOutlet]=\\\"footer.template\\\" [ngTemplateOutletContext]=\\\"{ position: footerPositions.bottom, label: label }\\\">\\n </ng-container>\\n </table>\\n</div>\\n\", styles: [\".formio-grid{position:relative;width:100%}.grid-refresh{height:400px;width:100%}\\n\"] }]\n }], ctorParameters: function () { return [{ type: i1$1.FormioAlerts }, { type: i0.ComponentFactoryResolver }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { footerPosition: [{\n type: Input\n }], src: [{\n type: Input\n }], items: [{\n type: Input\n }], onForm: [{\n type: Input\n }], query: [{\n type: Input\n }], refresh: [{\n type: Input\n }], columns: [{\n type: Input\n }], gridType: [{\n type: Input\n }], size: [{\n type: Input\n }], components: [{\n type: Input\n }], formio: [{\n type: Input\n }], label: [{\n type: Input\n }], createText: [{\n type: Input\n }], isActionAllowed: [{\n type: Input\n }], select: [{\n type: Output\n }], rowSelect: [{\n type: Output\n }], rowAction: [{\n type: Output\n }], createItem: [{\n type: Output\n }], error: [{\n type: Output\n }], headerElement: [{\n type: ViewChild,\n args: ['headerTemplate', { read: ViewContainerRef, static: true }]\n }], bodyElement: [{\n type: ViewChild,\n args: ['bodyTemplate', { read: ViewContainerRef, static: true }]\n }], footerElement: [{\n type: ViewChild,\n args: ['footerTemplate', { read: ViewContainerRef, static: true }]\n }] } });\n\nclass FormioGrid {\n}\nFormioGrid.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: FormioGrid, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nFormioGrid.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.0.1\", ngImport: i0, type: FormioGrid, declarations: [FormioGridComponent,\n FormGridHeaderComponent,\n FormGridBodyComponent,\n FormGridFooterComponent,\n SubmissionGridHeaderComponent,\n SubmissionGridBodyComponent,\n SubmissionGridFooterComponent,\n GridHeaderComponent,\n GridBodyComponent,\n GridFooterComponent,\n TimeSince], imports: [CommonModule,\n FormsModule,\n FormioModule,\n RouterModule, i3.PaginationModule], exports: [FormioGridComponent] });\nFormioGrid.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: FormioGrid, providers: [\n FormioAlerts,\n GridService\n ], imports: [CommonModule,\n FormsModule,\n FormioModule,\n RouterModule,\n PaginationModule.forRoot()] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.1\", ngImport: i0, type: FormioGrid, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule,\n FormsModule,\n FormioModule,\n RouterModule,\n PaginationModule.forRoot()\n ],\n declarations: [\n FormioGridComponent,\n FormGridHeaderComponent,\n FormGridBodyComponent,\n FormGridFooterComponent,\n SubmissionGridHeaderComponent,\n SubmissionGridBodyComponent,\n SubmissionGridFooterComponent,\n GridHeaderComponent,\n GridBodyComponent,\n GridFooterComponent,\n TimeSince\n ],\n exports: [\n FormioGridComponent\n ],\n providers: [\n FormioAlerts,\n GridService\n ]\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FormGridBodyComponent, FormGridFooterComponent, FormGridHeaderComponent, FormioGrid, FormioGridComponent, GridBodyComponent, GridFooterComponent, GridHeaderComponent, GridService, SubmissionGridBodyComponent, SubmissionGridFooterComponent, SubmissionGridHeaderComponent };\n//# sourceMappingURL=formio-angular-grid.mjs.map\n//# sourceMappingURL=formio-angular-grid.mjs.map\n","map":{"version":3,"file":"formio-angular-grid.mjs","sources":["../../../projects/angular-formio/grid/src/types/grid-footer-positions.ts","../../../projects/angular-formio/grid/src/GridHeaderComponent.ts","../../../projects/angular-formio/grid/src/types/grid-header.ts","../../../projects/angular-formio/grid/src/form/FormGridHeader.component.ts","../../../projects/angular-formio/grid/src/form/FormGridHeader.component.html","../../../projects/angular-formio/grid/src/grid.service.ts","../../../projects/angular-formio/grid/src/GridBodyComponent.ts","../../../projects/angular-formio/grid/src/form/time-since.pipe.ts","../../../projects/angular-formio/grid/src/form/FormGridBody.component.ts","../../../projects/angular-formio/grid/src/form/FormGridBody.component.html","../../../projects/angular-formio/grid/src/GridFooterComponent.ts","../../../projects/angular-formio/grid/src/form/FormGridFooter.component.ts","../../../projects/angular-formio/grid/src/form/FormGridFooter.component.html","../../../projects/angular-formio/grid/src/form/index.ts","../../../projects/angular-formio/grid/src/submission/SubmissionGridHeader.component.ts","../../../projects/angular-formio/grid/src/submission/SubmissionGridHeader.component.html","../../../projects/angular-formio/grid/src/submission/SubmissionGridBody.component.ts","../../../projects/angular-formio/grid/src/submission/SubmissionGridBody.component.html","../../../projects/angular-formio/grid/src/submission/SubmissionGridFooter.component.ts","../../../projects/angular-formio/grid/src/submission/SubmissionGridFooter.component.html","../../../projects/angular-formio/grid/src/submission/index.ts","../../../projects/angular-formio/grid/src/grid.component.ts","../../../projects/angular-formio/grid/src/grid.component.html","../../../projects/angular-formio/grid/src/grid.module.ts","../../../projects/angular-formio/grid/src/formio-angular-grid.ts"],"sourcesContent":["export enum GridFooterPositions {\n bottom,\n top,\n both\n}\n","import { Output, EventEmitter, ViewChild, TemplateRef, Input, Component } from '@angular/core';\nimport {FormioPromiseService} from '@formio/angular';\nimport {GridHeader} from './types/grid-header';\n\n@Component({\n template: ''\n})\nexport class GridHeaderComponent {\n @Input() actionAllowed: any;\n @Output() sort: EventEmitter<GridHeader>;\n @ViewChild(TemplateRef, {static: true}) template: TemplateRef<any>;\n public headers: Array<GridHeader>;\n constructor() {\n this.headers = [];\n this.sort = new EventEmitter();\n }\n\n get numHeaders() {\n return this.headers.length;\n }\n\n load(formio: FormioPromiseService, query?: any, columns?: Array<any>): Promise<any> {\n return Promise.resolve([]);\n }\n}\n","import {ComponentInstance} from '@formio/angular';\n\nexport interface GridHeader {\n component?: ComponentInstance;\n key: string;\n sort?: SortType;\n label: string;\n renderCell?(cellValue: any, component?: ComponentInstance): string;\n}\n\nexport enum SortType {\n ASC = 'asc',\n DESC = 'desc'\n}\n","import {Component} from '@angular/core';\nimport {GridHeaderComponent} from '../GridHeaderComponent';\nimport {GridHeader, SortType} from '../types/grid-header';\n\n@Component({\n selector: 'form-grid-header',\n templateUrl: './FormGridHeader.component.html'\n})\nexport class FormGridHeaderComponent extends GridHeaderComponent {\n public header: GridHeader;\n load(formio?: any) {\n this.header = {\n label: 'Title',\n key: 'title',\n sort: SortType.ASC\n };\n this.headers = [this.header];\n return Promise.resolve(this.headers);\n }\n\n get numHeaders() {\n return 2;\n }\n}\n","<ng-template>\n <thead>\n <tr>\n <th>\n <div class=\"row\">\n <div class=\"col-sm-8\">\n <a (click)=\"sort.emit(header)\">\n {{ header.label }} <span [ngClass]=\"{'glyphicon-triangle-top fa-caret-up': (header.sort === 'asc'), 'glyphicon-triangle-bottom fa-caret-down': (header.sort === 'desc')}\" class=\"glyphicon fa\" *ngIf=\"header.sort\"></span>\n </a>\n </div>\n <div class=\"col-sm-4\">\n Operations\n </div>\n </div>\n </th>\n </tr>\n </thead>\n</ng-template>\n","import { Injectable } from '@angular/core';\nimport _intersection from 'lodash/intersection';\n\n@Injectable()\nexport class GridService {\n public rows: Array<any>;\n constructor() {}\n\n setRows(rows) {\n this.rows = rows;\n }\n\n getFormsPerPage() {\n return this.rows?.length;\n }\n}\n","import { Input, Output, EventEmitter, ViewChild, TemplateRef, Component } from '@angular/core';\nimport { each, clone } from 'lodash';\nimport { GridHeaderComponent } from './GridHeaderComponent';\nimport { GridService } from './grid.service';\nimport {FormioPromiseService} from '@formio/angular';\n\n@Component({\n template: ''\n})\nexport class GridBodyComponent {\n @Input() header: GridHeaderComponent;\n @Input() actionAllowed: any;\n @Output() rowSelect: EventEmitter<any>;\n @Output() rowAction: EventEmitter<any>;\n @ViewChild(TemplateRef, {static: true}) template: TemplateRef<any>;\n public rows: Array<any>;\n public loading: Boolean;\n public firstItem = 0;\n public lastItem = 0;\n public skip = 0;\n public limit = 0;\n public total = 0;\n constructor(public service: GridService) {\n this.rowSelect = new EventEmitter();\n this.rowAction = new EventEmitter();\n this.loading = true;\n }\n\n load(formio: FormioPromiseService, query?: any): Promise<any> {\n return formio.loadForm(query);\n }\n\n onRowSelect(event, row) {\n event.preventDefault();\n this.rowSelect.emit(row);\n }\n\n onRowAction(event, row, action) {\n event.preventDefault();\n this.rowAction.emit({ row, action });\n }\n\n /**\n * Set the rows for this Grid body.\n *\n * @param query\n * @param items\n * @return any\n */\n setRows(query: any, items: any) {\n this.rows = [];\n\n if (typeof items !== 'object') {\n this.firstItem = 0;\n this.lastItem = 0;\n this.total = 0;\n this.skip = 0;\n this.loading = false;\n this.service.setRows(this.rows);\n \n return this.rows;\n }\n\n this.firstItem = query.skip + 1;\n this.lastItem = this.firstItem + items.length - 1;\n if (this.lastItem === 0) {\n this.firstItem = 0;\n }\n this.total = items.serverCount;\n this.limit = query.limit;\n this.skip = Math.floor(items.skip / query.limit) + 1;\n this.loading = false;\n each(items, (item: any) => {\n this.rows.push(clone(item));\n });\n this.service.setRows(this.rows);\n\n return this.rows;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'timeSince'\n})\nexport class TimeSince implements PipeTransform {\n transform(date: Date): string {\n const elapsed = (new Date().getTime() - new Date(date).getTime()) / 1000;\n let interval;\n if (interval >= 1) {\n return interval + ' year' + (interval > 1 ? 's' : '');\n }\n interval = Math.floor(elapsed / 2592000);\n if (interval >= 1){\n return interval + ' month' + (interval > 1 ? 's' : '');\n }\n interval = Math.floor(elapsed / 86400);\n if (interval >= 1) {\n return interval + ' day' + (interval > 1 ? 's' : '');\n }\n interval = Math.floor(elapsed / 3600);\n if (interval >= 1) {\n return interval + ' hour' + (interval > 1 ? 's' : '');\n }\n interval = Math.floor(elapsed / 60);\n if (interval >= 1) {\n return interval + ' minute' + (interval > 1 ? 's' : '');\n }\n return Math.floor(elapsed) + ' second' + (elapsed > 1 ? 's' : '');\n }\n}","import { Component } from '@angular/core';\nimport { GridBodyComponent } from '../GridBodyComponent';\nimport { FormioPromiseService } from '@formio/angular';\n\n@Component({\n selector: 'form-grid-body',\n styleUrls: ['./FormGridBody.component.scss'],\n templateUrl: './FormGridBody.component.html'\n})\nexport class FormGridBodyComponent extends GridBodyComponent {\n load(formio: FormioPromiseService, query?: any) {\n query = query || {};\n return formio.loadForms({ params: query }).then((forms: any) => this.setRows(query, forms));\n }\n}\n","<ng-template>\n <tbody *ngIf=\"rows\">\n <tr *ngFor=\"let form of rows\">\n <td>\n <div class=\"row\">\n <div class=\"col-sm-8\">\n <a routerLink=\"{{form._id}}/view\" (click)=\"onRowSelect($event, form)\"><h5>{{ form.title }}</h5></a>\n <div class=\"form-updated small text-muted\">\n Updated {{ form.modified | timeSince }} ago\n </div>\n </div>\n <div class=\"col-sm-4\">\n <button *ngIf=\"actionAllowed('formView')\" class=\"btn btn-outline-secondary btn-sm form-btn form-btn-use\" (click)=\"onRowAction($event, form, 'view')\"><span class=\"fa fa-pencil\"></span> Enter Data</button> \n <button *ngIf=\"actionAllowed('formSubmission')\" class=\"btn btn-outline-secondary btn-sm form-btn\" (click)=\"onRowAction($event, form, 'submission')\"><span class=\"fa fa-list-alt\"></span> View Data</button> \n <button *ngIf=\"actionAllowed('formEdit')\" class=\"btn btn-outline-secondary btn-sm form-btn\" (click)=\"onRowAction($event, form, 'edit')\"><span class=\"fa fa-edit\"></span> Edit Form</button> \n <button *ngIf=\"actionAllowed('formPermission')\" class=\"btn btn-outline-secondary btn-sm form-btn\" (click)=\"onRowAction($event, form, 'permissions')\"><span class=\"fa fa-lock\"></span> Permissions</button> \n <button *ngIf=\"actionAllowed('formDelete')\" class=\"btn btn-danger btn-sm form-btn form-btn-delete\" (click)=\"onRowAction($event, form, 'delete')\" title=\"Delete form\"><span class=\"fa fa-trash\"></span></button>\n </div>\n </div>\n </td>\n </tr>\n </tbody>\n</ng-template>\n","import { GridFooterPositions } from './types/grid-footer-positions';\nimport { Input, Output, ViewChild, TemplateRef, EventEmitter, Component } from '@angular/core';\nimport { GridHeaderComponent } from './GridHeaderComponent';\nimport { GridBodyComponent } from './GridBodyComponent';\n\n@Component({\n template: ''\n})\nexport class GridFooterComponent {\n @Input() header: GridHeaderComponent;\n @Input() body: GridBodyComponent;\n @Input() createText: String;\n @Input() size: number;\n @Input() actionAllowed: any;\n @Output() pageChanged: EventEmitter<any>;\n @Output() createItem: EventEmitter<any>;\n @ViewChild(TemplateRef, {static: true}) template: TemplateRef<any>;\n\n public footerPositions = GridFooterPositions;\n\n constructor() {\n this.pageChanged = new EventEmitter();\n this.createItem = new EventEmitter();\n }\n}\n","import {Component, ViewEncapsulation, OnInit } from '@angular/core';\nimport { GridFooterComponent } from '../GridFooterComponent';\n\n@Component({\n templateUrl: './FormGridFooter.component.html',\n styleUrls: ['../grid.footer.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FormGridFooterComponent extends GridFooterComponent implements OnInit {\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n if (!this.createText) {\n this.createText = 'Create Form';\n }\n if (!this.size) {\n this.size = 7;\n }\n }\n}\n","<ng-template #footer let-position=\"position\" let-label=\"label\">\n <thead class=\"formio-grid-footer\" *ngIf=\"position === footerPositions.top\">\n <ng-container [ngTemplateOutlet]=\"defaultFooterTemplate\" [ngTemplateOutletContext]=\"{ label: label }\"></ng-container>\n </thead>\n <tfoot class=\"formio-grid-footer\" *ngIf=\"position === footerPositions.bottom\">\n <ng-container [ngTemplateOutlet]=\"defaultFooterTemplate\" [ngTemplateOutletContext]=\"{ label: label }\"></ng-container>\n </tfoot>\n</ng-template>\n\n<ng-template let-label=\"label\" #defaultFooterTemplate>\n <tr>\n <td *ngIf=\"header\" [colSpan]=\"header.numHeaders\">\n <button *ngIf=\"actionAllowed('formCreate')\" class=\"btn btn-primary form-btn-use pull-left float-left\" (click)=\"createItem.emit('form')\"><em class=\"glyphicon glyphicon-plus fa fa-plus\"></em> {{ createText }}</button>\n <span class=\"pull-right float-right item-counter\"><span class=\"page-num\">{{ body.firstItem }} - {{ body.lastItem }}</span> / {{ body.total }} total</span>\n <span [attr.aria-label]=\"label\" role=\"navigation\">\n <pagination [totalItems]=\"body.total\" [itemsPerPage]=\"body.limit\" [(ngModel)]=\"body.skip\" (pageChanged)=\"pageChanged.emit($event)\" [maxSize]=\"size\" class=\"justify-content-center pagination-sm\">\n </pagination>\n </span>\n </td>\n </tr>\n</ng-template>\n","import { FormGridHeaderComponent } from './FormGridHeader.component';\nimport { FormGridBodyComponent } from './FormGridBody.component';\nimport { FormGridFooterComponent } from './FormGridFooter.component';\nexport default {\n header: FormGridHeaderComponent,\n body: FormGridBodyComponent,\n footer: FormGridFooterComponent\n};\n","import {Component, EventEmitter} from '@angular/core';\nimport {Utils, Components, ExtendedComponentSchema} from 'formiojs';\nimport {GridHeaderComponent} from '../GridHeaderComponent';\nimport {FormioPromiseService} from '@formio/angular';\nimport {ComponentInstance, FormioForm} from '@formio/angular';\nimport {GridColumn} from '../types/grid-column';\nimport {GridHeader, SortType} from '../types/grid-header';\n\n@Component({\n templateUrl: './SubmissionGridHeader.component.html'\n})\nexport class SubmissionGridHeaderComponent extends GridHeaderComponent {\n\n // Map structure where the key is the path and the value is the component\n formComponents: Map<string, ExtendedComponentSchema>;\n\n load(formio: FormioPromiseService, query?: any, columns?: Array<GridColumn>) {\n query = query || {};\n return formio.loadForm({params: query}).then((form: FormioForm) => {\n this.headers = [];\n this.formComponents = new Map<string, ExtendedComponentSchema>();\n this.setComponents(form.components);\n columns ? columns.forEach(column => {\n this.setHeader(this.getHeaderForColumn(column, this.formComponents.get(column.path)));\n }) : this.setComponentsHeaders(this.formComponents);\n\n return this.headers;\n });\n }\n\n setHeader(header: GridHeader) {\n this.headers.push(header);\n }\n\n getHeaderForColumn(column: GridColumn, component?: ExtendedComponentSchema, sort?: SortType) {\n return {\n label: column.label,\n key: column.path,\n sort: sort,\n component: component ? Components.create(component, null, null, true) as ComponentInstance : undefined,\n renderCell: column ? column.renderCell : undefined\n };\n }\n\n getHeaderForComponent(component: ExtendedComponentSchema, path: string, sort?: SortType) {\n return {\n label: component.label,\n key: path,\n sort: sort,\n component: component ? Components.create(component, null, null, true) as ComponentInstance : undefined,\n };\n }\n // Set headers from components in case if columns are not provided\n setComponentsHeaders(components: Map<string, ExtendedComponentSchema>, sort?: SortType) {\n components.forEach((component, path) => {\n if (\n component.input &&\n (!component.hasOwnProperty('tableView') || component.tableView)\n ) {\n this.setHeader(this.getHeaderForComponent(component, path, sort));\n }\n });\n }\n\n // Map components\n setComponents(components) {\n Utils.eachComponent(components, (component: ExtendedComponentSchema, newPath: string) => {\n this.formComponents.set(`data.${newPath}`, component);\n });\n }\n}\n\n","<ng-template>\n <thead>\n <tr>\n <th *ngFor=\"let header of headers\">\n <a (click)=\"sort.emit(header)\">\n {{ header.label }} <span [ngClass]=\"{'glyphicon-triangle-top': (header.sort === 'asc'), 'glyphicon-triangle-bottom': (header.sort === 'desc')}\" class=\"glyphicon\" *ngIf=\"header.sort\"></span>\n </a>\n </th>\n </tr>\n </thead>\n</ng-template>\n","import { Component } from '@angular/core';\nimport { each, get } from 'lodash';\nimport { GridBodyComponent } from '../GridBodyComponent';\nimport {FormioPromiseService} from '@formio/angular';\nimport { GridHeader } from '../types/grid-header';\nimport {FormioSubmission} from '@formio/angular';\n@Component({\n templateUrl: './SubmissionGridBody.component.html'\n})\nexport class SubmissionGridBodyComponent extends GridBodyComponent {\n load(formio: FormioPromiseService, query?: any) {\n query = query || {};\n return formio.loadSubmissions({ params: query })\n .then((submissions: any) => this.setRows(query, submissions));\n }\n\n /**\n * Render the cell data.\n *\n * @param submission\n * @param header\n * @return any\n */\n view(submission: FormioSubmission, header: GridHeader): string {\n const cellValue: any = get(submission, header.key);\n if (header.renderCell) {\n return header.renderCell(cellValue, header.component);\n } else {\n if (header.component) {\n if (header.component.getView) {\n return header.component.getView(cellValue);\n }\n return header.component.asString(cellValue);\n } else {\n return cellValue.toString();\n }\n }\n }\n}\n","<ng-template>\n <tbody>\n <tr *ngFor=\"let row of rows\" (click)=\"onRowSelect($event, row)\">\n <td *ngFor=\"let rowHeader of header.headers\" [innerHTML]=\"view(row, rowHeader)\"></td>\n </tr>\n </tbody>\n</ng-template>\n","import {Component, OnInit, ViewEncapsulation} from '@angular/core';\nimport { GridFooterComponent } from '../GridFooterComponent';\n\n@Component({\n templateUrl: './SubmissionGridFooter.component.html',\n styleUrls: ['../grid.footer.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class SubmissionGridFooterComponent extends GridFooterComponent implements OnInit {\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n if (!this.size) {\n this.size = 7;\n }\n }\n}\n","<ng-template #footer let-position=\"position\">\n <thead class=\"formio-grid-footer\" *ngIf=\"position === footerPositions.top\">\n <ng-container [ngTemplateOutlet]=\"defaultFooterTemplate\"></ng-container>\n </thead>\n <tfoot class=\"formio-grid-footer\" *ngIf=\"position === footerPositions.bottom\">\n <ng-container [ngTemplateOutlet]=\"defaultFooterTemplate\"></ng-container>\n </tfoot>\n</ng-template>\n\n<ng-template #defaultFooterTemplate>\n <tr>\n <td *ngIf=\"header\" [colSpan]=\"header.numHeaders\">\n <button *ngIf=\"actionAllowed('submissionCreate') && createText\" class=\"btn btn-primary pull-left float-left\" (click)=\"createItem.emit('form')\"><em class=\"glyphicon glyphicon-plus fa fa-plus\"></em> {{ createText }}</button>\n <span class=\"pull-right float-right item-counter\"><span class=\"page-num\">{{ body.firstItem }} - {{ body.lastItem }}</span> / {{ body.total }} total</span>\n <pagination [totalItems]=\"body.total\" [itemsPerPage]=\"body.limit\" [(ngModel)]=\"body.skip\" (pageChanged)=\"pageChanged.emit($event)\" [maxSize]=\"size\" class=\"justify-content-center pagination-sm\"></pagination>\n </td>\n </tr>\n</ng-template>\n","import { SubmissionGridHeaderComponent } from './SubmissionGridHeader.component';\nimport { SubmissionGridBodyComponent } from './SubmissionGridBody.component';\nimport { SubmissionGridFooterComponent } from './SubmissionGridFooter.component';\nexport default {\n header: SubmissionGridHeaderComponent,\n body: SubmissionGridBodyComponent,\n footer: SubmissionGridFooterComponent\n};\n","import { GridFooterPositions } from './types/grid-footer-positions';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport {FormioAlerts} from '@formio/angular';\nimport {each} from 'lodash';\nimport {Formio} from 'formiojs';\nimport {GridHeaderComponent} from './GridHeaderComponent';\nimport {GridBodyComponent} from './GridBodyComponent';\nimport {GridFooterComponent} from './GridFooterComponent';\nimport FormComponents from './form/index';\nimport SubmissionComponents from './submission/index';\nimport {FormioPromiseService} from '@formio/angular';\nimport {GridColumn} from './types/grid-column';\nimport {GridHeader, SortType} from './types/grid-header';\n\n@Component({\n selector: 'formio-grid',\n styleUrls: ['./grid.component.scss'],\n templateUrl: './grid.component.html'\n})\nexport class FormioGridComponent implements OnChanges, OnInit, AfterViewInit {\n @Input() footerPosition = GridFooterPositions.bottom;\n @Input() src?: string;\n @Input() items?: Array<any>;\n @Input() onForm?: Promise<any>;\n @Input() query?: any;\n @Input() refresh?: EventEmitter<object>;\n @Input() columns?: Array<GridColumn>;\n @Input() gridType?: string;\n @Input() size?: number;\n @Input() components?: any;\n @Input() formio?: FormioPromiseService;\n @Input() label?: string;\n @Input() createText: String;\n @Input() isActionAllowed: any;\n @Output() select: EventEmitter<object>;\n @Output() rowSelect: EventEmitter<object>;\n @Output() rowAction: EventEmitter<object>;\n @Output() createItem: EventEmitter<any>;\n @Output() error: EventEmitter<any>;\n @ViewChild('headerTemplate', {read: ViewContainerRef, static: true}) headerElement: ViewContainerRef;\n @ViewChild('bodyTemplate', {read: ViewContainerRef, static: true}) bodyElement: ViewContainerRef;\n @ViewChild('footerTemplate', {read: ViewContainerRef, static: true}) footerElement: ViewContainerRef;\n\n public page = 0;\n public isLoading = false;\n public initialized = false;\n public header: GridHeaderComponent;\n public body: GridBodyComponent;\n public footer: GridFooterComponent;\n public footerPositions = GridFooterPositions;\n\n constructor(\n public alerts: FormioAlerts,\n private resolver: ComponentFactoryResolver,\n private ref: ChangeDetectorRef\n ) {\n this.select = this.rowSelect = new EventEmitter();\n this.rowAction = new EventEmitter();\n this.createItem = new EventEmitter();\n this.error = new EventEmitter();\n this.isLoading = true;\n }\n\n createComponent(property, component) {\n const factory = this.resolver.resolveComponentFactory(component);\n const componentRef = property.createComponent(factory);\n return componentRef.instance;\n }\n\n loadGrid(src?: string) {\n // If no source is provided, then skip.\n if (!src && !this.formio) {\n return;\n }\n // Do not double load.\n if (this.formio && this.src && (src === this.src)) {\n return;\n }\n\n if (src) {\n this.src = src;\n this.formio = new FormioPromiseService(this.src, { formOnly: true });\n }\n\n // Load the header.\n this.header.load(this.formio, {}, this.columns)\n .then(() => this.setPage(0))\n .catch(error => this.onError(error));\n }\n\n ngOnInit() {\n // Create our components.\n const comps = this.components || ((this.gridType === 'form') ? FormComponents : SubmissionComponents);\n\n this.header = this.createComponent(this.headerElement, comps.header);\n this.header.actionAllowed = this.actionAllowed.bind(this);\n this.header.sort.subscribe(header => this.sortColumn(header));\n\n this.body = this.createComponent(this.bodyElement, comps.body);\n this.body.header = this.header;\n this.body.actionAllowed = this.actionAllowed.bind(this);\n this.body.rowSelect.subscribe(row => this.rowSelect.emit(row));\n this.body.rowAction.subscribe(action => this.rowAction.emit(action));\n\n this.footer = this.createComponent(this.footerElement, comps.footer);\n this.footer.header = this.header;\n this.footer.body = this.body;\n this.footer.actionAllowed = this.actionAllowed.bind(this);\n this.footer.createText = this.createText;\n this.footer.size = this.size;\n this.footer.pageChanged.subscribe(page => this.pageChanged(page));\n this.footer.createItem.subscribe(item => this.createItem.emit(item));\n }\n\n ngOnChanges(changes: any) {\n if (this.initialized) {\n if (\n (changes.src && changes.src.currentValue) ||\n (changes.formio && changes.formio.currentValue)\n ) {\n this.loadGrid(changes.src.currentValue);\n }\n\n if (changes.items && changes.items.currentValue) {\n this.refreshGrid();\n }\n }\n\n if (this.footer &&\n (changes.createText && changes.createText.currentValue)) {\n this.footer.createText = changes.createText.currentValue;\n }\n }\n\n ngAfterViewInit() {\n this.alerts.setAlerts([]);\n this.query = this.query || {};\n if (this.refresh) {\n this.refresh.subscribe((query: object) => this.refreshGrid(query));\n }\n this.loadGrid(this.src);\n this.initialized = true;\n this.ref.detectChanges();\n }\n\n actionAllowed(action) {\n if (this.isActionAllowed) {\n return this.isActionAllowed(action);\n } else {\n return true;\n }\n }\n\n onError(error: any) {\n this.isLoading = false;\n this.error.emit(error);\n if (typeof error === 'string' || error.message) {\n this.alerts.setAlert({\n type: 'danger',\n message: error.message || error\n });\n }\n }\n\n refreshGrid(query?: any) {\n this.alerts.setAlerts([]);\n this.query = query || this.query;\n if (!this.query.hasOwnProperty('limit')) {\n this.query.limit = 10;\n }\n if (!this.query.hasOwnProperty('skip')) {\n this.query.skip = 0;\n }\n this.isLoading = true;\n this.ref.detectChanges();\n Formio.cache = {};\n let loader = null;\n if (this.items) {\n loader = Promise.resolve(this.body.setRows(this.query, this.items));\n } else {\n loader = this.body.load(this.formio, this.query);\n }\n\n return loader.then(info => {\n this.isLoading = false;\n this.initialized = true;\n this.ref.detectChanges();\n }).catch(error => this.onError(error));\n }\n\n setPage(num = -1) {\n this.page = num !== -1 ? num : this.page;\n if (!this.query.hasOwnProperty('limit')) {\n this.query.limit = 10;\n }\n if (!this.query.hasOwnProperty('skip')) {\n this.query.skip = 0;\n }\n this.query.skip = this.page * this.query.limit;\n this.refreshGrid();\n }\n\n sortColumn(header: GridHeader) {\n // Reset all other column sorts.\n each(this.header.headers, (col: any) => {\n if (col.key !== header.key) {\n col.sort = '';\n }\n });\n switch (header.sort) {\n case 'asc':\n header.sort = SortType.DESC;\n this.query.sort = '-' + header.key;\n break;\n case 'desc':\n header.sort = undefined;\n delete this.query.sort;\n break;\n case undefined:\n header.sort = SortType.ASC;\n this.query.sort = header.key;\n break;\n }\n this.refreshGrid();\n }\n\n pageChanged(page: any) {\n this.setPage(page.page - 1);\n }\n}\n","<ng-template #headerTemplate></ng-template>\n<ng-template #bodyTemplate></ng-template>\n<ng-template #footerTemplate></ng-template>\n<div class=\"formio-grid\">\n <formio-alerts [alerts]=\"alerts\"></formio-alerts>\n <table class=\"table table-bordered table-striped table-hover\">\n <ng-container *ngIf=\"initialized && [footerPositions.top, footerPositions.both].indexOf(footerPosition) !== -1\"\n [ngTemplateOutlet]=\"footer.template\" [ngTemplateOutletContext]=\"{ position: footerPositions.top, label: label }\">\n </ng-container>\n <ng-container *ngIf=\"initialized\"\n [ngTemplateOutlet]=\"header.template\"></ng-container>\n <formio-loader [isLoading]=\"isLoading\"></formio-loader>\n <ng-container *ngIf=\"initialized\" [ngTemplateOutlet]=\"body.template\"></ng-container>\n <ng-container *ngIf=\"initialized && [footerPositions.bottom, footerPositions.both].indexOf(footerPosition) !== -1\"\n [ngTemplateOutlet]=\"footer.template\" [ngTemplateOutletContext]=\"{ position: footerPositions.bottom, label: label }\">\n </ng-container>\n </table>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { FormioModule } from '@formio/angular';\nimport { FormioAlerts } from '@formio/angular';\nimport { FormioGridComponent } from './grid.component';\nimport { PaginationModule } from 'ngx-bootstrap/pagination';\nimport { FormGridHeaderComponent } from './form/FormGridHeader.component';\nimport { FormGridBodyComponent } from './form/FormGridBody.component';\nimport { FormGridFooterComponent } from './form/FormGridFooter.component';\nimport { SubmissionGridHeaderComponent } from './submission/SubmissionGridHeader.component';\nimport { SubmissionGridBodyComponent } from './submission/SubmissionGridBody.component';\nimport { SubmissionGridFooterComponent } from './submission/SubmissionGridFooter.component';\nimport { GridHeaderComponent } from './GridHeaderComponent';\nimport { GridBodyComponent } from './GridBodyComponent';\nimport { GridFooterComponent } from './GridFooterComponent';\nimport { GridService } from './grid.service';\nimport { TimeSince } from './form/time-since.pipe'\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n FormioModule,\n RouterModule,\n PaginationModule.forRoot()\n ],\n declarations: [\n FormioGridComponent,\n FormGridHeaderComponent,\n FormGridBodyComponent,\n FormGridFooterComponent,\n SubmissionGridHeaderComponent,\n SubmissionGridBodyComponent,\n SubmissionGridFooterComponent,\n GridHeaderComponent,\n GridBodyComponent,\n GridFooterComponent,\n TimeSince\n ],\n exports: [\n FormioGridComponent\n ],\n providers: [\n FormioAlerts,\n GridService\n ]\n})\nexport class FormioGrid {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.GridService","i3.TimeSince","i2","i1"],"mappings":"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"}}}
|