techlify-inventory-common 18.47.0 → 18.48.0

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.
Files changed (52) hide show
  1. package/esm2022/lib/inventory-common/inventory-common-routing.module.mjs +5 -1
  2. package/esm2022/lib/inventory-common/location/location-selector/location-selector.component.mjs +5 -4
  3. package/esm2022/lib/inventory-common/recipient/recipient-form/recipient-form.component.mjs +59 -0
  4. package/esm2022/lib/inventory-common/recipient/recipient-list/recipient-list.component.mjs +49 -0
  5. package/esm2022/lib/inventory-common/recipient/recipient-routing.module.mjs +24 -0
  6. package/esm2022/lib/inventory-common/recipient/recipient.module.mjs +18 -0
  7. package/esm2022/lib/inventory-common/recipient/recipient.service.mjs +18 -0
  8. package/esm2022/lib/inventory-common/reports/stock-issue-summary-report/stock-issue-summary-report.component.mjs +31 -32
  9. package/esm2022/lib/inventory-common/shared.module.mjs +9 -2
  10. package/esm2022/lib/inventory-common/stock-issue/stock-issue-form/stock-issue-form.component.mjs +29 -19
  11. package/esm2022/lib/inventory-common/stock-issue/stock-issue-list/stock-issue-list.component.mjs +6 -7
  12. package/esm2022/lib/inventory-common/stock-issue/stock-issue-page/stock-issue-page.component.mjs +3 -3
  13. package/esm2022/lib/inventory-common/stock-issue/stock-issue-product-form/stock-issue-product-form.component.mjs +6 -6
  14. package/esm2022/lib/inventory-common/stock-issue/stock-issue-products-list/stock-issue-products-list.component.mjs +7 -7
  15. package/esm2022/lib/inventory-common/stock-issue/stock-issue-single-product-form/stock-issue-single-product-form.component.mjs +38 -17
  16. package/esm2022/lib/inventory-common/stock-receipts/stock-receipt-form/stock-receipt-form.component.mjs +2 -2
  17. package/esm2022/lib/inventory-common/stock-receipts/stock-receipt-list/stock-receipt-list.component.mjs +5 -5
  18. package/esm2022/lib/inventory-common/stock-receipts/stock-receipt-product-list/stock-receipt-product-list.component.mjs +6 -6
  19. package/esm2022/lib/inventory-common/stock-receipts/stock-receipt-single-product-form/stock-receipt-simple-form/stock-receipt-single-product-form.component.mjs +2 -2
  20. package/fesm2022/{techlify-inventory-common-category.module-BL0mKMMU.mjs → techlify-inventory-common-category.module-VjAS4ehQ.mjs} +8 -8
  21. package/fesm2022/{techlify-inventory-common-category.module-BL0mKMMU.mjs.map → techlify-inventory-common-category.module-VjAS4ehQ.mjs.map} +1 -1
  22. package/fesm2022/{techlify-inventory-common-purchase-order-view.component-BDdTC81P.mjs → techlify-inventory-common-purchase-order-view.component-D5GrUK-m.mjs} +8 -8
  23. package/fesm2022/{techlify-inventory-common-purchase-order-view.component-BDdTC81P.mjs.map → techlify-inventory-common-purchase-order-view.component-D5GrUK-m.mjs.map} +1 -1
  24. package/fesm2022/techlify-inventory-common-recipient.module-BnRAWk8N.mjs +147 -0
  25. package/fesm2022/techlify-inventory-common-recipient.module-BnRAWk8N.mjs.map +1 -0
  26. package/fesm2022/techlify-inventory-common-stock-issue-form.component-B-aNyhLA.mjs +194 -0
  27. package/fesm2022/techlify-inventory-common-stock-issue-form.component-B-aNyhLA.mjs.map +1 -0
  28. package/fesm2022/{techlify-inventory-common-stock-issue-product-view.component-Di1fJWqD.mjs → techlify-inventory-common-stock-issue-product-view.component-BP2yFaQn.mjs} +2 -2
  29. package/fesm2022/{techlify-inventory-common-stock-issue-product-view.component-Di1fJWqD.mjs.map → techlify-inventory-common-stock-issue-product-view.component-BP2yFaQn.mjs.map} +1 -1
  30. package/fesm2022/{techlify-inventory-common-stock-issue-view.component-DfntkifG.mjs → techlify-inventory-common-stock-issue-view.component-DHdnoIR8.mjs} +2 -2
  31. package/fesm2022/{techlify-inventory-common-stock-issue-view.component-DfntkifG.mjs.map → techlify-inventory-common-stock-issue-view.component-DHdnoIR8.mjs.map} +1 -1
  32. package/fesm2022/{techlify-inventory-common-techlify-inventory-common-BbtWdC-G.mjs → techlify-inventory-common-techlify-inventory-common-DuAN6iqX.mjs} +148 -117
  33. package/fesm2022/techlify-inventory-common-techlify-inventory-common-DuAN6iqX.mjs.map +1 -0
  34. package/fesm2022/techlify-inventory-common.mjs +1 -1
  35. package/lib/inventory-common/location/location-selector/location-selector.component.d.ts +2 -1
  36. package/lib/inventory-common/recipient/recipient-form/recipient-form.component.d.ts +21 -0
  37. package/lib/inventory-common/recipient/recipient-list/recipient-list.component.d.ts +16 -0
  38. package/lib/inventory-common/recipient/recipient-routing.module.d.ts +7 -0
  39. package/lib/inventory-common/recipient/recipient.module.d.ts +9 -0
  40. package/lib/inventory-common/recipient/recipient.service.d.ts +7 -0
  41. package/lib/inventory-common/reports/stock-issue-summary-report/stock-issue-summary-report.component.d.ts +4 -10
  42. package/lib/inventory-common/shared.module.d.ts +4 -3
  43. package/lib/inventory-common/stock-issue/stock-issue-form/stock-issue-form.component.d.ts +5 -3
  44. package/lib/inventory-common/stock-issue/stock-issue-list/stock-issue-list.component.d.ts +2 -2
  45. package/lib/inventory-common/stock-issue/stock-issue-products-list/stock-issue-products-list.component.d.ts +2 -2
  46. package/lib/inventory-common/stock-issue/stock-issue-single-product-form/stock-issue-single-product-form.component.d.ts +5 -3
  47. package/lib/inventory-common/stock-receipts/stock-receipt-list/stock-receipt-list.component.d.ts +2 -2
  48. package/lib/inventory-common/stock-receipts/stock-receipt-product-list/stock-receipt-product-list.component.d.ts +2 -2
  49. package/package.json +1 -1
  50. package/fesm2022/techlify-inventory-common-stock-issue-form.component-B-5myP-N.mjs +0 -183
  51. package/fesm2022/techlify-inventory-common-stock-issue-form.component-B-5myP-N.mjs.map +0 -1
  52. package/fesm2022/techlify-inventory-common-techlify-inventory-common-BbtWdC-G.mjs.map +0 -1
@@ -44,6 +44,10 @@ const routes = [
44
44
  path: 'categories',
45
45
  loadChildren: () => import('./category/category.module').then((mod) => mod.CategoryModule),
46
46
  },
47
+ {
48
+ path: 'recipients',
49
+ loadChildren: () => import('./recipient/recipient.module').then((mod) => mod.RecipientModule),
50
+ },
47
51
  {
48
52
  path: 'products',
49
53
  loadChildren: () => import('./product/product.module').then((mod) => mod.ProductModule),
@@ -74,4 +78,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
74
78
  exports: [RouterModule],
75
79
  }]
76
80
  }] });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52ZW50b3J5LWNvbW1vbi1yb3V0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludmVudG9yeS1jb21tb24vc3JjL2xpYi9pbnZlbnRvcnktY29tbW9uL2ludmVudG9yeS1jb21tb24tcm91dGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDaEgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDaEcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sbUVBQW1FLENBQUM7QUFDbEgsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDaEgsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sMkVBQTJFLENBQUM7OztBQUU3SCxNQUFNLE1BQU0sR0FBVztJQUNyQjtRQUNFLElBQUksRUFBRSwwQkFBMEI7UUFDaEMsU0FBUyxFQUFFLHVCQUF1QjtLQUNuQztJQUNEO1FBQ0UsSUFBSSxFQUFFLGdDQUFnQztRQUN0QyxTQUFTLEVBQUUsNkJBQTZCO0tBQ3pDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsb0NBQW9DO1FBQzFDLFNBQVMsRUFBRSxnQ0FBZ0M7S0FDNUM7SUFDRDtRQUNFLElBQUksRUFBRSxXQUFXO1FBQ2pCLFlBQVksRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7S0FDdkY7SUFDRDtRQUNFLElBQUksRUFBRSxXQUFXO1FBQ2pCLFlBQVksRUFBRSxHQUFHLEVBQUUsQ0FDakIsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDO0tBQ3pFO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsVUFBVTtRQUNoQixZQUFZLEVBQUUsR0FBRyxFQUFFLENBQ2pCLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQztLQUN0RTtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsWUFBWSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDO0tBQ25HO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsZ0JBQWdCO1FBQ3RCLFlBQVksRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsd0NBQXdDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQztLQUM1RztJQUNEO1FBQ0UsSUFBSSxFQUFFLFlBQVk7UUFDbEIsWUFBWSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQztLQUMzRjtJQUNEO1FBQ0UsSUFBSSxFQUFFLFVBQVU7UUFDaEIsWUFBWSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQztLQUN4RjtJQUNEO1FBQ0UsSUFBSSxFQUFFLGlCQUFpQjtRQUN2QixTQUFTLEVBQUUsMEJBQTBCO0tBQ3RDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsV0FBVztRQUNqQixTQUFTLEVBQUUsK0JBQStCO0tBQzNDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsSUFBSTtRQUNWLFVBQVUsRUFBRSxVQUFVO1FBQ3RCLFNBQVMsRUFBRSxNQUFNO0tBQ2xCO0NBQ0YsQ0FBQztBQU1GLE1BQU0sT0FBTyw0QkFBNEI7d0dBQTVCLDRCQUE0Qjt5R0FBNUIsNEJBQTRCLHdDQUY3QixZQUFZO3lHQUVYLDRCQUE0QixZQUg3QixZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUM3QixZQUFZOzs0RkFFWCw0QkFBNEI7a0JBSnhDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDeEMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUsIFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJbnZlbnRvcnlEYXNoYm9hcmRQYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9pbnZlbnRvcnktZGFzaGJvYXJkLXBhZ2UvaW52ZW50b3J5LWRhc2hib2FyZC1wYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb3dTdG9ja1JlcG9ydENvbXBvbmVudCB9IGZyb20gJy4vcmVwb3J0cy9sb3ctc3RvY2stcmVwb3J0L2xvdy1zdG9jay1yZXBvcnQuY29tcG9uZW50JztcbmltcG9ydCB7IEludmVudG9yeVZhbHVlUmVwb3J0Q29tcG9uZW50IH0gZnJvbSAnLi9yZXBvcnRzL2ludmVudG9yeS12YWx1ZS1yZXBvcnQvaW52ZW50b3J5LXZhbHVlLXJlcG9ydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3RvY2tUcmFuc2Zlckxpc3RDb21wb25lbnQgfSBmcm9tIFwiLi9zdG9jay10cmFuc2Zlci9zdG9jay10cmFuc2Zlci1saXN0L3N0b2NrLXRyYW5zZmVyLWxpc3QuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBTdG9ja0lzc3VlU3VtbWFyeVJlcG9ydENvbXBvbmVudCB9IGZyb20gJy4vcmVwb3J0cy9zdG9jay1pc3N1ZS1zdW1tYXJ5LXJlcG9ydC9zdG9jay1pc3N1ZS1zdW1tYXJ5LXJlcG9ydC5jb21wb25lbnQnO1xuXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcbiAge1xuICAgIHBhdGg6ICdyZXBvcnRzL2xvdy1zdG9jay1yZXBvcnQnLFxuICAgIGNvbXBvbmVudDogTG93U3RvY2tSZXBvcnRDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAncmVwb3J0cy9pbnZlbnRvcnktdmFsdWUtcmVwb3J0JyxcbiAgICBjb21wb25lbnQ6IEludmVudG9yeVZhbHVlUmVwb3J0Q29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ3JlcG9ydHMvc3RvY2staXNzdWUtc3VtbWFyeS1yZXBvcnQnLFxuICAgIGNvbXBvbmVudDogU3RvY2tJc3N1ZVN1bW1hcnlSZXBvcnRDb21wb25lbnRcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdzdXBwbGllcnMnLFxuICAgIGxvYWRDaGlsZHJlbjogKCkgPT4gaW1wb3J0KCcuL3N1cHBsaWVyL3N1cHBsaWVyLm1vZHVsZScpLnRoZW4oKG0pID0+IG0uU3VwcGxpZXJNb2R1bGUpLFxuICB9LFxuICB7XG4gICAgcGF0aDogJ2xvY2F0aW9ucycsXG4gICAgbG9hZENoaWxkcmVuOiAoKSA9PlxuICAgICAgaW1wb3J0KFwiLi9sb2NhdGlvbi9sb2NhdGlvbi5tb2R1bGVcIikudGhlbigobW9kKSA9PiBtb2QuTG9jYXRpb25Nb2R1bGUpLFxuICB9LFxuICB7XG4gICAgcGF0aDogXCJtZWFzdXJlc1wiLFxuICAgIGxvYWRDaGlsZHJlbjogKCkgPT5cbiAgICAgIGltcG9ydChcIi4vbWVhc3VyZS9tZWFzdXJlLm1vZHVsZVwiKS50aGVuKChtb2QpID0+IG1vZC5NZWFzdXJlTW9kdWxlKSxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdzdG9jay1pc3N1ZXMnLFxuICAgIGxvYWRDaGlsZHJlbjogKCkgPT4gaW1wb3J0KCcuL3N0b2NrLWlzc3VlL3N0b2NrLWlzc3VlLm1vZHVsZScpLnRoZW4oKG1vZCkgPT4gbW9kLlN0b2NrSXNzdWVNb2R1bGUpLFxuICB9LFxuICB7XG4gICAgcGF0aDogJ3N0b2NrLXJlY2VpcHRzJyxcbiAgICBsb2FkQ2hpbGRyZW46ICgpID0+IGltcG9ydCgnLi9zdG9jay1yZWNlaXB0cy9zdG9jay1yZWNlaXB0cy5tb2R1bGUnKS50aGVuKChtb2QpID0+IG1vZC5TdG9ja1JlY2VpcHRzTW9kdWxlKSxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdjYXRlZ29yaWVzJyxcbiAgICBsb2FkQ2hpbGRyZW46ICgpID0+IGltcG9ydCgnLi9jYXRlZ29yeS9jYXRlZ29yeS5tb2R1bGUnKS50aGVuKChtb2QpID0+IG1vZC5DYXRlZ29yeU1vZHVsZSksXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAncHJvZHVjdHMnLFxuICAgIGxvYWRDaGlsZHJlbjogKCkgPT4gaW1wb3J0KCcuL3Byb2R1Y3QvcHJvZHVjdC5tb2R1bGUnKS50aGVuKChtb2QpID0+IG1vZC5Qcm9kdWN0TW9kdWxlKSxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdzdG9jay10cmFuc2ZlcnMnLFxuICAgIGNvbXBvbmVudDogU3RvY2tUcmFuc2Zlckxpc3RDb21wb25lbnRcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdkYXNoYm9hcmQnLFxuICAgIGNvbXBvbmVudDogSW52ZW50b3J5RGFzaGJvYXJkUGFnZUNvbXBvbmVudCxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICcqKicsXG4gICAgcmVkaXJlY3RUbzogJ3Byb2R1Y3RzJyxcbiAgICBwYXRoTWF0Y2g6ICdmdWxsJyxcbiAgfSxcbl07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKV0sXG4gIGV4cG9ydHM6IFtSb3V0ZXJNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBJbnZlbnRvcnlDb21tb25Sb3V0aW5nTW9kdWxlIHsgfVxuIl19
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52ZW50b3J5LWNvbW1vbi1yb3V0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludmVudG9yeS1jb21tb24vc3JjL2xpYi9pbnZlbnRvcnktY29tbW9uL2ludmVudG9yeS1jb21tb24tcm91dGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDaEgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDaEcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sbUVBQW1FLENBQUM7QUFDbEgsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDaEgsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sMkVBQTJFLENBQUM7OztBQUU3SCxNQUFNLE1BQU0sR0FBVztJQUNyQjtRQUNFLElBQUksRUFBRSwwQkFBMEI7UUFDaEMsU0FBUyxFQUFFLHVCQUF1QjtLQUNuQztJQUNEO1FBQ0UsSUFBSSxFQUFFLGdDQUFnQztRQUN0QyxTQUFTLEVBQUUsNkJBQTZCO0tBQ3pDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsb0NBQW9DO1FBQzFDLFNBQVMsRUFBRSxnQ0FBZ0M7S0FDNUM7SUFDRDtRQUNFLElBQUksRUFBRSxXQUFXO1FBQ2pCLFlBQVksRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7S0FDdkY7SUFDRDtRQUNFLElBQUksRUFBRSxXQUFXO1FBQ2pCLFlBQVksRUFBRSxHQUFHLEVBQUUsQ0FDakIsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDO0tBQ3pFO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsVUFBVTtRQUNoQixZQUFZLEVBQUUsR0FBRyxFQUFFLENBQ2pCLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQztLQUN0RTtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsWUFBWSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDO0tBQ25HO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsZ0JBQWdCO1FBQ3RCLFlBQVksRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsd0NBQXdDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQztLQUM1RztJQUNEO1FBQ0UsSUFBSSxFQUFFLFlBQVk7UUFDbEIsWUFBWSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQztLQUMzRjtJQUNEO1FBQ0UsSUFBSSxFQUFFLFlBQVk7UUFDbEIsWUFBWSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQztLQUM5RjtJQUNEO1FBQ0UsSUFBSSxFQUFFLFVBQVU7UUFDaEIsWUFBWSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQztLQUN4RjtJQUNEO1FBQ0UsSUFBSSxFQUFFLGlCQUFpQjtRQUN2QixTQUFTLEVBQUUsMEJBQTBCO0tBQ3RDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsV0FBVztRQUNqQixTQUFTLEVBQUUsK0JBQStCO0tBQzNDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsSUFBSTtRQUNWLFVBQVUsRUFBRSxVQUFVO1FBQ3RCLFNBQVMsRUFBRSxNQUFNO0tBQ2xCO0NBQ0YsQ0FBQztBQU1GLE1BQU0sT0FBTyw0QkFBNEI7d0dBQTVCLDRCQUE0Qjt5R0FBNUIsNEJBQTRCLHdDQUY3QixZQUFZO3lHQUVYLDRCQUE0QixZQUg3QixZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUM3QixZQUFZOzs0RkFFWCw0QkFBNEI7a0JBSnhDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDeEMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUsIFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJbnZlbnRvcnlEYXNoYm9hcmRQYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9pbnZlbnRvcnktZGFzaGJvYXJkLXBhZ2UvaW52ZW50b3J5LWRhc2hib2FyZC1wYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb3dTdG9ja1JlcG9ydENvbXBvbmVudCB9IGZyb20gJy4vcmVwb3J0cy9sb3ctc3RvY2stcmVwb3J0L2xvdy1zdG9jay1yZXBvcnQuY29tcG9uZW50JztcbmltcG9ydCB7IEludmVudG9yeVZhbHVlUmVwb3J0Q29tcG9uZW50IH0gZnJvbSAnLi9yZXBvcnRzL2ludmVudG9yeS12YWx1ZS1yZXBvcnQvaW52ZW50b3J5LXZhbHVlLXJlcG9ydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3RvY2tUcmFuc2Zlckxpc3RDb21wb25lbnQgfSBmcm9tIFwiLi9zdG9jay10cmFuc2Zlci9zdG9jay10cmFuc2Zlci1saXN0L3N0b2NrLXRyYW5zZmVyLWxpc3QuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBTdG9ja0lzc3VlU3VtbWFyeVJlcG9ydENvbXBvbmVudCB9IGZyb20gJy4vcmVwb3J0cy9zdG9jay1pc3N1ZS1zdW1tYXJ5LXJlcG9ydC9zdG9jay1pc3N1ZS1zdW1tYXJ5LXJlcG9ydC5jb21wb25lbnQnO1xuXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcbiAge1xuICAgIHBhdGg6ICdyZXBvcnRzL2xvdy1zdG9jay1yZXBvcnQnLFxuICAgIGNvbXBvbmVudDogTG93U3RvY2tSZXBvcnRDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAncmVwb3J0cy9pbnZlbnRvcnktdmFsdWUtcmVwb3J0JyxcbiAgICBjb21wb25lbnQ6IEludmVudG9yeVZhbHVlUmVwb3J0Q29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ3JlcG9ydHMvc3RvY2staXNzdWUtc3VtbWFyeS1yZXBvcnQnLFxuICAgIGNvbXBvbmVudDogU3RvY2tJc3N1ZVN1bW1hcnlSZXBvcnRDb21wb25lbnRcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdzdXBwbGllcnMnLFxuICAgIGxvYWRDaGlsZHJlbjogKCkgPT4gaW1wb3J0KCcuL3N1cHBsaWVyL3N1cHBsaWVyLm1vZHVsZScpLnRoZW4oKG0pID0+IG0uU3VwcGxpZXJNb2R1bGUpLFxuICB9LFxuICB7XG4gICAgcGF0aDogJ2xvY2F0aW9ucycsXG4gICAgbG9hZENoaWxkcmVuOiAoKSA9PlxuICAgICAgaW1wb3J0KFwiLi9sb2NhdGlvbi9sb2NhdGlvbi5tb2R1bGVcIikudGhlbigobW9kKSA9PiBtb2QuTG9jYXRpb25Nb2R1bGUpLFxuICB9LFxuICB7XG4gICAgcGF0aDogXCJtZWFzdXJlc1wiLFxuICAgIGxvYWRDaGlsZHJlbjogKCkgPT5cbiAgICAgIGltcG9ydChcIi4vbWVhc3VyZS9tZWFzdXJlLm1vZHVsZVwiKS50aGVuKChtb2QpID0+IG1vZC5NZWFzdXJlTW9kdWxlKSxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdzdG9jay1pc3N1ZXMnLFxuICAgIGxvYWRDaGlsZHJlbjogKCkgPT4gaW1wb3J0KCcuL3N0b2NrLWlzc3VlL3N0b2NrLWlzc3VlLm1vZHVsZScpLnRoZW4oKG1vZCkgPT4gbW9kLlN0b2NrSXNzdWVNb2R1bGUpLFxuICB9LFxuICB7XG4gICAgcGF0aDogJ3N0b2NrLXJlY2VpcHRzJyxcbiAgICBsb2FkQ2hpbGRyZW46ICgpID0+IGltcG9ydCgnLi9zdG9jay1yZWNlaXB0cy9zdG9jay1yZWNlaXB0cy5tb2R1bGUnKS50aGVuKChtb2QpID0+IG1vZC5TdG9ja1JlY2VpcHRzTW9kdWxlKSxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdjYXRlZ29yaWVzJyxcbiAgICBsb2FkQ2hpbGRyZW46ICgpID0+IGltcG9ydCgnLi9jYXRlZ29yeS9jYXRlZ29yeS5tb2R1bGUnKS50aGVuKChtb2QpID0+IG1vZC5DYXRlZ29yeU1vZHVsZSksXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAncmVjaXBpZW50cycsXG4gICAgbG9hZENoaWxkcmVuOiAoKSA9PiBpbXBvcnQoJy4vcmVjaXBpZW50L3JlY2lwaWVudC5tb2R1bGUnKS50aGVuKChtb2QpID0+IG1vZC5SZWNpcGllbnRNb2R1bGUpLFxuICB9LFxuICB7XG4gICAgcGF0aDogJ3Byb2R1Y3RzJyxcbiAgICBsb2FkQ2hpbGRyZW46ICgpID0+IGltcG9ydCgnLi9wcm9kdWN0L3Byb2R1Y3QubW9kdWxlJykudGhlbigobW9kKSA9PiBtb2QuUHJvZHVjdE1vZHVsZSksXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnc3RvY2stdHJhbnNmZXJzJyxcbiAgICBjb21wb25lbnQ6IFN0b2NrVHJhbnNmZXJMaXN0Q29tcG9uZW50XG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnZGFzaGJvYXJkJyxcbiAgICBjb21wb25lbnQ6IEludmVudG9yeURhc2hib2FyZFBhZ2VDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnKionLFxuICAgIHJlZGlyZWN0VG86ICdwcm9kdWN0cycsXG4gICAgcGF0aE1hdGNoOiAnZnVsbCcsXG4gIH0sXG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLmZvckNoaWxkKHJvdXRlcyldLFxuICBleHBvcnRzOiBbUm91dGVyTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgSW52ZW50b3J5Q29tbW9uUm91dGluZ01vZHVsZSB7IH1cbiJdfQ==
@@ -17,6 +17,7 @@ export class LocationSelectorComponent {
17
17
  appearance = input('outline');
18
18
  label = input('Location');
19
19
  placeholder = input('Select a location');
20
+ hint = input();
20
21
  includeNone = input(true);
21
22
  isSubLocationEnabled = signal(false);
22
23
  locations = [];
@@ -135,13 +136,13 @@ export class LocationSelectorComponent {
135
136
  this.isDisabled = isDisabled;
136
137
  }
137
138
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LocationSelectorComponent, deps: [{ token: i1.LocationService }, { token: i2.TechlifyFeatureService }], target: i0.ɵɵFactoryTarget.Component });
138
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: LocationSelectorComponent, isStandalone: true, selector: "app-location-selector", inputs: { appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, includeNone: { classPropertyName: "includeNone", publicName: "includeNone", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
139
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: LocationSelectorComponent, isStandalone: true, selector: "app-location-selector", inputs: { appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, hint: { classPropertyName: "hint", publicName: "hint", isSignal: true, isRequired: false, transformFunction: null }, includeNone: { classPropertyName: "includeNone", publicName: "includeNone", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
139
140
  {
140
141
  provide: NG_VALUE_ACCESSOR,
141
142
  useExisting: forwardRef(() => LocationSelectorComponent),
142
143
  multi: true
143
144
  }
144
- ], ngImport: i0, template: "<mat-form-field class=\"w-100\" [appearance]=\"appearance()\">\n <mat-label>{{ label() }}</mat-label>\n <mat-select [value]=\"selectedValue\" [disabled]=\"isDisabled\" [placeholder]=\"placeholder()\"\n panelClass=\"location-selector-panel\"\n (selectionChange)=\"onSelectionChange($event.value)\">\n\n <div class=\"sticky-search-container\">\n <input [formControl]=\"searchControl\" placeholder=\"Search...\" class=\"search-input\" (keydown)=\"$event.stopPropagation()\">\n </div>\n\n <mat-option *ngIf=\"includeNone()\" [value]=\"null\">None</mat-option>\n\n <mat-option *ngFor=\"let location of locations\" [value]=\"location.id\">\n <span [ngStyle]=\"{'padding-left.px': location.depth * 16}\">\n <span *ngIf=\"location.depth > 0\">\u21B3 </span>{{ location.title }}\n </span>\n </mat-option>\n\n </mat-select>\n</mat-form-field>", styles: [".sticky-search-container{position:sticky;top:0;z-index:1000;background:#fff;border-bottom:1px solid rgba(0,0,0,.12);margin:0}.search-input{width:100%;padding:8px 16px;border:none;border-radius:4px;outline:none;font-size:14px;box-sizing:border-box}.search-input:focus{border-color:#00000061}::ng-deep .location-selector-panel{padding-top:0!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MaterialModule }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "component", type: i6.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], preserveWhitespaces: true });
145
+ ], ngImport: i0, template: "<mat-form-field class=\"w-100\" [appearance]=\"appearance()\">\n <mat-label>{{ label() }}</mat-label>\n <mat-select [value]=\"selectedValue\" [disabled]=\"isDisabled\" [placeholder]=\"placeholder()\"\n panelClass=\"location-selector-panel\" (selectionChange)=\"onSelectionChange($event.value)\">\n\n <div class=\"sticky-search-container\">\n <input [formControl]=\"searchControl\" placeholder=\"Search...\" class=\"search-input\"\n (keydown)=\"$event.stopPropagation()\">\n </div>\n\n <mat-option *ngIf=\"includeNone()\" [value]=\"null\">None</mat-option>\n\n <mat-option *ngFor=\"let location of locations\" [value]=\"location.id\">\n <span [ngStyle]=\"{'padding-left.px': location.depth * 16}\">\n <span *ngIf=\"location.depth > 0\">\u21B3 </span>{{ location.title }}\n </span>\n </mat-option>\n\n </mat-select>\n \n <mat-hint *ngIf=\"hint()\">\n {{ hint() }}\n </mat-hint>\n</mat-form-field>", styles: [".sticky-search-container{position:sticky;top:0;z-index:1000;background:#fff;border-bottom:1px solid rgba(0,0,0,.12);margin:0}.search-input{width:100%;padding:8px 16px;border:none;border-radius:4px;outline:none;font-size:14px;box-sizing:border-box}.search-input:focus{border-color:#00000061}::ng-deep .location-selector-panel{padding-top:0!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MaterialModule }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i6.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], preserveWhitespaces: true });
145
146
  }
146
147
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LocationSelectorComponent, decorators: [{
147
148
  type: Component,
@@ -155,6 +156,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
155
156
  useExisting: forwardRef(() => LocationSelectorComponent),
156
157
  multi: true
157
158
  }
158
- ], template: "<mat-form-field class=\"w-100\" [appearance]=\"appearance()\">\n <mat-label>{{ label() }}</mat-label>\n <mat-select [value]=\"selectedValue\" [disabled]=\"isDisabled\" [placeholder]=\"placeholder()\"\n panelClass=\"location-selector-panel\"\n (selectionChange)=\"onSelectionChange($event.value)\">\n\n <div class=\"sticky-search-container\">\n <input [formControl]=\"searchControl\" placeholder=\"Search...\" class=\"search-input\" (keydown)=\"$event.stopPropagation()\">\n </div>\n\n <mat-option *ngIf=\"includeNone()\" [value]=\"null\">None</mat-option>\n\n <mat-option *ngFor=\"let location of locations\" [value]=\"location.id\">\n <span [ngStyle]=\"{'padding-left.px': location.depth * 16}\">\n <span *ngIf=\"location.depth > 0\">\u21B3 </span>{{ location.title }}\n </span>\n </mat-option>\n\n </mat-select>\n</mat-form-field>", styles: [".sticky-search-container{position:sticky;top:0;z-index:1000;background:#fff;border-bottom:1px solid rgba(0,0,0,.12);margin:0}.search-input{width:100%;padding:8px 16px;border:none;border-radius:4px;outline:none;font-size:14px;box-sizing:border-box}.search-input:focus{border-color:#00000061}::ng-deep .location-selector-panel{padding-top:0!important}\n"] }]
159
+ ], template: "<mat-form-field class=\"w-100\" [appearance]=\"appearance()\">\n <mat-label>{{ label() }}</mat-label>\n <mat-select [value]=\"selectedValue\" [disabled]=\"isDisabled\" [placeholder]=\"placeholder()\"\n panelClass=\"location-selector-panel\" (selectionChange)=\"onSelectionChange($event.value)\">\n\n <div class=\"sticky-search-container\">\n <input [formControl]=\"searchControl\" placeholder=\"Search...\" class=\"search-input\"\n (keydown)=\"$event.stopPropagation()\">\n </div>\n\n <mat-option *ngIf=\"includeNone()\" [value]=\"null\">None</mat-option>\n\n <mat-option *ngFor=\"let location of locations\" [value]=\"location.id\">\n <span [ngStyle]=\"{'padding-left.px': location.depth * 16}\">\n <span *ngIf=\"location.depth > 0\">\u21B3 </span>{{ location.title }}\n </span>\n </mat-option>\n\n </mat-select>\n \n <mat-hint *ngIf=\"hint()\">\n {{ hint() }}\n </mat-hint>\n</mat-form-field>", styles: [".sticky-search-container{position:sticky;top:0;z-index:1000;background:#fff;border-bottom:1px solid rgba(0,0,0,.12);margin:0}.search-input{width:100%;padding:8px 16px;border:none;border-radius:4px;outline:none;font-size:14px;box-sizing:border-box}.search-input:focus{border-color:#00000061}::ng-deep .location-selector-panel{padding-top:0!important}\n"] }]
159
160
  }], ctorParameters: () => [{ type: i1.LocationService }, { type: i2.TechlifyFeatureService }] });
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYXRpb24tc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52ZW50b3J5LWNvbW1vbi9zcmMvbGliL2ludmVudG9yeS1jb21tb24vbG9jYXRpb24vbG9jYXRpb24tc2VsZWN0b3IvbG9jYXRpb24tc2VsZWN0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52ZW50b3J5LWNvbW1vbi9zcmMvbGliL2ludmVudG9yeS1jb21tb24vbG9jYXRpb24vbG9jYXRpb24tc2VsZWN0b3IvbG9jYXRpb24tc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7QUE4QnZELE1BQU0sT0FBTyx5QkFBeUI7SUFpQmhCO0lBQ1Y7SUFoQlYsVUFBVSxHQUFHLEtBQUssQ0FBeUIsU0FBUyxDQUFDLENBQUM7SUFDdEQsS0FBSyxHQUFHLEtBQUssQ0FBUyxVQUFVLENBQUMsQ0FBQztJQUNsQyxXQUFXLEdBQUcsS0FBSyxDQUFTLG1CQUFtQixDQUFDLENBQUM7SUFDakQsV0FBVyxHQUFHLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQztJQUVuQyxvQkFBb0IsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENB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cndhcmRSZWYsIGlucHV0LCBPbkluaXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBOR19WQUxVRV9BQ0NFU1NPUiwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuLi8uLi9tYXRlcmlhbC5tb2R1bGUnO1xuaW1wb3J0IHsgTG9jYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vbG9jYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBUZWNobGlmeUZlYXR1cmVTZXJ2aWNlIH0gZnJvbSAnbmd4LXRlY2hsaWZ5LWNvcmUnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuXG5pbnRlcmZhY2UgSGllcmFyY2hpY2FsTG9jYXRpb24ge1xuICBpZDogbnVtYmVyO1xuICB0aXRsZTogc3RyaW5nO1xuICBwYXJlbnRfaWQ6IG51bWJlciB8IG51bGw7XG4gIGRlcHRoOiBudW1iZXI7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1sb2NhdGlvbi1zZWxlY3RvcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0ZXJpYWxNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZVxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vbG9jYXRpb24tc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9sb2NhdGlvbi1zZWxlY3Rvci5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IExvY2F0aW9uU2VsZWN0b3JDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTG9jYXRpb25TZWxlY3RvckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xuXG4gIGFwcGVhcmFuY2UgPSBpbnB1dDxNYXRGb3JtRmllbGRBcHBlYXJhbmNlPignb3V0bGluZScpO1xuICBsYWJlbCA9IGlucHV0PHN0cmluZz4oJ0xvY2F0aW9uJyk7XG4gIHBsYWNlaG9sZGVyID0gaW5wdXQ8c3RyaW5nPignU2VsZWN0IGEgbG9jYXRpb24nKTtcbiAgaW5jbHVkZU5vbmUgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcblxuICBpc1N1YkxvY2F0aW9uRW5hYmxlZCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgbG9jYXRpb25zOiBIaWVyYXJjaGljYWxMb2NhdGlvbltdID0gW107XG4gIHNlbGVjdGVkVmFsdWU6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBpc0Rpc2FibGVkID0gZmFsc2U7XG4gIHNlYXJjaENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycpO1xuXG4gIHByaXZhdGUgb25DaGFuZ2U6ICh2YWx1ZTogbnVtYmVyIHwgbnVsbCkgPT4gdm9pZCA9ICgpID0+IHsgfTtcbiAgcHJpdmF0ZSBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7IH07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsb2NhdGlvblNlcnZpY2U6IExvY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGZlYXR1cmVTZXJ2aWNlOiBUZWNobGlmeUZlYXR1cmVTZXJ2aWNlXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pc1N1YkxvY2F0aW9uRW5hYmxlZC5zZXQodGhpcy5mZWF0dXJlU2VydmljZS5pc0ZlYXR1cmVFeGlzdHMoJ3N1Yi1sb2NhdGlvbnMnKSk7XG5cbiAgICB0aGlzLmxvYWREYXRhKCk7XG4gICAgdGhpcy5zZXR1cFNlYXJjaCgpO1xuICB9XG5cbiAgc2V0dXBTZWFyY2goKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgZGVib3VuY2VUaW1lKDQwMCksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgKS5zdWJzY3JpYmUoKHZhbHVlOiBzdHJpbmcgfCBudWxsKSA9PiB7XG4gICAgICB0aGlzLmxvYWREYXRhKHZhbHVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIGxvYWREYXRhKHNlYXJjaDogc3RyaW5nIHwgbnVsbCA9IG51bGwpOiB2b2lkIHtcbiAgICBjb25zdCBwYXJhbXM6IGFueSA9IHt9O1xuICAgIGlmIChzZWFyY2gpIHtcbiAgICAgIHBhcmFtcy5zZWFyY2ggPSBzZWFyY2g7XG4gICAgfVxuXG4gICAgdGhpcy5sb2NhdGlvblNlcnZpY2UuaW5kZXgocGFyYW1zLCB0cnVlKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgZmxhdExvY2F0aW9ucyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgIHRoaXMubG9jYXRpb25zID0gdGhpcy5pc1N1YkxvY2F0aW9uRW5hYmxlZCgpXG4gICAgICAgICAgPyB0aGlzLmJ1aWxkSGllcmFyY2h5KGZsYXRMb2NhdGlvbnMpXG4gICAgICAgICAgOiBmbGF0TG9jYXRpb25zO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRvIHByZXZlbnQgcmVjdXJzaXZlIGNhbGxzIGluIHRoZSBhcGkgd2hpbGUgdHJ5aW5nIHRvIGdldFxuICAgKiBwYXJlbnQgYW5kIGNoaWxkcmVuIG9mIGEgbG9jYXRpb24sIGkndmUgb3B0ZWQgdG8gaGF2ZSB0aGUgdWkgXG4gICAqIGJ1aWxkIHRoZSBoaWVyYXJjaHkgb2YgbG9jYXRpb25zIFxuICAgKi9cbiAgcHJpdmF0ZSBidWlsZEhpZXJhcmNoeShsb2NhdGlvbnM6IGFueVtdKTogSGllcmFyY2hpY2FsTG9jYXRpb25bXSB7XG4gICAgY29uc3QgbG9jYXRpb25NYXAgPSBuZXcgTWFwPG51bWJlciwgYW55PigpO1xuICAgIGxvY2F0aW9ucy5mb3JFYWNoKGxvY2F0aW9uID0+IGxvY2F0aW9uTWFwLnNldChsb2NhdGlvbi5pZCwgbG9jYXRpb24pKTtcblxuICAgIC8vIENhbGN1bGF0ZSBkZXB0aCBmb3IgZWFjaCBsb2NhdGlvbiB3aXRoIGN5Y2xlIGRldGVjdGlvblxuICAgIGNvbnN0IGdldERlcHRoID0gKGxvY2F0aW9uOiBhbnksIHZpc2l0ZWQ6IFNldDxudW1iZXI+ID0gbmV3IFNldCgpKTogbnVtYmVyID0+IHtcbiAgICAgIGlmICghbG9jYXRpb24ucGFyZW50X2lkKSByZXR1cm4gMDtcbiAgICAgIGlmICh2aXNpdGVkLmhhcyhsb2NhdGlvbi5pZCkpIHJldHVybiAwOyAvLyBQcmV2ZW50IGluZmluaXRlIGxvb3AgaWYgcGFyZW50IGlzIHNhbWUgYXMgY2hpbGRcbiAgICAgIHZpc2l0ZWQuYWRkKGxvY2F0aW9uLmlkKTsgLy8gVGFrZSBub3RlIG9mIHZpc2l0ZWQgbG9jYXRpb25zXG5cbiAgICAgIGNvbnN0IHBhcmVudCA9IGxvY2F0aW9uTWFwLmdldChsb2NhdGlvbi5wYXJlbnRfaWQpO1xuICAgICAgaWYgKCFwYXJlbnQpIHJldHVybiAwO1xuXG4gICAgICByZXR1cm4gMSArIGdldERlcHRoKHBhcmVudCwgdmlzaXRlZCk7XG4gICAgfTtcblxuICAgIC8vIEJ1aWxkIGhpZXJhcmNoaWNhbCBsaXN0IHdpdGggZGVwdGhzXG4gICAgY29uc3Qgd2l0aERlcHRoczogSGllcmFyY2hpY2FsTG9jYXRpb25bXSA9IGxvY2F0aW9ucy5tYXAobG9jYXRpb24gPT4gKHtcbiAgICAgIGlkOiBsb2NhdGlvbi5pZCxcbiAgICAgIHRpdGxlOiBsb2NhdGlvbi50aXRsZSxcbiAgICAgIHBhcmVudF9pZDogbG9jYXRpb24ucGFyZW50X2lkLFxuICAgICAgZGVwdGg6IGdldERlcHRoKGxvY2F0aW9uKVxuICAgIH0pKTtcblxuICAgIC8vIFNvcnQ6IHJvb3QgaXRlbXMgZmlyc3QsIHRoZW4gcmVjdXJzaXZlbHkgYWRkIGNoaWxkcmVuXG4gICAgY29uc3QgcmVzdWx0OiBIaWVyYXJjaGljYWxMb2NhdGlvbltdID0gW107XG4gICAgY29uc3QgYWRkZWQgPSBuZXcgU2V0PG51bWJlcj4oKTsgLy8gUHJldmVudCBpbmZpbml0ZSBsb29wIG9uIGN5Y2xlc1xuXG4gICAgLy8gRmluZCBhbGwgXCJyb290c1wiIC0gaXRlbXMgd2l0aCBubyBwYXJlbnQsIE9SIGl0ZW1zIHdob3NlIHBhcmVudCBpcyBtaXNzaW5nIGZyb20gdGhlIGxpc3RcbiAgICBjb25zdCByb290SWRzID0gd2l0aERlcHRoc1xuICAgICAgLmZpbHRlcihsb2NhdGlvbiA9PiAhbG9jYXRpb24ucGFyZW50X2lkIHx8ICFsb2NhdGlvbk1hcC5oYXMobG9jYXRpb24ucGFyZW50X2lkKSlcbiAgICAgIC5tYXAobG9jYXRpb24gPT4gbG9jYXRpb24uaWQpO1xuXG4gICAgY29uc3QgYWRkV2l0aENoaWxkcmVuID0gKHBhcmVudElkOiBudW1iZXIgfCBudWxsLCBkZXB0aDogbnVtYmVyKSA9PiB7XG4gICAgICAvLyBJZiBwYXJlbnRJZCBpcyBudWxsLCB3ZSBsb29rIGZvciBvdXIgaWRlbnRpZmllZCByb290cy4gXG4gICAgICAvLyBPdGhlcndpc2Ugd2UgbG9vayBmb3IgY2hpbGRyZW4gb2YgdGhlIHBhcmVudElkLlxuICAgICAgY29uc3QgaXRlbXNUb0FkZCA9IHBhcmVudElkID09PSBudWxsXG4gICAgICAgID8gd2l0aERlcHRocy5maWx0ZXIobG9jYXRpb24gPT4gcm9vdElkcy5pbmNsdWRlcyhsb2NhdGlvbi5pZCkpXG4gICAgICAgIDogd2l0aERlcHRocy5maWx0ZXIobG9jYXRpb24gPT4gbG9jYXRpb24ucGFyZW50X2lkID09PSBwYXJlbnRJZCk7XG5cbiAgICAgIGl0ZW1zVG9BZGRcbiAgICAgICAgLmZpbHRlcihsb2NhdGlvbiA9PiAhYWRkZWQuaGFzKGxvY2F0aW9uLmlkKSlcbiAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEudGl0bGUubG9jYWxlQ29tcGFyZShiLnRpdGxlKSlcbiAgICAgICAgLmZvckVhY2gobG9jYXRpb24gPT4ge1xuICAgICAgICAgIGFkZGVkLmFkZChsb2NhdGlvbi5pZCk7XG4gICAgICAgICAgcmVzdWx0LnB1c2gobG9jYXRpb24pO1xuICAgICAgICAgIGFkZFdpdGhDaGlsZHJlbihsb2NhdGlvbi5pZCwgZGVwdGggKyAxKTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGFkZFdpdGhDaGlsZHJlbihudWxsLCAwKTtcblxuICAgIC8vIElmIHRoZXJlIGFyZSBzdGlsbCBpdGVtcyBub3QgYWRkZWQgKGR1ZSB0byBjaXJjdWxhciByZWZlcmVuY2VzIEEtPkItPkEpLCBhZGQgdGhlbSBhcyByb290c1xuICAgIGlmIChhZGRlZC5zaXplIDwgd2l0aERlcHRocy5sZW5ndGgpIHtcbiAgICAgIHdpdGhEZXB0aHNcbiAgICAgICAgLmZpbHRlcihsb2NhdGlvbiA9PiAhYWRkZWQuaGFzKGxvY2F0aW9uLmlkKSlcbiAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEudGl0bGUubG9jYWxlQ29tcGFyZShiLnRpdGxlKSlcbiAgICAgICAgLmZvckVhY2gobG9jYXRpb24gPT4ge1xuICAgICAgICAgICBhZGRlZC5hZGQobG9jYXRpb24uaWQpO1xuICAgICAgICAgICByZXN1bHQucHVzaChsb2NhdGlvbik7XG4gICAgICAgICAgIC8vIFRyeSB0byBhZGQgY2hpbGRyZW4gZm9yIHRoaXMgXCJmb3JjZWQgcm9vdFwiIGluIGNhc2UgaXQgaGFzIHZhbGlkIGNoaWxkcmVuXG4gICAgICAgICAgIGFkZFdpdGhDaGlsZHJlbihsb2NhdGlvbi5pZCwgbG9jYXRpb24uZGVwdGggKyAxKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIG9uU2VsZWN0aW9uQ2hhbmdlKHZhbHVlOiBudW1iZXIgfCBudWxsKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IG51bWJlciB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogbnVtYmVyIHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuaXNEaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cbn1cbiIsIjxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCIgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZSgpXCI+XG4gIDxtYXQtbGFiZWw+e3sgbGFiZWwoKSB9fTwvbWF0LWxhYmVsPlxuICA8bWF0LXNlbGVjdCBbdmFsdWVdPVwic2VsZWN0ZWRWYWx1ZVwiIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKClcIlxuICAgIHBhbmVsQ2xhc3M9XCJsb2NhdGlvbi1zZWxlY3Rvci1wYW5lbFwiXG4gICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblNlbGVjdGlvbkNoYW5nZSgkZXZlbnQudmFsdWUpXCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwic3RpY2t5LXNlYXJjaC1jb250YWluZXJcIj5cbiAgICAgICA8aW5wdXQgW2Zvcm1Db250cm9sXT1cInNlYXJjaENvbnRyb2xcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaC4uLlwiIGNsYXNzPVwic2VhcmNoLWlucHV0XCIgKGtleWRvd24pPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgPC9kaXY+XG5cbiAgICA8bWF0LW9wdGlvbiAqbmdJZj1cImluY2x1ZGVOb25lKClcIiBbdmFsdWVdPVwibnVsbFwiPk5vbmU8L21hdC1vcHRpb24+XG5cbiAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgbG9jYXRpb24gb2YgbG9jYXRpb25zXCIgW3ZhbHVlXT1cImxvY2F0aW9uLmlkXCI+XG4gICAgICA8c3BhbiBbbmdTdHlsZV09XCJ7J3BhZGRpbmctbGVmdC5weCc6IGxvY2F0aW9uLmRlcHRoICogMTZ9XCI+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwibG9jYXRpb24uZGVwdGggPiAwXCI+4oazIDwvc3Bhbj57eyBsb2NhdGlvbi50aXRsZSB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvbWF0LW9wdGlvbj5cblxuICA8L21hdC1zZWxlY3Q+XG48L21hdC1mb3JtLWZpZWxkPiJdfQ==
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYXRpb24tc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52ZW50b3J5LWNvbW1vbi9zcmMvbGliL2ludmVudG9yeS1jb21tb24vbG9jYXRpb24vbG9jYXRpb24tc2VsZWN0b3IvbG9jYXRpb24tc2VsZWN0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52ZW50b3J5LWNvbW1vbi9zcmMvbGliL2ludmVudG9yeS1jb21tb24vbG9jYXRpb24vbG9jYXRpb24tc2VsZWN0b3IvbG9jYXRpb24tc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7QUE4QnZELE1BQU0sT0FBTyx5QkFBeUI7SUFrQmhCO0lBQ1Y7SUFqQlYsVUFBVSxHQUFHLEtBQUssQ0FBeUIsU0FBUyxDQUFDLENBQUM7SUFDdEQsS0FBSyxHQUFHLEtBQUssQ0FBUyxVQUFVLENBQUMsQ0FBQztJQUNsQyxXQUFXLEdBQUcsS0FBSyxDQUFTLG1CQUFtQixDQUFDLENBQUM7SUFDakQsSUFBSSxHQUFHLEtBQUssRUFBVSxDQUFDO0lBQ3ZCLFdBQVcsR0FBRyxLQUFLLENBQVUsSUFBSSxDQUFDLENBQUM7SUFFbkMsb0JB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bnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBpbnB1dCwgT25Jbml0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgTkdfVkFMVUVfQUNDRVNTT1IsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1hdGVyaWFsTW9kdWxlIH0gZnJvbSAnLi4vLi4vbWF0ZXJpYWwubW9kdWxlJztcbmltcG9ydCB7IExvY2F0aW9uU2VydmljZSB9IGZyb20gJy4uL2xvY2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGVjaGxpZnlGZWF0dXJlU2VydmljZSB9IGZyb20gJ25neC10ZWNobGlmeS1jb3JlJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZEFwcGVhcmFuY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcblxuaW50ZXJmYWNlIEhpZXJhcmNoaWNhbExvY2F0aW9uIHtcbiAgaWQ6IG51bWJlcjtcbiAgdGl0bGU6IHN0cmluZztcbiAgcGFyZW50X2lkOiBudW1iZXIgfCBudWxsO1xuICBkZXB0aDogbnVtYmVyO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbG9jYXRpb24tc2VsZWN0b3InLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdGVyaWFsTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGVcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2xvY2F0aW9uLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbG9jYXRpb24tc2VsZWN0b3IuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBMb2NhdGlvblNlbGVjdG9yQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIExvY2F0aW9uU2VsZWN0b3JDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcblxuICBhcHBlYXJhbmNlID0gaW5wdXQ8TWF0Rm9ybUZpZWxkQXBwZWFyYW5jZT4oJ291dGxpbmUnKTtcbiAgbGFiZWwgPSBpbnB1dDxzdHJpbmc+KCdMb2NhdGlvbicpO1xuICBwbGFjZWhvbGRlciA9IGlucHV0PHN0cmluZz4oJ1NlbGVjdCBhIGxvY2F0aW9uJyk7XG4gIGhpbnQgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIGluY2x1ZGVOb25lID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgaXNTdWJMb2NhdGlvbkVuYWJsZWQgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGxvY2F0aW9uczogSGllcmFyY2hpY2FsTG9jYXRpb25bXSA9IFtdO1xuICBzZWxlY3RlZFZhbHVlOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgaXNEaXNhYmxlZCA9IGZhbHNlO1xuICBzZWFyY2hDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnKTtcblxuICBwcml2YXRlIG9uQ2hhbmdlOiAodmFsdWU6IG51bWJlciB8IG51bGwpID0+IHZvaWQgPSAoKSA9PiB7IH07XG4gIHByaXZhdGUgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4geyB9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9jYXRpb25TZXJ2aWNlOiBMb2NhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmZWF0dXJlU2VydmljZTogVGVjaGxpZnlGZWF0dXJlU2VydmljZVxuICApIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaXNTdWJMb2NhdGlvbkVuYWJsZWQuc2V0KHRoaXMuZmVhdHVyZVNlcnZpY2UuaXNGZWF0dXJlRXhpc3RzKCdzdWItbG9jYXRpb25zJykpO1xuXG4gICAgdGhpcy5sb2FkRGF0YSgpO1xuICAgIHRoaXMuc2V0dXBTZWFyY2goKTtcbiAgfVxuXG4gIHNldHVwU2VhcmNoKCk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgIGRlYm91bmNlVGltZSg0MDApLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICkuc3Vic2NyaWJlKCh2YWx1ZTogc3RyaW5nIHwgbnVsbCkgPT4ge1xuICAgICAgdGhpcy5sb2FkRGF0YSh2YWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICBsb2FkRGF0YShzZWFyY2g6IHN0cmluZyB8IG51bGwgPSBudWxsKTogdm9pZCB7XG4gICAgY29uc3QgcGFyYW1zOiBhbnkgPSB7fTtcbiAgICBpZiAoc2VhcmNoKSB7XG4gICAgICBwYXJhbXMuc2VhcmNoID0gc2VhcmNoO1xuICAgIH1cblxuICAgIHRoaXMubG9jYXRpb25TZXJ2aWNlLmluZGV4KHBhcmFtcywgdHJ1ZSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGZsYXRMb2NhdGlvbnMgPSByZXNwb25zZS5kYXRhO1xuICAgICAgICB0aGlzLmxvY2F0aW9ucyA9IHRoaXMuaXNTdWJMb2NhdGlvbkVuYWJsZWQoKVxuICAgICAgICAgID8gdGhpcy5idWlsZEhpZXJhcmNoeShmbGF0TG9jYXRpb25zKVxuICAgICAgICAgIDogZmxhdExvY2F0aW9ucztcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUbyBwcmV2ZW50IHJlY3Vyc2l2ZSBjYWxscyBpbiB0aGUgYXBpIHdoaWxlIHRyeWluZyB0byBnZXRcbiAgICogcGFyZW50IGFuZCBjaGlsZHJlbiBvZiBhIGxvY2F0aW9uLCBpJ3ZlIG9wdGVkIHRvIGhhdmUgdGhlIHVpIFxuICAgKiBidWlsZCB0aGUgaGllcmFyY2h5IG9mIGxvY2F0aW9ucyBcbiAgICovXG4gIHByaXZhdGUgYnVpbGRIaWVyYXJjaHkobG9jYXRpb25zOiBhbnlbXSk6IEhpZXJhcmNoaWNhbExvY2F0aW9uW10ge1xuICAgIGNvbnN0IGxvY2F0aW9uTWFwID0gbmV3IE1hcDxudW1iZXIsIGFueT4oKTtcbiAgICBsb2NhdGlvbnMuZm9yRWFjaChsb2NhdGlvbiA9PiBsb2NhdGlvbk1hcC5zZXQobG9jYXRpb24uaWQsIGxvY2F0aW9uKSk7XG5cbiAgICAvLyBDYWxjdWxhdGUgZGVwdGggZm9yIGVhY2ggbG9jYXRpb24gd2l0aCBjeWNsZSBkZXRlY3Rpb25cbiAgICBjb25zdCBnZXREZXB0aCA9IChsb2NhdGlvbjogYW55LCB2aXNpdGVkOiBTZXQ8bnVtYmVyPiA9IG5ldyBTZXQoKSk6IG51bWJlciA9PiB7XG4gICAgICBpZiAoIWxvY2F0aW9uLnBhcmVudF9pZCkgcmV0dXJuIDA7XG4gICAgICBpZiAodmlzaXRlZC5oYXMobG9jYXRpb24uaWQpKSByZXR1cm4gMDsgLy8gUHJldmVudCBpbmZpbml0ZSBsb29wIGlmIHBhcmVudCBpcyBzYW1lIGFzIGNoaWxkXG4gICAgICB2aXNpdGVkLmFkZChsb2NhdGlvbi5pZCk7IC8vIFRha2Ugbm90ZSBvZiB2aXNpdGVkIGxvY2F0aW9uc1xuXG4gICAgICBjb25zdCBwYXJlbnQgPSBsb2NhdGlvbk1hcC5nZXQobG9jYXRpb24ucGFyZW50X2lkKTtcbiAgICAgIGlmICghcGFyZW50KSByZXR1cm4gMDtcblxuICAgICAgcmV0dXJuIDEgKyBnZXREZXB0aChwYXJlbnQsIHZpc2l0ZWQpO1xuICAgIH07XG5cbiAgICAvLyBCdWlsZCBoaWVyYXJjaGljYWwgbGlzdCB3aXRoIGRlcHRoc1xuICAgIGNvbnN0IHdpdGhEZXB0aHM6IEhpZXJhcmNoaWNhbExvY2F0aW9uW10gPSBsb2NhdGlvbnMubWFwKGxvY2F0aW9uID0+ICh7XG4gICAgICBpZDogbG9jYXRpb24uaWQsXG4gICAgICB0aXRsZTogbG9jYXRpb24udGl0bGUsXG4gICAgICBwYXJlbnRfaWQ6IGxvY2F0aW9uLnBhcmVudF9pZCxcbiAgICAgIGRlcHRoOiBnZXREZXB0aChsb2NhdGlvbilcbiAgICB9KSk7XG5cbiAgICAvLyBTb3J0OiByb290IGl0ZW1zIGZpcnN0LCB0aGVuIHJlY3Vyc2l2ZWx5IGFkZCBjaGlsZHJlblxuICAgIGNvbnN0IHJlc3VsdDogSGllcmFyY2hpY2FsTG9jYXRpb25bXSA9IFtdO1xuICAgIGNvbnN0IGFkZGVkID0gbmV3IFNldDxudW1iZXI+KCk7IC8vIFByZXZlbnQgaW5maW5pdGUgbG9vcCBvbiBjeWNsZXNcblxuICAgIC8vIEZpbmQgYWxsIFwicm9vdHNcIiAtIGl0ZW1zIHdpdGggbm8gcGFyZW50LCBPUiBpdGVtcyB3aG9zZSBwYXJlbnQgaXMgbWlzc2luZyBmcm9tIHRoZSBsaXN0XG4gICAgY29uc3Qgcm9vdElkcyA9IHdpdGhEZXB0aHNcbiAgICAgIC5maWx0ZXIobG9jYXRpb24gPT4gIWxvY2F0aW9uLnBhcmVudF9pZCB8fCAhbG9jYXRpb25NYXAuaGFzKGxvY2F0aW9uLnBhcmVudF9pZCkpXG4gICAgICAubWFwKGxvY2F0aW9uID0+IGxvY2F0aW9uLmlkKTtcblxuICAgIGNvbnN0IGFkZFdpdGhDaGlsZHJlbiA9IChwYXJlbnRJZDogbnVtYmVyIHwgbnVsbCwgZGVwdGg6IG51bWJlcikgPT4ge1xuICAgICAgLy8gSWYgcGFyZW50SWQgaXMgbnVsbCwgd2UgbG9vayBmb3Igb3VyIGlkZW50aWZpZWQgcm9vdHMuIFxuICAgICAgLy8gT3RoZXJ3aXNlIHdlIGxvb2sgZm9yIGNoaWxkcmVuIG9mIHRoZSBwYXJlbnRJZC5cbiAgICAgIGNvbnN0IGl0ZW1zVG9BZGQgPSBwYXJlbnRJZCA9PT0gbnVsbFxuICAgICAgICA/IHdpdGhEZXB0aHMuZmlsdGVyKGxvY2F0aW9uID0+IHJvb3RJZHMuaW5jbHVkZXMobG9jYXRpb24uaWQpKVxuICAgICAgICA6IHdpdGhEZXB0aHMuZmlsdGVyKGxvY2F0aW9uID0+IGxvY2F0aW9uLnBhcmVudF9pZCA9PT0gcGFyZW50SWQpO1xuXG4gICAgICBpdGVtc1RvQWRkXG4gICAgICAgIC5maWx0ZXIobG9jYXRpb24gPT4gIWFkZGVkLmhhcyhsb2NhdGlvbi5pZCkpXG4gICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLnRpdGxlLmxvY2FsZUNvbXBhcmUoYi50aXRsZSkpXG4gICAgICAgIC5mb3JFYWNoKGxvY2F0aW9uID0+IHtcbiAgICAgICAgICBhZGRlZC5hZGQobG9jYXRpb24uaWQpO1xuICAgICAgICAgIHJlc3VsdC5wdXNoKGxvY2F0aW9uKTtcbiAgICAgICAgICBhZGRXaXRoQ2hpbGRyZW4obG9jYXRpb24uaWQsIGRlcHRoICsgMSk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBhZGRXaXRoQ2hpbGRyZW4obnVsbCwgMCk7XG5cbiAgICAvLyBJZiB0aGVyZSBhcmUgc3RpbGwgaXRlbXMgbm90IGFkZGVkIChkdWUgdG8gY2lyY3VsYXIgcmVmZXJlbmNlcyBBLT5CLT5BKSwgYWRkIHRoZW0gYXMgcm9vdHNcbiAgICBpZiAoYWRkZWQuc2l6ZSA8IHdpdGhEZXB0aHMubGVuZ3RoKSB7XG4gICAgICB3aXRoRGVwdGhzXG4gICAgICAgIC5maWx0ZXIobG9jYXRpb24gPT4gIWFkZGVkLmhhcyhsb2NhdGlvbi5pZCkpXG4gICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLnRpdGxlLmxvY2FsZUNvbXBhcmUoYi50aXRsZSkpXG4gICAgICAgIC5mb3JFYWNoKGxvY2F0aW9uID0+IHtcbiAgICAgICAgICAgYWRkZWQuYWRkKGxvY2F0aW9uLmlkKTtcbiAgICAgICAgICAgcmVzdWx0LnB1c2gobG9jYXRpb24pO1xuICAgICAgICAgICAvLyBUcnkgdG8gYWRkIGNoaWxkcmVuIGZvciB0aGlzIFwiZm9yY2VkIHJvb3RcIiBpbiBjYXNlIGl0IGhhcyB2YWxpZCBjaGlsZHJlblxuICAgICAgICAgICBhZGRXaXRoQ2hpbGRyZW4obG9jYXRpb24uaWQsIGxvY2F0aW9uLmRlcHRoICsgMSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBvblNlbGVjdGlvbkNoYW5nZSh2YWx1ZTogbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBudW1iZXIgfCBudWxsKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gdmFsdWU7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IG51bWJlciB8IG51bGwpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG59XG4iLCI8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2UoKVwiPlxuICA8bWF0LWxhYmVsPnt7IGxhYmVsKCkgfX08L21hdC1sYWJlbD5cbiAgPG1hdC1zZWxlY3QgW3ZhbHVlXT1cInNlbGVjdGVkVmFsdWVcIiBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpXCJcbiAgICBwYW5lbENsYXNzPVwibG9jYXRpb24tc2VsZWN0b3ItcGFuZWxcIiAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKCRldmVudC52YWx1ZSlcIj5cblxuICAgIDxkaXYgY2xhc3M9XCJzdGlja3ktc2VhcmNoLWNvbnRhaW5lclwiPlxuICAgICAgPGlucHV0IFtmb3JtQ29udHJvbF09XCJzZWFyY2hDb250cm9sXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2guLi5cIiBjbGFzcz1cInNlYXJjaC1pbnB1dFwiXG4gICAgICAgIChrZXlkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgIDwvZGl2PlxuXG4gICAgPG1hdC1vcHRpb24gKm5nSWY9XCJpbmNsdWRlTm9uZSgpXCIgW3ZhbHVlXT1cIm51bGxcIj5Ob25lPC9tYXQtb3B0aW9uPlxuXG4gICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGxvY2F0aW9uIG9mIGxvY2F0aW9uc1wiIFt2YWx1ZV09XCJsb2NhdGlvbi5pZFwiPlxuICAgICAgPHNwYW4gW25nU3R5bGVdPVwieydwYWRkaW5nLWxlZnQucHgnOiBsb2NhdGlvbi5kZXB0aCAqIDE2fVwiPlxuICAgICAgICA8c3BhbiAqbmdJZj1cImxvY2F0aW9uLmRlcHRoID4gMFwiPuKGsyA8L3NwYW4+e3sgbG9jYXRpb24udGl0bGUgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L21hdC1vcHRpb24+XG5cbiAgPC9tYXQtc2VsZWN0PlxuICBcbiAgPG1hdC1oaW50ICpuZ0lmPVwiaGludCgpXCI+XG4gICAge3sgaGludCgpIH19XG4gIDwvbWF0LWhpbnQ+XG48L21hdC1mb3JtLWZpZWxkPiJdfQ==
@@ -0,0 +1,59 @@
1
+ import { Component, Inject, Optional } from '@angular/core';
2
+ import { Validators } from '@angular/forms';
3
+ import { MAT_DIALOG_DATA } from '@angular/material/dialog';
4
+ import { TechlifyFormComponent } from 'ngx-techlify-core';
5
+ import { SharedModule } from '../../shared.module';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "ngx-techlify-core";
8
+ import * as i2 from "@angular/forms";
9
+ import * as i3 from "../recipient.service";
10
+ import * as i4 from "@angular/material/dialog";
11
+ import * as i5 from "@angular/common";
12
+ import * as i6 from "@angular/material/button";
13
+ import * as i7 from "@angular/material/card";
14
+ import * as i8 from "@angular/material/form-field";
15
+ import * as i9 from "@angular/material/input";
16
+ export class RecipientFormComponent extends TechlifyFormComponent {
17
+ formValidatorService;
18
+ formBuilder;
19
+ service;
20
+ dialogRef;
21
+ data;
22
+ constructor(formValidatorService, formBuilder, service, dialogRef, data) {
23
+ super(formValidatorService, service);
24
+ this.formValidatorService = formValidatorService;
25
+ this.formBuilder = formBuilder;
26
+ this.service = service;
27
+ this.dialogRef = dialogRef;
28
+ this.data = data;
29
+ this.errorMessages = {
30
+ name: {
31
+ required: 'The name field is required.',
32
+ },
33
+ };
34
+ this.form = this.formBuilder.group({
35
+ id: [''],
36
+ name: ['', Validators.required],
37
+ details: [''],
38
+ });
39
+ }
40
+ ngOnInit() {
41
+ const model = this.data?.model;
42
+ if (model) {
43
+ this.isUpdate = true;
44
+ this.form.patchValue(model);
45
+ }
46
+ }
47
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RecipientFormComponent, deps: [{ token: i1.FormValidatorService }, { token: i2.FormBuilder }, { token: i3.RecipientService }, { token: i4.MatDialogRef }, { token: MAT_DIALOG_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component });
48
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: RecipientFormComponent, isStandalone: true, selector: "app-recipient-form", usesInheritance: true, ngImport: i0, template: "<mat-card-title class=\"d-flex flex-row justify-content-center align-items-center\">\n Recipient Form\n</mat-card-title>\n<mat-card-content>\n <form class=\"d-flex flex-column gap-3\" [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <mat-form-field class=\"w-100\">\n <mat-label>Name</mat-label>\n <input matInput formControlName=\"name\" required />\n <mat-error *ngIf=\"isFieldValid('name')\">{{ getErrorMessage('name') }}</mat-error>\n </mat-form-field>\n\n <mat-form-field class=\"w-100\">\n <mat-label>Details</mat-label>\n <textarea matInput formControlName=\"details\" rows=\"3\"></textarea>\n </mat-form-field>\n\n <div class=\"d-flex justify-content-end gap-2\">\n <button type=\"button\" mat-flat-button [disabled]=\"isWorking\" (click)=\"dialogRef.close()\">Cancel</button>\n <button type=\"submit\" mat-raised-button color=\"primary\" [disabled]=\"isWorking\">Save</button>\n </div>\n </form>\n</mat-card-content>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i7.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i7.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "directive", type: i8.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], preserveWhitespaces: true });
49
+ }
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RecipientFormComponent, decorators: [{
51
+ type: Component,
52
+ args: [{ selector: 'app-recipient-form', standalone: true, imports: [SharedModule], template: "<mat-card-title class=\"d-flex flex-row justify-content-center align-items-center\">\n Recipient Form\n</mat-card-title>\n<mat-card-content>\n <form class=\"d-flex flex-column gap-3\" [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <mat-form-field class=\"w-100\">\n <mat-label>Name</mat-label>\n <input matInput formControlName=\"name\" required />\n <mat-error *ngIf=\"isFieldValid('name')\">{{ getErrorMessage('name') }}</mat-error>\n </mat-form-field>\n\n <mat-form-field class=\"w-100\">\n <mat-label>Details</mat-label>\n <textarea matInput formControlName=\"details\" rows=\"3\"></textarea>\n </mat-form-field>\n\n <div class=\"d-flex justify-content-end gap-2\">\n <button type=\"button\" mat-flat-button [disabled]=\"isWorking\" (click)=\"dialogRef.close()\">Cancel</button>\n <button type=\"submit\" mat-raised-button color=\"primary\" [disabled]=\"isWorking\">Save</button>\n </div>\n </form>\n</mat-card-content>\n" }]
53
+ }], ctorParameters: () => [{ type: i1.FormValidatorService }, { type: i2.FormBuilder }, { type: i3.RecipientService }, { type: i4.MatDialogRef }, { type: undefined, decorators: [{
54
+ type: Inject,
55
+ args: [MAT_DIALOG_DATA]
56
+ }, {
57
+ type: Optional
58
+ }] }] });
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBpZW50LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52ZW50b3J5LWNvbW1vbi9zcmMvbGliL2ludmVudG9yeS1jb21tb24vcmVjaXBpZW50L3JlY2lwaWVudC1mb3JtL3JlY2lwaWVudC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludmVudG9yeS1jb21tb24vc3JjL2xpYi9pbnZlbnRvcnktY29tbW9uL3JlY2lwaWVudC9yZWNpcGllbnQtZm9ybS9yZWNpcGllbnQtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUF3QixxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWhGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7QUFTbkQsTUFBTSxPQUFPLHNCQUF1QixTQUFRLHFCQUFxQjtJQUUxQztJQUNYO0lBQ1c7SUFDSDtJQUM0QjtJQUw5QyxZQUNxQixvQkFBMEMsRUFDckQsV0FBd0IsRUFDYixPQUF5QixFQUM1QixTQUErQyxFQUNuQixJQUFxQjtRQUVqRSxLQUFLLENBQUMsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFObEIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUNyRCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUNiLFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBQzVCLGNBQVMsR0FBVCxTQUFTLENBQXNDO1FBQ25CLFNBQUksR0FBSixJQUFJLENBQWlCO1FBSWpFLElBQUksQ0FBQyxhQUFhLEdBQUc7WUFDbkIsSUFBSSxFQUFFO2dCQUNKLFFBQVEsRUFBRSw2QkFBNkI7YUFDeEM7U0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUNqQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDUixJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUMvQixPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7U0FDZCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDO1FBQy9CLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztZQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixDQUFDO0lBQ0gsQ0FBQzt3R0E3QlUsc0JBQXNCLDZJQU12QixlQUFlOzRGQU5kLHNCQUFzQixxR0NkbkMsdzlCQXNCQSx5RERaWSxZQUFZOzs0RkFJWCxzQkFBc0I7a0JBUGxDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBQ2xCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQzs7MEJBVXBCLE1BQU07MkJBQUMsZUFBZTs7MEJBQUcsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IEZvcm1WYWxpZGF0b3JTZXJ2aWNlLCBUZWNobGlmeUZvcm1Db21wb25lbnQgfSBmcm9tICduZ3gtdGVjaGxpZnktY29yZSc7XG5pbXBvcnQgeyBSZWNpcGllbnRTZXJ2aWNlIH0gZnJvbSAnLi4vcmVjaXBpZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2hhcmVkTW9kdWxlIH0gZnJvbSAnLi4vLi4vc2hhcmVkLm1vZHVsZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1yZWNpcGllbnQtZm9ybScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtTaGFyZWRNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVjaXBpZW50LWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZWNpcGllbnQtZm9ybS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBSZWNpcGllbnRGb3JtQ29tcG9uZW50IGV4dGVuZHMgVGVjaGxpZnlGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGZvcm1WYWxpZGF0b3JTZXJ2aWNlOiBGb3JtVmFsaWRhdG9yU2VydmljZSxcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc2VydmljZTogUmVjaXBpZW50U2VydmljZSxcbiAgICBwdWJsaWMgb3ZlcnJpZGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8UmVjaXBpZW50Rm9ybUNvbXBvbmVudD4sXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIEBPcHRpb25hbCgpIHB1YmxpYyBkYXRhOiB7IG1vZGVsPzogYW55IH1cbiAgKSB7XG4gICAgc3VwZXIoZm9ybVZhbGlkYXRvclNlcnZpY2UsIHNlcnZpY2UpO1xuXG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzID0ge1xuICAgICAgbmFtZToge1xuICAgICAgICByZXF1aXJlZDogJ1RoZSBuYW1lIGZpZWxkIGlzIHJlcXVpcmVkLicsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIGlkOiBbJyddLFxuICAgICAgbmFtZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIGRldGFpbHM6IFsnJ10sXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBtb2RlbCA9IHRoaXMuZGF0YT8ubW9kZWw7XG4gICAgaWYgKG1vZGVsKSB7XG4gICAgICB0aGlzLmlzVXBkYXRlID0gdHJ1ZTtcbiAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKG1vZGVsKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxtYXQtY2FyZC10aXRsZSBjbGFzcz1cImQtZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICBSZWNpcGllbnQgRm9ybVxuPC9tYXQtY2FyZC10aXRsZT5cbjxtYXQtY2FyZC1jb250ZW50PlxuICA8Zm9ybSBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBnYXAtM1wiIFtmb3JtR3JvdXBdPVwiZm9ybVwiIChuZ1N1Ym1pdCk9XCJzdWJtaXQoKVwiPlxuICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCI+XG4gICAgICA8bWF0LWxhYmVsPk5hbWU8L21hdC1sYWJlbD5cbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgcmVxdWlyZWQgLz5cbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJpc0ZpZWxkVmFsaWQoJ25hbWUnKVwiPnt7IGdldEVycm9yTWVzc2FnZSgnbmFtZScpIH19PC9tYXQtZXJyb3I+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCI+XG4gICAgICA8bWF0LWxhYmVsPkRldGFpbHM8L21hdC1sYWJlbD5cbiAgICAgIDx0ZXh0YXJlYSBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJkZXRhaWxzXCIgcm93cz1cIjNcIj48L3RleHRhcmVhPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgZ2FwLTJcIj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1mbGF0LWJ1dHRvbiBbZGlzYWJsZWRdPVwiaXNXb3JraW5nXCIgKGNsaWNrKT1cImRpYWxvZ1JlZi5jbG9zZSgpXCI+Q2FuY2VsPC9idXR0b24+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbZGlzYWJsZWRdPVwiaXNXb3JraW5nXCI+U2F2ZTwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Zvcm0+XG48L21hdC1jYXJkLWNvbnRlbnQ+XG4iXX0=
@@ -0,0 +1,49 @@
1
+ import { Component, signal } from '@angular/core';
2
+ import { TechlifyListComponent } from 'ngx-techlify-core';
3
+ import { RecipientFormComponent } from '../recipient-form/recipient-form.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/forms";
6
+ import * as i2 from "../recipient.service";
7
+ import * as i3 from "@angular/common";
8
+ import * as i4 from "ngx-infinite-scroll";
9
+ import * as i5 from "@angular/material/card";
10
+ import * as i6 from "@angular/material/form-field";
11
+ import * as i7 from "@angular/material/input";
12
+ import * as i8 from "@angular/material/progress-bar";
13
+ import * as i9 from "@angular/material/sort";
14
+ import * as i10 from "@angular/material/table";
15
+ import * as i11 from "ngx-permissions";
16
+ import * as i12 from "ngx-techlify-core";
17
+ export class RecipientListComponent extends TechlifyListComponent {
18
+ fb;
19
+ service;
20
+ recipientForm = signal(RecipientFormComponent);
21
+ displayedColumns = [
22
+ '#',
23
+ 'name',
24
+ 'details',
25
+ 'actions'
26
+ ];
27
+ constructor(fb, service) {
28
+ super(service);
29
+ this.fb = fb;
30
+ this.service = service;
31
+ this.filterFormConfiguration = {};
32
+ this.filterForm = this.fb.group({
33
+ search: [''],
34
+ sort_by: ['created_at|desc'],
35
+ });
36
+ }
37
+ ngOnInit() {
38
+ this.patchFiltersFromRoute();
39
+ this.loadData();
40
+ this.listenFilterChanges();
41
+ }
42
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RecipientListComponent, deps: [{ token: i1.FormBuilder }, { token: i2.RecipientService }], target: i0.ɵɵFactoryTarget.Component });
43
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: RecipientListComponent, selector: "app-recipient-list", usesInheritance: true, ngImport: i0, template: "<div class=\"d-flex flex-column gap-2\">\n <mat-card>\n <mat-card-content class=\"d-flex flex-row justify-content-between align-items-center\">\n <div class=\"d-flex flex-row align-items-center gap-2\">\n <h5 class=\"mb-0\">Recipients</h5>\n <app-techlify-form-button *ngxPermissionsOnly=\"['recipient.create']\" [component]=\"recipientForm()\"\n [width]=\"'500px'\" (saved)=\"modelCreated($event)\"></app-techlify-form-button>\n </div>\n <div class=\"d-flex flex-row gap-2\" [formGroup]=\"filterForm\">\n <mat-form-field class=\"fl-md\">\n <mat-label>Search</mat-label>\n <input matInput formControlName=\"search\" />\n </mat-form-field>\n </div>\n </mat-card-content>\n </mat-card>\n\n <mat-card>\n <mat-card-content>\n <table mat-table [dataSource]=\"models\" class=\"w-100\" aria-describedby=\"Recipients\" infiniteScroll\n [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" matSort\n (matSortChange)=\"sortColumn($event)\">\n <ng-container matColumnDef=\"#\">\n <th mat-header-cell *matHeaderCellDef>#</th>\n <td mat-cell *matCellDef=\"let element; let i = index\">{{ i + 1 }}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"name\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Name</th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.name }}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"details\">\n <th mat-header-cell *matHeaderCellDef>Details</th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.details }}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef>Actions</th>\n <td mat-cell *matCellDef=\"let element\">\n <div class=\"d-flex flex-row gap-1 align-items-center text-secondary\">\n <app-techlify-form-button *ngxPermissionsOnly=\"['recipient.update']\" [component]=\"recipientForm()\"\n [model]=\"element\" [width]=\"'500px'\" (saved)=\"modelsUpdatedById($event)\"></app-techlify-form-button>\n <app-techlify-delete-button *ngxPermissionsOnly=\"['recipient.delete']\" [service]=\"service\"\n [model]=\"element\" [data]=\"{ type: 'Recipient', title: element?.name }\"\n (deleted)=\"modelsDeletedById($event)\"></app-techlify-delete-button>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-progress-bar *ngIf=\"isWorking\" mode=\"indeterminate\"></mat-progress-bar>\n </mat-card-content>\n </mat-card>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: i5.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i5.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i8.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: i9.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i9.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i10.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i10.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i10.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i10.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i10.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i10.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i10.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i10.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i10.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i10.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i11.NgxPermissionsDirective, selector: "[ngxPermissionsOnly],[ngxPermissionsExcept]", inputs: ["ngxPermissionsOnly", "ngxPermissionsOnlyThen", "ngxPermissionsOnlyElse", "ngxPermissionsExcept", "ngxPermissionsExceptElse", "ngxPermissionsExceptThen", "ngxPermissionsThen", "ngxPermissionsElse", "ngxPermissionsOnlyAuthorisedStrategy", "ngxPermissionsOnlyUnauthorisedStrategy", "ngxPermissionsExceptUnauthorisedStrategy", "ngxPermissionsExceptAuthorisedStrategy", "ngxPermissionsUnauthorisedStrategy", "ngxPermissionsAuthorisedStrategy"], outputs: ["permissionsAuthorized", "permissionsUnauthorized"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i12.TechlifyDeleteButtonComponent, selector: "app-techlify-delete-button", inputs: ["data", "model", "message", "service"], outputs: ["deleted"] }, { kind: "component", type: i12.TechlifyFormButtonComponent, selector: "app-techlify-form-button", inputs: ["component", "model", "data", "width"], outputs: ["saved"] }], preserveWhitespaces: true });
44
+ }
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RecipientListComponent, decorators: [{
46
+ type: Component,
47
+ args: [{ selector: 'app-recipient-list', template: "<div class=\"d-flex flex-column gap-2\">\n <mat-card>\n <mat-card-content class=\"d-flex flex-row justify-content-between align-items-center\">\n <div class=\"d-flex flex-row align-items-center gap-2\">\n <h5 class=\"mb-0\">Recipients</h5>\n <app-techlify-form-button *ngxPermissionsOnly=\"['recipient.create']\" [component]=\"recipientForm()\"\n [width]=\"'500px'\" (saved)=\"modelCreated($event)\"></app-techlify-form-button>\n </div>\n <div class=\"d-flex flex-row gap-2\" [formGroup]=\"filterForm\">\n <mat-form-field class=\"fl-md\">\n <mat-label>Search</mat-label>\n <input matInput formControlName=\"search\" />\n </mat-form-field>\n </div>\n </mat-card-content>\n </mat-card>\n\n <mat-card>\n <mat-card-content>\n <table mat-table [dataSource]=\"models\" class=\"w-100\" aria-describedby=\"Recipients\" infiniteScroll\n [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" matSort\n (matSortChange)=\"sortColumn($event)\">\n <ng-container matColumnDef=\"#\">\n <th mat-header-cell *matHeaderCellDef>#</th>\n <td mat-cell *matCellDef=\"let element; let i = index\">{{ i + 1 }}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"name\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Name</th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.name }}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"details\">\n <th mat-header-cell *matHeaderCellDef>Details</th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.details }}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef>Actions</th>\n <td mat-cell *matCellDef=\"let element\">\n <div class=\"d-flex flex-row gap-1 align-items-center text-secondary\">\n <app-techlify-form-button *ngxPermissionsOnly=\"['recipient.update']\" [component]=\"recipientForm()\"\n [model]=\"element\" [width]=\"'500px'\" (saved)=\"modelsUpdatedById($event)\"></app-techlify-form-button>\n <app-techlify-delete-button *ngxPermissionsOnly=\"['recipient.delete']\" [service]=\"service\"\n [model]=\"element\" [data]=\"{ type: 'Recipient', title: element?.name }\"\n (deleted)=\"modelsDeletedById($event)\"></app-techlify-delete-button>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-progress-bar *ngIf=\"isWorking\" mode=\"indeterminate\"></mat-progress-bar>\n </mat-card-content>\n </mat-card>\n</div>\n" }]
48
+ }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.RecipientService }] });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBpZW50LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52ZW50b3J5LWNvbW1vbi9zcmMvbGliL2ludmVudG9yeS1jb21tb24vcmVjaXBpZW50L3JlY2lwaWVudC1saXN0L3JlY2lwaWVudC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludmVudG9yeS1jb21tb24vc3JjL2xpYi9pbnZlbnRvcnktY29tbW9uL3JlY2lwaWVudC9yZWNpcGllbnQtbGlzdC9yZWNpcGllbnQtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFPcEYsTUFBTSxPQUFPLHNCQUF1QixTQUFRLHFCQUFxQjtJQVUzQztJQUFvQztJQVR4RCxhQUFhLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFFL0MsZ0JBQWdCLEdBQWE7UUFDM0IsR0FBRztRQUNILE1BQU07UUFDTixTQUFTO1FBQ1QsU0FBUztLQUNWLENBQUM7SUFFRixZQUFvQixFQUFlLEVBQXFCLE9BQXlCO1FBQy9FLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQURHLE9BQUUsR0FBRixFQUFFLENBQWE7UUFBcUIsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFFL0UsSUFBSSxDQUFDLHVCQUF1QixHQUFHLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQzlCLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNaLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDO1NBQzdCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7d0dBdkJVLHNCQUFzQjs0RkFBdEIsc0JBQXNCLGlGQ1huQywwekZBeURBOzs0RkQ5Q2Esc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVGVjaGxpZnlMaXN0Q29tcG9uZW50IH0gZnJvbSAnbmd4LXRlY2hsaWZ5LWNvcmUnO1xuaW1wb3J0IHsgUmVjaXBpZW50U2VydmljZSB9IGZyb20gJy4uL3JlY2lwaWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IFJlY2lwaWVudEZvcm1Db21wb25lbnQgfSBmcm9tICcuLi9yZWNpcGllbnQtZm9ybS9yZWNpcGllbnQtZm9ybS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcmVjaXBpZW50LWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVjaXBpZW50LWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZWNpcGllbnQtbGlzdC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBSZWNpcGllbnRMaXN0Q29tcG9uZW50IGV4dGVuZHMgVGVjaGxpZnlMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcmVjaXBpZW50Rm9ybSA9IHNpZ25hbChSZWNpcGllbnRGb3JtQ29tcG9uZW50KTtcblxuICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXSA9IFtcbiAgICAnIycsXG4gICAgJ25hbWUnLFxuICAgICdkZXRhaWxzJyxcbiAgICAnYWN0aW9ucydcbiAgXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlciwgcHJvdGVjdGVkIG92ZXJyaWRlIHNlcnZpY2U6IFJlY2lwaWVudFNlcnZpY2UpIHtcbiAgICBzdXBlcihzZXJ2aWNlKTtcbiAgICB0aGlzLmZpbHRlckZvcm1Db25maWd1cmF0aW9uID0ge307XG4gICAgdGhpcy5maWx0ZXJGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBzZWFyY2g6IFsnJ10sXG4gICAgICBzb3J0X2J5OiBbJ2NyZWF0ZWRfYXR8ZGVzYyddLFxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5wYXRjaEZpbHRlcnNGcm9tUm91dGUoKTtcbiAgICB0aGlzLmxvYWREYXRhKCk7XG4gICAgdGhpcy5saXN0ZW5GaWx0ZXJDaGFuZ2VzKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZ2FwLTJcIj5cbiAgPG1hdC1jYXJkPlxuICAgIDxtYXQtY2FyZC1jb250ZW50IGNsYXNzPVwiZC1mbGV4IGZsZXgtcm93IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXJvdyBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgPGg1IGNsYXNzPVwibWItMFwiPlJlY2lwaWVudHM8L2g1PlxuICAgICAgICA8YXBwLXRlY2hsaWZ5LWZvcm0tYnV0dG9uICpuZ3hQZXJtaXNzaW9uc09ubHk9XCJbJ3JlY2lwaWVudC5jcmVhdGUnXVwiIFtjb21wb25lbnRdPVwicmVjaXBpZW50Rm9ybSgpXCJcbiAgICAgICAgICBbd2lkdGhdPVwiJzUwMHB4J1wiIChzYXZlZCk9XCJtb2RlbENyZWF0ZWQoJGV2ZW50KVwiPjwvYXBwLXRlY2hsaWZ5LWZvcm0tYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtcm93IGdhcC0yXCIgW2Zvcm1Hcm91cF09XCJmaWx0ZXJGb3JtXCI+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZsLW1kXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbD5TZWFyY2g8L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwic2VhcmNoXCIgLz5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgPC9tYXQtY2FyZD5cblxuICA8bWF0LWNhcmQ+XG4gICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cIm1vZGVsc1wiIGNsYXNzPVwidy0xMDBcIiBhcmlhLWRlc2NyaWJlZGJ5PVwiUmVjaXBpZW50c1wiIGluZmluaXRlU2Nyb2xsXG4gICAgICAgIFtpbmZpbml0ZVNjcm9sbERpc3RhbmNlXT1cIjJcIiBbaW5maW5pdGVTY3JvbGxUaHJvdHRsZV09XCI1MFwiIChzY3JvbGxlZCk9XCJvblNjcm9sbCgpXCIgbWF0U29ydFxuICAgICAgICAobWF0U29ydENoYW5nZSk9XCJzb3J0Q29sdW1uKCRldmVudClcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCIjXCI+XG4gICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4jPC90aD5cbiAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudDsgbGV0IGkgPSBpbmRleFwiPnt7IGkgKyAxIH19PC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJuYW1lXCI+XG4gICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtc29ydC1oZWFkZXI+TmFtZTwvdGg+XG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj57eyBlbGVtZW50Py5uYW1lIH19PC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJkZXRhaWxzXCI+XG4gICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5EZXRhaWxzPC90aD5cbiAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPnt7IGVsZW1lbnQ/LmRldGFpbHMgfX08L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImFjdGlvbnNcIj5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPkFjdGlvbnM8L3RoPlxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtcm93IGdhcC0xIGFsaWduLWl0ZW1zLWNlbnRlciB0ZXh0LXNlY29uZGFyeVwiPlxuICAgICAgICAgICAgICA8YXBwLXRlY2hsaWZ5LWZvcm0tYnV0dG9uICpuZ3hQZXJtaXNzaW9uc09ubHk9XCJbJ3JlY2lwaWVudC51cGRhdGUnXVwiIFtjb21wb25lbnRdPVwicmVjaXBpZW50Rm9ybSgpXCJcbiAgICAgICAgICAgICAgICBbbW9kZWxdPVwiZWxlbWVudFwiIFt3aWR0aF09XCInNTAwcHgnXCIgKHNhdmVkKT1cIm1vZGVsc1VwZGF0ZWRCeUlkKCRldmVudClcIj48L2FwcC10ZWNobGlmeS1mb3JtLWJ1dHRvbj5cbiAgICAgICAgICAgICAgPGFwcC10ZWNobGlmeS1kZWxldGUtYnV0dG9uICpuZ3hQZXJtaXNzaW9uc09ubHk9XCJbJ3JlY2lwaWVudC5kZWxldGUnXVwiIFtzZXJ2aWNlXT1cInNlcnZpY2VcIlxuICAgICAgICAgICAgICAgIFttb2RlbF09XCJlbGVtZW50XCIgW2RhdGFdPVwieyB0eXBlOiAnUmVjaXBpZW50JywgdGl0bGU6IGVsZW1lbnQ/Lm5hbWUgfVwiXG4gICAgICAgICAgICAgICAgKGRlbGV0ZWQpPVwibW9kZWxzRGVsZXRlZEJ5SWQoJGV2ZW50KVwiPjwvYXBwLXRlY2hsaWZ5LWRlbGV0ZS1idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnNcIj48L3RyPlxuICAgICAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1ucztcIj48L3RyPlxuICAgICAgPC90YWJsZT5cbiAgICAgIDxtYXQtcHJvZ3Jlc3MtYmFyICpuZ0lmPVwiaXNXb3JraW5nXCIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIj48L21hdC1wcm9ncmVzcy1iYXI+XG4gICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICA8L21hdC1jYXJkPlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,24 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { RouterModule } from '@angular/router';
3
+ import { RecipientListComponent } from './recipient-list/recipient-list.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/router";
6
+ const routes = [
7
+ {
8
+ path: '',
9
+ component: RecipientListComponent,
10
+ },
11
+ ];
12
+ export class RecipientRoutingModule {
13
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RecipientRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: RecipientRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] });
15
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RecipientRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] });
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RecipientRoutingModule, decorators: [{
18
+ type: NgModule,
19
+ args: [{
20
+ imports: [RouterModule.forChild(routes)],
21
+ exports: [RouterModule],
22
+ }]
23
+ }] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBpZW50LXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52ZW50b3J5LWNvbW1vbi9zcmMvbGliL2ludmVudG9yeS1jb21tb24vcmVjaXBpZW50L3JlY2lwaWVudC1yb3V0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7O0FBRW5GLE1BQU0sTUFBTSxHQUFXO0lBQ3JCO1FBQ0UsSUFBSSxFQUFFLEVBQUU7UUFDUixTQUFTLEVBQUUsc0JBQXNCO0tBQ2xDO0NBQ0YsQ0FBQztBQU1GLE1BQU0sT0FBTyxzQkFBc0I7d0dBQXRCLHNCQUFzQjt5R0FBdEIsc0JBQXNCLHdDQUZ2QixZQUFZO3lHQUVYLHNCQUFzQixZQUh2QixZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUM3QixZQUFZOzs0RkFFWCxzQkFBc0I7a0JBSmxDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDeEMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUsIFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBSZWNpcGllbnRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9yZWNpcGllbnQtbGlzdC9yZWNpcGllbnQtbGlzdC5jb21wb25lbnQnO1xuXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcbiAge1xuICAgIHBhdGg6ICcnLFxuICAgIGNvbXBvbmVudDogUmVjaXBpZW50TGlzdENvbXBvbmVudCxcbiAgfSxcbl07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKV0sXG4gIGV4cG9ydHM6IFtSb3V0ZXJNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBSZWNpcGllbnRSb3V0aW5nTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,18 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { RecipientRoutingModule } from './recipient-routing.module';
3
+ import { RecipientListComponent } from './recipient-list/recipient-list.component';
4
+ import { SharedModule } from '../shared.module';
5
+ import * as i0 from "@angular/core";
6
+ export class RecipientModule {
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RecipientModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: RecipientModule, declarations: [RecipientListComponent], imports: [RecipientRoutingModule, SharedModule] });
9
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RecipientModule, imports: [RecipientRoutingModule, SharedModule] });
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RecipientModule, decorators: [{
12
+ type: NgModule,
13
+ args: [{
14
+ declarations: [RecipientListComponent],
15
+ imports: [RecipientRoutingModule, SharedModule],
16
+ }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBpZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludmVudG9yeS1jb21tb24vc3JjL2xpYi9pbnZlbnRvcnktY29tbW9uL3JlY2lwaWVudC9yZWNpcGllbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQU1oRCxNQUFNLE9BQU8sZUFBZTt3R0FBZixlQUFlO3lHQUFmLGVBQWUsaUJBSFgsc0JBQXNCLGFBQzNCLHNCQUFzQixFQUFFLFlBQVk7eUdBRW5DLGVBQWUsWUFGaEIsc0JBQXNCLEVBQUUsWUFBWTs7NEZBRW5DLGVBQWU7a0JBSjNCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ3RDLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixFQUFFLFlBQVksQ0FBQztpQkFDaEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd4UGVybWlzc2lvbnNNb2R1bGUgfSBmcm9tICduZ3gtcGVybWlzc2lvbnMnO1xuaW1wb3J0IHsgUmVjaXBpZW50Um91dGluZ01vZHVsZSB9IGZyb20gJy4vcmVjaXBpZW50LXJvdXRpbmcubW9kdWxlJztcbmltcG9ydCB7IFJlY2lwaWVudExpc3RDb21wb25lbnQgfSBmcm9tICcuL3JlY2lwaWVudC1saXN0L3JlY2lwaWVudC1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaGFyZWRNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbUmVjaXBpZW50TGlzdENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtSZWNpcGllbnRSb3V0aW5nTW9kdWxlLCBTaGFyZWRNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBSZWNpcGllbnRNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,18 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { TechlifyService } from 'ngx-techlify-core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "ngx-techlify-core";
5
+ export class RecipientService extends TechlifyService {
6
+ constructor(httpService) {
7
+ super(httpService, 'recipients');
8
+ }
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RecipientService, deps: [{ token: i1.HttpService }], target: i0.ɵɵFactoryTarget.Injectable });
10
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RecipientService, providedIn: 'root' });
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RecipientService, decorators: [{
13
+ type: Injectable,
14
+ args: [{
15
+ providedIn: 'root',
16
+ }]
17
+ }], ctorParameters: () => [{ type: i1.HttpService }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBpZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZlbnRvcnktY29tbW9uL3NyYy9saWIvaW52ZW50b3J5LWNvbW1vbi9yZWNpcGllbnQvcmVjaXBpZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7OztBQUtqRSxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsZUFBZTtJQUNuRCxZQUFZLFdBQXdCO1FBQ2xDLEtBQUssQ0FBQyxXQUFXLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDbkMsQ0FBQzt3R0FIVSxnQkFBZ0I7NEdBQWhCLGdCQUFnQixjQUZmLE1BQU07OzRGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwU2VydmljZSwgVGVjaGxpZnlTZXJ2aWNlIH0gZnJvbSAnbmd4LXRlY2hsaWZ5LWNvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUmVjaXBpZW50U2VydmljZSBleHRlbmRzIFRlY2hsaWZ5U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKGh0dHBTZXJ2aWNlOiBIdHRwU2VydmljZSkge1xuICAgIHN1cGVyKGh0dHBTZXJ2aWNlLCAncmVjaXBpZW50cycpO1xuICB9XG59XG4iXX0=