@rolatech/angular-property 20.0.7 → 20.1.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 (13) hide show
  1. package/fesm2022/{rolatech-angular-property-property-filter-icon.component-C5eq4uBf.mjs → rolatech-angular-property-property-filter-icon.component-QFg-Ph-F.mjs} +4 -4
  2. package/fesm2022/{rolatech-angular-property-property-filter-icon.component-C5eq4uBf.mjs.map → rolatech-angular-property-property-filter-icon.component-QFg-Ph-F.mjs.map} +1 -1
  3. package/fesm2022/{rolatech-angular-property-property-index.component-B5p30xPY.mjs → rolatech-angular-property-property-index.component-BO3-EbLo.mjs} +6 -6
  4. package/fesm2022/rolatech-angular-property-property-index.component-BO3-EbLo.mjs.map +1 -0
  5. package/fesm2022/{rolatech-angular-property-property-manage-viewings-index.component-FlsJLKYo.mjs → rolatech-angular-property-property-manage-viewings-index.component-BzLcZmqM.mjs} +5 -5
  6. package/fesm2022/{rolatech-angular-property-property-manage-viewings-index.component-FlsJLKYo.mjs.map → rolatech-angular-property-property-manage-viewings-index.component-BzLcZmqM.mjs.map} +1 -1
  7. package/fesm2022/{rolatech-angular-property-rolatech-angular-property-BkT1mptl.mjs → rolatech-angular-property-rolatech-angular-property-NsV_zGlO.mjs} +293 -271
  8. package/fesm2022/rolatech-angular-property-rolatech-angular-property-NsV_zGlO.mjs.map +1 -0
  9. package/fesm2022/rolatech-angular-property.mjs +1 -1
  10. package/package.json +5 -5
  11. package/themes/_default.scss +1 -1
  12. package/fesm2022/rolatech-angular-property-property-index.component-B5p30xPY.mjs.map +0 -1
  13. package/fesm2022/rolatech-angular-property-rolatech-angular-property-BkT1mptl.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"rolatech-angular-property-rolatech-angular-property-BkT1mptl.mjs","sources":["../tmp-esm2022/lib/interfaces/property.js","../tmp-esm2022/lib/components/property-manage-item/property-manage-item.component.js","../tmp-esm2022/lib/pages/property-review/property-review-index/property-review-index.component.js","../tmp-esm2022/lib/components/property-media/property-media.component.js","../tmp-esm2022/lib/components/property-features/property-features.component.js","../tmp-esm2022/lib/components/property-location/property-location.component.js","../tmp-esm2022/lib/components/property-owner-renderer/property-owner-renderer.component.js","../tmp-esm2022/lib/components/property-agent-update/property-agent-update.js","../tmp-esm2022/lib/pages/property-review/property-review-detail/property-review-detail.component.js","../tmp-esm2022/lib/pages/property-review/property-review.routes.js","../tmp-esm2022/lib/components/feature-manage-item/feature-manage-item.component.js","../tmp-esm2022/lib/components/feature-manage-item-add/feature-manage-item-add.component.js","../tmp-esm2022/lib/pages/feature-manage/feature-manage-index/feature-manage-index.component.js","../tmp-esm2022/lib/pages/feature-manage/feature-manage-detail/feature-manage-detail.component.js","../tmp-esm2022/lib/pages/feature-manage/feature-manage.routes.js","../tmp-esm2022/lib/components/property-offer-item/property-offer-item.component.js","../tmp-esm2022/lib/pages/property-manage/property-manage-offer-index/property-manage-offer-index.component.js","../tmp-esm2022/lib/pages/property-manage/property-manage-offer-detail/property-manage-offer-detail.component.js","../tmp-esm2022/lib/pages/property-manage/property-manage-offers.routes.js","../tmp-esm2022/lib/property-util.js","../tmp-esm2022/lib/pages/property/property-layout/property-layout.component.js","../tmp-esm2022/lib/components/property-actions/property-actions.component.js","../tmp-esm2022/lib/components/property-item/property-item.component.js","../tmp-esm2022/lib/components/property-pricing/property-pricing.component.js","../tmp-esm2022/lib/components/property-info/property-info.component.js","../tmp-esm2022/lib/components/property-section/property-section.component.js","../tmp-esm2022/lib/components/property-video/property-video.component.js","../tmp-esm2022/lib/components/property-action-contact/property-action-contact.component.js","../tmp-esm2022/lib/components/property-agent-renderer/property-agent-renderer.js","../tmp-esm2022/lib/components/property-highlights/property-highlights.js","../tmp-esm2022/lib/components/epc-chart/epc-chart.js","../tmp-esm2022/lib/components/property-epc/property-epc.js","../tmp-esm2022/lib/pages/property/property-details/property-details.component.js","../tmp-esm2022/lib/components/property-viewing-time/property-viewing-time.component.js","../tmp-esm2022/lib/pages/property/property-viewing-request/property-viewing-request.component.js","../tmp-esm2022/lib/pages/property/property-offer/property-offer.component.js","../tmp-esm2022/lib/pages/property/property-offer-index/property-offer-index.component.js","../tmp-esm2022/lib/components/property-viewing-item/property-viewing-item.component.js","../tmp-esm2022/lib/pages/property/property-viewing-index/property-viewing-index.component.js","../tmp-esm2022/lib/pages/property/property-offer-detail/due.pipe.js","../tmp-esm2022/lib/pages/property/property-offer-detail/property-offer-detail.component.js","../tmp-esm2022/lib/pages/property/property-viewing-detail/property-viewing-detail.component.js","../tmp-esm2022/lib/pages/property/property-wishlist/property-wishlist.component.js","../tmp-esm2022/lib/pages/property/property.routes.js","../tmp-esm2022/lib/pages/property-manage/property-manage-index/property-manage-index.component.js","../tmp-esm2022/lib/pages/property-manage/property-manage-create/property-manage-create.component.js","../tmp-esm2022/lib/pages/property-manage/property-manage-layout/property-manage-layout.component.js","../tmp-esm2022/lib/pages/property-manage/property-manage-content/property-manage-content.component.js","../tmp-esm2022/lib/pages/property-manage/property-manage-info/property-manage-info.component.js","../tmp-esm2022/lib/pages/property-manage/property-manage-media/property-manage-media.component.js","../tmp-esm2022/lib/components/property-manage-section-item/property-manage-section-item.component.js","../tmp-esm2022/lib/pages/property-manage/property-manage-sections/property-manage-sections.component.js","../tmp-esm2022/lib/pages/property-manage/property-manage-pricing/property-manage-pricing.component.js","../tmp-esm2022/lib/pages/property-manage/property-manage-schedule/property-manage-schedule.component.js","../tmp-esm2022/lib/pages/property-manage/property-manage-features/property-manage-features.component.js","../tmp-esm2022/lib/pages/property-manage/property-manage-location/property-manage-location.component.js","../tmp-esm2022/lib/components/property-video-youtube-add/property-video-youtube-add.component.js","../tmp-esm2022/lib/pages/property-manage/property-manage-video/safe-url.pipe.js","../tmp-esm2022/lib/components/property-video-item/property-video-item.js","../tmp-esm2022/lib/pages/property-manage/property-manage-video/property-manage-video.component.js","../tmp-esm2022/lib/pages/property-manage/property-manage-highlights/property-manage-highlights.js","../tmp-esm2022/lib/pages/property-manage/property-manage-epc/property-manage-epc.js","../tmp-esm2022/lib/pages/property-manage/property-manage-translation/property-manage-translation.js","../tmp-esm2022/lib/pages/property-manage/property-manage-keywords/property-manage-keywords.js","../tmp-esm2022/lib/pages/property-manage/property-manage-floorplan/property-manage-floorplan.js","../tmp-esm2022/lib/pages/property-manage/property-mange.routes.js","../tmp-esm2022/lib/components/property-viewing-confirmation/property-viewing-confirmation.component.js","../tmp-esm2022/lib/pages/property-manage/property-manage-viewings-detail/property-manage-viewings-detail.component.js","../tmp-esm2022/lib/pages/property-manage/property-manage-viewings.routes.js","../tmp-esm2022/lib/components/letting-manage-item/letting-manage-item.js","../tmp-esm2022/lib/pages/letting-manage/letting-manage-index/letting-manage-index.js","../tmp-esm2022/lib/components/letting-actions/letting-actions.js","../tmp-esm2022/lib/components/letting-action-contact/letting-action-contact.js","../tmp-esm2022/lib/pages/letting-manage/letting-manage-detail/letting-manage-detail.js","../tmp-esm2022/lib/pages/letting-manage/letting-manage-viewing-request/letting-manage-viewing-request.js","../tmp-esm2022/lib/pages/letting-manage/letting-manage-offer-request/letting-manage-offer-request.js","../tmp-esm2022/lib/pages/letting-manage/letting-manage.routes.js","../tmp-esm2022/lib/components/tenant-item/tenant-item.js","../tmp-esm2022/lib/pages/tenant-manage/tenant-manage-index/tenant-manage-index.js","../tmp-esm2022/lib/pages/tenant-manage/tenant-manage-detail/tenant-manage-detail.js","../tmp-esm2022/lib/pages/tenant-manage/tenant-manage-create/tenant-manage-create.js","../tmp-esm2022/lib/pages/tenant-manage/tenant-manage.routes.js","../tmp-esm2022/rolatech-angular-property.js"],"sourcesContent":["export var RentFrequency;\n(function (RentFrequency) {\n RentFrequency[\"NOT_SPECIFIED\"] = \"Not specified\";\n RentFrequency[\"WEEKLY\"] = \"Weekly\";\n RentFrequency[\"BI_WEEKLY\"] = \"Bi weekly\";\n RentFrequency[\"MONTHLY\"] = \"Monthly\";\n RentFrequency[\"BI_MONTHLY\"] = \"Bi monthly\";\n RentFrequency[\"QUARTERLY\"] = \"Quarterly\";\n RentFrequency[\"SEMI_ANNUAL\"] = \"Semi annual\";\n RentFrequency[\"ANNUAL\"] = \"Annual\";\n RentFrequency[\"ONE_TIME\"] = \"One time\";\n RentFrequency[\"DAILY\"] = \"Daily\";\n RentFrequency[\"CUSTOM\"] = \"Custom\";\n})(RentFrequency || (RentFrequency = {}));\nexport var Market;\n(function (Market) {\n Market[\"SALES\"] = \"Sales\";\n Market[\"LETTINGS\"] = \"Lettings\";\n Market[\"NOT_SPECIFIED\"] = \"Not specified\";\n})(Market || (Market = {}));\nexport var PropertyPriceType;\n(function (PropertyPriceType) {\n PropertyPriceType[\"FIXED\"] = \"\\u56FA\\u5B9A\\u4EF7\\u683C\";\n PropertyPriceType[\"PARTIAL\"] = \"\\u652F\\u4ED8\\u5B9A\\u91D1\";\n PropertyPriceType[\"VARIED\"] = \"\\u591A\\u53D8\\u7684\";\n})(PropertyPriceType || (PropertyPriceType = {}));\nexport var PropertyVideoProvider;\n(function (PropertyVideoProvider) {\n PropertyVideoProvider[\"YOUTUBE\"] = \"YOUTUBE\";\n PropertyVideoProvider[\"S3\"] = \"AWS S3\";\n PropertyVideoProvider[\"LOCAL\"] = \"Local server\";\n PropertyVideoProvider[\"COS\"] = \"COS\";\n})(PropertyVideoProvider || (PropertyVideoProvider = {}));\nexport var PropertyStatus;\n(function (PropertyStatus) {\n PropertyStatus[PropertyStatus[\"DRAFT\"] = 'Draft'] = \"DRAFT\";\n PropertyStatus[PropertyStatus[\"PENDING\"] = 'Pending'] = \"PENDING\";\n PropertyStatus[PropertyStatus[\"APPROVED\"] = 'Approved'] = \"APPROVED\";\n PropertyStatus[PropertyStatus[\"REJECTED\"] = 'Rejected'] = \"REJECTED\";\n PropertyStatus[PropertyStatus[\"AVAILABLE\"] = 'Available'] = \"AVAILABLE\";\n PropertyStatus[PropertyStatus[\"SOLD\"] = 'Sold'] = \"SOLD\";\n PropertyStatus[PropertyStatus[\"RENTED\"] = 'Rented'] = \"RENTED\";\n PropertyStatus[PropertyStatus[\"DELETED\"] = 'Deleted'] = \"DELETED\";\n PropertyStatus[PropertyStatus[\"ARCHIVED\"] = 'Archived'] = \"ARCHIVED\";\n})(PropertyStatus || (PropertyStatus = {}));\nexport var PropertyType;\n(function (PropertyType) {\n PropertyType[\"APARTMENT\"] = \"Apartment\";\n PropertyType[\"CONDO\"] = \"Condo\";\n PropertyType[\"HOUSE\"] = \"Hourse\";\n PropertyType[\"TOWNHOUSE\"] = \"Townhourse\";\n PropertyType[\"LAND\"] = \"Land\";\n PropertyType[\"COMMERCIAL\"] = \"Commercial\";\n PropertyType[\"INDUSTRIAL\"] = \"Industrial\";\n PropertyType[\"FLAT\"] = \"Flat\";\n PropertyType[\"OTHER\"] = \"Other\";\n})(PropertyType || (PropertyType = {}));\nexport var PropertyInventoryStatus;\n(function (PropertyInventoryStatus) {\n PropertyInventoryStatus[\"IN_STOCK\"] = \"\\u6709\\u8D27\";\n PropertyInventoryStatus[\"LOW_STOCK\"] = \"\\u5E93\\u5B58\\u4E0D\\u8DB3\";\n PropertyInventoryStatus[\"OUT_OF_STOCK\"] = \"\\u552E\\u7F44\";\n PropertyInventoryStatus[\"DISCONTINUED\"] = \"\\u5DF2\\u505C\\u4EA7\";\n})(PropertyInventoryStatus || (PropertyInventoryStatus = {}));\nexport var PropertyScope;\n(function (PropertyScope) {\n PropertyScope[PropertyScope[\"WEB\"] = '网站'] = \"WEB\";\n PropertyScope[PropertyScope[\"GLOBAL\"] = '全域'] = \"GLOBAL\";\n})(PropertyScope || (PropertyScope = {}));\nexport var PropertyViewingStatus;\n(function (PropertyViewingStatus) {\n PropertyViewingStatus[\"PENDING\"] = \"Pending\";\n PropertyViewingStatus[\"APPROVED\"] = \"Approved\";\n PropertyViewingStatus[\"REJECTED\"] = \"Rejected\";\n PropertyViewingStatus[\"CANCELLED\"] = \"Cancelled\";\n PropertyViewingStatus[\"COMPLETED\"] = \"Completed\";\n})(PropertyViewingStatus || (PropertyViewingStatus = {}));\nexport var PropertyViewerCategory;\n(function (PropertyViewerCategory) {\n PropertyViewerCategory[\"TENANT\"] = \"Tenant\";\n PropertyViewerCategory[\"AGENT\"] = \"Agent\";\n})(PropertyViewerCategory || (PropertyViewerCategory = {}));\nexport var PropertyOfferTimelineStatus;\n(function (PropertyOfferTimelineStatus) {\n PropertyOfferTimelineStatus[\"OFFER_CREATED\"] = \"Offer created\";\n PropertyOfferTimelineStatus[\"OFFER_ACCEPTED\"] = \"Offer accepted\";\n PropertyOfferTimelineStatus[\"OFFER_REJECTED\"] = \"Offer rejected\";\n PropertyOfferTimelineStatus[\"OFFER_CLOSED\"] = \"Offer closed\";\n PropertyOfferTimelineStatus[\"OFFER_CANCELLED\"] = \"Offer cancelled\";\n PropertyOfferTimelineStatus[\"OFFER_HOLDING_DEPOSIT_PAID\"] = \"Offer holding deposit paid\";\n PropertyOfferTimelineStatus[\"OFFER_SECURITY_DEPOSIT_PAID\"] = \"Offer security deposit paid\";\n PropertyOfferTimelineStatus[\"OFFER_REFUNDED\"] = \"Offer refunded\";\n PropertyOfferTimelineStatus[\"OFFER_COMPLETED\"] = \"Offer completed\";\n PropertyOfferTimelineStatus[\"OFFER_RETURN_REQUESTED\"] = \"Offer return requested\";\n PropertyOfferTimelineStatus[\"OFFER_RETURN_APPROVED\"] = \"Offer return approved\";\n PropertyOfferTimelineStatus[\"OFFER_RETURN_REJECTED\"] = \"Offer return rejected\";\n PropertyOfferTimelineStatus[\"OFFER_RETURN_PROCESSING\"] = \"Offer return processing\";\n PropertyOfferTimelineStatus[\"OFFER_RETURN_REFUNDED\"] = \"Offer return refunded\";\n})(PropertyOfferTimelineStatus || (PropertyOfferTimelineStatus = {}));\nexport var PropertyOfferType;\n(function (PropertyOfferType) {\n PropertyOfferType[\"RENT\"] = \"Rent\";\n PropertyOfferType[\"BUY\"] = \"Buy\";\n})(PropertyOfferType || (PropertyOfferType = {}));\nexport var PropertyOfferStatus;\n(function (PropertyOfferStatus) {\n PropertyOfferStatus[\"PENDING\"] = \"Pending\";\n PropertyOfferStatus[\"ACCEPTED\"] = \"Accepted\";\n PropertyOfferStatus[\"REJECTED\"] = \"Rejected\";\n PropertyOfferStatus[\"HOLDING_DEPOSIT_PAID\"] = \"Holding deposit paid\";\n PropertyOfferStatus[\"SECURITY_DEPOSIT_PAID\"] = \"Security deposit paid\";\n PropertyOfferStatus[\"CANCELLED\"] = \"Cancelled\";\n PropertyOfferStatus[\"TENANCY_FINALIZED\"] = \"Finalized\";\n})(PropertyOfferStatus || (PropertyOfferStatus = {}));\nexport var EmploymentStatus;\n(function (EmploymentStatus) {\n EmploymentStatus[\"EMPLOYED\"] = \"Employed\";\n EmploymentStatus[\"RETRIED\"] = \"Retried\";\n EmploymentStatus[\"SELF_EMPLOYED\"] = \"Self employed\";\n EmploymentStatus[\"STUDENT\"] = \"Student\";\n EmploymentStatus[\"UNEMPLOYED\"] = \"UnEmployed\";\n})(EmploymentStatus || (EmploymentStatus = {}));\nexport var ResidencyStatus;\n(function (ResidencyStatus) {\n ResidencyStatus[\"UK_CITIZEN\"] = \"I don't need a visa\";\n ResidencyStatus[\"VISA_HOLDER\"] = \"I have a visa\";\n ResidencyStatus[\"WAITING_FOR_VISA\"] = \"I am waiting for my visa\";\n ResidencyStatus[\"NOT_YET_APPLIED_FOR_VISA\"] = \"I have not yet applied for a visa\";\n})(ResidencyStatus || (ResidencyStatus = {}));\nexport var PropertyApplicantType;\n(function (PropertyApplicantType) {\n PropertyApplicantType[\"INDIVIDUAL\"] = \"Individual\";\n PropertyApplicantType[\"CORPORATE\"] = \"Corporate\";\n PropertyApplicantType[\"STUDENT\"] = \"Student\";\n PropertyApplicantType[\"SUBLETTING_COMPANY\"] = \"Subletting Company\";\n})(PropertyApplicantType || (PropertyApplicantType = {}));\nexport var AdverseCreditStatus;\n(function (AdverseCreditStatus) {\n AdverseCreditStatus[\"NONE\"] = \"None\";\n AdverseCreditStatus[\"ACTIVE_CCJ\"] = \"Active CCJ\";\n AdverseCreditStatus[\"SATISFIED_CCJ\"] = \"Satisfied CCJ\";\n AdverseCreditStatus[\"DEBT_MANAGEMENT_PLAN\"] = \"Debt managment plan\";\n AdverseCreditStatus[\"LOW_CREDIT_SCORE\"] = \"Low credit score\";\n AdverseCreditStatus[\"OTHER\"] = \"Other\";\n})(AdverseCreditStatus || (AdverseCreditStatus = {}));\nexport const ViewingTime = [\n '00:00',\n '00:15',\n '00:30',\n '00:45',\n '01:00',\n '01:15',\n '01:30',\n '01:45',\n '02:00',\n '02:15',\n '02:30',\n '02:45',\n '03:00',\n '03:15',\n '03:30',\n '03:45',\n '04:00',\n '04:15',\n '04:30',\n '04:45',\n '05:00',\n '05:15',\n '05:30',\n '05:45',\n '06:00',\n '06:15',\n '06:30',\n '06:45',\n '07:00',\n '07:15',\n '07:30',\n '07:45',\n '08:00',\n '08:15',\n '08:30',\n '08:45',\n '09:00',\n '09:15',\n '09:30',\n '09:45',\n '10:00',\n '10:15',\n '10:30',\n '10:45',\n '11:00',\n '11:15',\n '11:30',\n '11:45',\n '12:00',\n '12:15',\n '12:30',\n '12:45',\n '13:00',\n '13:15',\n '13:30',\n '13:45',\n '14:00',\n '14:15',\n '14:30',\n '14:45',\n '15:00',\n '15:15',\n '15:30',\n '15:45',\n '16:00',\n '16:15',\n '16:30',\n '16:45',\n '17:00',\n '17:15',\n '17:30',\n '17:45',\n '18:00',\n '18:15',\n '18:30',\n '18:45',\n '19:00',\n '19:15',\n '19:30',\n '19:45',\n '20:00',\n '20:15',\n '20:30',\n '20:45',\n '21:00',\n '21:15',\n '21:30',\n '21:45',\n '22:00',\n '22:15',\n '22:30',\n '22:45',\n '23:00',\n '23:15',\n '23:30',\n '23:45',\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvaW50ZXJmYWNlcy9wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQ0EsTUFBTSxDQUFOLElBQVksYUFZWDtBQVpELFdBQVksYUFBYTtJQUN2QixnREFBK0IsQ0FBQTtJQUMvQixrQ0FBaUIsQ0FBQTtJQUNqQix3Q0FBdUIsQ0FBQTtJQUN2QixvQ0FBbUIsQ0FBQTtJQUNuQiwwQ0FBeUIsQ0FBQTtJQUN6Qix3Q0FBdUIsQ0FBQTtJQUN2Qiw0Q0FBMkIsQ0FBQTtJQUMzQixrQ0FBaUIsQ0FBQTtJQUNqQixzQ0FBcUIsQ0FBQTtJQUNyQixnQ0FBZSxDQUFBO0lBQ2Ysa0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQVpXLGFBQWEsS0FBYixhQUFhLFFBWXhCO0FBQ0QsTUFBTSxDQUFOLElBQVksTUFJWDtBQUpELFdBQVksTUFBTTtJQUNoQix5QkFBZSxDQUFBO0lBQ2YsK0JBQXFCLENBQUE7SUFDckIseUNBQStCLENBQUE7QUFDakMsQ0FBQyxFQUpXLE1BQU0sS0FBTixNQUFNLFFBSWpCO0FBZ0JELE1BQU0sQ0FBTixJQUFZLGlCQUlYO0FBSkQsV0FBWSxpQkFBaUI7SUFDM0IsdURBQWMsQ0FBQTtJQUNkLHlEQUFnQixDQUFBO0lBQ2hCLGtEQUFjLENBQUE7QUFDaEIsQ0FBQyxFQUpXLGlCQUFpQixLQUFqQixpQkFBaUIsUUFJNUI7QUF5REQsTUFBTSxDQUFOLElBQVkscUJBS1g7QUFMRCxXQUFZLHFCQUFxQjtJQUMvQiw0Q0FBbUIsQ0FBQTtJQUNuQixzQ0FBYSxDQUFBO0lBQ2IsK0NBQXNCLENBQUE7SUFDdEIsb0NBQVcsQ0FBQTtBQUNiLENBQUMsRUFMVyxxQkFBcUIsS0FBckIscUJBQXFCLFFBS2hDO0FBQ0QsTUFBTSxDQUFOLElBQVksY0FVWDtBQVZELFdBQVksY0FBYztJQUN4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TztJQUVQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBRVAsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFFUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUVQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBRVAsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFFUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUVQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBRVAsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFFUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztDQUNSLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGZWF0dXJlLCBGZWF0dXJlVmFsdWUgfSBmcm9tICcuL2ZlYXR1cmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb3BlcnR5IHtcbiAgaWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgYmVkcm9vbXM6IG51bWJlcjtcbiAgYmF0aHJvb21zOiBudW1iZXI7XG4gIHJlY2VwdGlvbnM6IG51bWJlcjtcbiAgZmxvb3I6IG51bWJlcjtcbiAgc2l6ZTogbnVtYmVyO1xuICBhdmFpbGFibGVEYXRlOiBEYXRlO1xuICBtZWRpYTogUHJvcGVydHlNZWRpYVtdO1xuICBzdGF0dXM6IFByb3BlcnR5U3RhdHVzIHwgc3RyaW5nO1xuICB0eXBlOiBQcm9wZXJ0eVR5cGUgfCBzdHJpbmc7XG4gIHNjb3BlOiBQcm9wZXJ0eVNjb3BlIHwgc3RyaW5nO1xuICB0YWdzOiBQcm9wZXJ0eVRhZ1tdO1xuICBzZWN0aW9uczogUHJvcGVydHlTZWN0aW9uW107XG4gIG9wdGlvbnM6IFByb3BlcnR5T3B0aW9uW107XG4gIGZlYXR1cmVzOiBQcm9wZXJ0eUZlYXR1cmVPcHRpb25bXTtcbiAgbG9jYXRpb246IFByb3BlcnR5TG9jYXRpb247XG4gIHZhcmlhbnRzPzogUHJvcGVydHlWYXJpYW50W107XG4gIHByaWNlOiBudW1iZXI7XG4gIGRlcG9zaXQ6IG51bWJlcjtcbiAgcHJpY2VUeXBlOiBQcm9wZXJ0eVByaWNlVHlwZTtcbiAgYWdlbnRJZDogc3RyaW5nO1xuICBsYW5kbG9yZElkOiBzdHJpbmc7XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xuICB1cGRhdGVkQXQ6IHN0cmluZztcbiAgdmlkZW9zOiBQcm9wZXJ0eVZpZGVvW107XG4gIGhpZ2hsaWdodHM6IHN0cmluZ1tdO1xuICBlcGM6IFByb3BlcnR5RXBjTW9kZWw7XG4gIHJlbnRGcmVxdWVuY3k6IFJlbnRGcmVxdWVuY3k7XG4gIG1hcmtldDogTWFya2V0XG59XG5leHBvcnQgZW51bSBSZW50RnJlcXVlbmN5IHtcbiAgTk9UX1NQRUNJRklFRCA9ICdOb3Qgc3BlY2lmaWVkJyxcbiAgV0VFS0xZID0gJ1dlZWtseScsXG4gIEJJX1dFRUtMWSA9ICdCaSB3ZWVrbHknLCAvLyBldmVyeSAyIHdlZWtzXG4gIE1PTlRITFkgPSAnTW9udGhseScsXG4gIEJJX01PTlRITFkgPSAnQmkgbW9udGhseScsIC8vIGV2ZXJ5IDIgbW9udGhzXG4gIFFVQVJURVJMWSA9ICdRdWFydGVybHknLC8vIGV2ZXJ5IDMgbW9udGhzXG4gIFNFTUlfQU5OVUFMID0gJ1NlbWkgYW5udWFsJywgLy8gZXZlcnkgNiBtb250aHNcbiAgQU5OVUFMID0gJ0FubnVhbCcsLy8geWVhcmx5XG4gIE9ORV9USU1FID0gJ09uZSB0aW1lJywvLyBzaW5nbGUgcGF5bWVudFxuICBEQUlMWSA9ICdEYWlseScsLy8gc2hvcnQtdGVybSByZW50YWxzXG4gIENVU1RPTSA9ICdDdXN0b20nLC8vIGZsZXhpYmxlL25lZ290aWF0ZWQgdGVybXNcbn1cbmV4cG9ydCBlbnVtIE1hcmtldCB7XG4gIFNBTEVTID0gJ1NhbGVzJyxcbiAgTEVUVElOR1MgPSAnTGV0dGluZ3MnLFxuICBOT1RfU1BFQ0lGSUVEID0gJ05vdCBzcGVjaWZpZWQnXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcGVydHlFcGNNb2RlbCB7XG4gIGN1cnJlbnRSYXRpbmc6IHN0cmluZztcbiAgcG90ZW50aWFsUmF0aW5nOiBzdHJpbmc7XG4gIGN1cnJlbnRTY29yZTogbnVtYmVyO1xuICBwb3RlbnRpYWxTY29yZTogbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBQcm9wZXJ0eUhpZ2hsaWdodCB7XG4gIHRleHQ6IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcGVydHlGZWF0dXJlT3B0aW9uIHtcbiAgcHJvcGVydHk6IFByb3BlcnR5O1xuICBmZWF0dXJlOiBGZWF0dXJlO1xuICB2YWx1ZTogRmVhdHVyZVZhbHVlO1xufVxuZXhwb3J0IGVudW0gUHJvcGVydHlQcmljZVR5cGUge1xuICBGSVhFRCA9ICflm7rlrprku7fmoLwnLFxuICBQQVJUSUFMID0gJ+aUr+S7mOWumumHkScsXG4gIFZBUklFRCA9ICflpJrlj5jnmoQnLFxufVxuZXhwb3J0IGludGVyZmFjZSBQcm9wZXJ0eVNlY3Rpb24ge1xuICBpZDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBjb250ZW50OiBzdHJpbmc7XG4gIG1lZGlhOiBQcm9wZXJ0eU1lZGlhW107XG4gIGlzVXBsb2FkaW5nPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9wZXJ0eVZhcmlhbnQge1xuICBpZDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBwcmljZTogbnVtYmVyO1xuICBza3U6IHN0cmluZztcbiAgb3B0aW9uczogUHJvcGVydHlWYXJpYW50T3B0aW9uW107XG4gIG1lZGlhOiBQcm9wZXJ0eVZhcmlhbnRNZWRpYVtdO1xuICBpc1VwbG9hZGluZz86IGJvb2xlYW47XG4gIHN0YXR1czogUHJvcGVydHlJbnZlbnRvcnlTdGF0dXMgfCBzdHJpbmc7XG4gIGludmVudG9yeUl0ZW1JZDogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBQcm9wZXJ0eVZhcmlhbnRNZWRpYSB7XG4gIHVybDogc3RyaW5nO1xuICBhbHQ6IHN0cmluZztcbiAgdXBsb2FkaW5nPzogYm9vbGVhbjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcGVydHlWYXJpYW50T3B0aW9uIHtcbiAgb3B0aW9uOiBQcm9wZXJ0eU9wdGlvbjtcbiAgdmFsdWU6IFByb3BlcnR5T3B0aW9uVmFsdWU7XG59XG5leHBvcnQgaW50ZXJmYWNlIFByb3BlcnR5VGFnIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBQcm9wZXJ0eUxvY2F0aW9uIHtcbiAgaWQ/OiBzdHJpbmc7XG4gIGZsYXROdW1iZXI6IHN0cmluZztcbiAgc3RyZWV0TnVtYmVyOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgc3RyZWV0OiBzdHJpbmc7XG4gIHRvd246IHN0cmluZztcbiAgcG9zdENvZGU6IHN0cmluZztcbiAgY291bnRyeTogc3RyaW5nO1xuICBsb25naXR1ZGU6IHN0cmluZztcbiAgbGF0aXR1ZGU6IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcGVydHlWaWRlbyB7XG4gIGlkPzogc3RyaW5nO1xuICB0aXRsZT86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHVybDogc3RyaW5nO1xuICBwcm92aWRlcj86IFByb3BlcnR5VmlkZW9Qcm92aWRlcjtcbiAgdXBsb2FkaW5nPzogYm9vbGVhblxuICBwcm9ncmVzczogbnVtYmVyIHwgMDtcbiAgZHVyYXRpb246IG51bWJlciB8IDA7XG4gIHRodW1ibmFpbD86IHN0cmluZztcbn1cbmV4cG9ydCBlbnVtIFByb3BlcnR5VmlkZW9Qcm92aWRlciB7XG4gIFlPVVRVQkUgPSAnWU9VVFVCRScsXG4gIFMzID0gJ0FXUyBTMycsXG4gIExPQ0FMID0gJ0xvY2FsIHNlcnZlcicsXG4gIENPUyA9ICdDT1MnXG59XG5leHBvcnQgZW51bSBQcm9wZXJ0eVN0YXR1cyB7XG4gIERSQUZUID0gPGFueT4nRHJhZnQnLFxuICBQRU5ESU5HID0gPGFueT4nUGVuZGluZycsXG4gIEFQUFJPVkVEID0gPGFueT4nQXBwcm92ZWQnLFxuICBSRUpFQ1RFRCA9IDxhbnk+J1JlamVjdGVkJyxcbiAgQVZBSUxBQkxFID0gPGFueT4nQXZhaWxhYmxlJyxcbiAgU09MRCA9IDxhbnk+J1NvbGQnLFxuICBSRU5URUQgPSA8YW55PidSZW50ZWQnLFxuICBERUxFVEVEID0gPGFueT4nRGVsZXRlZCcsXG4gIEFSQ0hJVkVEID0gPGFueT4nQXJjaGl2ZWQnLFxufVxuZXhwb3J0IGVudW0gUHJvcGVydHlUeXBlIHtcbiAgQVBBUlRNRU5UID0gJ0FwYXJ0bWVudCcsXG4gIENPTkRPID0gJ0NvbmRvJyxcbiAgSE9VU0UgPSAnSG91cnNlJyxcbiAgVE9XTkhPVVNFID0gJ1Rvd25ob3Vyc2UnLFxuICBMQU5EID0gJ0xhbmQnLFxuICBDT01NRVJDSUFMID0gJ0NvbW1lcmNpYWwnLFxuICBJTkRVU1RSSUFMID0gJ0luZHVzdHJpYWwnLFxuICBGTEFUID0gJ0ZsYXQnLFxuICBPVEhFUiA9ICdPdGhlcicsXG59XG5leHBvcnQgZW51bSBQcm9wZXJ0eUludmVudG9yeVN0YXR1cyB7XG4gIElOX1NUT0NLID0gJ+aciei0pycsXG4gIExPV19TVE9DSyA9ICflupPlrZjkuI3otrMnLFxuICBPVVRfT0ZfU1RPQ0sgPSAn5ZSu572EJyxcbiAgRElTQ09OVElOVUVEID0gJ+W3suWBnOS6pycsXG59XG5leHBvcnQgZW51bSBQcm9wZXJ0eVNjb3BlIHtcbiAgV0VCID0gPGFueT4n572R56uZJyxcbiAgR0xPQkFMID0gPGFueT4n5YWo5Z+fJyxcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcGVydHlNZWRpYSB7XG4gIGlkOiBzdHJpbmc7XG4gIHVybDogc3RyaW5nO1xuICBhbHQ6IHN0cmluZztcbiAgd2lkdGg6IG51bWJlcjtcbiAgaGVpZ2h0OiBudW1iZXI7XG4gIHV1aWQ6IHN0cmluZztcbiAgc2VsZWN0ZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcGVydHlUYWcge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcGVydHlPcHRpb24ge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHZhbHVlczogUHJvcGVydHlPcHRpb25WYWx1ZVtdO1xufVxuZXhwb3J0IGludGVyZmFjZSBQcm9wZXJ0eU9wdGlvblZhbHVlIHtcbiAgaWQ/OiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcGVydHlEZXBvc2l0UmVzdWx0IHtcbiAgaG9sZGluZ0RlcG9zaXQ6IG51bWJlcjtcbiAgc2VjdXJpdHlEZXBvc2l0OiBudW1iZXI7XG4gIGFnZW50Q29tbWlzc2lvbjogbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBQcm9wZXJ0eVZpZXdpbmdSZXF1ZXN0IHtcbiAgZmlyc3ROYW1lPzogc3RyaW5nO1xuICBsYXN0TmFtZT86IHN0cmluZztcbiAgZW1haWw/OiBzdHJpbmc7XG4gIHBob25lPzogc3RyaW5nO1xuICB2aWV3ZXJDYXRlZ29yeT86IFByb3BlcnR5Vmlld2VyQ2F0ZWdvcnk7XG4gIHRlbmFudENhdGVnb3J5PzogUHJvcGVydHlBcHBsaWNhbnRUeXBlO1xuICBzdGFydERhdGU/OiBzdHJpbmc7XG4gIG51bWJlck9mVGVuYW50cz86IG51bWJlcjtcbiAgdGVuYW5jeUR1cmF0aW9uPzogbnVtYmVyO1xuICBhcHBsaWNhbnRUeXBlPzogUHJvcGVydHlBcHBsaWNhbnRUeXBlO1xuICBpbmNvbWU/OiBudW1iZXI7XG4gIGVtcGxveW1lbnRTdGF0dXM/OiBFbXBsb3ltZW50U3RhdHVzO1xuICBhZHZlcnNlQ3JlZGl0U3RhdHVzPzogQWR2ZXJzZUNyZWRpdFN0YXR1cztcbiAgcHJvcG9zZWRTbG90czogVmlld2luZ1Byb3Bvc2VkU2xvdFtdO1xuICB0ZW5hbnRJZD86IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVmlld2luZ1Byb3Bvc2VkU2xvdCB7XG4gIGRhdGU6IHN0cmluZztcbiAgdGltZTogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBQcm9wZXJ0eVZpZXdpbmcge1xuICBpZDogc3RyaW5nO1xuICBmaXJzdE5hbWU6IHN0cmluZztcbiAgbGFzdE5hbWU6IHN0cmluZztcbiAgZW1haWw6IHN0cmluZztcbiAgcGhvbmU6IHN0cmluZztcbiAgdXNlcklkOiBzdHJpbmc7XG4gIGFnZW50SWQ6IHN0cmluZztcbiAgcHJvcGVydHlJZDogc3RyaW5nO1xuICB2aWV3aW5nRGF0ZTogc3RyaW5nO1xuICB2aWV3aW5nVGltZTogc3RyaW5nO1xuICBzdGF0dXM6IFByb3BlcnR5Vmlld2luZ1N0YXR1cztcbiAgdmlld2VyQ2F0ZWdvcnk6IFByb3BlcnR5Vmlld2VyQ2F0ZWdvcnk7XG4gIHRlbmFudENhdGVnb3J5OiBQcm9wZXJ0eUFwcGxpY2FudFR5cGU7XG4gIHByb3BlcnR5OiBQcm9wZXJ0eTtcbiAgbnVtYmVyT2ZUZW5hbnRzPzogbnVtYmVyO1xuICB0ZW5hbmN5RHVyYXRpb24/OiBudW1iZXI7XG4gIGFwcGxpY2FudFR5cGU/OiBQcm9wZXJ0eUFwcGxpY2FudFR5cGU7XG4gIGluY29tZT86IG51bWJlcjtcbiAgZW1wbG95bWVudFN0YXR1czogRW1wbG95bWVudFN0YXR1cztcbiAgYWR2ZXJzZUNyZWRpdFN0YXR1cz86IEFkdmVyc2VDcmVkaXRTdGF0dXM7XG4gIHByb3Bvc2VkU2xvdHM6IFZpZXdpbmdQcm9wb3NlZFNsb3RbXTtcblxuICBjcmVhdGVkQXQ6IHN0cmluZztcbn1cbmV4cG9ydCBlbnVtIFByb3BlcnR5Vmlld2luZ1N0YXR1cyB7XG4gIFBFTkRJTkcgPSAnUGVuZGluZycsXG4gIEFQUFJPVkVEID0gJ0FwcHJvdmVkJyxcbiAgUkVKRUNURUQgPSAnUmVqZWN0ZWQnLFxuICBDQU5DRUxMRUQgPSAnQ2FuY2VsbGVkJyxcbiAgQ09NUExFVEVEID0gJ0NvbXBsZXRlZCcsXG59XG5leHBvcnQgZW51bSBQcm9wZXJ0eVZpZXdlckNhdGVnb3J5IHtcbiAgVEVOQU5UID0gJ1RlbmFudCcsXG4gIEFHRU5UID0gJ0FnZW50Jyxcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcGVydHlPZmZlclJlcXVlc3Qge1xuICBmaXJzdE5hbWU/OiBzdHJpbmc7XG4gIGxhc3ROYW1lPzogc3RyaW5nO1xuICBlbWFpbD86IHN0cmluZztcbiAgcGhvbmU/OiBzdHJpbmc7XG4gIGFwcGxpY2FudFR5cGU/OiBQcm9wZXJ0eUFwcGxpY2FudFR5cGUgfCBzdHJpbmc7XG4gIHJlc2lkZW5jeVN0YXR1cz86IFJlc2lkZW5jeVN0YXR1cyB8IHN0cmluZztcbiAgZW1wbG95bWVudFN0YXR1cz86IEVtcGxveW1lbnRTdGF0dXMgfCBzdHJpbmc7XG4gIGFkdmVyc2VDcmVkaXRTdGF0dXM/OiBBZHZlcnNlQ3JlZGl0U3RhdHVzIHwgc3RyaW5nO1xuICBzdGFydERhdGU6IHN0cmluZztcbiAgbm90ZXM6IHN0cmluZztcbiAgYW1vdW50OiBudW1iZXI7XG4gIG51bWJlck9mVGVuYW50cz86IG51bWJlcjtcbiAgdGVuYW5jeUR1cmF0aW9uPzogbnVtYmVyO1xuICB0ZW5hbnRJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9wZXJ0eU9mZmVyIHtcbiAgaWQ6IHN0cmluZztcbiAgZmlyc3ROYW1lOiBzdHJpbmc7XG4gIGxhc3ROYW1lOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIHBob25lOiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICBhZ2VudElkOiBzdHJpbmc7XG4gIHByb3BlcnR5SWQ6IHN0cmluZztcbiAgYW1vdW50OiBudW1iZXI7XG4gIHN0YXJ0RGF0ZTogc3RyaW5nO1xuICB0eXBlOiBQcm9wZXJ0eU9mZmVyVHlwZTtcbiAgc3RhdHVzOiBQcm9wZXJ0eU9mZmVyU3RhdHVzO1xuICBudW1iZXJPZlRlbmFudHM6IHN0cmluZztcbiAgdGVuYW5jeUR1cmF0aW9uOiBudW1iZXI7XG4gIGFwcGxpY2FudFR5cGU6IFByb3BlcnR5QXBwbGljYW50VHlwZTtcbiAgcmVzaWRlbmN5U3RhdHVzOiBSZXNpZGVuY3lTdGF0dXM7XG4gIGVtcGxveW1lbnRTdGF0dXM6IEVtcGxveW1lbnRTdGF0dXM7XG4gIGVtcGxveWVyOiBzdHJpbmc7XG4gIGpvYlRpdGxlOiBzdHJpbmc7XG4gIGluY29tZTogbnVtYmVyO1xuICBhZHZlcnNlQ3JlZGl0U3RhdHVzOiBBZHZlcnNlQ3JlZGl0U3RhdHVzO1xuICBwcm9wZXJ0eTogUHJvcGVydHk7XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xuICBub3Rlczogc3RyaW5nO1xuICBpdGVtOiBQcm9wZXJ0eU9mZmVySXRlbTtcbn1cbmV4cG9ydCBlbnVtIFByb3BlcnR5T2ZmZXJUaW1lbGluZVN0YXR1cyB7XG4gIE9GRkVSX0NSRUFURUQgPSAnT2ZmZXIgY3JlYXRlZCcsXG4gIE9GRkVSX0FDQ0VQVEVEID0gJ09mZmVyIGFjY2VwdGVkJyxcbiAgT0ZGRVJfUkVKRUNURUQgPSAnT2ZmZXIgcmVqZWN0ZWQnLFxuICBPRkZFUl9DTE9TRUQgPSAnT2ZmZXIgY2xvc2VkJyxcbiAgT0ZGRVJfQ0FOQ0VMTEVEID0gJ09mZmVyIGNhbmNlbGxlZCcsXG4gIE9GRkVSX0hPTERJTkdfREVQT1NJVF9QQUlEID0gJ09mZmVyIGhvbGRpbmcgZGVwb3NpdCBwYWlkJyxcbiAgT0ZGRVJfU0VDVVJJVFlfREVQT1NJVF9QQUlEID0gJ09mZmVyIHNlY3VyaXR5IGRlcG9zaXQgcGFpZCcsXG4gIE9GRkVSX1JFRlVOREVEID0gJ09mZmVyIHJlZnVuZGVkJyxcbiAgT0ZGRVJfQ09NUExFVEVEID0gJ09mZmVyIGNvbXBsZXRlZCcsXG4gIE9GRkVSX1JFVFVSTl9SRVFVRVNURUQgPSAnT2ZmZXIgcmV0dXJuIHJlcXVlc3RlZCcsXG4gIE9GRkVSX1JFVFVSTl9BUFBST1ZFRCA9ICdPZmZlciByZXR1cm4gYXBwcm92ZWQnLFxuICBPRkZFUl9SRVRVUk5fUkVKRUNURUQgPSAnT2ZmZXIgcmV0dXJuIHJlamVjdGVkJyxcbiAgT0ZGRVJfUkVUVVJOX1BST0NFU1NJTkcgPSAnT2ZmZXIgcmV0dXJuIHByb2Nlc3NpbmcnLFxuICBPRkZFUl9SRVRVUk5fUkVGVU5ERUQgPSAnT2ZmZXIgcmV0dXJuIHJlZnVuZGVkJyxcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcGVydHlPZmZlckl0ZW0ge1xuICBwcm9wZXJ0eUlkOiBzdHJpbmc7XG4gIHByb3BlcnR5VGl0bGU6IHN0cmluZztcbiAgcHJvcGVydHlEZXNjcmlwdGlvbjogc3RyaW5nO1xuICBwcmljZTogbnVtYmVyO1xuICBiZWRyb29tczogbnVtYmVyO1xuICBiYXRocm9vbXM6IG51bWJlcjtcbiAgcmVjZXB0aW9uczogbnVtYmVyO1xuICBhZ2VudElkOiBzdHJpbmc7XG4gIG1lZGlhOiBQcm9wZXJ0eU9mZmVySXRlbU1lZGlhO1xufVxuZXhwb3J0IGludGVyZmFjZSBQcm9wZXJ0eU9mZmVySXRlbU1lZGlhIHtcbiAgaWQ6IHN0cmluZztcbiAgdXJsOiBzdHJpbmc7XG4gIGFsdDogc3RyaW5nO1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbiAgdXVpZDogc3RyaW5nO1xufVxuZXhwb3J0IGVudW0gUHJvcGVydHlPZmZlclR5cGUge1xuICBSRU5UID0gJ1JlbnQnLFxuICBCVVkgPSAnQnV5Jyxcbn1cbmV4cG9ydCBlbnVtIFByb3BlcnR5T2ZmZXJTdGF0dXMge1xuICBQRU5ESU5HID0gJ1BlbmRpbmcnLFxuICBBQ0NFUFRFRCA9ICdBY2NlcHRlZCcsXG4gIFJFSkVDVEVEID0gJ1JlamVjdGVkJyxcbiAgSE9MRElOR19ERVBPU0lUX1BBSUQgPSAnSG9sZGluZyBkZXBvc2l0IHBhaWQnLFxuICBTRUNVUklUWV9ERVBPU0lUX1BBSUQgPSAnU2VjdXJpdHkgZGVwb3NpdCBwYWlkJyxcbiAgQ0FOQ0VMTEVEID0gJ0NhbmNlbGxlZCcsXG4gIFRFTkFOQ1lfRklOQUxJWkVEID0gJ0ZpbmFsaXplZCcsXG59XG5leHBvcnQgZW51bSBFbXBsb3ltZW50U3RhdHVzIHtcbiAgRU1QTE9ZRUQgPSAnRW1wbG95ZWQnLFxuICBSRVRSSUVEID0gJ1JldHJpZWQnLFxuICBTRUxGX0VNUExPWUVEID0gJ1NlbGYgZW1wbG95ZWQnLFxuICBTVFVERU5UID0gJ1N0dWRlbnQnLFxuICBVTkVNUExPWUVEID0gJ1VuRW1wbG95ZWQnLFxufVxuZXhwb3J0IGVudW0gUmVzaWRlbmN5U3RhdHVzIHtcbiAgVUtfQ0lUSVpFTiA9IFwiSSBkb24ndCBuZWVkIGEgdmlzYVwiLFxuICBWSVNBX0hPTERFUiA9ICdJIGhhdmUgYSB2aXNhJyxcbiAgV0FJVElOR19GT1JfVklTQSA9ICdJIGFtIHdhaXRpbmcgZm9yIG15IHZpc2EnLFxuICBOT1RfWUVUX0FQUExJRURfRk9SX1ZJU0EgPSAnSSBoYXZlIG5vdCB5ZXQgYXBwbGllZCBmb3IgYSB2aXNhJyxcbn1cbmV4cG9ydCBlbnVtIFByb3BlcnR5QXBwbGljYW50VHlwZSB7XG4gIElORElWSURVQUwgPSAnSW5kaXZpZHVhbCcsXG4gIENPUlBPUkFURSA9ICdDb3Jwb3JhdGUnLFxuICBTVFVERU5UID0gJ1N0dWRlbnQnLFxuICBTVUJMRVRUSU5HX0NPTVBBTlkgPSAnU3VibGV0dGluZyBDb21wYW55Jyxcbn1cblxuZXhwb3J0IGVudW0gQWR2ZXJzZUNyZWRpdFN0YXR1cyB7XG4gIE5PTkUgPSAnTm9uZScsXG4gIEFDVElWRV9DQ0ogPSAnQWN0aXZlIENDSicsXG4gIFNBVElTRklFRF9DQ0ogPSAnU2F0aXNmaWVkIENDSicsXG4gIERFQlRfTUFOQUdFTUVOVF9QTEFOID0gJ0RlYnQgbWFuYWdtZW50IHBsYW4nLFxuICBMT1dfQ1JFRElUX1NDT1JFID0gJ0xvdyBjcmVkaXQgc2NvcmUnLFxuICBPVEhFUiA9ICdPdGhlcicsXG59XG5leHBvcnQgaW50ZXJmYWNlIFRlbmFudCB7XG4gIGZpcnN0TmFtZTogc3RyaW5nO1xuICBsYXN0TmFtZTogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBwaG9uZTogc3RyaW5nO1xuICBhdmF0YXI6IHN0cmluZztcbiAgaW5jb21lPzogbnVtYmVyO1xuICB0ZW5hbnRDYXRlZ29yeT86IFByb3BlcnR5QXBwbGljYW50VHlwZVxuICBlbXBsb3ltZW50U3RhdHVzPzogRW1wbG95bWVudFN0YXR1cztcbiAgYWR2ZXJzZUNyZWRpdFN0YXR1cz86IEFkdmVyc2VDcmVkaXRTdGF0dXM7XG4gIHJlc2lkZW5jeVN0YXR1cz86IFJlc2lkZW5jeVN0YXR1c1xufVxuZXhwb3J0IGNvbnN0IFZpZXdpbmdUaW1lID0gW1xuICAnMDA6MDAnLFxuICAnMDA6MTUnLFxuICAnMDA6MzAnLFxuICAnMDA6NDUnLFxuXG4gICcwMTowMCcsXG4gICcwMToxNScsXG4gICcwMTozMCcsXG4gICcwMTo0NScsXG5cbiAgJzAyOjAwJyxcbiAgJzAyOjE1JyxcbiAgJzAyOjMwJyxcbiAgJzAyOjQ1JyxcbiAgJzAzOjAwJyxcbiAgJzAzOjE1JyxcbiAgJzAzOjMwJyxcbiAgJzAzOjQ1JyxcblxuICAnMDQ6MDAnLFxuICAnMDQ6MTUnLFxuICAnMDQ6MzAnLFxuICAnMDQ6NDUnLFxuICAnMDU6MDAnLFxuICAnMDU6MTUnLFxuICAnMDU6MzAnLFxuICAnMDU6NDUnLFxuXG4gICcwNjowMCcsXG4gICcwNjoxNScsXG4gICcwNjozMCcsXG4gICcwNjo0NScsXG4gICcwNzowMCcsXG4gICcwNzoxNScsXG4gICcwNzozMCcsXG4gICcwNzo0NScsXG5cbiAgJzA4OjAwJyxcbiAgJzA4OjE1JyxcbiAgJzA4OjMwJyxcbiAgJzA4OjQ1JyxcbiAgJzA5OjAwJyxcbiAgJzA5OjE1JyxcbiAgJzA5OjMwJyxcbiAgJzA5OjQ1JyxcblxuICAnMTA6MDAnLFxuICAnMTA6MTUnLFxuICAnMTA6MzAnLFxuICAnMTA6NDUnLFxuICAnMTE6MDAnLFxuICAnMTE6MTUnLFxuICAnMTE6MzAnLFxuICAnMTE6NDUnLFxuXG4gICcxMjowMCcsXG4gICcxMjoxNScsXG4gICcxMjozMCcsXG4gICcxMjo0NScsXG4gICcxMzowMCcsXG4gICcxMzoxNScsXG4gICcxMzozMCcsXG4gICcxMzo0NScsXG5cbiAgJzE0OjAwJyxcbiAgJzE0OjE1JyxcbiAgJzE0OjMwJyxcbiAgJzE0OjQ1JyxcbiAgJzE1OjAwJyxcbiAgJzE1OjE1JyxcbiAgJzE1OjMwJyxcbiAgJzE1OjQ1JyxcblxuICAnMTY6MDAnLFxuICAnMTY6MTUnLFxuICAnMTY6MzAnLFxuICAnMTY6NDUnLFxuICAnMTc6MDAnLFxuICAnMTc6MTUnLFxuICAnMTc6MzAnLFxuICAnMTc6NDUnLFxuXG4gICcxODowMCcsXG4gICcxODoxNScsXG4gICcxODozMCcsXG4gICcxODo0NScsXG4gICcxOTowMCcsXG4gICcxOToxNScsXG4gICcxOTozMCcsXG4gICcxOTo0NScsXG5cbiAgJzIwOjAwJyxcbiAgJzIwOjE1JyxcbiAgJzIwOjMwJyxcbiAgJzIwOjQ1JyxcbiAgJzIxOjAwJyxcbiAgJzIxOjE1JyxcbiAgJzIxOjMwJyxcbiAgJzIxOjQ1JyxcblxuICAnMjI6MDAnLFxuICAnMjI6MTUnLFxuICAnMjI6MzAnLFxuICAnMjI6NDUnLFxuICAnMjM6MDAnLFxuICAnMjM6MTUnLFxuICAnMjM6MzAnLFxuICAnMjM6NDUnLFxuXTtcbiJdfQ==","import { booleanAttribute, Component, effect, ElementRef, HostBinding, inject, input, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { ThumbnailComponent, ImagePlaceholderComponent } from '@rolatech/angular-components';\nimport { PropertyStatus } from '../../interfaces';\nimport { FixedPipe } from '@rolatech/angular-common';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nexport class PropertyManageItemComponent {\n hasClass = true;\n el = inject(ElementRef);\n property = input.required(...(ngDevMode ? [{ debugName: \"property\" }] : []));\n thumbnail = input(...(ngDevMode ? [undefined, { debugName: \"thumbnail\" }] : []));\n status = PropertyStatus;\n list = input(false, ...(ngDevMode ? [{ debugName: \"list\", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));\n constructor() {\n effect(() => {\n if (this.list()) {\n this.el.nativeElement.setAttribute('list', '');\n }\n else {\n this.el.nativeElement.removeAttribute('list', '');\n }\n });\n }\n publish() { }\n archived() { }\n delete() { }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyManageItemComponent, isStandalone: true, selector: \"rolatech-property-manage-item\", inputs: { property: { classPropertyName: \"property\", publicName: \"property\", isSignal: true, isRequired: true, transformFunction: null }, thumbnail: { classPropertyName: \"thumbnail\", publicName: \"thumbnail\", isSignal: true, isRequired: false, transformFunction: null }, list: { classPropertyName: \"list\", publicName: \"list\", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { \"class.rolatech-property-manage-item\": \"this.hasClass\" } }, ngImport: i0, template: \"<div\\n class=\\\"flex p-3 bg-[--rt-raised-background] hover:bg-[--rt-raised-background] cursor-pointer rounded-md\\\"\\n [ngClass]=\\\"list() ? 'w-full flex-row' : 'flex-col h-full'\\\"\\n>\\n <div>\\n @if (property().media) {\\n <div class=\\\"object-cover aspect-video rounded-lg\\\" [ngClass]=\\\"list() ? 'w-32 mr-3' : ''\\\">\\n @defer {\\n <rolatech-thumbnail [src]=\\\"property().media ? property().media[0].url : ''\\\" size=\\\"medium\\\" mode=\\\"full\\\">\\n </rolatech-thumbnail>\\n } @placeholder {\\n <div class=\\\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\\\"></div>\\n }\\n </div>\\n } @else {\\n <div class=\\\"object-cover aspect-video rounded-lg\\\" [ngClass]=\\\"list() ? 'w-32 mr-3' : ''\\\">\\n <rolatech-image-placeholder></rolatech-image-placeholder>\\n </div>\\n }\\n </div>\\n\\n <div class=\\\"py-2\\\">\\n <div class=\\\"text-lg font-bold\\\">\\n {{ property().title }}\\n </div>\\n </div>\\n <div class=\\\"flex-1\\\"></div>\\n <div class=\\\"\\\">\\u00A3{{ property().price | fixed }}</div>\\n</div>\\n\", styles: [\"rolatech-property-manage-item{--rt-property-view-item-margin: 16px;width:calc(100% / var(--rt-property-view-items-per-row) - var(--rt-property-view-item-margin) - .01px)}rolatech-property-manage-item[list]{--rt-property-view-items-per-row: 1}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"component\", type: ImagePlaceholderComponent, selector: \"rolatech-image-placeholder\", inputs: [\"ratio\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"ngmodule\", type: MatMenuModule }, { kind: \"pipe\", type: FixedPipe, name: \"fixed\" }], encapsulation: i0.ViewEncapsulation.None, deferBlockDependencies: [() => [ThumbnailComponent]] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageItemComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-manage-item', imports: [CommonModule, ThumbnailComponent, ImagePlaceholderComponent, MatButtonModule, MatMenuModule, FixedPipe], encapsulation: ViewEncapsulation.None, template: \"<div\\n class=\\\"flex p-3 bg-[--rt-raised-background] hover:bg-[--rt-raised-background] cursor-pointer rounded-md\\\"\\n [ngClass]=\\\"list() ? 'w-full flex-row' : 'flex-col h-full'\\\"\\n>\\n <div>\\n @if (property().media) {\\n <div class=\\\"object-cover aspect-video rounded-lg\\\" [ngClass]=\\\"list() ? 'w-32 mr-3' : ''\\\">\\n @defer {\\n <rolatech-thumbnail [src]=\\\"property().media ? property().media[0].url : ''\\\" size=\\\"medium\\\" mode=\\\"full\\\">\\n </rolatech-thumbnail>\\n } @placeholder {\\n <div class=\\\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\\\"></div>\\n }\\n </div>\\n } @else {\\n <div class=\\\"object-cover aspect-video rounded-lg\\\" [ngClass]=\\\"list() ? 'w-32 mr-3' : ''\\\">\\n <rolatech-image-placeholder></rolatech-image-placeholder>\\n </div>\\n }\\n </div>\\n\\n <div class=\\\"py-2\\\">\\n <div class=\\\"text-lg font-bold\\\">\\n {{ property().title }}\\n </div>\\n </div>\\n <div class=\\\"flex-1\\\"></div>\\n <div class=\\\"\\\">\\u00A3{{ property().price | fixed }}</div>\\n</div>\\n\", styles: [\"rolatech-property-manage-item{--rt-property-view-item-margin: 16px;width:calc(100% / var(--rt-property-view-items-per-row) - var(--rt-property-view-item-margin) - .01px)}rolatech-property-manage-item[list]{--rt-property-view-items-per-row: 1}\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { hasClass: [{\n type: HostBinding,\n args: ['class.rolatech-property-manage-item']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbWFuYWdlLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktbWFuYWdlLWl0ZW0vcHJvcGVydHktbWFuYWdlLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktbWFuYWdlLWl0ZW0vcHJvcGVydHktbWFuYWdlLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdGLE9BQU8sRUFBWSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7OztBQVNyRCxNQUFNLE9BQU8sMkJBQTJCO0lBQ2MsUUFBUSxHQUFHLElBQUksQ0FBQztJQUNwRSxFQUFFLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3hCLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxtREFBWSxDQUFDO0lBQ3RDLFNBQVMsR0FBRyxLQUFLLCtEQUFFLENBQUM7SUFDcEIsTUFBTSxHQUFHLGNBQWMsQ0FBQztJQUN4QixJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssd0NBQUksU0FBUyxFQUFFLGdCQUFnQixPQUE3QixFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxHQUFDLENBQUM7SUFDckQ7UUFDRSxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNqRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNwRCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxLQUFJLENBQUM7SUFDWixRQUFRLEtBQUksQ0FBQztJQUNiLE1BQU0sS0FBSSxDQUFDO3VHQWxCQSwyQkFBMkI7MkZBQTNCLDJCQUEyQixnakJDZnhDLGtrQ0E2QkEsNlNEbkJZLFlBQVksNkhBQXNCLHlCQUF5Qix5RkFBRSxlQUFlLDhCQUFFLGFBQWEsMEJBQUUsU0FBUyw4RkFBeEYsa0JBQWtCOzsyRkFLL0IsMkJBQTJCO2tCQVB2QyxTQUFTOytCQUNFLCtCQUErQixXQUNoQyxDQUFDLFlBQVksRUFBRSxrQkFBa0IsRUFBRSx5QkFBeUIsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFNBQVMsQ0FBQyxpQkFHbEcsaUJBQWlCLENBQUMsSUFBSTt3REFHZSxRQUFRO3NCQUEzRCxXQUFXO3VCQUFDLHFDQUFxQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJvb2xlYW5BdHRyaWJ1dGUsIENvbXBvbmVudCwgZWZmZWN0LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgaW5qZWN0LCBpbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgVGh1bWJuYWlsQ29tcG9uZW50LCBJbWFnZVBsYWNlaG9sZGVyQ29tcG9uZW50IH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBQcm9wZXJ0eSwgUHJvcGVydHlTdGF0dXMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEZpeGVkUGlwZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb3BlcnR5LW1hbmFnZS1pdGVtJyxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVGh1bWJuYWlsQ29tcG9uZW50LCBJbWFnZVBsYWNlaG9sZGVyQ29tcG9uZW50LCBNYXRCdXR0b25Nb2R1bGUsIE1hdE1lbnVNb2R1bGUsIEZpeGVkUGlwZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1tYW5hZ2UtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9wZXJ0eS1tYW5hZ2UtaXRlbS5jb21wb25lbnQuc2NzcycsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5TWFuYWdlSXRlbUNvbXBvbmVudCB7XG4gIEBIb3N0QmluZGluZygnY2xhc3Mucm9sYXRlY2gtcHJvcGVydHktbWFuYWdlLWl0ZW0nKSBoYXNDbGFzcyA9IHRydWU7XG4gIGVsID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcm9wZXJ0eSA9IGlucHV0LnJlcXVpcmVkPFByb3BlcnR5PigpO1xuICB0aHVtYm5haWwgPSBpbnB1dCgpO1xuICBzdGF0dXMgPSBQcm9wZXJ0eVN0YXR1cztcbiAgbGlzdCA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmxpc3QoKSkge1xuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdsaXN0JywgJycpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnbGlzdCcsICcnKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICBwdWJsaXNoKCkge31cbiAgYXJjaGl2ZWQoKSB7fVxuICBkZWxldGUoKSB7fVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImZsZXggcC0zIGJnLVstLXJ0LXJhaXNlZC1iYWNrZ3JvdW5kXSBob3ZlcjpiZy1bLS1ydC1yYWlzZWQtYmFja2dyb3VuZF0gY3Vyc29yLXBvaW50ZXIgcm91bmRlZC1tZFwiXG4gIFtuZ0NsYXNzXT1cImxpc3QoKSA/ICd3LWZ1bGwgZmxleC1yb3cnIDogJ2ZsZXgtY29sIGgtZnVsbCdcIlxuPlxuICA8ZGl2PlxuICAgIEBpZiAocHJvcGVydHkoKS5tZWRpYSkge1xuICAgICAgPGRpdiBjbGFzcz1cIm9iamVjdC1jb3ZlciBhc3BlY3QtdmlkZW8gcm91bmRlZC1sZ1wiIFtuZ0NsYXNzXT1cImxpc3QoKSA/ICd3LTMyIG1yLTMnIDogJydcIj5cbiAgICAgICAgQGRlZmVyIHtcbiAgICAgICAgICA8cm9sYXRlY2gtdGh1bWJuYWlsIFtzcmNdPVwicHJvcGVydHkoKS5tZWRpYSA/IHByb3BlcnR5KCkubWVkaWFbMF0udXJsIDogJydcIiBzaXplPVwibWVkaXVtXCIgbW9kZT1cImZ1bGxcIj5cbiAgICAgICAgICA8L3JvbGF0ZWNoLXRodW1ibmFpbD5cbiAgICAgICAgfSBAcGxhY2Vob2xkZXIge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJiZy1bLS1ydC1yYWlzZWQtYmFja2dyb3VuZF0gaC1mdWxsIHctZnVsbCBvYmplY3QtY292ZXIgYXNwZWN0LXZpZGVvIHJvdW5kZWQtbGdcIj48L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8ZGl2IGNsYXNzPVwib2JqZWN0LWNvdmVyIGFzcGVjdC12aWRlbyByb3VuZGVkLWxnXCIgW25nQ2xhc3NdPVwibGlzdCgpID8gJ3ctMzIgbXItMycgOiAnJ1wiPlxuICAgICAgICA8cm9sYXRlY2gtaW1hZ2UtcGxhY2Vob2xkZXI+PC9yb2xhdGVjaC1pbWFnZS1wbGFjZWhvbGRlcj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cInB5LTJcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZyBmb250LWJvbGRcIj5cbiAgICAgIHt7IHByb3BlcnR5KCkudGl0bGUgfX1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmbGV4LTFcIj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIlwiPsKje3sgcHJvcGVydHkoKS5wcmljZSB8IGZpeGVkIH19PC9kaXY+XG48L2Rpdj5cbiJdfQ==","import { Component, HostBinding, inject, viewChild, ViewEncapsulation } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatPaginator, MatPaginatorModule } from '@angular/material/paginator';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { MatTableModule } from '@angular/material/table';\nimport { RouterLink } from '@angular/router';\nimport { ToolbarComponent, SpinnerComponent } from '@rolatech/angular-components';\nimport { PropertyService } from '@rolatech/angular-services';\nimport { PropertyManageItemComponent } from '../../../components/property-manage-item/property-manage-item.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatDialog } from '@angular/material/dialog';\nimport * as i0 from \"@angular/core\";\nexport class PropertyReviewIndexComponent {\n hasClass = true;\n paginator = viewChild(MatPaginator, ...(ngDevMode ? [{ debugName: \"paginator\" }] : []));\n dialog = inject(MatDialog);\n snackBar = inject(MatSnackBar);\n propertyService = inject(PropertyService);\n isLoading = false;\n isSearch = false;\n properties = [];\n ngOnInit() {\n this.findProperties();\n }\n findProperties() {\n this.propertyService.find({}).subscribe({\n next: (res) => {\n this.properties = res.data;\n },\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyReviewIndexComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyReviewIndexComponent, isStandalone: true, selector: \"rolatech-property-review-index\", host: { properties: { \"class.rolatech-property-manage-index\": \"this.hasClass\" } }, viewQueries: [{ propertyName: \"paginator\", first: true, predicate: MatPaginator, descendants: true, isSignal: true }], ngImport: i0, template: \"<rolatech-toolbar title=\\\"Properties\\\"> </rolatech-toolbar>\\n@if (isLoading) {\\n <div class=\\\"flex justify-center items-center\\\">\\n <rolatech-spinner></rolatech-spinner>\\n </div>\\n} @else {\\n <div class=\\\"bg-[--rt-rasised-background] h-full\\\">\\n <div class=\\\"flex flex-wrap p-3 gap-3\\\">\\n @for (item of properties; track $index) {\\n <rolatech-property-manage-item\\n list\\n [property]=\\\"item\\\"\\n routerLink=\\\"./properties/{{ item.id }}\\\"\\n ></rolatech-property-manage-item>\\n }\\n </div>\\n </div>\\n\\n <!-- <mat-paginator\\n #paginator\\n [length]=\\\"length\\\"\\n [pageSize]=\\\"pageSize\\\"\\n [pageSizeOptions]=\\\"pageSizeOptions\\\"\\n (page)=\\\"pageEvent = find($event)\\\"\\n hidePageSize\\n showFirstLastButtons\\n >\\n </mat-paginator> -->\\n}\\n\", styles: [\"mat-form-field{width:100%}table{width:100%}td.mat-column-actions{text-align:right;max-width:64px;font-size:.8rem;padding:0 8px}.mat-mdc-header-cell.actions{text-align:right;max-width:64px;width:64px}.mat-mdc-cell:nth-last-child(2),.mat-mdc-header-cell:nth-last-child(2),.mat-mdc-footer-cell:nth-last-child(2){text-align:right;max-width:180px;width:180px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{text-align:right;padding-right:8px!important}rolatech-property-manage-index{--rt-property-view-items-per-row: 1}@media (min-width: 600px){rolatech-property-manage-index{--rt-property-view-items-per-row: 2}}@media (min-width: 768px){rolatech-property-manage-index{--rt-property-view-items-per-row: 3}}@media (min-width: 1280px){rolatech-property-manage-index{--rt-property-view-items-per-row: 3}}@media (min-width: 1536px){rolatech-property-manage-index{--rt-property-view-items-per-row: 4}}@media (min-width: 1920px){rolatech-property-manage-index{--rt-property-view-items-per-row: 5}}\\n\"], dependencies: [{ kind: \"ngmodule\", type: MatButtonModule }, { kind: \"directive\", type: RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"ngmodule\", type: MatTableModule }, { kind: \"ngmodule\", type: MatMenuModule }, { kind: \"ngmodule\", type: MatPaginatorModule }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"component\", type: SpinnerComponent, selector: \"rolatech-spinner\", inputs: [\"title\"] }, { kind: \"component\", type: PropertyManageItemComponent, selector: \"rolatech-property-manage-item\", inputs: [\"property\", \"thumbnail\", \"list\"] }], encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyReviewIndexComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-review-index', imports: [\n MatButtonModule,\n RouterLink,\n MatIconModule,\n MatTableModule,\n MatMenuModule,\n MatPaginatorModule,\n ToolbarComponent,\n SpinnerComponent,\n PropertyManageItemComponent,\n ], encapsulation: ViewEncapsulation.None, template: \"<rolatech-toolbar title=\\\"Properties\\\"> </rolatech-toolbar>\\n@if (isLoading) {\\n <div class=\\\"flex justify-center items-center\\\">\\n <rolatech-spinner></rolatech-spinner>\\n </div>\\n} @else {\\n <div class=\\\"bg-[--rt-rasised-background] h-full\\\">\\n <div class=\\\"flex flex-wrap p-3 gap-3\\\">\\n @for (item of properties; track $index) {\\n <rolatech-property-manage-item\\n list\\n [property]=\\\"item\\\"\\n routerLink=\\\"./properties/{{ item.id }}\\\"\\n ></rolatech-property-manage-item>\\n }\\n </div>\\n </div>\\n\\n <!-- <mat-paginator\\n #paginator\\n [length]=\\\"length\\\"\\n [pageSize]=\\\"pageSize\\\"\\n [pageSizeOptions]=\\\"pageSizeOptions\\\"\\n (page)=\\\"pageEvent = find($event)\\\"\\n hidePageSize\\n showFirstLastButtons\\n >\\n </mat-paginator> -->\\n}\\n\", styles: [\"mat-form-field{width:100%}table{width:100%}td.mat-column-actions{text-align:right;max-width:64px;font-size:.8rem;padding:0 8px}.mat-mdc-header-cell.actions{text-align:right;max-width:64px;width:64px}.mat-mdc-cell:nth-last-child(2),.mat-mdc-header-cell:nth-last-child(2),.mat-mdc-footer-cell:nth-last-child(2){text-align:right;max-width:180px;width:180px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{text-align:right;padding-right:8px!important}rolatech-property-manage-index{--rt-property-view-items-per-row: 1}@media (min-width: 600px){rolatech-property-manage-index{--rt-property-view-items-per-row: 2}}@media (min-width: 768px){rolatech-property-manage-index{--rt-property-view-items-per-row: 3}}@media (min-width: 1280px){rolatech-property-manage-index{--rt-property-view-items-per-row: 3}}@media (min-width: 1536px){rolatech-property-manage-index{--rt-property-view-items-per-row: 4}}@media (min-width: 1920px){rolatech-property-manage-index{--rt-property-view-items-per-row: 5}}\\n\"] }]\n }], propDecorators: { hasClass: [{\n type: HostBinding,\n args: ['class.rolatech-property-manage-index']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktcmV2aWV3LWluZGV4LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS1yZXZpZXcvcHJvcGVydHktcmV2aWV3LWluZGV4L3Byb3BlcnR5LXJldmlldy1pbmRleC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktcmV2aWV3L3Byb3BlcnR5LXJldmlldy1pbmRleC9wcm9wZXJ0eS1yZXZpZXctaW5kZXguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFVLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seUVBQXlFLENBQUM7QUFFdEgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFtQnJELE1BQU0sT0FBTyw0QkFBNEI7SUFDYyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ3JFLFNBQVMsR0FBRyxTQUFTLENBQUMsWUFBWSxxREFBQyxDQUFDO0lBQ3BDLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0IsUUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQixlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDbEIsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixVQUFVLEdBQWUsRUFBRSxDQUFDO0lBRTVCLFFBQVE7UUFDTixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUNELGNBQWM7UUFDWixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDdEMsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztZQUM3QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0FuQlUsNEJBQTRCOzJGQUE1Qiw0QkFBNEIsd05BRWpCLFlBQVksZ0VDakNwQyxpekJBNkJBLHNqQ0RaSSxlQUFlLCtCQUNmLFVBQVUsbU9BQ1YsYUFBYSw4QkFDYixjQUFjLDhCQUNkLGFBQWEsOEJBQ2Isa0JBQWtCLCtCQUNsQixnQkFBZ0IsZ0lBQ2hCLGdCQUFnQixnRkFDaEIsMkJBQTJCOzsyRkFNbEIsNEJBQTRCO2tCQWpCeEMsU0FBUzsrQkFDRSxnQ0FBZ0MsV0FDakM7d0JBQ1AsZUFBZTt3QkFDZixVQUFVO3dCQUNWLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLDJCQUEyQjtxQkFDNUIsaUJBR2MsaUJBQWlCLENBQUMsSUFBSTs4QkFHZ0IsUUFBUTtzQkFBNUQsV0FBVzt1QkFBQyxzQ0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBpbmplY3QsIE9uSW5pdCwgdmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IE1hdFBhZ2luYXRvciwgTWF0UGFnaW5hdG9yTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgUm91dGVyTGluayB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBUb29sYmFyQ29tcG9uZW50LCBTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBQcm9wZXJ0eVNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBQcm9wZXJ0eU1hbmFnZUl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL3Byb3BlcnR5LW1hbmFnZS1pdGVtL3Byb3BlcnR5LW1hbmFnZS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvcGVydHktcmV2aWV3LWluZGV4JyxcbiAgaW1wb3J0czogW1xuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBSb3V0ZXJMaW5rLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0VGFibGVNb2R1bGUsXG4gICAgTWF0TWVudU1vZHVsZSxcbiAgICBNYXRQYWdpbmF0b3JNb2R1bGUsXG4gICAgVG9vbGJhckNvbXBvbmVudCxcbiAgICBTcGlubmVyQ29tcG9uZW50LFxuICAgIFByb3BlcnR5TWFuYWdlSXRlbUNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LXJldmlldy1pbmRleC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9wZXJ0eS1yZXZpZXctaW5kZXguY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eVJldmlld0luZGV4Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5yb2xhdGVjaC1wcm9wZXJ0eS1tYW5hZ2UtaW5kZXgnKSBoYXNDbGFzcyA9IHRydWU7XG4gIHBhZ2luYXRvciA9IHZpZXdDaGlsZChNYXRQYWdpbmF0b3IpO1xuICBkaWFsb2cgPSBpbmplY3QoTWF0RGlhbG9nKTtcbiAgc25hY2tCYXIgPSBpbmplY3QoTWF0U25hY2tCYXIpO1xuICBwcm9wZXJ0eVNlcnZpY2UgPSBpbmplY3QoUHJvcGVydHlTZXJ2aWNlKTtcbiAgaXNMb2FkaW5nID0gZmFsc2U7XG4gIGlzU2VhcmNoID0gZmFsc2U7XG4gIHByb3BlcnRpZXM6IFByb3BlcnR5W10gPSBbXTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbmRQcm9wZXJ0aWVzKCk7XG4gIH1cbiAgZmluZFByb3BlcnRpZXMoKSB7XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZmluZCh7fSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnByb3BlcnRpZXMgPSByZXMuZGF0YTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxyb2xhdGVjaC10b29sYmFyIHRpdGxlPVwiUHJvcGVydGllc1wiPiA8L3JvbGF0ZWNoLXRvb2xiYXI+XG5AaWYgKGlzTG9hZGluZykge1xuICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXJcIj5cbiAgICA8cm9sYXRlY2gtc3Bpbm5lcj48L3JvbGF0ZWNoLXNwaW5uZXI+XG4gIDwvZGl2PlxufSBAZWxzZSB7XG4gIDxkaXYgY2xhc3M9XCJiZy1bLS1ydC1yYXNpc2VkLWJhY2tncm91bmRdIGgtZnVsbFwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBwLTMgZ2FwLTNcIj5cbiAgICAgIEBmb3IgKGl0ZW0gb2YgcHJvcGVydGllczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgIDxyb2xhdGVjaC1wcm9wZXJ0eS1tYW5hZ2UtaXRlbVxuICAgICAgICAgIGxpc3RcbiAgICAgICAgICBbcHJvcGVydHldPVwiaXRlbVwiXG4gICAgICAgICAgcm91dGVyTGluaz1cIi4vcHJvcGVydGllcy97eyBpdGVtLmlkIH19XCJcbiAgICAgICAgPjwvcm9sYXRlY2gtcHJvcGVydHktbWFuYWdlLWl0ZW0+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gPG1hdC1wYWdpbmF0b3JcbiAgICAjcGFnaW5hdG9yXG4gICAgW2xlbmd0aF09XCJsZW5ndGhcIlxuICAgIFtwYWdlU2l6ZV09XCJwYWdlU2l6ZVwiXG4gICAgW3BhZ2VTaXplT3B0aW9uc109XCJwYWdlU2l6ZU9wdGlvbnNcIlxuICAgIChwYWdlKT1cInBhZ2VFdmVudCA9IGZpbmQoJGV2ZW50KVwiXG4gICAgaGlkZVBhZ2VTaXplXG4gICAgc2hvd0ZpcnN0TGFzdEJ1dHRvbnNcbiAgPlxuICA8L21hdC1wYWdpbmF0b3I+IC0tPlxufVxuIl19","import { Component, HostBinding, inject, input, ViewEncapsulation } from '@angular/core';\nimport { NgClass } from '@angular/common';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ThumbnailComponent, ImagePreviewDialogComponent } from '@rolatech/angular-components';\nimport * as i0 from \"@angular/core\";\nexport class PropertyMediaComponent {\n hasClass = true;\n disableScrollbar = true;\n dialog = inject(MatDialog);\n media = input([], ...(ngDevMode ? [{ debugName: \"media\" }] : []));\n min = input(false, ...(ngDevMode ? [{ debugName: \"min\" }] : []));\n mediaIndex = 0;\n onImageClick(i) {\n const dialogRef = this.dialog.open(ImagePreviewDialogComponent, {\n maxWidth: '80vw',\n maxHeight: '80vh',\n height: '80%',\n width: '80%',\n panelClass: 'full-screen-modal',\n data: {\n media: this.media,\n selected: i,\n },\n });\n dialogRef.afterClosed().subscribe((result) => { });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyMediaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyMediaComponent, isStandalone: true, selector: \"rolatech-property-media\", inputs: { media: { classPropertyName: \"media\", publicName: \"media\", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: \"min\", publicName: \"min\", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { \"class.rolatech-property-medi\": \"this.hasClass\", \"class.scrollbar-hide\": \"this.disableScrollbar\" } }, ngImport: i0, template: \"<div>\\n <div class=\\\"object-cover aspect-video bg-[--rt-raised-background]\\\">\\n <rolatech-thumbnail [src]=\\\"media() ? media()[mediaIndex].url : ''\\\" size=\\\"small\\\"></rolatech-thumbnail>\\n </div>\\n <div class=\\\"flex overflow-y-hidden overflow-x-scroll scrollbar-hide pb-4\\\">\\n @for (media of media(); track media; let index = $index) {\\n <div\\n class=\\\"flex flex-row mt-3 mr-3 cursor-pointer rounded-md min-w-32\\\"\\n (click)=\\\"mediaIndex = index\\\"\\n [ngClass]=\\\"mediaIndex === index ? '' : 'opacity-30'\\\"\\n >\\n <rolatech-thumbnail [src]=\\\"media.url\\\" size=\\\"small\\\"></rolatech-thumbnail>\\n </div>\\n }\\n </div>\\n</div>\\n\", styles: [\".scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}rolatech-rich-item{display:flex;position:relative;cursor:pointer;flex-direction:column}#details.rolatech-rich-item{display:flex;flex-direction:column;justify-content:space-between}\\n\"], dependencies: [{ kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"component\", type: ThumbnailComponent, selector: \"rolatech-thumbnail\", inputs: [\"src\", \"size\", \"mode\", \"ratio\", \"width\", \"height\"] }], encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyMediaComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-media', imports: [NgClass, ThumbnailComponent], encapsulation: ViewEncapsulation.None, template: \"<div>\\n <div class=\\\"object-cover aspect-video bg-[--rt-raised-background]\\\">\\n <rolatech-thumbnail [src]=\\\"media() ? media()[mediaIndex].url : ''\\\" size=\\\"small\\\"></rolatech-thumbnail>\\n </div>\\n <div class=\\\"flex overflow-y-hidden overflow-x-scroll scrollbar-hide pb-4\\\">\\n @for (media of media(); track media; let index = $index) {\\n <div\\n class=\\\"flex flex-row mt-3 mr-3 cursor-pointer rounded-md min-w-32\\\"\\n (click)=\\\"mediaIndex = index\\\"\\n [ngClass]=\\\"mediaIndex === index ? '' : 'opacity-30'\\\"\\n >\\n <rolatech-thumbnail [src]=\\\"media.url\\\" size=\\\"small\\\"></rolatech-thumbnail>\\n </div>\\n }\\n </div>\\n</div>\\n\", styles: [\".scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}rolatech-rich-item{display:flex;position:relative;cursor:pointer;flex-direction:column}#details.rolatech-rich-item{display:flex;flex-direction:column;justify-content:space-between}\\n\"] }]\n }], propDecorators: { hasClass: [{\n type: HostBinding,\n args: ['class.rolatech-property-medi']\n }], disableScrollbar: [{\n type: HostBinding,\n args: ['class.scrollbar-hide']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbWVkaWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktbWVkaWEvcHJvcGVydHktbWVkaWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktbWVkaWEvcHJvcGVydHktbWVkaWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQVMvRixNQUFNLE9BQU8sc0JBQXNCO0lBQ1ksUUFBUSxHQUFHLElBQUksQ0FBQztJQUN4QixnQkFBZ0IsR0FBRyxJQUFJLENBQUM7SUFDN0QsTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzQixLQUFLLEdBQUcsS0FBSyxDQUFVLEVBQUUsaURBQUMsQ0FBQztJQUMzQixHQUFHLEdBQUcsS0FBSyxDQUFVLEtBQUssK0NBQUMsQ0FBQztJQUM1QixVQUFVLEdBQUcsQ0FBQyxDQUFDO0lBQ2YsWUFBWSxDQUFDLENBQU07UUFDakIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUU7WUFDOUQsUUFBUSxFQUFFLE1BQU07WUFDaEIsU0FBUyxFQUFFLE1BQU07WUFDakIsTUFBTSxFQUFFLEtBQUs7WUFDYixLQUFLLEVBQUUsS0FBSztZQUNaLFVBQVUsRUFBRSxtQkFBbUI7WUFDL0IsSUFBSSxFQUFFO2dCQUNKLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsUUFBUSxFQUFFLENBQUM7YUFDWjtTQUNGLENBQUMsQ0FBQztRQUNILFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7dUdBcEJVLHNCQUFzQjsyRkFBdEIsc0JBQXNCLHFjQ2JuQyxtcUJBZ0JBLDZWRFJZLE9BQU8sb0ZBQUUsa0JBQWtCOzsyRkFLMUIsc0JBQXNCO2tCQVBsQyxTQUFTOytCQUNFLHlCQUF5QixXQUMxQixDQUFDLE9BQU8sRUFBRSxrQkFBa0IsQ0FBQyxpQkFHdkIsaUJBQWlCLENBQUMsSUFBSTs4QkFHUSxRQUFRO3NCQUFwRCxXQUFXO3VCQUFDLDhCQUE4QjtnQkFDTixnQkFBZ0I7c0JBQXBELFdBQVc7dUJBQUMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgaW5qZWN0LCBpbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1lZGlhIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IFRodW1ibmFpbENvbXBvbmVudCwgSW1hZ2VQcmV2aWV3RGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb3BlcnR5LW1lZGlhJyxcbiAgaW1wb3J0czogW05nQ2xhc3MsIFRodW1ibmFpbENvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1tZWRpYS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9wZXJ0eS1tZWRpYS5jb21wb25lbnQuc2NzcycsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5TWVkaWFDb21wb25lbnQge1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnJvbGF0ZWNoLXByb3BlcnR5LW1lZGknKSBoYXNDbGFzcyA9IHRydWU7XG4gIEBIb3N0QmluZGluZygnY2xhc3Muc2Nyb2xsYmFyLWhpZGUnKSBkaXNhYmxlU2Nyb2xsYmFyID0gdHJ1ZTtcbiAgZGlhbG9nID0gaW5qZWN0KE1hdERpYWxvZyk7XG4gIG1lZGlhID0gaW5wdXQ8TWVkaWFbXT4oW10pO1xuICBtaW4gPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIG1lZGlhSW5kZXggPSAwO1xuICBvbkltYWdlQ2xpY2soaTogYW55KSB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihJbWFnZVByZXZpZXdEaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIG1heFdpZHRoOiAnODB2dycsXG4gICAgICBtYXhIZWlnaHQ6ICc4MHZoJyxcbiAgICAgIGhlaWdodDogJzgwJScsXG4gICAgICB3aWR0aDogJzgwJScsXG4gICAgICBwYW5lbENsYXNzOiAnZnVsbC1zY3JlZW4tbW9kYWwnLFxuICAgICAgZGF0YToge1xuICAgICAgICBtZWRpYTogdGhpcy5tZWRpYSxcbiAgICAgICAgc2VsZWN0ZWQ6IGksXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7IH0pO1xuICB9XG59XG4iLCI8ZGl2PlxuICA8ZGl2IGNsYXNzPVwib2JqZWN0LWNvdmVyIGFzcGVjdC12aWRlbyBiZy1bLS1ydC1yYWlzZWQtYmFja2dyb3VuZF1cIj5cbiAgICA8cm9sYXRlY2gtdGh1bWJuYWlsIFtzcmNdPVwibWVkaWEoKSA/IG1lZGlhKClbbWVkaWFJbmRleF0udXJsIDogJydcIiBzaXplPVwic21hbGxcIj48L3JvbGF0ZWNoLXRodW1ibmFpbD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IG92ZXJmbG93LXktaGlkZGVuIG92ZXJmbG93LXgtc2Nyb2xsIHNjcm9sbGJhci1oaWRlIHBiLTRcIj5cbiAgICBAZm9yIChtZWRpYSBvZiBtZWRpYSgpOyB0cmFjayBtZWRpYTsgbGV0IGluZGV4ID0gJGluZGV4KSB7XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBtdC0zIG1yLTMgY3Vyc29yLXBvaW50ZXIgcm91bmRlZC1tZCBtaW4tdy0zMlwiXG4gICAgICAgIChjbGljayk9XCJtZWRpYUluZGV4ID0gaW5kZXhcIlxuICAgICAgICBbbmdDbGFzc109XCJtZWRpYUluZGV4ID09PSBpbmRleCA/ICcnIDogJ29wYWNpdHktMzAnXCJcbiAgICAgID5cbiAgICAgICAgPHJvbGF0ZWNoLXRodW1ibmFpbCBbc3JjXT1cIm1lZGlhLnVybFwiIHNpemU9XCJzbWFsbFwiPjwvcm9sYXRlY2gtdGh1bWJuYWlsPlxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbjwvZGl2PlxuIl19","import { Component, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/icon\";\nexport class PropertyFeaturesComponent {\n features = input.required(...(ngDevMode ? [{ debugName: \"features\" }] : []));\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyFeaturesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyFeaturesComponent, isStandalone: true, selector: \"rolatech-property-features\", inputs: { features: { classPropertyName: \"features\", publicName: \"features\", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: \"<div class=\\\"\\\">\\n <div class=\\\"text-2xl font-bold py-3\\\" i18n>Features</div>\\n <div class=\\\"flex flex-row flex-wrap items-center font-thin text-sm\\\">\\n @for (feature of features(); track feature) {\\n <div class=\\\"flex items-center mr-2\\\">\\n <mat-icon>check</mat-icon>\\n <span>{{ feature.value.name }}</span>\\n </div>\\n }\\n </div>\\n</div>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i1.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyFeaturesComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-features', imports: [CommonModule, MatIconModule], template: \"<div class=\\\"\\\">\\n <div class=\\\"text-2xl font-bold py-3\\\" i18n>Features</div>\\n <div class=\\\"flex flex-row flex-wrap items-center font-thin text-sm\\\">\\n @for (feature of features(); track feature) {\\n <div class=\\\"flex items-center mr-2\\\">\\n <mat-icon>check</mat-icon>\\n <span>{{ feature.value.name }}</span>\\n </div>\\n }\\n </div>\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZmVhdHVyZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktZmVhdHVyZXMvcHJvcGVydHktZmVhdHVyZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktZmVhdHVyZXMvcHJvcGVydHktZmVhdHVyZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBUXZELE1BQU0sT0FBTyx5QkFBeUI7SUFDcEMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLG1EQUEyQixDQUFDO3VHQUQxQyx5QkFBeUI7MkZBQXpCLHlCQUF5QixrT0NYdEMsdVhBV0EseURESlksWUFBWSw4QkFBRSxhQUFhOzsyRkFJMUIseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNFLDRCQUE0QixXQUM3QixDQUFDLFlBQVksRUFBRSxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUHJvcGVydHlGZWF0dXJlT3B0aW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb3BlcnR5LWZlYXR1cmVzJyxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0SWNvbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1mZWF0dXJlcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9wZXJ0eS1mZWF0dXJlcy5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5RmVhdHVyZXNDb21wb25lbnQge1xuICBmZWF0dXJlcyA9IGlucHV0LnJlcXVpcmVkPFByb3BlcnR5RmVhdHVyZU9wdGlvbltdPigpO1xufVxuIiwiPGRpdiBjbGFzcz1cIlwiPlxuICA8ZGl2IGNsYXNzPVwidGV4dC0yeGwgZm9udC1ib2xkIHB5LTNcIiBpMThuPkZlYXR1cmVzPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGZsZXgtd3JhcCBpdGVtcy1jZW50ZXIgZm9udC10aGluIHRleHQtc21cIj5cbiAgICBAZm9yIChmZWF0dXJlIG9mIGZlYXR1cmVzKCk7IHRyYWNrIGZlYXR1cmUpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBtci0yXCI+XG4gICAgICAgIDxtYXQtaWNvbj5jaGVjazwvbWF0LWljb24+XG4gICAgICAgIDxzcGFuPnt7IGZlYXR1cmUudmFsdWUubmFtZSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==","import { Component, inject, input, PLATFORM_ID, viewChild } from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { GoogleMapsModule } from '@angular/google-maps';\nimport * as i0 from \"@angular/core\";\nexport class PropertyLocationComponent {\n platformId = inject(PLATFORM_ID);\n location = input.required(...(ngDevMode ? [{ debugName: \"location\" }] : []));\n mapElementRef = viewChild.required('mapElement');\n map;\n autocompleteService;\n placesService;\n sessionToken;\n options = {\n mapId: '6a8f7b7d56282c69',\n center: { lat: 51.509865, lng: -0.118092 },\n zoom: 15,\n };\n ngOnInit() {\n if (isPlatformBrowser(this.platformId)) {\n google.maps.importLibrary('places').then((res) => {\n this.map = new google.maps.Map(this.mapElementRef().nativeElement, this.options);\n this.autocompleteService = new google.maps.places.AutocompleteService();\n this.placesService = new google.maps.places.PlacesService(document.createElement('div'));\n this.sessionToken = new google.maps.places.AutocompleteSessionToken();\n const request = {\n input: this.location().postCode,\n sessionToken: this.sessionToken,\n types: ['geocode'], // Filter to addresses\n componentRestrictions: { country: 'gb' },\n };\n this.autocompleteService.getPlacePredictions(request, (predictions, status) => {\n if (status === google.maps.places.PlacesServiceStatus.OK && predictions && predictions.length > 0) {\n const placeId = predictions[0].place_id;\n this.getPlaceDetails(placeId);\n }\n });\n });\n }\n }\n getPlaceDetails(placeId) {\n this.placesService.getDetails({ placeId }, (place, status) => {\n if (status === google.maps.places.PlacesServiceStatus.OK) {\n const location = place.geometry?.location;\n if (location) {\n this.map.setCenter(location);\n new google.maps.Marker({\n map: this.map,\n position: location,\n });\n }\n }\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyLocationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.2.0\", type: PropertyLocationComponent, isStandalone: true, selector: \"rolatech-property-location\", inputs: { location: { classPropertyName: \"location\", publicName: \"location\", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: \"mapElementRef\", first: true, predicate: [\"mapElement\"], descendants: true, isSignal: true }], ngImport: i0, template: \"<div class=\\\"\\\">\\n <div class=\\\"text-2xl font-bold py-4\\\" i18n>Location</div>\\n <div class=\\\"bg-[--rt-raised-background]\\\">\\n <div class=\\\"map-container\\\">\\n <div #mapElement id=\\\"map\\\"></div>\\n </div>\\n <!-- <google-map width=\\\"100%\\\" #mapRef [options]=\\\"options\\\">\\n <map-advanced-marker #marker=\\\"mapAdvancedMarker\\\" />\\n </google-map> -->\\n </div>\\n</div>\\n\", styles: [\".aspect-ratio-16-9{position:relative;width:100%;padding-bottom:56.25%;height:0}.map-container{position:relative;width:100%;padding-bottom:56.25%;height:0;overflow:hidden}#map{position:absolute;top:0;left:0;width:100%;height:100%}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: GoogleMapsModule }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyLocationComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-location', imports: [CommonModule, GoogleMapsModule], template: \"<div class=\\\"\\\">\\n <div class=\\\"text-2xl font-bold py-4\\\" i18n>Location</div>\\n <div class=\\\"bg-[--rt-raised-background]\\\">\\n <div class=\\\"map-container\\\">\\n <div #mapElement id=\\\"map\\\"></div>\\n </div>\\n <!-- <google-map width=\\\"100%\\\" #mapRef [options]=\\\"options\\\">\\n <map-advanced-marker #marker=\\\"mapAdvancedMarker\\\" />\\n </google-map> -->\\n </div>\\n</div>\\n\", styles: [\".aspect-ratio-16-9{position:relative;width:100%;padding-bottom:56.25%;height:0}.map-container{position:relative;width:100%;padding-bottom:56.25%;height:0;overflow:hidden}#map{position:absolute;top:0;left:0;width:100%;height:100%}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbG9jYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktbG9jYXRpb24vcHJvcGVydHktbG9jYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktbG9jYXRpb24vcHJvcGVydHktbG9jYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLEVBQUUsS0FBSyxFQUFVLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQVN4RCxNQUFNLE9BQU8seUJBQXlCO0lBQ3BDLFVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDakMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLG1EQUFvQixDQUFDO0lBQzlDLGFBQWEsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFhLFlBQVksQ0FBQyxDQUFDO0lBQzdELEdBQUcsQ0FBbUI7SUFDdEIsbUJBQW1CLENBQTBDO0lBQzdELGFBQWEsQ0FBb0M7SUFDakQsWUFBWSxDQUErQztJQUMzRCxPQUFPLEdBQTJCO1FBQ2hDLEtBQUssRUFBRSxrQkFBa0I7UUFDekIsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUU7UUFDMUMsSUFBSSxFQUFFLEVBQUU7S0FDVCxDQUFDO0lBQ0YsUUFBUTtRQUNOLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDdkMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ3BELElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDakYsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztnQkFDeEUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ3pGLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO2dCQUN0RSxNQUFNLE9BQU8sR0FBRztvQkFDZCxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVE7b0JBQy9CLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtvQkFDL0IsS0FBSyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsc0JBQXNCO29CQUMxQyxxQkFBcUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7aUJBQ3pDLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsRUFBRTtvQkFDNUUsSUFBSSxNQUFNLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsRUFBRSxJQUFJLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO3dCQUNsRyxNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO3dCQUN4QyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUNoQyxDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUNELGVBQWUsQ0FBQyxPQUFlO1FBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxLQUFVLEVBQUUsTUFBVyxFQUFFLEVBQUU7WUFDckUsSUFBSSxNQUFNLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ3pELE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDO2dCQUMxQyxJQUFJLFFBQVEsRUFBRSxDQUFDO29CQUNiLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUM3QixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO3dCQUNyQixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7d0JBQ2IsUUFBUSxFQUFFLFFBQVE7cUJBQ25CLENBQUMsQ0FBQztnQkFDTCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0FoRFUseUJBQXlCOzJGQUF6Qix5QkFBeUIsK1ZDWHRDLG9ZQVdBLGdTREpZLFlBQVksOEJBQUUsZ0JBQWdCOzsyRkFJN0IseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNFLDRCQUE0QixXQUM3QixDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgaW5qZWN0LCBpbnB1dCwgT25Jbml0LCBQTEFURk9STV9JRCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEdvb2dsZU1hcHNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9nb29nbGUtbWFwcyc7XG5pbXBvcnQgeyBQcm9wZXJ0eUxvY2F0aW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb3BlcnR5LWxvY2F0aW9uJyxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgR29vZ2xlTWFwc01vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1sb2NhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9wZXJ0eS1sb2NhdGlvbi5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5TG9jYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgbG9jYXRpb24gPSBpbnB1dC5yZXF1aXJlZDxQcm9wZXJ0eUxvY2F0aW9uPigpO1xuICBtYXBFbGVtZW50UmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY+KCdtYXBFbGVtZW50Jyk7XG4gIG1hcCE6IGdvb2dsZS5tYXBzLk1hcDtcbiAgYXV0b2NvbXBsZXRlU2VydmljZSE6IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGVTZXJ2aWNlO1xuICBwbGFjZXNTZXJ2aWNlITogZ29vZ2xlLm1hcHMucGxhY2VzLlBsYWNlc1NlcnZpY2U7XG4gIHNlc3Npb25Ub2tlbiE6IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGVTZXNzaW9uVG9rZW47XG4gIG9wdGlvbnM6IGdvb2dsZS5tYXBzLk1hcE9wdGlvbnMgPSB7XG4gICAgbWFwSWQ6ICc2YThmN2I3ZDU2MjgyYzY5JyxcbiAgICBjZW50ZXI6IHsgbGF0OiA1MS41MDk4NjUsIGxuZzogLTAuMTE4MDkyIH0sXG4gICAgem9vbTogMTUsXG4gIH07XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICBnb29nbGUubWFwcy5pbXBvcnRMaWJyYXJ5KCdwbGFjZXMnKS50aGVuKChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLm1hcCA9IG5ldyBnb29nbGUubWFwcy5NYXAodGhpcy5tYXBFbGVtZW50UmVmKCkubmF0aXZlRWxlbWVudCwgdGhpcy5vcHRpb25zKTtcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGVTZXJ2aWNlID0gbmV3IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGVTZXJ2aWNlKCk7XG4gICAgICAgIHRoaXMucGxhY2VzU2VydmljZSA9IG5ldyBnb29nbGUubWFwcy5wbGFjZXMuUGxhY2VzU2VydmljZShkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7XG4gICAgICAgIHRoaXMuc2Vzc2lvblRva2VuID0gbmV3IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGVTZXNzaW9uVG9rZW4oKTtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgICAgICBpbnB1dDogdGhpcy5sb2NhdGlvbigpLnBvc3RDb2RlLFxuICAgICAgICAgIHNlc3Npb25Ub2tlbjogdGhpcy5zZXNzaW9uVG9rZW4sXG4gICAgICAgICAgdHlwZXM6IFsnZ2VvY29kZSddLCAvLyBGaWx0ZXIgdG8gYWRkcmVzc2VzXG4gICAgICAgICAgY29tcG9uZW50UmVzdHJpY3Rpb25zOiB7IGNvdW50cnk6ICdnYicgfSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGVTZXJ2aWNlLmdldFBsYWNlUHJlZGljdGlvbnMocmVxdWVzdCwgKHByZWRpY3Rpb25zLCBzdGF0dXMpID0+IHtcbiAgICAgICAgICBpZiAoc3RhdHVzID09PSBnb29nbGUubWFwcy5wbGFjZXMuUGxhY2VzU2VydmljZVN0YXR1cy5PSyAmJiBwcmVkaWN0aW9ucyAmJiBwcmVkaWN0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBwbGFjZUlkID0gcHJlZGljdGlvbnNbMF0ucGxhY2VfaWQ7XG4gICAgICAgICAgICB0aGlzLmdldFBsYWNlRGV0YWlscyhwbGFjZUlkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIGdldFBsYWNlRGV0YWlscyhwbGFjZUlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnBsYWNlc1NlcnZpY2UuZ2V0RGV0YWlscyh7IHBsYWNlSWQgfSwgKHBsYWNlOiBhbnksIHN0YXR1czogYW55KSA9PiB7XG4gICAgICBpZiAoc3RhdHVzID09PSBnb29nbGUubWFwcy5wbGFjZXMuUGxhY2VzU2VydmljZVN0YXR1cy5PSykge1xuICAgICAgICBjb25zdCBsb2NhdGlvbiA9IHBsYWNlLmdlb21ldHJ5Py5sb2NhdGlvbjtcbiAgICAgICAgaWYgKGxvY2F0aW9uKSB7XG4gICAgICAgICAgdGhpcy5tYXAuc2V0Q2VudGVyKGxvY2F0aW9uKTtcbiAgICAgICAgICBuZXcgZ29vZ2xlLm1hcHMuTWFya2VyKHtcbiAgICAgICAgICAgIG1hcDogdGhpcy5tYXAsXG4gICAgICAgICAgICBwb3NpdGlvbjogbG9jYXRpb24sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIlwiPlxuICA8ZGl2IGNsYXNzPVwidGV4dC0yeGwgZm9udC1ib2xkIHB5LTRcIiBpMThuPkxvY2F0aW9uPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJiZy1bLS1ydC1yYWlzZWQtYmFja2dyb3VuZF1cIj5cbiAgICA8ZGl2IGNsYXNzPVwibWFwLWNvbnRhaW5lclwiPlxuICAgICAgPGRpdiAjbWFwRWxlbWVudCBpZD1cIm1hcFwiPjwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDwhLS0gPGdvb2dsZS1tYXAgd2lkdGg9XCIxMDAlXCIgI21hcFJlZiBbb3B0aW9uc109XCJvcHRpb25zXCI+XG4gICAgICA8bWFwLWFkdmFuY2VkLW1hcmtlciAjbWFya2VyPVwibWFwQWR2YW5jZWRNYXJrZXJcIiAvPlxuICAgIDwvZ29vZ2xlLW1hcD4gLS0+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=","import { Component, input } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/router\";\nimport * as i2 from \"@angular/material/icon\";\nexport class PropertyOwnerRendererComponent {\n name = input(...(ngDevMode ? [undefined, { debugName: \"name\" }] : []));\n avatar = input(...(ngDevMode ? [undefined, { debugName: \"avatar\" }] : []));\n username = input(...(ngDevMode ? [undefined, { debugName: \"username\" }] : []));\n subtitle = input(...(ngDevMode ? [undefined, { debugName: \"subtitle\" }] : []));\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyOwnerRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyOwnerRendererComponent, isStandalone: true, selector: \"rolatech-property-owner-renderer\", inputs: { name: { classPropertyName: \"name\", publicName: \"name\", isSignal: true, isRequired: false, transformFunction: null }, avatar: { classPropertyName: \"avatar\", publicName: \"avatar\", isSignal: true, isRequired: false, transformFunction: null }, username: { classPropertyName: \"username\", publicName: \"username\", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: \"subtitle\", publicName: \"subtitle\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: \"<div class=\\\"flex flex-col\\\">\\n <div class=\\\"flex flex-row items-center py-3\\\">\\n <div class=\\\"flex mr-3 gap-2 items-center\\\">\\n @if (avatar()) {\\n <div class=\\\"cursor-pointer\\\" [routerLink]=\\\"['/', '@' + username()]\\\">\\n <img [src]=\\\"avatar()\\\" class=\\\"w-14 h-14 rounded-full\\\" alt />\\n </div>\\n } @else {\\n <div class=\\\"w-14 h-14 rounded-full bg-[--rt-brand-color]\\\"></div>\\n }\\n <div class=\\\"flex flex-col\\\">\\n <div class=\\\"flex items-center text-lg font-bold cursor-pointer\\\">\\n <a [routerLink]=\\\"['/', '@' + username()]\\\">\\n <span>{{ name() }}</span>\\n </a>\\n <mat-icon class=\\\"verified-icon\\\">verified</mat-icon>\\n </div>\\n <div class=\\\"text-lg font-bold text-[--rt-brand-color]\\\">{{ subtitle() }}</div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\", styles: [\"mat-icon{transform:scale(.8);color:var(--rt-brand-color)}\\n\"], dependencies: [{ kind: \"ngmodule\", type: AngularCommonModule }, { kind: \"directive\", type: i1.RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i2.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyOwnerRendererComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-owner-renderer', imports: [AngularCommonModule, MatIconModule], template: \"<div class=\\\"flex flex-col\\\">\\n <div class=\\\"flex flex-row items-center py-3\\\">\\n <div class=\\\"flex mr-3 gap-2 items-center\\\">\\n @if (avatar()) {\\n <div class=\\\"cursor-pointer\\\" [routerLink]=\\\"['/', '@' + username()]\\\">\\n <img [src]=\\\"avatar()\\\" class=\\\"w-14 h-14 rounded-full\\\" alt />\\n </div>\\n } @else {\\n <div class=\\\"w-14 h-14 rounded-full bg-[--rt-brand-color]\\\"></div>\\n }\\n <div class=\\\"flex flex-col\\\">\\n <div class=\\\"flex items-center text-lg font-bold cursor-pointer\\\">\\n <a [routerLink]=\\\"['/', '@' + username()]\\\">\\n <span>{{ name() }}</span>\\n </a>\\n <mat-icon class=\\\"verified-icon\\\">verified</mat-icon>\\n </div>\\n <div class=\\\"text-lg font-bold text-[--rt-brand-color]\\\">{{ subtitle() }}</div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\", styles: [\"mat-icon{transform:scale(.8);color:var(--rt-brand-color)}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktb3duZXItcmVuZGVyZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktb3duZXItcmVuZGVyZXIvcHJvcGVydHktb3duZXItcmVuZGVyZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktb3duZXItcmVuZGVyZXIvcHJvcGVydHktb3duZXItcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7O0FBUS9ELE1BQU0sT0FBTyw4QkFBOEI7SUFDekMsSUFBSSxHQUFHLEtBQUssMERBQVUsQ0FBQztJQUN2QixNQUFNLEdBQUcsS0FBSyw0REFBVSxDQUFDO0lBQ3pCLFFBQVEsR0FBRyxLQUFLLDhEQUFVLENBQUM7SUFDM0IsUUFBUSxHQUFHLEtBQUssOERBQVUsQ0FBQzt1R0FKaEIsOEJBQThCOzJGQUE5Qiw4QkFBOEIsMGxCQ1YzQyxzMkJBc0JBLG9IRGhCWSxtQkFBbUIsK1FBQUUsYUFBYTs7MkZBSWpDLDhCQUE4QjtrQkFOMUMsU0FBUzsrQkFDRSxrQ0FBa0MsV0FDbkMsQ0FBQyxtQkFBbUIsRUFBRSxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBBbmd1bGFyQ29tbW9uTW9kdWxlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvcGVydHktb3duZXItcmVuZGVyZXInLFxuICBpbXBvcnRzOiBbQW5ndWxhckNvbW1vbk1vZHVsZSwgTWF0SWNvbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1vd25lci1yZW5kZXJlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9wZXJ0eS1vd25lci1yZW5kZXJlci5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5T3duZXJSZW5kZXJlckNvbXBvbmVudCB7XG4gIG5hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIGF2YXRhciA9IGlucHV0PHN0cmluZz4oKTtcbiAgdXNlcm5hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHN1YnRpdGxlID0gaW5wdXQ8c3RyaW5nPigpO1xufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgaXRlbXMtY2VudGVyIHB5LTNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBtci0zIGdhcC0yIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgQGlmIChhdmF0YXIoKSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiBbcm91dGVyTGlua109XCJbJy8nLCAnQCcgKyB1c2VybmFtZSgpXVwiPlxuICAgICAgICAgIDxpbWcgW3NyY109XCJhdmF0YXIoKVwiIGNsYXNzPVwidy0xNCBoLTE0IHJvdW5kZWQtZnVsbFwiIGFsdCAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8ZGl2IGNsYXNzPVwidy0xNCBoLTE0IHJvdW5kZWQtZnVsbCBiZy1bLS1ydC1icmFuZC1jb2xvcl1cIj48L2Rpdj5cbiAgICAgIH1cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciB0ZXh0LWxnIGZvbnQtYm9sZCBjdXJzb3ItcG9pbnRlclwiPlxuICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIlsnLycsICdAJyArIHVzZXJuYW1lKCldXCI+XG4gICAgICAgICAgICA8c3Bhbj57eyBuYW1lKCkgfX08L3NwYW4+XG4gICAgICAgICAgPC9hPlxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInZlcmlmaWVkLWljb25cIj52ZXJpZmllZDwvbWF0LWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZyBmb250LWJvbGQgdGV4dC1bLS1ydC1icmFuZC1jb2xvcl1cIj57eyBzdWJ0aXRsZSgpIH19PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==","import { Component, inject, output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AuthUserService } from '@rolatech/angular-auth';\nimport { FormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/form-field\";\nimport * as i2 from \"@angular/forms\";\nimport * as i3 from \"@angular/material/select\";\nexport class PropertyAgentUpdate {\n authUserService = inject(AuthUserService);\n loading = true;\n output = output();\n agents;\n selectedAgentId;\n ngOnInit() {\n this.findAgents();\n }\n findAgents() {\n this.authUserService.findAll({}).subscribe({\n next: res => {\n this.agents = res.data;\n this.loading = false;\n }\n });\n }\n ngDoCheck() {\n this.output.emit(this.selectedAgentId);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyAgentUpdate, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyAgentUpdate, isStandalone: true, selector: \"rolatech-property-agent-update\", outputs: { output: \"output\" }, ngImport: i0, template: \"@if (!loading) {\\n<mat-form-field appearance=\\\"fill\\\">\\n <mat-label>Select tenant</mat-label>\\n <mat-select [(ngModel)]=\\\"selectedAgentId\\\">\\n @for (item of agents; track $index) {\\n <mat-option [value]=\\\"item.id\\\">\\n <div class=\\\"flex justify-between items-center\\\">\\n <span class=\\\"mr-3\\\">{{ item.firstName }}, {{item.lastName}}</span>\\n <span>{{item.email}}</span>\\n </div>\\n </mat-option>\\n }\\n </mat-select>\\n</mat-form-field>\\n\\n}\\n\", styles: [\"mat-form-field{width:100%}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"component\", type: i1.MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: i1.MatLabel, selector: \"mat-label\" }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i2.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"ngmodule\", type: MatSelectModule }, { kind: \"component\", type: i3.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\", \"canSelectNullableOptions\"], outputs: [\"openedChange\", \"opened\", \"closed\", \"selectionChange\", \"valueChange\"], exportAs: [\"matSelect\"] }, { kind: \"component\", type: i3.MatOption, selector: \"mat-option\", inputs: [\"value\", \"id\", \"disabled\"], outputs: [\"onSelectionChange\"], exportAs: [\"matOption\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyAgentUpdate, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-agent-update', imports: [\n CommonModule,\n MatFormFieldModule,\n FormsModule,\n MatInputModule,\n MatSelectModule,\n ], template: \"@if (!loading) {\\n<mat-form-field appearance=\\\"fill\\\">\\n <mat-label>Select tenant</mat-label>\\n <mat-select [(ngModel)]=\\\"selectedAgentId\\\">\\n @for (item of agents; track $index) {\\n <mat-option [value]=\\\"item.id\\\">\\n <div class=\\\"flex justify-between items-center\\\">\\n <span class=\\\"mr-3\\\">{{ item.firstName }}, {{item.lastName}}</span>\\n <span>{{item.email}}</span>\\n </div>\\n </mat-option>\\n }\\n </mat-select>\\n</mat-form-field>\\n\\n}\\n\", styles: [\"mat-form-field{width:100%}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktYWdlbnQtdXBkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktYWdlbnQtdXBkYXRlL3Byb3BlcnR5LWFnZW50LXVwZGF0ZS50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9jb21wb25lbnRzL3Byb3BlcnR5LWFnZW50LXVwZGF0ZS9wcm9wZXJ0eS1hZ2VudC11cGRhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFXLE1BQU0sRUFBaUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7O0FBYzNELE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsZUFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMxQyxPQUFPLEdBQUcsSUFBSSxDQUFBO0lBQ2QsTUFBTSxHQUFHLE1BQU0sRUFBTyxDQUFDO0lBQ3ZCLE1BQU0sQ0FBTTtJQUNaLGVBQWUsQ0FBTTtJQUNyQixRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFBO0lBQ25CLENBQUM7SUFDRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3pDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDVixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUE7Z0JBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFBO1lBQ3RCLENBQUM7U0FDRixDQUFDLENBQUE7SUFFSixDQUFDO0lBQ0QsU0FBUztRQUNQLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN6QyxDQUFDO3VHQXBCVSxtQkFBbUI7MkZBQW5CLG1CQUFtQix5SENwQmhDLCtkQWdCQSxxRkRMSSxZQUFZLDhCQUNaLGtCQUFrQiwwU0FDbEIsV0FBVyw4VkFDWCxjQUFjLDhCQUNkLGVBQWU7OzJGQUtOLG1CQUFtQjtrQkFaL0IsU0FBUzsrQkFDRSxnQ0FBZ0MsV0FDakM7d0JBQ1AsWUFBWTt3QkFDWixrQkFBa0I7d0JBQ2xCLFdBQVc7d0JBQ1gsY0FBYzt3QkFDZCxlQUFlO3FCQUNoQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRG9DaGVjaywgaW5qZWN0LCBtb2RlbCwgT25Jbml0LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBdXRoVXNlclNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1hdXRoJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb3BlcnR5LWFnZW50LXVwZGF0ZScsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LWFnZW50LXVwZGF0ZS5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb3BlcnR5LWFnZW50LXVwZGF0ZS5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlBZ2VudFVwZGF0ZSBpbXBsZW1lbnRzIE9uSW5pdCwgRG9DaGVjayB7XG4gIGF1dGhVc2VyU2VydmljZSA9IGluamVjdChBdXRoVXNlclNlcnZpY2UpO1xuICBsb2FkaW5nID0gdHJ1ZVxuICBvdXRwdXQgPSBvdXRwdXQ8YW55PigpO1xuICBhZ2VudHM6IGFueTtcbiAgc2VsZWN0ZWRBZ2VudElkOiBhbnk7XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZmluZEFnZW50cygpXG4gIH1cbiAgZmluZEFnZW50cygpIHtcbiAgICB0aGlzLmF1dGhVc2VyU2VydmljZS5maW5kQWxsKHt9KS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogcmVzID0+IHtcbiAgICAgICAgdGhpcy5hZ2VudHMgPSByZXMuZGF0YVxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZVxuICAgICAgfVxuICAgIH0pXG5cbiAgfVxuICBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgdGhpcy5vdXRwdXQuZW1pdCh0aGlzLnNlbGVjdGVkQWdlbnRJZCk7XG4gIH1cbn1cbiIsIkBpZiAoIWxvYWRpbmcpIHtcbjxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICA8bWF0LWxhYmVsPlNlbGVjdCB0ZW5hbnQ8L21hdC1sYWJlbD5cbiAgPG1hdC1zZWxlY3QgWyhuZ01vZGVsKV09XCJzZWxlY3RlZEFnZW50SWRcIj5cbiAgICBAZm9yIChpdGVtIG9mIGFnZW50czsgdHJhY2sgJGluZGV4KSB7XG4gICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIml0ZW0uaWRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtci0zXCI+e3sgaXRlbS5maXJzdE5hbWUgfX0sIHt7aXRlbS5sYXN0TmFtZX19PC9zcGFuPlxuICAgICAgICA8c3Bhbj57e2l0ZW0uZW1haWx9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbWF0LW9wdGlvbj5cbiAgICB9XG4gIDwvbWF0LXNlbGVjdD5cbjwvbWF0LWZvcm0tZmllbGQ+XG5cbn1cbiJdfQ==","import { Component, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AcceptDialogComponent, BaseComponent, RejectDialogComponent, RichLabelComponent, ToolbarComponent, } from '@rolatech/angular-components';\nimport { PropertyService } from '@rolatech/angular-services';\nimport { PropertyStatus } from '../../../interfaces';\nimport { FixedPipe } from '@rolatech/angular-common';\nimport { AuthUserService } from '@rolatech/angular-auth';\nimport { PropertyMediaComponent } from '../../../components/property-media/property-media.component';\nimport { PropertyFeaturesComponent } from '../../../components/property-features/property-features.component';\nimport { PropertyLocationComponent } from '../../../components/property-location/property-location.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { PropertyOwnerRendererComponent } from \"../../../components/property-owner-renderer/property-owner-renderer.component\";\nimport { PropertyAgentUpdate } from '../../../components/property-agent-update/property-agent-update';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\nexport class PropertyReviewDetailComponent extends BaseComponent {\n propertyService = inject(PropertyService);\n authUserService = inject(AuthUserService);\n userFullName = '';\n property;\n user;\n agent;\n status = PropertyStatus;\n ngOnInit() {\n this.getProperty();\n }\n getProperty() {\n this.propertyService.get(this.id).subscribe({\n next: (res) => {\n this.property = res.data;\n if (this.property.userId) {\n this.getUserPublicInfo(this.property.userId);\n }\n if (this.property.agentId) {\n this.getAgentPublicInfo(this.property.agentId);\n }\n },\n });\n }\n getUserPublicInfo(userId) {\n this.authUserService.getPublicUserInfo(userId).subscribe({\n next: (res) => {\n this.user = res;\n this.userFullName = res.name;\n },\n });\n }\n getAgentPublicInfo(agentId) {\n this.authUserService.getPublicUserInfo(agentId).subscribe({\n next: (res) => {\n this.agent = res;\n },\n });\n }\n approve() {\n const dialogRef = this.dialog.open(AcceptDialogComponent, {\n width: '400px',\n data: {\n title: 'Approve',\n message: 'Approve this property?',\n },\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.propertyService.reviewApprove(this.id).subscribe({\n next: (res) => {\n this.property.status = 'ACTIVE';\n this.snackBarService.open('Approved');\n },\n error: (e) => {\n this.snackBarService.open(e.message);\n },\n });\n }\n });\n }\n reject() {\n const dialogRef = this.dialog.open(RejectDialogComponent, {\n width: '400px',\n data: {\n content: '',\n },\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.propertyService.reviewReject(this.id, result).subscribe({\n next: (res) => {\n this.snackBarService.open('Rejected');\n },\n error: (e) => {\n this.snackBarService.open(e.message);\n },\n });\n }\n });\n }\n updateAgent() {\n const options = {\n title: 'Update agent',\n cancelText: 'Cancel',\n confirmText: 'Confirm',\n component: PropertyAgentUpdate,\n data: {\n agents: {},\n },\n width: '599px',\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe({\n next: (res) => {\n if (res) {\n this.propertyService.updateAgent(this.id, { userId: res }).subscribe({\n next: (res) => {\n console.log(res);\n this.getAgentPublicInfo(res.data.agentId);\n }\n });\n }\n },\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyReviewDetailComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyReviewDetailComponent, isStandalone: true, selector: \"rolatech-property-review-detail\", usesInheritance: true, ngImport: i0, template: \"@if (property) {\\n <rolatech-toolbar [title]=\\\"status[property.status]\\\" large link=\\\"../../\\\">\\n <button mat-flat-button (click)=\\\"approve()\\\" i18n>Approve</button>\\n <button mat-button (click)=\\\"reject()\\\" i18n>Reject</button>\\n </rolatech-toolbar>\\n <div class=\\\"px-4\\\">\\n <div class=\\\"flex flex-col md:flex-row mb-32\\\">\\n <div class=\\\"w-full md:w-2/3 p-3\\\">\\n <div class=\\\"text-lg font-bold py-2\\\">{{ property.title }}</div>\\n <hr class=\\\"mb-2\\\" />\\n <div class=\\\"flex items-center py-2\\\">\\n <div class=\\\"flex w-full justify-between\\\">\\n <div class=\\\"flex justify-between w-full\\\">\\n <div class=\\\"flex flex-col\\\">\\n <div class=\\\"inline-flex gap-1\\\">\\n <div>\\n <span class=\\\"mr-1\\\">{{ property.bedrooms }}</span>\\n <span i18n>Bedrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ property.bathrooms }}</span>\\n <span i18n>Bathrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ property.receptions }}</span>\\n <span i18n>Receptions</span>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"text-right\\\">\\n <div class=\\\"text-sm\\\">\\u00A3{{ property.price | fixed }}</div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"hidden md:flex flex-col px-3\\\"></div>\\n </div>\\n <rolatech-property-media [media]=\\\"property.media\\\"></rolatech-property-media>\\n <rolatech-property-owner-renderer\\n [name]=\\\"userFullName\\\"\\n [avatar]=\\\"user?.avatar\\\"\\n [username]=\\\"user?.username\\\"\\n ></rolatech-property-owner-renderer>\\n <rolatech-property-features [features]=\\\"property.features\\\"></rolatech-property-features>\\n <rolatech-property-location [location]=\\\"property.location\\\"></rolatech-property-location>\\n </div>\\n <div class=\\\"w-full md:w-1/3 p-3\\\">\\n <div class=\\\"flex items-center justify-between h-14\\\">\\n <div class=\\\"text-lg font-bold py-2\\\" i18n>Agent</div>\\n <button mat-flat-button (click)=\\\"updateAgent()\\\" i18n>Update Agent</button>\\n </div>\\n @if (agent) {\\n <div class=\\\"flex flex-col gap-1 mt-3\\\">\\n <rolatech-rich-label label=\\\"First Name\\\" [title]=\\\"agent.firstName\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Last Name\\\" [title]=\\\"agent.lastName\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Email\\\" [title]=\\\"agent.email\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Phone\\\" [title]=\\\"agent.phone\\\"></rolatech-rich-label>\\n </div>\\n } @else {\\n <div>Agent not set</div>\\n }\\n </div>\\n </div>\\n </div>\\n}\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"component\", type: RichLabelComponent, selector: \"rolatech-rich-label\", inputs: [\"label\", \"title\"] }, { kind: \"component\", type: PropertyMediaComponent, selector: \"rolatech-property-media\", inputs: [\"media\", \"min\"] }, { kind: \"component\", type: PropertyFeaturesComponent, selector: \"rolatech-property-features\", inputs: [\"features\"] }, { kind: \"component\", type: PropertyLocationComponent, selector: \"rolatech-property-location\", inputs: [\"location\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i1.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: PropertyOwnerRendererComponent, selector: \"rolatech-property-owner-renderer\", inputs: [\"name\", \"avatar\", \"username\", \"subtitle\"] }, { kind: \"pipe\", type: FixedPipe, name: \"fixed\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyReviewDetailComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-review-detail', imports: [\n CommonModule,\n ToolbarComponent,\n RichLabelComponent,\n FixedPipe,\n PropertyMediaComponent,\n PropertyFeaturesComponent,\n PropertyLocationComponent,\n MatButtonModule,\n PropertyOwnerRendererComponent\n ], template: \"@if (property) {\\n <rolatech-toolbar [title]=\\\"status[property.status]\\\" large link=\\\"../../\\\">\\n <button mat-flat-button (click)=\\\"approve()\\\" i18n>Approve</button>\\n <button mat-button (click)=\\\"reject()\\\" i18n>Reject</button>\\n </rolatech-toolbar>\\n <div class=\\\"px-4\\\">\\n <div class=\\\"flex flex-col md:flex-row mb-32\\\">\\n <div class=\\\"w-full md:w-2/3 p-3\\\">\\n <div class=\\\"text-lg font-bold py-2\\\">{{ property.title }}</div>\\n <hr class=\\\"mb-2\\\" />\\n <div class=\\\"flex items-center py-2\\\">\\n <div class=\\\"flex w-full justify-between\\\">\\n <div class=\\\"flex justify-between w-full\\\">\\n <div class=\\\"flex flex-col\\\">\\n <div class=\\\"inline-flex gap-1\\\">\\n <div>\\n <span class=\\\"mr-1\\\">{{ property.bedrooms }}</span>\\n <span i18n>Bedrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ property.bathrooms }}</span>\\n <span i18n>Bathrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ property.receptions }}</span>\\n <span i18n>Receptions</span>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"text-right\\\">\\n <div class=\\\"text-sm\\\">\\u00A3{{ property.price | fixed }}</div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"hidden md:flex flex-col px-3\\\"></div>\\n </div>\\n <rolatech-property-media [media]=\\\"property.media\\\"></rolatech-property-media>\\n <rolatech-property-owner-renderer\\n [name]=\\\"userFullName\\\"\\n [avatar]=\\\"user?.avatar\\\"\\n [username]=\\\"user?.username\\\"\\n ></rolatech-property-owner-renderer>\\n <rolatech-property-features [features]=\\\"property.features\\\"></rolatech-property-features>\\n <rolatech-property-location [location]=\\\"property.location\\\"></rolatech-property-location>\\n </div>\\n <div class=\\\"w-full md:w-1/3 p-3\\\">\\n <div class=\\\"flex items-center justify-between h-14\\\">\\n <div class=\\\"text-lg font-bold py-2\\\" i18n>Agent</div>\\n <button mat-flat-button (click)=\\\"updateAgent()\\\" i18n>Update Agent</button>\\n </div>\\n @if (agent) {\\n <div class=\\\"flex flex-col gap-1 mt-3\\\">\\n <rolatech-rich-label label=\\\"First Name\\\" [title]=\\\"agent.firstName\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Last Name\\\" [title]=\\\"agent.lastName\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Email\\\" [title]=\\\"agent.email\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Phone\\\" [title]=\\\"agent.phone\\\"></rolatech-rich-label>\\n </div>\\n } @else {\\n <div>Agent not set</div>\\n }\\n </div>\\n </div>\\n </div>\\n}\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktcmV2aWV3LWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktcmV2aWV3L3Byb3BlcnR5LXJldmlldy1kZXRhaWwvcHJvcGVydHktcmV2aWV3LWRldGFpbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktcmV2aWV3L3Byb3BlcnR5LXJldmlldy1kZXRhaWwvcHJvcGVydHktcmV2aWV3LWRldGFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixhQUFhLEVBQ2IscUJBQXFCLEVBQ3JCLGtCQUFrQixFQUNsQixnQkFBZ0IsR0FDakIsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDckcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbUVBQW1FLENBQUM7QUFDOUcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbUVBQW1FLENBQUM7QUFDOUcsT0FBTyxF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SUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLENBQUMsU0FBUyxDQUFDO1lBQ3ZDLElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNaLElBQUksR0FBRyxFQUFFLENBQUM7b0JBQ1IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQzt3QkFDbkUsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7NEJBQ2pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7NEJBQ2hCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO3dCQUM1QyxDQUFDO3FCQUNGLENBQUMsQ0FBQTtnQkFDSixDQUFDO1lBQ0gsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUVMLENBQUM7dUdBM0dVLDZCQUE2QjsyRkFBN0IsNkJBQTZCLGtIQ3BDMUMsMjRGQWdFQSx5RER6Q0ksWUFBWSwrQkFDWixnQkFBZ0IsZ0lBQ2hCLGtCQUFrQiw0RkFFbEIsc0JBQXNCLDhGQUN0Qix5QkFBeUIsNkZBQ3pCLHlCQUF5Qiw0RkFDekIsZUFBZSxvWEFDZiw4QkFBOEIsNEhBTDlCLFNBQVM7OzJGQVVBLDZCQUE2QjtrQkFoQnpDLFNBQVM7K0JBQ0UsaUNBQWlDLFdBQ2xDO3dCQUNQLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixrQkFBa0I7d0JBQ2xCLFNBQVM7d0JBQ1Qsc0JBQXNCO3dCQUN0Qix5QkFBeUI7d0JBQ3pCLHlCQUF5Qjt3QkFDekIsZUFBZTt3QkFDZiw4QkFBOEI7cUJBQy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFjY2VwdERpYWxvZ0NvbXBvbmVudCxcbiAgQmFzZUNvbXBvbmVudCxcbiAgUmVqZWN0RGlhbG9nQ29tcG9uZW50LFxuICBSaWNoTGFiZWxDb21wb25lbnQsXG4gIFRvb2xiYXJDb21wb25lbnQsXG59IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgUHJvcGVydHlTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItc2VydmljZXMnO1xuaW1wb3J0IHsgUHJvcGVydHlTdGF0dXMgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEZpeGVkUGlwZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQgeyBBdXRoVXNlclNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1hdXRoJztcbmltcG9ydCB7IFByb3BlcnR5TWVkaWFDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL3Byb3BlcnR5LW1lZGlhL3Byb3BlcnR5LW1lZGlhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9wZXJ0eUZlYXR1cmVzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9wcm9wZXJ0eS1mZWF0dXJlcy9wcm9wZXJ0eS1mZWF0dXJlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvcGVydHlMb2NhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvcHJvcGVydHktbG9jYXRpb24vcHJvcGVydHktbG9jYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBQcm9wZXJ0eU93bmVyUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vLi4vY29tcG9uZW50cy9wcm9wZXJ0eS1vd25lci1yZW5kZXJlci9wcm9wZXJ0eS1vd25lci1yZW5kZXJlci5jb21wb25lbnRcIjtcbmltcG9ydCB7IFByb3BlcnR5QWdlbnRVcGRhdGUgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL3Byb3BlcnR5LWFnZW50LXVwZGF0ZS9wcm9wZXJ0eS1hZ2VudC11cGRhdGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1wcm9wZXJ0eS1yZXZpZXctZGV0YWlsJyxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBUb29sYmFyQ29tcG9uZW50LFxuICAgIFJpY2hMYWJlbENvbXBvbmVudCxcbiAgICBGaXhlZFBpcGUsXG4gICAgUHJvcGVydHlNZWRpYUNvbXBvbmVudCxcbiAgICBQcm9wZXJ0eUZlYXR1cmVzQ29tcG9uZW50LFxuICAgIFByb3BlcnR5TG9jYXRpb25Db21wb25lbnQsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIFByb3BlcnR5T3duZXJSZW5kZXJlckNvbXBvbmVudFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydHktcmV2aWV3LWRldGFpbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9wZXJ0eS1yZXZpZXctZGV0YWlsLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlSZXZpZXdEZXRhaWxDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJvcGVydHlTZXJ2aWNlID0gaW5qZWN0KFByb3BlcnR5U2VydmljZSk7XG4gIGF1dGhVc2VyU2VydmljZSA9IGluamVjdChBdXRoVXNlclNlcnZpY2UpO1xuICB1c2VyRnVsbE5hbWUgPSAnJztcbiAgcHJvcGVydHk6IGFueTtcbiAgdXNlcjogYW55XG4gIGFnZW50OiBhbnk7XG4gIHN0YXR1cyA9IFByb3BlcnR5U3RhdHVzO1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmdldFByb3BlcnR5KCk7XG4gIH1cbiAgZ2V0UHJvcGVydHkoKSB7XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZ2V0KHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5wcm9wZXJ0eSA9IHJlcy5kYXRhO1xuICAgICAgICBpZiAodGhpcy5wcm9wZXJ0eS51c2VySWQpIHtcbiAgICAgICAgICB0aGlzLmdldFVzZXJQdWJsaWNJbmZvKHRoaXMucHJvcGVydHkudXNlcklkKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wcm9wZXJ0eS5hZ2VudElkKSB7XG4gICAgICAgICAgdGhpcy5nZXRBZ2VudFB1YmxpY0luZm8odGhpcy5wcm9wZXJ0eS5hZ2VudElkKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBnZXRVc2VyUHVibGljSW5mbyh1c2VySWQ6IHN0cmluZykge1xuICAgIHRoaXMuYXV0aFVzZXJTZXJ2aWNlLmdldFB1YmxpY1VzZXJJbmZvKHVzZXJJZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy51c2VyID0gcmVzO1xuICAgICAgICB0aGlzLnVzZXJGdWxsTmFtZSA9IHJlcy5uYW1lO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBnZXRBZ2VudFB1YmxpY0luZm8oYWdlbnRJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5hdXRoVXNlclNlcnZpY2UuZ2V0UHVibGljVXNlckluZm8oYWdlbnRJZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5hZ2VudCA9IHJlcztcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgYXBwcm92ZSgpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEFjY2VwdERpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgd2lkdGg6ICc0MDBweCcsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHRpdGxlOiAnQXBwcm92ZScsXG4gICAgICAgIG1lc3NhZ2U6ICdBcHByb3ZlIHRoaXMgcHJvcGVydHk/JyxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UucmV2aWV3QXBwcm92ZSh0aGlzLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgICAgIHRoaXMucHJvcGVydHkuc3RhdHVzID0gJ0FDVElWRSc7XG4gICAgICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKCdBcHByb3ZlZCcpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKGUubWVzc2FnZSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgcmVqZWN0KCkge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oUmVqZWN0RGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICB3aWR0aDogJzQwMHB4JyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgY29udGVudDogJycsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLnJldmlld1JlamVjdCh0aGlzLmlkLCByZXN1bHQpLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbignUmVqZWN0ZWQnKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yOiAoZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbihlLm1lc3NhZ2UpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIHVwZGF0ZUFnZW50KCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICB0aXRsZTogJ1VwZGF0ZSBhZ2VudCcsXG4gICAgICBjYW5jZWxUZXh0OiAnQ2FuY2VsJyxcbiAgICAgIGNvbmZpcm1UZXh0OiAnQ29uZmlybScsXG4gICAgICBjb21wb25lbnQ6IFByb3BlcnR5QWdlbnRVcGRhdGUsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGFnZW50czoge30sXG4gICAgICB9LFxuICAgICAgd2lkdGg6ICc1OTlweCcsXG4gICAgfVxuXG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW4ob3B0aW9ucyk7XG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmNvbmZpcm1lZCgpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICB0aGlzLnByb3BlcnR5U2VydmljZS51cGRhdGVBZ2VudCh0aGlzLmlkLCB7IHVzZXJJZDogcmVzIH0pLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVzKVxuICAgICAgICAgICAgICB0aGlzLmdldEFnZW50UHVibGljSW5mbyhyZXMuZGF0YS5hZ2VudElkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pO1xuXG4gIH1cbn1cbiIsIkBpZiAocHJvcGVydHkpIHtcbiAgPHJvbGF0ZWNoLXRvb2xiYXIgW3RpdGxlXT1cInN0YXR1c1twcm9wZXJ0eS5zdGF0dXNdXCIgbGFyZ2UgbGluaz1cIi4uLy4uL1wiPlxuICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIChjbGljayk9XCJhcHByb3ZlKClcIiBpMThuPkFwcHJvdmU8L2J1dHRvbj5cbiAgICA8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT1cInJlamVjdCgpXCIgaTE4bj5SZWplY3Q8L2J1dHRvbj5cbiAgPC9yb2xhdGVjaC10b29sYmFyPlxuICA8ZGl2IGNsYXNzPVwicHgtNFwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IG1iLTMyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIG1kOnctMi8zIHAtM1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZyBmb250LWJvbGQgcHktMlwiPnt7IHByb3BlcnR5LnRpdGxlIH19PC9kaXY+XG4gICAgICAgIDxociBjbGFzcz1cIm1iLTJcIiAvPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgcHktMlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IHctZnVsbCBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiB3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5saW5lLWZsZXggZ2FwLTFcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXItMVwiPnt7IHByb3BlcnR5LmJlZHJvb21zIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBpMThuPkJlZHJvb21zPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yLTFcIj57eyBwcm9wZXJ0eS5iYXRocm9vbXMgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGkxOG4+QmF0aHJvb21zPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yLTFcIj57eyBwcm9wZXJ0eS5yZWNlcHRpb25zIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBpMThuPlJlY2VwdGlvbnM8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc21cIj7Co3t7IHByb3BlcnR5LnByaWNlIHwgZml4ZWQgfX08L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGlkZGVuIG1kOmZsZXggZmxleC1jb2wgcHgtM1wiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHJvbGF0ZWNoLXByb3BlcnR5LW1lZGlhIFttZWRpYV09XCJwcm9wZXJ0eS5tZWRpYVwiPjwvcm9sYXRlY2gtcHJvcGVydHktbWVkaWE+XG4gICAgICAgIDxyb2xhdGVjaC1wcm9wZXJ0eS1vd25lci1yZW5kZXJlclxuICAgICAgICAgIFtuYW1lXT1cInVzZXJGdWxsTmFtZVwiXG4gICAgICAgICAgW2F2YXRhcl09XCJ1c2VyPy5hdmF0YXJcIlxuICAgICAgICAgIFt1c2VybmFtZV09XCJ1c2VyPy51c2VybmFtZVwiXG4gICAgICAgID48L3JvbGF0ZWNoLXByb3BlcnR5LW93bmVyLXJlbmRlcmVyPlxuICAgICAgICA8cm9sYXRlY2gtcHJvcGVydHktZmVhdHVyZXMgW2ZlYXR1cmVzXT1cInByb3BlcnR5LmZlYXR1cmVzXCI+PC9yb2xhdGVjaC1wcm9wZXJ0eS1mZWF0dXJlcz5cbiAgICAgICAgPHJvbGF0ZWNoLXByb3BlcnR5LWxvY2F0aW9uIFtsb2NhdGlvbl09XCJwcm9wZXJ0eS5sb2NhdGlvblwiPjwvcm9sYXRlY2gtcHJvcGVydHktbG9jYXRpb24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgbWQ6dy0xLzMgcC0zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gaC0xNFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxnIGZvbnQtYm9sZCBweS0yXCIgaTE4bj5BZ2VudDwvZGl2PlxuICAgICAgICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIChjbGljayk9XCJ1cGRhdGVBZ2VudCgpXCIgaTE4bj5VcGRhdGUgQWdlbnQ8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIEBpZiAoYWdlbnQpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMSBtdC0zXCI+XG4gICAgICAgICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIkZpcnN0IE5hbWVcIiBbdGl0bGVdPVwiYWdlbnQuZmlyc3ROYW1lXCI+PC9yb2xhdGVjaC1yaWNoLWxhYmVsPlxuICAgICAgICAgICAgPHJvbGF0ZWNoLXJpY2gtbGFiZWwgbGFiZWw9XCJMYXN0IE5hbWVcIiBbdGl0bGVdPVwiYWdlbnQubGFzdE5hbWVcIj48L3JvbGF0ZWNoLXJpY2gtbGFiZWw+XG4gICAgICAgICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIkVtYWlsXCIgW3RpdGxlXT1cImFnZW50LmVtYWlsXCI+PC9yb2xhdGVjaC1yaWNoLWxhYmVsPlxuICAgICAgICAgICAgPHJvbGF0ZWNoLXJpY2gtbGFiZWwgbGFiZWw9XCJQaG9uZVwiIFt0aXRsZV09XCJhZ2VudC5waG9uZVwiPjwvcm9sYXRlY2gtcmljaC1sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGRpdj5BZ2VudCBub3Qgc2V0PC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbn1cbiJdfQ==","import { PropertyReviewIndexComponent } from './property-review-index/property-review-index.component';\nimport { PropertyReviewDetailComponent } from './property-review-detail/property-review-detail.component';\nexport const propertyReviewRoutes = [\n {\n path: '',\n component: PropertyReviewIndexComponent,\n },\n {\n path: 'properties/:id',\n component: PropertyReviewDetailComponent,\n },\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktcmV2aWV3LnJvdXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS1yZXZpZXcvcHJvcGVydHktcmV2aWV3LnJvdXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUUxRyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBVztJQUMxQztRQUNFLElBQUksRUFBRSxFQUFFO1FBQ1IsU0FBUyxFQUFFLDRCQUE0QjtLQUN4QztJQUNEO1FBQ0UsSUFBSSxFQUFFLGdCQUFnQjtRQUN0QixTQUFTLEVBQUUsNkJBQTZCO0tBQ3pDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBQcm9wZXJ0eVJldmlld0luZGV4Q29tcG9uZW50IH0gZnJvbSAnLi9wcm9wZXJ0eS1yZXZpZXctaW5kZXgvcHJvcGVydHktcmV2aWV3LWluZGV4LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9wZXJ0eVJldmlld0RldGFpbENvbXBvbmVudCB9IGZyb20gJy4vcHJvcGVydHktcmV2aWV3LWRldGFpbC9wcm9wZXJ0eS1yZXZpZXctZGV0YWlsLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjb25zdCBwcm9wZXJ0eVJldmlld1JvdXRlczogUm91dGVzID0gW1xuICB7XG4gICAgcGF0aDogJycsXG4gICAgY29tcG9uZW50OiBQcm9wZXJ0eVJldmlld0luZGV4Q29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ3Byb3BlcnRpZXMvOmlkJyxcbiAgICBjb21wb25lbnQ6IFByb3BlcnR5UmV2aWV3RGV0YWlsQ29tcG9uZW50LFxuICB9LFxuXTtcbiJdfQ==","import { Component, input, output } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { AngularCommonModule, OptionsFormatPipe } from '@rolatech/angular-common';\nimport { AngularComponentsModule } from '@rolatech/angular-components';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\nimport * as i2 from \"@angular/material/divider\";\nimport * as i3 from \"@angular/material/icon\";\nexport class FeatureManageItemComponent {\n feature = input.required(...(ngDevMode ? [{ debugName: \"feature\" }] : []));\n addOnBlur = true;\n delete = output();\n save = output();\n edit = output();\n onDelete() {\n this.delete.emit(this.feature());\n }\n onSave() {\n this.save.emit(this.feature());\n }\n onEdit() {\n this.edit.emit(this.feature());\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: FeatureManageItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.2.0\", type: FeatureManageItemComponent, isStandalone: true, selector: \"rolatech-feature-manage-item\", inputs: { feature: { classPropertyName: \"feature\", publicName: \"feature\", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { delete: \"delete\", save: \"save\", edit: \"edit\" }, ngImport: i0, template: \"<div class=\\\"group flex justify-between items-center h-14 hover:bg-[--rt-raised-background] cursor-pointer px-2\\\">\\n <div class=\\\"flex\\\">\\n <div class=\\\"min-w-[150px] mr-3\\\">{{ feature().name }}</div>\\n <div class=\\\"overflow-hidden line-clamp-1\\\">\\n {{ feature().values! | options }}\\n </div>\\n </div>\\n <div class=\\\"flex justify-end max-w-24 w-24 invisible group-hover:visible\\\">\\n <button mat-icon-button (click)=\\\"onEdit()\\\">\\n <mat-icon>edit</mat-icon>\\n </button>\\n <button mat-icon-button (click)=\\\"onDelete()\\\">\\n <mat-icon>delete</mat-icon>\\n </button>\\n </div>\\n</div>\\n<mat-divider></mat-divider>\\n\", styles: [\"mat-icon{scale:.9}\\n\"], dependencies: [{ kind: \"ngmodule\", type: MatChipsModule }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i1.MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"ngmodule\", type: AngularCommonModule }, { kind: \"ngmodule\", type: AngularComponentsModule }, { kind: \"component\", type: i2.MatDivider, selector: \"mat-divider\", inputs: [\"vertical\", \"inset\"] }, { kind: \"component\", type: i3.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"pipe\", type: OptionsFormatPipe, name: \"options\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: FeatureManageItemComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-feature-manage-item', imports: [\n MatChipsModule,\n MatButtonModule,\n MatFormFieldModule,\n AngularCommonModule,\n AngularComponentsModule,\n MatIconModule,\n OptionsFormatPipe,\n ], template: \"<div class=\\\"group flex justify-between items-center h-14 hover:bg-[--rt-raised-background] cursor-pointer px-2\\\">\\n <div class=\\\"flex\\\">\\n <div class=\\\"min-w-[150px] mr-3\\\">{{ feature().name }}</div>\\n <div class=\\\"overflow-hidden line-clamp-1\\\">\\n {{ feature().values! | options }}\\n </div>\\n </div>\\n <div class=\\\"flex justify-end max-w-24 w-24 invisible group-hover:visible\\\">\\n <button mat-icon-button (click)=\\\"onEdit()\\\">\\n <mat-icon>edit</mat-icon>\\n </button>\\n <button mat-icon-button (click)=\\\"onDelete()\\\">\\n <mat-icon>delete</mat-icon>\\n </button>\\n </div>\\n</div>\\n<mat-divider></mat-divider>\\n\", styles: [\"mat-icon{scale:.9}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1tYW5hZ2UtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvY29tcG9uZW50cy9mZWF0dXJlLW1hbmFnZS1pdGVtL2ZlYXR1cmUtbWFuYWdlLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvZmVhdHVyZS1tYW5hZ2UtaXRlbS9mZWF0dXJlLW1hbmFnZS1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7QUFpQnZFLE1BQU0sT0FBTywwQkFBMEI7SUFDckMsT0FBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLGtEQUFXLENBQUM7SUFDcEMsU0FBUyxHQUFHLElBQUksQ0FBQztJQUNqQixNQUFNLEdBQUcsTUFBTSxFQUFXLENBQUM7SUFDM0IsSUFBSSxHQUFHLE1BQU0sRUFBVyxDQUFDO0lBQ3pCLElBQUksR0FBRyxNQUFNLEVBQVcsQ0FBQztJQUV6QixRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUNELE1BQU07UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsTUFBTTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7dUdBZlUsMEJBQTBCOzJGQUExQiwwQkFBMEIsNFJDdkJ2Qywwb0JBaUJBLDZFRExJLGNBQWMsOEJBQ2QsZUFBZSxxTkFDZixrQkFBa0IsOEJBQ2xCLG1CQUFtQiw4QkFDbkIsdUJBQXVCLHVSQUN2QixhQUFhLDBCQUNiLGlCQUFpQjs7MkZBS1IsMEJBQTBCO2tCQWR0QyxTQUFTOytCQUNFLDhCQUE4QixXQUMvQjt3QkFDUCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIsYUFBYTt3QkFDYixpQkFBaUI7cUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0Q2hpcHNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IEFuZ3VsYXJDb21tb25Nb2R1bGUsIE9wdGlvbnNGb3JtYXRQaXBlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9mZWF0dXJlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtZmVhdHVyZS1tYW5hZ2UtaXRlbScsXG4gIGltcG9ydHM6IFtcbiAgICBNYXRDaGlwc01vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIEFuZ3VsYXJDb21tb25Nb2R1bGUsXG4gICAgQW5ndWxhckNvbXBvbmVudHNNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBPcHRpb25zRm9ybWF0UGlwZSxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZlYXR1cmUtbWFuYWdlLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZmVhdHVyZS1tYW5hZ2UtaXRlbS5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIEZlYXR1cmVNYW5hZ2VJdGVtQ29tcG9uZW50IHtcbiAgZmVhdHVyZSA9IGlucHV0LnJlcXVpcmVkPEZlYXR1cmU+KCk7XG4gIGFkZE9uQmx1ciA9IHRydWU7XG4gIGRlbGV0ZSA9IG91dHB1dDxGZWF0dXJlPigpO1xuICBzYXZlID0gb3V0cHV0PEZlYXR1cmU+KCk7XG4gIGVkaXQgPSBvdXRwdXQ8RmVhdHVyZT4oKTtcblxuICBvbkRlbGV0ZSgpIHtcbiAgICB0aGlzLmRlbGV0ZS5lbWl0KHRoaXMuZmVhdHVyZSgpKTtcbiAgfVxuICBvblNhdmUoKSB7XG4gICAgdGhpcy5zYXZlLmVtaXQodGhpcy5mZWF0dXJlKCkpO1xuICB9XG4gIG9uRWRpdCgpIHtcbiAgICB0aGlzLmVkaXQuZW1pdCh0aGlzLmZlYXR1cmUoKSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJncm91cCBmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgaC0xNCBob3ZlcjpiZy1bLS1ydC1yYWlzZWQtYmFja2dyb3VuZF0gY3Vyc29yLXBvaW50ZXIgcHgtMlwiPlxuICA8ZGl2IGNsYXNzPVwiZmxleFwiPlxuICAgIDxkaXYgY2xhc3M9XCJtaW4tdy1bMTUwcHhdIG1yLTNcIj57eyBmZWF0dXJlKCkubmFtZSB9fTwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJvdmVyZmxvdy1oaWRkZW4gbGluZS1jbGFtcC0xXCI+XG4gICAgICB7eyBmZWF0dXJlKCkudmFsdWVzISB8IG9wdGlvbnMgfX1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktZW5kIG1heC13LTI0IHctMjQgaW52aXNpYmxlIGdyb3VwLWhvdmVyOnZpc2libGVcIj5cbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwib25FZGl0KClcIj5cbiAgICAgIDxtYXQtaWNvbj5lZGl0PC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwib25EZWxldGUoKVwiPlxuICAgICAgPG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG48bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiJdfQ==","import { Component, output } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { AngularComponentsModule } from '@rolatech/angular-components';\nimport { ENTER, COMMA } from '@angular/cdk/keycodes';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/chips\";\nimport * as i2 from \"@angular/material/button\";\nimport * as i3 from \"@angular/material/form-field\";\nimport * as i4 from \"@angular/forms\";\nimport * as i5 from \"@angular/material/icon\";\nimport * as i6 from \"@angular/material/input\";\nexport class FeatureManageItemAddComponent {\n feature = {\n id: '',\n name: '',\n values: [],\n };\n addOnBlur = true;\n separatorKeysCodes = [ENTER, COMMA];\n cancel = output();\n save = output();\n action = true;\n output = output();\n onCancel() {\n this.cancel.emit();\n }\n onSave() {\n this.save.emit(this.feature);\n }\n addFeatureValues(event) {\n const value = (event.value || '').trim();\n const exists = this.feature.values.some((item) => item.name.toLowerCase() === value.toLowerCase());\n if (value && !exists) {\n this.feature.values.push({ id: '', name: value });\n }\n event.chipInput.clear();\n }\n removeValue(value) {\n if (value) {\n const index = this.feature.values.findIndex((item) => item.name === value.name);\n this.feature.values?.splice(index, 1);\n }\n }\n ngDoCheck() {\n this.output.emit(this.feature);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: FeatureManageItemAddComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: FeatureManageItemAddComponent, isStandalone: true, selector: \"rolatech-feature-manage-item-add\", outputs: { cancel: \"cancel\", save: \"save\", output: \"output\" }, ngImport: i0, template: \"<div class=\\\"flex flex-col\\\">\\n <div class=\\\"p-1\\\" i18n>Feature</div>\\n <form>\\n <mat-form-field appearance=\\\"fill\\\">\\n <input matInput placeholder=\\\"Name\\\" type=\\\"text\\\" [(ngModel)]=\\\"feature.name\\\" [ngModelOptions]=\\\"{ standalone: true }\\\" i18n />\\n </mat-form-field>\\n <mat-form-field>\\n <mat-chip-grid #chipGrid aria-label=\\\"Enter values\\\">\\n @for (value of feature.values; track value) {\\n <mat-chip-row\\n (removed)=\\\"removeValue(value)\\\"\\n [editable]=\\\"true\\\"\\n [aria-description]=\\\"'press enter to edit ' + value.name\\\"\\n >\\n {{ value.name }}\\n <button matChipRemove [attr.aria-label]=\\\"'remove ' + value.name\\\">\\n <mat-icon>cancel</mat-icon>\\n </button>\\n </mat-chip-row>\\n }\\n <input\\n placeholder=\\\"Value\\\"\\n [matChipInputFor]=\\\"chipGrid\\\"\\n [matChipInputSeparatorKeyCodes]=\\\"separatorKeysCodes\\\"\\n [matChipInputAddOnBlur]=\\\"addOnBlur\\\"\\n (matChipInputTokenEnd)=\\\"addFeatureValues($event)\\\"\\n i18n\\n />\\n </mat-chip-grid>\\n </mat-form-field>\\n </form>\\n</div>\\n@if (action) {\\n <div class=\\\"flex items-center justify-end\\\">\\n <button mat-button (click)=\\\"onCancel()\\\" i18n>Cancel</button>\\n <button mat-flat-button (click)=\\\"onSave()\\\" i18n>Save</button>\\n </div>\\n}\\n\", styles: [\"mat-form-field{width:100%}\\n\"], dependencies: [{ kind: \"ngmodule\", type: MatChipsModule }, { kind: \"component\", type: i1.MatChipGrid, selector: \"mat-chip-grid\", inputs: [\"disabled\", \"placeholder\", \"required\", \"value\", \"errorStateMatcher\"], outputs: [\"change\", \"valueChange\"] }, { kind: \"directive\", type: i1.MatChipInput, selector: \"input[matChipInputFor]\", inputs: [\"matChipInputFor\", \"matChipInputAddOnBlur\", \"matChipInputSeparatorKeyCodes\", \"placeholder\", \"id\", \"disabled\", \"readonly\", \"matChipInputDisabledInteractive\"], outputs: [\"matChipInputTokenEnd\"], exportAs: [\"matChipInput\", \"matChipInputFor\"] }, { kind: \"directive\", type: i1.MatChipRemove, selector: \"[matChipRemove]\" }, { kind: \"component\", type: i1.MatChipRow, selector: \"mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]\", inputs: [\"editable\"], outputs: [\"edited\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i2.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"component\", type: i3.MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"ngmodule\", type: AngularCommonModule }, { kind: \"directive\", type: i4.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i4.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: i4.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i4.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i4.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"directive\", type: i4.NgForm, selector: \"form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]\", inputs: [\"ngFormOptions\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"ngmodule\", type: AngularComponentsModule }, { kind: \"component\", type: i5.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"directive\", type: i6.MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\", \"disabledInteractive\"], exportAs: [\"matInput\"] }, { kind: \"ngmodule\", type: MatIconModule }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: FeatureManageItemAddComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-feature-manage-item-add', imports: [MatChipsModule, MatButtonModule, MatFormFieldModule, AngularCommonModule, AngularComponentsModule, MatIconModule], template: \"<div class=\\\"flex flex-col\\\">\\n <div class=\\\"p-1\\\" i18n>Feature</div>\\n <form>\\n <mat-form-field appearance=\\\"fill\\\">\\n <input matInput placeholder=\\\"Name\\\" type=\\\"text\\\" [(ngModel)]=\\\"feature.name\\\" [ngModelOptions]=\\\"{ standalone: true }\\\" i18n />\\n </mat-form-field>\\n <mat-form-field>\\n <mat-chip-grid #chipGrid aria-label=\\\"Enter values\\\">\\n @for (value of feature.values; track value) {\\n <mat-chip-row\\n (removed)=\\\"removeValue(value)\\\"\\n [editable]=\\\"true\\\"\\n [aria-description]=\\\"'press enter to edit ' + value.name\\\"\\n >\\n {{ value.name }}\\n <button matChipRemove [attr.aria-label]=\\\"'remove ' + value.name\\\">\\n <mat-icon>cancel</mat-icon>\\n </button>\\n </mat-chip-row>\\n }\\n <input\\n placeholder=\\\"Value\\\"\\n [matChipInputFor]=\\\"chipGrid\\\"\\n [matChipInputSeparatorKeyCodes]=\\\"separatorKeysCodes\\\"\\n [matChipInputAddOnBlur]=\\\"addOnBlur\\\"\\n (matChipInputTokenEnd)=\\\"addFeatureValues($event)\\\"\\n i18n\\n />\\n </mat-chip-grid>\\n </mat-form-field>\\n </form>\\n</div>\\n@if (action) {\\n <div class=\\\"flex items-center justify-end\\\">\\n <button mat-button (click)=\\\"onCancel()\\\" i18n>Cancel</button>\\n <button mat-flat-button (click)=\\\"onSave()\\\" i18n>Save</button>\\n </div>\\n}\\n\", styles: [\"mat-form-field{width:100%}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1tYW5hZ2UtaXRlbS1hZGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvZmVhdHVyZS1tYW5hZ2UtaXRlbS1hZGQvZmVhdHVyZS1tYW5hZ2UtaXRlbS1hZGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvZmVhdHVyZS1tYW5hZ2UtaXRlbS1hZGQvZmVhdHVyZS1tYW5hZ2UtaXRlbS1hZGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVyxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBcUIsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7O0FBU3JELE1BQU0sT0FBTyw2QkFBNkI7SUFDeEMsT0FBTyxHQUFZO1FBQ2pCLEVBQUUsRUFBRSxFQUFFO1FBQ04sSUFBSSxFQUFFLEVBQUU7UUFDUixNQUFNLEVBQUUsRUFBRTtLQUNYLENBQUM7SUFDRixTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ1Isa0JBQWtCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFVLENBQUM7SUFDdEQsTUFBTSxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBQ2xCLElBQUksR0FBRyxNQUFNLEVBQVcsQ0FBQztJQUN6QixNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ2QsTUFBTSxHQUFHLE1BQU0sRUFBTyxDQUFDO0lBRXZCLFFBQVE7UUFDTixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUF3QjtRQUN2QyxNQUFNLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ25HLElBQUksS0FBSyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBQ0QsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBQ0QsV0FBVyxDQUFDLEtBQVU7UUFDcEIsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUNELFNBQVM7UUFDUCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQzt1R0FwQ1UsNkJBQTZCOzJGQUE3Qiw2QkFBNkIsMkpDaEIxQyw4M0NBc0NBLHFGRDFCWSxjQUFjLDJ4QkFBRSxlQUFlLG1YQUFFLGtCQUFrQix5T0FBRSxtQkFBbUIsdWlDQUFFLHVCQUF1QixzaEJBQUUsYUFBYTs7MkZBSS9HLDZCQUE2QjtrQkFOekMsU0FBUzsrQkFDRSxrQ0FBa0MsV0FDbkMsQ0FBQyxjQUFjLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRG9DaGVjaywgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0Q2hpcElucHV0RXZlbnQsIE1hdENoaXBzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBBbmd1bGFyQ29tbW9uTW9kdWxlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBFTlRFUiwgQ09NTUEgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZmVhdHVyZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWZlYXR1cmUtbWFuYWdlLWl0ZW0tYWRkJyxcbiAgaW1wb3J0czogW01hdENoaXBzTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsIE1hdEZvcm1GaWVsZE1vZHVsZSwgQW5ndWxhckNvbW1vbk1vZHVsZSwgQW5ndWxhckNvbXBvbmVudHNNb2R1bGUsIE1hdEljb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vZmVhdHVyZS1tYW5hZ2UtaXRlbS1hZGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZmVhdHVyZS1tYW5hZ2UtaXRlbS1hZGQuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBGZWF0dXJlTWFuYWdlSXRlbUFkZENvbXBvbmVudCBpbXBsZW1lbnRzIERvQ2hlY2sge1xuICBmZWF0dXJlOiBGZWF0dXJlID0ge1xuICAgIGlkOiAnJyxcbiAgICBuYW1lOiAnJyxcbiAgICB2YWx1ZXM6IFtdLFxuICB9O1xuICBhZGRPbkJsdXIgPSB0cnVlO1xuICByZWFkb25seSBzZXBhcmF0b3JLZXlzQ29kZXMgPSBbRU5URVIsIENPTU1BXSBhcyBjb25zdDtcbiAgY2FuY2VsID0gb3V0cHV0KCk7XG4gIHNhdmUgPSBvdXRwdXQ8RmVhdHVyZT4oKTtcbiAgYWN0aW9uID0gdHJ1ZTtcbiAgb3V0cHV0ID0gb3V0cHV0PGFueT4oKTtcblxuICBvbkNhbmNlbCgpIHtcbiAgICB0aGlzLmNhbmNlbC5lbWl0KCk7XG4gIH1cbiAgb25TYXZlKCkge1xuICAgIHRoaXMuc2F2ZS5lbWl0KHRoaXMuZmVhdHVyZSk7XG4gIH1cblxuICBhZGRGZWF0dXJlVmFsdWVzKGV2ZW50OiBNYXRDaGlwSW5wdXRFdmVudCkge1xuICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnZhbHVlIHx8ICcnKS50cmltKCk7XG4gICAgY29uc3QgZXhpc3RzID0gdGhpcy5mZWF0dXJlLnZhbHVlcy5zb21lKChpdGVtKSA9PiBpdGVtLm5hbWUudG9Mb3dlckNhc2UoKSA9PT0gdmFsdWUudG9Mb3dlckNhc2UoKSk7XG4gICAgaWYgKHZhbHVlICYmICFleGlzdHMpIHtcbiAgICAgIHRoaXMuZmVhdHVyZS52YWx1ZXMucHVzaCh7IGlkOiAnJywgbmFtZTogdmFsdWUgfSk7XG4gICAgfVxuICAgIGV2ZW50LmNoaXBJbnB1dC5jbGVhcigpO1xuICB9XG4gIHJlbW92ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5mZWF0dXJlLnZhbHVlcy5maW5kSW5kZXgoKGl0ZW06IGFueSkgPT4gaXRlbS5uYW1lID09PSB2YWx1ZS5uYW1lKTtcbiAgICAgIHRoaXMuZmVhdHVyZS52YWx1ZXM/LnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuICB9XG4gIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICB0aGlzLm91dHB1dC5lbWl0KHRoaXMuZmVhdHVyZSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sXCI+XG4gIDxkaXYgY2xhc3M9XCJwLTFcIiBpMThuPkZlYXR1cmU8L2Rpdj5cbiAgPGZvcm0+XG4gICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJOYW1lXCIgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cImZlYXR1cmUubmFtZVwiIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiIGkxOG4gLz5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgIDxtYXQtY2hpcC1ncmlkICNjaGlwR3JpZCBhcmlhLWxhYmVsPVwiRW50ZXIgdmFsdWVzXCI+XG4gICAgICAgIEBmb3IgKHZhbHVlIG9mIGZlYXR1cmUudmFsdWVzOyB0cmFjayB2YWx1ZSkge1xuICAgICAgICAgIDxtYXQtY2hpcC1yb3dcbiAgICAgICAgICAgIChyZW1vdmVkKT1cInJlbW92ZVZhbHVlKHZhbHVlKVwiXG4gICAgICAgICAgICBbZWRpdGFibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbYXJpYS1kZXNjcmlwdGlvbl09XCIncHJlc3MgZW50ZXIgdG8gZWRpdCAnICsgdmFsdWUubmFtZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgdmFsdWUubmFtZSB9fVxuICAgICAgICAgICAgPGJ1dHRvbiBtYXRDaGlwUmVtb3ZlIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3JlbW92ZSAnICsgdmFsdWUubmFtZVwiPlxuICAgICAgICAgICAgICA8bWF0LWljb24+Y2FuY2VsPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvbWF0LWNoaXAtcm93PlxuICAgICAgICB9XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiVmFsdWVcIlxuICAgICAgICAgIFttYXRDaGlwSW5wdXRGb3JdPVwiY2hpcEdyaWRcIlxuICAgICAgICAgIFttYXRDaGlwSW5wdXRTZXBhcmF0b3JLZXlDb2Rlc109XCJzZXBhcmF0b3JLZXlzQ29kZXNcIlxuICAgICAgICAgIFttYXRDaGlwSW5wdXRBZGRPbkJsdXJdPVwiYWRkT25CbHVyXCJcbiAgICAgICAgICAobWF0Q2hpcElucHV0VG9rZW5FbmQpPVwiYWRkRmVhdHVyZVZhbHVlcygkZXZlbnQpXCJcbiAgICAgICAgICBpMThuXG4gICAgICAgIC8+XG4gICAgICA8L21hdC1jaGlwLWdyaWQ+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9mb3JtPlxuPC9kaXY+XG5AaWYgKGFjdGlvbikge1xuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1lbmRcIj5cbiAgICA8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT1cIm9uQ2FuY2VsKClcIiBpMThuPkNhbmNlbDwvYnV0dG9uPlxuICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIChjbGljayk9XCJvblNhdmUoKVwiIGkxOG4+U2F2ZTwvYnV0dG9uPlxuICA8L2Rpdj5cbn1cbiJdfQ==","import { Component, inject, viewChild } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { BaseComponent, ConfirmationDialogComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { map, startWith } from 'rxjs';\nimport { ENTER, COMMA } from '@angular/cdk/keycodes';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatOptionModule } from '@angular/material/core';\nimport { findIndex } from 'lodash';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { FeatureService } from '@rolatech/angular-services';\nimport { FeatureManageItemComponent } from '../../../components/feature-manage-item/feature-manage-item.component';\nimport { FeatureManageItemAddComponent } from '../../../components/feature-manage-item-add/feature-manage-item-add.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/icon\";\nimport * as i2 from \"@angular/material/button\";\nexport class FeatureManageIndexComponent extends BaseComponent {\n featureService = inject(FeatureService);\n features = [];\n selectedFeatures = [];\n filteredFeatures;\n addOnBlur = true;\n add = false;\n allowFreeTextAddFeature = false;\n featureControl = new FormControl();\n separatorKeysCodes = [ENTER, COMMA];\n featureInput = viewChild.required('featureInput');\n matAutocomplete = viewChild('auto', ...(ngDevMode ? [{ debugName: \"matAutocomplete\" }] : []));\n ngOnInit() {\n this.findFeatures();\n }\n findFeatures() {\n this.featureService.find({}).subscribe({\n next: (res) => {\n this.features = res.data || [];\n this.filteredFeatures = this.featureControl.valueChanges.pipe(startWith(null), map((featureName) => {\n return this.filterOnInputChange(featureName);\n }));\n },\n });\n }\n saveFeature(feature) {\n console.log(feature);\n this.featureService.addFeature(feature).subscribe({\n next: (res) => {\n this.features.push(res.data);\n this.add = false;\n },\n });\n }\n onUpdateFeature(feature) {\n const features = {\n title: 'Edit feature',\n cancelText: 'Cancel',\n confirmText: 'Confirm',\n data: {\n feature: feature,\n action: false,\n },\n component: FeatureManageItemAddComponent,\n };\n this.dialogService.open(features);\n this.dialogService.confirmed().subscribe({\n next: (res) => {\n if (res) {\n this.featureService.update(feature.id, res).subscribe({\n next: (res) => {\n feature.values = res.data.values;\n },\n });\n }\n },\n });\n }\n onDeleteFeature(feature) {\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\n width: '400px',\n data: {\n title: 'Delete feature',\n message: `Confirm delete ${feature.name} ?`,\n },\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.featureService.delete(feature.id).subscribe({\n next: (res) => {\n const index = this.features.findIndex((item) => item.id === feature.id);\n this.features.splice(index, 1);\n this.snackBarService.open('Delete successfully');\n },\n });\n }\n });\n }\n // addFeature(event: MatChipInputEvent) {\n // const value = (event.value || '').trim();\n // if (value) {\n // this.features.push({ id: '', name: value });\n // }\n // event.chipInput.clear();\n // }\n filterOnInputChange(featureName) {\n const featuresLessSelected = this.features.filter((engineer) => findIndex(this.selectedFeatures, (item) => item.name === engineer.name) < 0);\n return featureName\n ? this.filterFeature(featuresLessSelected, featureName)\n : featuresLessSelected.map((feature) => feature.name);\n }\n filterFeature(featureList, featureName) {\n let filteredFeatureList = [];\n const filterValue = featureName.toLowerCase();\n const featuresMatchingFeatureName = featureList.filter((feature) => feature.name.toLowerCase().indexOf(filterValue) === 0);\n if (featuresMatchingFeatureName.length || this.allowFreeTextAddFeature) {\n filteredFeatureList = featuresMatchingFeatureName;\n }\n else {\n filteredFeatureList = featureList;\n }\n return filteredFeatureList.map((feature) => feature.name);\n }\n remove(feature) {\n const index = findIndex(this.selectedFeatures, (item) => item.name === feature.name);\n if (index > -1) {\n this.selectedFeatures.splice(index, 1);\n this.resetInputs();\n }\n }\n selected(event) {\n this.selectFeatureByName(event.option.value);\n this.resetInputs();\n }\n selectFeatureByName(featureName) {\n const foundFeature = this.features.filter((item) => item.name == featureName);\n this.selectedFeatures.push(foundFeature[0]);\n }\n resetInputs() {\n this.featureInput().nativeElement.value = '';\n this.featureControl.setValue(null);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: FeatureManageIndexComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: FeatureManageIndexComponent, isStandalone: true, selector: \"rolatech-feature-manage-index\", viewQueries: [{ propertyName: \"featureInput\", first: true, predicate: [\"featureInput\"], descendants: true, isSignal: true }, { propertyName: \"matAutocomplete\", first: true, predicate: [\"auto\"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: \"<rolatech-toolbar title=\\\"Features\\\">\\n <div class=\\\"flex items-center gap-2\\\">\\n <button mat-flat-button routerLink=\\\"./create\\\">\\n <mat-icon>add</mat-icon>\\n <span i18n>Add Feature</span>\\n </button>\\n </div>\\n</rolatech-toolbar>\\n<div class=\\\"p-3\\\">\\n @for (item of features; track $index) {\\n <rolatech-feature-manage-item\\n [feature]=\\\"item\\\"\\n (delete)=\\\"onDeleteFeature($event)\\\"\\n (edit)=\\\"onUpdateFeature($event)\\\"\\n ></rolatech-feature-manage-item>\\n }\\n <div class=\\\"mt-3\\\">\\n @if (add) {\\n <rolatech-feature-manage-item-add (save)=\\\"saveFeature($event)\\\" (cancel)=\\\"add = false\\\"></rolatech-feature-manage-item-add>\\n } @else {\\n <button mat-stroked-button (click)=\\\"add = true\\\">\\n <mat-icon>add</mat-icon>\\n <span i18n>Add</span>\\n </button>\\n }\\n </div>\\n</div>\\n\", styles: [\".features-chip-list{width:100%}\\n\"], dependencies: [{ kind: \"ngmodule\", type: MatDividerModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"ngmodule\", type: MatChipsModule }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i1.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"ngmodule\", type: MatAutocompleteModule }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i2.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatOptionModule }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"component\", type: FeatureManageItemComponent, selector: \"rolatech-feature-manage-item\", inputs: [\"feature\"], outputs: [\"delete\", \"save\", \"edit\"] }, { kind: \"component\", type: FeatureManageItemAddComponent, selector: \"rolatech-feature-manage-item-add\", outputs: [\"cancel\", \"save\", \"output\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: FeatureManageIndexComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-feature-manage-index', imports: [\n MatDividerModule,\n FormsModule,\n MatFormFieldModule,\n MatChipsModule,\n MatIconModule,\n MatAutocompleteModule,\n ReactiveFormsModule,\n MatButtonModule,\n MatOptionModule,\n ToolbarComponent,\n FeatureManageItemComponent,\n FeatureManageItemAddComponent,\n ], template: \"<rolatech-toolbar title=\\\"Features\\\">\\n <div class=\\\"flex items-center gap-2\\\">\\n <button mat-flat-button routerLink=\\\"./create\\\">\\n <mat-icon>add</mat-icon>\\n <span i18n>Add Feature</span>\\n </button>\\n </div>\\n</rolatech-toolbar>\\n<div class=\\\"p-3\\\">\\n @for (item of features; track $index) {\\n <rolatech-feature-manage-item\\n [feature]=\\\"item\\\"\\n (delete)=\\\"onDeleteFeature($event)\\\"\\n (edit)=\\\"onUpdateFeature($event)\\\"\\n ></rolatech-feature-manage-item>\\n }\\n <div class=\\\"mt-3\\\">\\n @if (add) {\\n <rolatech-feature-manage-item-add (save)=\\\"saveFeature($event)\\\" (cancel)=\\\"add = false\\\"></rolatech-feature-manage-item-add>\\n } @else {\\n <button mat-stroked-button (click)=\\\"add = true\\\">\\n <mat-icon>add</mat-icon>\\n <span i18n>Add</span>\\n </button>\\n }\\n </div>\\n</div>\\n\", styles: [\".features-chip-list{width:100%}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1tYW5hZ2UtaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL3BhZ2VzL2ZlYXR1cmUtbWFuYWdlL2ZlYXR1cmUtbWFuYWdlLWluZGV4L2ZlYXR1cmUtbWFuYWdlLWluZGV4LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9mZWF0dXJlLW1hbmFnZS9mZWF0dXJlLW1hbmFnZS1pbmRleC9mZWF0dXJlLW1hbmFnZS1pbmRleC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLDJCQUEyQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUcsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFekQsT0FBTyxFQUFFLEdBQUcsRUFBYyxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQW1CLHFCQUFxQixFQUFnQyxNQUFNLGdDQUFnQyxDQUFDO0FB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QTJCLHdWQ3JDeEMsNjFCQTJCQSwwRkROSSxnQkFBZ0IsOEJBQ2hCLFdBQVcsOEJBQ1gsa0JBQWtCLDhCQUNsQixjQUFjLDhCQUNkLGFBQWEsbUxBQ2IscUJBQXFCLDhCQUNyQixtQkFBbUIsOEJBQ25CLGVBQWUsbVhBQ2YsZUFBZSwrQkFDZixnQkFBZ0IsZ0lBQ2hCLDBCQUEwQixtSUFDMUIsNkJBQTZCOzsyRkFLcEIsMkJBQTJCO2tCQW5CdkMsU0FBUzsrQkFDRSwrQkFBK0IsV0FDaEM7d0JBQ1AsZ0JBQWdCO3dCQUNoQixXQUFXO3dCQUNYLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLHFCQUFxQjt3QkFDckIsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQiwwQkFBMEI7d0JBQzFCLDZCQUE2QjtxQkFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGluamVjdCwgT25Jbml0LCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50LCBDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnQsIFRvb2xiYXJDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0Q2hpcHNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9mZWF0dXJlJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFTlRFUiwgQ09NTUEgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlLCBNYXRBdXRvY29tcGxldGVNb2R1bGUsIE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgTWF0T3B0aW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBmaW5kSW5kZXggfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgTWF0RGl2aWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpdmlkZXInO1xuaW1wb3J0IHsgRmVhdHVyZVNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBGZWF0dXJlTWFuYWdlSXRlbUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvZmVhdHVyZS1tYW5hZ2UtaXRlbS9mZWF0dXJlLW1hbmFnZS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGZWF0dXJlTWFuYWdlSXRlbUFkZENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvZmVhdHVyZS1tYW5hZ2UtaXRlbS1hZGQvZmVhdHVyZS1tYW5hZ2UtaXRlbS1hZGQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtZmVhdHVyZS1tYW5hZ2UtaW5kZXgnLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0RGl2aWRlck1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0Q2hpcHNNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0T3B0aW9uTW9kdWxlLFxuICAgIFRvb2xiYXJDb21wb25lbnQsXG4gICAgRmVhdHVyZU1hbmFnZUl0ZW1Db21wb25lbnQsXG4gICAgRmVhdHVyZU1hbmFnZUl0ZW1BZGRDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9mZWF0dXJlLW1hbmFnZS1pbmRleC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9mZWF0dXJlLW1hbmFnZS1pbmRleC5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIEZlYXR1cmVNYW5hZ2VJbmRleENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBmZWF0dXJlU2VydmljZSA9IGluamVjdChGZWF0dXJlU2VydmljZSk7XG4gIGZlYXR1cmVzOiBGZWF0dXJlW10gPSBbXTtcbiAgc2VsZWN0ZWRGZWF0dXJlczogRmVhdHVyZVtdID0gW107XG4gIGZpbHRlcmVkRmVhdHVyZXMhOiBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcbiAgYWRkT25CbHVyID0gdHJ1ZTtcbiAgYWRkID0gZmFsc2U7XG4gIHByaXZhdGUgYWxsb3dGcmVlVGV4dEFkZEZlYXR1cmUgPSBmYWxzZTtcbiAgcHVibGljIGZlYXR1cmVDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG4gIHJlYWRvbmx5IHNlcGFyYXRvcktleXNDb2RlczogbnVtYmVyW10gPSBbRU5URVIsIENPTU1BXTtcbiAgZmVhdHVyZUlucHV0ID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4+KCdmZWF0dXJlSW5wdXQnKTtcbiAgbWF0QXV0b2NvbXBsZXRlID0gdmlld0NoaWxkPE1hdEF1dG9jb21wbGV0ZT4oJ2F1dG8nKTtcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5maW5kRmVhdHVyZXMoKTtcbiAgfVxuICBmaW5kRmVhdHVyZXMoKSB7XG4gICAgdGhpcy5mZWF0dXJlU2VydmljZS5maW5kKHt9KS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuZmVhdHVyZXMgPSByZXMuZGF0YSB8fCBbXTtcbiAgICAgICAgdGhpcy5maWx0ZXJlZEZlYXR1cmVzID0gdGhpcy5mZWF0dXJlQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICBzdGFydFdpdGgobnVsbCksXG4gICAgICAgICAgbWFwKChmZWF0dXJlTmFtZSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyT25JbnB1dENoYW5nZShmZWF0dXJlTmFtZSk7XG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIHNhdmVGZWF0dXJlKGZlYXR1cmU6IEZlYXR1cmUpIHtcbiAgICBjb25zb2xlLmxvZyhmZWF0dXJlKTtcbiAgICB0aGlzLmZlYXR1cmVTZXJ2aWNlLmFkZEZlYXR1cmUoZmVhdHVyZSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5mZWF0dXJlcy5wdXNoKHJlcy5kYXRhKTtcbiAgICAgICAgdGhpcy5hZGQgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgb25VcGRhdGVGZWF0dXJlKGZlYXR1cmU6IEZlYXR1cmUpIHtcbiAgICBjb25zdCBmZWF0dXJlcyA9IHtcbiAgICAgIHRpdGxlOiAnRWRpdCBmZWF0dXJlJyxcbiAgICAgIGNhbmNlbFRleHQ6ICdDYW5jZWwnLFxuICAgICAgY29uZmlybVRleHQ6ICdDb25maXJtJyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgZmVhdHVyZTogZmVhdHVyZSxcbiAgICAgICAgYWN0aW9uOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBjb21wb25lbnQ6IEZlYXR1cmVNYW5hZ2VJdGVtQWRkQ29tcG9uZW50LFxuICAgIH07XG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW4oZmVhdHVyZXMpO1xuICAgIHRoaXMuZGlhbG9nU2VydmljZS5jb25maXJtZWQoKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgdGhpcy5mZWF0dXJlU2VydmljZS51cGRhdGUoZmVhdHVyZS5pZCwgcmVzKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICAgICAgICBmZWF0dXJlLnZhbHVlcyA9IHJlcy5kYXRhLnZhbHVlcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgb25EZWxldGVGZWF0dXJlKGZlYXR1cmU6IEZlYXR1cmUpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgd2lkdGg6ICc0MDBweCcsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHRpdGxlOiAnRGVsZXRlIGZlYXR1cmUnLFxuICAgICAgICBtZXNzYWdlOiBgQ29uZmlybSBkZWxldGUgJHtmZWF0dXJlLm5hbWV9ID9gLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIHRoaXMuZmVhdHVyZVNlcnZpY2UuZGVsZXRlKGZlYXR1cmUuaWQpLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmZlYXR1cmVzLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS5pZCA9PT0gZmVhdHVyZS5pZCk7XG4gICAgICAgICAgICB0aGlzLmZlYXR1cmVzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKCdEZWxldGUgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgLy8gYWRkRmVhdHVyZShldmVudDogTWF0Q2hpcElucHV0RXZlbnQpIHtcbiAgLy8gICBjb25zdCB2YWx1ZSA9IChldmVudC52YWx1ZSB8fCAnJykudHJpbSgpO1xuICAvLyAgIGlmICh2YWx1ZSkge1xuICAvLyAgICAgdGhpcy5mZWF0dXJlcy5wdXNoKHsgaWQ6ICcnLCBuYW1lOiB2YWx1ZSB9KTtcbiAgLy8gICB9XG4gIC8vICAgZXZlbnQuY2hpcElucHV0LmNsZWFyKCk7XG4gIC8vIH1cbiAgcHJpdmF0ZSBmaWx0ZXJPbklucHV0Q2hhbmdlKGZlYXR1cmVOYW1lOiBzdHJpbmcgfCBudWxsKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGZlYXR1cmVzTGVzc1NlbGVjdGVkID0gdGhpcy5mZWF0dXJlcy5maWx0ZXIoXG4gICAgICAoZW5naW5lZXIpID0+IGZpbmRJbmRleCh0aGlzLnNlbGVjdGVkRmVhdHVyZXMsIChpdGVtOiBhbnkpID0+IGl0ZW0ubmFtZSA9PT0gZW5naW5lZXIubmFtZSkgPCAwLFxuICAgICk7XG4gICAgcmV0dXJuIGZlYXR1cmVOYW1lXG4gICAgICA/IHRoaXMuZmlsdGVyRmVhdHVyZShmZWF0dXJlc0xlc3NTZWxlY3RlZCwgZmVhdHVyZU5hbWUpXG4gICAgICA6IGZlYXR1cmVzTGVzc1NlbGVjdGVkLm1hcCgoZmVhdHVyZSkgPT4gZmVhdHVyZS5uYW1lKTtcbiAgfVxuICBwcml2YXRlIGZpbHRlckZlYXR1cmUoZmVhdHVyZUxpc3Q6IEZlYXR1cmVbXSwgZmVhdHVyZU5hbWU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICBsZXQgZmlsdGVyZWRGZWF0dXJlTGlzdDogRmVhdHVyZVtdID0gW107XG4gICAgY29uc3QgZmlsdGVyVmFsdWUgPSBmZWF0dXJlTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IGZlYXR1cmVzTWF0Y2hpbmdGZWF0dXJlTmFtZSA9IGZlYXR1cmVMaXN0LmZpbHRlcigoZmVhdHVyZSkgPT4gZmVhdHVyZS5uYW1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihmaWx0ZXJWYWx1ZSkgPT09IDApO1xuICAgIGlmIChmZWF0dXJlc01hdGNoaW5nRmVhdHVyZU5hbWUubGVuZ3RoIHx8IHRoaXMuYWxsb3dGcmVlVGV4dEFkZEZlYXR1cmUpIHtcbiAgICAgIGZpbHRlcmVkRmVhdHVyZUxpc3QgPSBmZWF0dXJlc01hdGNoaW5nRmVhdHVyZU5hbWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZpbHRlcmVkRmVhdHVyZUxpc3QgPSBmZWF0dXJlTGlzdDtcbiAgICB9XG4gICAgcmV0dXJuIGZpbHRlcmVkRmVhdHVyZUxpc3QubWFwKChmZWF0dXJlKSA9PiBmZWF0dXJlLm5hbWUpO1xuICB9XG4gIHB1YmxpYyByZW1vdmUoZmVhdHVyZTogRmVhdHVyZSk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gZmluZEluZGV4KHRoaXMuc2VsZWN0ZWRGZWF0dXJlcywgKGl0ZW0pID0+IGl0ZW0ubmFtZSA9PT0gZmVhdHVyZS5uYW1lKTtcbiAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgdGhpcy5zZWxlY3RlZEZlYXR1cmVzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICB0aGlzLnJlc2V0SW5wdXRzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNlbGVjdGVkKGV2ZW50OiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RGZWF0dXJlQnlOYW1lKGV2ZW50Lm9wdGlvbi52YWx1ZSk7XG4gICAgdGhpcy5yZXNldElucHV0cygpO1xuICB9XG4gIHByaXZhdGUgc2VsZWN0RmVhdHVyZUJ5TmFtZShmZWF0dXJlTmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgZm91bmRGZWF0dXJlID0gdGhpcy5mZWF0dXJlcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0ubmFtZSA9PSBmZWF0dXJlTmFtZSk7XG4gICAgdGhpcy5zZWxlY3RlZEZlYXR1cmVzLnB1c2goZm91bmRGZWF0dXJlWzBdKTtcbiAgfVxuICBwcml2YXRlIHJlc2V0SW5wdXRzKCkge1xuICAgIHRoaXMuZmVhdHVyZUlucHV0KCkubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIHRoaXMuZmVhdHVyZUNvbnRyb2wuc2V0VmFsdWUobnVsbCk7XG4gIH1cbn1cbiIsIjxyb2xhdGVjaC10b29sYmFyIHRpdGxlPVwiRmVhdHVyZXNcIj5cbiAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gcm91dGVyTGluaz1cIi4vY3JlYXRlXCI+XG4gICAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj5cbiAgICAgIDxzcGFuIGkxOG4+QWRkIEZlYXR1cmU8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9yb2xhdGVjaC10b29sYmFyPlxuPGRpdiBjbGFzcz1cInAtM1wiPlxuICBAZm9yIChpdGVtIG9mIGZlYXR1cmVzOyB0cmFjayAkaW5kZXgpIHtcbiAgICA8cm9sYXRlY2gtZmVhdHVyZS1tYW5hZ2UtaXRlbVxuICAgICAgW2ZlYXR1cmVdPVwiaXRlbVwiXG4gICAgICAoZGVsZXRlKT1cIm9uRGVsZXRlRmVhdHVyZSgkZXZlbnQpXCJcbiAgICAgIChlZGl0KT1cIm9uVXBkYXRlRmVhdHVyZSgkZXZlbnQpXCJcbiAgICA+PC9yb2xhdGVjaC1mZWF0dXJlLW1hbmFnZS1pdGVtPlxuICB9XG4gIDxkaXYgY2xhc3M9XCJtdC0zXCI+XG4gICAgQGlmIChhZGQpIHtcbiAgICAgIDxyb2xhdGVjaC1mZWF0dXJlLW1hbmFnZS1pdGVtLWFkZCAoc2F2ZSk9XCJzYXZlRmVhdHVyZSgkZXZlbnQpXCIgKGNhbmNlbCk9XCJhZGQgPSBmYWxzZVwiPjwvcm9sYXRlY2gtZmVhdHVyZS1tYW5hZ2UtaXRlbS1hZGQ+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwiYWRkID0gdHJ1ZVwiPlxuICAgICAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj5cbiAgICAgICAgPHNwYW4gaTE4bj5BZGQ8L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICB9XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class FeatureManageDetailComponent {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: FeatureManageDetailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.2.0\", type: FeatureManageDetailComponent, isStandalone: true, selector: \"rolatech-feature-manage-detail\", ngImport: i0, template: \"<p>feature-manage-detail works!</p>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: FeatureManageDetailComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-feature-manage-detail', imports: [CommonModule], template: \"<p>feature-manage-detail works!</p>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1tYW5hZ2UtZGV0YWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9mZWF0dXJlLW1hbmFnZS9mZWF0dXJlLW1hbmFnZS1kZXRhaWwvZmVhdHVyZS1tYW5hZ2UtZGV0YWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9mZWF0dXJlLW1hbmFnZS9mZWF0dXJlLW1hbmFnZS1kZXRhaWwvZmVhdHVyZS1tYW5hZ2UtZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVEvQyxNQUFNLE9BQU8sNEJBQTRCO3VHQUE1Qiw0QkFBNEI7MkZBQTVCLDRCQUE0QiwwRkNUekMsdUNBQ0EseURESVksWUFBWTs7MkZBSVgsNEJBQTRCO2tCQU54QyxTQUFTOytCQUNFLGdDQUFnQyxXQUNqQyxDQUFDLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtZmVhdHVyZS1tYW5hZ2UtZGV0YWlsJyxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9mZWF0dXJlLW1hbmFnZS1kZXRhaWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZmVhdHVyZS1tYW5hZ2UtZGV0YWlsLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgRmVhdHVyZU1hbmFnZURldGFpbENvbXBvbmVudCB7fVxuIiwiPHA+ZmVhdHVyZS1tYW5hZ2UtZGV0YWlsIHdvcmtzITwvcD5cbiJdfQ==","import { FeatureManageIndexComponent } from './feature-manage-index/feature-manage-index.component';\nimport { FeatureManageDetailComponent } from './feature-manage-detail/feature-manage-detail.component';\nexport const featureManageRoutes = [\n {\n path: '',\n component: FeatureManageIndexComponent,\n },\n {\n path: ':id',\n component: FeatureManageDetailComponent,\n },\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1tYW5hZ2Uucm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL3BhZ2VzL2ZlYXR1cmUtbWFuYWdlL2ZlYXR1cmUtbWFuYWdlLnJvdXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUV2RyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBVztJQUN6QztRQUNFLElBQUksRUFBRSxFQUFFO1FBQ1IsU0FBUyxFQUFFLDJCQUEyQjtLQUN2QztJQUNEO1FBQ0UsSUFBSSxFQUFFLEtBQUs7UUFDWCxTQUFTLEVBQUUsNEJBQTRCO0tBQ3hDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBGZWF0dXJlTWFuYWdlSW5kZXhDb21wb25lbnQgfSBmcm9tICcuL2ZlYXR1cmUtbWFuYWdlLWluZGV4L2ZlYXR1cmUtbWFuYWdlLWluZGV4LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGZWF0dXJlTWFuYWdlRGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9mZWF0dXJlLW1hbmFnZS1kZXRhaWwvZmVhdHVyZS1tYW5hZ2UtZGV0YWlsLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjb25zdCBmZWF0dXJlTWFuYWdlUm91dGVzOiBSb3V0ZXMgPSBbXG4gIHtcbiAgICBwYXRoOiAnJyxcbiAgICBjb21wb25lbnQ6IEZlYXR1cmVNYW5hZ2VJbmRleENvbXBvbmVudCxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICc6aWQnLFxuICAgIGNvbXBvbmVudDogRmVhdHVyZU1hbmFnZURldGFpbENvbXBvbmVudCxcbiAgfSxcbl07XG4iXX0=","import { Component, computed, input } from '@angular/core';\nimport { PropertyOfferStatus } from '../../interfaces';\nimport { MatIconModule } from '@angular/material/icon';\nimport { FixedPipe } from '@rolatech/angular-common';\nimport { ThumbnailComponent, ImagePlaceholderComponent } from '@rolatech/angular-components';\nimport * as i0 from \"@angular/core\";\nexport class PropertyOfferItemComponent {\n offer = input.required(...(ngDevMode ? [{ debugName: \"offer\" }] : []));\n status = PropertyOfferStatus;\n total = computed(() => {\n return (this.offer().amount / 100).toFixed(2);\n }, ...(ngDevMode ? [{ debugName: \"total\" }] : []));\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyOfferItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyOfferItemComponent, isStandalone: true, selector: \"rolatech-property-offer-item\", inputs: { offer: { classPropertyName: \"offer\", publicName: \"offer\", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: \"<div class=\\\"flex flex-col hover:bg-[--rt-raised-background] cursor-pointer p-3\\\">\\n <div>\\n <div class=\\\"flex justify-between w-full mb-2\\\">\\n <a class=\\\"flex items-center gap-3\\\">\\n <span>Offer ID: {{ offer().id }}</span>\\n </a>\\n <span class=\\\"font-medium text-sm\\\">{{ status[offer().status] }}</span>\\n </div>\\n <div class=\\\"flex flex-col overflow-x-scroll scrollbar-hide\\\">\\n <div class=\\\"flex flex-row py-2\\\">\\n @if (offer().property.media) {\\n <div class=\\\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\\\">\\n @defer {\\n <rolatech-thumbnail [src]=\\\"offer().property.media[0].url\\\" size=\\\"medium\\\" mode=\\\"full\\\"> </rolatech-thumbnail>\\n } @placeholder {\\n <div class=\\\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\\\"></div>\\n }\\n </div>\\n } @else {\\n <div class=\\\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\\\">\\n <rolatech-image-placeholder></rolatech-image-placeholder>\\n </div>\\n }\\n <div class=\\\"flex w-full justify-between\\\">\\n <div class=\\\"flex justify-between w-full\\\">\\n <div class=\\\"flex flex-col\\\">\\n <div>{{ offer().property.title }}</div>\\n <div class=\\\"inline-flex gap-1 mt-2\\\">\\n <div>\\n <span class=\\\"mr-1\\\">{{ offer().property.bedrooms }}</span>\\n <span i18n>Bedrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ offer().property.bathrooms }}</span>\\n <span i18n>Bathrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ offer().property.receptions }}</span>\\n <span i18n>Receptions</span>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"text-right\\\">\\n <div class=\\\"text-sm\\\">\\u00A3{{ offer().property.price | fixed }}</div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: ImagePlaceholderComponent, selector: \"rolatech-image-placeholder\", inputs: [\"ratio\"] }, { kind: \"pipe\", type: FixedPipe, name: \"fixed\" }], deferBlockDependencies: [() => [ThumbnailComponent]] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyOfferItemComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-offer-item', imports: [MatIconModule, ThumbnailComponent, ImagePlaceholderComponent, FixedPipe], template: \"<div class=\\\"flex flex-col hover:bg-[--rt-raised-background] cursor-pointer p-3\\\">\\n <div>\\n <div class=\\\"flex justify-between w-full mb-2\\\">\\n <a class=\\\"flex items-center gap-3\\\">\\n <span>Offer ID: {{ offer().id }}</span>\\n </a>\\n <span class=\\\"font-medium text-sm\\\">{{ status[offer().status] }}</span>\\n </div>\\n <div class=\\\"flex flex-col overflow-x-scroll scrollbar-hide\\\">\\n <div class=\\\"flex flex-row py-2\\\">\\n @if (offer().property.media) {\\n <div class=\\\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\\\">\\n @defer {\\n <rolatech-thumbnail [src]=\\\"offer().property.media[0].url\\\" size=\\\"medium\\\" mode=\\\"full\\\"> </rolatech-thumbnail>\\n } @placeholder {\\n <div class=\\\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\\\"></div>\\n }\\n </div>\\n } @else {\\n <div class=\\\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\\\">\\n <rolatech-image-placeholder></rolatech-image-placeholder>\\n </div>\\n }\\n <div class=\\\"flex w-full justify-between\\\">\\n <div class=\\\"flex justify-between w-full\\\">\\n <div class=\\\"flex flex-col\\\">\\n <div>{{ offer().property.title }}</div>\\n <div class=\\\"inline-flex gap-1 mt-2\\\">\\n <div>\\n <span class=\\\"mr-1\\\">{{ offer().property.bedrooms }}</span>\\n <span i18n>Bedrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ offer().property.bathrooms }}</span>\\n <span i18n>Bathrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ offer().property.receptions }}</span>\\n <span i18n>Receptions</span>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"text-right\\\">\\n <div class=\\\"text-sm\\\">\\u00A3{{ offer().property.price | fixed }}</div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktb2ZmZXItaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvY29tcG9uZW50cy9wcm9wZXJ0eS1vZmZlci1pdGVtL3Byb3BlcnR5LW9mZmVyLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktb2ZmZXItaXRlbS9wcm9wZXJ0eS1vZmZlci1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQWlCLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFRN0YsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQyxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsZ0RBQWlCLENBQUM7SUFDeEMsTUFBTSxHQUFRLG1CQUFtQixDQUFDO0lBQ2xDLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQ3BCLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDLGlEQUFDLENBQUM7dUdBTFEsMEJBQTBCOzJGQUExQiwwQkFBMEIsMk5DWnZDLCttRUFtREEseUREM0NZLGFBQWEsK0JBQXNCLHlCQUF5QixxRkFBRSxTQUFTLG9EQUF4RCxrQkFBa0I7OzJGQUloQywwQkFBMEI7a0JBTnRDLFNBQVM7K0JBQ0UsOEJBQThCLFdBQy9CLENBQUMsYUFBYSxFQUFFLGtCQUFrQixFQUFFLHlCQUF5QixFQUFFLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcm9wZXJ0eU9mZmVyLCBQcm9wZXJ0eU9mZmVyU3RhdHVzIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBGaXhlZFBpcGUgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21tb24nO1xuaW1wb3J0IHsgVGh1bWJuYWlsQ29tcG9uZW50LCBJbWFnZVBsYWNlaG9sZGVyQ29tcG9uZW50IH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb3BlcnR5LW9mZmVyLWl0ZW0nLFxuICBpbXBvcnRzOiBbTWF0SWNvbk1vZHVsZSwgVGh1bWJuYWlsQ29tcG9uZW50LCBJbWFnZVBsYWNlaG9sZGVyQ29tcG9uZW50LCBGaXhlZFBpcGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydHktb2ZmZXItaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9wZXJ0eS1vZmZlci1pdGVtLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlPZmZlckl0ZW1Db21wb25lbnQge1xuICBvZmZlciA9IGlucHV0LnJlcXVpcmVkPFByb3BlcnR5T2ZmZXI+KCk7XG4gIHN0YXR1czogYW55ID0gUHJvcGVydHlPZmZlclN0YXR1cztcbiAgdG90YWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuICh0aGlzLm9mZmVyKCkuYW1vdW50IC8gMTAwKS50b0ZpeGVkKDIpO1xuICB9KTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGhvdmVyOmJnLVstLXJ0LXJhaXNlZC1iYWNrZ3JvdW5kXSBjdXJzb3ItcG9pbnRlciBwLTNcIj5cbiAgPGRpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gdy1mdWxsIG1iLTJcIj5cbiAgICAgIDxhIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTNcIj5cbiAgICAgICAgPHNwYW4+T2ZmZXIgSUQ6IHt7IG9mZmVyKCkuaWQgfX08L3NwYW4+XG4gICAgICA8L2E+XG4gICAgICA8c3BhbiBjbGFzcz1cImZvbnQtbWVkaXVtIHRleHQtc21cIj57eyBzdGF0dXNbb2ZmZXIoKS5zdGF0dXNdIH19PC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG92ZXJmbG93LXgtc2Nyb2xsIHNjcm9sbGJhci1oaWRlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBweS0yXCI+XG4gICAgICAgIEBpZiAob2ZmZXIoKS5wcm9wZXJ0eS5tZWRpYSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaW4tdy0yNCB3LTM2IG9iamVjdC1jb3ZlciBhc3BlY3QtdmlkZW8gcm91bmRlZC1sZyBtci0zXCI+XG4gICAgICAgICAgICBAZGVmZXIge1xuICAgICAgICAgICAgICA8cm9sYXRlY2gtdGh1bWJuYWlsIFtzcmNdPVwib2ZmZXIoKS5wcm9wZXJ0eS5tZWRpYVswXS51cmxcIiBzaXplPVwibWVkaXVtXCIgbW9kZT1cImZ1bGxcIj4gPC9yb2xhdGVjaC10aHVtYm5haWw+XG4gICAgICAgICAgICB9IEBwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiZy1bLS1ydC1yYWlzZWQtYmFja2dyb3VuZF0gaC1mdWxsIHctZnVsbCBvYmplY3QtY292ZXIgYXNwZWN0LXZpZGVvIHJvdW5kZWQtbGdcIj48L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1pbi13LTI0IHctMzYgb2JqZWN0LWNvdmVyIGFzcGVjdC12aWRlbyByb3VuZGVkLWxnIG1yLTNcIj5cbiAgICAgICAgICAgIDxyb2xhdGVjaC1pbWFnZS1wbGFjZWhvbGRlcj48L3JvbGF0ZWNoLWltYWdlLXBsYWNlaG9sZGVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IHctZnVsbCBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gdy1mdWxsXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxuICAgICAgICAgICAgICA8ZGl2Pnt7IG9mZmVyKCkucHJvcGVydHkudGl0bGUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlubGluZS1mbGV4IGdhcC0xIG10LTJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtci0xXCI+e3sgb2ZmZXIoKS5wcm9wZXJ0eS5iZWRyb29tcyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGkxOG4+QmVkcm9vbXM8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXItMVwiPnt7IG9mZmVyKCkucHJvcGVydHkuYmF0aHJvb21zIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gaTE4bj5CYXRocm9vbXM8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXItMVwiPnt7IG9mZmVyKCkucHJvcGVydHkucmVjZXB0aW9ucyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGkxOG4+UmVjZXB0aW9uczwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXJpZ2h0XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNtXCI+wqN7eyBvZmZlcigpLnByb3BlcnR5LnByaWNlIHwgZml4ZWQgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19","import { Component, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BaseComponent, EmptyComponent, TabComponent, TabsComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { RouterModule } from '@angular/router';\nimport { PropertyService } from '@rolatech/angular-services';\nimport { PropertyOfferItemComponent } from '../../../components/property-offer-item/property-offer-item.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/router\";\nexport class PropertyManageOfferIndexComponent extends BaseComponent {\n propertyService = inject(PropertyService);\n select = 0;\n links = [\n {\n name: 'All',\n icon: 'dashboard',\n },\n {\n name: 'Pending',\n icon: 'category',\n status: 'pending',\n },\n {\n name: 'Accepted',\n icon: 'category',\n status: 'accepted',\n },\n {\n name: 'Rejected',\n icon: 'category',\n status: 'rejected',\n },\n {\n name: 'Cancelled',\n icon: 'category',\n status: 'cancelled',\n },\n ];\n filterOptions = {\n type: '',\n status: '',\n };\n offers = [];\n ngOnInit() {\n this.route.queryParams.subscribe(({ status }) => {\n this.select = this.links.findIndex((item) => item.status === status);\n if (status) {\n this.filterOptions.status = status.toUpperCase();\n }\n else {\n delete this.filterOptions.status;\n }\n this.findOffers();\n });\n }\n findOffers() {\n const options = {\n sort: 'updatedAt desc',\n };\n const filterString = this.convertFilterOptions(this.filterOptions);\n if (filterString) {\n options['filter'] = filterString;\n }\n this.propertyService.findOffersByAgent(options).subscribe({\n next: (res) => {\n this.offers = res.data;\n },\n });\n }\n convertFilterOptions(jsonObj) {\n return Object.entries(jsonObj)\n .filter(([key, value]) => value !== '' && value !== undefined)\n .map(([key, value]) => {\n return `${key}:${value}`;\n })\n .join(',');\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageOfferIndexComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyManageOfferIndexComponent, isStandalone: true, selector: \"rolatech-property-manage-offer-index\", usesInheritance: true, ngImport: i0, template: \"<rolatech-toolbar title=\\\"Offers\\\">\\n <div class=\\\"flex items-center gap-2\\\"></div>\\n</rolatech-toolbar>\\n<rolatech-tabs [select]=\\\"select\\\">\\n @for (item of links; track item) {\\n @if (item.status) {\\n <rolatech-tab [label]=\\\"item.name\\\" routerLink=\\\"./\\\" [queryParams]=\\\"{ status: item.status }\\\"></rolatech-tab>\\n } @else {\\n <rolatech-tab [label]=\\\"item.name\\\" routerLink=\\\"./\\\"></rolatech-tab>\\n }\\n }\\n</rolatech-tabs>\\n<div>\\n @if (offers) {\\n @for (item of offers; track $index) {\\n <rolatech-property-offer-item [routerLink]=\\\"['./', item.id]\\\" [offer]=\\\"item\\\"></rolatech-property-offer-item>\\n }\\n } @else {\\n <rolatech-empty></rolatech-empty>\\n }\\n</div>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"component\", type: TabsComponent, selector: \"rolatech-tabs\", inputs: [\"select\", \"loading\"], outputs: [\"selectChange\"] }, { kind: \"component\", type: TabComponent, selector: \"rolatech-tab\", inputs: [\"label\"] }, { kind: \"ngmodule\", type: RouterModule }, { kind: \"directive\", type: i1.RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"component\", type: PropertyOfferItemComponent, selector: \"rolatech-property-offer-item\", inputs: [\"offer\"] }, { kind: \"component\", type: EmptyComponent, selector: \"rolatech-empty\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageOfferIndexComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-manage-offer-index', imports: [\n CommonModule,\n ToolbarComponent,\n TabsComponent,\n TabComponent,\n RouterModule,\n PropertyOfferItemComponent,\n EmptyComponent,\n ], template: \"<rolatech-toolbar title=\\\"Offers\\\">\\n <div class=\\\"flex items-center gap-2\\\"></div>\\n</rolatech-toolbar>\\n<rolatech-tabs [select]=\\\"select\\\">\\n @for (item of links; track item) {\\n @if (item.status) {\\n <rolatech-tab [label]=\\\"item.name\\\" routerLink=\\\"./\\\" [queryParams]=\\\"{ status: item.status }\\\"></rolatech-tab>\\n } @else {\\n <rolatech-tab [label]=\\\"item.name\\\" routerLink=\\\"./\\\"></rolatech-tab>\\n }\\n }\\n</rolatech-tabs>\\n<div>\\n @if (offers) {\\n @for (item of offers; track $index) {\\n <rolatech-property-offer-item [routerLink]=\\\"['./', item.id]\\\" [offer]=\\\"item\\\"></rolatech-property-offer-item>\\n }\\n } @else {\\n <rolatech-empty></rolatech-empty>\\n }\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbWFuYWdlLW9mZmVyLWluZGV4LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS1tYW5hZ2UvcHJvcGVydHktbWFuYWdlLW9mZmVyLWluZGV4L3Byb3BlcnR5LW1hbmFnZS1vZmZlci1pbmRleC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktbWFuYWdlL3Byb3BlcnR5LW1hbmFnZS1vZmZlci1pbmRleC9wcm9wZXJ0eS1tYW5hZ2Utb2ZmZXItaW5kZXguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1SCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHVFQUF1RSxDQUFDOzs7QUFpQm5ILE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSxhQUFhO0lBQ2xFLGVBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFFMUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNYLEtBQUssR0FBRztRQUNOO1lBQ0UsSUFBSSxFQUFFLEtBQUs7WUFDWCxJQUFJLEVBQUUsV0FBVztTQUNsQjtRQUNE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ImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50LCBFbXB0eUNvbXBvbmVudCwgVGFiQ29tcG9uZW50LCBUYWJzQ29tcG9uZW50LCBUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgUHJvcGVydHlTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItc2VydmljZXMnO1xuaW1wb3J0IHsgUHJvcGVydHlPZmZlckl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL3Byb3BlcnR5LW9mZmVyLWl0ZW0vcHJvcGVydHktb2ZmZXItaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvcGVydHlPZmZlciB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1wcm9wZXJ0eS1tYW5hZ2Utb2ZmZXItaW5kZXgnLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFRvb2xiYXJDb21wb25lbnQsXG4gICAgVGFic0NvbXBvbmVudCxcbiAgICBUYWJDb21wb25lbnQsXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIFByb3BlcnR5T2ZmZXJJdGVtQ29tcG9uZW50LFxuICAgIEVtcHR5Q29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydHktbWFuYWdlLW9mZmVyLWluZGV4LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb3BlcnR5LW1hbmFnZS1vZmZlci1pbmRleC5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5TWFuYWdlT2ZmZXJJbmRleENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcm9wZXJ0eVNlcnZpY2UgPSBpbmplY3QoUHJvcGVydHlTZXJ2aWNlKTtcblxuICBzZWxlY3QgPSAwO1xuICBsaW5rcyA9IFtcbiAgICB7XG4gICAgICBuYW1lOiAnQWxsJyxcbiAgICAgIGljb246ICdkYXNoYm9hcmQnLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ1BlbmRpbmcnLFxuICAgICAgaWNvbjogJ2NhdGVnb3J5JyxcbiAgICAgIHN0YXR1czogJ3BlbmRpbmcnLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ0FjY2VwdGVkJyxcbiAgICAgIGljb246ICdjYXRlZ29yeScsXG4gICAgICBzdGF0dXM6ICdhY2NlcHRlZCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnUmVqZWN0ZWQnLFxuICAgICAgaWNvbjogJ2NhdGVnb3J5JyxcbiAgICAgIHN0YXR1czogJ3JlamVjdGVkJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdDYW5jZWxsZWQnLFxuICAgICAgaWNvbjogJ2NhdGVnb3J5JyxcbiAgICAgIHN0YXR1czogJ2NhbmNlbGxlZCcsXG4gICAgfSxcbiAgXTtcbiAgZmlsdGVyT3B0aW9uczogYW55ID0ge1xuICAgIHR5cGU6ICcnLFxuICAgIHN0YXR1czogJycsXG4gIH07XG4gIG9mZmVyczogUHJvcGVydHlPZmZlcltdID0gW107XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoKHsgc3RhdHVzIH0pID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0ID0gdGhpcy5saW5rcy5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0uc3RhdHVzID09PSBzdGF0dXMpO1xuICAgICAgaWYgKHN0YXR1cykge1xuICAgICAgICB0aGlzLmZpbHRlck9wdGlvbnMuc3RhdHVzID0gKHN0YXR1cyBhcyBzdHJpbmcpLnRvVXBwZXJDYXNlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZWxldGUgdGhpcy5maWx0ZXJPcHRpb25zLnN0YXR1cztcbiAgICAgIH1cbiAgICAgIHRoaXMuZmluZE9mZmVycygpO1xuICAgIH0pO1xuICB9XG4gIGZpbmRPZmZlcnMoKSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIHNvcnQ6ICd1cGRhdGVkQXQgZGVzYycsXG4gICAgfTtcbiAgICBjb25zdCBmaWx0ZXJTdHJpbmcgPSB0aGlzLmNvbnZlcnRGaWx0ZXJPcHRpb25zKHRoaXMuZmlsdGVyT3B0aW9ucyk7XG4gICAgaWYgKGZpbHRlclN0cmluZykge1xuICAgICAgb3B0aW9uc1snZmlsdGVyJ10gPSBmaWx0ZXJTdHJpbmc7XG4gICAgfVxuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmZpbmRPZmZlcnNCeUFnZW50KG9wdGlvbnMpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5vZmZlcnMgPSByZXMuZGF0YTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgY29udmVydEZpbHRlck9wdGlvbnMoanNvbk9iaikge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhqc29uT2JqKVxuICAgICAgLmZpbHRlcigoW2tleSwgdmFsdWVdKSA9PiB2YWx1ZSAhPT0gJycgJiYgdmFsdWUgIT09IHVuZGVmaW5lZClcbiAgICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICByZXR1cm4gYCR7a2V5fToke3ZhbHVlfWA7XG4gICAgICB9KVxuICAgICAgLmpvaW4oJywnKTtcbiAgfVxufVxuIiwiPHJvbGF0ZWNoLXRvb2xiYXIgdGl0bGU9XCJPZmZlcnNcIj5cbiAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+PC9kaXY+XG48L3JvbGF0ZWNoLXRvb2xiYXI+XG48cm9sYXRlY2gtdGFicyBbc2VsZWN0XT1cInNlbGVjdFwiPlxuICBAZm9yIChpdGVtIG9mIGxpbmtzOyB0cmFjayBpdGVtKSB7XG4gICAgQGlmIChpdGVtLnN0YXR1cykge1xuICAgICAgPHJvbGF0ZWNoLXRhYiBbbGFiZWxdPVwiaXRlbS5uYW1lXCIgcm91dGVyTGluaz1cIi4vXCIgW3F1ZXJ5UGFyYW1zXT1cInsgc3RhdHVzOiBpdGVtLnN0YXR1cyB9XCI+PC9yb2xhdGVjaC10YWI+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8cm9sYXRlY2gtdGFiIFtsYWJlbF09XCJpdGVtLm5hbWVcIiByb3V0ZXJMaW5rPVwiLi9cIj48L3JvbGF0ZWNoLXRhYj5cbiAgICB9XG4gIH1cbjwvcm9sYXRlY2gtdGFicz5cbjxkaXY+XG4gIEBpZiAob2ZmZXJzKSB7XG4gICAgQGZvciAoaXRlbSBvZiBvZmZlcnM7IHRyYWNrICRpbmRleCkge1xuICAgICAgPHJvbGF0ZWNoLXByb3BlcnR5LW9mZmVyLWl0ZW0gW3JvdXRlckxpbmtdPVwiWycuLycsIGl0ZW0uaWRdXCIgW29mZmVyXT1cIml0ZW1cIj48L3JvbGF0ZWNoLXByb3BlcnR5LW9mZmVyLWl0ZW0+XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICA8cm9sYXRlY2gtZW1wdHk+PC9yb2xhdGVjaC1lbXB0eT5cbiAgfVxuPC9kaXY+XG4iXX0=","import { Component, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AcceptDialogComponent, BaseComponent, RejectDialogComponent, RichLabelComponent, ThumbnailComponent, ToolbarComponent, } from '@rolatech/angular-components';\nimport { EmploymentStatus, PropertyOfferStatus } from '../../../interfaces';\nimport { PropertyService } from '@rolatech/angular-services';\nimport { AuthUserService } from '@rolatech/angular-auth';\nimport { FixedPipe } from '@rolatech/angular-common';\nimport { MatButtonModule } from '@angular/material/button';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\nexport class PropertyManageOfferDetailComponent extends BaseComponent {\n propertyService = inject(PropertyService);\n authUserService = inject(AuthUserService);\n offer;\n name = '';\n property;\n status = PropertyOfferStatus;\n employmentStatus = EmploymentStatus;\n agent;\n ngOnInit() {\n this.getOffer();\n }\n getOffer() {\n this.propertyService.getOffer(this.id).subscribe({\n next: (res) => {\n this.offer = res.data;\n this.name = this.offer.firstName + ', ' + this.offer.lastName;\n this.getProperty(this.offer.propertyId);\n },\n });\n }\n getProperty(propertyId) {\n this.propertyService.get(propertyId).subscribe({\n next: (res) => {\n this.property = res.data;\n this.getAgentPublicInfo(this.property.agentId);\n },\n });\n }\n getAgentPublicInfo(agentId) {\n this.authUserService.getPublicUserInfo(agentId).subscribe({\n next: (res) => {\n this.agent = res;\n },\n });\n }\n accept() {\n const dialogRef = this.dialog.open(AcceptDialogComponent, {\n width: '400px',\n data: {\n title: 'Accept offer',\n message: 'Accept this offer?',\n },\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.propertyService.acceptOffer(this.id).subscribe({\n next: (res) => {\n this.offer.status = 'ACCEPTED';\n this.snackBarService.open('Accepted');\n },\n error: (e) => {\n this.snackBarService.open(e.message);\n },\n });\n }\n });\n }\n reject() {\n const dialogRef = this.dialog.open(RejectDialogComponent, {\n width: '400px',\n data: {\n content: '',\n },\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.propertyService.rejectOffer(this.id, { reason: result.content }).subscribe({\n next: (res) => {\n this.offer.status = 'REJECTED';\n this.snackBarService.open('Rejected');\n },\n error: (e) => {\n this.snackBarService.open(e.message);\n },\n });\n }\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageOfferDetailComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyManageOfferDetailComponent, isStandalone: true, selector: \"rolatech-property-manage-offer-detail\", usesInheritance: true, ngImport: i0, template: \"@if (offer) {\\n <rolatech-toolbar [title]=\\\"status[offer.status]\\\" large link=\\\"../\\\">\\n @if (offer.status.toString() === 'PENDING') {\\n <button mat-flat-button (click)=\\\"accept()\\\" i18n>Accept</button>\\n <button mat-button (click)=\\\"reject()\\\" i18n>Reject</button>\\n }\\n </rolatech-toolbar>\\n <div class=\\\"px-4\\\">\\n <div>\\n <div class=\\\"text-lg font-bold py-2\\\">Viewer</div>\\n <hr class=\\\"mb-2\\\" />\\n <div class=\\\"flex flex-col md:flex-row gap-1 md:gap-4\\\">\\n <rolatech-rich-label label=\\\"Name\\\" [title]=\\\"name\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Email\\\" [title]=\\\"offer.email\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Phone\\\" [title]=\\\"offer.phone\\\"></rolatech-rich-label>\\n </div>\\n </div>\\n <div>\\n <div class=\\\"text-lg font-bold py-2\\\">Qualification</div>\\n <hr class=\\\"mb-2\\\" />\\n <div class=\\\"flex flex-col md:flex-row gap-1 md:gap-4\\\">\\n <rolatech-rich-label label=\\\"Move-in date\\\" [title]=\\\"offer.startDate\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Tenancy duration\\\" [title]=\\\"offer.tenancyDuration\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Number of tenants\\\" [title]=\\\"offer.numberOfTenants\\\"></rolatech-rich-label>\\n </div>\\n <div class=\\\"flex flex-col md:flex-row gap-1 md:gap-4\\\">\\n <rolatech-rich-label label=\\\"Employment status\\\" [title]=\\\"employmentStatus[offer.employmentStatus]\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Employer\\\" [title]=\\\"offer.startDate\\\"></rolatech-rich-label>\\n @if (offer.income) {\\n <rolatech-rich-label label=\\\"Annual income\\\" [title]=\\\"offer.income\\\"></rolatech-rich-label>\\n }\\n </div>\\n </div>\\n <div>\\n <div class=\\\"text-lg font-bold py-2\\\">Property details</div>\\n <hr class=\\\"mb-2\\\" />\\n <div class=\\\"flex items-center py-2\\\">\\n <div class=\\\"min-w-16 w-24 object-cover aspect-video rounded-md mr-3\\\">\\n @defer {\\n <rolatech-thumbnail [src]=\\\"offer.item.media[0].url\\\" size=\\\"medium\\\" mode=\\\"full\\\"> </rolatech-thumbnail>\\n } @placeholder {\\n <div class=\\\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\\\"></div>\\n }\\n </div>\\n <div class=\\\"flex w-full justify-between\\\">\\n <div class=\\\"flex justify-between w-full\\\">\\n <div class=\\\"flex flex-col\\\">\\n <div>{{ offer.item.propertyTitle }}</div>\\n <div class=\\\"inline-flex gap-1 mt-2\\\">\\n <div>\\n <span class=\\\"mr-1\\\">{{ offer.item.bedrooms }}</span>\\n <span i18n>Bedrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ offer.item.bathrooms }}</span>\\n <span i18n>Bathrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ offer.item.receptions }}</span>\\n <span i18n>Receptions</span>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"text-right\\\">\\n <div class=\\\"text-sm\\\">\\u00A3{{ offer.item.price | fixed }}</div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"hidden md:flex flex-col px-3\\\"></div>\\n </div>\\n </div>\\n\\n <div>\\n <div class=\\\"text-lg font-bold py-2\\\">Viewing agent</div>\\n <hr class=\\\"mb-2\\\" />\\n @if (agent) {\\n <div>\\n <rolatech-rich-label label=\\\"Move-in date\\\" [title]=\\\"offer.startDate\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Tenancy duration\\\" [title]=\\\"offer.tenancyDuration\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Phone\\\" [title]=\\\"agent.phone\\\"></rolatech-rich-label>\\n </div>\\n }\\n </div>\\n </div>\\n}\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"component\", type: RichLabelComponent, selector: \"rolatech-rich-label\", inputs: [\"label\", \"title\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i1.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"pipe\", type: FixedPipe, name: \"fixed\" }], deferBlockDependencies: [() => [ThumbnailComponent]] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageOfferDetailComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-manage-offer-detail', imports: [CommonModule, ToolbarComponent, RichLabelComponent, ThumbnailComponent, FixedPipe, MatButtonModule], template: \"@if (offer) {\\n <rolatech-toolbar [title]=\\\"status[offer.status]\\\" large link=\\\"../\\\">\\n @if (offer.status.toString() === 'PENDING') {\\n <button mat-flat-button (click)=\\\"accept()\\\" i18n>Accept</button>\\n <button mat-button (click)=\\\"reject()\\\" i18n>Reject</button>\\n }\\n </rolatech-toolbar>\\n <div class=\\\"px-4\\\">\\n <div>\\n <div class=\\\"text-lg font-bold py-2\\\">Viewer</div>\\n <hr class=\\\"mb-2\\\" />\\n <div class=\\\"flex flex-col md:flex-row gap-1 md:gap-4\\\">\\n <rolatech-rich-label label=\\\"Name\\\" [title]=\\\"name\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Email\\\" [title]=\\\"offer.email\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Phone\\\" [title]=\\\"offer.phone\\\"></rolatech-rich-label>\\n </div>\\n </div>\\n <div>\\n <div class=\\\"text-lg font-bold py-2\\\">Qualification</div>\\n <hr class=\\\"mb-2\\\" />\\n <div class=\\\"flex flex-col md:flex-row gap-1 md:gap-4\\\">\\n <rolatech-rich-label label=\\\"Move-in date\\\" [title]=\\\"offer.startDate\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Tenancy duration\\\" [title]=\\\"offer.tenancyDuration\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Number of tenants\\\" [title]=\\\"offer.numberOfTenants\\\"></rolatech-rich-label>\\n </div>\\n <div class=\\\"flex flex-col md:flex-row gap-1 md:gap-4\\\">\\n <rolatech-rich-label label=\\\"Employment status\\\" [title]=\\\"employmentStatus[offer.employmentStatus]\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Employer\\\" [title]=\\\"offer.startDate\\\"></rolatech-rich-label>\\n @if (offer.income) {\\n <rolatech-rich-label label=\\\"Annual income\\\" [title]=\\\"offer.income\\\"></rolatech-rich-label>\\n }\\n </div>\\n </div>\\n <div>\\n <div class=\\\"text-lg font-bold py-2\\\">Property details</div>\\n <hr class=\\\"mb-2\\\" />\\n <div class=\\\"flex items-center py-2\\\">\\n <div class=\\\"min-w-16 w-24 object-cover aspect-video rounded-md mr-3\\\">\\n @defer {\\n <rolatech-thumbnail [src]=\\\"offer.item.media[0].url\\\" size=\\\"medium\\\" mode=\\\"full\\\"> </rolatech-thumbnail>\\n } @placeholder {\\n <div class=\\\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\\\"></div>\\n }\\n </div>\\n <div class=\\\"flex w-full justify-between\\\">\\n <div class=\\\"flex justify-between w-full\\\">\\n <div class=\\\"flex flex-col\\\">\\n <div>{{ offer.item.propertyTitle }}</div>\\n <div class=\\\"inline-flex gap-1 mt-2\\\">\\n <div>\\n <span class=\\\"mr-1\\\">{{ offer.item.bedrooms }}</span>\\n <span i18n>Bedrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ offer.item.bathrooms }}</span>\\n <span i18n>Bathrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ offer.item.receptions }}</span>\\n <span i18n>Receptions</span>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"text-right\\\">\\n <div class=\\\"text-sm\\\">\\u00A3{{ offer.item.price | fixed }}</div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"hidden md:flex flex-col px-3\\\"></div>\\n </div>\\n </div>\\n\\n <div>\\n <div class=\\\"text-lg font-bold py-2\\\">Viewing agent</div>\\n <hr class=\\\"mb-2\\\" />\\n @if (agent) {\\n <div>\\n <rolatech-rich-label label=\\\"Move-in date\\\" [title]=\\\"offer.startDate\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Tenancy duration\\\" [title]=\\\"offer.tenancyDuration\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Phone\\\" [title]=\\\"agent.phone\\\"></rolatech-rich-label>\\n </div>\\n }\\n </div>\\n </div>\\n}\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbWFuYWdlLW9mZmVyLWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktbWFuYWdlL3Byb3BlcnR5LW1hbmFnZS1vZmZlci1kZXRhaWwvcHJvcGVydHktbWFuYWdlLW9mZmVyLWRldGFpbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktbWFuYWdlL3Byb3BlcnR5LW1hbmFnZS1vZmZlci1kZXRhaWwvcHJvcGVydHktbWFuYWdlLW9mZmVyLWRldGFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixhQUFhLEVBQ2IscUJBQXFCLEVBQ3JCLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsZ0JBQWdCLEdBQ2pCLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFFLGdCQUFnQixFQUEyQixtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBUTNELE1BQU0sT0FBTyxrQ0FBbUMsU0FBUSxhQUFhO0lBQ25FLGVBQWUs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LE9BQU87WUFDZCxJQUFJLEVBQUU7Z0JBQ0osT0FBTyxFQUFFLEVBQUU7YUFDWjtTQUNGLENBQUMsQ0FBQztRQUNILFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUMzQyxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNYLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDO29CQUM5RSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTt3QkFDWixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxVQUFpQyxDQUFDO3dCQUN0RCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFDeEMsQ0FBQztvQkFDRCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTt3QkFDWCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQ3ZDLENBQUM7aUJBQ0YsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0E5RVUsa0NBQWtDOzJGQUFsQyxrQ0FBa0Msd0hDdEIvQyxrMEhBcUZBLHlERG5FWSxZQUFZLCtCQUFFLGdCQUFnQixnSUFBRSxrQkFBa0IsMkZBQWlDLGVBQWUsK1dBQTFCLFNBQVMsb0RBQTdCLGtCQUFrQjs7MkZBSXJFLGtDQUFrQztrQkFOOUMsU0FBUzsrQkFDRSx1Q0FBdUMsV0FDeEMsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBY2NlcHREaWFsb2dDb21wb25lbnQsXG4gIEJhc2VDb21wb25lbnQsXG4gIFJlamVjdERpYWxvZ0NvbXBvbmVudCxcbiAgUmljaExhYmVsQ29tcG9uZW50LFxuICBUaHVtYm5haWxDb21wb25lbnQsXG4gIFRvb2xiYXJDb21wb25lbnQsXG59IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgRW1wbG95bWVudFN0YXR1cywgUHJvcGVydHksIFByb3BlcnR5T2ZmZXIsIFByb3BlcnR5T2ZmZXJTdGF0dXMgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFByb3BlcnR5U2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLXNlcnZpY2VzJztcbmltcG9ydCB7IEF1dGhVc2VyU2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWF1dGgnO1xuaW1wb3J0IHsgRml4ZWRQaXBlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb3BlcnR5LW1hbmFnZS1vZmZlci1kZXRhaWwnLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUb29sYmFyQ29tcG9uZW50LCBSaWNoTGFiZWxDb21wb25lbnQsIFRodW1ibmFpbENvbXBvbmVudCwgRml4ZWRQaXBlLCBNYXRCdXR0b25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydHktbWFuYWdlLW9mZmVyLWRldGFpbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9wZXJ0eS1tYW5hZ2Utb2ZmZXItZGV0YWlsLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlNYW5hZ2VPZmZlckRldGFpbENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcm9wZXJ0eVNlcnZpY2UgPSBpbmplY3QoUHJvcGVydHlTZXJ2aWNlKTtcbiAgYXV0aFVzZXJTZXJ2aWNlID0gaW5qZWN0KEF1dGhVc2VyU2VydmljZSk7XG4gIG9mZmVyITogUHJvcGVydHlPZmZlcjtcbiAgbmFtZSA9ICcnO1xuICBwcm9wZXJ0eSE6IFByb3BlcnR5O1xuICBzdGF0dXMgPSBQcm9wZXJ0eU9mZmVyU3RhdHVzO1xuICBlbXBsb3ltZW50U3RhdHVzID0gRW1wbG95bWVudFN0YXR1cztcbiAgYWdlbnQ6IGFueTtcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5nZXRPZmZlcigpO1xuICB9XG4gIGdldE9mZmVyKCkge1xuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmdldE9mZmVyKHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMub2ZmZXIgPSByZXMuZGF0YTtcbiAgICAgICAgdGhpcy5uYW1lID0gdGhpcy5vZmZlci5maXJzdE5hbWUgKyAnLCAnICsgdGhpcy5vZmZlci5sYXN0TmFtZTtcbiAgICAgICAgdGhpcy5nZXRQcm9wZXJ0eSh0aGlzLm9mZmVyLnByb3BlcnR5SWQpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBnZXRQcm9wZXJ0eShwcm9wZXJ0eUlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnByb3BlcnR5U2VydmljZS5nZXQocHJvcGVydHlJZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnByb3BlcnR5ID0gcmVzLmRhdGE7XG4gICAgICAgIHRoaXMuZ2V0QWdlbnRQdWJsaWNJbmZvKHRoaXMucHJvcGVydHkuYWdlbnRJZCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGdldEFnZW50UHVibGljSW5mbyhhZ2VudElkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmF1dGhVc2VyU2VydmljZS5nZXRQdWJsaWNVc2VySW5mbyhhZ2VudElkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmFnZW50ID0gcmVzO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBhY2NlcHQoKSB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihBY2NlcHREaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiAnNDAwcHgnLFxuICAgICAgZGF0YToge1xuICAgICAgICB0aXRsZTogJ0FjY2VwdCBvZmZlcicsXG4gICAgICAgIG1lc3NhZ2U6ICdBY2NlcHQgdGhpcyBvZmZlcj8nLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICB0aGlzLnByb3BlcnR5U2VydmljZS5hY2NlcHRPZmZlcih0aGlzLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgICAgIHRoaXMub2ZmZXIuc3RhdHVzID0gJ0FDQ0VQVEVEJyBhcyBQcm9wZXJ0eU9mZmVyU3RhdHVzO1xuICAgICAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbignQWNjZXB0ZWQnKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yOiAoZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbihlLm1lc3NhZ2UpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIHJlamVjdCgpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFJlamVjdERpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgd2lkdGg6ICc0MDBweCcsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGNvbnRlbnQ6ICcnLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICB0aGlzLnByb3BlcnR5U2VydmljZS5yZWplY3RPZmZlcih0aGlzLmlkLCB7IHJlYXNvbjogcmVzdWx0LmNvbnRlbnQgfSkuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9mZmVyLnN0YXR1cyA9ICdSRUpFQ1RFRCcgYXMgUHJvcGVydHlPZmZlclN0YXR1cztcbiAgICAgICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oJ1JlamVjdGVkJyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvcjogKGUpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oZS5tZXNzYWdlKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiQGlmIChvZmZlcikge1xuICA8cm9sYXRlY2gtdG9vbGJhciBbdGl0bGVdPVwic3RhdHVzW29mZmVyLnN0YXR1c11cIiBsYXJnZSBsaW5rPVwiLi4vXCI+XG4gICAgQGlmIChvZmZlci5zdGF0dXMudG9TdHJpbmcoKSA9PT0gJ1BFTkRJTkcnKSB7XG4gICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiAoY2xpY2spPVwiYWNjZXB0KClcIiBpMThuPkFjY2VwdDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIChjbGljayk9XCJyZWplY3QoKVwiIGkxOG4+UmVqZWN0PC9idXR0b24+XG4gICAgfVxuICA8L3JvbGF0ZWNoLXRvb2xiYXI+XG4gIDxkaXYgY2xhc3M9XCJweC00XCI+XG4gICAgPGRpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxnIGZvbnQtYm9sZCBweS0yXCI+Vmlld2VyPC9kaXY+XG4gICAgICA8aHIgY2xhc3M9XCJtYi0yXCIgLz5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IGdhcC0xIG1kOmdhcC00XCI+XG4gICAgICAgIDxyb2xhdGVjaC1yaWNoLWxhYmVsIGxhYmVsPVwiTmFtZVwiIFt0aXRsZV09XCJuYW1lXCI+PC9yb2xhdGVjaC1yaWNoLWxhYmVsPlxuICAgICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIkVtYWlsXCIgW3RpdGxlXT1cIm9mZmVyLmVtYWlsXCI+PC9yb2xhdGVjaC1yaWNoLWxhYmVsPlxuICAgICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIlBob25lXCIgW3RpdGxlXT1cIm9mZmVyLnBob25lXCI+PC9yb2xhdGVjaC1yaWNoLWxhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxnIGZvbnQtYm9sZCBweS0yXCI+UXVhbGlmaWNhdGlvbjwvZGl2PlxuICAgICAgPGhyIGNsYXNzPVwibWItMlwiIC8+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBtZDpmbGV4LXJvdyBnYXAtMSBtZDpnYXAtNFwiPlxuICAgICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIk1vdmUtaW4gZGF0ZVwiIFt0aXRsZV09XCJvZmZlci5zdGFydERhdGVcIj48L3JvbGF0ZWNoLXJpY2gtbGFiZWw+XG4gICAgICAgIDxyb2xhdGVjaC1yaWNoLWxhYmVsIGxhYmVsPVwiVGVuYW5jeSBkdXJhdGlvblwiIFt0aXRsZV09XCJvZmZlci50ZW5hbmN5RHVyYXRpb25cIj48L3JvbGF0ZWNoLXJpY2gtbGFiZWw+XG4gICAgICAgIDxyb2xhdGVjaC1yaWNoLWxhYmVsIGxhYmVsPVwiTnVtYmVyIG9mIHRlbmFudHNcIiBbdGl0bGVdPVwib2ZmZXIubnVtYmVyT2ZUZW5hbnRzXCI+PC9yb2xhdGVjaC1yaWNoLWxhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBtZDpmbGV4LXJvdyBnYXAtMSBtZDpnYXAtNFwiPlxuICAgICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIkVtcGxveW1lbnQgc3RhdHVzXCIgW3RpdGxlXT1cImVtcGxveW1lbnRTdGF0dXNbb2ZmZXIuZW1wbG95bWVudFN0YXR1c11cIj48L3JvbGF0ZWNoLXJpY2gtbGFiZWw+XG4gICAgICAgIDxyb2xhdGVjaC1yaWNoLWxhYmVsIGxhYmVsPVwiRW1wbG95ZXJcIiBbdGl0bGVdPVwib2ZmZXIuc3RhcnREYXRlXCI+PC9yb2xhdGVjaC1yaWNoLWxhYmVsPlxuICAgICAgICBAaWYgKG9mZmVyLmluY29tZSkge1xuICAgICAgICAgIDxyb2xhdGVjaC1yaWNoLWxhYmVsIGxhYmVsPVwiQW5udWFsIGluY29tZVwiIFt0aXRsZV09XCJvZmZlci5pbmNvbWVcIj48L3JvbGF0ZWNoLXJpY2gtbGFiZWw+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZyBmb250LWJvbGQgcHktMlwiPlByb3BlcnR5IGRldGFpbHM8L2Rpdj5cbiAgICAgIDxociBjbGFzcz1cIm1iLTJcIiAvPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIHB5LTJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pbi13LTE2IHctMjQgb2JqZWN0LWNvdmVyIGFzcGVjdC12aWRlbyByb3VuZGVkLW1kIG1yLTNcIj5cbiAgICAgICAgICBAZGVmZXIge1xuICAgICAgICAgICAgPHJvbGF0ZWNoLXRodW1ibmFpbCBbc3JjXT1cIm9mZmVyLml0ZW0ubWVkaWFbMF0udXJsXCIgc2l6ZT1cIm1lZGl1bVwiIG1vZGU9XCJmdWxsXCI+IDwvcm9sYXRlY2gtdGh1bWJuYWlsPlxuICAgICAgICAgIH0gQHBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiZy1bLS1ydC1yYWlzZWQtYmFja2dyb3VuZF0gaC1mdWxsIHctZnVsbCBvYmplY3QtY292ZXIgYXNwZWN0LXZpZGVvIHJvdW5kZWQtbGdcIj48L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCB3LWZ1bGwganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIHctZnVsbFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgICAgICAgICAgPGRpdj57eyBvZmZlci5pdGVtLnByb3BlcnR5VGl0bGUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlubGluZS1mbGV4IGdhcC0xIG10LTJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtci0xXCI+e3sgb2ZmZXIuaXRlbS5iZWRyb29tcyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGkxOG4+QmVkcm9vbXM8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXItMVwiPnt7IG9mZmVyLml0ZW0uYmF0aHJvb21zIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gaTE4bj5CYXRocm9vbXM8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXItMVwiPnt7IG9mZmVyLml0ZW0ucmVjZXB0aW9ucyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGkxOG4+UmVjZXB0aW9uczwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXJpZ2h0XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNtXCI+wqN7eyBvZmZlci5pdGVtLnByaWNlIHwgZml4ZWQgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhpZGRlbiBtZDpmbGV4IGZsZXgtY29sIHB4LTNcIj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxnIGZvbnQtYm9sZCBweS0yXCI+Vmlld2luZyBhZ2VudDwvZGl2PlxuICAgICAgPGhyIGNsYXNzPVwibWItMlwiIC8+XG4gICAgICBAaWYgKGFnZW50KSB7XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPHJvbGF0ZWNoLXJpY2gtbGFiZWwgbGFiZWw9XCJNb3ZlLWluIGRhdGVcIiBbdGl0bGVdPVwib2ZmZXIuc3RhcnREYXRlXCI+PC9yb2xhdGVjaC1yaWNoLWxhYmVsPlxuICAgICAgICAgIDxyb2xhdGVjaC1yaWNoLWxhYmVsIGxhYmVsPVwiVGVuYW5jeSBkdXJhdGlvblwiIFt0aXRsZV09XCJvZmZlci50ZW5hbmN5RHVyYXRpb25cIj48L3JvbGF0ZWNoLXJpY2gtbGFiZWw+XG4gICAgICAgICAgPHJvbGF0ZWNoLXJpY2gtbGFiZWwgbGFiZWw9XCJQaG9uZVwiIFt0aXRsZV09XCJhZ2VudC5waG9uZVwiPjwvcm9sYXRlY2gtcmljaC1sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxufVxuIl19","import { PropertyManageOfferIndexComponent } from './property-manage-offer-index/property-manage-offer-index.component';\nimport { PropertyManageOfferDetailComponent } from './property-manage-offer-detail/property-manage-offer-detail.component';\nexport const propertyManageOffersRoutes = [\n {\n path: '',\n component: PropertyManageOfferIndexComponent,\n },\n {\n path: ':id',\n component: PropertyManageOfferDetailComponent,\n },\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbWFuYWdlLW9mZmVycy5yb3V0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktbWFuYWdlL3Byb3BlcnR5LW1hbmFnZS1vZmZlcnMucm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHFFQUFxRSxDQUFDO0FBQ3hILE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHVFQUF1RSxDQUFDO0FBRTNILE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFXO0lBQ2hEO1FBQ0UsSUFBSSxFQUFFLEVBQUU7UUFDUixTQUFTLEVBQUUsaUNBQWlDO0tBQzdDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsS0FBSztRQUNYLFNBQVMsRUFBRSxrQ0FBa0M7S0FDOUM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFByb3BlcnR5TWFuYWdlT2ZmZXJJbmRleENvbXBvbmVudCB9IGZyb20gJy4vcHJvcGVydHktbWFuYWdlLW9mZmVyLWluZGV4L3Byb3BlcnR5LW1hbmFnZS1vZmZlci1pbmRleC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvcGVydHlNYW5hZ2VPZmZlckRldGFpbENvbXBvbmVudCB9IGZyb20gJy4vcHJvcGVydHktbWFuYWdlLW9mZmVyLWRldGFpbC9wcm9wZXJ0eS1tYW5hZ2Utb2ZmZXItZGV0YWlsLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjb25zdCBwcm9wZXJ0eU1hbmFnZU9mZmVyc1JvdXRlczogUm91dGVzID0gW1xuICB7XG4gICAgcGF0aDogJycsXG4gICAgY29tcG9uZW50OiBQcm9wZXJ0eU1hbmFnZU9mZmVySW5kZXhDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnOmlkJyxcbiAgICBjb21wb25lbnQ6IFByb3BlcnR5TWFuYWdlT2ZmZXJEZXRhaWxDb21wb25lbnQsXG4gIH0sXG5dO1xuIl19","import { EventEmitter, Injectable } from \"@angular/core\";\nimport * as i0 from \"@angular/core\";\nexport var PropertyViewType;\n(function (PropertyViewType) {\n PropertyViewType[PropertyViewType[\"GRID\"] = 0] = \"GRID\";\n PropertyViewType[PropertyViewType[\"LIST\"] = 1] = \"LIST\";\n})(PropertyViewType || (PropertyViewType = {}));\nexport class PropertyUtil {\n viewEvent = new EventEmitter();\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyUtil, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyUtil, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyUtil, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wcm9wZXJ0eS11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUV6RCxNQUFNLENBQU4sSUFBWSxnQkFHWDtBQUhELFdBQVksZ0JBQWdCO0lBQzFCLHVEQUFRLENBQUE7SUFDUix1REFBUSxDQUFBO0FBQ1YsQ0FBQyxFQUhXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFHM0I7QUFLRCxNQUFNLE9BQU8sWUFBWTtJQUN2QixTQUFTLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7dUdBRHRDLFlBQVk7MkdBQVosWUFBWSxjQUZYLE1BQU07OzJGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuZXhwb3J0IGVudW0gUHJvcGVydHlWaWV3VHlwZSB7XG4gIEdSSUQgPSAwLFxuICBMSVNUID0gMSxcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5VXRpbCB7XG4gIHZpZXdFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8UHJvcGVydHlWaWV3VHlwZT4oKTtcblxufVxuIl19","import { Component, inject, signal, viewChild } from '@angular/core';\nimport { AngularComponentsModule, BaseComponent, ContainerComponent, SearchBar } from '@rolatech/angular-components';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { PropertyService } from '@rolatech/angular-services';\nimport { defer } from 'rxjs';\nimport { PropertyUtil, PropertyViewType } from '../../../property-util';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@angular/router\";\nimport * as i3 from \"@angular/material/button\";\nimport * as i4 from \"@angular/material/icon\";\nexport class PropertyLayoutComponent extends BaseComponent {\n propertyService = inject(PropertyService);\n util = inject(PropertyUtil);\n open = signal(false, ...(ngDevMode ? [{ debugName: \"open\" }] : []));\n model = {};\n gridView = true;\n searchBar = viewChild('searchBar', ...(ngDevMode ? [{ debugName: \"searchBar\" }] : []));\n selectIndex = 0;\n filter = false;\n propertyFilterIconComponent = defer(() => import('../../../components/property-filter-icon/property-filter-icon.component').then((m) => m.PropertyFilterIconComponent));\n ngOnInit() {\n }\n toggleSearch() {\n this.open.update(v => !v);\n }\n onCloseSearch() {\n // this.open.set(false);\n // this.router.navigate([], { queryParams: {}, queryParamsHandling: 'merge' });\n this.router.navigate([\"/properties\"]);\n }\n toggleView() {\n if (this.gridView) {\n this.gridView = false;\n this.util.viewEvent.emit(PropertyViewType.LIST);\n }\n else {\n this.gridView = true;\n this.util.viewEvent.emit(PropertyViewType.GRID);\n }\n }\n onSearch(event) {\n const qp = Object.fromEntries(Object.entries(event).filter(([_, v]) => v !== undefined && v !== null && !(Array.isArray(v) && v.length === 0) && v !== ''));\n this.router.navigate([], {\n queryParams: qp,\n queryParamsHandling: 'merge', // keep other params like sort, etc.\n });\n }\n searchByText(event) {\n this.router.navigate([], {\n queryParams: { q: event, page: 1, limit: 15 },\n queryParamsHandling: 'merge', // keep other params like sort, etc.\n });\n }\n onReset(event) {\n this.router.navigate([], {\n queryParams: {}, // empty\n // omit queryParamsHandling so it REPLACES (not merges) → clears everything\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyLayoutComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.2.0\", type: PropertyLayoutComponent, isStandalone: true, selector: \"rolatech-property-layout\", viewQueries: [{ propertyName: \"searchBar\", first: true, predicate: [\"searchBar\"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: \"<rolatech-container>\\n <div class=\\\"flex flex-col min-w-[320px] max-w-[1280px] m-auto\\\">\\n <div class=\\\"flex justify-between items-center h-16\\\">\\n <div class=\\\"flex justify-between items-center w-full\\\">\\n <div class=\\\"p-3 text-2xl font-medium cursor-pointer\\\" routerLink=\\\"/properties\\\" i18n>Properties</div>\\n <div class=\\\"flex flex-row\\\">\\n <button mat-icon-button (click)=\\\"toggleSearch()\\\">\\n <mat-icon>search</mat-icon>\\n </button>\\n <button mat-icon-button (click)=\\\"toggleView()\\\">\\n <mat-icon>{{ gridView ? 'view_list' : 'grid_on' }}</mat-icon>\\n </button>\\n <ng-container *ngComponentOutlet=\\\"propertyFilterIconComponent | async\\\"></ng-container>\\n </div>\\n </div>\\n </div>\\n <rolatech-search-bar\\n [(show)]=\\\"open\\\"\\n #searchBar\\n (search)=\\\"searchByText($event)\\\"\\n (close)=\\\"onCloseSearch()\\\"\\n ></rolatech-search-bar>\\n <div class=\\\"w-full\\\">\\n <router-outlet></router-outlet>\\n </div>\\n </div>\\n</rolatech-container>\\n\", styles: [\".property-layout-active{border-radius:var(--rt-rounded-base, 8px);background-color:var(-rt-base-background, #fff);color:var(--rt-brand-color, #000)}@media (max-width: 768px){.property-layout-active{background-color:var(--rt-text-primary, #000);color:var(--rt-text-primary-inverse, #000)}}.scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}\\n\"], dependencies: [{ kind: \"ngmodule\", type: AngularCommonModule }, { kind: \"directive\", type: i1.NgComponentOutlet, selector: \"[ngComponentOutlet]\", inputs: [\"ngComponentOutlet\", \"ngComponentOutletInputs\", \"ngComponentOutletInjector\", \"ngComponentOutletEnvironmentInjector\", \"ngComponentOutletContent\", \"ngComponentOutletNgModule\", \"ngComponentOutletNgModuleFactory\"], exportAs: [\"ngComponentOutlet\"] }, { kind: \"directive\", type: i2.RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"directive\", type: i2.RouterOutlet, selector: \"router-outlet\", inputs: [\"name\", \"routerOutletData\"], outputs: [\"activate\", \"deactivate\", \"attach\", \"detach\"], exportAs: [\"outlet\"] }, { kind: \"ngmodule\", type: AngularComponentsModule }, { kind: \"component\", type: i3.MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: i4.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"component\", type: ContainerComponent, selector: \"rolatech-container\" }, { kind: \"component\", type: SearchBar, selector: \"rolatech-search-bar\", inputs: [\"show\"], outputs: [\"showChange\", \"search\", \"close\"] }, { kind: \"pipe\", type: i1.AsyncPipe, name: \"async\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyLayoutComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-layout', imports: [AngularCommonModule, AngularComponentsModule, ContainerComponent, SearchBar], template: \"<rolatech-container>\\n <div class=\\\"flex flex-col min-w-[320px] max-w-[1280px] m-auto\\\">\\n <div class=\\\"flex justify-between items-center h-16\\\">\\n <div class=\\\"flex justify-between items-center w-full\\\">\\n <div class=\\\"p-3 text-2xl font-medium cursor-pointer\\\" routerLink=\\\"/properties\\\" i18n>Properties</div>\\n <div class=\\\"flex flex-row\\\">\\n <button mat-icon-button (click)=\\\"toggleSearch()\\\">\\n <mat-icon>search</mat-icon>\\n </button>\\n <button mat-icon-button (click)=\\\"toggleView()\\\">\\n <mat-icon>{{ gridView ? 'view_list' : 'grid_on' }}</mat-icon>\\n </button>\\n <ng-container *ngComponentOutlet=\\\"propertyFilterIconComponent | async\\\"></ng-container>\\n </div>\\n </div>\\n </div>\\n <rolatech-search-bar\\n [(show)]=\\\"open\\\"\\n #searchBar\\n (search)=\\\"searchByText($event)\\\"\\n (close)=\\\"onCloseSearch()\\\"\\n ></rolatech-search-bar>\\n <div class=\\\"w-full\\\">\\n <router-outlet></router-outlet>\\n </div>\\n </div>\\n</rolatech-container>\\n\", styles: [\".property-layout-active{border-radius:var(--rt-rounded-base, 8px);background-color:var(-rt-base-background, #fff);color:var(--rt-brand-color, #000)}@media (max-width: 768px){.property-layout-active{background-color:var(--rt-text-primary, #000);color:var(--rt-text-primary-inverse, #000)}}.scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS9wcm9wZXJ0eS1sYXlvdXQvcHJvcGVydHktbGF5b3V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS9wcm9wZXJ0eS1sYXlvdXQvcHJvcGVydHktbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNySCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7OztBQVF4RSxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsYUFBYTtJQUN4RCxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzFDLElBQUksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDM0IsSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLGdEQUFDLENBQUM7SUFDckIsS0FBSyxHQUFtQixFQUFFLENBQUM7SUFDM0IsUUFBUSxHQUFHLElBQUksQ0FBQTtJQUNmLFNBQVMsR0FBRyxTQUFTLENBQStCLFdBQVcscURBQUMsQ0FBQTtJQUNoRSxXQUFXLEdBQUcsQ0FBQyxDQUFDO0lBQ2hCLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDZiwyQkFBMkIsR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQ3ZDLE1BQU0sQ0FBQyx5RUFBeUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixDQUFDLENBQzdILENBQUM7SUFDRixRQUFRO0lBQ1IsQ0FBQztJQUNELFlBQVk7UUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNELGFBQWE7UUFDWCx3QkFBd0I7UUFDeEIsK0VBQStFO1FBQy9FLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBQ0QsVUFBVTtRQUNSLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFBO1lBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNqRCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFBO1lBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNqRCxDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFVO1FBQ2pCLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQzNCLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUN0QyxDQUFDLEtBQUssU0FBUyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUNuRixDQUNGLENBQUM7UUFFRixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUU7WUFDdkIsV0FBVyxFQUFFLEVBQUU7WUFDZixtQkFBbUIsRUFBRSxPQUFPLEVBQUUsb0NBQW9DO1NBQ25FLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxZQUFZLENBQUMsS0FBVTtRQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUU7WUFDdkIsV0FBVyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDN0MsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLG9DQUFvQztTQUNuRSxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxDQUFDLEtBQVU7UUFDaEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFO1lBQ3ZCLFdBQVcsRUFBRSxFQUFFLEVBQUUsUUFBUTtZQUN6QiwyRUFBMkU7U0FDNUUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0F2RFUsdUJBQXVCOzJGQUF2Qix1QkFBdUIsbU9DYnBDLHVqQ0EyQkEsd2NEbEJZLG1CQUFtQiw4eEJBQUUsdUJBQXVCLDJXQUFFLGtCQUFrQiwrREFBRSxTQUFTOzsyRkFJMUUsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUNFLDBCQUEwQixXQUMzQixDQUFDLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLGtCQUFrQixFQUFFLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgaW5qZWN0LCBPbkluaXQsIHNpZ25hbCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbmd1bGFyQ29tcG9uZW50c01vZHVsZSwgQmFzZUNvbXBvbmVudCwgQ29udGFpbmVyQ29tcG9uZW50LCBTZWFyY2hCYXIgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IEFuZ3VsYXJDb21tb25Nb2R1bGUgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21tb24nO1xuaW1wb3J0IHsgUHJvcGVydHlTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItc2VydmljZXMnO1xuaW1wb3J0IHsgZGVmZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFByb3BlcnR5VXRpbCwgUHJvcGVydHlWaWV3VHlwZSB9IGZyb20gJy4uLy4uLy4uL3Byb3BlcnR5LXV0aWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1wcm9wZXJ0eS1sYXlvdXQnLFxuICBpbXBvcnRzOiBbQW5ndWxhckNvbW1vbk1vZHVsZSwgQW5ndWxhckNvbXBvbmVudHNNb2R1bGUsIENvbnRhaW5lckNvbXBvbmVudCwgU2VhcmNoQmFyXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LWxheW91dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9wZXJ0eS1sYXlvdXQuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eUxheW91dENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcm9wZXJ0eVNlcnZpY2UgPSBpbmplY3QoUHJvcGVydHlTZXJ2aWNlKTtcbiAgdXRpbCA9IGluamVjdChQcm9wZXJ0eVV0aWwpXG4gIG9wZW4gPSBzaWduYWwoZmFsc2UpO1xuICBtb2RlbDogeyBxPzogc3RyaW5nIH0gPSB7fTtcbiAgZ3JpZFZpZXcgPSB0cnVlXG4gIHNlYXJjaEJhciA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+Pignc2VhcmNoQmFyJylcbiAgc2VsZWN0SW5kZXggPSAwO1xuICBmaWx0ZXIgPSBmYWxzZTtcbiAgcHJvcGVydHlGaWx0ZXJJY29uQ29tcG9uZW50ID0gZGVmZXIoKCkgPT5cbiAgICBpbXBvcnQoJy4uLy4uLy4uL2NvbXBvbmVudHMvcHJvcGVydHktZmlsdGVyLWljb24vcHJvcGVydHktZmlsdGVyLWljb24uY29tcG9uZW50JykudGhlbigobSkgPT4gbS5Qcm9wZXJ0eUZpbHRlckljb25Db21wb25lbnQpLFxuICApO1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuICB0b2dnbGVTZWFyY2goKSB7XG4gICAgdGhpcy5vcGVuLnVwZGF0ZSh2ID0+ICF2KTtcbiAgfVxuICBvbkNsb3NlU2VhcmNoKCkge1xuICAgIC8vIHRoaXMub3Blbi5zZXQoZmFsc2UpO1xuICAgIC8vIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7IHF1ZXJ5UGFyYW1zOiB7fSwgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJyB9KTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCIvcHJvcGVydGllc1wiXSk7XG4gIH1cbiAgdG9nZ2xlVmlldygpIHtcbiAgICBpZiAodGhpcy5ncmlkVmlldykge1xuICAgICAgdGhpcy5ncmlkVmlldyA9IGZhbHNlXG4gICAgICB0aGlzLnV0aWwudmlld0V2ZW50LmVtaXQoUHJvcGVydHlWaWV3VHlwZS5MSVNUKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmdyaWRWaWV3ID0gdHJ1ZVxuICAgICAgdGhpcy51dGlsLnZpZXdFdmVudC5lbWl0KFByb3BlcnR5Vmlld1R5cGUuR1JJRClcbiAgICB9XG4gIH1cblxuICBvblNlYXJjaChldmVudDogYW55KSB7XG4gICAgY29uc3QgcXAgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBPYmplY3QuZW50cmllcyhldmVudCkuZmlsdGVyKChbXywgdl0pID0+XG4gICAgICAgIHYgIT09IHVuZGVmaW5lZCAmJiB2ICE9PSBudWxsICYmICEoQXJyYXkuaXNBcnJheSh2KSAmJiB2Lmxlbmd0aCA9PT0gMCkgJiYgdiAhPT0gJydcbiAgICAgIClcbiAgICApO1xuXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW10sIHtcbiAgICAgIHF1ZXJ5UGFyYW1zOiBxcCxcbiAgICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdtZXJnZScsIC8vIGtlZXAgb3RoZXIgcGFyYW1zIGxpa2Ugc29ydCwgZXRjLlxuICAgIH0pO1xuICB9XG4gIHNlYXJjaEJ5VGV4dChldmVudDogYW55KSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW10sIHtcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7IHE6IGV2ZW50LCBwYWdlOiAxLCBsaW1pdDogMTUgfSxcbiAgICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdtZXJnZScsIC8vIGtlZXAgb3RoZXIgcGFyYW1zIGxpa2Ugc29ydCwgZXRjLlxuICAgIH0pO1xuICB9XG4gIG9uUmVzZXQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7XG4gICAgICBxdWVyeVBhcmFtczoge30sIC8vIGVtcHR5XG4gICAgICAvLyBvbWl0IHF1ZXJ5UGFyYW1zSGFuZGxpbmcgc28gaXQgUkVQTEFDRVMgKG5vdCBtZXJnZXMpIOKGkiBjbGVhcnMgZXZlcnl0aGluZ1xuICAgIH0pO1xuICB9XG59XG4iLCI8cm9sYXRlY2gtY29udGFpbmVyPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBtaW4tdy1bMzIwcHhdIG1heC13LVsxMjgwcHhdIG0tYXV0b1wiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgaC0xNlwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciB3LWZ1bGxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInAtMyB0ZXh0LTJ4bCBmb250LW1lZGl1bSBjdXJzb3ItcG9pbnRlclwiIHJvdXRlckxpbms9XCIvcHJvcGVydGllc1wiIGkxOG4+UHJvcGVydGllczwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvd1wiPlxuICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJ0b2dnbGVTZWFyY2goKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPnNlYXJjaDwvbWF0LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInRvZ2dsZVZpZXcoKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPnt7IGdyaWRWaWV3ID8gJ3ZpZXdfbGlzdCcgOiAnZ3JpZF9vbicgfX08L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nQ29tcG9uZW50T3V0bGV0PVwicHJvcGVydHlGaWx0ZXJJY29uQ29tcG9uZW50IHwgYXN5bmNcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8cm9sYXRlY2gtc2VhcmNoLWJhclxuICAgICAgWyhzaG93KV09XCJvcGVuXCJcbiAgICAgICNzZWFyY2hCYXJcbiAgICAgIChzZWFyY2gpPVwic2VhcmNoQnlUZXh0KCRldmVudClcIlxuICAgICAgKGNsb3NlKT1cIm9uQ2xvc2VTZWFyY2goKVwiXG4gICAgPjwvcm9sYXRlY2gtc2VhcmNoLWJhcj5cbiAgICA8ZGl2IGNsYXNzPVwidy1mdWxsXCI+XG4gICAgICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9yb2xhdGVjaC1jb250YWluZXI+XG4iXX0=","import { Component, computed, input, output, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\nexport class PropertyActionsComponent {\n property = input.required(...(ngDevMode ? [{ debugName: \"property\" }] : []));\n requestViewing = output();\n offer = output();\n deposit = output();\n displayDeposit = computed(() => {\n return (this.property().deposit / 100).toFixed(2);\n }, ...(ngDevMode ? [{ debugName: \"displayDeposit\" }] : []));\n onRequestViewing(property) {\n this.requestViewing.emit(property);\n }\n onOffer(property) {\n this.offer.emit(property);\n }\n onDeposit(property) {\n this.deposit.emit(property);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyActionsComponent, isStandalone: true, selector: \"rolatech-property-actions\", inputs: { property: { classPropertyName: \"property\", publicName: \"property\", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { requestViewing: \"requestViewing\", offer: \"offer\", deposit: \"deposit\" }, ngImport: i0, template: \"<div class=\\\"flex flex-col gap-3\\\">\\n <a mat-stroked-button class=\\\"\\\" (click)=\\\"onRequestViewing(property())\\\" i18n>Request viewing</a>\\n @if (property().priceType && property().priceType.toString() === 'PARTIAL') {\\n <a mat-flat-button class=\\\"\\\" (click)=\\\"onDeposit(property())\\\" i18n>Pay deposit \\u00A3{{ displayDeposit() }}</a>\\n } @else {\\n <a mat-flat-button class=\\\"\\\" (click)=\\\"onOffer(property())\\\" i18n>Make an offer</a>\\n }\\n <ng-content select=\\\"rolatech-property-action-contact\\\"></ng-content>\\n</div>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i1.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"ngmodule\", type: MatMenuModule }], encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyActionsComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-actions', imports: [CommonModule, MatButtonModule, MatIconModule, MatMenuModule], encapsulation: ViewEncapsulation.None, template: \"<div class=\\\"flex flex-col gap-3\\\">\\n <a mat-stroked-button class=\\\"\\\" (click)=\\\"onRequestViewing(property())\\\" i18n>Request viewing</a>\\n @if (property().priceType && property().priceType.toString() === 'PARTIAL') {\\n <a mat-flat-button class=\\\"\\\" (click)=\\\"onDeposit(property())\\\" i18n>Pay deposit \\u00A3{{ displayDeposit() }}</a>\\n } @else {\\n <a mat-flat-button class=\\\"\\\" (click)=\\\"onOffer(property())\\\" i18n>Make an offer</a>\\n }\\n <ng-content select=\\\"rolatech-property-action-contact\\\"></ng-content>\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktYWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvY29tcG9uZW50cy9wcm9wZXJ0eS1hY3Rpb25zL3Byb3BlcnR5LWFjdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktYWN0aW9ucy9wcm9wZXJ0eS1hY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFTdkQsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsbURBQVksQ0FBQztJQUN0QyxjQUFjLEdBQUcsTUFBTSxFQUFZLENBQUM7SUFDcEMsS0FBSyxHQUFHLE1BQU0sRUFBWSxDQUFDO0lBQzNCLE9BQU8sR0FBRyxNQUFNLEVBQVksQ0FBQztJQUU3QixjQUFjLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUM3QixPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQywwREFBQyxDQUFDO0lBRUgsZ0JBQWdCLENBQUMsUUFBa0I7UUFDakMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUNELE9BQU8sQ0FBQyxRQUFrQjtRQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBQ0QsU0FBUyxDQUFDLFFBQWtCO1FBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlCLENBQUM7dUdBbEJVLHdCQUF3QjsyRkFBeEIsd0JBQXdCLG9UQ2RyQyxraEJBU0EseUREQVksWUFBWSw4QkFBRSxlQUFlLG1YQUFFLGFBQWEsOEJBQUUsYUFBYTs7MkZBSzFELHdCQUF3QjtrQkFQcEMsU0FBUzsrQkFDRSwyQkFBMkIsV0FDNUIsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsaUJBR3ZELGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbnB1dCwgb3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1wcm9wZXJ0eS1hY3Rpb25zJyxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBNYXRNZW51TW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LWFjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHJvcGVydHktYWN0aW9ucy5jb21wb25lbnQuc2NzcycsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5QWN0aW9uc0NvbXBvbmVudCB7XG4gIHByb3BlcnR5ID0gaW5wdXQucmVxdWlyZWQ8UHJvcGVydHk+KCk7XG4gIHJlcXVlc3RWaWV3aW5nID0gb3V0cHV0PFByb3BlcnR5PigpO1xuICBvZmZlciA9IG91dHB1dDxQcm9wZXJ0eT4oKTtcbiAgZGVwb3NpdCA9IG91dHB1dDxQcm9wZXJ0eT4oKTtcblxuICBkaXNwbGF5RGVwb3NpdCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gKHRoaXMucHJvcGVydHkoKS5kZXBvc2l0IC8gMTAwKS50b0ZpeGVkKDIpO1xuICB9KTtcblxuICBvblJlcXVlc3RWaWV3aW5nKHByb3BlcnR5OiBQcm9wZXJ0eSkge1xuICAgIHRoaXMucmVxdWVzdFZpZXdpbmcuZW1pdChwcm9wZXJ0eSk7XG4gIH1cbiAgb25PZmZlcihwcm9wZXJ0eTogUHJvcGVydHkpIHtcbiAgICB0aGlzLm9mZmVyLmVtaXQocHJvcGVydHkpO1xuICB9XG4gIG9uRGVwb3NpdChwcm9wZXJ0eTogUHJvcGVydHkpIHtcbiAgICB0aGlzLmRlcG9zaXQuZW1pdChwcm9wZXJ0eSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zXCI+XG4gIDxhIG1hdC1zdHJva2VkLWJ1dHRvbiBjbGFzcz1cIlwiIChjbGljayk9XCJvblJlcXVlc3RWaWV3aW5nKHByb3BlcnR5KCkpXCIgaTE4bj5SZXF1ZXN0IHZpZXdpbmc8L2E+XG4gIEBpZiAocHJvcGVydHkoKS5wcmljZVR5cGUgJiYgcHJvcGVydHkoKS5wcmljZVR5cGUudG9TdHJpbmcoKSA9PT0gJ1BBUlRJQUwnKSB7XG4gICAgPGEgbWF0LWZsYXQtYnV0dG9uIGNsYXNzPVwiXCIgKGNsaWNrKT1cIm9uRGVwb3NpdChwcm9wZXJ0eSgpKVwiIGkxOG4+UGF5IGRlcG9zaXQgwqN7eyBkaXNwbGF5RGVwb3NpdCgpIH19PC9hPlxuICB9IEBlbHNlIHtcbiAgICA8YSBtYXQtZmxhdC1idXR0b24gY2xhc3M9XCJcIiAoY2xpY2spPVwib25PZmZlcihwcm9wZXJ0eSgpKVwiIGkxOG4+TWFrZSBhbiBvZmZlcjwvYT5cbiAgfVxuICA8bmctY29udGVudCBzZWxlY3Q9XCJyb2xhdGVjaC1wcm9wZXJ0eS1hY3Rpb24tY29udGFjdFwiPjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19","import { Component, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ImagePlaceholderComponent, ThumbnailComponent } from '@rolatech/angular-components';\nimport { FixedPipe } from '@rolatech/angular-common';\nimport * as i0 from \"@angular/core\";\nexport class PropertyItemComponent {\n property = input.required(...(ngDevMode ? [{ debugName: \"property\" }] : []));\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyItemComponent, isStandalone: true, selector: \"rolatech-property-item\", inputs: { property: { classPropertyName: \"property\", publicName: \"property\", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: \"<div class=\\\"flex flex-col hover:bg-[--rt-raised-background] cursor-pointer p-3\\\">\\n <div>\\n <div class=\\\"flex justify-between w-full mb-2\\\">\\n <a class=\\\"flex items-center gap-3\\\">\\n <span>ID: {{ property().id }}</span>\\n </a>\\n </div>\\n <div class=\\\"flex flex-col overflow-x-scroll scrollbar-hide\\\">\\n <div class=\\\"flex flex-row py-2\\\">\\n @if (property().media) {\\n <div class=\\\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\\\">\\n @defer {\\n <rolatech-thumbnail [src]=\\\"property().media[0].url\\\" size=\\\"medium\\\" mode=\\\"full\\\"> </rolatech-thumbnail>\\n } @placeholder {\\n <div class=\\\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\\\"></div>\\n }\\n </div>\\n } @else {\\n <div class=\\\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\\\">\\n <rolatech-image-placeholder></rolatech-image-placeholder>\\n </div>\\n }\\n <div class=\\\"flex w-full justify-between\\\">\\n <div class=\\\"flex justify-between w-full\\\">\\n <div class=\\\"flex flex-col\\\">\\n <div>{{ property().title }}</div>\\n <div class=\\\"inline-flex gap-1 mt-2\\\">\\n <div>\\n <span class=\\\"mr-1\\\">{{ property().bedrooms }}</span>\\n <span i18n>Bedrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ property().bathrooms }}</span>\\n <span i18n>Bathrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ property().receptions }}</span>\\n <span i18n>Receptions</span>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"text-right\\\">\\n <div class=\\\"text-sm\\\">\\u00A3{{ property().price | fixed }}</div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"component\", type: ImagePlaceholderComponent, selector: \"rolatech-image-placeholder\", inputs: [\"ratio\"] }, { kind: \"pipe\", type: FixedPipe, name: \"fixed\" }], deferBlockDependencies: [() => [ThumbnailComponent]] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyItemComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-item', imports: [CommonModule, ThumbnailComponent, ImagePlaceholderComponent, FixedPipe], template: \"<div class=\\\"flex flex-col hover:bg-[--rt-raised-background] cursor-pointer p-3\\\">\\n <div>\\n <div class=\\\"flex justify-between w-full mb-2\\\">\\n <a class=\\\"flex items-center gap-3\\\">\\n <span>ID: {{ property().id }}</span>\\n </a>\\n </div>\\n <div class=\\\"flex flex-col overflow-x-scroll scrollbar-hide\\\">\\n <div class=\\\"flex flex-row py-2\\\">\\n @if (property().media) {\\n <div class=\\\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\\\">\\n @defer {\\n <rolatech-thumbnail [src]=\\\"property().media[0].url\\\" size=\\\"medium\\\" mode=\\\"full\\\"> </rolatech-thumbnail>\\n } @placeholder {\\n <div class=\\\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\\\"></div>\\n }\\n </div>\\n } @else {\\n <div class=\\\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\\\">\\n <rolatech-image-placeholder></rolatech-image-placeholder>\\n </div>\\n }\\n <div class=\\\"flex w-full justify-between\\\">\\n <div class=\\\"flex justify-between w-full\\\">\\n <div class=\\\"flex flex-col\\\">\\n <div>{{ property().title }}</div>\\n <div class=\\\"inline-flex gap-1 mt-2\\\">\\n <div>\\n <span class=\\\"mr-1\\\">{{ property().bedrooms }}</span>\\n <span i18n>Bedrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ property().bathrooms }}</span>\\n <span i18n>Bathrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ property().receptions }}</span>\\n <span i18n>Receptions</span>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"text-right\\\">\\n <div class=\\\"text-sm\\\">\\u00A3{{ property().price | fixed }}</div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvY29tcG9uZW50cy9wcm9wZXJ0eS1pdGVtL3Byb3BlcnR5LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktaXRlbS9wcm9wZXJ0eS1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBUXJELE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLG1EQUFZLENBQUM7dUdBRDNCLHFCQUFxQjsyRkFBckIscUJBQXFCLDhOQ1psQyxtL0RBa0RBLHlERDFDWSxZQUFZLCtCQUFzQix5QkFBeUIscUZBQUUsU0FBUyxvREFBeEQsa0JBQWtCOzsyRkFJL0IscUJBQXFCO2tCQU5qQyxTQUFTOytCQUNFLHdCQUF3QixXQUN6QixDQUFDLFlBQVksRUFBRSxrQkFBa0IsRUFBRSx5QkFBeUIsRUFBRSxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUHJvcGVydHkgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEltYWdlUGxhY2Vob2xkZXJDb21wb25lbnQsIFRodW1ibmFpbENvbXBvbmVudCB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgRml4ZWRQaXBlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvcGVydHktaXRlbScsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRodW1ibmFpbENvbXBvbmVudCwgSW1hZ2VQbGFjZWhvbGRlckNvbXBvbmVudCwgRml4ZWRQaXBlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHJvcGVydHktaXRlbS5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5SXRlbUNvbXBvbmVudCB7XG4gIHByb3BlcnR5ID0gaW5wdXQucmVxdWlyZWQ8UHJvcGVydHk+KCk7XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBob3ZlcjpiZy1bLS1ydC1yYWlzZWQtYmFja2dyb3VuZF0gY3Vyc29yLXBvaW50ZXIgcC0zXCI+XG4gIDxkaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIHctZnVsbCBtYi0yXCI+XG4gICAgICA8YSBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0zXCI+XG4gICAgICAgIDxzcGFuPklEOiB7eyBwcm9wZXJ0eSgpLmlkIH19PC9zcGFuPlxuICAgICAgPC9hPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG92ZXJmbG93LXgtc2Nyb2xsIHNjcm9sbGJhci1oaWRlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBweS0yXCI+XG4gICAgICAgIEBpZiAocHJvcGVydHkoKS5tZWRpYSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaW4tdy0yNCB3LTM2IG9iamVjdC1jb3ZlciBhc3BlY3QtdmlkZW8gcm91bmRlZC1sZyBtci0zXCI+XG4gICAgICAgICAgICBAZGVmZXIge1xuICAgICAgICAgICAgICA8cm9sYXRlY2gtdGh1bWJuYWlsIFtzcmNdPVwicHJvcGVydHkoKS5tZWRpYVswXS51cmxcIiBzaXplPVwibWVkaXVtXCIgbW9kZT1cImZ1bGxcIj4gPC9yb2xhdGVjaC10aHVtYm5haWw+XG4gICAgICAgICAgICB9IEBwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiZy1bLS1ydC1yYWlzZWQtYmFja2dyb3VuZF0gaC1mdWxsIHctZnVsbCBvYmplY3QtY292ZXIgYXNwZWN0LXZpZGVvIHJvdW5kZWQtbGdcIj48L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1pbi13LTI0IHctMzYgb2JqZWN0LWNvdmVyIGFzcGVjdC12aWRlbyByb3VuZGVkLWxnIG1yLTNcIj5cbiAgICAgICAgICAgIDxyb2xhdGVjaC1pbWFnZS1wbGFjZWhvbGRlcj48L3JvbGF0ZWNoLWltYWdlLXBsYWNlaG9sZGVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IHctZnVsbCBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gdy1mdWxsXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxuICAgICAgICAgICAgICA8ZGl2Pnt7IHByb3BlcnR5KCkudGl0bGUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlubGluZS1mbGV4IGdhcC0xIG10LTJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtci0xXCI+e3sgcHJvcGVydHkoKS5iZWRyb29tcyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGkxOG4+QmVkcm9vbXM8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXItMVwiPnt7IHByb3BlcnR5KCkuYmF0aHJvb21zIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gaTE4bj5CYXRocm9vbXM8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXItMVwiPnt7IHByb3BlcnR5KCkucmVjZXB0aW9ucyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGkxOG4+UmVjZXB0aW9uczwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXJpZ2h0XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNtXCI+wqN7eyBwcm9wZXJ0eSgpLnByaWNlIHwgZml4ZWQgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19","import { Component, computed, input, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDivider } from '@angular/material/divider';\nimport * as i0 from \"@angular/core\";\nexport class PropertyPricingComponent {\n ngOnInit() {\n this.calculateDeposit();\n }\n property = input.required(...(ngDevMode ? [{ debugName: \"property\" }] : []));\n price = input(...(ngDevMode ? [undefined, { debugName: \"price\" }] : []));\n holdingDeposit;\n securityDeposit;\n displayPrice = computed(() => {\n return (this.property().price / 100).toFixed(2);\n }, ...(ngDevMode ? [{ debugName: \"displayPrice\" }] : []));\n market = computed(() => {\n return this.property().market.toString();\n }, ...(ngDevMode ? [{ debugName: \"market\" }] : []));\n rentFrequency = computed(() => {\n return this.property().rentFrequency.toString();\n }, ...(ngDevMode ? [{ debugName: \"rentFrequency\" }] : []));\n calculateDeposit() {\n const price = this.property().price;\n this.holdingDeposit = ((price * 12) / 52 / 100).toFixed(2);\n this.securityDeposit = (((price * 12) / 52 / 100) * 5).toFixed(2);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyPricingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyPricingComponent, isStandalone: true, selector: \"rolatech-property-pricing\", inputs: { property: { classPropertyName: \"property\", publicName: \"property\", isSignal: true, isRequired: true, transformFunction: null }, price: { classPropertyName: \"price\", publicName: \"price\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: \"<div class=\\\"py-3\\\">\\n <div class=\\\"flex justify-between items-center\\\">\\n @if (market() === 'LETTINGS' && rentFrequency() === 'MONTHLY') {\\n <div class=\\\"text-lg font-bold\\\" i18n>Rent per month</div>\\n }\\n @if (market() === 'LETTINGS' && rentFrequency() === 'NOT_SPECIFIED') {\\n <div class=\\\"text-lg font-bold\\\" i18n>Rent price</div>\\n }\\n @if (market() === 'SALES') {\\n <div class=\\\"text-lg font-bold\\\" i18n>Price</div>\\n }\\n <div class=\\\"text-xl font-bold py-3\\\">\\u00A3{{ displayPrice() }}</div>\\n </div>\\n <mat-divider></mat-divider>\\n @if (market() === 'LETTINGS') {\\n <div class=\\\"py-3\\\">\\n <div class=\\\"flex justify-between items-center py-2\\\">\\n <span i18n>Holding Deposit</span>\\n <span>\\u00A3{{ holdingDeposit }}</span>\\n </div>\\n <div class=\\\"flex justify-between items-center py-2 font-bold\\\">\\n <span i18n>Security Deposit</span>\\n <span>\\u00A3{{ securityDeposit }}</span>\\n </div>\\n </div>\\n }\\n</div>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: MatDivider, selector: \"mat-divider\", inputs: [\"vertical\", \"inset\"] }], encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyPricingComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-pricing', imports: [CommonModule, MatButtonModule, MatDivider], encapsulation: ViewEncapsulation.None, template: \"<div class=\\\"py-3\\\">\\n <div class=\\\"flex justify-between items-center\\\">\\n @if (market() === 'LETTINGS' && rentFrequency() === 'MONTHLY') {\\n <div class=\\\"text-lg font-bold\\\" i18n>Rent per month</div>\\n }\\n @if (market() === 'LETTINGS' && rentFrequency() === 'NOT_SPECIFIED') {\\n <div class=\\\"text-lg font-bold\\\" i18n>Rent price</div>\\n }\\n @if (market() === 'SALES') {\\n <div class=\\\"text-lg font-bold\\\" i18n>Price</div>\\n }\\n <div class=\\\"text-xl font-bold py-3\\\">\\u00A3{{ displayPrice() }}</div>\\n </div>\\n <mat-divider></mat-divider>\\n @if (market() === 'LETTINGS') {\\n <div class=\\\"py-3\\\">\\n <div class=\\\"flex justify-between items-center py-2\\\">\\n <span i18n>Holding Deposit</span>\\n <span>\\u00A3{{ holdingDeposit }}</span>\\n </div>\\n <div class=\\\"flex justify-between items-center py-2 font-bold\\\">\\n <span i18n>Security Deposit</span>\\n <span>\\u00A3{{ securityDeposit }}</span>\\n </div>\\n </div>\\n }\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktcHJpY2luZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvY29tcG9uZW50cy9wcm9wZXJ0eS1wcmljaW5nL3Byb3BlcnR5LXByaWNpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktcHJpY2luZy9wcm9wZXJ0eS1wcmljaW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBa0IsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBVXZELE1BQU0sT0FBTyx3QkFBd0I7SUFDbkMsUUFBUTtRQUNOLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFDRCxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsbURBQVksQ0FBQztJQUN0QyxLQUFLLEdBQUcsS0FBSywyREFBVSxDQUFDO0lBQ3hCLGNBQWMsQ0FBQztJQUNmLGVBQWUsQ0FBQztJQUNoQixZQUFZLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUMzQixPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQyx3REFBQyxDQUFDO0lBQ0gsTUFBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDckIsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQzFDLENBQUMsa0RBQUMsQ0FBQztJQUNILGFBQWEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQzVCLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtJQUNqRCxDQUFDLHlEQUFDLENBQUM7SUFDSCxnQkFBZ0I7UUFDZCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEUsQ0FBQzt1R0FyQlUsd0JBQXdCOzJGQUF4Qix3QkFBd0IseVZDYnJDLHMvQkEyQkEseUREbkJZLFlBQVksOEJBQUUsZUFBZSwrQkFBRSxVQUFVOzsyRkFLeEMsd0JBQXdCO2tCQVBwQyxTQUFTOytCQUNFLDJCQUEyQixXQUM1QixDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsVUFBVSxDQUFDLGlCQUdyQyxpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5wdXQsIE9uSW5pdCwgb3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXREaXZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlcic7XG5pbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1wcm9wZXJ0eS1wcmljaW5nJyxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBNYXREaXZpZGVyXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LXByaWNpbmcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHJvcGVydHktcHJpY2luZy5jb21wb25lbnQuc2NzcycsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5UHJpY2luZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY2FsY3VsYXRlRGVwb3NpdCgpO1xuICB9XG4gIHByb3BlcnR5ID0gaW5wdXQucmVxdWlyZWQ8UHJvcGVydHk+KCk7XG4gIHByaWNlID0gaW5wdXQ8bnVtYmVyPigpO1xuICBob2xkaW5nRGVwb3NpdDtcbiAgc2VjdXJpdHlEZXBvc2l0O1xuICBkaXNwbGF5UHJpY2UgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuICh0aGlzLnByb3BlcnR5KCkucHJpY2UgLyAxMDApLnRvRml4ZWQoMik7XG4gIH0pO1xuICBtYXJrZXQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMucHJvcGVydHkoKS5tYXJrZXQudG9TdHJpbmcoKVxuICB9KTtcbiAgcmVudEZyZXF1ZW5jeSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5wcm9wZXJ0eSgpLnJlbnRGcmVxdWVuY3kudG9TdHJpbmcoKVxuICB9KTtcbiAgY2FsY3VsYXRlRGVwb3NpdCgpIHtcbiAgICBjb25zdCBwcmljZSA9IHRoaXMucHJvcGVydHkoKS5wcmljZTtcbiAgICB0aGlzLmhvbGRpbmdEZXBvc2l0ID0gKChwcmljZSAqIDEyKSAvIDUyIC8gMTAwKS50b0ZpeGVkKDIpO1xuICAgIHRoaXMuc2VjdXJpdHlEZXBvc2l0ID0gKCgocHJpY2UgKiAxMikgLyA1MiAvIDEwMCkgKiA1KS50b0ZpeGVkKDIpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicHktM1wiPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyXCI+XG4gICAgQGlmIChtYXJrZXQoKSA9PT0gJ0xFVFRJTkdTJyAmJiByZW50RnJlcXVlbmN5KCkgPT09ICdNT05USExZJykge1xuICAgICAgPGRpdiBjbGFzcz1cInRleHQtbGcgZm9udC1ib2xkXCIgaTE4bj5SZW50IHBlciBtb250aDwvZGl2PlxuICAgIH1cbiAgICBAaWYgKG1hcmtldCgpID09PSAnTEVUVElOR1MnICYmIHJlbnRGcmVxdWVuY3koKSA9PT0gJ05PVF9TUEVDSUZJRUQnKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZyBmb250LWJvbGRcIiBpMThuPlJlbnQgcHJpY2U8L2Rpdj5cbiAgICB9XG4gICAgQGlmIChtYXJrZXQoKSA9PT0gJ1NBTEVTJykge1xuICAgICAgPGRpdiBjbGFzcz1cInRleHQtbGcgZm9udC1ib2xkXCIgaTE4bj5QcmljZTwvZGl2PlxuICAgIH1cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC14bCBmb250LWJvbGQgcHktM1wiPsKje3sgZGlzcGxheVByaWNlKCkgfX08L2Rpdj5cbiAgPC9kaXY+XG4gIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICBAaWYgKG1hcmtldCgpID09PSAnTEVUVElOR1MnKSB7XG4gICAgPGRpdiBjbGFzcz1cInB5LTNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgcHktMlwiPlxuICAgICAgICA8c3BhbiBpMThuPkhvbGRpbmcgRGVwb3NpdDwvc3Bhbj5cbiAgICAgICAgPHNwYW4+wqN7eyBob2xkaW5nRGVwb3NpdCB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBweS0yIGZvbnQtYm9sZFwiPlxuICAgICAgICA8c3BhbiBpMThuPlNlY3VyaXR5IERlcG9zaXQ8L3NwYW4+XG4gICAgICAgIDxzcGFuPsKje3sgc2VjdXJpdHlEZXBvc2l0IH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuIl19","import { Component, input, output, ViewEncapsulation } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { RouterModule } from '@angular/router';\nimport { MatButtonModule } from '@angular/material/button';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\nimport * as i2 from \"@angular/material/icon\";\nexport class PropertyInfoComponent {\n property = input.required(...(ngDevMode ? [{ debugName: \"property\" }] : []));\n wish = output();\n inWishList = input(false, ...(ngDevMode ? [{ debugName: \"inWishList\" }] : []));\n onWish(property) {\n this.wish.emit(property);\n }\n onShare() { }\n onMore() { }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyInfoComponent, isStandalone: true, selector: \"rolatech-property-info\", inputs: { property: { classPropertyName: \"property\", publicName: \"property\", isSignal: true, isRequired: true, transformFunction: null }, inWishList: { classPropertyName: \"inWishList\", publicName: \"inWishList\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { wish: \"wish\" }, host: { attributes: { \"id\": \"rolatech-property-info\" } }, ngImport: i0, template: \"<div>\\n <div class=\\\"flex justify-between items-center\\\">\\n <div class=\\\"text-2xl font-medium\\\">{{ property().title }}</div>\\n <div class=\\\"flex items-center px-3\\\">\\n <button mat-icon-button (click)=\\\"onWish(property())\\\">\\n @if (inWishList()) {\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" height=\\\"24px\\\" viewBox=\\\"0 -960 960 960\\\" width=\\\"24px\\\" fill=\\\"#5f6368\\\">\\n <path\\n d=\\\"m293-203.08 49.62-212.54-164.93-142.84 217.23-18.85L480-777.69l85.08 200.38 217.23 18.85-164.93 142.84L667-203.08 480-315.92 293-203.08Z\\\"\\n />\\n </svg>\\n } @else {\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" height=\\\"24px\\\" viewBox=\\\"0 -960 960 960\\\" width=\\\"24px\\\" fill=\\\"#5f6368\\\">\\n <path\\n d=\\\"m354-287 126-76 126 77-33-144 111-96-146-13-58-136-58 135-146 13 111 97-33 143Zm-61 83.92 49.62-212.54-164.93-142.84 217.23-18.85L480-777.69l85.08 200.38 217.23 18.85-164.93 142.84L667-203.08 480-315.92 293-203.08ZM480-470Z\\\"\\n />\\n </svg>\\n }\\n </button>\\n <button mat-icon-button (click)=\\\"onShare()\\\">\\n <mat-icon>share</mat-icon>\\n </button>\\n <button mat-icon-button (click)=\\\"onMore()\\\">\\n <mat-icon>more_vert</mat-icon>\\n </button>\\n </div>\\n </div>\\n <div [innerHTML]=\\\"property().description\\\">\\n <!-- {{ property().description }} -->\\n </div>\\n</div>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i1.MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i2.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"ngmodule\", type: RouterModule }], encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyInfoComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-info', imports: [MatButtonModule, MatIconModule, RouterModule], encapsulation: ViewEncapsulation.None, host: {\n id: 'rolatech-property-info',\n }, template: \"<div>\\n <div class=\\\"flex justify-between items-center\\\">\\n <div class=\\\"text-2xl font-medium\\\">{{ property().title }}</div>\\n <div class=\\\"flex items-center px-3\\\">\\n <button mat-icon-button (click)=\\\"onWish(property())\\\">\\n @if (inWishList()) {\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" height=\\\"24px\\\" viewBox=\\\"0 -960 960 960\\\" width=\\\"24px\\\" fill=\\\"#5f6368\\\">\\n <path\\n d=\\\"m293-203.08 49.62-212.54-164.93-142.84 217.23-18.85L480-777.69l85.08 200.38 217.23 18.85-164.93 142.84L667-203.08 480-315.92 293-203.08Z\\\"\\n />\\n </svg>\\n } @else {\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" height=\\\"24px\\\" viewBox=\\\"0 -960 960 960\\\" width=\\\"24px\\\" fill=\\\"#5f6368\\\">\\n <path\\n d=\\\"m354-287 126-76 126 77-33-144 111-96-146-13-58-136-58 135-146 13 111 97-33 143Zm-61 83.92 49.62-212.54-164.93-142.84 217.23-18.85L480-777.69l85.08 200.38 217.23 18.85-164.93 142.84L667-203.08 480-315.92 293-203.08ZM480-470Z\\\"\\n />\\n </svg>\\n }\\n </button>\\n <button mat-icon-button (click)=\\\"onShare()\\\">\\n <mat-icon>share</mat-icon>\\n </button>\\n <button mat-icon-button (click)=\\\"onMore()\\\">\\n <mat-icon>more_vert</mat-icon>\\n </button>\\n </div>\\n </div>\\n <div [innerHTML]=\\\"property().description\\\">\\n <!-- {{ property().description }} -->\\n </div>\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktaW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvY29tcG9uZW50cy9wcm9wZXJ0eS1pbmZvL3Byb3BlcnR5LWluZm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktaW5mby9wcm9wZXJ0eS1pbmZvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQVkzRCxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxtREFBWSxDQUFDO0lBQ3RDLElBQUksR0FBRyxNQUFNLEVBQVksQ0FBQztJQUMxQixVQUFVLEdBQUcsS0FBSyxDQUFVLEtBQUssc0RBQUMsQ0FBQztJQUNuQyxNQUFNLENBQUMsUUFBa0I7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUNELE9BQU8sS0FBSSxDQUFDO0lBQ1osTUFBTSxLQUFJLENBQUM7dUdBUkEscUJBQXFCOzJGQUFyQixxQkFBcUIsMGJDaEJsQyx1NUNBK0JBLHlERHZCWSxlQUFlLHFOQUFFLGFBQWEsbUxBQUUsWUFBWTs7MkZBUTNDLHFCQUFxQjtrQkFWakMsU0FBUzsrQkFDRSx3QkFBd0IsV0FDekIsQ0FBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQyxpQkFHeEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSixFQUFFLEVBQUUsd0JBQXdCO3FCQUM3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIG91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvcGVydHktaW5mbycsXG4gIGltcG9ydHM6IFtNYXRCdXR0b25Nb2R1bGUsIE1hdEljb25Nb2R1bGUsIFJvdXRlck1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1pbmZvLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb3BlcnR5LWluZm8uY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgaWQ6ICdyb2xhdGVjaC1wcm9wZXJ0eS1pbmZvJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlJbmZvQ29tcG9uZW50IHtcbiAgcHJvcGVydHkgPSBpbnB1dC5yZXF1aXJlZDxQcm9wZXJ0eT4oKTtcbiAgd2lzaCA9IG91dHB1dDxQcm9wZXJ0eT4oKTtcbiAgaW5XaXNoTGlzdCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgb25XaXNoKHByb3BlcnR5OiBQcm9wZXJ0eSkge1xuICAgIHRoaXMud2lzaC5lbWl0KHByb3BlcnR5KTtcbiAgfVxuICBvblNoYXJlKCkge31cbiAgb25Nb3JlKCkge31cbn1cbiIsIjxkaXY+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC0yeGwgZm9udC1tZWRpdW1cIj57eyBwcm9wZXJ0eSgpLnRpdGxlIH19PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIHB4LTNcIj5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJvbldpc2gocHJvcGVydHkoKSlcIj5cbiAgICAgICAgQGlmIChpbldpc2hMaXN0KCkpIHtcbiAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBoZWlnaHQ9XCIyNHB4XCIgdmlld0JveD1cIjAgLTk2MCA5NjAgOTYwXCIgd2lkdGg9XCIyNHB4XCIgZmlsbD1cIiM1ZjYzNjhcIj5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgIGQ9XCJtMjkzLTIwMy4wOCA0OS42Mi0yMTIuNTQtMTY0LjkzLTE0Mi44NCAyMTcuMjMtMTguODVMNDgwLTc3Ny42OWw4NS4wOCAyMDAuMzggMjE3LjIzIDE4Ljg1LTE2NC45MyAxNDIuODRMNjY3LTIwMy4wOCA0ODAtMzE1LjkyIDI5My0yMDMuMDhaXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGhlaWdodD1cIjI0cHhcIiB2aWV3Qm94PVwiMCAtOTYwIDk2MCA5NjBcIiB3aWR0aD1cIjI0cHhcIiBmaWxsPVwiIzVmNjM2OFwiPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgZD1cIm0zNTQtMjg3IDEyNi03NiAxMjYgNzctMzMtMTQ0IDExMS05Ni0xNDYtMTMtNTgtMTM2LTU4IDEzNS0xNDYgMTMgMTExIDk3LTMzIDE0M1ptLTYxIDgzLjkyIDQ5LjYyLTIxMi41NC0xNjQuOTMtMTQyLjg0IDIxNy4yMy0xOC44NUw0ODAtNzc3LjY5bDg1LjA4IDIwMC4zOCAyMTcuMjMgMTguODUtMTY0LjkzIDE0Mi44NEw2NjctMjAzLjA4IDQ4MC0zMTUuOTIgMjkzLTIwMy4wOFpNNDgwLTQ3MFpcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgfVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwib25TaGFyZSgpXCI+XG4gICAgICAgIDxtYXQtaWNvbj5zaGFyZTwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJvbk1vcmUoKVwiPlxuICAgICAgICA8bWF0LWljb24+bW9yZV92ZXJ0PC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBbaW5uZXJIVE1MXT1cInByb3BlcnR5KCkuZGVzY3JpcHRpb25cIj5cbiAgICA8IS0tIHt7IHByb3BlcnR5KCkuZGVzY3JpcHRpb24gfX0gLS0+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=","import { Component, inject, input, ViewEncapsulation } from '@angular/core';\nimport { CommonModule, ViewportScroller } from '@angular/common';\nimport { ThumbnailComponent } from '@rolatech/angular-components';\nimport * as i0 from \"@angular/core\";\nexport class PropertySectionComponent {\n section = input.required(...(ngDevMode ? [{ debugName: \"section\" }] : []));\n user = input(...(ngDevMode ? [undefined, { debugName: \"user\" }] : []));\n username = input(...(ngDevMode ? [undefined, { debugName: \"username\" }] : []));\n viewportScroller = inject(ViewportScroller);\n onClickScroller(id) {\n this.viewportScroller.scrollToAnchor(id);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertySectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertySectionComponent, isStandalone: true, selector: \"rolatech-property-section\", inputs: { section: { classPropertyName: \"section\", publicName: \"section\", isSignal: true, isRequired: true, transformFunction: null }, user: { classPropertyName: \"user\", publicName: \"user\", isSignal: true, isRequired: false, transformFunction: null }, username: { classPropertyName: \"username\", publicName: \"username\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: \"@if (section(); as section) {\\n <div>\\n @if (section.title) {\\n <div class=\\\"py-3 flex items-center gap-3\\\">\\n <span class=\\\"h-4 w-1 bg-[--rt-brand-color] inline-block\\\"></span>\\n <span class=\\\"text-lg font-medium py-1\\\"> {{ section.title }}</span>\\n </div>\\n }\\n @if (section.description) {\\n <div>\\n {{ section.description }}\\n </div>\\n }\\n @if (section.media) {\\n <div class=\\\"w-80%\\\">\\n @for (item of section.media; track item) {\\n <div class=\\\"py-3\\\">\\n <rolatech-thumbnail\\n [src]=\\\"item.url\\\"\\n size=\\\"small\\\"\\n mode=\\\"full\\\"\\n [width]=\\\"item.width\\\"\\n [height]=\\\"item.height\\\"\\n ></rolatech-thumbnail>\\n </div>\\n }\\n </div>\\n }\\n </div>\\n}\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"component\", type: ThumbnailComponent, selector: \"rolatech-thumbnail\", inputs: [\"src\", \"size\", \"mode\", \"ratio\", \"width\", \"height\"] }], encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertySectionComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-section', imports: [CommonModule, ThumbnailComponent], encapsulation: ViewEncapsulation.None, template: \"@if (section(); as section) {\\n <div>\\n @if (section.title) {\\n <div class=\\\"py-3 flex items-center gap-3\\\">\\n <span class=\\\"h-4 w-1 bg-[--rt-brand-color] inline-block\\\"></span>\\n <span class=\\\"text-lg font-medium py-1\\\"> {{ section.title }}</span>\\n </div>\\n }\\n @if (section.description) {\\n <div>\\n {{ section.description }}\\n </div>\\n }\\n @if (section.media) {\\n <div class=\\\"w-80%\\\">\\n @for (item of section.media; track item) {\\n <div class=\\\"py-3\\\">\\n <rolatech-thumbnail\\n [src]=\\\"item.url\\\"\\n size=\\\"small\\\"\\n mode=\\\"full\\\"\\n [width]=\\\"item.width\\\"\\n [height]=\\\"item.height\\\"\\n ></rolatech-thumbnail>\\n </div>\\n }\\n </div>\\n }\\n </div>\\n}\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvY29tcG9uZW50cy9wcm9wZXJ0eS1zZWN0aW9uL3Byb3BlcnR5LXNlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktc2VjdGlvbi9wcm9wZXJ0eS1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBU2xFLE1BQU0sT0FBTyx3QkFBd0I7SUFDbkMsT0FBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLGtEQUFtQixDQUFDO0lBQzVDLElBQUksR0FBRyxLQUFLLDBEQUFVLENBQUM7SUFDdkIsUUFBUSxHQUFHLEtBQUssOERBQVUsQ0FBQztJQUMzQixnQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUU1QyxlQUFlLENBQUMsRUFBVTtRQUN4QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7dUdBUlUsd0JBQXdCOzJGQUF4Qix3QkFBd0Isb2RDWnJDLHkwQkE4QkEseUREdkJZLFlBQVksK0JBQUUsa0JBQWtCOzsyRkFLL0Isd0JBQXdCO2tCQVBwQyxTQUFTOytCQUNFLDJCQUEyQixXQUM1QixDQUFDLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxpQkFHNUIsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgVmlld3BvcnRTY3JvbGxlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBQcm9wZXJ0eVNlY3Rpb24gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFRodW1ibmFpbENvbXBvbmVudCB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1wcm9wZXJ0eS1zZWN0aW9uJyxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVGh1bWJuYWlsQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHJvcGVydHktc2VjdGlvbi5jb21wb25lbnQuc2NzcycsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5U2VjdGlvbkNvbXBvbmVudCB7XG4gIHNlY3Rpb24gPSBpbnB1dC5yZXF1aXJlZDxQcm9wZXJ0eVNlY3Rpb24+KCk7XG4gIHVzZXIgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHVzZXJuYW1lID0gaW5wdXQ8c3RyaW5nPigpO1xuICB2aWV3cG9ydFNjcm9sbGVyID0gaW5qZWN0KFZpZXdwb3J0U2Nyb2xsZXIpO1xuXG4gIG9uQ2xpY2tTY3JvbGxlcihpZDogc3RyaW5nKSB7XG4gICAgdGhpcy52aWV3cG9ydFNjcm9sbGVyLnNjcm9sbFRvQW5jaG9yKGlkKTtcbiAgfVxufVxuIiwiQGlmIChzZWN0aW9uKCk7IGFzIHNlY3Rpb24pIHtcbiAgPGRpdj5cbiAgICBAaWYgKHNlY3Rpb24udGl0bGUpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJweS0zIGZsZXggaXRlbXMtY2VudGVyIGdhcC0zXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaC00IHctMSBiZy1bLS1ydC1icmFuZC1jb2xvcl0gaW5saW5lLWJsb2NrXCI+PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbGcgZm9udC1tZWRpdW0gcHktMVwiPiB7eyBzZWN0aW9uLnRpdGxlIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgfVxuICAgIEBpZiAoc2VjdGlvbi5kZXNjcmlwdGlvbikge1xuICAgICAgPGRpdj5cbiAgICAgICAge3sgc2VjdGlvbi5kZXNjcmlwdGlvbiB9fVxuICAgICAgPC9kaXY+XG4gICAgfVxuICAgIEBpZiAoc2VjdGlvbi5tZWRpYSkge1xuICAgICAgPGRpdiBjbGFzcz1cInctODAlXCI+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2Ygc2VjdGlvbi5tZWRpYTsgdHJhY2sgaXRlbSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0zXCI+XG4gICAgICAgICAgICA8cm9sYXRlY2gtdGh1bWJuYWlsXG4gICAgICAgICAgICAgIFtzcmNdPVwiaXRlbS51cmxcIlxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBtb2RlPVwiZnVsbFwiXG4gICAgICAgICAgICAgIFt3aWR0aF09XCJpdGVtLndpZHRoXCJcbiAgICAgICAgICAgICAgW2hlaWdodF09XCJpdGVtLmhlaWdodFwiXG4gICAgICAgICAgICA+PC9yb2xhdGVjaC10aHVtYm5haWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG59XG4iXX0=","import { Component, computed, inject, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PropertyVideoProvider } from '../../interfaces';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport * as i0 from \"@angular/core\";\nexport class PropertyVideoComponent {\n sanitizer = inject(DomSanitizer);\n video = input.required(...(ngDevMode ? [{ debugName: \"video\" }] : []));\n videoUrl = computed(() => {\n if (this.video().provider !== PropertyVideoProvider.YOUTUBE)\n return;\n const match = this.video().url.match(/(?:youtu\\.be\\/|youtube\\.com\\/watch\\?v=)([\\w-]+)/);\n if (match && match[1]) {\n return this.sanitizer.bypassSecurityTrustResourceUrl(`https://www.youtube.com/embed/${match[1]}`);\n }\n return null; // Not a valid YouTube URL\n }, ...(ngDevMode ? [{ debugName: \"videoUrl\" }] : []));\n youtube = computed(() => {\n return this.video().provider === PropertyVideoProvider.YOUTUBE;\n }, ...(ngDevMode ? [{ debugName: \"youtube\" }] : []));\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyVideoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyVideoComponent, isStandalone: true, selector: \"rolatech-property-video\", inputs: { video: { classPropertyName: \"video\", publicName: \"video\", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: \"<div class=\\\"\\\">\\n <div class=\\\"text-2xl font-bold py-4\\\" i18n>Videos</div>\\n @if (youtube()) {\\n <iframe [src]=\\\"videoUrl()\\\" frameborder=\\\"0\\\" allowfullscreen class=\\\"w-full aspect-video\\\"></iframe>\\n } @else {\\n <video controls #videoContainer [src]=\\\"video().url\\\" class=\\\"w-full aspect-video\\\" [poster]=\\\"video().thumbnail\\\">\\n <!-- <source [src]=\\\"video().url\\\" type=\\\"video/mp4\\\" /> -->\\n </video>\\n }\\n</div>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyVideoComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-video', imports: [CommonModule], template: \"<div class=\\\"\\\">\\n <div class=\\\"text-2xl font-bold py-4\\\" i18n>Videos</div>\\n @if (youtube()) {\\n <iframe [src]=\\\"videoUrl()\\\" frameborder=\\\"0\\\" allowfullscreen class=\\\"w-full aspect-video\\\"></iframe>\\n } @else {\\n <video controls #videoContainer [src]=\\\"video().url\\\" class=\\\"w-full aspect-video\\\" [poster]=\\\"video().thumbnail\\\">\\n <!-- <source [src]=\\\"video().url\\\" type=\\\"video/mp4\\\" /> -->\\n </video>\\n }\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktdmlkZW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktdmlkZW8vcHJvcGVydHktdmlkZW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktdmlkZW8vcHJvcGVydHktdmlkZW8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFpQixxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxZQUFZLEVBQW1CLE1BQU0sMkJBQTJCLENBQUM7O0FBUTFFLE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqQyxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsZ0RBQWlCLENBQUM7SUFDeEMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDdkIsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsUUFBUSxLQUFLLHFCQUFxQixDQUFDLE9BQU87WUFBRSxPQUFPO1FBQ3BFLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7UUFDeEYsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDdEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLDhCQUE4QixDQUFDLGlDQUFpQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXBHLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxDQUFDLDBCQUEwQjtJQUN6QyxDQUFDLG9EQUFDLENBQUM7SUFDSCxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUN0QixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLEtBQUsscUJBQXFCLENBQUMsT0FBTyxDQUFBO0lBQ2hFLENBQUMsbURBQUMsQ0FBQTt1R0FkUyxzQkFBc0I7MkZBQXRCLHNCQUFzQixzTkNYbkMsc2JBVUEseURESFksWUFBWTs7MkZBSVgsc0JBQXNCO2tCQU5sQyxTQUFTOytCQUNFLHlCQUF5QixXQUMxQixDQUFDLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBQcm9wZXJ0eVZpZGVvLCBQcm9wZXJ0eVZpZGVvUHJvdmlkZXIgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZVJlc291cmNlVXJsIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb3BlcnR5LXZpZGVvJyxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS12aWRlby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9wZXJ0eS12aWRlby5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5VmlkZW9Db21wb25lbnQge1xuICBzYW5pdGl6ZXIgPSBpbmplY3QoRG9tU2FuaXRpemVyKTtcbiAgdmlkZW8gPSBpbnB1dC5yZXF1aXJlZDxQcm9wZXJ0eVZpZGVvPigpO1xuICB2aWRlb1VybCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAodGhpcy52aWRlbygpLnByb3ZpZGVyICE9PSBQcm9wZXJ0eVZpZGVvUHJvdmlkZXIuWU9VVFVCRSkgcmV0dXJuO1xuICAgIGNvbnN0IG1hdGNoID0gdGhpcy52aWRlbygpLnVybC5tYXRjaCgvKD86eW91dHVcXC5iZVxcL3x5b3V0dWJlXFwuY29tXFwvd2F0Y2hcXD92PSkoW1xcdy1dKykvKTtcbiAgICBpZiAobWF0Y2ggJiYgbWF0Y2hbMV0pIHtcbiAgICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwoYGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLyR7bWF0Y2hbMV19YCk7XG5cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7IC8vIE5vdCBhIHZhbGlkIFlvdVR1YmUgVVJMXG4gIH0pO1xuICB5b3V0dWJlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnZpZGVvKCkucHJvdmlkZXIgPT09IFByb3BlcnR5VmlkZW9Qcm92aWRlci5ZT1VUVUJFXG4gIH0pXG59XG4iLCI8ZGl2IGNsYXNzPVwiXCI+XG4gIDxkaXYgY2xhc3M9XCJ0ZXh0LTJ4bCBmb250LWJvbGQgcHktNFwiIGkxOG4+VmlkZW9zPC9kaXY+XG4gIEBpZiAoeW91dHViZSgpKSB7XG4gICAgPGlmcmFtZSBbc3JjXT1cInZpZGVvVXJsKClcIiBmcmFtZWJvcmRlcj1cIjBcIiBhbGxvd2Z1bGxzY3JlZW4gY2xhc3M9XCJ3LWZ1bGwgYXNwZWN0LXZpZGVvXCI+PC9pZnJhbWU+XG4gIH0gQGVsc2Uge1xuICAgIDx2aWRlbyBjb250cm9scyAjdmlkZW9Db250YWluZXIgW3NyY109XCJ2aWRlbygpLnVybFwiIGNsYXNzPVwidy1mdWxsIGFzcGVjdC12aWRlb1wiIFtwb3N0ZXJdPVwidmlkZW8oKS50aHVtYm5haWxcIj5cbiAgICAgIDwhLS0gPHNvdXJjZSBbc3JjXT1cInZpZGVvKCkudXJsXCIgdHlwZT1cInZpZGVvL21wNFwiIC8+IC0tPlxuICAgIDwvdmlkZW8+XG4gIH1cbjwvZGl2PlxuIl19","import { Component, ElementRef, input, output, viewChild, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@angular/material/button\";\nimport * as i3 from \"@angular/material/icon\";\nimport * as i4 from \"@angular/material/menu\";\nexport class PropertyActionContactComponent {\n btnRef = viewChild('btnEl', ...(ngDevMode ? [{ debugName: \"btnRef\", read: ElementRef }] : [{ read: ElementRef }]));\n email = input(...(ngDevMode ? [undefined, { debugName: \"email\" }] : []));\n phone = input(...(ngDevMode ? [undefined, { debugName: \"phone\" }] : []));\n callAgent = output();\n emailAgent = output();\n onCallAgent() { }\n onEmailAgent(property) {\n this.emailAgent.emit(property);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyActionContactComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.2.0\", type: PropertyActionContactComponent, isStandalone: true, selector: \"rolatech-property-action-contact\", inputs: { email: { classPropertyName: \"email\", publicName: \"email\", isSignal: true, isRequired: false, transformFunction: null }, phone: { classPropertyName: \"phone\", publicName: \"phone\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { callAgent: \"callAgent\", emailAgent: \"emailAgent\" }, viewQueries: [{ propertyName: \"btnRef\", first: true, predicate: [\"btnEl\"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: \"<a\\n mat-stroked-button\\n class=\\\"w-full\\\"\\n #btnEl\\n [matMenuTriggerFor]=\\\"callMenu\\\"\\n [matMenuTriggerData]=\\\"{ width: btnRef()?.nativeElement.offsetWidth }\\\"\\n (click)=\\\"onCallAgent()\\\"\\n>\\n <span i18n>Ask a question</span>\\n</a>\\n<mat-menu #callMenu=\\\"matMenu\\\" [overlapTrigger]=\\\"false\\\" class=\\\"custom-menu-panel\\\">\\n <ng-template matMenuContent let-width=\\\"width\\\">\\n <div class=\\\"menu-content\\\" [ngStyle]=\\\"{ width: width + 'px' }\\\">\\n <a mat-menu-item href=\\\"mailto:hello@gmail.com\\\">\\n <span class=\\\"flex items-center\\\">\\n <span class=\\\"flex items-center\\\">\\n <mat-icon class=\\\"mr-3\\\">email</mat-icon>\\n </span>\\n <span i18n>Email</span>\\n </span>\\n <span class=\\\"pl-9\\\" i18n>{{ email() }}</span>\\n </a>\\n <hr />\\n <a mat-menu-item [href]=\\\"'https://wa.me/' + phone()\\\" target=\\\"_blank\\\">\\n <span class=\\\"flex items-center\\\">\\n <span class=\\\"flex items-center\\\">\\n <mat-icon class=\\\"mr-3\\\">call</mat-icon>\\n </span>\\n <span i18n>WhatsApp</span>\\n </span>\\n <span class=\\\"pl-9\\\" i18n>{{ phone() }}</span>\\n </a>\\n </div>\\n </ng-template>\\n</mat-menu>\\n\", styles: [\".mat-mdc-menu-panel,.custom-menu-panel{max-width:100%}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i2.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i3.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"ngmodule\", type: MatMenuModule }, { kind: \"component\", type: i4.MatMenu, selector: \"mat-menu\", inputs: [\"backdropClass\", \"aria-label\", \"aria-labelledby\", \"aria-describedby\", \"xPosition\", \"yPosition\", \"overlapTrigger\", \"hasBackdrop\", \"class\", \"classList\"], outputs: [\"closed\", \"close\"], exportAs: [\"matMenu\"] }, { kind: \"component\", type: i4.MatMenuItem, selector: \"[mat-menu-item]\", inputs: [\"role\", \"disabled\", \"disableRipple\"], exportAs: [\"matMenuItem\"] }, { kind: \"directive\", type: i4.MatMenuContent, selector: \"ng-template[matMenuContent]\" }, { kind: \"directive\", type: i4.MatMenuTrigger, selector: \"[mat-menu-trigger-for], [matMenuTriggerFor]\", inputs: [\"mat-menu-trigger-for\", \"matMenuTriggerFor\", \"matMenuTriggerData\", \"matMenuTriggerRestoreFocus\"], outputs: [\"menuOpened\", \"onMenuOpen\", \"menuClosed\", \"onMenuClose\"], exportAs: [\"matMenuTrigger\"] }], encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyActionContactComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-action-contact', imports: [CommonModule, MatButtonModule, MatIconModule, MatMenuModule], encapsulation: ViewEncapsulation.None, template: \"<a\\n mat-stroked-button\\n class=\\\"w-full\\\"\\n #btnEl\\n [matMenuTriggerFor]=\\\"callMenu\\\"\\n [matMenuTriggerData]=\\\"{ width: btnRef()?.nativeElement.offsetWidth }\\\"\\n (click)=\\\"onCallAgent()\\\"\\n>\\n <span i18n>Ask a question</span>\\n</a>\\n<mat-menu #callMenu=\\\"matMenu\\\" [overlapTrigger]=\\\"false\\\" class=\\\"custom-menu-panel\\\">\\n <ng-template matMenuContent let-width=\\\"width\\\">\\n <div class=\\\"menu-content\\\" [ngStyle]=\\\"{ width: width + 'px' }\\\">\\n <a mat-menu-item href=\\\"mailto:hello@gmail.com\\\">\\n <span class=\\\"flex items-center\\\">\\n <span class=\\\"flex items-center\\\">\\n <mat-icon class=\\\"mr-3\\\">email</mat-icon>\\n </span>\\n <span i18n>Email</span>\\n </span>\\n <span class=\\\"pl-9\\\" i18n>{{ email() }}</span>\\n </a>\\n <hr />\\n <a mat-menu-item [href]=\\\"'https://wa.me/' + phone()\\\" target=\\\"_blank\\\">\\n <span class=\\\"flex items-center\\\">\\n <span class=\\\"flex items-center\\\">\\n <mat-icon class=\\\"mr-3\\\">call</mat-icon>\\n </span>\\n <span i18n>WhatsApp</span>\\n </span>\\n <span class=\\\"pl-9\\\" i18n>{{ phone() }}</span>\\n </a>\\n </div>\\n </ng-template>\\n</mat-menu>\\n\", styles: [\".mat-mdc-menu-panel,.custom-menu-panel{max-width:100%}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktYWN0aW9uLWNvbnRhY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktYWN0aW9uLWNvbnRhY3QvcHJvcGVydHktYWN0aW9uLWNvbnRhY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktYWN0aW9uLWNvbnRhY3QvcHJvcGVydHktYWN0aW9uLWNvbnRhY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7QUFVdkQsTUFBTSxPQUFPLDhCQUE4QjtJQUN6QyxNQUFNLEdBQUcsU0FBUyxDQUFDLE9BQU8sMENBQUksSUFBSSxFQUFFLFVBQVUsT0FBbEIsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEdBQUMsQ0FBQztJQUNsRCxLQUFLLEdBQUcsS0FBSywyREFBVSxDQUFDO0lBQ3hCLEtBQUssR0FBRyxLQUFLLDJEQUFVLENBQUM7SUFDeEIsU0FBUyxHQUFHLE1BQU0sRUFBWSxDQUFDO0lBQy9CLFVBQVUsR0FBRyxNQUFNLEVBQVksQ0FBQztJQUNoQyxXQUFXLEtBQUksQ0FBQztJQUNoQixZQUFZLENBQUMsUUFBa0I7UUFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakMsQ0FBQzt1R0FUVSw4QkFBOEI7MkZBQTlCLDhCQUE4QixtZUFDTCxVQUFVLDZDQ2ZoRCxxc0NBbUNBLGlIRDFCWSxZQUFZLG1IQUFFLGVBQWUsbVhBQUUsYUFBYSxtTEFBRSxhQUFhOzsyRkFLMUQsOEJBQThCO2tCQVAxQyxTQUFTOytCQUNFLGtDQUFrQyxXQUNuQyxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxpQkFHdkQsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgaW5wdXQsIG91dHB1dCwgdmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1wcm9wZXJ0eS1hY3Rpb24tY29udGFjdCcsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgTWF0TWVudU1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1hY3Rpb24tY29udGFjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9wZXJ0eS1hY3Rpb24tY29udGFjdC5jb21wb25lbnQuc2NzcycsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5QWN0aW9uQ29udGFjdENvbXBvbmVudCB7XG4gIGJ0blJlZiA9IHZpZXdDaGlsZCgnYnRuRWwnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSk7XG4gIGVtYWlsID0gaW5wdXQ8c3RyaW5nPigpO1xuICBwaG9uZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgY2FsbEFnZW50ID0gb3V0cHV0PFByb3BlcnR5PigpO1xuICBlbWFpbEFnZW50ID0gb3V0cHV0PFByb3BlcnR5PigpO1xuICBvbkNhbGxBZ2VudCgpIHt9XG4gIG9uRW1haWxBZ2VudChwcm9wZXJ0eTogUHJvcGVydHkpIHtcbiAgICB0aGlzLmVtYWlsQWdlbnQuZW1pdChwcm9wZXJ0eSk7XG4gIH1cbn1cbiIsIjxhXG4gIG1hdC1zdHJva2VkLWJ1dHRvblxuICBjbGFzcz1cInctZnVsbFwiXG4gICNidG5FbFxuICBbbWF0TWVudVRyaWdnZXJGb3JdPVwiY2FsbE1lbnVcIlxuICBbbWF0TWVudVRyaWdnZXJEYXRhXT1cInsgd2lkdGg6IGJ0blJlZigpPy5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIH1cIlxuICAoY2xpY2spPVwib25DYWxsQWdlbnQoKVwiXG4+XG4gIDxzcGFuIGkxOG4+QXNrIGEgcXVlc3Rpb248L3NwYW4+XG48L2E+XG48bWF0LW1lbnUgI2NhbGxNZW51PVwibWF0TWVudVwiIFtvdmVybGFwVHJpZ2dlcl09XCJmYWxzZVwiIGNsYXNzPVwiY3VzdG9tLW1lbnUtcGFuZWxcIj5cbiAgPG5nLXRlbXBsYXRlIG1hdE1lbnVDb250ZW50IGxldC13aWR0aD1cIndpZHRoXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1lbnUtY29udGVudFwiIFtuZ1N0eWxlXT1cInsgd2lkdGg6IHdpZHRoICsgJ3B4JyB9XCI+XG4gICAgICA8YSBtYXQtbWVudS1pdGVtIGhyZWY9XCJtYWlsdG86aGVsbG9AZ21haWwuY29tXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtci0zXCI+ZW1haWw8L21hdC1pY29uPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBpMThuPkVtYWlsPC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicGwtOVwiIGkxOG4+e3sgZW1haWwoKSB9fTwvc3Bhbj5cbiAgICAgIDwvYT5cbiAgICAgIDxociAvPlxuICAgICAgPGEgbWF0LW1lbnUtaXRlbSBbaHJlZl09XCInaHR0cHM6Ly93YS5tZS8nICsgcGhvbmUoKVwiIHRhcmdldD1cIl9ibGFua1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibXItM1wiPmNhbGw8L21hdC1pY29uPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBpMThuPldoYXRzQXBwPC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicGwtOVwiIGkxOG4+e3sgcGhvbmUoKSB9fTwvc3Bhbj5cbiAgICAgIDwvYT5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbWF0LW1lbnU+XG4iXX0=","import { Component, input } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/router\";\nimport * as i2 from \"@angular/material/icon\";\nexport class PropertyAgentRenderer {\n name = input(...(ngDevMode ? [undefined, { debugName: \"name\" }] : []));\n avatar = input(...(ngDevMode ? [undefined, { debugName: \"avatar\" }] : []));\n username = input(...(ngDevMode ? [undefined, { debugName: \"username\" }] : []));\n subtitle = input(...(ngDevMode ? [undefined, { debugName: \"subtitle\" }] : []));\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyAgentRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyAgentRenderer, isStandalone: true, selector: \"rolatech-property-agent-renderer\", inputs: { name: { classPropertyName: \"name\", publicName: \"name\", isSignal: true, isRequired: false, transformFunction: null }, avatar: { classPropertyName: \"avatar\", publicName: \"avatar\", isSignal: true, isRequired: false, transformFunction: null }, username: { classPropertyName: \"username\", publicName: \"username\", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: \"subtitle\", publicName: \"subtitle\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: \"<div class=\\\"flex flex-col\\\">\\n <div class=\\\"flex flex-row items-center py-3\\\">\\n <div class=\\\"flex mr-3 gap-2 items-center\\\">\\n @if (avatar()) {\\n <div class=\\\"cursor-pointer\\\" [routerLink]=\\\"['/', '@' + username()]\\\">\\n <img [src]=\\\"avatar()\\\" class=\\\"w-14 h-14 rounded-full\\\" alt />\\n </div>\\n } @else {\\n <div class=\\\"w-14 h-14 rounded-full bg-[--rt-brand-color]\\\"></div>\\n }\\n <div class=\\\"flex flex-col\\\">\\n <div class=\\\"flex items-center text-lg font-bold cursor-pointer\\\">\\n <a [routerLink]=\\\"['/', '@' + username()]\\\">\\n <span>{{ name() }}</span>\\n </a>\\n <mat-icon class=\\\"verified-icon\\\">verified</mat-icon>\\n </div>\\n <div class=\\\"text-lg font-bold text-[--rt-brand-color]\\\">{{ subtitle() }}</div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"text-sm opacity-70\\\">This listing is verified and managed by an Primecase agent</div>\\n</div>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: AngularCommonModule }, { kind: \"directive\", type: i1.RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i2.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyAgentRenderer, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-agent-renderer', imports: [AngularCommonModule, MatIconModule], template: \"<div class=\\\"flex flex-col\\\">\\n <div class=\\\"flex flex-row items-center py-3\\\">\\n <div class=\\\"flex mr-3 gap-2 items-center\\\">\\n @if (avatar()) {\\n <div class=\\\"cursor-pointer\\\" [routerLink]=\\\"['/', '@' + username()]\\\">\\n <img [src]=\\\"avatar()\\\" class=\\\"w-14 h-14 rounded-full\\\" alt />\\n </div>\\n } @else {\\n <div class=\\\"w-14 h-14 rounded-full bg-[--rt-brand-color]\\\"></div>\\n }\\n <div class=\\\"flex flex-col\\\">\\n <div class=\\\"flex items-center text-lg font-bold cursor-pointer\\\">\\n <a [routerLink]=\\\"['/', '@' + username()]\\\">\\n <span>{{ name() }}</span>\\n </a>\\n <mat-icon class=\\\"verified-icon\\\">verified</mat-icon>\\n </div>\\n <div class=\\\"text-lg font-bold text-[--rt-brand-color]\\\">{{ subtitle() }}</div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"text-sm opacity-70\\\">This listing is verified and managed by an Primecase agent</div>\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktYWdlbnQtcmVuZGVyZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvY29tcG9uZW50cy9wcm9wZXJ0eS1hZ2VudC1yZW5kZXJlci9wcm9wZXJ0eS1hZ2VudC1yZW5kZXJlci50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9jb21wb25lbnRzL3Byb3BlcnR5LWFnZW50LXJlbmRlcmVyL3Byb3BlcnR5LWFnZW50LXJlbmRlcmVyLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7O0FBUS9ELE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsSUFBSSxHQUFHLEtBQUssMERBQVUsQ0FBQztJQUN2QixNQUFNLEdBQUcsS0FBSyw0REFBVSxDQUFDO0lBQ3pCLFFBQVEsR0FBRyxLQUFLLDhEQUFVLENBQUM7SUFDM0IsUUFBUSxHQUFHLEtBQUssOERBQVUsQ0FBQzt1R0FKaEIscUJBQXFCOzJGQUFyQixxQkFBcUIsMGxCQ1ZsQyxvOEJBdUJBLHlERGpCWSxtQkFBbUIsK1FBQUUsYUFBYTs7MkZBSWpDLHFCQUFxQjtrQkFOakMsU0FBUzsrQkFDRSxrQ0FBa0MsV0FDbkMsQ0FBQyxtQkFBbUIsRUFBRSxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBBbmd1bGFyQ29tbW9uTW9kdWxlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvcGVydHktYWdlbnQtcmVuZGVyZXInLFxuICBpbXBvcnRzOiBbQW5ndWxhckNvbW1vbk1vZHVsZSwgTWF0SWNvbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1hZ2VudC1yZW5kZXJlci5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb3BlcnR5LWFnZW50LXJlbmRlcmVyLnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eUFnZW50UmVuZGVyZXIge1xuICBuYW1lID0gaW5wdXQ8c3RyaW5nPigpO1xuICBhdmF0YXIgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHVzZXJuYW1lID0gaW5wdXQ8c3RyaW5nPigpO1xuICBzdWJ0aXRsZSA9IGlucHV0PHN0cmluZz4oKTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sXCI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGl0ZW1zLWNlbnRlciBweS0zXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggbXItMyBnYXAtMiBpdGVtcy1jZW50ZXJcIj5cbiAgICAgIEBpZiAoYXZhdGFyKCkpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIFtyb3V0ZXJMaW5rXT1cIlsnLycsICdAJyArIHVzZXJuYW1lKCldXCI+XG4gICAgICAgIDxpbWcgW3NyY109XCJhdmF0YXIoKVwiIGNsYXNzPVwidy0xNCBoLTE0IHJvdW5kZWQtZnVsbFwiIGFsdCAvPlxuICAgICAgPC9kaXY+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJ3LTE0IGgtMTQgcm91bmRlZC1mdWxsIGJnLVstLXJ0LWJyYW5kLWNvbG9yXVwiPjwvZGl2PlxuICAgICAgfVxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIHRleHQtbGcgZm9udC1ib2xkIGN1cnNvci1wb2ludGVyXCI+XG4gICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiWycvJywgJ0AnICsgdXNlcm5hbWUoKV1cIj5cbiAgICAgICAgICAgIDxzcGFuPnt7IG5hbWUoKSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2E+XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwidmVyaWZpZWQtaWNvblwiPnZlcmlmaWVkPC9tYXQtaWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LVstLXJ0LWJyYW5kLWNvbG9yXVwiPnt7IHN1YnRpdGxlKCkgfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInRleHQtc20gb3BhY2l0eS03MFwiPlRoaXMgbGlzdGluZyBpcyB2ZXJpZmllZCBhbmQgbWFuYWdlZCBieSBhbiBQcmltZWNhc2UgYWdlbnQ8L2Rpdj5cbjwvZGl2PlxuIl19","import { Component, input } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class PropertyHighlights {\n highlights = input.required(...(ngDevMode ? [{ debugName: \"highlights\" }] : []));\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyHighlights, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyHighlights, isStandalone: true, selector: \"rolatech-property-highlights\", inputs: { highlights: { classPropertyName: \"highlights\", publicName: \"highlights\", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: \"<div class=\\\"\\\">\\n <div class=\\\"text-2xl font-bold py-3\\\" i18n>Highlights</div>\\n <div class=\\\"flex flex-col flex-wrap\\\">\\n @for (item of highlights(); track $index) {\\n <div class=\\\"flex items-center py-1\\\">\\n <!-- <mat-icon>check</mat-icon> -->\\n <span>{{ item }}</span>\\n </div>\\n }\\n </div>\\n</div>\\n\", styles: [\"\"] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyHighlights, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-highlights', template: \"<div class=\\\"\\\">\\n <div class=\\\"text-2xl font-bold py-3\\\" i18n>Highlights</div>\\n <div class=\\\"flex flex-col flex-wrap\\\">\\n @for (item of highlights(); track $index) {\\n <div class=\\\"flex items-center py-1\\\">\\n <!-- <mat-icon>check</mat-icon> -->\\n <span>{{ item }}</span>\\n </div>\\n }\\n </div>\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktaGlnaGxpZ2h0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9jb21wb25lbnRzL3Byb3BlcnR5LWhpZ2hsaWdodHMvcHJvcGVydHktaGlnaGxpZ2h0cy50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9jb21wb25lbnRzL3Byb3BlcnR5LWhpZ2hsaWdodHMvcHJvcGVydHktaGlnaGxpZ2h0cy5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVFqRCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFVBQVUsR0FBRyxLQUFLLENBQUMsUUFBUSxxREFBdUIsQ0FBQzt1R0FEeEMsa0JBQWtCOzJGQUFsQixrQkFBa0IsME9DUi9CLDJVQVdBOzsyRkRIYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJvcGVydHlIaWdobGlnaHQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvcGVydHktaGlnaGxpZ2h0cycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1oaWdobGlnaHRzLmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHJvcGVydHktaGlnaGxpZ2h0cy5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlIaWdobGlnaHRzIHtcbiAgaGlnaGxpZ2h0cyA9IGlucHV0LnJlcXVpcmVkPFByb3BlcnR5SGlnaGxpZ2h0W10+KCk7XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJcIj5cbiAgPGRpdiBjbGFzcz1cInRleHQtMnhsIGZvbnQtYm9sZCBweS0zXCIgaTE4bj5IaWdobGlnaHRzPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGZsZXgtd3JhcFwiPlxuICAgIEBmb3IgKGl0ZW0gb2YgaGlnaGxpZ2h0cygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgcHktMVwiPlxuICAgICAgPCEtLSA8bWF0LWljb24+Y2hlY2s8L21hdC1pY29uPiAtLT5cbiAgICAgIDxzcGFuPnt7IGl0ZW0gfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbjwvZGl2PlxuIl19","import { CommonModule } from '@angular/common';\nimport { Component, input } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nconst BANDS = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];\nconst RANGES = {\n A: '(92+)', B: '(81-91)', C: '(69-80)', D: '(55-68)',\n E: '(39-54)', F: '(21-38)', G: '(1-20)',\n};\nconst COLORS = {\n A: '#0E9F6E', // green\n B: '#10B981',\n C: '#84CC16',\n D: '#F59E0B',\n E: '#F97316',\n F: '#FB7185',\n G: '#DC2626'\n};\nfunction bandFromScore(s) {\n const v = s ?? 0;\n if (v >= 92)\n return 'A';\n if (v >= 81)\n return 'B';\n if (v >= 69)\n return 'C';\n if (v >= 55)\n return 'D';\n if (v >= 39)\n return 'E';\n if (v >= 21)\n return 'F';\n return 'G';\n}\nexport class EpcChart {\n // --- inputs (signals) ---\n currentScore = input(null, ...(ngDevMode ? [{ debugName: \"currentScore\" }] : [])); // 1..100\n potentialScore = input(null, ...(ngDevMode ? [{ debugName: \"potentialScore\" }] : [])); // 1..100\n showCaptions = input(true, ...(ngDevMode ? [{ debugName: \"showCaptions\" }] : []));\n // --- layout ---\n width = 920;\n leftPadding = 24;\n headerY = 40;\n rangeColW = 90;\n gapY = 10;\n topY = 110; // top of first row area\n rowH = 48; // height of each wedge row\n rows = 7;\n // wedge geometry\n wedgeMaxW = 420; // width of 'A' row\n wedgeMinW = 220;\n wedgeDelta = 44; // decrement per row\n cut = 24; // right slant depth\n // arrow columns\n arrowW = 104;\n arrowH = 44;\n colGap = 130;\n wedgeAreaRight = this.leftPadding + this.rangeColW + 12 + this.wedgeMaxW + 20;\n currentColX = this.wedgeAreaRight + 80;\n potentialColX = this.currentColX + this.colGap;\n // captions\n topCaptionY = this.topY - 22;\n get bottomCaptionY() { return this.topY + this.rows * (this.rowH + this.gapY) + 22; }\n // overall height\n get height() {\n return this.bottomCaptionY + 56;\n }\n // expose constants to template\n bands = BANDS;\n RANGES = RANGES;\n COLORS = COLORS;\n get rangeX() { return this.leftPadding; }\n get maxW() { return this.wedgeMinW + 6 * this.wedgeDelta; } // width of G (widest)\n // helpers\n wedgeX(i) { return this.leftPadding + this.rangeColW + 12; }\n // private wedgeW(i: number) { return this.wedgeMaxW - (i * this.wedgeDelta); }\n wedgeW(i) {\n // A..G => 0..6 → widths increase downward\n return this.wedgeMinW + i * this.wedgeDelta;\n }\n rowY(i) { return this.topY + i * (this.rowH + this.gapY); }\n wedgePoints1(i) {\n const x = this.wedgeX(i), y = this.rowY(i), w = this.wedgeW(i), h = this.rowH, c = this.cut;\n // rectangle with right chevron tip\n // (x,y) → (x+w-c,y) → (x+w,y+h/2) → (x+w-c,y+h) → (x,y+h)\n return `${x},${y} ${x + w - c},${y} ${x + w},${y + h / 2} ${x + w - c},${y + h} ${x},${y + h}`;\n }\n wedgePoints(i) {\n const x = this.wedgeX(i), y = this.rowY(i), w = this.wedgeW(i), h = this.rowH;\n // rectangle: (x,y) → (x+w,y) → (x+w,y+h) → (x,y+h)\n return `${x},${y} ${x + w},${y} ${x + w},${y + h} ${x},${y + h}`;\n }\n wedgeLetterX(i) {\n // place on the trailing (right) end of wedge, just before chevron tip\n return this.wedgeX(i) + this.wedgeW(i) - this.cut - 10;\n }\n // arrow badge (left-pointing)\n arrowPoints() {\n const w = this.arrowW, h = this.arrowH, tip = 18; // tip depth\n // (w,0) → (tip,0) → (0,h/2) → (tip,h) → (w,h) → close\n return `${w},0 ${tip},0 0,${h / 2} ${tip},${h} ${w},${h}`;\n }\n // vertical placement: center the arrow in the band row for the given score\n arrowY(score) {\n const b = bandFromScore(score);\n const rowIndex = this.bands.indexOf(b);\n const y = this.rowY(rowIndex) + (this.rowH - this.arrowH) / 2;\n return Math.max(y, this.topY); // safety\n }\n clampScore(s) { return Math.max(1, Math.min(100, Math.round(s))); }\n // add below COLORS, bandFromScore...\n colorForBand(b) { return COLORS[b]; }\n colorForScore(s) { return this.colorForBand(bandFromScore(s)); }\n // simple contrast so numbers stay readable\n textColorForBand(b) {\n const hex = this.colorForBand(b).replace('#', '');\n const r = parseInt(hex.slice(0, 2), 16);\n const g = parseInt(hex.slice(2, 4), 16);\n const bl = parseInt(hex.slice(4, 6), 16);\n const yiq = (r * 299 + g * 587 + bl * 114) / 1000;\n return yiq >= 170 ? '#111' : '#fff'; // light bg → dark text, else white\n }\n textColorForScore(s) { return this.textColorForBand(bandFromScore(s)); }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: EpcChart, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: EpcChart, isStandalone: true, selector: \"rolatech-epc-chart\", inputs: { currentScore: { classPropertyName: \"currentScore\", publicName: \"currentScore\", isSignal: true, isRequired: false, transformFunction: null }, potentialScore: { classPropertyName: \"potentialScore\", publicName: \"potentialScore\", isSignal: true, isRequired: false, transformFunction: null }, showCaptions: { classPropertyName: \"showCaptions\", publicName: \"showCaptions\", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: \"w-full\" }, ngImport: i0, template: \"<svg [attr.viewBox]=\\\"'0 0 ' + width + ' ' + height\\\" class=\\\"w-full h-auto\\\">\\n <!-- outer border -->\\n <rect\\n x=\\\"0\\\"\\n y=\\\"0\\\"\\n [attr.width]=\\\"width-16\\\"\\n [attr.height]=\\\"height-16\\\"\\n fill=\\\"none\\\"\\n stroke=\\\"var(--rt-text-primary)\\\"\\n stroke-width=\\\"2\\\"\\n />\\n\\n <!-- header row -->\\n <text [attr.x]=\\\"leftPadding\\\" [attr.y]=\\\"headerY\\\" font-weight=\\\"700\\\" font-size=\\\"16\\\" fill=\\\"var(--rt-text-primary)\\\">\\n Energy Rating\\n </text>\\n <text\\n [attr.x]=\\\"currentColX + arrowW/2\\\"\\n [attr.y]=\\\"headerY\\\"\\n text-anchor=\\\"middle\\\"\\n font-weight=\\\"700\\\"\\n font-size=\\\"16\\\"\\n fill=\\\"var(--rt-text-primary)\\\"\\n >\\n Current\\n </text>\\n <text\\n [attr.x]=\\\"potentialColX + arrowW/2\\\"\\n [attr.y]=\\\"headerY\\\"\\n text-anchor=\\\"middle\\\"\\n font-weight=\\\"700\\\"\\n font-size=\\\"16\\\"\\n fill=\\\"var(--rt-text-primary)\\\"\\n >\\n Potential\\n </text>\\n <line\\n x1=\\\"0\\\"\\n [attr.y1]=\\\"headerY+10\\\"\\n [attr.x2]=\\\"width - 16\\\"\\n [attr.y2]=\\\"headerY+10\\\"\\n stroke=\\\"var(--rt-text-primary)\\\"\\n stroke-width=\\\"2\\\"\\n />\\n\\n <!-- top/bottom captions -->\\n @if (showCaptions()) {\\n <text [attr.x]=\\\"leftPadding\\\" [attr.y]=\\\"topCaptionY\\\" fill=\\\"#9CA3AF\\\" font-size=\\\"20\\\">\\n very energy efficient - lower running costs\\n </text>\\n <text [attr.x]=\\\"leftPadding\\\" [attr.y]=\\\"bottomCaptionY\\\" fill=\\\"#9CA3AF\\\" font-size=\\\"20\\\">\\n not energy efficient - higher running costs\\n </text>\\n }\\n\\n <!-- Wedges (A..G) -->\\n @for (b of bands; track b; let i = $index) {\\n <!-- range text column -->\\n <text [attr.x]=\\\"rangeX\\\" [attr.y]=\\\"rowY(i) + rowH/2 + 5\\\" fill=\\\"#6B7280\\\" font-size=\\\"16\\\">{{ RANGES[b] }}</text>\\n\\n <!-- colored wedge -->\\n <polygon [attr.points]=\\\"wedgePoints(i)\\\" [attr.fill]=\\\"COLORS[b]\\\" stroke=\\\"none\\\" />\\n\\n <!-- band letter -->\\n <text\\n [attr.x]=\\\"wedgeLetterX(i)\\\"\\n [attr.y]=\\\"rowY(i) + rowH/2 + 8\\\"\\n fill=\\\"white\\\"\\n font-size=\\\"28\\\"\\n font-weight=\\\"700\\\"\\n text-anchor=\\\"end\\\"\\n >\\n {{ b }}\\n </text>\\n }\\n\\n <!-- Current arrow badge -->\\n @if (currentScore() !== null) {\\n <g [attr.transform]=\\\"'translate(' + currentColX + ',' + arrowY(currentScore()!) + ')'\\\">\\n <polygon [attr.points]=\\\"arrowPoints()\\\" [attr.fill]=\\\"colorForScore(currentScore()!)\\\"></polygon>\\n <text\\n [attr.x]=\\\"arrowW/2 + 6\\\"\\n [attr.y]=\\\"arrowH/2 + 9\\\"\\n text-anchor=\\\"middle\\\"\\n font-size=\\\"24\\\"\\n font-weight=\\\"800\\\"\\n [attr.fill]=\\\"textColorForScore(currentScore()!)\\\"\\n >\\n {{ clampScore(currentScore()!) }}\\n </text>\\n <!-- underline (optional) -->\\n <rect\\n [attr.x]=\\\"arrowW/2 - 12\\\"\\n [attr.y]=\\\"arrowH/2 + 12\\\"\\n width=\\\"36\\\"\\n height=\\\"3\\\"\\n [attr.fill]=\\\"textColorForScore(currentScore()!)\\\"\\n opacity=\\\"0.8\\\"\\n />\\n </g>\\n }\\n\\n <!-- Potential arrow badge -->\\n @if (potentialScore() !== null) {\\n <g [attr.transform]=\\\"'translate(' + potentialColX + ',' + arrowY(potentialScore()!) + ')'\\\">\\n <polygon [attr.points]=\\\"arrowPoints()\\\" [attr.fill]=\\\"colorForScore(potentialScore()!)\\\"></polygon>\\n <text\\n [attr.x]=\\\"arrowW/2 + 6\\\"\\n [attr.y]=\\\"arrowH/2 + 9\\\"\\n text-anchor=\\\"middle\\\"\\n font-size=\\\"24\\\"\\n font-weight=\\\"800\\\"\\n [attr.fill]=\\\"textColorForScore(potentialScore()!)\\\"\\n >\\n {{ clampScore(potentialScore()!) }}\\n </text>\\n </g>\\n }\\n</svg>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: EpcChart, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-epc-chart', imports: [CommonModule], host: { class: 'w-full' }, template: \"<svg [attr.viewBox]=\\\"'0 0 ' + width + ' ' + height\\\" class=\\\"w-full h-auto\\\">\\n <!-- outer border -->\\n <rect\\n x=\\\"0\\\"\\n y=\\\"0\\\"\\n [attr.width]=\\\"width-16\\\"\\n [attr.height]=\\\"height-16\\\"\\n fill=\\\"none\\\"\\n stroke=\\\"var(--rt-text-primary)\\\"\\n stroke-width=\\\"2\\\"\\n />\\n\\n <!-- header row -->\\n <text [attr.x]=\\\"leftPadding\\\" [attr.y]=\\\"headerY\\\" font-weight=\\\"700\\\" font-size=\\\"16\\\" fill=\\\"var(--rt-text-primary)\\\">\\n Energy Rating\\n </text>\\n <text\\n [attr.x]=\\\"currentColX + arrowW/2\\\"\\n [attr.y]=\\\"headerY\\\"\\n text-anchor=\\\"middle\\\"\\n font-weight=\\\"700\\\"\\n font-size=\\\"16\\\"\\n fill=\\\"var(--rt-text-primary)\\\"\\n >\\n Current\\n </text>\\n <text\\n [attr.x]=\\\"potentialColX + arrowW/2\\\"\\n [attr.y]=\\\"headerY\\\"\\n text-anchor=\\\"middle\\\"\\n font-weight=\\\"700\\\"\\n font-size=\\\"16\\\"\\n fill=\\\"var(--rt-text-primary)\\\"\\n >\\n Potential\\n </text>\\n <line\\n x1=\\\"0\\\"\\n [attr.y1]=\\\"headerY+10\\\"\\n [attr.x2]=\\\"width - 16\\\"\\n [attr.y2]=\\\"headerY+10\\\"\\n stroke=\\\"var(--rt-text-primary)\\\"\\n stroke-width=\\\"2\\\"\\n />\\n\\n <!-- top/bottom captions -->\\n @if (showCaptions()) {\\n <text [attr.x]=\\\"leftPadding\\\" [attr.y]=\\\"topCaptionY\\\" fill=\\\"#9CA3AF\\\" font-size=\\\"20\\\">\\n very energy efficient - lower running costs\\n </text>\\n <text [attr.x]=\\\"leftPadding\\\" [attr.y]=\\\"bottomCaptionY\\\" fill=\\\"#9CA3AF\\\" font-size=\\\"20\\\">\\n not energy efficient - higher running costs\\n </text>\\n }\\n\\n <!-- Wedges (A..G) -->\\n @for (b of bands; track b; let i = $index) {\\n <!-- range text column -->\\n <text [attr.x]=\\\"rangeX\\\" [attr.y]=\\\"rowY(i) + rowH/2 + 5\\\" fill=\\\"#6B7280\\\" font-size=\\\"16\\\">{{ RANGES[b] }}</text>\\n\\n <!-- colored wedge -->\\n <polygon [attr.points]=\\\"wedgePoints(i)\\\" [attr.fill]=\\\"COLORS[b]\\\" stroke=\\\"none\\\" />\\n\\n <!-- band letter -->\\n <text\\n [attr.x]=\\\"wedgeLetterX(i)\\\"\\n [attr.y]=\\\"rowY(i) + rowH/2 + 8\\\"\\n fill=\\\"white\\\"\\n font-size=\\\"28\\\"\\n font-weight=\\\"700\\\"\\n text-anchor=\\\"end\\\"\\n >\\n {{ b }}\\n </text>\\n }\\n\\n <!-- Current arrow badge -->\\n @if (currentScore() !== null) {\\n <g [attr.transform]=\\\"'translate(' + currentColX + ',' + arrowY(currentScore()!) + ')'\\\">\\n <polygon [attr.points]=\\\"arrowPoints()\\\" [attr.fill]=\\\"colorForScore(currentScore()!)\\\"></polygon>\\n <text\\n [attr.x]=\\\"arrowW/2 + 6\\\"\\n [attr.y]=\\\"arrowH/2 + 9\\\"\\n text-anchor=\\\"middle\\\"\\n font-size=\\\"24\\\"\\n font-weight=\\\"800\\\"\\n [attr.fill]=\\\"textColorForScore(currentScore()!)\\\"\\n >\\n {{ clampScore(currentScore()!) }}\\n </text>\\n <!-- underline (optional) -->\\n <rect\\n [attr.x]=\\\"arrowW/2 - 12\\\"\\n [attr.y]=\\\"arrowH/2 + 12\\\"\\n width=\\\"36\\\"\\n height=\\\"3\\\"\\n [attr.fill]=\\\"textColorForScore(currentScore()!)\\\"\\n opacity=\\\"0.8\\\"\\n />\\n </g>\\n }\\n\\n <!-- Potential arrow badge -->\\n @if (potentialScore() !== null) {\\n <g [attr.transform]=\\\"'translate(' + potentialColX + ',' + arrowY(potentialScore()!) + ')'\\\">\\n <polygon [attr.points]=\\\"arrowPoints()\\\" [attr.fill]=\\\"colorForScore(potentialScore()!)\\\"></polygon>\\n <text\\n [attr.x]=\\\"arrowW/2 + 6\\\"\\n [attr.y]=\\\"arrowH/2 + 9\\\"\\n text-anchor=\\\"middle\\\"\\n font-size=\\\"24\\\"\\n font-weight=\\\"800\\\"\\n [attr.fill]=\\\"textColorForScore(potentialScore()!)\\\"\\n >\\n {{ clampScore(potentialScore()!) }}\\n </text>\\n </g>\\n }\\n</svg>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXBjLWNoYXJ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvZXBjLWNoYXJ0L2VwYy1jaGFydC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9jb21wb25lbnRzL2VwYy1jaGFydC9lcGMtY2hhcnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBbUIsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOztBQUcxRSxNQUFNLEtBQUssR0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQzFELE1BQU0sTUFBTSxHQUF5QjtJQUNuQyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsU0FBUztJQUNwRCxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLFFBQVE7Q0FDeEMsQ0FBQztBQUNGLE1BQU0sTUFBTSxHQUF5QjtJQUNuQyxDQUFDLEVBQUUsU0FBUyxFQUFFLFFBQVE7SUFDdEIsQ0FBQyxFQUFFLFNBQVM7SUFDWixDQUFDLEVBQUUsU0FBUztJQUNaLENBQUMsRUFBRSxTQUFTO0lBQ1osQ0FBQyxFQUFFLFNBQVM7SUFDWixDQUFDLEVBQUUsU0FBUztJQUNaLENBQUMsRUFBRSxTQUFTO0NBQ2IsQ0FBQztBQUVGLFNBQVMsYUFBYSxDQUFDLENBQWlCO0lBQ3RDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakIsSUFB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SUFDMUUsQ0FBQztJQUNELGlCQUFpQixDQUFDLENBQVMsSUFBSSxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7dUdBdkdyRSxRQUFROzJGQUFSLFFBQVEsMmlCQ3JDckIsaTJHQXVIQSx5RER2RlksWUFBWTs7MkZBS1gsUUFBUTtrQkFQcEIsU0FBUzsrQkFDRSxvQkFBb0IsV0FDckIsQ0FBQyxZQUFZLENBQUMsUUFHakIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIGNvbXB1dGVkLCBpbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG50eXBlIEJhbmQgPSAnQScgfCAnQicgfCAnQycgfCAnRCcgfCAnRScgfCAnRicgfCAnRyc7XG5cbmNvbnN0IEJBTkRTOiBCYW5kW10gPSBbJ0EnLCAnQicsICdDJywgJ0QnLCAnRScsICdGJywgJ0cnXTtcbmNvbnN0IFJBTkdFUzogUmVjb3JkPEJhbmQsIHN0cmluZz4gPSB7XG4gIEE6ICcoOTIrKScsIEI6ICcoODEtOTEpJywgQzogJyg2OS04MCknLCBEOiAnKDU1LTY4KScsXG4gIEU6ICcoMzktNTQpJywgRjogJygyMS0zOCknLCBHOiAnKDEtMjApJyxcbn07XG5jb25zdCBDT0xPUlM6IFJlY29yZDxCYW5kLCBzdHJpbmc+ID0ge1xuICBBOiAnIzBFOUY2RScsIC8vIGdyZWVuXG4gIEI6ICcjMTBCOTgxJyxcbiAgQzogJyM4NENDMTYnLFxuICBEOiAnI0Y1OUUwQicsXG4gIEU6ICcjRjk3MzE2JyxcbiAgRjogJyNGQjcxODUnLFxuICBHOiAnI0RDMjYyNidcbn07XG5cbmZ1bmN0aW9uIGJhbmRGcm9tU2NvcmUocz86IG51bWJlciB8IG51bGwpOiBCYW5kIHtcbiAgY29uc3QgdiA9IHMgPz8gMDtcbiAgaWYgKHYgPj0gOTIpIHJldHVybiAnQSc7XG4gIGlmICh2ID49IDgxKSByZXR1cm4gJ0InO1xuICBpZiAodiA+PSA2OSkgcmV0dXJuICdDJztcbiAgaWYgKHYgPj0gNTUpIHJldHVybiAnRCc7XG4gIGlmICh2ID49IDM5KSByZXR1cm4gJ0UnO1xuICBpZiAodiA+PSAyMSkgcmV0dXJuICdGJztcbiAgcmV0dXJuICdHJztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtZXBjLWNoYXJ0JyxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9lcGMtY2hhcnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9lcGMtY2hhcnQuc2NzcycsXG4gIGhvc3Q6IHsgY2xhc3M6ICd3LWZ1bGwnIH1cbn0pXG5leHBvcnQgY2xhc3MgRXBjQ2hhcnQge1xuICAvLyAtLS0gaW5wdXRzIChzaWduYWxzKSAtLS1cbiAgY3VycmVudFNjb3JlID0gaW5wdXQ8bnVtYmVyIHwgbnVsbD4obnVsbCk7ICAgLy8gMS4uMTAwXG4gIHBvdGVudGlhbFNjb3JlID0gaW5wdXQ8bnVtYmVyIHwgbnVsbD4obnVsbCk7ICAgLy8gMS4uMTAwXG4gIHNob3dDYXB0aW9ucyA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuXG4gIC8vIC0tLSBsYXlvdXQgLS0tXG4gIHdpZHRoID0gOTIwO1xuXG4gIGxlZnRQYWRkaW5nID0gMjQ7XG4gIGhlYWRlclkgPSA0MDtcblxuICBwcml2YXRlIHJhbmdlQ29sVyA9IDkwO1xuICBwcml2YXRlIGdhcFkgPSAxMDtcbiAgcHJpdmF0ZSB0b3BZID0gMTEwOyAgICAgICAvLyB0b3Agb2YgZmlyc3Qgcm93IGFyZWFcbiAgcm93SCA9IDQ4OyAgICAgICAgICAgICAgICAvLyBoZWlnaHQgb2YgZWFjaCB3ZWRnZSByb3dcbiAgcm93cyA9IDc7XG5cbiAgLy8gd2VkZ2UgZ2VvbWV0cnlcbiAgcHJpdmF0ZSB3ZWRnZU1heFcgPSA0MjA7ICAvLyB3aWR0aCBvZiAnQScgcm93XG4gIHByaXZhdGUgd2VkZ2VNaW5XID0gMjIwO1xuICBwcml2YXRlIHdlZGdlRGVsdGEgPSA0NDsgIC8vIGRlY3JlbWVudCBwZXIgcm93XG4gIHByaXZhdGUgY3V0ID0gMjQ7ICAgICAgICAgLy8gcmlnaHQgc2xhbnQgZGVwdGhcblxuICAvLyBhcnJvdyBjb2x1bW5zXG4gIGFycm93VyA9IDEwNDsgYXJyb3dIID0gNDQ7XG4gIHByaXZhdGUgY29sR2FwID0gMTMwO1xuICBwcml2YXRlIHdlZGdlQXJlYVJpZ2h0ID0gdGhpcy5sZWZ0UGFkZGluZyArIHRoaXMucmFuZ2VDb2xXICsgMTIgKyB0aGlzLndlZGdlTWF4VyArIDIwO1xuICBjdXJyZW50Q29sWCA9IHRoaXMud2VkZ2VBcmVhUmlnaHQgKyA4MDtcbiAgcG90ZW50aWFsQ29sWCA9IHRoaXMuY3VycmVudENvbFggKyB0aGlzLmNvbEdhcDtcblxuICAvLyBjYXB0aW9uc1xuICB0b3BDYXB0aW9uWSA9IHRoaXMudG9wWSAtIDIyO1xuICBnZXQgYm90dG9tQ2FwdGlvblkoKSB7IHJldHVybiB0aGlzLnRvcFkgKyB0aGlzLnJvd3MgKiAodGhpcy5yb3dIICsgdGhpcy5nYXBZKSArIDIyOyB9XG5cbiAgLy8gb3ZlcmFsbCBoZWlnaHRcbiAgZ2V0IGhlaWdodCgpIHtcbiAgICByZXR1cm4gdGhpcy5ib3R0b21DYXB0aW9uWSArIDU2O1xuICB9XG5cbiAgLy8gZXhwb3NlIGNvbnN0YW50cyB0byB0ZW1wbGF0ZVxuICBiYW5kcyA9IEJBTkRTO1xuICBSQU5HRVMgPSBSQU5HRVM7XG4gIENPTE9SUyA9IENPTE9SUztcbiAgZ2V0IHJhbmdlWCgpIHsgcmV0dXJuIHRoaXMubGVmdFBhZGRpbmc7IH1cbiAgZ2V0IG1heFcoKSB7IHJldHVybiB0aGlzLndlZGdlTWluVyArIDYgKiB0aGlzLndlZGdlRGVsdGE7IH0gLy8gd2lkdGggb2YgRyAod2lkZXN0KVxuXG4gIC8vIGhlbHBlcnNcbiAgcHJpdmF0ZSB3ZWRnZVgoaTogbnVtYmVyKSB7IHJldHVybiB0aGlzLmxlZnRQYWRkaW5nICsgdGhpcy5yYW5nZUNvbFcgKyAxMjsgfVxuICAvLyBwcml2YXRlIHdlZGdlVyhpOiBudW1iZXIpIHsgcmV0dXJuIHRoaXMud2VkZ2VNYXhXIC0gKGkgKiB0aGlzLndlZGdlRGVsdGEpOyB9XG4gIHByaXZhdGUgd2VkZ2VXKGk6IG51bWJlcikge1xuICAgIC8vIEEuLkcgPT4gMC4uNiDihpIgd2lkdGhzIGluY3JlYXNlIGRvd253YXJkXG4gICAgcmV0dXJuIHRoaXMud2VkZ2VNaW5XICsgaSAqIHRoaXMud2VkZ2VEZWx0YTtcbiAgfVxuICByb3dZKGk6IG51bWJlcikgeyByZXR1cm4gdGhpcy50b3BZICsgaSAqICh0aGlzLnJvd0ggKyB0aGlzLmdhcFkpOyB9XG5cbiAgd2VkZ2VQb2ludHMxKGk6IG51bWJlcikge1xuICAgIGNvbnN0IHggPSB0aGlzLndlZGdlWChpKSwgeSA9IHRoaXMucm93WShpKSwgdyA9IHRoaXMud2VkZ2VXKGkpLCBoID0gdGhpcy5yb3dILCBjID0gdGhpcy5jdXQ7XG4gICAgLy8gcmVjdGFuZ2xlIHdpdGggcmlnaHQgY2hldnJvbiB0aXBcbiAgICAvLyAoeCx5KSDihpIgKHgrdy1jLHkpIOKGkiAoeCt3LHkraC8yKSDihpIgKHgrdy1jLHkraCkg4oaSICh4LHkraClcbiAgICByZXR1cm4gYCR7eH0sJHt5fSAke3ggKyB3IC0gY30sJHt5fSAke3ggKyB3fSwke3kgKyBoIC8gMn0gJHt4ICsgdyAtIGN9LCR7eSArIGh9ICR7eH0sJHt5ICsgaH1gO1xuICB9XG4gIHdlZGdlUG9pbnRzKGk6IG51bWJlcikge1xuICAgIGNvbnN0IHggPSB0aGlzLndlZGdlWChpKSwgeSA9IHRoaXMucm93WShpKSwgdyA9IHRoaXMud2VkZ2VXKGkpLCBoID0gdGhpcy5yb3dIO1xuICAgIC8vIHJlY3RhbmdsZTogKHgseSkg4oaSICh4K3cseSkg4oaSICh4K3cseStoKSDihpIgKHgseStoKVxuICAgIHJldHVybiBgJHt4fSwke3l9ICR7eCArIHd9LCR7eX0gJHt4ICsgd30sJHt5ICsgaH0gJHt4fSwke3kgKyBofWA7XG4gIH1cblxuICB3ZWRnZUxldHRlclgoaTogbnVtYmVyKSB7XG4gICAgLy8gcGxhY2Ugb24gdGhlIHRyYWlsaW5nIChyaWdodCkgZW5kIG9mIHdlZGdlLCBqdXN0IGJlZm9yZSBjaGV2cm9uIHRpcFxuICAgIHJldHVybiB0aGlzLndlZGdlWChpKSArIHRoaXMud2VkZ2VXKGkpIC0gdGhpcy5jdXQgLSAxMDtcbiAgfVxuXG4gIC8vIGFycm93IGJhZGdlIChsZWZ0LXBvaW50aW5nKVxuICBhcnJvd1BvaW50cygpIHtcbiAgICBjb25zdCB3ID0gdGhpcy5hcnJvd1csIGggPSB0aGlzLmFycm93SCwgdGlwID0gMTg7IC8vIHRpcCBkZXB0aFxuICAgIC8vICh3LDApIOKGkiAodGlwLDApIOKGkiAoMCxoLzIpIOKGkiAodGlwLGgpIOKGkiAodyxoKSDihpIgY2xvc2VcbiAgICByZXR1cm4gYCR7d30sMCAke3RpcH0sMCAwLCR7aCAvIDJ9ICR7dGlwfSwke2h9ICR7d30sJHtofWA7XG4gIH1cblxuICAvLyB2ZXJ0aWNhbCBwbGFjZW1lbnQ6IGNlbnRlciB0aGUgYXJyb3cgaW4gdGhlIGJhbmQgcm93IGZvciB0aGUgZ2l2ZW4gc2NvcmVcbiAgYXJyb3dZKHNjb3JlOiBudW1iZXIpIHtcbiAgICBjb25zdCBiID0gYmFuZEZyb21TY29yZShzY29yZSk7XG4gICAgY29uc3Qgcm93SW5kZXggPSB0aGlzLmJhbmRzLmluZGV4T2YoYik7XG4gICAgY29uc3QgeSA9IHRoaXMucm93WShyb3dJbmRleCkgKyAodGhpcy5yb3dIIC0gdGhpcy5hcnJvd0gpIC8gMjtcbiAgICByZXR1cm4gTWF0aC5tYXgoeSwgdGhpcy50b3BZKTsgLy8gc2FmZXR5XG4gIH1cblxuICBjbGFtcFNjb3JlKHM6IG51bWJlcikgeyByZXR1cm4gTWF0aC5tYXgoMSwgTWF0aC5taW4oMTAwLCBNYXRoLnJvdW5kKHMpKSk7IH1cblxuICAvLyBhZGQgYmVsb3cgQ09MT1JTLCBiYW5kRnJvbVNjb3JlLi4uXG4gIGNvbG9yRm9yQmFuZChiOiBCYW5kKSB7IHJldHVybiBDT0xPUlNbYl07IH1cbiAgY29sb3JGb3JTY29yZShzOiBudW1iZXIpIHsgcmV0dXJuIHRoaXMuY29sb3JGb3JCYW5kKGJhbmRGcm9tU2NvcmUocykpOyB9XG5cbiAgLy8gc2ltcGxlIGNvbnRyYXN0IHNvIG51bWJlcnMgc3RheSByZWFkYWJsZVxuICB0ZXh0Q29sb3JGb3JCYW5kKGI6IEJhbmQpIHtcbiAgICBjb25zdCBoZXggPSB0aGlzLmNvbG9yRm9yQmFuZChiKS5yZXBsYWNlKCcjJywgJycpO1xuICAgIGNvbnN0IHIgPSBwYXJzZUludChoZXguc2xpY2UoMCwgMiksIDE2KTtcbiAgICBjb25zdCBnID0gcGFyc2VJbnQoaGV4LnNsaWNlKDIsIDQpLCAxNik7XG4gICAgY29uc3QgYmwgPSBwYXJzZUludChoZXguc2xpY2UoNCwgNiksIDE2KTtcbiAgICBjb25zdCB5aXEgPSAociAqIDI5OSArIGcgKiA1ODcgKyBibCAqIDExNCkgLyAxMDAwO1xuICAgIHJldHVybiB5aXEgPj0gMTcwID8gJyMxMTEnIDogJyNmZmYnOyAvLyBsaWdodCBiZyDihpIgZGFyayB0ZXh0LCBlbHNlIHdoaXRlXG4gIH1cbiAgdGV4dENvbG9yRm9yU2NvcmUoczogbnVtYmVyKSB7IHJldHVybiB0aGlzLnRleHRDb2xvckZvckJhbmQoYmFuZEZyb21TY29yZShzKSk7IH1cblxufVxuIiwiPHN2ZyBbYXR0ci52aWV3Qm94XT1cIicwIDAgJyArIHdpZHRoICsgJyAnICsgaGVpZ2h0XCIgY2xhc3M9XCJ3LWZ1bGwgaC1hdXRvXCI+XG4gIDwhLS0gb3V0ZXIgYm9yZGVyIC0tPlxuICA8cmVjdFxuICAgIHg9XCIwXCJcbiAgICB5PVwiMFwiXG4gICAgW2F0dHIud2lkdGhdPVwid2lkdGgtMTZcIlxuICAgIFthdHRyLmhlaWdodF09XCJoZWlnaHQtMTZcIlxuICAgIGZpbGw9XCJub25lXCJcbiAgICBzdHJva2U9XCJ2YXIoLS1ydC10ZXh0LXByaW1hcnkpXCJcbiAgICBzdHJva2Utd2lkdGg9XCIyXCJcbiAgLz5cblxuICA8IS0tIGhlYWRlciByb3cgLS0+XG4gIDx0ZXh0IFthdHRyLnhdPVwibGVmdFBhZGRpbmdcIiBbYXR0ci55XT1cImhlYWRlcllcIiBmb250LXdlaWdodD1cIjcwMFwiIGZvbnQtc2l6ZT1cIjE2XCIgZmlsbD1cInZhcigtLXJ0LXRleHQtcHJpbWFyeSlcIj5cbiAgICBFbmVyZ3kgUmF0aW5nXG4gIDwvdGV4dD5cbiAgPHRleHRcbiAgICBbYXR0ci54XT1cImN1cnJlbnRDb2xYICsgYXJyb3dXLzJcIlxuICAgIFthdHRyLnldPVwiaGVhZGVyWVwiXG4gICAgdGV4dC1hbmNob3I9XCJtaWRkbGVcIlxuICAgIGZvbnQtd2VpZ2h0PVwiNzAwXCJcbiAgICBmb250LXNpemU9XCIxNlwiXG4gICAgZmlsbD1cInZhcigtLXJ0LXRleHQtcHJpbWFyeSlcIlxuICA+XG4gICAgQ3VycmVudFxuICA8L3RleHQ+XG4gIDx0ZXh0XG4gICAgW2F0dHIueF09XCJwb3RlbnRpYWxDb2xYICsgYXJyb3dXLzJcIlxuICAgIFthdHRyLnldPVwiaGVhZGVyWVwiXG4gICAgdGV4dC1hbmNob3I9XCJtaWRkbGVcIlxuICAgIGZvbnQtd2VpZ2h0PVwiNzAwXCJcbiAgICBmb250LXNpemU9XCIxNlwiXG4gICAgZmlsbD1cInZhcigtLXJ0LXRleHQtcHJpbWFyeSlcIlxuICA+XG4gICAgUG90ZW50aWFsXG4gIDwvdGV4dD5cbiAgPGxpbmVcbiAgICB4MT1cIjBcIlxuICAgIFthdHRyLnkxXT1cImhlYWRlclkrMTBcIlxuICAgIFthdHRyLngyXT1cIndpZHRoIC0gMTZcIlxuICAgIFthdHRyLnkyXT1cImhlYWRlclkrMTBcIlxuICAgIHN0cm9rZT1cInZhcigtLXJ0LXRleHQtcHJpbWFyeSlcIlxuICAgIHN0cm9rZS13aWR0aD1cIjJcIlxuICAvPlxuXG4gIDwhLS0gdG9wL2JvdHRvbSBjYXB0aW9ucyAtLT5cbiAgQGlmIChzaG93Q2FwdGlvbnMoKSkge1xuICA8dGV4dCBbYXR0ci54XT1cImxlZnRQYWRkaW5nXCIgW2F0dHIueV09XCJ0b3BDYXB0aW9uWVwiIGZpbGw9XCIjOUNBM0FGXCIgZm9udC1zaXplPVwiMjBcIj5cbiAgICB2ZXJ5IGVuZXJneSBlZmZpY2llbnQgLSBsb3dlciBydW5uaW5nIGNvc3RzXG4gIDwvdGV4dD5cbiAgPHRleHQgW2F0dHIueF09XCJsZWZ0UGFkZGluZ1wiIFthdHRyLnldPVwiYm90dG9tQ2FwdGlvbllcIiBmaWxsPVwiIzlDQTNBRlwiIGZvbnQtc2l6ZT1cIjIwXCI+XG4gICAgbm90IGVuZXJneSBlZmZpY2llbnQgLSBoaWdoZXIgcnVubmluZyBjb3N0c1xuICA8L3RleHQ+XG4gIH1cblxuICA8IS0tIFdlZGdlcyAoQS4uRykgLS0+XG4gIEBmb3IgKGIgb2YgYmFuZHM7IHRyYWNrIGI7IGxldCBpID0gJGluZGV4KSB7XG4gIDwhLS0gcmFuZ2UgdGV4dCBjb2x1bW4gLS0+XG4gIDx0ZXh0IFthdHRyLnhdPVwicmFuZ2VYXCIgW2F0dHIueV09XCJyb3dZKGkpICsgcm93SC8yICsgNVwiIGZpbGw9XCIjNkI3MjgwXCIgZm9udC1zaXplPVwiMTZcIj57eyBSQU5HRVNbYl0gfX08L3RleHQ+XG5cbiAgPCEtLSBjb2xvcmVkIHdlZGdlIC0tPlxuICA8cG9seWdvbiBbYXR0ci5wb2ludHNdPVwid2VkZ2VQb2ludHMoaSlcIiBbYXR0ci5maWxsXT1cIkNPTE9SU1tiXVwiIHN0cm9rZT1cIm5vbmVcIiAvPlxuXG4gIDwhLS0gYmFuZCBsZXR0ZXIgLS0+XG4gIDx0ZXh0XG4gICAgW2F0dHIueF09XCJ3ZWRnZUxldHRlclgoaSlcIlxuICAgIFthdHRyLnldPVwicm93WShpKSArIHJvd0gvMiArIDhcIlxuICAgIGZpbGw9XCJ3aGl0ZVwiXG4gICAgZm9udC1zaXplPVwiMjhcIlxuICAgIGZvbnQtd2VpZ2h0PVwiNzAwXCJcbiAgICB0ZXh0LWFuY2hvcj1cImVuZFwiXG4gID5cbiAgICB7eyBiIH19XG4gIDwvdGV4dD5cbiAgfVxuXG4gIDwhLS0gQ3VycmVudCBhcnJvdyBiYWRnZSAtLT5cbiAgQGlmIChjdXJyZW50U2NvcmUoKSAhPT0gbnVsbCkge1xuICA8ZyBbYXR0ci50cmFuc2Zvcm1dPVwiJ3RyYW5zbGF0ZSgnICsgY3VycmVudENvbFggKyAnLCcgKyBhcnJvd1koY3VycmVudFNjb3JlKCkhKSArICcpJ1wiPlxuICAgIDxwb2x5Z29uIFthdHRyLnBvaW50c109XCJhcnJvd1BvaW50cygpXCIgW2F0dHIuZmlsbF09XCJjb2xvckZvclNjb3JlKGN1cnJlbnRTY29yZSgpISlcIj48L3BvbHlnb24+XG4gICAgPHRleHRcbiAgICAgIFthdHRyLnhdPVwiYXJyb3dXLzIgKyA2XCJcbiAgICAgIFthdHRyLnldPVwiYXJyb3dILzIgKyA5XCJcbiAgICAgIHRleHQtYW5jaG9yPVwibWlkZGxlXCJcbiAgICAgIGZvbnQtc2l6ZT1cIjI0XCJcbiAgICAgIGZvbnQtd2VpZ2h0PVwiODAwXCJcbiAgICAgIFthdHRyLmZpbGxdPVwidGV4dENvbG9yRm9yU2NvcmUoY3VycmVudFNjb3JlKCkhKVwiXG4gICAgPlxuICAgICAge3sgY2xhbXBTY29yZShjdXJyZW50U2NvcmUoKSEpIH19XG4gICAgPC90ZXh0PlxuICAgIDwhLS0gdW5kZXJsaW5lIChvcHRpb25hbCkgLS0+XG4gICAgPHJlY3RcbiAgICAgIFthdHRyLnhdPVwiYXJyb3dXLzIgLSAxMlwiXG4gICAgICBbYXR0ci55XT1cImFycm93SC8yICsgMTJcIlxuICAgICAgd2lkdGg9XCIzNlwiXG4gICAgICBoZWlnaHQ9XCIzXCJcbiAgICAgIFthdHRyLmZpbGxdPVwidGV4dENvbG9yRm9yU2NvcmUoY3VycmVudFNjb3JlKCkhKVwiXG4gICAgICBvcGFjaXR5PVwiMC44XCJcbiAgICAvPlxuICA8L2c+XG4gIH1cblxuICA8IS0tIFBvdGVudGlhbCBhcnJvdyBiYWRnZSAtLT5cbiAgQGlmIChwb3RlbnRpYWxTY29yZSgpICE9PSBudWxsKSB7XG4gIDxnIFthdHRyLnRyYW5zZm9ybV09XCIndHJhbnNsYXRlKCcgKyBwb3RlbnRpYWxDb2xYICsgJywnICsgYXJyb3dZKHBvdGVudGlhbFNjb3JlKCkhKSArICcpJ1wiPlxuICAgIDxwb2x5Z29uIFthdHRyLnBvaW50c109XCJhcnJvd1BvaW50cygpXCIgW2F0dHIuZmlsbF09XCJjb2xvckZvclNjb3JlKHBvdGVudGlhbFNjb3JlKCkhKVwiPjwvcG9seWdvbj5cbiAgICA8dGV4dFxuICAgICAgW2F0dHIueF09XCJhcnJvd1cvMiArIDZcIlxuICAgICAgW2F0dHIueV09XCJhcnJvd0gvMiArIDlcIlxuICAgICAgdGV4dC1hbmNob3I9XCJtaWRkbGVcIlxuICAgICAgZm9udC1zaXplPVwiMjRcIlxuICAgICAgZm9udC13ZWlnaHQ9XCI4MDBcIlxuICAgICAgW2F0dHIuZmlsbF09XCJ0ZXh0Q29sb3JGb3JTY29yZShwb3RlbnRpYWxTY29yZSgpISlcIlxuICAgID5cbiAgICAgIHt7IGNsYW1wU2NvcmUocG90ZW50aWFsU2NvcmUoKSEpIH19XG4gICAgPC90ZXh0PlxuICA8L2c+XG4gIH1cbjwvc3ZnPlxuIl19","import { Component, input } from '@angular/core';\nimport { EpcChart } from \"../epc-chart/epc-chart\";\nimport * as i0 from \"@angular/core\";\nexport class PropertyEpc {\n epc = input.required(...(ngDevMode ? [{ debugName: \"epc\" }] : []));\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyEpc, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.2.0\", type: PropertyEpc, isStandalone: true, selector: \"rolatech-property-epc\", inputs: { epc: { classPropertyName: \"epc\", publicName: \"epc\", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: \"<div class=\\\"w-full\\\">\\n <div class=\\\"text-2xl font-bold py-3\\\" i18n>EPC</div>\\n <div class=\\\"flex flex-row items-center font-thin text-sm\\\">\\n <rolatech-epc-chart\\n [currentScore]=\\\"epc().currentScore\\\"\\n [potentialScore]=\\\"epc().potentialScore\\\"\\n [showCaptions]=\\\"true\\\"\\n ></rolatech-epc-chart>\\n </div>\\n</div>\\n\", styles: [\"\"], dependencies: [{ kind: \"component\", type: EpcChart, selector: \"rolatech-epc-chart\", inputs: [\"currentScore\", \"potentialScore\", \"showCaptions\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyEpc, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-epc', imports: [EpcChart], template: \"<div class=\\\"w-full\\\">\\n <div class=\\\"text-2xl font-bold py-3\\\" i18n>EPC</div>\\n <div class=\\\"flex flex-row items-center font-thin text-sm\\\">\\n <rolatech-epc-chart\\n [currentScore]=\\\"epc().currentScore\\\"\\n [potentialScore]=\\\"epc().potentialScore\\\"\\n [showCaptions]=\\\"true\\\"\\n ></rolatech-epc-chart>\\n </div>\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZXBjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktZXBjL3Byb3BlcnR5LWVwYy50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9jb21wb25lbnRzL3Byb3BlcnR5LWVwYy9wcm9wZXJ0eS1lcGMuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBUWxELE1BQU0sT0FBTyxXQUFXO0lBQ3RCLEdBQUcsR0FBRyxLQUFLLENBQUMsUUFBUSw4Q0FBb0IsQ0FBQzt1R0FEOUIsV0FBVzsyRkFBWCxXQUFXLDhNQ1Z4Qix1VkFVQSwwRERKWSxRQUFROzsyRkFJUCxXQUFXO2tCQU52QixTQUFTOytCQUNFLHVCQUF1QixXQUN4QixDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb3BlcnR5RXBjTW9kZWwgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEVwY0NoYXJ0IH0gZnJvbSBcIi4uL2VwYy1jaGFydC9lcGMtY2hhcnRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvcGVydHktZXBjJyxcbiAgaW1wb3J0czogW0VwY0NoYXJ0XSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LWVwYy5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb3BlcnR5LWVwYy5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlFcGMge1xuICBlcGMgPSBpbnB1dC5yZXF1aXJlZDxQcm9wZXJ0eUVwY01vZGVsPigpO1xufVxuIiwiPGRpdiBjbGFzcz1cInctZnVsbFwiPlxuICA8ZGl2IGNsYXNzPVwidGV4dC0yeGwgZm9udC1ib2xkIHB5LTNcIiBpMThuPkVQQzwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBpdGVtcy1jZW50ZXIgZm9udC10aGluIHRleHQtc21cIj5cbiAgICA8cm9sYXRlY2gtZXBjLWNoYXJ0XG4gICAgICBbY3VycmVudFNjb3JlXT1cImVwYygpLmN1cnJlbnRTY29yZVwiXG4gICAgICBbcG90ZW50aWFsU2NvcmVdPVwiZXBjKCkucG90ZW50aWFsU2NvcmVcIlxuICAgICAgW3Nob3dDYXB0aW9uc109XCJ0cnVlXCJcbiAgICA+PC9yb2xhdGVjaC1lcGMtY2hhcnQ+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=","import { Component, computed, effect, inject, signal } from '@angular/core';\nimport { AngularComponentsModule, BaseComponent, ContainerComponent } from '@rolatech/angular-components';\nimport { PropertyService, TimeZoneService } from '@rolatech/angular-services';\nimport _ from 'lodash';\nimport { PropertyVideoProvider } from '../../../interfaces';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { PropertyPricingComponent, PropertyActionsComponent } from '../../../components';\nimport { PropertyInfoComponent } from '../../../components/property-info/property-info.component';\nimport { PropertyMediaComponent } from '../../../components/property-media/property-media.component';\nimport { PropertySectionComponent } from '../../../components/property-section/property-section.component';\nimport { AuthService, AuthUserService } from '@rolatech/angular-auth';\nimport { CommentsComponent } from '@rolatech/angular-comment';\nimport { PropertyLocationComponent } from '../../../components/property-location/property-location.component';\nimport { PropertyFeaturesComponent } from '../../../components/property-features/property-features.component';\nimport { PropertyVideoComponent } from '../../../components/property-video/property-video.component';\nimport { PropertyActionContactComponent } from '../../../components/property-action-contact/property-action-contact.component';\nimport { PropertyAgentRenderer } from '../../../components/property-agent-renderer/property-agent-renderer';\nimport { PropertyHighlights } from \"../../../components/property-highlights/property-highlights\";\nimport { PropertyEpc } from \"../../../components/property-epc/property-epc\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/divider\";\nexport class PropertyDetailsComponent extends BaseComponent {\n authService = inject(AuthService);\n authUserService = inject(AuthUserService);\n propertyService = inject(PropertyService);\n timezoneService = inject(TimeZoneService);\n authenticated = this.authService.authenticated;\n property;\n fullname = '';\n username = '';\n user;\n inWishList = false;\n purchased = false;\n selectedOption;\n variants = [];\n features = [];\n highlights = [];\n epc;\n timezone = signal('', ...(ngDevMode ? [{ debugName: \"timezone\" }] : []));\n selectedVariant;\n variantOption = signal(undefined, ...(ngDevMode ? [{ debugName: \"variantOption\" }] : []));\n variantOptionChanged = computed(() => {\n return this.variantOption();\n }, ...(ngDevMode ? [{ debugName: \"variantOptionChanged\" }] : []));\n get videos() {\n if (!this.property.videos)\n return [];\n if (this.timezone() === 'Asia/Shanghai') {\n return this.property.videos.filter(v => v.provider === PropertyVideoProvider.COS);\n }\n else {\n return this.property.videos.filter(v => v.provider === PropertyVideoProvider.YOUTUBE);\n }\n }\n // results: any[] = [];\n constructor() {\n super();\n effect(() => {\n if (this.authenticated()) {\n this.wishListCheck();\n }\n });\n }\n ngOnInit() {\n this.getProperty();\n this.findFeatures();\n this.findHighlights();\n this.getEpc();\n // this.timezoneService.getTimeZoneFromApi().subscribe({\n // next: res => {\n // this.timezone.set(res)\n // }\n // })\n const timezone = this.timezoneService.getBrowserTimeZone() ?? '';\n this.timezone.set(timezone);\n }\n getProperty() {\n this.propertyService.get(this.id).subscribe({\n next: (res) => {\n this.property = res.data;\n const firstPart = this.property.description.split('<br/>')[0].trim();\n const arr = firstPart.split('|').map(s => s.trim());\n if (this.property.variants) {\n this.variants = this.property.variants;\n this.selectedVariant = this.variants[0];\n // this.selectedVariant.options.forEach((item) => {\n // this.results.push([item.option.id, item.value.id]);\n // });\n }\n if (this.property.agentId) {\n this.findUserBaseInfo(this.property.agentId);\n }\n this.titleService.setTitle(`${this.property.title}`);\n },\n });\n }\n findVariant(optionId, valueId) {\n return this.variants.find((item) => {\n const exist = item.options.some((i) => i.option.id === optionId && i.value.id === valueId);\n if (exist) {\n return item;\n }\n return null;\n });\n }\n findUserBaseInfo(userId) {\n this.authUserService.getPublicUserInfo(userId).subscribe({\n next: (res) => {\n this.fullname = res.name;\n this.username = res.username;\n this.user = res;\n },\n });\n }\n findFeatures() {\n this.propertyService.findFeatures(this.id).subscribe({\n next: (res) => {\n this.features = res.data || [];\n }\n });\n }\n findHighlights() {\n this.propertyService.getHighlights(this.id).subscribe({\n next: (res) => {\n this.highlights = res.data || [];\n }\n });\n }\n getEpc() {\n this.propertyService.getEpc(this.id).subscribe({\n next: (res) => {\n this.epc = res.data;\n }\n });\n }\n wishListCheck() {\n this.propertyService.wishListCheck(this.id).subscribe({\n next: (res) => {\n this.inWishList = res.data;\n },\n });\n }\n onWish(e) {\n if (this.authenticated()) {\n if (this.inWishList) {\n this.removeFromWishlist();\n }\n else {\n this.addToWishlist();\n }\n }\n else {\n this.snackBarService.open('Please sign in');\n }\n }\n onRequestViewing(e) {\n this.router.navigate([`/properties/${this.id}/viewing/application`]);\n }\n removeFromWishlist() {\n this.propertyService.removeFromWishlist(this.id).subscribe({\n next: (res) => {\n this.inWishList = false;\n this.snackBarService.open('Removed');\n },\n });\n }\n addToWishlist() {\n this.propertyService.addToWishlist(this.id).subscribe({\n next: (res) => {\n this.inWishList = true;\n this.snackBarService.open('Added');\n },\n });\n }\n onOffer(e) {\n if (this.authenticated()) {\n this.router.navigate([`/properties/${this.id}/offer`]);\n }\n else {\n this.snackBarService.open('Please sign in');\n }\n }\n onOptionChange(e) {\n const criteria = [];\n this.selectedVariant.options.map((item) => {\n criteria.push({\n optionId: item.option.id === e.option.id ? e.option.id : item.option.id,\n valueId: item.option.id === e.option.id ? e.value.id : item.value.id,\n });\n });\n // const criteria = [\n // { optionId: '249008855294545920', valueId: '249008855298740224' }, // color: red\n // { optionId: '248661715955355648', valueId: '249001130061860865' }, // size: 256GB\n // ];\n // Function to check if a variant matches all the criteria\n const matchesAllCriteria = (variant, criteria) => {\n return _.every(criteria, (criterion) => {\n return _.some(variant.options, (o) => o.option.id === criterion.optionId && o.value.id === criterion.valueId);\n });\n };\n // Function to update the criteria based on a matching variant\n const updateCriteriaFromVariant = (variant) => {\n return _.map(variant.options, (o) => ({\n optionId: o.option.id,\n valueId: o.value.id,\n }));\n };\n // Find the variant that matches all the criteria\n const matchingVariant = _.find(this.variants, (variant) => matchesAllCriteria(variant, criteria));\n this.selectedVariant = matchingVariant;\n // const updatedCriteria = matchingVariant ? updateCriteriaFromVariant(matchingVariant) : [];\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyDetailsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyDetailsComponent, isStandalone: true, selector: \"rolatech-property-details\", usesInheritance: true, ngImport: i0, template: \"@if (property) {\\n <rolatech-container>\\n <div class=\\\"flex flex-col w-full\\\">\\n <div class=\\\"py-3\\\">\\n <rolatech-property-media [media]=\\\"property.media\\\"></rolatech-property-media>\\n </div>\\n <div class=\\\"flex flex-col md:flex-row gap-3 w-full\\\">\\n <div class=\\\"w-full md:w-2/3\\\">\\n <rolatech-property-info [property]=\\\"property\\\" (wish)=\\\"onWish($event)\\\" [inWishList]=\\\"inWishList\\\">\\n </rolatech-property-info>\\n <!-- <rolatech-property-agent-renderer\\n [name]=\\\"fullname\\\"\\n [avatar]=\\\"user?.avatar\\\"\\n [username]=\\\"username\\\"\\n ></rolatech-property-agent-renderer> -->\\n <mat-divider></mat-divider>\\n\\n @if (features.length > 0) {\\n <rolatech-property-features [features]=\\\"features\\\"></rolatech-property-features>\\n }\\n @if (highlights.length > 0) {\\n <rolatech-property-highlights [highlights]=\\\"highlights\\\"></rolatech-property-highlights>\\n }\\n <!-- <rolatech-property-epc [epc]=\\\"epc\\\"></rolatech-property-epc> -->\\n <rolatech-property-location [location]=\\\"property.location\\\"></rolatech-property-location>\\n @if (videos && videos.length > 0) {\\n @for (item of videos; track $index) {\\n <rolatech-property-video [video]=\\\"item\\\"></rolatech-property-video>\\n }\\n }\\n @if (epc && epc.currentScore) {\\n <rolatech-property-epc [epc]=\\\"epc\\\"></rolatech-property-epc>\\n }\\n <div class=\\\"flex flex-col\\\">\\n <div class=\\\"text-2xl font-bold pt-3\\\" i18n>Sections</div>\\n @for (section of property.sections; track $index) {\\n <rolatech-property-section [section]=\\\"section\\\"></rolatech-property-section>\\n }\\n <rolatech-comments [itemId]=\\\"property.id\\\"></rolatech-comments>\\n </div>\\n </div>\\n <div class=\\\"w-full md:w-1/3\\\">\\n <rolatech-property-agent-renderer\\n [name]=\\\"fullname\\\"\\n [avatar]=\\\"user?.avatar\\\"\\n [username]=\\\"username\\\"\\n ></rolatech-property-agent-renderer>\\n <rolatech-property-pricing (wish)=\\\"onWish($event)\\\" [property]=\\\"property\\\"></rolatech-property-pricing>\\n <rolatech-property-actions\\n [property]=\\\"property\\\"\\n (offer)=\\\"onOffer($event)\\\"\\n (deposit)=\\\"onOffer($event)\\\"\\n (requestViewing)=\\\"onRequestViewing($event)\\\"\\n >\\n @if (user) {\\n <rolatech-property-action-contact [email]=\\\"user.email\\\" [phone]=\\\"user.phone\\\"></rolatech-property-action-contact>\\n }\\n </rolatech-property-actions>\\n </div>\\n </div>\\n </div>\\n </rolatech-container>\\n}\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: AngularCommonModule }, { kind: \"ngmodule\", type: AngularComponentsModule }, { kind: \"component\", type: i1.MatDivider, selector: \"mat-divider\", inputs: [\"vertical\", \"inset\"] }, { kind: \"component\", type: ContainerComponent, selector: \"rolatech-container\" }, { kind: \"component\", type: PropertyInfoComponent, selector: \"rolatech-property-info\", inputs: [\"property\", \"inWishList\"], outputs: [\"wish\"] }, { kind: \"component\", type: PropertyMediaComponent, selector: \"rolatech-property-media\", inputs: [\"media\", \"min\"] }, { kind: \"component\", type: PropertyPricingComponent, selector: \"rolatech-property-pricing\", inputs: [\"property\", \"price\"] }, { kind: \"component\", type: PropertySectionComponent, selector: \"rolatech-property-section\", inputs: [\"section\", \"user\", \"username\"] }, { kind: \"component\", type: PropertyActionsComponent, selector: \"rolatech-property-actions\", inputs: [\"property\"], outputs: [\"requestViewing\", \"offer\", \"deposit\"] }, { kind: \"component\", type: CommentsComponent, selector: \"rolatech-comments\", inputs: [\"itemId\"] }, { kind: \"component\", type: PropertyAgentRenderer, selector: \"rolatech-property-agent-renderer\", inputs: [\"name\", \"avatar\", \"username\", \"subtitle\"] }, { kind: \"component\", type: PropertyLocationComponent, selector: \"rolatech-property-location\", inputs: [\"location\"] }, { kind: \"component\", type: PropertyFeaturesComponent, selector: \"rolatech-property-features\", inputs: [\"features\"] }, { kind: \"component\", type: PropertyVideoComponent, selector: \"rolatech-property-video\", inputs: [\"video\"] }, { kind: \"component\", type: PropertyActionContactComponent, selector: \"rolatech-property-action-contact\", inputs: [\"email\", \"phone\"], outputs: [\"callAgent\", \"emailAgent\"] }, { kind: \"component\", type: PropertyHighlights, selector: \"rolatech-property-highlights\", inputs: [\"highlights\"] }, { kind: \"component\", type: PropertyEpc, selector: \"rolatech-property-epc\", inputs: [\"epc\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyDetailsComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-details', imports: [\n AngularCommonModule,\n AngularComponentsModule,\n ContainerComponent,\n PropertyInfoComponent,\n PropertyMediaComponent,\n PropertyPricingComponent,\n PropertySectionComponent,\n PropertyActionsComponent,\n CommentsComponent,\n PropertyAgentRenderer,\n PropertyLocationComponent,\n PropertyFeaturesComponent,\n PropertyVideoComponent,\n PropertyActionContactComponent,\n PropertyHighlights,\n PropertyEpc,\n ], template: \"@if (property) {\\n <rolatech-container>\\n <div class=\\\"flex flex-col w-full\\\">\\n <div class=\\\"py-3\\\">\\n <rolatech-property-media [media]=\\\"property.media\\\"></rolatech-property-media>\\n </div>\\n <div class=\\\"flex flex-col md:flex-row gap-3 w-full\\\">\\n <div class=\\\"w-full md:w-2/3\\\">\\n <rolatech-property-info [property]=\\\"property\\\" (wish)=\\\"onWish($event)\\\" [inWishList]=\\\"inWishList\\\">\\n </rolatech-property-info>\\n <!-- <rolatech-property-agent-renderer\\n [name]=\\\"fullname\\\"\\n [avatar]=\\\"user?.avatar\\\"\\n [username]=\\\"username\\\"\\n ></rolatech-property-agent-renderer> -->\\n <mat-divider></mat-divider>\\n\\n @if (features.length > 0) {\\n <rolatech-property-features [features]=\\\"features\\\"></rolatech-property-features>\\n }\\n @if (highlights.length > 0) {\\n <rolatech-property-highlights [highlights]=\\\"highlights\\\"></rolatech-property-highlights>\\n }\\n <!-- <rolatech-property-epc [epc]=\\\"epc\\\"></rolatech-property-epc> -->\\n <rolatech-property-location [location]=\\\"property.location\\\"></rolatech-property-location>\\n @if (videos && videos.length > 0) {\\n @for (item of videos; track $index) {\\n <rolatech-property-video [video]=\\\"item\\\"></rolatech-property-video>\\n }\\n }\\n @if (epc && epc.currentScore) {\\n <rolatech-property-epc [epc]=\\\"epc\\\"></rolatech-property-epc>\\n }\\n <div class=\\\"flex flex-col\\\">\\n <div class=\\\"text-2xl font-bold pt-3\\\" i18n>Sections</div>\\n @for (section of property.sections; track $index) {\\n <rolatech-property-section [section]=\\\"section\\\"></rolatech-property-section>\\n }\\n <rolatech-comments [itemId]=\\\"property.id\\\"></rolatech-comments>\\n </div>\\n </div>\\n <div class=\\\"w-full md:w-1/3\\\">\\n <rolatech-property-agent-renderer\\n [name]=\\\"fullname\\\"\\n [avatar]=\\\"user?.avatar\\\"\\n [username]=\\\"username\\\"\\n ></rolatech-property-agent-renderer>\\n <rolatech-property-pricing (wish)=\\\"onWish($event)\\\" [property]=\\\"property\\\"></rolatech-property-pricing>\\n <rolatech-property-actions\\n [property]=\\\"property\\\"\\n (offer)=\\\"onOffer($event)\\\"\\n (deposit)=\\\"onOffer($event)\\\"\\n (requestViewing)=\\\"onRequestViewing($event)\\\"\\n >\\n @if (user) {\\n <rolatech-property-action-contact [email]=\\\"user.email\\\" [phone]=\\\"user.phone\\\"></rolatech-property-action-contact>\\n }\\n </rolatech-property-actions>\\n </div>\\n </div>\\n </div>\\n </rolatech-container>\\n}\\n\" }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZGV0YWlscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHkvcHJvcGVydHktZGV0YWlscy9wcm9wZXJ0eS1kZXRhaWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS9wcm9wZXJ0eS1kZXRhaWxzL3Byb3BlcnR5LWRldGFpbHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzFHLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUUsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sRUFBbUYscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3SSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUNyRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUMzRyxPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxN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QXlCO3dCQUN6QixzQkFBc0I7d0JBQ3RCLDhCQUE4Qjt3QkFDOUIsa0JBQWtCO3dCQUNsQixXQUFXO3FCQUNaIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QsIE9uSW5pdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbmd1bGFyQ29tcG9uZW50c01vZHVsZSwgQmFzZUNvbXBvbmVudCwgQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBQcm9wZXJ0eVNlcnZpY2UsIFRpbWVab25lU2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLXNlcnZpY2VzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBQcm9wZXJ0eSwgUHJvcGVydHlPcHRpb24sIFByb3BlcnR5VmFyaWFudCwgUHJvcGVydHlWYXJpYW50T3B0aW9uLCBQcm9wZXJ0eVZpZGVvLCBQcm9wZXJ0eVZpZGVvUHJvdmlkZXIgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEFuZ3VsYXJDb21tb25Nb2R1bGUgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21tb24nO1xuaW1wb3J0IHsgUHJvcGVydHlQcmljaW5nQ29tcG9uZW50LCBQcm9wZXJ0eUFjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzJztcbmltcG9ydCB7IFByb3BlcnR5SW5mb0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvcHJvcGVydHktaW5mby9wcm9wZXJ0eS1pbmZvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9wZXJ0eU1lZGlhQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9wcm9wZXJ0eS1tZWRpYS9wcm9wZXJ0eS1tZWRpYS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvcGVydHlTZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9wcm9wZXJ0eS1zZWN0aW9uL3Byb3BlcnR5LXNlY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlLCBBdXRoVXNlclNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1hdXRoJztcbmltcG9ydCB7IENvbW1lbnRzQ29tcG9uZW50IH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbWVudCc7XG5pbXBvcnQgeyBQcm9wZXJ0eUxvY2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9wcm9wZXJ0eS1sb2NhdGlvbi9wcm9wZXJ0eS1sb2NhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvcGVydHlGZWF0dXJlc0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvcHJvcGVydHktZmVhdHVyZXMvcHJvcGVydHktZmVhdHVyZXMuY29tcG9uZW50JztcbmltcG9ydCB7IFByb3BlcnR5VmlkZW9Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL3Byb3BlcnR5LXZpZGVvL3Byb3BlcnR5LXZpZGVvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9wZXJ0eUFjdGlvbkNvbnRhY3RDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL3Byb3BlcnR5LWFjdGlvbi1jb250YWN0L3Byb3BlcnR5LWFjdGlvbi1jb250YWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9wZXJ0eUFnZW50UmVuZGVyZXIgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL3Byb3BlcnR5LWFnZW50LXJlbmRlcmVyL3Byb3BlcnR5LWFnZW50LXJlbmRlcmVyJztcbmltcG9ydCB7IFByb3BlcnR5SGlnaGxpZ2h0cyB9IGZyb20gXCIuLi8uLi8uLi9jb21wb25lbnRzL3Byb3BlcnR5LWhpZ2hsaWdodHMvcHJvcGVydHktaGlnaGxpZ2h0c1wiO1xuaW1wb3J0IHsgUHJvcGVydHlFcGMgfSBmcm9tIFwiLi4vLi4vLi4vY29tcG9uZW50cy9wcm9wZXJ0eS1lcGMvcHJvcGVydHktZXBjXCI7XG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb3BlcnR5LWRldGFpbHMnLFxuICBpbXBvcnRzOiBbXG4gICAgQW5ndWxhckNvbW1vbk1vZHVsZSxcbiAgICBBbmd1bGFyQ29tcG9uZW50c01vZHVsZSxcbiAgICBDb250YWluZXJDb21wb25lbnQsXG4gICAgUHJvcGVydHlJbmZvQ29tcG9uZW50LFxuICAgIFByb3BlcnR5TWVkaWFDb21wb25lbnQsXG4gICAgUHJvcGVydHlQcmljaW5nQ29tcG9uZW50LFxuICAgIFByb3BlcnR5U2VjdGlvbkNvbXBvbmVudCxcbiAgICBQcm9wZXJ0eUFjdGlvbnNDb21wb25lbnQsXG4gICAgQ29tbWVudHNDb21wb25lbnQsXG4gICAgUHJvcGVydHlBZ2VudFJlbmRlcmVyLFxuICAgIFByb3BlcnR5TG9jYXRpb25Db21wb25lbnQsXG4gICAgUHJvcGVydHlGZWF0dXJlc0NvbXBvbmVudCxcbiAgICBQcm9wZXJ0eVZpZGVvQ29tcG9uZW50LFxuICAgIFByb3BlcnR5QWN0aW9uQ29udGFjdENvbXBvbmVudCxcbiAgICBQcm9wZXJ0eUhpZ2hsaWdodHMsXG4gICAgUHJvcGVydHlFcGMsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1kZXRhaWxzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb3BlcnR5LWRldGFpbHMuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eURldGFpbHNDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgYXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xuICBhdXRoVXNlclNlcnZpY2UgPSBpbmplY3QoQXV0aFVzZXJTZXJ2aWNlKTtcbiAgcHJvcGVydHlTZXJ2aWNlID0gaW5qZWN0KFByb3BlcnR5U2VydmljZSk7XG4gIHRpbWV6b25lU2VydmljZSA9IGluamVjdChUaW1lWm9uZVNlcnZpY2UpXG4gIGF1dGhlbnRpY2F0ZWQgPSB0aGlzLmF1dGhTZXJ2aWNlLmF1dGhlbnRpY2F0ZWQ7XG4gIHByb3BlcnR5ITogUHJvcGVydHk7XG4gIGZ1bGxuYW1lID0gJyc7XG4gIHVzZXJuYW1lID0gJyc7XG4gIHVzZXI6IGFueTtcbiAgaW5XaXNoTGlzdCA9IGZhbHNlO1xuICBwdXJjaGFzZWQgPSBmYWxzZTtcbiAgc2VsZWN0ZWRPcHRpb24hOiBQcm9wZXJ0eU9wdGlvbjtcbiAgdmFyaWFudHM6IFByb3BlcnR5VmFyaWFudFtdID0gW107XG4gIGZlYXR1cmVzOiBhbnlbXSA9IFtdXG4gIGhpZ2hsaWdodHM6IGFueVtdID0gW11cbiAgZXBjOiBhbnk7XG4gIHRpbWV6b25lID0gc2lnbmFsPHN0cmluZz4oJycpXG4gIHNlbGVjdGVkVmFyaWFudCE6IFByb3BlcnR5VmFyaWFudDtcbiAgdmFyaWFudE9wdGlvbiA9IHNpZ25hbDxQcm9wZXJ0eVZhcmlhbnRPcHRpb24gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHZhcmlhbnRPcHRpb25DaGFuZ2VkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnZhcmlhbnRPcHRpb24oKTtcbiAgfSk7XG4gIGdldCB2aWRlb3MoKTogUHJvcGVydHlWaWRlb1tdIHtcbiAgICBpZiAoIXRoaXMucHJvcGVydHkudmlkZW9zKSByZXR1cm4gW107XG4gICAgaWYgKHRoaXMudGltZXpvbmUoKSA9PT0gJ0FzaWEvU2hhbmdoYWknKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wZXJ0eS52aWRlb3MuZmlsdGVyKHYgPT4gdi5wcm92aWRlciA9PT0gUHJvcGVydHlWaWRlb1Byb3ZpZGVyLkNPUyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BlcnR5LnZpZGVvcy5maWx0ZXIodiA9PiB2LnByb3ZpZGVyID09PSBQcm9wZXJ0eVZpZGVvUHJvdmlkZXIuWU9VVFVCRSk7XG4gICAgfVxuICB9XG5cblxuICAvLyByZXN1bHRzOiBhbnlbXSA9IFtdO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5hdXRoZW50aWNhdGVkKCkpIHtcbiAgICAgICAgdGhpcy53aXNoTGlzdENoZWNrKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5nZXRQcm9wZXJ0eSgpO1xuICAgIHRoaXMuZmluZEZlYXR1cmVzKClcbiAgICB0aGlzLmZpbmRIaWdobGlnaHRzKClcbiAgICB0aGlzLmdldEVwYygpXG4gICAgLy8gdGhpcy50aW1lem9uZVNlcnZpY2UuZ2V0VGltZVpvbmVGcm9tQXBpKCkuc3Vic2NyaWJlKHtcbiAgICAvLyAgIG5leHQ6IHJlcyA9PiB7XG4gICAgLy8gICAgIHRoaXMudGltZXpvbmUuc2V0KHJlcylcbiAgICAvLyAgIH1cbiAgICAvLyB9KVxuICAgIGNvbnN0IHRpbWV6b25lID0gdGhpcy50aW1lem9uZVNlcnZpY2UuZ2V0QnJvd3NlclRpbWVab25lKCkgPz8gJydcbiAgICB0aGlzLnRpbWV6b25lLnNldCh0aW1lem9uZSlcblxuXG5cbiAgfVxuICBnZXRQcm9wZXJ0eSgpIHtcbiAgICB0aGlzLnByb3BlcnR5U2VydmljZS5nZXQodGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnByb3BlcnR5ID0gcmVzLmRhdGE7XG4gICAgICAgIGNvbnN0IGZpcnN0UGFydCA9IHRoaXMucHJvcGVydHkuZGVzY3JpcHRpb24uc3BsaXQoJzxici8+JylbMF0udHJpbSgpO1xuICAgICAgICBjb25zdCBhcnIgPSBmaXJzdFBhcnQuc3BsaXQoJ3wnKS5tYXAocyA9PiBzLnRyaW0oKSk7XG4gICAgICAgIGlmICh0aGlzLnByb3BlcnR5LnZhcmlhbnRzKSB7XG4gICAgICAgICAgdGhpcy52YXJpYW50cyA9IHRoaXMucHJvcGVydHkudmFyaWFudHM7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFZhcmlhbnQgPSB0aGlzLnZhcmlhbnRzWzBdO1xuICAgICAgICAgIC8vIHRoaXMuc2VsZWN0ZWRWYXJpYW50Lm9wdGlvbnMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgIC8vICAgdGhpcy5yZXN1bHRzLnB1c2goW2l0ZW0ub3B0aW9uLmlkLCBpdGVtLnZhbHVlLmlkXSk7XG4gICAgICAgICAgLy8gfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucHJvcGVydHkuYWdlbnRJZCkge1xuICAgICAgICAgIHRoaXMuZmluZFVzZXJCYXNlSW5mbyh0aGlzLnByb3BlcnR5LmFnZW50SWQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldFRpdGxlKGAke3RoaXMucHJvcGVydHkudGl0bGV9YCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kVmFyaWFudChvcHRpb25JZDogc3RyaW5nLCB2YWx1ZUlkOiBzdHJpbmcpOiBQcm9wZXJ0eVZhcmlhbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnZhcmlhbnRzLmZpbmQoKGl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IGV4aXN0ID0gaXRlbS5vcHRpb25zLnNvbWUoKGk6IFByb3BlcnR5VmFyaWFudE9wdGlvbikgPT4gaS5vcHRpb24uaWQgPT09IG9wdGlvbklkICYmIGkudmFsdWUuaWQgPT09IHZhbHVlSWQpO1xuICAgICAgaWYgKGV4aXN0KSB7XG4gICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSk7XG4gIH1cbiAgZmluZFVzZXJCYXNlSW5mbyh1c2VySWQ6IHN0cmluZykge1xuICAgIHRoaXMuYXV0aFVzZXJTZXJ2aWNlLmdldFB1YmxpY1VzZXJJbmZvKHVzZXJJZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5mdWxsbmFtZSA9IHJlcy5uYW1lO1xuICAgICAgICB0aGlzLnVzZXJuYW1lID0gcmVzLnVzZXJuYW1lO1xuICAgICAgICB0aGlzLnVzZXIgPSByZXM7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGZpbmRGZWF0dXJlcygpIHtcbiAgICB0aGlzLnByb3BlcnR5U2VydmljZS5maW5kRmVhdHVyZXModGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmZlYXR1cmVzID0gcmVzLmRhdGEgfHwgW107XG4gICAgICB9XG4gICAgfSlcbiAgfVxuICBmaW5kSGlnaGxpZ2h0cygpIHtcbiAgICB0aGlzLnByb3BlcnR5U2VydmljZS5nZXRIaWdobGlnaHRzKHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5oaWdobGlnaHRzID0gcmVzLmRhdGEgfHwgW107XG4gICAgICB9XG4gICAgfSlcbiAgfVxuICBnZXRFcGMoKSB7XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZ2V0RXBjKHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5lcGMgPSByZXMuZGF0YTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG4gIHByaXZhdGUgd2lzaExpc3RDaGVjaygpIHtcbiAgICB0aGlzLnByb3BlcnR5U2VydmljZS53aXNoTGlzdENoZWNrKHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5pbldpc2hMaXN0ID0gcmVzLmRhdGE7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIG9uV2lzaChlOiBhbnkpIHtcbiAgICBpZiAodGhpcy5hdXRoZW50aWNhdGVkKCkpIHtcbiAgICAgIGlmICh0aGlzLmluV2lzaExpc3QpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVGcm9tV2lzaGxpc3QoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYWRkVG9XaXNobGlzdCgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKCdQbGVhc2Ugc2lnbiBpbicpO1xuICAgIH1cbiAgfVxuICBvblJlcXVlc3RWaWV3aW5nKGU6IGFueSkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgL3Byb3BlcnRpZXMvJHt0aGlzLmlkfS92aWV3aW5nL2FwcGxpY2F0aW9uYF0pO1xuICB9XG4gIHByaXZhdGUgcmVtb3ZlRnJvbVdpc2hsaXN0KCkge1xuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLnJlbW92ZUZyb21XaXNobGlzdCh0aGlzLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmluV2lzaExpc3QgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbignUmVtb3ZlZCcpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIGFkZFRvV2lzaGxpc3QoKSB7XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuYWRkVG9XaXNobGlzdCh0aGlzLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmluV2lzaExpc3QgPSB0cnVlO1xuICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKCdBZGRlZCcpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBvbk9mZmVyKGU6IGFueSkge1xuICAgIGlmICh0aGlzLmF1dGhlbnRpY2F0ZWQoKSkge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AvcHJvcGVydGllcy8ke3RoaXMuaWR9L29mZmVyYF0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKCdQbGVhc2Ugc2lnbiBpbicpO1xuICAgIH1cbiAgfVxuXG4gIG9uT3B0aW9uQ2hhbmdlKGUpIHtcbiAgICBjb25zdCBjcml0ZXJpYTogYW55ID0gW107XG4gICAgdGhpcy5zZWxlY3RlZFZhcmlhbnQub3B0aW9ucy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgIGNyaXRlcmlhLnB1c2goe1xuICAgICAgICBvcHRpb25JZDogaXRlbS5vcHRpb24uaWQgPT09IGUub3B0aW9uLmlkID8gZS5vcHRpb24uaWQgOiBpdGVtLm9wdGlvbi5pZCxcbiAgICAgICAgdmFsdWVJZDogaXRlbS5vcHRpb24uaWQgPT09IGUub3B0aW9uLmlkID8gZS52YWx1ZS5pZCA6IGl0ZW0udmFsdWUuaWQsXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIC8vIGNvbnN0IGNyaXRlcmlhID0gW1xuICAgIC8vICAgeyBvcHRpb25JZDogJzI0OTAwODg1NTI5NDU0NTkyMCcsIHZhbHVlSWQ6ICcyNDkwMDg4NTUyOTg3NDAyMjQnIH0sIC8vIGNvbG9yOiByZWRcbiAgICAvLyAgIHsgb3B0aW9uSWQ6ICcyNDg2NjE3MTU5NTUzNTU2NDgnLCB2YWx1ZUlkOiAnMjQ5MDAxMTMwMDYxODYwODY1JyB9LCAvLyBzaXplOiAyNTZHQlxuICAgIC8vIF07XG5cbiAgICAvLyBGdW5jdGlvbiB0byBjaGVjayBpZiBhIHZhcmlhbnQgbWF0Y2hlcyBhbGwgdGhlIGNyaXRlcmlhXG4gICAgY29uc3QgbWF0Y2hlc0FsbENyaXRlcmlhID0gKHZhcmlhbnQsIGNyaXRlcmlhKSA9PiB7XG4gICAgICByZXR1cm4gXy5ldmVyeShjcml0ZXJpYSwgKGNyaXRlcmlvbikgPT4ge1xuICAgICAgICByZXR1cm4gXy5zb21lKHZhcmlhbnQub3B0aW9ucywgKG8pID0+IG8ub3B0aW9uLmlkID09PSBjcml0ZXJpb24ub3B0aW9uSWQgJiYgby52YWx1ZS5pZCA9PT0gY3JpdGVyaW9uLnZhbHVlSWQpO1xuICAgICAgfSk7XG4gICAgfTtcbiAgICAvLyBGdW5jdGlvbiB0byB1cGRhdGUgdGhlIGNyaXRlcmlhIGJhc2VkIG9uIGEgbWF0Y2hpbmcgdmFyaWFudFxuICAgIGNvbnN0IHVwZGF0ZUNyaXRlcmlhRnJvbVZhcmlhbnQgPSAodmFyaWFudCkgPT4ge1xuICAgICAgcmV0dXJuIF8ubWFwKHZhcmlhbnQub3B0aW9ucywgKG8pID0+ICh7XG4gICAgICAgIG9wdGlvbklkOiBvLm9wdGlvbi5pZCxcbiAgICAgICAgdmFsdWVJZDogby52YWx1ZS5pZCxcbiAgICAgIH0pKTtcbiAgICB9O1xuXG4gICAgLy8gRmluZCB0aGUgdmFyaWFudCB0aGF0IG1hdGNoZXMgYWxsIHRoZSBjcml0ZXJpYVxuICAgIGNvbnN0IG1hdGNoaW5nVmFyaWFudCA9IF8uZmluZCh0aGlzLnZhcmlhbnRzLCAodmFyaWFudCkgPT4gbWF0Y2hlc0FsbENyaXRlcmlhKHZhcmlhbnQsIGNyaXRlcmlhKSk7XG4gICAgdGhpcy5zZWxlY3RlZFZhcmlhbnQgPSBtYXRjaGluZ1ZhcmlhbnQhO1xuICAgIC8vIGNvbnN0IHVwZGF0ZWRDcml0ZXJpYSA9IG1hdGNoaW5nVmFyaWFudCA/IHVwZGF0ZUNyaXRlcmlhRnJvbVZhcmlhbnQobWF0Y2hpbmdWYXJpYW50KSA6IFtdO1xuICB9XG59XG4iLCJAaWYgKHByb3BlcnR5KSB7XG4gIDxyb2xhdGVjaC1jb250YWluZXI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgdy1mdWxsXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicHktM1wiPlxuICAgICAgICA8cm9sYXRlY2gtcHJvcGVydHktbWVkaWEgW21lZGlhXT1cInByb3BlcnR5Lm1lZGlhXCI+PC9yb2xhdGVjaC1wcm9wZXJ0eS1tZWRpYT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbWQ6ZmxleC1yb3cgZ2FwLTMgdy1mdWxsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgbWQ6dy0yLzNcIj5cbiAgICAgICAgICA8cm9sYXRlY2gtcHJvcGVydHktaW5mbyBbcHJvcGVydHldPVwicHJvcGVydHlcIiAod2lzaCk9XCJvbldpc2goJGV2ZW50KVwiIFtpbldpc2hMaXN0XT1cImluV2lzaExpc3RcIj5cbiAgICAgICAgICA8L3JvbGF0ZWNoLXByb3BlcnR5LWluZm8+XG4gICAgICAgICAgPCEtLSA8cm9sYXRlY2gtcHJvcGVydHktYWdlbnQtcmVuZGVyZXJcbiAgICAgICAgICAgIFtuYW1lXT1cImZ1bGxuYW1lXCJcbiAgICAgICAgICAgIFthdmF0YXJdPVwidXNlcj8uYXZhdGFyXCJcbiAgICAgICAgICAgIFt1c2VybmFtZV09XCJ1c2VybmFtZVwiXG4gICAgICAgICAgPjwvcm9sYXRlY2gtcHJvcGVydHktYWdlbnQtcmVuZGVyZXI+IC0tPlxuICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuXG4gICAgICAgICAgQGlmIChmZWF0dXJlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICA8cm9sYXRlY2gtcHJvcGVydHktZmVhdHVyZXMgW2ZlYXR1cmVzXT1cImZlYXR1cmVzXCI+PC9yb2xhdGVjaC1wcm9wZXJ0eS1mZWF0dXJlcz5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIChoaWdobGlnaHRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIDxyb2xhdGVjaC1wcm9wZXJ0eS1oaWdobGlnaHRzIFtoaWdobGlnaHRzXT1cImhpZ2hsaWdodHNcIj48L3JvbGF0ZWNoLXByb3BlcnR5LWhpZ2hsaWdodHM+XG4gICAgICAgICAgfVxuICAgICAgICAgIDwhLS0gPHJvbGF0ZWNoLXByb3BlcnR5LWVwYyBbZXBjXT1cImVwY1wiPjwvcm9sYXRlY2gtcHJvcGVydHktZXBjPiAtLT5cbiAgICAgICAgICA8cm9sYXRlY2gtcHJvcGVydHktbG9jYXRpb24gW2xvY2F0aW9uXT1cInByb3BlcnR5LmxvY2F0aW9uXCI+PC9yb2xhdGVjaC1wcm9wZXJ0eS1sb2NhdGlvbj5cbiAgICAgICAgICBAaWYgKHZpZGVvcyAmJiB2aWRlb3MubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgQGZvciAoaXRlbSBvZiB2aWRlb3M7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICA8cm9sYXRlY2gtcHJvcGVydHktdmlkZW8gW3ZpZGVvXT1cIml0ZW1cIj48L3JvbGF0ZWNoLXByb3BlcnR5LXZpZGVvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKGVwYyAmJiBlcGMuY3VycmVudFNjb3JlKSB7XG4gICAgICAgICAgICA8cm9sYXRlY2gtcHJvcGVydHktZXBjIFtlcGNdPVwiZXBjXCI+PC9yb2xhdGVjaC1wcm9wZXJ0eS1lcGM+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC0yeGwgZm9udC1ib2xkIHB0LTNcIiBpMThuPlNlY3Rpb25zPC9kaXY+XG4gICAgICAgICAgICBAZm9yIChzZWN0aW9uIG9mIHByb3BlcnR5LnNlY3Rpb25zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgPHJvbGF0ZWNoLXByb3BlcnR5LXNlY3Rpb24gW3NlY3Rpb25dPVwic2VjdGlvblwiPjwvcm9sYXRlY2gtcHJvcGVydHktc2VjdGlvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxyb2xhdGVjaC1jb21tZW50cyBbaXRlbUlkXT1cInByb3BlcnR5LmlkXCI+PC9yb2xhdGVjaC1jb21tZW50cz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgbWQ6dy0xLzNcIj5cbiAgICAgICAgICA8cm9sYXRlY2gtcHJvcGVydHktYWdlbnQtcmVuZGVyZXJcbiAgICAgICAgICAgIFtuYW1lXT1cImZ1bGxuYW1lXCJcbiAgICAgICAgICAgIFthdmF0YXJdPVwidXNlcj8uYXZhdGFyXCJcbiAgICAgICAgICAgIFt1c2VybmFtZV09XCJ1c2VybmFtZVwiXG4gICAgICAgICAgPjwvcm9sYXRlY2gtcHJvcGVydHktYWdlbnQtcmVuZGVyZXI+XG4gICAgICAgICAgPHJvbGF0ZWNoLXByb3BlcnR5LXByaWNpbmcgKHdpc2gpPVwib25XaXNoKCRldmVudClcIiBbcHJvcGVydHldPVwicHJvcGVydHlcIj48L3JvbGF0ZWNoLXByb3BlcnR5LXByaWNpbmc+XG4gICAgICAgICAgPHJvbGF0ZWNoLXByb3BlcnR5LWFjdGlvbnNcbiAgICAgICAgICAgIFtwcm9wZXJ0eV09XCJwcm9wZXJ0eVwiXG4gICAgICAgICAgICAob2ZmZXIpPVwib25PZmZlcigkZXZlbnQpXCJcbiAgICAgICAgICAgIChkZXBvc2l0KT1cIm9uT2ZmZXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAocmVxdWVzdFZpZXdpbmcpPVwib25SZXF1ZXN0Vmlld2luZygkZXZlbnQpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKHVzZXIpIHtcbiAgICAgICAgICAgICAgPHJvbGF0ZWNoLXByb3BlcnR5LWFjdGlvbi1jb250YWN0IFtlbWFpbF09XCJ1c2VyLmVtYWlsXCIgW3Bob25lXT1cInVzZXIucGhvbmVcIj48L3JvbGF0ZWNoLXByb3BlcnR5LWFjdGlvbi1jb250YWN0PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvcm9sYXRlY2gtcHJvcGVydHktYWN0aW9ucz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9yb2xhdGVjaC1jb250YWluZXI+XG59XG4iXX0=","import { Component, input, output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatInputModule } from '@angular/material/input';\nimport { ViewingTime } from '../../interfaces';\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE, MatOptionModule } from '@angular/material/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatIconModule } from '@angular/material/icon';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/form-field\";\nimport * as i2 from \"@angular/material/input\";\nimport * as i3 from \"@angular/forms\";\nimport * as i4 from \"@angular/material/datepicker\";\nimport * as i5 from \"@angular/material/select\";\nimport * as i6 from \"@angular/material/icon\";\nexport const MY_FORMATS = {\n parse: {\n dateInput: 'YYYY-MM-DD',\n },\n display: {\n dateInput: 'YYYY-MM-DD',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'YYYY-MM-DD',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n};\nexport class PropertyViewingTimeComponent {\n minDate = new Date();\n maxDate = new Date();\n output = output();\n select = output();\n proposedTime = input({\n date: '',\n time: '',\n }, ...(ngDevMode ? [{ debugName: \"proposedTime\" }] : []));\n time = ViewingTime;\n ngOnInit() {\n this.minDate.setDate(this.minDate.getDate() + 1);\n this.maxDate.setDate(this.maxDate.getDate() + 4);\n }\n ngDoCheck() {\n this.output.emit(this.proposedTime());\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyViewingTimeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyViewingTimeComponent, isStandalone: true, selector: \"rolatech-property-viewing-time\", inputs: { proposedTime: { classPropertyName: \"proposedTime\", publicName: \"proposedTime\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { output: \"output\", select: \"select\" }, providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE],\n },\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },\n ], ngImport: i0, template: \"<div class=\\\"flex flex-col md:flex-row gap-2\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Viewing Date</mat-label>\\n <input\\n matInput\\n placeholder=\\\"Viewing date\\\"\\n [matDatepicker]=\\\"startDatePicker\\\"\\n [min]=\\\"minDate\\\"\\n [max]=\\\"maxDate\\\"\\n (focus)=\\\"startDatePicker.open()\\\"\\n name=\\\"viewingDate\\\"\\n [(ngModel)]=\\\"proposedTime()!.date\\\"\\n (dateInput)=\\\"proposedTime()!.date = $event.value.format('YYYY-MM-DD')\\\"\\n required\\n readonly\\n />\\n <mat-datepicker-toggle matIconPrefix [for]=\\\"startDatePicker\\\"></mat-datepicker-toggle>\\n <mat-datepicker #startDatePicker></mat-datepicker>\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Viewing time</mat-label>\\n <mat-icon matIconPrefix>schedule</mat-icon>\\n <mat-select [(ngModel)]=\\\"proposedTime()!.time\\\" required readonly>\\n @for (d of time; track d) {\\n <mat-option [value]=\\\"d\\\">\\n {{ d }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n</div>\\n\", styles: [\"mat-form-field{width:100%}\\n\"], dependencies: [{ kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"component\", type: i1.MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: i1.MatLabel, selector: \"mat-label\" }, { kind: \"directive\", type: i1.MatPrefix, selector: \"[matPrefix], [matIconPrefix], [matTextPrefix]\", inputs: [\"matTextPrefix\"] }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"directive\", type: i2.MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\", \"disabledInteractive\"], exportAs: [\"matInput\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i3.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: i3.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i3.RequiredValidator, selector: \":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]\", inputs: [\"required\"] }, { kind: \"directive\", type: i3.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: MatDatepickerModule }, { kind: \"component\", type: i4.MatDatepicker, selector: \"mat-datepicker\", exportAs: [\"matDatepicker\"] }, { kind: \"directive\", type: i4.MatDatepickerInput, selector: \"input[matDatepicker]\", inputs: [\"matDatepicker\", \"min\", \"max\", \"matDatepickerFilter\"], exportAs: [\"matDatepickerInput\"] }, { kind: \"component\", type: i4.MatDatepickerToggle, selector: \"mat-datepicker-toggle\", inputs: [\"for\", \"tabIndex\", \"aria-label\", \"disabled\", \"disableRipple\"], exportAs: [\"matDatepickerToggle\"] }, { kind: \"ngmodule\", type: MatSelectModule }, { kind: \"component\", type: i5.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\", \"canSelectNullableOptions\"], outputs: [\"openedChange\", \"opened\", \"closed\", \"selectionChange\", \"valueChange\"], exportAs: [\"matSelect\"] }, { kind: \"component\", type: i5.MatOption, selector: \"mat-option\", inputs: [\"value\", \"id\", \"disabled\"], outputs: [\"onSelectionChange\"], exportAs: [\"matOption\"] }, { kind: \"ngmodule\", type: MatOptionModule }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i6.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"ngmodule\", type: MatButtonModule }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyViewingTimeComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-viewing-time', imports: [\n MatFormFieldModule,\n MatInputModule,\n FormsModule,\n MatDatepickerModule,\n MatSelectModule,\n MatOptionModule,\n MatIconModule,\n MatButtonModule,\n ], providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE],\n },\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },\n ], template: \"<div class=\\\"flex flex-col md:flex-row gap-2\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Viewing Date</mat-label>\\n <input\\n matInput\\n placeholder=\\\"Viewing date\\\"\\n [matDatepicker]=\\\"startDatePicker\\\"\\n [min]=\\\"minDate\\\"\\n [max]=\\\"maxDate\\\"\\n (focus)=\\\"startDatePicker.open()\\\"\\n name=\\\"viewingDate\\\"\\n [(ngModel)]=\\\"proposedTime()!.date\\\"\\n (dateInput)=\\\"proposedTime()!.date = $event.value.format('YYYY-MM-DD')\\\"\\n required\\n readonly\\n />\\n <mat-datepicker-toggle matIconPrefix [for]=\\\"startDatePicker\\\"></mat-datepicker-toggle>\\n <mat-datepicker #startDatePicker></mat-datepicker>\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Viewing time</mat-label>\\n <mat-icon matIconPrefix>schedule</mat-icon>\\n <mat-select [(ngModel)]=\\\"proposedTime()!.time\\\" required readonly>\\n @for (d of time; track d) {\\n <mat-option [value]=\\\"d\\\">\\n {{ d }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n</div>\\n\", styles: [\"mat-form-field{width:100%}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktdmlld2luZy10aW1lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9jb21wb25lbnRzL3Byb3BlcnR5LXZpZXdpbmctdGltZS9wcm9wZXJ0eS12aWV3aW5nLXRpbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktdmlld2luZy10aW1lL3Byb3BlcnR5LXZpZXdpbmctdGltZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFXLEtBQUssRUFBaUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBdUIsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekcsT0FBTyxFQUEyQixtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7O0FBQ3ZELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixLQUFLLEVBQUU7UUFDTCxTQUFTLEVBQUUsWUFBWTtLQUN4QjtJQUNELE9BQU8sRUFBRTtRQUNQLFNBQVMsRUFBRSxZQUFZO1FBQ3ZCLGNBQWMsRUFBRSxVQUFVO1FBQzFCLGFBQWEsRUFBRSxZQUFZO1FBQzNCLGtCQUFrQixFQUFFLFdBQVc7S0FDaEM7Q0FDRixDQUFDO0FBeUJGLE1BQU0sT0FBTyw0QkFBNEI7SUFDdkMsT0FBTyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDckIsT0FBTyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDckIsTUFBTSxHQUFHLE1BQU0sRUFBTyxDQUFDO0lBQ3ZCLE1BQU0sR0FBRyxNQUFNLEVBQU8sQ0FBQztJQUV2QixZQUFZLEdBQUcsS0FBSyxDQUFzQjtRQUN4QyxJQUFJLEVBQUUsRUFBRTtRQUNSLElBQUksRUFBRSxFQUFFO0tBQ1Qsd0RBQUMsQ0FBQztJQUNILElBQUksR0FBRyxXQUFXLENBQUM7SUFFbkIsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBQ0QsU0FBUztRQUNQLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7dUdBbEJVLDRCQUE0QjsyRkFBNUIsNEJBQTRCLHVSQVQ1QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxXQUFXO2dCQUNwQixRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQixJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUM7YUFDeEI7WUFDRCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFO1NBQ3BELDBCQzVDSCxvakNBK0JBLHFGRExJLGtCQUFrQiwyYUFDbEIsY0FBYyxpWUFDZCxXQUFXLDIwQkFDWCxtQkFBbUIsaWdCQUNuQixlQUFlLCtzQkFDZixlQUFlLDhCQUNmLGFBQWEsbUxBQ2IsZUFBZTs7MkZBYU4sNEJBQTRCO2tCQXZCeEMsU0FBUzsrQkFDRSxnQ0FBZ0MsV0FDakM7d0JBQ1Asa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixlQUFlO3FCQUNoQixhQUdVO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxXQUFXOzRCQUNwQixRQUFRLEVBQUUsaUJBQWlCOzRCQUMzQixJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUM7eUJBQ3hCO3dCQUNELEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7cUJBQ3BEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBEb0NoZWNrLCBpbnB1dCwgbW9kZWwsIE9uSW5pdCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IFZpZXdpbmdQcm9wb3NlZFNsb3QsIFZpZXdpbmdUaW1lIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBNb21lbnREYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsLW1vbWVudC1hZGFwdGVyJztcbmltcG9ydCB7IERhdGVBZGFwdGVyLCBNQVRfREFURV9GT1JNQVRTLCBNQVRfREFURV9MT0NBTEUsIE1hdE9wdGlvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlcklucHV0RXZlbnQsIE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmV4cG9ydCBjb25zdCBNWV9GT1JNQVRTID0ge1xuICBwYXJzZToge1xuICAgIGRhdGVJbnB1dDogJ1lZWVktTU0tREQnLFxuICB9LFxuICBkaXNwbGF5OiB7XG4gICAgZGF0ZUlucHV0OiAnWVlZWS1NTS1ERCcsXG4gICAgbW9udGhZZWFyTGFiZWw6ICdNTU0gWVlZWScsXG4gICAgZGF0ZUExMXlMYWJlbDogJ1lZWVktTU0tREQnLFxuICAgIG1vbnRoWWVhckExMXlMYWJlbDogJ01NTU0gWVlZWScsXG4gIH0sXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1wcm9wZXJ0eS12aWV3aW5nLXRpbWUnLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgIE1hdE9wdGlvbk1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LXZpZXdpbmctdGltZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9wZXJ0eS12aWV3aW5nLXRpbWUuY29tcG9uZW50LnNjc3MnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBEYXRlQWRhcHRlcixcbiAgICAgIHVzZUNsYXNzOiBNb21lbnREYXRlQWRhcHRlcixcbiAgICAgIGRlcHM6IFtNQVRfREFURV9MT0NBTEVdLFxuICAgIH0sXG4gICAgeyBwcm92aWRlOiBNQVRfREFURV9GT1JNQVRTLCB1c2VWYWx1ZTogTVlfRk9STUFUUyB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eVZpZXdpbmdUaW1lQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBEb0NoZWNrIHtcbiAgbWluRGF0ZSA9IG5ldyBEYXRlKCk7XG4gIG1heERhdGUgPSBuZXcgRGF0ZSgpO1xuICBvdXRwdXQgPSBvdXRwdXQ8YW55PigpO1xuICBzZWxlY3QgPSBvdXRwdXQ8YW55PigpO1xuXG4gIHByb3Bvc2VkVGltZSA9IGlucHV0PFZpZXdpbmdQcm9wb3NlZFNsb3Q+KHtcbiAgICBkYXRlOiAnJyxcbiAgICB0aW1lOiAnJyxcbiAgfSk7XG4gIHRpbWUgPSBWaWV3aW5nVGltZTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm1pbkRhdGUuc2V0RGF0ZSh0aGlzLm1pbkRhdGUuZ2V0RGF0ZSgpICsgMSk7XG4gICAgdGhpcy5tYXhEYXRlLnNldERhdGUodGhpcy5tYXhEYXRlLmdldERhdGUoKSArIDQpO1xuICB9XG4gIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICB0aGlzLm91dHB1dC5lbWl0KHRoaXMucHJvcG9zZWRUaW1lKCkpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBtZDpmbGV4LXJvdyBnYXAtMlwiPlxuICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICA8bWF0LWxhYmVsIGkxOG4+Vmlld2luZyBEYXRlPC9tYXQtbGFiZWw+XG4gICAgPGlucHV0XG4gICAgICBtYXRJbnB1dFxuICAgICAgcGxhY2Vob2xkZXI9XCJWaWV3aW5nIGRhdGVcIlxuICAgICAgW21hdERhdGVwaWNrZXJdPVwic3RhcnREYXRlUGlja2VyXCJcbiAgICAgIFttaW5dPVwibWluRGF0ZVwiXG4gICAgICBbbWF4XT1cIm1heERhdGVcIlxuICAgICAgKGZvY3VzKT1cInN0YXJ0RGF0ZVBpY2tlci5vcGVuKClcIlxuICAgICAgbmFtZT1cInZpZXdpbmdEYXRlXCJcbiAgICAgIFsobmdNb2RlbCldPVwicHJvcG9zZWRUaW1lKCkhLmRhdGVcIlxuICAgICAgKGRhdGVJbnB1dCk9XCJwcm9wb3NlZFRpbWUoKSEuZGF0ZSA9ICRldmVudC52YWx1ZS5mb3JtYXQoJ1lZWVktTU0tREQnKVwiXG4gICAgICByZXF1aXJlZFxuICAgICAgcmVhZG9ubHlcbiAgICAvPlxuICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0SWNvblByZWZpeCBbZm9yXT1cInN0YXJ0RGF0ZVBpY2tlclwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxuICAgIDxtYXQtZGF0ZXBpY2tlciAjc3RhcnREYXRlUGlja2VyPjwvbWF0LWRhdGVwaWNrZXI+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgIDxtYXQtbGFiZWwgaTE4bj5WaWV3aW5nIHRpbWU8L21hdC1sYWJlbD5cbiAgICA8bWF0LWljb24gbWF0SWNvblByZWZpeD5zY2hlZHVsZTwvbWF0LWljb24+XG4gICAgPG1hdC1zZWxlY3QgWyhuZ01vZGVsKV09XCJwcm9wb3NlZFRpbWUoKSEudGltZVwiIHJlcXVpcmVkIHJlYWRvbmx5PlxuICAgICAgQGZvciAoZCBvZiB0aW1lOyB0cmFjayBkKSB7XG4gICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJkXCI+XG4gICAgICAgICAge3sgZCB9fVxuICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICB9XG4gICAgPC9tYXQtc2VsZWN0PlxuICA8L21hdC1mb3JtLWZpZWxkPlxuPC9kaXY+XG4iXX0=","import { Component, computed, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BaseComponent, ContainerComponent, ThumbnailComponent } from '@rolatech/angular-components';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { FormsModule } from '@angular/forms';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatButtonModule } from '@angular/material/button';\nimport { AuthService, AuthUserService } from '@rolatech/angular-auth';\nimport { PropertyService } from '@rolatech/angular-services';\nimport { AdverseCreditStatus, PropertyApplicantType, EmploymentStatus, PropertyViewerCategory, ResidencyStatus, } from '../../../interfaces';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { PropertyViewingTimeComponent } from '../../../components/property-viewing-time/property-viewing-time.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/form-field\";\nimport * as i2 from \"@angular/forms\";\nimport * as i3 from \"@angular/material/input\";\nimport * as i4 from \"@angular/material/button\";\nimport * as i5 from \"@angular/material/select\";\nimport * as i6 from \"@angular/material/datepicker\";\nimport * as i7 from \"@angular/material/radio\";\nimport * as i8 from \"@angular/common\";\nexport const MY_FORMATS = {\n parse: {\n dateInput: 'YYYY-MM-DD',\n },\n display: {\n dateInput: 'YYYY-MM-DD',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'YYYY-MM-DD',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n};\nexport class PropertyViewingRequestComponent extends BaseComponent {\n authService = inject(AuthService);\n authUserService = inject(AuthUserService);\n propertyService = inject(PropertyService);\n property;\n minDate = new Date();\n viewing = {\n firstName: '',\n lastName: '',\n email: '',\n phone: '',\n viewerCategory: PropertyViewerCategory.TENANT,\n // tenantCategory: PropertyApplicantType.INDIVIDUAL,\n proposedSlots: [\n { date: '', time: '' },\n { date: '', time: '' },\n { date: '', time: '' },\n ],\n };\n selectedViewerCategory = 'TENANT';\n viewerCategory = PropertyViewerCategory;\n applicantTypes = PropertyApplicantType;\n residencyStatus = ResidencyStatus;\n employmentStatus = EmploymentStatus;\n adverseCreditStatus = AdverseCreditStatus;\n countries = ['United Kingdom', 'China'];\n selectedCountry;\n displayPrice = computed(() => {\n return this.property ? (this.property.price / 100).toFixed(2) : 0;\n }, ...(ngDevMode ? [{ debugName: \"displayPrice\" }] : []));\n ngOnInit() {\n this.getProperty();\n // this.viewing['country'] = this.countries[0];\n }\n getProperty() {\n this.propertyService.get(this.id).subscribe({\n next: (res) => {\n this.property = res.data;\n this.titleService.setTitle(`${this.property.title}`);\n },\n });\n }\n onCountrySelect(event) {\n this.viewing['country'] = event.value;\n }\n onViewerSelectionChange(event) {\n this.selectedViewerCategory = event.value;\n }\n sendRequest() {\n this.propertyService.requestViewing(this.id, this.viewing).subscribe({\n next: (res) => {\n this.snackBarService.open('Request viewing successfully');\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyViewingRequestComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyViewingRequestComponent, isStandalone: true, selector: \"rolatech-property-viewing-request\", providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE],\n },\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },\n ], usesInheritance: true, ngImport: i0, template: \"<rolatech-container>\\n <div class=\\\"flex flex-col-reverse md:flex-row w-full py-2 mb-3 gap-3\\\">\\n <div class=\\\"w-full md:w-2/3\\\">\\n <div>\\n <div class=\\\"text-xl font-bold py-2 mb-3\\\" i18n>Request a viewing</div>\\n <div class=\\\"mb-3\\\">\\n <mat-radio-group\\n aria-label=\\\"Select an option\\\"\\n [(ngModel)]=\\\"viewing.viewerCategory\\\"\\n (change)=\\\"onViewerSelectionChange($event)\\\"\\n >\\n <mat-radio-button [value]=\\\"viewerCategory.TENANT\\\" i18n>I'm a tenant</mat-radio-button>\\n <mat-radio-button [value]=\\\"viewerCategory.AGENT\\\" i18n>I'm an agent</mat-radio-button>\\n </mat-radio-group>\\n </div>\\n @if (selectedViewerCategory === 'TENANT') {\\n <div class=\\\"flex flex-col md:flex-row gap-2\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>First name</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"viewing.firstName\\\" />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Last name</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"viewing.lastName\\\" />\\n </mat-form-field>\\n </div>\\n <div class=\\\"flex flex-col md:flex-row gap-2\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Phone</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"viewing.phone\\\" />\\n </mat-form-field>\\n </div>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Email</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"viewing.email\\\" />\\n </mat-form-field>\\n <mat-form-field>\\n <mat-label i18n>Tenant type</mat-label>\\n <mat-select placeholder=\\\"Tenant type\\\" [(ngModel)]=\\\"viewing.applicantType\\\">\\n @for (applicantType of applicantTypes | keyvalue; track applicantType) {\\n <mat-option [value]=\\\"applicantType.key\\\">\\n {{ applicantType.value }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n } @else {\\n <div class=\\\"flex flex-col md:flex-row gap-2\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Your email</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"viewing.email\\\" />\\n </mat-form-field>\\n </div>\\n <div class=\\\"flex flex-col md:flex-row gap-2\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Number of tenants</mat-label>\\n <input matInput type=\\\"number\\\" [(ngModel)]=\\\"viewing.numberOfTenants\\\" />\\n </mat-form-field>\\n </div>\\n <mat-form-field>\\n <mat-label i18n>Applicant type</mat-label>\\n <mat-select placeholder=\\\"Applicant type\\\" [(ngModel)]=\\\"viewing.applicantType\\\">\\n @for (applicantType of applicantTypes | keyvalue; track applicantType) {\\n <mat-option [value]=\\\"applicantType.key\\\">\\n {{ applicantType.value }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <input\\n matInput\\n placeholder=\\\"Start date\\\"\\n [matDatepicker]=\\\"startDatePicker\\\"\\n [min]=\\\"minDate\\\"\\n (focus)=\\\"startDatePicker.open()\\\"\\n name=\\\"startDate\\\"\\n [(ngModel)]=\\\"viewing.startDate\\\"\\n (dateInput)=\\\"viewing.startDate = $event.value.format('YYYY-MM-DD')\\\"\\n readonly\\n />\\n <mat-datepicker-toggle matIconPrefix [for]=\\\"startDatePicker\\\"></mat-datepicker-toggle>\\n <mat-datepicker #startDatePicker></mat-datepicker>\\n </mat-form-field>\\n <div class=\\\"flex flex-col md:flex-row gap-2\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Tenancy length</mat-label>\\n <span matTextSuffix>months</span>\\n <input matInput type=\\\"number\\\" [(ngModel)]=\\\"viewing.tenancyDuration\\\" />\\n </mat-form-field>\\n </div>\\n <mat-form-field appearance=\\\"fill\\\" floatLabel=\\\"always\\\">\\n <mat-label i18n>Annual income(All tenants combined)</mat-label>\\n <span matTextPrefix>\\u00A3&nbsp;</span>\\n <input matInput type=\\\"text\\\" placeholder=\\\"00.00\\\" [(ngModel)]=\\\"viewing.income\\\" />\\n </mat-form-field>\\n <mat-form-field>\\n <mat-label i18n>Employment Status</mat-label>\\n <mat-select placeholder=\\\"Employment Status\\\" [(ngModel)]=\\\"viewing.employmentStatus\\\">\\n @for (item of employmentStatus | keyvalue; track item) {\\n <mat-option [value]=\\\"item.key\\\">\\n {{ item.value }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <mat-form-field>\\n <mat-label i18n>AdverseCredit Status</mat-label>\\n <mat-select placeholder=\\\"AdverseCredit Status\\\" [(ngModel)]=\\\"viewing.adverseCreditStatus\\\">\\n @for (item of adverseCreditStatus | keyvalue; track item) {\\n <mat-option [value]=\\\"item.key\\\">\\n {{ item.value }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n }\\n <div>\\n <div class=\\\"mb-3\\\">\\n <div class=\\\"text-lg font-bold\\\" i18n>Viewing date</div>\\n <div class=\\\"opacity-70\\\" i18n>\\n Please choose 3 different times on at least 2 different days that would work for you.\\n </div>\\n </div>\\n @for (item of viewing.proposedSlots; track $index) {\\n <rolatech-property-viewing-time [proposedTime]=\\\"item\\\"></rolatech-property-viewing-time>\\n }\\n </div>\\n </div>\\n <button mat-flat-button (click)=\\\"sendRequest()\\\" i18n>Send request</button>\\n </div>\\n <div class=\\\"w-full md:w-1/2 py-2 mb-3\\\">\\n <div class=\\\"text-xl font-bold py-2 mb-3\\\" i18n>Property info</div>\\n <div>\\n <rolatech-thumbnail [src]=\\\"property ? property.media[0].url : ''\\\" size=\\\"small\\\"></rolatech-thumbnail>\\n </div>\\n <div class=\\\"py-3 text-xl font-bold\\\">\\u00A3{{ displayPrice() }}</div>\\n </div>\\n </div>\\n</rolatech-container>\\n\", styles: [\"mat-form-field{width:100%}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"component\", type: ContainerComponent, selector: \"rolatech-container\" }, { kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"component\", type: i1.MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: i1.MatLabel, selector: \"mat-label\" }, { kind: \"directive\", type: i1.MatPrefix, selector: \"[matPrefix], [matIconPrefix], [matTextPrefix]\", inputs: [\"matTextPrefix\"] }, { kind: \"directive\", type: i1.MatSuffix, selector: \"[matSuffix], [matIconSuffix], [matTextSuffix]\", inputs: [\"matTextSuffix\"] }, { kind: \"ngmodule\", type: FormsModule }, { 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.NumberValueAccessor, selector: \"input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]\" }, { kind: \"directive\", type: i2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i2.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"directive\", type: i3.MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\", \"disabledInteractive\"], exportAs: [\"matInput\"] }, { kind: \"ngmodule\", type: TextFieldModule }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i4.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: ThumbnailComponent, selector: \"rolatech-thumbnail\", inputs: [\"src\", \"size\", \"mode\", \"ratio\", \"width\", \"height\"] }, { kind: \"ngmodule\", type: MatSelectModule }, { kind: \"component\", type: i5.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\", \"canSelectNullableOptions\"], outputs: [\"openedChange\", \"opened\", \"closed\", \"selectionChange\", \"valueChange\"], exportAs: [\"matSelect\"] }, { kind: \"component\", type: i5.MatOption, selector: \"mat-option\", inputs: [\"value\", \"id\", \"disabled\"], outputs: [\"onSelectionChange\"], exportAs: [\"matOption\"] }, { kind: \"ngmodule\", type: MatDatepickerModule }, { kind: \"component\", type: i6.MatDatepicker, selector: \"mat-datepicker\", exportAs: [\"matDatepicker\"] }, { kind: \"directive\", type: i6.MatDatepickerInput, selector: \"input[matDatepicker]\", inputs: [\"matDatepicker\", \"min\", \"max\", \"matDatepickerFilter\"], exportAs: [\"matDatepickerInput\"] }, { kind: \"component\", type: i6.MatDatepickerToggle, selector: \"mat-datepicker-toggle\", inputs: [\"for\", \"tabIndex\", \"aria-label\", \"disabled\", \"disableRipple\"], exportAs: [\"matDatepickerToggle\"] }, { kind: \"ngmodule\", type: MatRadioModule }, { kind: \"directive\", type: i7.MatRadioGroup, selector: \"mat-radio-group\", inputs: [\"color\", \"name\", \"labelPosition\", \"value\", \"selected\", \"disabled\", \"required\", \"disabledInteractive\"], outputs: [\"change\"], exportAs: [\"matRadioGroup\"] }, { kind: \"component\", type: i7.MatRadioButton, selector: \"mat-radio-button\", inputs: [\"id\", \"name\", \"aria-label\", \"aria-labelledby\", \"aria-describedby\", \"disableRipple\", \"tabIndex\", \"checked\", \"value\", \"labelPosition\", \"disabled\", \"required\", \"color\", \"disabledInteractive\"], outputs: [\"change\"], exportAs: [\"matRadioButton\"] }, { kind: \"component\", type: PropertyViewingTimeComponent, selector: \"rolatech-property-viewing-time\", inputs: [\"proposedTime\"], outputs: [\"output\", \"select\"] }, { kind: \"pipe\", type: i8.KeyValuePipe, name: \"keyvalue\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyViewingRequestComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-viewing-request', imports: [\n CommonModule,\n ContainerComponent,\n MatFormFieldModule,\n FormsModule,\n MatInputModule,\n TextFieldModule,\n MatButtonModule,\n ThumbnailComponent,\n MatSelectModule,\n MatDatepickerModule,\n MatRadioModule,\n PropertyViewingTimeComponent,\n ], providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE],\n },\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },\n ], template: \"<rolatech-container>\\n <div class=\\\"flex flex-col-reverse md:flex-row w-full py-2 mb-3 gap-3\\\">\\n <div class=\\\"w-full md:w-2/3\\\">\\n <div>\\n <div class=\\\"text-xl font-bold py-2 mb-3\\\" i18n>Request a viewing</div>\\n <div class=\\\"mb-3\\\">\\n <mat-radio-group\\n aria-label=\\\"Select an option\\\"\\n [(ngModel)]=\\\"viewing.viewerCategory\\\"\\n (change)=\\\"onViewerSelectionChange($event)\\\"\\n >\\n <mat-radio-button [value]=\\\"viewerCategory.TENANT\\\" i18n>I'm a tenant</mat-radio-button>\\n <mat-radio-button [value]=\\\"viewerCategory.AGENT\\\" i18n>I'm an agent</mat-radio-button>\\n </mat-radio-group>\\n </div>\\n @if (selectedViewerCategory === 'TENANT') {\\n <div class=\\\"flex flex-col md:flex-row gap-2\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>First name</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"viewing.firstName\\\" />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Last name</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"viewing.lastName\\\" />\\n </mat-form-field>\\n </div>\\n <div class=\\\"flex flex-col md:flex-row gap-2\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Phone</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"viewing.phone\\\" />\\n </mat-form-field>\\n </div>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Email</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"viewing.email\\\" />\\n </mat-form-field>\\n <mat-form-field>\\n <mat-label i18n>Tenant type</mat-label>\\n <mat-select placeholder=\\\"Tenant type\\\" [(ngModel)]=\\\"viewing.applicantType\\\">\\n @for (applicantType of applicantTypes | keyvalue; track applicantType) {\\n <mat-option [value]=\\\"applicantType.key\\\">\\n {{ applicantType.value }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n } @else {\\n <div class=\\\"flex flex-col md:flex-row gap-2\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Your email</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"viewing.email\\\" />\\n </mat-form-field>\\n </div>\\n <div class=\\\"flex flex-col md:flex-row gap-2\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Number of tenants</mat-label>\\n <input matInput type=\\\"number\\\" [(ngModel)]=\\\"viewing.numberOfTenants\\\" />\\n </mat-form-field>\\n </div>\\n <mat-form-field>\\n <mat-label i18n>Applicant type</mat-label>\\n <mat-select placeholder=\\\"Applicant type\\\" [(ngModel)]=\\\"viewing.applicantType\\\">\\n @for (applicantType of applicantTypes | keyvalue; track applicantType) {\\n <mat-option [value]=\\\"applicantType.key\\\">\\n {{ applicantType.value }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <input\\n matInput\\n placeholder=\\\"Start date\\\"\\n [matDatepicker]=\\\"startDatePicker\\\"\\n [min]=\\\"minDate\\\"\\n (focus)=\\\"startDatePicker.open()\\\"\\n name=\\\"startDate\\\"\\n [(ngModel)]=\\\"viewing.startDate\\\"\\n (dateInput)=\\\"viewing.startDate = $event.value.format('YYYY-MM-DD')\\\"\\n readonly\\n />\\n <mat-datepicker-toggle matIconPrefix [for]=\\\"startDatePicker\\\"></mat-datepicker-toggle>\\n <mat-datepicker #startDatePicker></mat-datepicker>\\n </mat-form-field>\\n <div class=\\\"flex flex-col md:flex-row gap-2\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Tenancy length</mat-label>\\n <span matTextSuffix>months</span>\\n <input matInput type=\\\"number\\\" [(ngModel)]=\\\"viewing.tenancyDuration\\\" />\\n </mat-form-field>\\n </div>\\n <mat-form-field appearance=\\\"fill\\\" floatLabel=\\\"always\\\">\\n <mat-label i18n>Annual income(All tenants combined)</mat-label>\\n <span matTextPrefix>\\u00A3&nbsp;</span>\\n <input matInput type=\\\"text\\\" placeholder=\\\"00.00\\\" [(ngModel)]=\\\"viewing.income\\\" />\\n </mat-form-field>\\n <mat-form-field>\\n <mat-label i18n>Employment Status</mat-label>\\n <mat-select placeholder=\\\"Employment Status\\\" [(ngModel)]=\\\"viewing.employmentStatus\\\">\\n @for (item of employmentStatus | keyvalue; track item) {\\n <mat-option [value]=\\\"item.key\\\">\\n {{ item.value }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <mat-form-field>\\n <mat-label i18n>AdverseCredit Status</mat-label>\\n <mat-select placeholder=\\\"AdverseCredit Status\\\" [(ngModel)]=\\\"viewing.adverseCreditStatus\\\">\\n @for (item of adverseCreditStatus | keyvalue; track item) {\\n <mat-option [value]=\\\"item.key\\\">\\n {{ item.value }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n }\\n <div>\\n <div class=\\\"mb-3\\\">\\n <div class=\\\"text-lg font-bold\\\" i18n>Viewing date</div>\\n <div class=\\\"opacity-70\\\" i18n>\\n Please choose 3 different times on at least 2 different days that would work for you.\\n </div>\\n </div>\\n @for (item of viewing.proposedSlots; track $index) {\\n <rolatech-property-viewing-time [proposedTime]=\\\"item\\\"></rolatech-property-viewing-time>\\n }\\n </div>\\n </div>\\n <button mat-flat-button (click)=\\\"sendRequest()\\\" i18n>Send request</button>\\n </div>\\n <div class=\\\"w-full md:w-1/2 py-2 mb-3\\\">\\n <div class=\\\"text-xl font-bold py-2 mb-3\\\" i18n>Property info</div>\\n <div>\\n <rolatech-thumbnail [src]=\\\"property ? property.media[0].url : ''\\\" size=\\\"small\\\"></rolatech-thumbnail>\\n </div>\\n <div class=\\\"py-3 text-xl font-bold\\\">\\u00A3{{ displayPrice() }}</div>\\n </div>\\n </div>\\n</rolatech-container>\\n\", styles: [\"mat-form-field{width:100%}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktdmlld2luZy1yZXF1ZXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS9wcm9wZXJ0eS12aWV3aW5nLXJlcXVlc3QvcHJvcGVydHktdmlld2luZy1yZXF1ZXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS9wcm9wZXJ0eS12aWV3aW5nLXJlcXVlc3QvcHJvcGVydHktdmlld2luZy1yZXF1ZXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNyRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUNMLG1CQUFtQixFQUNu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LHFsQkFDZCw0QkFBNEI7OzJGQWFuQiwrQkFBK0I7a0JBM0IzQyxTQUFTOytCQUNFLG1DQUFtQyxXQUNwQzt3QkFDUCxZQUFZO3dCQUNaLGtCQUFrQjt3QkFDbEIsa0JBQWtCO3dCQUNsQixXQUFXO3dCQUNYLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2QsNEJBQTRCO3FCQUM3QixhQUdVO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxXQUFXOzRCQUNwQixRQUFRLEVBQUUsaUJBQWlCOzRCQUMzQixJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUM7eUJBQ3hCO3dCQUNELEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7cUJBQ3BEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBtb2RlbCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCwgQ29udGFpbmVyQ29tcG9uZW50LCBUaHVtYm5haWxDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUZXh0RmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGV4dC1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBBdXRoU2VydmljZSwgQXV0aFVzZXJTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItYXV0aCc7XG5pbXBvcnQgeyBQcm9wZXJ0eVNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1zZXJ2aWNlcyc7XG5pbXBvcnQge1xuICBBZHZlcnNlQ3JlZGl0U3RhdHVzLFxuICBQcm9wZXJ0eUFwcGxpY2FudFR5cGUsXG4gIEVtcGxveW1lbnRTdGF0dXMsXG4gIFByb3BlcnR5LFxuICBQcm9wZXJ0eVZpZXdlckNhdGVnb3J5LFxuICBQcm9wZXJ0eVZpZXdpbmcsXG4gIFByb3BlcnR5Vmlld2luZ1JlcXVlc3QsXG4gIFJlc2lkZW5jeVN0YXR1cyxcbn0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgTWF0UmFkaW9DaGFuZ2UsIE1hdFJhZGlvTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcmFkaW8nO1xuaW1wb3J0IHsgTW9tZW50RGF0ZUFkYXB0ZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC1tb21lbnQtYWRhcHRlcic7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfRk9STUFUUywgTUFUX0RBVEVfTE9DQUxFIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBQcm9wZXJ0eVZpZXdpbmdUaW1lQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9wcm9wZXJ0eS12aWV3aW5nLXRpbWUvcHJvcGVydHktdmlld2luZy10aW1lLmNvbXBvbmVudCc7XG5leHBvcnQgY29uc3QgTVlfRk9STUFUUyA9IHtcbiAgcGFyc2U6IHtcbiAgICBkYXRlSW5wdXQ6ICdZWVlZLU1NLUREJyxcbiAgfSxcbiAgZGlzcGxheToge1xuICAgIGRhdGVJbnB1dDogJ1lZWVktTU0tREQnLFxuICAgIG1vbnRoWWVhckxhYmVsOiAnTU1NIFlZWVknLFxuICAgIGRhdGVBMTF5TGFiZWw6ICdZWVlZLU1NLUREJyxcbiAgICBtb250aFllYXJBMTF5TGFiZWw6ICdNTU1NIFlZWVknLFxuICB9LFxufTtcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb3BlcnR5LXZpZXdpbmctcmVxdWVzdCcsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBUZXh0RmllbGRNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIFRodW1ibmFpbENvbXBvbmVudCxcbiAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgICBNYXRSYWRpb01vZHVsZSxcbiAgICBQcm9wZXJ0eVZpZXdpbmdUaW1lQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydHktdmlld2luZy1yZXF1ZXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb3BlcnR5LXZpZXdpbmctcmVxdWVzdC5jb21wb25lbnQuc2NzcycsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IERhdGVBZGFwdGVyLFxuICAgICAgdXNlQ2xhc3M6IE1vbWVudERhdGVBZGFwdGVyLFxuICAgICAgZGVwczogW01BVF9EQVRFX0xPQ0FMRV0sXG4gICAgfSxcbiAgICB7IHByb3ZpZGU6IE1BVF9EQVRFX0ZPUk1BVFMsIHVzZVZhbHVlOiBNWV9GT1JNQVRTIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5Vmlld2luZ1JlcXVlc3RDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgYXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xuICBhdXRoVXNlclNlcnZpY2UgPSBpbmplY3QoQXV0aFVzZXJTZXJ2aWNlKTtcbiAgcHJvcGVydHlTZXJ2aWNlID0gaW5qZWN0KFByb3BlcnR5U2VydmljZSk7XG4gIHByb3BlcnR5ITogUHJvcGVydHk7XG4gIG1pbkRhdGUgPSBuZXcgRGF0ZSgpO1xuICB2aWV3aW5nOiBQcm9wZXJ0eVZpZXdpbmdSZXF1ZXN0ID0ge1xuICAgIGZpcnN0TmFtZTogJycsXG4gICAgbGFzdE5hbWU6ICcnLFxuICAgIGVtYWlsOiAnJyxcbiAgICBwaG9uZTogJycsXG4gICAgdmlld2VyQ2F0ZWdvcnk6IFByb3BlcnR5Vmlld2VyQ2F0ZWdvcnkuVEVOQU5ULFxuICAgIC8vIHRlbmFudENhdGVnb3J5OiBQcm9wZXJ0eUFwcGxpY2FudFR5cGUuSU5ESVZJRFVBTCxcbiAgICBwcm9wb3NlZFNsb3RzOiBbXG4gICAgICB7IGRhdGU6ICcnLCB0aW1lOiAnJyB9LFxuICAgICAgeyBkYXRlOiAnJywgdGltZTogJycgfSxcbiAgICAgIHsgZGF0ZTogJycsIHRpbWU6ICcnIH0sXG4gICAgXSxcbiAgfTtcbiAgc2VsZWN0ZWRWaWV3ZXJDYXRlZ29yeSA9ICdURU5BTlQnO1xuICB2aWV3ZXJDYXRlZ29yeSA9IFByb3BlcnR5Vmlld2VyQ2F0ZWdvcnk7XG4gIGFwcGxpY2FudFR5cGVzID0gUHJvcGVydHlBcHBsaWNhbnRUeXBlO1xuICByZXNpZGVuY3lTdGF0dXMgPSBSZXNpZGVuY3lTdGF0dXM7XG4gIGVtcGxveW1lbnRTdGF0dXMgPSBFbXBsb3ltZW50U3RhdHVzO1xuICBhZHZlcnNlQ3JlZGl0U3RhdHVzID0gQWR2ZXJzZUNyZWRpdFN0YXR1cztcbiAgY291bnRyaWVzOiBzdHJpbmdbXSA9IFsnVW5pdGVkIEtpbmdkb20nLCAnQ2hpbmEnXTtcbiAgc2VsZWN0ZWRDb3VudHJ5O1xuICBkaXNwbGF5UHJpY2UgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMucHJvcGVydHkgPyAodGhpcy5wcm9wZXJ0eS5wcmljZSAvIDEwMCkudG9GaXhlZCgyKSA6IDA7XG4gIH0pO1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmdldFByb3BlcnR5KCk7XG4gICAgLy8gdGhpcy52aWV3aW5nWydjb3VudHJ5J10gPSB0aGlzLmNvdW50cmllc1swXTtcbiAgfVxuICBnZXRQcm9wZXJ0eSgpIHtcbiAgICB0aGlzLnByb3BlcnR5U2VydmljZS5nZXQodGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnByb3BlcnR5ID0gcmVzLmRhdGE7XG4gICAgICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldFRpdGxlKGAke3RoaXMucHJvcGVydHkudGl0bGV9YCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIG9uQ291bnRyeVNlbGVjdChldmVudDogYW55KSB7XG4gICAgdGhpcy52aWV3aW5nWydjb3VudHJ5J10gPSBldmVudC52YWx1ZTtcbiAgfVxuICBvblZpZXdlclNlbGVjdGlvbkNoYW5nZShldmVudDogTWF0UmFkaW9DaGFuZ2UpIHtcbiAgICB0aGlzLnNlbGVjdGVkVmlld2VyQ2F0ZWdvcnkgPSBldmVudC52YWx1ZTtcbiAgfVxuICBzZW5kUmVxdWVzdCgpIHtcbiAgICB0aGlzLnByb3BlcnR5U2VydmljZS5yZXF1ZXN0Vmlld2luZyh0aGlzLmlkLCB0aGlzLnZpZXdpbmcpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oJ1JlcXVlc3Qgdmlld2luZyBzdWNjZXNzZnVsbHknKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oZXJyb3IubWVzc2FnZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iLCI8cm9sYXRlY2gtY29udGFpbmVyPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbC1yZXZlcnNlIG1kOmZsZXgtcm93IHctZnVsbCBweS0yIG1iLTMgZ2FwLTNcIj5cbiAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIG1kOnctMi8zXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC14bCBmb250LWJvbGQgcHktMiBtYi0zXCIgaTE4bj5SZXF1ZXN0IGEgdmlld2luZzwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgIDxtYXQtcmFkaW8tZ3JvdXBcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJTZWxlY3QgYW4gb3B0aW9uXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwidmlld2luZy52aWV3ZXJDYXRlZ29yeVwiXG4gICAgICAgICAgICAoY2hhbmdlKT1cIm9uVmlld2VyU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIFt2YWx1ZV09XCJ2aWV3ZXJDYXRlZ29yeS5URU5BTlRcIiBpMThuPkknbSBhIHRlbmFudDwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIFt2YWx1ZV09XCJ2aWV3ZXJDYXRlZ29yeS5BR0VOVFwiIGkxOG4+SSdtIGFuIGFnZW50PC9tYXQtcmFkaW8tYnV0dG9uPlxuICAgICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgQGlmIChzZWxlY3RlZFZpZXdlckNhdGVnb3J5ID09PSAnVEVOQU5UJykge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IGdhcC0yXCI+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgICAgICAgPG1hdC1sYWJlbCBpMThuPkZpcnN0IG5hbWU8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJ2aWV3aW5nLmZpcnN0TmFtZVwiIC8+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgICAgIDxtYXQtbGFiZWwgaTE4bj5MYXN0IG5hbWU8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJ2aWV3aW5nLmxhc3ROYW1lXCIgLz5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbWQ6ZmxleC1yb3cgZ2FwLTJcIj5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgICAgICA8bWF0LWxhYmVsIGkxOG4+UGhvbmU8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJ2aWV3aW5nLnBob25lXCIgLz5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgICA8bWF0LWxhYmVsIGkxOG4+RW1haWw8L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwidmlld2luZy5lbWFpbFwiIC8+XG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8bWF0LWxhYmVsIGkxOG4+VGVuYW50IHR5cGU8L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxtYXQtc2VsZWN0IHBsYWNlaG9sZGVyPVwiVGVuYW50IHR5cGVcIiBbKG5nTW9kZWwpXT1cInZpZXdpbmcuYXBwbGljYW50VHlwZVwiPlxuICAgICAgICAgICAgICBAZm9yIChhcHBsaWNhbnRUeXBlIG9mIGFwcGxpY2FudFR5cGVzIHwga2V5dmFsdWU7IHRyYWNrIGFwcGxpY2FudFR5cGUpIHtcbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiYXBwbGljYW50VHlwZS5rZXlcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGFwcGxpY2FudFR5cGUudmFsdWUgfX1cbiAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBtZDpmbGV4LXJvdyBnYXAtMlwiPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgICAgIDxtYXQtbGFiZWwgaTE4bj5Zb3VyIGVtYWlsPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwidmlld2luZy5lbWFpbFwiIC8+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IGdhcC0yXCI+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgICAgICAgPG1hdC1sYWJlbCBpMThuPk51bWJlciBvZiB0ZW5hbnRzPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwibnVtYmVyXCIgWyhuZ01vZGVsKV09XCJ2aWV3aW5nLm51bWJlck9mVGVuYW50c1wiIC8+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDxtYXQtbGFiZWwgaTE4bj5BcHBsaWNhbnQgdHlwZTwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgPG1hdC1zZWxlY3QgcGxhY2Vob2xkZXI9XCJBcHBsaWNhbnQgdHlwZVwiIFsobmdNb2RlbCldPVwidmlld2luZy5hcHBsaWNhbnRUeXBlXCI+XG4gICAgICAgICAgICAgIEBmb3IgKGFwcGxpY2FudFR5cGUgb2YgYXBwbGljYW50VHlwZXMgfCBrZXl2YWx1ZTsgdHJhY2sgYXBwbGljYW50VHlwZSkge1xuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJhcHBsaWNhbnRUeXBlLmtleVwiPlxuICAgICAgICAgICAgICAgICAge3sgYXBwbGljYW50VHlwZS52YWx1ZSB9fVxuICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTdGFydCBkYXRlXCJcbiAgICAgICAgICAgICAgW21hdERhdGVwaWNrZXJdPVwic3RhcnREYXRlUGlja2VyXCJcbiAgICAgICAgICAgICAgW21pbl09XCJtaW5EYXRlXCJcbiAgICAgICAgICAgICAgKGZvY3VzKT1cInN0YXJ0RGF0ZVBpY2tlci5vcGVuKClcIlxuICAgICAgICAgICAgICBuYW1lPVwic3RhcnREYXRlXCJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ2aWV3aW5nLnN0YXJ0RGF0ZVwiXG4gICAgICAgICAgICAgIChkYXRlSW5wdXQpPVwidmlld2luZy5zdGFydERhdGUgPSAkZXZlbnQudmFsdWUuZm9ybWF0KCdZWVlZLU1NLUREJylcIlxuICAgICAgICAgICAgICByZWFkb25seVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0SWNvblByZWZpeCBbZm9yXT1cInN0YXJ0RGF0ZVBpY2tlclwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxuICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyICNzdGFydERhdGVQaWNrZXI+PC9tYXQtZGF0ZXBpY2tlcj5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IGdhcC0yXCI+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgICAgICAgPG1hdC1sYWJlbCBpMThuPlRlbmFuY3kgbGVuZ3RoPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgIDxzcGFuIG1hdFRleHRTdWZmaXg+bW9udGhzPC9zcGFuPlxuICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cIm51bWJlclwiIFsobmdNb2RlbCldPVwidmlld2luZy50ZW5hbmN5RHVyYXRpb25cIiAvPlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiBmbG9hdExhYmVsPVwiYWx3YXlzXCI+XG4gICAgICAgICAgICA8bWF0LWxhYmVsIGkxOG4+QW5udWFsIGluY29tZShBbGwgdGVuYW50cyBjb21iaW5lZCk8L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxzcGFuIG1hdFRleHRQcmVmaXg+wqMmbmJzcDs8L3NwYW4+XG4gICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIjAwLjAwXCIgWyhuZ01vZGVsKV09XCJ2aWV3aW5nLmluY29tZVwiIC8+XG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8bWF0LWxhYmVsIGkxOG4+RW1wbG95bWVudCBTdGF0dXM8L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxtYXQtc2VsZWN0IHBsYWNlaG9sZGVyPVwiRW1wbG95bWVudCBTdGF0dXNcIiBbKG5nTW9kZWwpXT1cInZpZXdpbmcuZW1wbG95bWVudFN0YXR1c1wiPlxuICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGVtcGxveW1lbnRTdGF0dXMgfCBrZXl2YWx1ZTsgdHJhY2sgaXRlbSkge1xuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJpdGVtLmtleVwiPlxuICAgICAgICAgICAgICAgICAge3sgaXRlbS52YWx1ZSB9fVxuICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPG1hdC1sYWJlbCBpMThuPkFkdmVyc2VDcmVkaXQgU3RhdHVzPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8bWF0LXNlbGVjdCBwbGFjZWhvbGRlcj1cIkFkdmVyc2VDcmVkaXQgU3RhdHVzXCIgWyhuZ01vZGVsKV09XCJ2aWV3aW5nLmFkdmVyc2VDcmVkaXRTdGF0dXNcIj5cbiAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBhZHZlcnNlQ3JlZGl0U3RhdHVzIHwga2V5dmFsdWU7IHRyYWNrIGl0ZW0pIHtcbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiaXRlbS5rZXlcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udmFsdWUgfX1cbiAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICB9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxnIGZvbnQtYm9sZFwiIGkxOG4+Vmlld2luZyBkYXRlPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3BhY2l0eS03MFwiIGkxOG4+XG4gICAgICAgICAgICAgIFBsZWFzZSBjaG9vc2UgMyBkaWZmZXJlbnQgdGltZXMgb24gYXQgbGVhc3QgMiBkaWZmZXJlbnQgZGF5cyB0aGF0IHdvdWxkIHdvcmsgZm9yIHlvdS5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIEBmb3IgKGl0ZW0gb2Ygdmlld2luZy5wcm9wb3NlZFNsb3RzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgIDxyb2xhdGVjaC1wcm9wZXJ0eS12aWV3aW5nLXRpbWUgW3Byb3Bvc2VkVGltZV09XCJpdGVtXCI+PC9yb2xhdGVjaC1wcm9wZXJ0eS12aWV3aW5nLXRpbWU+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gKGNsaWNrKT1cInNlbmRSZXF1ZXN0KClcIiBpMThuPlNlbmQgcmVxdWVzdDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgbWQ6dy0xLzIgcHktMiBtYi0zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC14bCBmb250LWJvbGQgcHktMiBtYi0zXCIgaTE4bj5Qcm9wZXJ0eSBpbmZvPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8cm9sYXRlY2gtdGh1bWJuYWlsIFtzcmNdPVwicHJvcGVydHkgPyBwcm9wZXJ0eS5tZWRpYVswXS51cmwgOiAnJ1wiIHNpemU9XCJzbWFsbFwiPjwvcm9sYXRlY2gtdGh1bWJuYWlsPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwicHktMyB0ZXh0LXhsIGZvbnQtYm9sZFwiPsKje3sgZGlzcGxheVByaWNlKCkgfX08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3JvbGF0ZWNoLWNvbnRhaW5lcj5cbiJdfQ==","import { Component, computed, effect, inject, signal } from '@angular/core';\nimport { CommonModule, KeyValuePipe } from '@angular/common';\nimport { AuthService, AuthUserService } from '@rolatech/angular-auth';\nimport { BaseComponent, ContainerComponent, ThumbnailComponent } from '@rolatech/angular-components';\nimport { PropertyService } from '@rolatech/angular-services';\nimport { AdverseCreditStatus, PropertyApplicantType, EmploymentStatus, ResidencyStatus, } from '../../../interfaces';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { DateAdapter, MAT_DATE_LOCALE, MAT_DATE_FORMATS } from '@angular/material/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/form-field\";\nimport * as i2 from \"@angular/forms\";\nimport * as i3 from \"@angular/material/input\";\nimport * as i4 from \"@angular/cdk/text-field\";\nimport * as i5 from \"@angular/material/button\";\nimport * as i6 from \"@angular/material/select\";\nimport * as i7 from \"@angular/material/datepicker\";\nimport * as i8 from \"@angular/common\";\nexport const MY_FORMATS = {\n parse: {\n dateInput: 'YYYY-MM-DD',\n },\n display: {\n dateInput: 'YYYY-MM-DD',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'YYYY-MM-DD',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n};\nexport class PropertyOfferComponent extends BaseComponent {\n authService = inject(AuthService);\n authUserService = inject(AuthUserService);\n propertyService = inject(PropertyService);\n offer = {\n firstName: '',\n lastName: '',\n phone: '',\n email: '',\n applicantType: '',\n residencyStatus: '',\n employmentStatus: '',\n adverseCreditStatus: '',\n startDate: '',\n notes: '',\n amount: 0,\n };\n get formattedAmount() {\n return this.offer.amount.toFixed(2); // equivalent to | number:'1.2-2'\n } // applicantTypes = PropertyApplicantType;\n applicantTypes = Object.keys(PropertyApplicantType); // ['INDIVIDUAL', 'CORPORATE', ...]\n PropertyApplicantType = PropertyApplicantType;\n residencyStatus = ResidencyStatus;\n employmentStatus = EmploymentStatus;\n adverseCreditStatus = AdverseCreditStatus;\n selectedCountry;\n // property!: Property;\n // displayPrice = computed(() => {\n // return (this.property?.price / 100).toFixed(2);\n // });\n property = signal(null, ...(ngDevMode ? [{ debugName: \"property\" }] : []));\n displayPrice = computed(() => {\n const p = this.property();\n return p ? (p.price / 100).toFixed(2) : '0.00';\n }, ...(ngDevMode ? [{ debugName: \"displayPrice\" }] : []));\n firstImageUrl = computed(() => {\n const p = this.property();\n return p?.media?.[0]?.url || '';\n }, ...(ngDevMode ? [{ debugName: \"firstImageUrl\" }] : []));\n minDate = new Date();\n sending = false;\n constructor() {\n super();\n effect(() => {\n const p = this.property();\n if (p) {\n this.titleService.setTitle(p.title);\n }\n });\n }\n ngOnInit() {\n this.getProperty();\n }\n onAmountChange(event) {\n const inputValue = event.target.value;\n console.log(inputValue);\n const regex = /^\\d*\\.?\\d{0,2}$/;\n if (regex.test(inputValue)) {\n this.offer.amount = inputValue;\n }\n }\n getProperty() {\n this.propertyService.get(this.id).subscribe({\n next: (res) => {\n this.property.set(res.data);\n // this.titleService.setTitle(`${this.property.title}`);\n },\n });\n }\n onCategorySelect(event) {\n this.offer['category'] = event.value;\n }\n onResidencyStatusSelect(event) { }\n sendRequest() {\n this.sending = true;\n this.propertyService.makeOffer(this.id, this.offer).subscribe({\n next: (res) => {\n this.sending = false;\n this.snackBarService.open('Sent successfully');\n this.router.navigate([`/properties/offers/${res.data.id}`]);\n },\n error: (error) => {\n this.sending = false;\n this.snackBarService.open(error.message);\n },\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyOfferComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyOfferComponent, isStandalone: true, selector: \"rolatech-property-offer\", providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE],\n },\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },\n ], usesInheritance: true, ngImport: i0, template: \"<rolatech-container>\\n <div class=\\\"flex flex-col-reverse md:flex-row w-full py-2 mb-3 gap-3\\\">\\n <div class=\\\"w-full md:w-2/3\\\">\\n <div>\\n <div class=\\\"text-xl font-bold py-2 mb-3\\\">\\n <!-- <span i18n>Offer for </span><span>{{ property()?.title : '' }}</span> -->\\n <span i18n=\\\"@@offerFor\\\">Offer for {{ property()?.title }}</span>\\n </div>\\n <div class=\\\"flex flex-col md:flex-row gap-2\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>First name</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"offer.firstName\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Last name</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"offer.lastName\\\" required />\\n </mat-form-field>\\n </div>\\n <div class=\\\"flex flex-col md:flex-row gap-2\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Phone</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"offer.phone\\\" required />\\n </mat-form-field>\\n </div>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Email</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"offer.email\\\" required />\\n </mat-form-field>\\n\\n <mat-form-field appearance=\\\"fill\\\" floatLabel=\\\"always\\\">\\n <mat-label i18n>Asking price</mat-label>\\n <span matTextPrefix>\\u00A3&nbsp;</span>\\n <input matInput type=\\\"text\\\" placeholder=\\\"0.00\\\" [(ngModel)]=\\\"offer.amount\\\" required />\\n <!-- <input\\n matInput\\n type=\\\"number\\\"\\n placeholder=\\\"0.00\\\"\\n [value]=\\\"formattedAmount\\\"\\n (input)=\\\"onAmountChange($event)\\\"\\n required\\n /> -->\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Tenancy Length</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"offer.tenancyDuration\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Number Of Tenants</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"offer.numberOfTenants\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label>Start date</mat-label>\\n <input\\n matInput\\n placeholder=\\\"Start date\\\"\\n [matDatepicker]=\\\"startDatePicker\\\"\\n [min]=\\\"minDate\\\"\\n (focus)=\\\"startDatePicker.open()\\\"\\n name=\\\"startDate\\\"\\n [(ngModel)]=\\\"offer.startDate\\\"\\n (dateInput)=\\\"offer.startDate = $event.value.format('YYYY-MM-DD')\\\"\\n readonly\\n required\\n />\\n <mat-datepicker-toggle matIconPrefix [for]=\\\"startDatePicker\\\"></mat-datepicker-toggle>\\n <mat-datepicker #startDatePicker></mat-datepicker>\\n </mat-form-field>\\n <mat-form-field>\\n <mat-label i18n>Applicant type</mat-label>\\n <mat-select placeholder=\\\"Applicant type\\\" [(ngModel)]=\\\"offer.applicantType\\\" required>\\n @for (key of applicantTypes; track key) {\\n <mat-option [value]=\\\"key\\\">\\n {{ PropertyApplicantType[key] }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <!-- subscriptSizing=\\\"dynamic\\\" -->\\n <mat-form-field>\\n <mat-label i18n>Residency status</mat-label>\\n <mat-select placeholder=\\\"Residency status\\\" [(ngModel)]=\\\"offer.residencyStatus\\\" required>\\n @for (status of residencyStatus | keyvalue; track status) {\\n <mat-option [value]=\\\"status.key\\\">\\n {{ status.value }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <mat-form-field>\\n <mat-label i18n>Employment Status</mat-label>\\n <mat-select placeholder=\\\"Employment Status\\\" [(ngModel)]=\\\"offer.employmentStatus\\\" required>\\n @for (item of employmentStatus | keyvalue; track item) {\\n <mat-option [value]=\\\"item.key\\\">\\n {{ item.value }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <mat-form-field>\\n <mat-label i18n>AdverseCredit Status</mat-label>\\n <mat-select placeholder=\\\"AdverseCredit Status\\\" [(ngModel)]=\\\"offer.adverseCreditStatus\\\" required>\\n @for (item of adverseCreditStatus | keyvalue; track item) {\\n <mat-option [value]=\\\"item.key\\\">\\n {{ item.value }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div>\\n <div class=\\\"text-md py-2\\\" i18n>Your message(Optional)</div>\\n <mat-form-field appearance=\\\"fill\\\">\\n <textarea matInput type=\\\"text\\\" [(ngModel)]=\\\"offer.notes\\\" cdkTextareaAutosize cdkAutosizeMinRows=\\\"3\\\"></textarea>\\n </mat-form-field>\\n </div>\\n <!-- <button mat-flat-button (click)=\\\"sendRequest()\\\" i18n>Send request</button> -->\\n <button mat-flat-button (click)=\\\"sendRequest()\\\" [disabled]=\\\"sending\\\">\\n <span style=\\\"display: flex; align-items: center\\\">\\n @if (sending) {\\n <mat-progress-spinner diameter=\\\"20\\\" mode=\\\"indeterminate\\\" [style.marginRight.px]=\\\"8\\\"></mat-progress-spinner>\\n }\\n {{ sending ? 'Requesting...' : 'Send request' }}\\n </span>\\n </button>\\n </div>\\n <div class=\\\"w-full md:w-1/2 py-2 mb-3\\\">\\n <div class=\\\"text-xl font-bold py-2 mb-3\\\" i18n>Property info</div>\\n <div>\\n <rolatech-thumbnail [src]=\\\"firstImageUrl()\\\" size=\\\"small\\\"></rolatech-thumbnail>\\n </div>\\n <div class=\\\"py-3 text-xl font-bold\\\">\\u00A3{{ displayPrice() }}</div>\\n </div>\\n </div>\\n</rolatech-container>\\n\", styles: [\"mat-form-field{width:100%}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"component\", type: ContainerComponent, selector: \"rolatech-container\" }, { kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"component\", type: i1.MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: i1.MatLabel, selector: \"mat-label\" }, { kind: \"directive\", type: i1.MatPrefix, selector: \"[matPrefix], [matIconPrefix], [matTextPrefix]\", inputs: [\"matTextPrefix\"] }, { kind: \"ngmodule\", type: FormsModule }, { 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.RequiredValidator, selector: \":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]\", inputs: [\"required\"] }, { kind: \"directive\", type: i2.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"directive\", type: i3.MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\", \"disabledInteractive\"], exportAs: [\"matInput\"] }, { kind: \"directive\", type: i4.CdkTextareaAutosize, selector: \"textarea[cdkTextareaAutosize]\", inputs: [\"cdkAutosizeMinRows\", \"cdkAutosizeMaxRows\", \"cdkTextareaAutosize\", \"placeholder\"], exportAs: [\"cdkTextareaAutosize\"] }, { kind: \"ngmodule\", type: TextFieldModule }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i5.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: ThumbnailComponent, selector: \"rolatech-thumbnail\", inputs: [\"src\", \"size\", \"mode\", \"ratio\", \"width\", \"height\"] }, { kind: \"ngmodule\", type: MatSelectModule }, { 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\", \"canSelectNullableOptions\"], outputs: [\"openedChange\", \"opened\", \"closed\", \"selectionChange\", \"valueChange\"], exportAs: [\"matSelect\"] }, { kind: \"component\", type: i6.MatOption, selector: \"mat-option\", inputs: [\"value\", \"id\", \"disabled\"], outputs: [\"onSelectionChange\"], exportAs: [\"matOption\"] }, { kind: \"ngmodule\", type: MatDatepickerModule }, { kind: \"component\", type: i7.MatDatepicker, selector: \"mat-datepicker\", exportAs: [\"matDatepicker\"] }, { kind: \"directive\", type: i7.MatDatepickerInput, selector: \"input[matDatepicker]\", inputs: [\"matDatepicker\", \"min\", \"max\", \"matDatepickerFilter\"], exportAs: [\"matDatepickerInput\"] }, { kind: \"component\", type: i7.MatDatepickerToggle, selector: \"mat-datepicker-toggle\", inputs: [\"for\", \"tabIndex\", \"aria-label\", \"disabled\", \"disableRipple\"], exportAs: [\"matDatepickerToggle\"] }, { kind: \"component\", type: MatProgressSpinner, selector: \"mat-progress-spinner, mat-spinner\", inputs: [\"color\", \"mode\", \"value\", \"diameter\", \"strokeWidth\"], exportAs: [\"matProgressSpinner\"] }, { kind: \"pipe\", type: i8.KeyValuePipe, name: \"keyvalue\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyOfferComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-offer', imports: [\n CommonModule,\n ContainerComponent,\n MatFormFieldModule,\n FormsModule,\n MatInputModule,\n TextFieldModule,\n MatButtonModule,\n ThumbnailComponent,\n MatSelectModule,\n KeyValuePipe,\n MatDatepickerModule,\n MatProgressSpinner,\n ], providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE],\n },\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },\n ], template: \"<rolatech-container>\\n <div class=\\\"flex flex-col-reverse md:flex-row w-full py-2 mb-3 gap-3\\\">\\n <div class=\\\"w-full md:w-2/3\\\">\\n <div>\\n <div class=\\\"text-xl font-bold py-2 mb-3\\\">\\n <!-- <span i18n>Offer for </span><span>{{ property()?.title : '' }}</span> -->\\n <span i18n=\\\"@@offerFor\\\">Offer for {{ property()?.title }}</span>\\n </div>\\n <div class=\\\"flex flex-col md:flex-row gap-2\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>First name</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"offer.firstName\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Last name</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"offer.lastName\\\" required />\\n </mat-form-field>\\n </div>\\n <div class=\\\"flex flex-col md:flex-row gap-2\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Phone</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"offer.phone\\\" required />\\n </mat-form-field>\\n </div>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Email</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"offer.email\\\" required />\\n </mat-form-field>\\n\\n <mat-form-field appearance=\\\"fill\\\" floatLabel=\\\"always\\\">\\n <mat-label i18n>Asking price</mat-label>\\n <span matTextPrefix>\\u00A3&nbsp;</span>\\n <input matInput type=\\\"text\\\" placeholder=\\\"0.00\\\" [(ngModel)]=\\\"offer.amount\\\" required />\\n <!-- <input\\n matInput\\n type=\\\"number\\\"\\n placeholder=\\\"0.00\\\"\\n [value]=\\\"formattedAmount\\\"\\n (input)=\\\"onAmountChange($event)\\\"\\n required\\n /> -->\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Tenancy Length</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"offer.tenancyDuration\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Number Of Tenants</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"offer.numberOfTenants\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label>Start date</mat-label>\\n <input\\n matInput\\n placeholder=\\\"Start date\\\"\\n [matDatepicker]=\\\"startDatePicker\\\"\\n [min]=\\\"minDate\\\"\\n (focus)=\\\"startDatePicker.open()\\\"\\n name=\\\"startDate\\\"\\n [(ngModel)]=\\\"offer.startDate\\\"\\n (dateInput)=\\\"offer.startDate = $event.value.format('YYYY-MM-DD')\\\"\\n readonly\\n required\\n />\\n <mat-datepicker-toggle matIconPrefix [for]=\\\"startDatePicker\\\"></mat-datepicker-toggle>\\n <mat-datepicker #startDatePicker></mat-datepicker>\\n </mat-form-field>\\n <mat-form-field>\\n <mat-label i18n>Applicant type</mat-label>\\n <mat-select placeholder=\\\"Applicant type\\\" [(ngModel)]=\\\"offer.applicantType\\\" required>\\n @for (key of applicantTypes; track key) {\\n <mat-option [value]=\\\"key\\\">\\n {{ PropertyApplicantType[key] }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <!-- subscriptSizing=\\\"dynamic\\\" -->\\n <mat-form-field>\\n <mat-label i18n>Residency status</mat-label>\\n <mat-select placeholder=\\\"Residency status\\\" [(ngModel)]=\\\"offer.residencyStatus\\\" required>\\n @for (status of residencyStatus | keyvalue; track status) {\\n <mat-option [value]=\\\"status.key\\\">\\n {{ status.value }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <mat-form-field>\\n <mat-label i18n>Employment Status</mat-label>\\n <mat-select placeholder=\\\"Employment Status\\\" [(ngModel)]=\\\"offer.employmentStatus\\\" required>\\n @for (item of employmentStatus | keyvalue; track item) {\\n <mat-option [value]=\\\"item.key\\\">\\n {{ item.value }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <mat-form-field>\\n <mat-label i18n>AdverseCredit Status</mat-label>\\n <mat-select placeholder=\\\"AdverseCredit Status\\\" [(ngModel)]=\\\"offer.adverseCreditStatus\\\" required>\\n @for (item of adverseCreditStatus | keyvalue; track item) {\\n <mat-option [value]=\\\"item.key\\\">\\n {{ item.value }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div>\\n <div class=\\\"text-md py-2\\\" i18n>Your message(Optional)</div>\\n <mat-form-field appearance=\\\"fill\\\">\\n <textarea matInput type=\\\"text\\\" [(ngModel)]=\\\"offer.notes\\\" cdkTextareaAutosize cdkAutosizeMinRows=\\\"3\\\"></textarea>\\n </mat-form-field>\\n </div>\\n <!-- <button mat-flat-button (click)=\\\"sendRequest()\\\" i18n>Send request</button> -->\\n <button mat-flat-button (click)=\\\"sendRequest()\\\" [disabled]=\\\"sending\\\">\\n <span style=\\\"display: flex; align-items: center\\\">\\n @if (sending) {\\n <mat-progress-spinner diameter=\\\"20\\\" mode=\\\"indeterminate\\\" [style.marginRight.px]=\\\"8\\\"></mat-progress-spinner>\\n }\\n {{ sending ? 'Requesting...' : 'Send request' }}\\n </span>\\n </button>\\n </div>\\n <div class=\\\"w-full md:w-1/2 py-2 mb-3\\\">\\n <div class=\\\"text-xl font-bold py-2 mb-3\\\" i18n>Property info</div>\\n <div>\\n <rolatech-thumbnail [src]=\\\"firstImageUrl()\\\" size=\\\"small\\\"></rolatech-thumbnail>\\n </div>\\n <div class=\\\"py-3 text-xl font-bold\\\">\\u00A3{{ displayPrice() }}</div>\\n </div>\\n </div>\\n</rolatech-container>\\n\", styles: [\"mat-form-field{width:100%}\\n\"] }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktb2ZmZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL3BhZ2VzL3Byb3BlcnR5L3Byb3BlcnR5LW9mZmVyL3Byb3BlcnR5LW9mZmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS9wcm9wZXJ0eS1vZmZlci9wcm9wZXJ0eS1vZmZlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTJCLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0csT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNyRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixxQkFBcUIsRUFDckIsZ0JBQWdCLEVBSWhCLGVBQWUsR0FDaEIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7Ozs7QUFDeEUsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLEtBQUssRUFBRTtRQUNMLFNBQVMsRUFBRSxZQUFZO0tBQ3hCO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsU0FBUyxFQUFFLFlBQVk7UUFDdkIsY0FBYyxFQUFFLFVBQVU7UUFDMUIsYUFBYSxFQUFFLFlBQVk7UUFDM0Isa0JBQWtCLEVBQUUsV0FBVztLQUNoQztDQUNGLENBQUM7QUE2QkYsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGFBQWE7SUFDdkQsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsQyxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzFDLGVBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDMUMsS0FBSyxHQUF5QjtRQUM1QixTQUFTLEVBQUUsRUFBRTtRQUNiLFFBQVEsRUFBRSxFQUFFO1FBQ1osS0FBSyxFQUFFLEVBQUU7UUFDVCxLQUFLLEVBQUUsRUFBRTtRQUNULGFBQWEsRUFBRSxFQUFFO1FBQ2pCLGVBQWUsRUFBRSxFQUFFO1FBQ25CLGdCQUFnQixFQUFFLEVBQUU7UUFDcEIsbUJBQW1CLEVBQUUsRUFBRTtRQUN2QixTQUFTLEVBQUUsRUFBRTtRQUNiLEtBQUssRUFBRSxFQUFFO1FBQ1QsTUFBTSxFQUFFLENBQUM7S0FDVixDQUFDO0lBQ0YsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUNBQWlDO0lBQ3hFLENBQUMsQ0FBQywwQ0FBMEM7SUFDNUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLG1DQUFtQztJQUN4RixxQkFBcUIsR0FBRyxxQkFBcUIsQ0FBQztJQUM5QyxlQUFlLEdBQUcsZUFBZSxDQUFDO0lBQ2xDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO0lBQ3BDLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDO0lBQzFDLGVBQWUsQ0FBQztJQUNoQix1QkFBdUI7SUFDdkIsa0NBQWtDO0lBQ2xDLG9EQUFvRDtJQUNwRCxNQUFNO0lBQ04sUUFBUSxHQUFHLE1BQU0sQ0FBa0IsSUFBSSxvREFBQyxDQUFDO0lBRXpDLFlBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQzNCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMxQixPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2pELENBQUMsd0RBQUMsQ0FBQztJQUNNLGFBQWEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQ3JDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMxQixPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO0lBQ2xDLENBQUMseURBQUMsQ0FBQztJQUNILE9BQU8sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3JCLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDaEI7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUNSLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDTixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUNELGNBQWMsQ0FBQyxLQUFZO1FBQ3pCLE1BQU0sVUFBVSxHQUFTLEtBQUssQ0FBQyxNQUEyQixDQUFDLEtBQUssQ0FBQztRQUNqRSxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hCLE1BQU0sS0FBSyxHQUFHLGlCQUFpQixDQUFDO1FBRWhDLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQzFDLElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzVCLHdEQUF3RDtZQUMxRCxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGdCQUFnQixDQUFDLEtBQVU7UUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCx1QkFBdUIsQ0FBQyxLQUFVLElBQUcsQ0FBQztJQUN0QyxXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQzVELElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNaLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUNyQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2dCQUMvQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLHNCQUFzQixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM5RCxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMzQyxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0F4RlUsc0JBQXNCOzJGQUF0QixzQkFBc0Isc0VBVHRCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLFdBQVc7Z0JBQ3BCLFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLElBQUksRUFBRSxDQUFDLGVBQWUsQ0FBQzthQUN4QjtZQUNELEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7U0FDcEQsaURDN0RILHM1TEFzSUEscUZEL0ZJLFlBQVksK0JBQ1osa0JBQWtCLDhEQUNsQixrQkFBa0IsMmFBQ2xCLFdBQVcsMjBCQUNYLGNBQWMsZ21CQUNkLGVBQWUsOEJBQ2YsZUFBZSxvWEFDZixrQkFBa0IsMkhBQ2xCLGVBQWUsK3NCQUVmLG1CQUFtQixrZ0JBQ25CLGtCQUFrQjs7MkZBYVQsc0JBQXNCO2tCQTNCbEMsU0FBUzsrQkFDRSx5QkFBeUIsV0FDMUI7d0JBQ1AsWUFBWTt3QkFDWixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsV0FBVzt3QkFDWCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2YsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLGtCQUFrQjtxQkFDbkIsYUFHVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsV0FBVzs0QkFDcEIsUUFBUSxFQUFFLGlCQUFpQjs0QkFDM0IsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDO3lCQUN4Qjt3QkFDRCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFO3FCQUNwRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgT25Jbml0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgS2V5VmFsdWVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlLCBBdXRoVXNlclNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1hdXRoJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIENvbnRhaW5lckNvbXBvbmVudCwgVGh1bWJuYWlsQ29tcG9uZW50IH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBQcm9wZXJ0eVNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1zZXJ2aWNlcyc7XG5pbXBvcnQge1xuICBBZHZlcnNlQ3JlZGl0U3RhdHVzLFxuICBQcm9wZXJ0eUFwcGxpY2FudFR5cGUsXG4gIEVtcGxveW1lbnRTdGF0dXMsXG4gIFByb3BlcnR5LFxuICBQcm9wZXJ0eU9mZmVyLFxuICBQcm9wZXJ0eU9mZmVyUmVxdWVzdCxcbiAgUmVzaWRlbmN5U3RhdHVzLFxufSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFRleHRGaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXh0LWZpZWxkJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgTW9tZW50RGF0ZUFkYXB0ZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC1tb21lbnQtYWRhcHRlcic7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfTE9DQUxFLCBNQVRfREFURV9GT1JNQVRTIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmV4cG9ydCBjb25zdCBNWV9GT1JNQVRTID0ge1xuICBwYXJzZToge1xuICAgIGRhdGVJbnB1dDogJ1lZWVktTU0tREQnLFxuICB9LFxuICBkaXNwbGF5OiB7XG4gICAgZGF0ZUlucHV0OiAnWVlZWS1NTS1ERCcsXG4gICAgbW9udGhZZWFyTGFiZWw6ICdNTU0gWVlZWScsXG4gICAgZGF0ZUExMXlMYWJlbDogJ1lZWVktTU0tREQnLFxuICAgIG1vbnRoWWVhckExMXlMYWJlbDogJ01NTU0gWVlZWScsXG4gIH0sXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1wcm9wZXJ0eS1vZmZlcicsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBUZXh0RmllbGRNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIFRodW1ibmFpbENvbXBvbmVudCxcbiAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgS2V5VmFsdWVQaXBlLFxuICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydHktb2ZmZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHJvcGVydHktb2ZmZXIuY29tcG9uZW50LnNjc3MnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBEYXRlQWRhcHRlcixcbiAgICAgIHVzZUNsYXNzOiBNb21lbnREYXRlQWRhcHRlcixcbiAgICAgIGRlcHM6IFtNQVRfREFURV9MT0NBTEVdLFxuICAgIH0sXG4gICAgeyBwcm92aWRlOiBNQVRfREFURV9GT1JNQVRTLCB1c2VWYWx1ZTogTVlfRk9STUFUUyB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eU9mZmVyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgYXV0aFVzZXJTZXJ2aWNlID0gaW5qZWN0KEF1dGhVc2VyU2VydmljZSk7XG4gIHByb3BlcnR5U2VydmljZSA9IGluamVjdChQcm9wZXJ0eVNlcnZpY2UpO1xuICBvZmZlcjogUHJvcGVydHlPZmZlclJlcXVlc3QgPSB7XG4gICAgZmlyc3ROYW1lOiAnJyxcbiAgICBsYXN0TmFtZTogJycsXG4gICAgcGhvbmU6ICcnLFxuICAgIGVtYWlsOiAnJyxcbiAgICBhcHBsaWNhbnRUeXBlOiAnJyxcbiAgICByZXNpZGVuY3lTdGF0dXM6ICcnLFxuICAgIGVtcGxveW1lbnRTdGF0dXM6ICcnLFxuICAgIGFkdmVyc2VDcmVkaXRTdGF0dXM6ICcnLFxuICAgIHN0YXJ0RGF0ZTogJycsXG4gICAgbm90ZXM6ICcnLFxuICAgIGFtb3VudDogMCxcbiAgfTtcbiAgZ2V0IGZvcm1hdHRlZEFtb3VudCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm9mZmVyLmFtb3VudC50b0ZpeGVkKDIpOyAvLyBlcXVpdmFsZW50IHRvIHwgbnVtYmVyOicxLjItMidcbiAgfSAvLyBhcHBsaWNhbnRUeXBlcyA9IFByb3BlcnR5QXBwbGljYW50VHlwZTtcbiAgYXBwbGljYW50VHlwZXMgPSBPYmplY3Qua2V5cyhQcm9wZXJ0eUFwcGxpY2FudFR5cGUpOyAvLyBbJ0lORElWSURVQUwnLCAnQ09SUE9SQVRFJywgLi4uXVxuICBQcm9wZXJ0eUFwcGxpY2FudFR5cGUgPSBQcm9wZXJ0eUFwcGxpY2FudFR5cGU7XG4gIHJlc2lkZW5jeVN0YXR1cyA9IFJlc2lkZW5jeVN0YXR1cztcbiAgZW1wbG95bWVudFN0YXR1cyA9IEVtcGxveW1lbnRTdGF0dXM7XG4gIGFkdmVyc2VDcmVkaXRTdGF0dXMgPSBBZHZlcnNlQ3JlZGl0U3RhdHVzO1xuICBzZWxlY3RlZENvdW50cnk7XG4gIC8vIHByb3BlcnR5ITogUHJvcGVydHk7XG4gIC8vIGRpc3BsYXlQcmljZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgLy8gICByZXR1cm4gKHRoaXMucHJvcGVydHk/LnByaWNlIC8gMTAwKS50b0ZpeGVkKDIpO1xuICAvLyB9KTtcbiAgcHJvcGVydHkgPSBzaWduYWw8UHJvcGVydHkgfCBudWxsPihudWxsKTtcblxuICBkaXNwbGF5UHJpY2UgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgcCA9IHRoaXMucHJvcGVydHkoKTtcbiAgICByZXR1cm4gcCA/IChwLnByaWNlIC8gMTAwKS50b0ZpeGVkKDIpIDogJzAuMDAnO1xuICB9KTtcbiAgcmVhZG9ubHkgZmlyc3RJbWFnZVVybCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBwID0gdGhpcy5wcm9wZXJ0eSgpO1xuICAgIHJldHVybiBwPy5tZWRpYT8uWzBdPy51cmwgfHwgJyc7XG4gIH0pO1xuICBtaW5EYXRlID0gbmV3IERhdGUoKTtcbiAgc2VuZGluZyA9IGZhbHNlO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBwID0gdGhpcy5wcm9wZXJ0eSgpO1xuICAgICAgaWYgKHApIHtcbiAgICAgICAgdGhpcy50aXRsZVNlcnZpY2Uuc2V0VGl0bGUocC50aXRsZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5nZXRQcm9wZXJ0eSgpO1xuICB9XG4gIG9uQW1vdW50Q2hhbmdlKGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IGlucHV0VmFsdWU6IGFueSA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG4gICAgY29uc29sZS5sb2coaW5wdXRWYWx1ZSk7XG4gICAgY29uc3QgcmVnZXggPSAvXlxcZCpcXC4/XFxkezAsMn0kLztcblxuICAgIGlmIChyZWdleC50ZXN0KGlucHV0VmFsdWUpKSB7XG4gICAgICB0aGlzLm9mZmVyLmFtb3VudCA9IGlucHV0VmFsdWU7XG4gICAgfVxuICB9XG4gIGdldFByb3BlcnR5KCkge1xuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmdldCh0aGlzLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMucHJvcGVydHkuc2V0KHJlcy5kYXRhKTtcbiAgICAgICAgLy8gdGhpcy50aXRsZVNlcnZpY2Uuc2V0VGl0bGUoYCR7dGhpcy5wcm9wZXJ0eS50aXRsZX1gKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgb25DYXRlZ29yeVNlbGVjdChldmVudDogYW55KSB7XG4gICAgdGhpcy5vZmZlclsnY2F0ZWdvcnknXSA9IGV2ZW50LnZhbHVlO1xuICB9XG4gIG9uUmVzaWRlbmN5U3RhdHVzU2VsZWN0KGV2ZW50OiBhbnkpIHt9XG4gIHNlbmRSZXF1ZXN0KCkge1xuICAgIHRoaXMuc2VuZGluZyA9IHRydWU7XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UubWFrZU9mZmVyKHRoaXMuaWQsIHRoaXMub2ZmZXIpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuc2VuZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKCdTZW50IHN1Y2Nlc3NmdWxseScpO1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC9wcm9wZXJ0aWVzL29mZmVycy8ke3Jlcy5kYXRhLmlkfWBdKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMuc2VuZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPHJvbGF0ZWNoLWNvbnRhaW5lcj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wtcmV2ZXJzZSBtZDpmbGV4LXJvdyB3LWZ1bGwgcHktMiBtYi0zIGdhcC0zXCI+XG4gICAgPGRpdiBjbGFzcz1cInctZnVsbCBtZDp3LTIvM1wiPlxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQteGwgZm9udC1ib2xkIHB5LTIgbWItM1wiPlxuICAgICAgICAgIDwhLS0gPHNwYW4gaTE4bj5PZmZlciBmb3IgPC9zcGFuPjxzcGFuPnt7IHByb3BlcnR5KCk/LnRpdGxlIDogJycgfX08L3NwYW4+IC0tPlxuICAgICAgICAgIDxzcGFuIGkxOG49XCJAQG9mZmVyRm9yXCI+T2ZmZXIgZm9yIHt7IHByb3BlcnR5KCk/LnRpdGxlIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbWQ6ZmxleC1yb3cgZ2FwLTJcIj5cbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgICAgIDxtYXQtbGFiZWwgaTE4bj5GaXJzdCBuYW1lPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cIm9mZmVyLmZpcnN0TmFtZVwiIHJlcXVpcmVkIC8+XG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgICAgIDxtYXQtbGFiZWwgaTE4bj5MYXN0IG5hbWU8L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwib2ZmZXIubGFzdE5hbWVcIiByZXF1aXJlZCAvPlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBtZDpmbGV4LXJvdyBnYXAtMlwiPlxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgICAgPG1hdC1sYWJlbCBpMThuPlBob25lPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cIm9mZmVyLnBob25lXCIgcmVxdWlyZWQgLz5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbCBpMThuPkVtYWlsPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJvZmZlci5lbWFpbFwiIHJlcXVpcmVkIC8+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgZmxvYXRMYWJlbD1cImFsd2F5c1wiPlxuICAgICAgICAgIDxtYXQtbGFiZWwgaTE4bj5Bc2tpbmcgcHJpY2U8L21hdC1sYWJlbD5cbiAgICAgICAgICA8c3BhbiBtYXRUZXh0UHJlZml4PsKjJm5ic3A7PC9zcGFuPlxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiMC4wMFwiIFsobmdNb2RlbCldPVwib2ZmZXIuYW1vdW50XCIgcmVxdWlyZWQgLz5cbiAgICAgICAgICA8IS0tIDxpbnB1dFxuICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCIwLjAwXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJmb3JtYXR0ZWRBbW91bnRcIlxuICAgICAgICAgICAgKGlucHV0KT1cIm9uQW1vdW50Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAvPiAtLT5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbCBpMThuPlRlbmFuY3kgTGVuZ3RoPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJvZmZlci50ZW5hbmN5RHVyYXRpb25cIiByZXF1aXJlZCAvPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgICA8bWF0LWxhYmVsIGkxOG4+TnVtYmVyIE9mIFRlbmFudHM8L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cIm9mZmVyLm51bWJlck9mVGVuYW50c1wiIHJlcXVpcmVkIC8+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgIDxtYXQtbGFiZWw+U3RhcnQgZGF0ZTwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU3RhcnQgZGF0ZVwiXG4gICAgICAgICAgICBbbWF0RGF0ZXBpY2tlcl09XCJzdGFydERhdGVQaWNrZXJcIlxuICAgICAgICAgICAgW21pbl09XCJtaW5EYXRlXCJcbiAgICAgICAgICAgIChmb2N1cyk9XCJzdGFydERhdGVQaWNrZXIub3BlbigpXCJcbiAgICAgICAgICAgIG5hbWU9XCJzdGFydERhdGVcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJvZmZlci5zdGFydERhdGVcIlxuICAgICAgICAgICAgKGRhdGVJbnB1dCk9XCJvZmZlci5zdGFydERhdGUgPSAkZXZlbnQudmFsdWUuZm9ybWF0KCdZWVlZLU1NLUREJylcIlxuICAgICAgICAgICAgcmVhZG9ubHlcbiAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdEljb25QcmVmaXggW2Zvcl09XCJzdGFydERhdGVQaWNrZXJcIj48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cbiAgICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI3N0YXJ0RGF0ZVBpY2tlcj48L21hdC1kYXRlcGlja2VyPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgPG1hdC1sYWJlbCBpMThuPkFwcGxpY2FudCB0eXBlPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPG1hdC1zZWxlY3QgcGxhY2Vob2xkZXI9XCJBcHBsaWNhbnQgdHlwZVwiIFsobmdNb2RlbCldPVwib2ZmZXIuYXBwbGljYW50VHlwZVwiIHJlcXVpcmVkPlxuICAgICAgICAgICAgQGZvciAoa2V5IG9mIGFwcGxpY2FudFR5cGVzOyB0cmFjayBrZXkpIHtcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImtleVwiPlxuICAgICAgICAgICAgICAgIHt7IFByb3BlcnR5QXBwbGljYW50VHlwZVtrZXldIH19XG4gICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwhLS0gc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiIC0tPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgPG1hdC1sYWJlbCBpMThuPlJlc2lkZW5jeSBzdGF0dXM8L21hdC1sYWJlbD5cbiAgICAgICAgICA8bWF0LXNlbGVjdCBwbGFjZWhvbGRlcj1cIlJlc2lkZW5jeSBzdGF0dXNcIiBbKG5nTW9kZWwpXT1cIm9mZmVyLnJlc2lkZW5jeVN0YXR1c1wiIHJlcXVpcmVkPlxuICAgICAgICAgICAgQGZvciAoc3RhdHVzIG9mIHJlc2lkZW5jeVN0YXR1cyB8IGtleXZhbHVlOyB0cmFjayBzdGF0dXMpIHtcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInN0YXR1cy5rZXlcIj5cbiAgICAgICAgICAgICAgICB7eyBzdGF0dXMudmFsdWUgfX1cbiAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDxtYXQtbGFiZWwgaTE4bj5FbXBsb3ltZW50IFN0YXR1czwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxtYXQtc2VsZWN0IHBsYWNlaG9sZGVyPVwiRW1wbG95bWVudCBTdGF0dXNcIiBbKG5nTW9kZWwpXT1cIm9mZmVyLmVtcGxveW1lbnRTdGF0dXNcIiByZXF1aXJlZD5cbiAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgZW1wbG95bWVudFN0YXR1cyB8IGtleXZhbHVlOyB0cmFjayBpdGVtKSB7XG4gICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJpdGVtLmtleVwiPlxuICAgICAgICAgICAgICAgIHt7IGl0ZW0udmFsdWUgfX1cbiAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDxtYXQtbGFiZWwgaTE4bj5BZHZlcnNlQ3JlZGl0IFN0YXR1czwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxtYXQtc2VsZWN0IHBsYWNlaG9sZGVyPVwiQWR2ZXJzZUNyZWRpdCBTdGF0dXNcIiBbKG5nTW9kZWwpXT1cIm9mZmVyLmFkdmVyc2VDcmVkaXRTdGF0dXNcIiByZXF1aXJlZD5cbiAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgYWR2ZXJzZUNyZWRpdFN0YXR1cyB8IGtleXZhbHVlOyB0cmFjayBpdGVtKSB7XG4gICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJpdGVtLmtleVwiPlxuICAgICAgICAgICAgICAgIHt7IGl0ZW0udmFsdWUgfX1cbiAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbWQgcHktMlwiIGkxOG4+WW91ciBtZXNzYWdlKE9wdGlvbmFsKTwvZGl2PlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgICA8dGV4dGFyZWEgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cIm9mZmVyLm5vdGVzXCIgY2RrVGV4dGFyZWFBdXRvc2l6ZSBjZGtBdXRvc2l6ZU1pblJvd3M9XCIzXCI+PC90ZXh0YXJlYT5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiAoY2xpY2spPVwic2VuZFJlcXVlc3QoKVwiIGkxOG4+U2VuZCByZXF1ZXN0PC9idXR0b24+IC0tPlxuICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gKGNsaWNrKT1cInNlbmRSZXF1ZXN0KClcIiBbZGlzYWJsZWRdPVwic2VuZGluZ1wiPlxuICAgICAgICA8c3BhbiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXJcIj5cbiAgICAgICAgICBAaWYgKHNlbmRpbmcpIHtcbiAgICAgICAgICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBkaWFtZXRlcj1cIjIwXCIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiBbc3R5bGUubWFyZ2luUmlnaHQucHhdPVwiOFwiPjwvbWF0LXByb2dyZXNzLXNwaW5uZXI+XG4gICAgICAgICAgfVxuICAgICAgICAgIHt7IHNlbmRpbmcgPyAnUmVxdWVzdGluZy4uLicgOiAnU2VuZCByZXF1ZXN0JyB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIG1kOnctMS8yIHB5LTIgbWItM1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInRleHQteGwgZm9udC1ib2xkIHB5LTIgbWItM1wiIGkxOG4+UHJvcGVydHkgaW5mbzwvZGl2PlxuICAgICAgPGRpdj5cbiAgICAgICAgPHJvbGF0ZWNoLXRodW1ibmFpbCBbc3JjXT1cImZpcnN0SW1hZ2VVcmwoKVwiIHNpemU9XCJzbWFsbFwiPjwvcm9sYXRlY2gtdGh1bWJuYWlsPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwicHktMyB0ZXh0LXhsIGZvbnQtYm9sZFwiPsKje3sgZGlzcGxheVByaWNlKCkgfX08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3JvbGF0ZWNoLWNvbnRhaW5lcj5cbiJdfQ==","import { Component, inject, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PropertyService } from '@rolatech/angular-services';\nimport { RouterModule } from '@angular/router';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { ContainerComponent, TabsComponent, TabComponent, ToolbarComponent, ListComponent, EmptyComponent, BaseComponent, } from '@rolatech/angular-components';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { PropertyOfferItemComponent } from '../../../components/property-offer-item/property-offer-item.component';\nimport { PropertyOfferStatus, PropertyOfferType } from '../../../interfaces';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/router\";\nexport class PropertyOfferIndexComponent extends BaseComponent {\n propertyService = inject(PropertyService);\n offers;\n offerType = PropertyOfferType;\n offerStatus = PropertyOfferStatus;\n filter = false;\n filterOptions = {\n type: '',\n status: '',\n };\n select = 0;\n links = [\n {\n name: 'All',\n icon: 'dashboard',\n },\n {\n name: 'Pending',\n icon: 'category',\n status: 'pending',\n },\n {\n name: 'Accepted',\n icon: 'category',\n status: 'accepted',\n },\n {\n name: 'Rejected',\n icon: 'category',\n status: 'rejected',\n },\n {\n name: 'Cancelled',\n icon: 'category',\n status: 'cancelled',\n },\n ];\n ngOnInit() {\n this.findOffers();\n this.route.queryParams.subscribe(({ status }) => {\n this.select = this.links.findIndex((item) => item.status === status);\n if (status) {\n this.filterOptions.status = status.toUpperCase();\n }\n else {\n delete this.filterOptions.status;\n }\n this.findOffers();\n });\n }\n findOffers() {\n const options = {\n sort: 'updatedAt desc',\n };\n const filterString = this.convertFilterOptions(this.filterOptions);\n if (filterString) {\n options['filter'] = filterString;\n }\n this.propertyService.findOffersByUser(options).subscribe({\n next: (res) => {\n this.offers = res.data;\n },\n });\n }\n findProperties(ids) { }\n resetFilter() {\n this.filterOptions = {\n type: '',\n };\n this.filter = false;\n this.findOffers();\n }\n statusCompareFn(t1, t2) {\n return t1 === t2;\n }\n convertFilterOptions(jsonObj) {\n return Object.entries(jsonObj)\n .filter(([key, value]) => value !== '' && value !== undefined)\n .map(([key, value]) => {\n return `${key}:${value}`;\n })\n .join(',');\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyOfferIndexComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyOfferIndexComponent, isStandalone: true, selector: \"rolatech-property-offer-index\", usesInheritance: true, ngImport: i0, template: \"<rolatech-container>\\n <rolatech-toolbar title=\\\"Offers\\\" large> </rolatech-toolbar>\\n <rolatech-tabs [select]=\\\"select\\\">\\n @for (item of links; track item) {\\n @if (item.status) {\\n <rolatech-tab [label]=\\\"item.name\\\" routerLink=\\\"./\\\" [queryParams]=\\\"{ status: item.status }\\\"></rolatech-tab>\\n } @else {\\n <rolatech-tab [label]=\\\"item.name\\\" routerLink=\\\"./\\\"></rolatech-tab>\\n }\\n }\\n </rolatech-tabs>\\n <rolatech-list>\\n @if (offers) {\\n @for (item of offers; track item) {\\n <rolatech-property-offer-item [routerLink]=\\\"['./', item.id]\\\" [offer]=\\\"item\\\"></rolatech-property-offer-item>\\n }\\n } @else {\\n <rolatech-empty></rolatech-empty>\\n }\\n </rolatech-list>\\n</rolatech-container>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"component\", type: ContainerComponent, selector: \"rolatech-container\" }, { kind: \"ngmodule\", type: RouterModule }, { kind: \"directive\", type: i1.RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"component\", type: TabsComponent, selector: \"rolatech-tabs\", inputs: [\"select\", \"loading\"], outputs: [\"selectChange\"] }, { kind: \"component\", type: TabComponent, selector: \"rolatech-tab\", inputs: [\"label\"] }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"component\", type: ListComponent, selector: \"rolatech-list\" }, { kind: \"component\", type: EmptyComponent, selector: \"rolatech-empty\" }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"ngmodule\", type: MatDatepickerModule }, { kind: \"ngmodule\", type: MatOptionModule }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"ngmodule\", type: MatSelectModule }, { kind: \"component\", type: PropertyOfferItemComponent, selector: \"rolatech-property-offer-item\", inputs: [\"offer\"] }], animations: [\n trigger('filter', [\n state('collapsed', style({ height: '0px', minHeight: '0' })),\n state('expanded', style({ height: '*' })),\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\n ]),\n ], encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyOfferIndexComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-offer-index', imports: [\n CommonModule,\n ContainerComponent,\n RouterModule,\n TabsComponent,\n TabComponent,\n ToolbarComponent,\n ListComponent,\n EmptyComponent,\n MatButtonModule,\n MatIconModule,\n FormsModule,\n MatFormFieldModule,\n MatDatepickerModule,\n MatOptionModule,\n MatInputModule,\n MatSelectModule,\n MatButtonModule,\n PropertyOfferItemComponent,\n ], animations: [\n trigger('filter', [\n state('collapsed', style({ height: '0px', minHeight: '0' })),\n state('expanded', style({ height: '*' })),\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\n ]),\n ], encapsulation: ViewEncapsulation.None, template: \"<rolatech-container>\\n <rolatech-toolbar title=\\\"Offers\\\" large> </rolatech-toolbar>\\n <rolatech-tabs [select]=\\\"select\\\">\\n @for (item of links; track item) {\\n @if (item.status) {\\n <rolatech-tab [label]=\\\"item.name\\\" routerLink=\\\"./\\\" [queryParams]=\\\"{ status: item.status }\\\"></rolatech-tab>\\n } @else {\\n <rolatech-tab [label]=\\\"item.name\\\" routerLink=\\\"./\\\"></rolatech-tab>\\n }\\n }\\n </rolatech-tabs>\\n <rolatech-list>\\n @if (offers) {\\n @for (item of offers; track item) {\\n <rolatech-property-offer-item [routerLink]=\\\"['./', item.id]\\\" [offer]=\\\"item\\\"></rolatech-property-offer-item>\\n }\\n } @else {\\n <rolatech-empty></rolatech-empty>\\n }\\n </rolatech-list>\\n</rolatech-container>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktb2ZmZXItaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL3BhZ2VzL3Byb3BlcnR5L3Byb3BlcnR5LW9mZmVyLWluZGV4L3Byb3BlcnR5LW9mZmVyLWluZGV4LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS9wcm9wZXJ0eS1vZmZlci1pbmRleC9wcm9wZXJ0eS1vZmZlci1pbmRleC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFnQixNQUFNLGlCQUFpQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsY0FBYyxFQUVkLGFBQWEsR0FDZCxNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sdUVBQXVFLENBQUM7QUFDbkgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQW1DN0UsTUFBTSxPQUFPLDJCQUE0QixTQUFRLGFBQWE7SUFDNUQsZUFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMxQyxNQUFNLENBQU07SUFDWixTQUFTLEdBQUcsaUJBQWlCLENBQUM7SUFDOUIsV0FBVyxHQUFHLG1CQUFtQixDQUFDO0lBQ2xDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDZixhQUFhLEdBQVE7UUFDbkIsSUFBSSxFQUFFLEVBQUU7UUFDUixNQUFNLEVBQUUsRUFBRTtLQUNYLENBQUM7SUFDRixNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ1gsS0FBSyxHQUFHO1FBQ047WUFDRSxJQUFJLEVBQUUsS0FBSztZQUNYLElBQUksRUFBRSxXQUFXO1NBQ2xCO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsU0FBUztZQUNmLElBQUksRUFBRSxVQUFVO1lBQ2hCLE1BQU0sRUFBRSxTQUFTO1NBQ2xCO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsVUFBVTtZQUNoQixJQUFJLEVBQUUsVUFBVTtZQUNoQixNQUFNLEVBQUUsVUFBVTtTQUNuQjtRQUNEO1lBQ0UsSUFBSSxFQUFFLFVBQVU7WUFDaEIsSUFBSSxFQUFFLFVBQVU7WUFDaEIsTUFBTSxFQUFFLFVBQVU7U0FDbkI7UUFDRDtZQUNFLElBQUksRUFBRSxXQUFXO1lBQ2pCLElBQUksRUFBRSxVQUFVO1lBQ2hCLE1BQU0sRUFBRSxXQUFXO1NBQ3BCO0tBQ0YsQ0FBQztJQUNGLFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFO1lBQzlDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLENBQUM7WUFDckUsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDWCxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBSSxNQUFpQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQy9ELENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO1lBQ25DLENBQUM7WUFDRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsVUFBVTtRQUNSLE1BQU0sT0FBTyxHQUFHO1lBQ2QsSUFBSSxFQUFFLGdCQUFnQjtTQUN2QixDQUFDO1FBQ0YsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNuRSxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxZQUFZLENBQUM7UUFDbkMsQ0FBQztRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3ZELElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNaLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztZQUN6QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGNBQWMsQ0FBQyxHQUFRLElBQUcsQ0FBQztJQUMzQixXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsR0FBRztZQUNuQixJQUFJLEVBQUUsRUFBRTtTQUNULENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUNELGVBQWUsQ0FBQyxFQUFPLEVBQUUsRUFBTztRQUM5QixPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUNELG9CQUFvQixDQUFDLE9BQU87UUFDMUIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQzthQUMzQixNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLEVBQUUsSUFBSSxLQUFLLEtBQUssU0FBUyxDQUFDO2FBQzdELEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDcEIsT0FBTyxHQUFHLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUM7YUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDZixDQUFDO3VHQWpGVSwyQkFBMkI7MkZBQTNCLDJCQUEyQixnSEMzRHhDLDh2QkFxQkEseUREUUksWUFBWSwrQkFDWixrQkFBa0IsOERBQ2xCLFlBQVksZ1JBQ1osYUFBYSxvSEFDYixZQUFZLDRFQUNaLGdCQUFnQixnSUFDaEIsYUFBYSwwREFDYixjQUFjLDBEQUNkLGVBQWUsOEJBQ2YsYUFBYSw4QkFDYixXQUFXLDhCQUNYLGtCQUFrQiw4QkFDbEIsbUJBQW1CLDhCQUNuQixlQUFlLDhCQUNmLGNBQWMsOEJBQ2QsZUFBZSwrQkFFZiwwQkFBMEIsOEVBSWhCO1lBQ1YsT0FBTyxDQUFDLFFBQVEsRUFBRTtnQkFDaEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUM1RCxLQUFLLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUN6QyxVQUFVLENBQUMsd0JBQXdCLEVBQUUsT0FBTyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7YUFDdEYsQ0FBQztTQUNIOzsyRkFHVSwyQkFBMkI7a0JBakN2QyxTQUFTOytCQUNFLCtCQUErQixXQUNoQzt3QkFDUCxZQUFZO3dCQUNaLGtCQUFrQjt3QkFDbEIsWUFBWTt3QkFDWixhQUFhO3dCQUNiLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixhQUFhO3dCQUNiLFdBQVc7d0JBQ1gsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsMEJBQTBCO3FCQUMzQixjQUdXO3dCQUNWLE9BQU8sQ0FBQyxRQUFRLEVBQUU7NEJBQ2hCLEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQzs0QkFDNUQsS0FBSyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQzs0QkFDekMsVUFBVSxDQUFDLHdCQUF3QixFQUFFLE9BQU8sQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO3lCQUN0RixDQUFDO3FCQUNILGlCQUNjLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBLZXlWYWx1ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUHJvcGVydHlTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItc2VydmljZXMnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdE9wdGlvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQge1xuICBDb250YWluZXJDb21wb25lbnQsXG4gIFRhYnNDb21wb25lbnQsXG4gIFRhYkNvbXBvbmVudCxcbiAgVG9vbGJhckNvbXBvbmVudCxcbiAgTGlzdENvbXBvbmVudCxcbiAgRW1wdHlDb21wb25lbnQsXG4gIEZpbHRlckNvbXBvbmVudCxcbiAgQmFzZUNvbXBvbmVudCxcbn0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyB0cmlnZ2VyLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIGFuaW1hdGUgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IFByb3BlcnR5T2ZmZXJJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9wcm9wZXJ0eS1vZmZlci1pdGVtL3Byb3BlcnR5LW9mZmVyLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFByb3BlcnR5T2ZmZXJTdGF0dXMsIFByb3BlcnR5T2ZmZXJUeXBlIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb3BlcnR5LW9mZmVyLWluZGV4JyxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBDb250YWluZXJDb21wb25lbnQsXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIFRhYnNDb21wb25lbnQsXG4gICAgVGFiQ29tcG9uZW50LFxuICAgIFRvb2xiYXJDb21wb25lbnQsXG4gICAgTGlzdENvbXBvbmVudCxcbiAgICBFbXB0eUNvbXBvbmVudCxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgICBNYXRPcHRpb25Nb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBQcm9wZXJ0eU9mZmVySXRlbUNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LW9mZmVyLWluZGV4LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb3BlcnR5LW9mZmVyLWluZGV4LmNvbXBvbmVudC5zY3NzJyxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ2ZpbHRlcicsIFtcbiAgICAgIHN0YXRlKCdjb2xsYXBzZWQnLCBzdHlsZSh7IGhlaWdodDogJzBweCcsIG1pbkhlaWdodDogJzAnIH0pKSxcbiAgICAgIHN0YXRlKCdleHBhbmRlZCcsIHN0eWxlKHsgaGVpZ2h0OiAnKicgfSkpLFxuICAgICAgdHJhbnNpdGlvbignZXhwYW5kZWQgPD0+IGNvbGxhcHNlZCcsIGFuaW1hdGUoJzIyNW1zIGN1YmljLWJlemllcigwLjQsIDAuMCwgMC4yLCAxKScpKSxcbiAgICBdKSxcbiAgXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlPZmZlckluZGV4Q29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByb3BlcnR5U2VydmljZSA9IGluamVjdChQcm9wZXJ0eVNlcnZpY2UpO1xuICBvZmZlcnM6IGFueTtcbiAgb2ZmZXJUeXBlID0gUHJvcGVydHlPZmZlclR5cGU7XG4gIG9mZmVyU3RhdHVzID0gUHJvcGVydHlPZmZlclN0YXR1cztcbiAgZmlsdGVyID0gZmFsc2U7XG4gIGZpbHRlck9wdGlvbnM6IGFueSA9IHtcbiAgICB0eXBlOiAnJyxcbiAgICBzdGF0dXM6ICcnLFxuICB9O1xuICBzZWxlY3QgPSAwO1xuICBsaW5rcyA9IFtcbiAgICB7XG4gICAgICBuYW1lOiAnQWxsJyxcbiAgICAgIGljb246ICdkYXNoYm9hcmQnLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ1BlbmRpbmcnLFxuICAgICAgaWNvbjogJ2NhdGVnb3J5JyxcbiAgICAgIHN0YXR1czogJ3BlbmRpbmcnLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ0FjY2VwdGVkJyxcbiAgICAgIGljb246ICdjYXRlZ29yeScsXG4gICAgICBzdGF0dXM6ICdhY2NlcHRlZCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnUmVqZWN0ZWQnLFxuICAgICAgaWNvbjogJ2NhdGVnb3J5JyxcbiAgICAgIHN0YXR1czogJ3JlamVjdGVkJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdDYW5jZWxsZWQnLFxuICAgICAgaWNvbjogJ2NhdGVnb3J5JyxcbiAgICAgIHN0YXR1czogJ2NhbmNlbGxlZCcsXG4gICAgfSxcbiAgXTtcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5maW5kT2ZmZXJzKCk7XG4gICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoKHsgc3RhdHVzIH0pID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0ID0gdGhpcy5saW5rcy5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0uc3RhdHVzID09PSBzdGF0dXMpO1xuICAgICAgaWYgKHN0YXR1cykge1xuICAgICAgICB0aGlzLmZpbHRlck9wdGlvbnMuc3RhdHVzID0gKHN0YXR1cyBhcyBzdHJpbmcpLnRvVXBwZXJDYXNlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZWxldGUgdGhpcy5maWx0ZXJPcHRpb25zLnN0YXR1cztcbiAgICAgIH1cbiAgICAgIHRoaXMuZmluZE9mZmVycygpO1xuICAgIH0pO1xuICB9XG4gIGZpbmRPZmZlcnMoKSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIHNvcnQ6ICd1cGRhdGVkQXQgZGVzYycsXG4gICAgfTtcbiAgICBjb25zdCBmaWx0ZXJTdHJpbmcgPSB0aGlzLmNvbnZlcnRGaWx0ZXJPcHRpb25zKHRoaXMuZmlsdGVyT3B0aW9ucyk7XG4gICAgaWYgKGZpbHRlclN0cmluZykge1xuICAgICAgb3B0aW9uc1snZmlsdGVyJ10gPSBmaWx0ZXJTdHJpbmc7XG4gICAgfVxuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmZpbmRPZmZlcnNCeVVzZXIob3B0aW9ucykuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5vZmZlcnMgPSByZXMuZGF0YTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgZmluZFByb3BlcnRpZXMoaWRzOiBhbnkpIHt9XG4gIHJlc2V0RmlsdGVyKCkge1xuICAgIHRoaXMuZmlsdGVyT3B0aW9ucyA9IHtcbiAgICAgIHR5cGU6ICcnLFxuICAgIH07XG4gICAgdGhpcy5maWx0ZXIgPSBmYWxzZTtcbiAgICB0aGlzLmZpbmRPZmZlcnMoKTtcbiAgfVxuICBzdGF0dXNDb21wYXJlRm4odDE6IGFueSwgdDI6IGFueSkge1xuICAgIHJldHVybiB0MSA9PT0gdDI7XG4gIH1cbiAgY29udmVydEZpbHRlck9wdGlvbnMoanNvbk9iaikge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhqc29uT2JqKVxuICAgICAgLmZpbHRlcigoW2tleSwgdmFsdWVdKSA9PiB2YWx1ZSAhPT0gJycgJiYgdmFsdWUgIT09IHVuZGVmaW5lZClcbiAgICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICByZXR1cm4gYCR7a2V5fToke3ZhbHVlfWA7XG4gICAgICB9KVxuICAgICAgLmpvaW4oJywnKTtcbiAgfVxufVxuIiwiPHJvbGF0ZWNoLWNvbnRhaW5lcj5cbiAgPHJvbGF0ZWNoLXRvb2xiYXIgdGl0bGU9XCJPZmZlcnNcIiBsYXJnZT4gPC9yb2xhdGVjaC10b29sYmFyPlxuICA8cm9sYXRlY2gtdGFicyBbc2VsZWN0XT1cInNlbGVjdFwiPlxuICAgIEBmb3IgKGl0ZW0gb2YgbGlua3M7IHRyYWNrIGl0ZW0pIHtcbiAgICAgIEBpZiAoaXRlbS5zdGF0dXMpIHtcbiAgICAgICAgPHJvbGF0ZWNoLXRhYiBbbGFiZWxdPVwiaXRlbS5uYW1lXCIgcm91dGVyTGluaz1cIi4vXCIgW3F1ZXJ5UGFyYW1zXT1cInsgc3RhdHVzOiBpdGVtLnN0YXR1cyB9XCI+PC9yb2xhdGVjaC10YWI+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPHJvbGF0ZWNoLXRhYiBbbGFiZWxdPVwiaXRlbS5uYW1lXCIgcm91dGVyTGluaz1cIi4vXCI+PC9yb2xhdGVjaC10YWI+XG4gICAgICB9XG4gICAgfVxuICA8L3JvbGF0ZWNoLXRhYnM+XG4gIDxyb2xhdGVjaC1saXN0PlxuICAgIEBpZiAob2ZmZXJzKSB7XG4gICAgICBAZm9yIChpdGVtIG9mIG9mZmVyczsgdHJhY2sgaXRlbSkge1xuICAgICAgICA8cm9sYXRlY2gtcHJvcGVydHktb2ZmZXItaXRlbSBbcm91dGVyTGlua109XCJbJy4vJywgaXRlbS5pZF1cIiBbb2ZmZXJdPVwiaXRlbVwiPjwvcm9sYXRlY2gtcHJvcGVydHktb2ZmZXItaXRlbT5cbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxyb2xhdGVjaC1lbXB0eT48L3JvbGF0ZWNoLWVtcHR5PlxuICAgIH1cbiAgPC9yb2xhdGVjaC1saXN0PlxuPC9yb2xhdGVjaC1jb250YWluZXI+XG4iXX0=","import { Component, input } from '@angular/core';\nimport { PropertyViewingStatus } from '../../interfaces';\nimport { MatIconModule } from '@angular/material/icon';\nimport { FixedPipe } from '@rolatech/angular-common';\nimport { ThumbnailComponent, ImagePlaceholderComponent } from '@rolatech/angular-components';\nimport * as i0 from \"@angular/core\";\nexport class PropertyViewingItemComponent {\n viewing = input.required(...(ngDevMode ? [{ debugName: \"viewing\" }] : []));\n status = PropertyViewingStatus;\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyViewingItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyViewingItemComponent, isStandalone: true, selector: \"rolatech-property-viewing-item\", inputs: { viewing: { classPropertyName: \"viewing\", publicName: \"viewing\", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: \"<div class=\\\"flex flex-col hover:bg-[--rt-raised-background] cursor-pointer p-3\\\">\\n <div>\\n <div class=\\\"flex justify-between w-full mb-2\\\">\\n <a class=\\\"flex items-center gap-3\\\">\\n <span>Viewing ID: {{ viewing().id }}</span>\\n </a>\\n <span class=\\\"font-medium text-sm\\\">{{ status[viewing().status] }}</span>\\n </div>\\n <div class=\\\"flex flex-col overflow-x-scroll scrollbar-hide\\\">\\n <div class=\\\"flex flex-row py-2\\\">\\n @if (viewing().property.media) {\\n <div class=\\\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\\\">\\n @defer {\\n <rolatech-thumbnail [src]=\\\"viewing().property.media[0].url\\\" size=\\\"medium\\\" mode=\\\"full\\\"> </rolatech-thumbnail>\\n } @placeholder {\\n <div class=\\\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\\\"></div>\\n }\\n </div>\\n } @else {\\n <div class=\\\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\\\">\\n <rolatech-image-placeholder></rolatech-image-placeholder>\\n </div>\\n }\\n <div class=\\\"flex w-full justify-between\\\">\\n <div class=\\\"flex justify-between w-full\\\">\\n <div class=\\\"flex flex-col\\\">\\n <div>{{ viewing().property.title }}</div>\\n <div class=\\\"inline-flex gap-1 mt-2\\\">\\n <div>\\n <span class=\\\"mr-1\\\">{{ viewing().property.bedrooms }}</span>\\n <span i18n>Bedrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ viewing().property.bathrooms }}</span>\\n <span i18n>Bathrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ viewing().property.receptions }}</span>\\n <span i18n>Receptions</span>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"text-right\\\">\\n <div class=\\\"text-sm\\\">\\u00A3{{ viewing().property.price | fixed }}</div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: ImagePlaceholderComponent, selector: \"rolatech-image-placeholder\", inputs: [\"ratio\"] }, { kind: \"pipe\", type: FixedPipe, name: \"fixed\" }], deferBlockDependencies: [() => [ThumbnailComponent]] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyViewingItemComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-viewing-item', imports: [MatIconModule, ThumbnailComponent, ImagePlaceholderComponent, FixedPipe], template: \"<div class=\\\"flex flex-col hover:bg-[--rt-raised-background] cursor-pointer p-3\\\">\\n <div>\\n <div class=\\\"flex justify-between w-full mb-2\\\">\\n <a class=\\\"flex items-center gap-3\\\">\\n <span>Viewing ID: {{ viewing().id }}</span>\\n </a>\\n <span class=\\\"font-medium text-sm\\\">{{ status[viewing().status] }}</span>\\n </div>\\n <div class=\\\"flex flex-col overflow-x-scroll scrollbar-hide\\\">\\n <div class=\\\"flex flex-row py-2\\\">\\n @if (viewing().property.media) {\\n <div class=\\\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\\\">\\n @defer {\\n <rolatech-thumbnail [src]=\\\"viewing().property.media[0].url\\\" size=\\\"medium\\\" mode=\\\"full\\\"> </rolatech-thumbnail>\\n } @placeholder {\\n <div class=\\\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\\\"></div>\\n }\\n </div>\\n } @else {\\n <div class=\\\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\\\">\\n <rolatech-image-placeholder></rolatech-image-placeholder>\\n </div>\\n }\\n <div class=\\\"flex w-full justify-between\\\">\\n <div class=\\\"flex justify-between w-full\\\">\\n <div class=\\\"flex flex-col\\\">\\n <div>{{ viewing().property.title }}</div>\\n <div class=\\\"inline-flex gap-1 mt-2\\\">\\n <div>\\n <span class=\\\"mr-1\\\">{{ viewing().property.bedrooms }}</span>\\n <span i18n>Bedrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ viewing().property.bathrooms }}</span>\\n <span i18n>Bathrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ viewing().property.receptions }}</span>\\n <span i18n>Receptions</span>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"text-right\\\">\\n <div class=\\\"text-sm\\\">\\u00A3{{ viewing().property.price | fixed }}</div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktdmlld2luZy1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9jb21wb25lbnRzL3Byb3BlcnR5LXZpZXdpbmctaXRlbS9wcm9wZXJ0eS12aWV3aW5nLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktdmlld2luZy1pdGVtL3Byb3BlcnR5LXZpZXdpbmctaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFZLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQW1CLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFRN0YsTUFBTSxPQUFPLDRCQUE0QjtJQUN2QyxPQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsa0RBQW1CLENBQUM7SUFDNUMsTUFBTSxHQUFRLHFCQUFxQixDQUFDO3VHQUZ6Qiw0QkFBNEI7MkZBQTVCLDRCQUE0QixtT0NaekMsbW9FQW1EQSx5REQzQ1ksYUFBYSwrQkFBc0IseUJBQXlCLHFGQUFFLFNBQVMsb0RBQXhELGtCQUFrQjs7MkZBSWhDLDRCQUE0QjtrQkFOeEMsU0FBUzsrQkFDRSxnQ0FBZ0MsV0FDakMsQ0FBQyxhQUFhLEVBQUUsa0JBQWtCLEVBQUUseUJBQXlCLEVBQUUsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb3BlcnR5Vmlld2luZywgUHJvcGVydHlWaWV3aW5nU3RhdHVzIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBGaXhlZFBpcGUgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21tb24nO1xuaW1wb3J0IHsgVGh1bWJuYWlsQ29tcG9uZW50LCBJbWFnZVBsYWNlaG9sZGVyQ29tcG9uZW50IH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb3BlcnR5LXZpZXdpbmctaXRlbScsXG4gIGltcG9ydHM6IFtNYXRJY29uTW9kdWxlLCBUaHVtYm5haWxDb21wb25lbnQsIEltYWdlUGxhY2Vob2xkZXJDb21wb25lbnQsIEZpeGVkUGlwZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS12aWV3aW5nLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHJvcGVydHktdmlld2luZy1pdGVtLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlWaWV3aW5nSXRlbUNvbXBvbmVudCB7XG4gIHZpZXdpbmcgPSBpbnB1dC5yZXF1aXJlZDxQcm9wZXJ0eVZpZXdpbmc+KCk7XG4gIHN0YXR1czogYW55ID0gUHJvcGVydHlWaWV3aW5nU3RhdHVzO1xufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgaG92ZXI6YmctWy0tcnQtcmFpc2VkLWJhY2tncm91bmRdIGN1cnNvci1wb2ludGVyIHAtM1wiPlxuICA8ZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiB3LWZ1bGwgbWItMlwiPlxuICAgICAgPGEgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgICA8c3Bhbj5WaWV3aW5nIElEOiB7eyB2aWV3aW5nKCkuaWQgfX08L3NwYW4+XG4gICAgICA8L2E+XG4gICAgICA8c3BhbiBjbGFzcz1cImZvbnQtbWVkaXVtIHRleHQtc21cIj57eyBzdGF0dXNbdmlld2luZygpLnN0YXR1c10gfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgb3ZlcmZsb3cteC1zY3JvbGwgc2Nyb2xsYmFyLWhpZGVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IHB5LTJcIj5cbiAgICAgICAgQGlmICh2aWV3aW5nKCkucHJvcGVydHkubWVkaWEpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWluLXctMjQgdy0zNiBvYmplY3QtY292ZXIgYXNwZWN0LXZpZGVvIHJvdW5kZWQtbGcgbXItM1wiPlxuICAgICAgICAgICAgQGRlZmVyIHtcbiAgICAgICAgICAgICAgPHJvbGF0ZWNoLXRodW1ibmFpbCBbc3JjXT1cInZpZXdpbmcoKS5wcm9wZXJ0eS5tZWRpYVswXS51cmxcIiBzaXplPVwibWVkaXVtXCIgbW9kZT1cImZ1bGxcIj4gPC9yb2xhdGVjaC10aHVtYm5haWw+XG4gICAgICAgICAgICB9IEBwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiZy1bLS1ydC1yYWlzZWQtYmFja2dyb3VuZF0gaC1mdWxsIHctZnVsbCBvYmplY3QtY292ZXIgYXNwZWN0LXZpZGVvIHJvdW5kZWQtbGdcIj48L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1pbi13LTI0IHctMzYgb2JqZWN0LWNvdmVyIGFzcGVjdC12aWRlbyByb3VuZGVkLWxnIG1yLTNcIj5cbiAgICAgICAgICAgIDxyb2xhdGVjaC1pbWFnZS1wbGFjZWhvbGRlcj48L3JvbGF0ZWNoLWltYWdlLXBsYWNlaG9sZGVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IHctZnVsbCBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gdy1mdWxsXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxuICAgICAgICAgICAgICA8ZGl2Pnt7IHZpZXdpbmcoKS5wcm9wZXJ0eS50aXRsZSB9fTwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5saW5lLWZsZXggZ2FwLTEgbXQtMlwiPlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yLTFcIj57eyB2aWV3aW5nKCkucHJvcGVydHkuYmVkcm9vbXMgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBpMThuPkJlZHJvb21zPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yLTFcIj57eyB2aWV3aW5nKCkucHJvcGVydHkuYmF0aHJvb21zIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gaTE4bj5CYXRocm9vbXM8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXItMVwiPnt7IHZpZXdpbmcoKS5wcm9wZXJ0eS5yZWNlcHRpb25zIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gaTE4bj5SZWNlcHRpb25zPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtcmlnaHRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc21cIj7Co3t7IHZpZXdpbmcoKS5wcm9wZXJ0eS5wcmljZSB8IGZpeGVkIH19PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==","import { Component, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PropertyService } from '@rolatech/angular-services';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { RouterModule } from '@angular/router';\nimport { ContainerComponent, TabsComponent, TabComponent, ToolbarComponent, ListComponent, EmptyComponent, BaseComponent, } from '@rolatech/angular-components';\nimport { PropertyViewingItemComponent } from '../../../components/property-viewing-item/property-viewing-item.component';\nimport { PropertyApplicantType, PropertyViewerCategory, PropertyViewingStatus } from '../../../interfaces';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/router\";\nexport class PropertyViewingIndexComponent extends BaseComponent {\n propertyService = inject(PropertyService);\n viewings;\n viewerCategory = PropertyViewerCategory;\n tenantCategory = PropertyApplicantType;\n viewingStatus = PropertyViewingStatus;\n filter = false;\n filterOptions = {\n type: '',\n category: '',\n status: '',\n };\n select = 0;\n links = [\n {\n name: 'All',\n icon: 'dashboard',\n },\n {\n name: 'Completed',\n icon: 'category',\n status: 'completed',\n },\n {\n name: 'Cancelled',\n icon: 'category',\n status: 'cancelled',\n },\n ];\n ngOnInit() {\n this.route.queryParams.subscribe(({ status }) => {\n this.select = this.links.findIndex((item) => item.status === status);\n if (status) {\n this.filterOptions.status = status.toUpperCase();\n }\n else {\n delete this.filterOptions.status;\n }\n this.findViewings();\n });\n }\n findViewings() {\n const options = {\n sort: 'updatedAt desc',\n };\n const filterString = this.convertFilterOptions(this.filterOptions);\n if (filterString) {\n options['filter'] = filterString;\n }\n this.propertyService.findViewingsByUser(options).subscribe({\n next: (res) => {\n this.viewings = res.data;\n },\n });\n }\n findProperties(ids) { }\n resetFilter() {\n this.filterOptions = {\n type: '',\n };\n this.filter = false;\n this.findViewings();\n }\n statusCompareFn(t1, t2) {\n return t1 === t2;\n }\n convertFilterOptions(jsonObj) {\n return Object.entries(jsonObj)\n .filter(([key, value]) => value !== '' && value !== undefined)\n .map(([key, value]) => {\n return `${key}:${value}`;\n })\n .join(',');\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyViewingIndexComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyViewingIndexComponent, isStandalone: true, selector: \"rolatech-property-viewing-index\", usesInheritance: true, ngImport: i0, template: \"<rolatech-container>\\n <rolatech-toolbar title=\\\"Viewings\\\" large> </rolatech-toolbar>\\n <rolatech-tabs [select]=\\\"select\\\">\\n @for (item of links; track item) {\\n @if (item.status) {\\n <rolatech-tab [label]=\\\"item.name\\\" routerLink=\\\"./\\\" [queryParams]=\\\"{ status: item.status }\\\"></rolatech-tab>\\n } @else {\\n <rolatech-tab [label]=\\\"item.name\\\" routerLink=\\\"./\\\"></rolatech-tab>\\n }\\n }\\n </rolatech-tabs>\\n <rolatech-list>\\n @if (viewings) {\\n @for (item of viewings; track item) {\\n <rolatech-property-viewing-item [routerLink]=\\\"['./', item.id]\\\" [viewing]=\\\"item\\\"></rolatech-property-viewing-item>\\n }\\n } @else {\\n <rolatech-empty></rolatech-empty>\\n }\\n </rolatech-list>\\n</rolatech-container>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"component\", type: ContainerComponent, selector: \"rolatech-container\" }, { kind: \"ngmodule\", type: RouterModule }, { kind: \"directive\", type: i1.RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"component\", type: TabsComponent, selector: \"rolatech-tabs\", inputs: [\"select\", \"loading\"], outputs: [\"selectChange\"] }, { kind: \"component\", type: TabComponent, selector: \"rolatech-tab\", inputs: [\"label\"] }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"component\", type: ListComponent, selector: \"rolatech-list\" }, { kind: \"component\", type: EmptyComponent, selector: \"rolatech-empty\" }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"ngmodule\", type: MatDatepickerModule }, { kind: \"ngmodule\", type: MatOptionModule }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"ngmodule\", type: MatSelectModule }, { kind: \"component\", type: PropertyViewingItemComponent, selector: \"rolatech-property-viewing-item\", inputs: [\"viewing\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyViewingIndexComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-viewing-index', imports: [\n CommonModule,\n ContainerComponent,\n RouterModule,\n TabsComponent,\n TabComponent,\n ToolbarComponent,\n ListComponent,\n EmptyComponent,\n MatButtonModule,\n MatIconModule,\n FormsModule,\n MatFormFieldModule,\n MatDatepickerModule,\n MatOptionModule,\n MatInputModule,\n MatSelectModule,\n MatButtonModule,\n PropertyViewingItemComponent,\n ], template: \"<rolatech-container>\\n <rolatech-toolbar title=\\\"Viewings\\\" large> </rolatech-toolbar>\\n <rolatech-tabs [select]=\\\"select\\\">\\n @for (item of links; track item) {\\n @if (item.status) {\\n <rolatech-tab [label]=\\\"item.name\\\" routerLink=\\\"./\\\" [queryParams]=\\\"{ status: item.status }\\\"></rolatech-tab>\\n } @else {\\n <rolatech-tab [label]=\\\"item.name\\\" routerLink=\\\"./\\\"></rolatech-tab>\\n }\\n }\\n </rolatech-tabs>\\n <rolatech-list>\\n @if (viewings) {\\n @for (item of viewings; track item) {\\n <rolatech-property-viewing-item [routerLink]=\\\"['./', item.id]\\\" [viewing]=\\\"item\\\"></rolatech-property-viewing-item>\\n }\\n } @else {\\n <rolatech-empty></rolatech-empty>\\n }\\n </rolatech-list>\\n</rolatech-container>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktdmlld2luZy1pbmRleC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHkvcHJvcGVydHktdmlld2luZy1pbmRleC9wcm9wZXJ0eS12aWV3aW5nLWluZGV4LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS9wcm9wZXJ0eS12aWV3aW5nLWluZGV4L3Byb3BlcnR5LXZpZXdpbmctaW5kZXguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBZ0IsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFp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bkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgS2V5VmFsdWVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFByb3BlcnR5U2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLXNlcnZpY2VzJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdE9wdGlvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgQ29udGFpbmVyQ29tcG9uZW50LFxuICBUYWJzQ29tcG9uZW50LFxuICBUYWJDb21wb25lbnQsXG4gIFRvb2xiYXJDb21wb25lbnQsXG4gIExpc3RDb21wb25lbnQsXG4gIEVtcHR5Q29tcG9uZW50LFxuICBCYXNlQ29tcG9uZW50LFxufSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IFByb3BlcnR5Vmlld2luZ0l0ZW1Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL3Byb3BlcnR5LXZpZXdpbmctaXRlbS9wcm9wZXJ0eS12aWV3aW5nLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFByb3BlcnR5QXBwbGljYW50VHlwZSwgUHJvcGVydHlWaWV3ZXJDYXRlZ29yeSwgUHJvcGVydHlWaWV3aW5nU3RhdHVzIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb3BlcnR5LXZpZXdpbmctaW5kZXgnLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIENvbnRhaW5lckNvbXBvbmVudCxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgVGFic0NvbXBvbmVudCxcbiAgICBUYWJDb21wb25lbnQsXG4gICAgVG9vbGJhckNvbXBvbmVudCxcbiAgICBMaXN0Q29tcG9uZW50LFxuICAgIEVtcHR5Q29tcG9uZW50LFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxuICAgIE1hdE9wdGlvbk1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIFByb3BlcnR5Vmlld2luZ0l0ZW1Db21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS12aWV3aW5nLWluZGV4LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb3BlcnR5LXZpZXdpbmctaW5kZXguY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eVZpZXdpbmdJbmRleENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcm9wZXJ0eVNlcnZpY2UgPSBpbmplY3QoUHJvcGVydHlTZXJ2aWNlKTtcbiAgdmlld2luZ3M6IGFueTtcbiAgdmlld2VyQ2F0ZWdvcnkgPSBQcm9wZXJ0eVZpZXdlckNhdGVnb3J5O1xuICB0ZW5hbnRDYXRlZ29yeSA9IFByb3BlcnR5QXBwbGljYW50VHlwZTtcbiAgdmlld2luZ1N0YXR1cyA9IFByb3BlcnR5Vmlld2luZ1N0YXR1cztcbiAgZmlsdGVyID0gZmFsc2U7XG4gIGZpbHRlck9wdGlvbnM6IGFueSA9IHtcbiAgICB0eXBlOiAnJyxcbiAgICBjYXRlZ29yeTogJycsXG4gICAgc3RhdHVzOiAnJyxcbiAgfTtcbiAgc2VsZWN0ID0gMDtcbiAgbGlua3MgPSBbXG4gICAge1xuICAgICAgbmFtZTogJ0FsbCcsXG4gICAgICBpY29uOiAnZGFzaGJvYXJkJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdDb21wbGV0ZWQnLFxuICAgICAgaWNvbjogJ2NhdGVnb3J5JyxcbiAgICAgIHN0YXR1czogJ2NvbXBsZXRlZCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnQ2FuY2VsbGVkJyxcbiAgICAgIGljb246ICdjYXRlZ29yeScsXG4gICAgICBzdGF0dXM6ICdjYW5jZWxsZWQnLFxuICAgIH0sXG4gIF07XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoKHsgc3RhdHVzIH0pID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0ID0gdGhpcy5saW5rcy5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0uc3RhdHVzID09PSBzdGF0dXMpO1xuICAgICAgaWYgKHN0YXR1cykge1xuICAgICAgICB0aGlzLmZpbHRlck9wdGlvbnMuc3RhdHVzID0gKHN0YXR1cyBhcyBzdHJpbmcpLnRvVXBwZXJDYXNlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZWxldGUgdGhpcy5maWx0ZXJPcHRpb25zLnN0YXR1cztcbiAgICAgIH1cbiAgICAgIHRoaXMuZmluZFZpZXdpbmdzKCk7XG4gICAgfSk7XG4gIH1cbiAgZmluZFZpZXdpbmdzKCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBzb3J0OiAndXBkYXRlZEF0IGRlc2MnLFxuICAgIH07XG4gICAgY29uc3QgZmlsdGVyU3RyaW5nID0gdGhpcy5jb252ZXJ0RmlsdGVyT3B0aW9ucyh0aGlzLmZpbHRlck9wdGlvbnMpO1xuICAgIGlmIChmaWx0ZXJTdHJpbmcpIHtcbiAgICAgIG9wdGlvbnNbJ2ZpbHRlciddID0gZmlsdGVyU3RyaW5nO1xuICAgIH1cbiAgICB0aGlzLnByb3BlcnR5U2VydmljZS5maW5kVmlld2luZ3NCeVVzZXIob3B0aW9ucykuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy52aWV3aW5ncyA9IHJlcy5kYXRhO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBmaW5kUHJvcGVydGllcyhpZHM6IGFueSkge31cbiAgcmVzZXRGaWx0ZXIoKSB7XG4gICAgdGhpcy5maWx0ZXJPcHRpb25zID0ge1xuICAgICAgdHlwZTogJycsXG4gICAgfTtcbiAgICB0aGlzLmZpbHRlciA9IGZhbHNlO1xuICAgIHRoaXMuZmluZFZpZXdpbmdzKCk7XG4gIH1cbiAgc3RhdHVzQ29tcGFyZUZuKHQxOiBhbnksIHQyOiBhbnkpIHtcbiAgICByZXR1cm4gdDEgPT09IHQyO1xuICB9XG4gIGNvbnZlcnRGaWx0ZXJPcHRpb25zKGpzb25PYmopIHtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoanNvbk9iailcbiAgICAgIC5maWx0ZXIoKFtrZXksIHZhbHVlXSkgPT4gdmFsdWUgIT09ICcnICYmIHZhbHVlICE9PSB1bmRlZmluZWQpXG4gICAgICAubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgcmV0dXJuIGAke2tleX06JHt2YWx1ZX1gO1xuICAgICAgfSlcbiAgICAgIC5qb2luKCcsJyk7XG4gIH1cbn1cbiIsIjxyb2xhdGVjaC1jb250YWluZXI+XG4gIDxyb2xhdGVjaC10b29sYmFyIHRpdGxlPVwiVmlld2luZ3NcIiBsYXJnZT4gPC9yb2xhdGVjaC10b29sYmFyPlxuICA8cm9sYXRlY2gtdGFicyBbc2VsZWN0XT1cInNlbGVjdFwiPlxuICAgIEBmb3IgKGl0ZW0gb2YgbGlua3M7IHRyYWNrIGl0ZW0pIHtcbiAgICAgIEBpZiAoaXRlbS5zdGF0dXMpIHtcbiAgICAgICAgPHJvbGF0ZWNoLXRhYiBbbGFiZWxdPVwiaXRlbS5uYW1lXCIgcm91dGVyTGluaz1cIi4vXCIgW3F1ZXJ5UGFyYW1zXT1cInsgc3RhdHVzOiBpdGVtLnN0YXR1cyB9XCI+PC9yb2xhdGVjaC10YWI+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPHJvbGF0ZWNoLXRhYiBbbGFiZWxdPVwiaXRlbS5uYW1lXCIgcm91dGVyTGluaz1cIi4vXCI+PC9yb2xhdGVjaC10YWI+XG4gICAgICB9XG4gICAgfVxuICA8L3JvbGF0ZWNoLXRhYnM+XG4gIDxyb2xhdGVjaC1saXN0PlxuICAgIEBpZiAodmlld2luZ3MpIHtcbiAgICAgIEBmb3IgKGl0ZW0gb2Ygdmlld2luZ3M7IHRyYWNrIGl0ZW0pIHtcbiAgICAgICAgPHJvbGF0ZWNoLXByb3BlcnR5LXZpZXdpbmctaXRlbSBbcm91dGVyTGlua109XCJbJy4vJywgaXRlbS5pZF1cIiBbdmlld2luZ109XCJpdGVtXCI+PC9yb2xhdGVjaC1wcm9wZXJ0eS12aWV3aW5nLWl0ZW0+XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICA8cm9sYXRlY2gtZW1wdHk+PC9yb2xhdGVjaC1lbXB0eT5cbiAgICB9XG4gIDwvcm9sYXRlY2gtbGlzdD5cbjwvcm9sYXRlY2gtY29udGFpbmVyPlxuIl19","import { Pipe } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class DuePipe {\n transform(value, ...args) {\n if (value) {\n const date = new Date(value);\n date.setDate(date.getDate() - 3);\n return date.toISOString().split('T')[0];\n }\n else {\n return '';\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: DuePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\n static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.2.0\", ngImport: i0, type: DuePipe, isStandalone: true, name: \"due\" });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: DuePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'due',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHkvcHJvcGVydHktb2ZmZXItZGV0YWlsL2R1ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUtwRCxNQUFNLE9BQU8sT0FBTztJQUNsQixTQUFTLENBQUMsS0FBVSxFQUFFLEdBQUcsSUFBVztRQUNsQyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDakMsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFDLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO0lBQ0gsQ0FBQzt1R0FUVSxPQUFPO3FHQUFQLE9BQU87OzJGQUFQLE9BQU87a0JBSG5CLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLEtBQUs7aUJBQ1oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2R1ZScsXG59KVxuZXhwb3J0IGNsYXNzIER1ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKHZhbHVlOiBhbnksIC4uLmFyZ3M6IGFueVtdKTogYW55IHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh2YWx1ZSk7XG4gICAgICBkYXRlLnNldERhdGUoZGF0ZS5nZXREYXRlKCkgLSAzKTtcbiAgICAgIHJldHVybiBkYXRlLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfVxufVxuIl19","import { Component, inject } from '@angular/core';\nimport { Location, NgClass } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { APP_CONFIG, FixedPipe } from '@rolatech/angular-common';\nimport { SpinnerComponent, ContainerComponent, ToolbarComponent, BaseComponent, ThumbnailComponent, } from '@rolatech/angular-components';\nimport { PropertyService } from '@rolatech/angular-services';\nimport { PropertyOfferStatus, PropertyOfferTimelineStatus } from '../../../interfaces';\nimport { AuthUserService } from '@rolatech/angular-auth';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { RouterLink } from '@angular/router';\nimport { DuePipe } from './due.pipe';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\nimport * as i2 from \"@angular/material/icon\";\nimport * as i3 from \"@angular/material/progress-spinner\";\nexport class PropertyOfferDetailComponent extends BaseComponent {\n propertyService = inject(PropertyService);\n authUserService = inject(AuthUserService);\n offer;\n info = false;\n loadingTimeline = false;\n timelineData;\n status = PropertyOfferStatus;\n timelineStatus = PropertyOfferTimelineStatus;\n env = inject(APP_CONFIG);\n location = inject(Location);\n property;\n agent;\n checkouting = false;\n holdingDeposit;\n securityDeposit;\n async ngOnInit() {\n this.route.params.subscribe((params) => {\n const id = params['id'];\n this.get(id);\n });\n this.route.queryParams.subscribe(async (params) => {\n const sessionId = params['session_id'];\n if (sessionId) {\n this.propertyService.checkOfferPaymentStatus(this.id, sessionId).subscribe({\n next: (res) => {\n if (res.status === 'paid') {\n this.offer.status = PropertyOfferStatus.HOLDING_DEPOSIT_PAID;\n // Show success UI\n }\n },\n });\n }\n });\n }\n ngOnDestroy() {\n this.checkouting = false;\n }\n get(id) {\n this.propertyService.getOffer(id).subscribe({\n next: (res) => {\n this.offer = res.data;\n this.getProperty(this.offer.propertyId);\n this.calculateDeposit();\n // this.findAgentInfo();\n },\n });\n }\n timeline() {\n this.info = true;\n this.loadingTimeline = true;\n this.propertyService.offerTimeline(this.id).subscribe({\n next: (res) => {\n this.timelineData = res.data;\n this.loadingTimeline = false;\n },\n error: (error) => {\n this.loadingTimeline = false;\n },\n });\n }\n getProperty(propertyId) {\n this.propertyService.get(propertyId).subscribe({\n next: (res) => {\n this.property = res.data;\n this.getAgentPublicInfo(this.property.agentId);\n },\n });\n }\n getAgentPublicInfo(agentId) {\n this.authUserService.getPublicUserInfo(agentId).subscribe({\n next: (res) => {\n this.agent = res;\n },\n });\n }\n cancel() {\n this.propertyService.cancelOffer(this.id).subscribe({\n next: (res) => {\n this.offer.status = 'CANCELLED';\n this.snackBarService.open('Cancelled');\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n calculateDeposit() {\n const price = this.offer.item.price;\n this.holdingDeposit = ((price * 12) / 52 / 100).toFixed(2);\n this.securityDeposit = (((price * 12) / 52 / 100) * 5).toFixed(2);\n }\n holdingDepositCheckout() {\n this.checkouting = true;\n const data = {\n successUrl: window.location.href + '?session_id={CHECKOUT_SESSION_ID}',\n cancelUrl: window.location.href,\n };\n this.propertyService.createHoldingDepositCheckout(this.id, data).subscribe({\n next: (res) => {\n window.location.href = res.data.checkoutUrl;\n },\n error: (error) => {\n this.checkouting = false;\n },\n });\n }\n securityDepositCheckout() {\n this.checkouting = true;\n const data = {\n successUrl: window.location.href + '?session_id={CHECKOUT_SESSION_ID}',\n cancelUrl: window.location.href,\n };\n this.propertyService.createSecurityDepositCheckout(this.id, data).subscribe({\n next: (res) => {\n window.location.href = res.data.checkoutUrl;\n },\n error: (error) => {\n this.checkouting = false;\n },\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyOfferDetailComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyOfferDetailComponent, isStandalone: true, selector: \"rolatech-property-offer-detail\", usesInheritance: true, ngImport: i0, template: \"@if (offer) {\\n <rolatech-container>\\n <rolatech-toolbar [title]=\\\"status[offer.status]\\\" large link=\\\"../\\\">\\n <button mat-flat-button (click)=\\\"timeline()\\\">\\n <mat-icon>history</mat-icon>\\n <span i18n>Offer status</span>\\n </button>\\n </rolatech-toolbar>\\n <div>\\n <div class=\\\"flex justify-between items-center py-2\\\">\\n <a class=\\\"text-xl font-bold\\\">Offer ID: {{ offer.id }}</a>\\n </div>\\n\\n <div>\\n <div class=\\\"text-lg font-bold py-2\\\" i18n>Property details</div>\\n <hr class=\\\"mb-2\\\" />\\n <div\\n class=\\\"flex items-center py-2 cursor-pointer hover:bg-[--rt-raised-background]\\\"\\n [routerLink]=\\\"['../../', offer.item.propertyId]\\\"\\n >\\n <div class=\\\"min-w-16 w-24 object-cover aspect-video rounded-md mr-3\\\">\\n @defer {\\n <rolatech-thumbnail [src]=\\\"offer.item.media[0].url\\\" size=\\\"medium\\\" mode=\\\"full\\\"> </rolatech-thumbnail>\\n } @placeholder {\\n <div class=\\\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\\\"></div>\\n }\\n </div>\\n <div class=\\\"flex w-full justify-between\\\">\\n <div class=\\\"flex justify-between w-full\\\">\\n <div class=\\\"flex flex-col\\\">\\n <div>{{ offer.item.propertyTitle }}</div>\\n <div class=\\\"inline-flex gap-1 mt-2\\\">\\n <div>\\n <span class=\\\"mr-1\\\">{{ offer.item.bedrooms }}</span>\\n <span i18n>Bedrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ offer.item.bathrooms }}</span>\\n <span i18n>Bathrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ offer.item.receptions }}</span>\\n <span i18n>Receptions</span>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"text-right\\\">\\n <div class=\\\"text-sm\\\">\\u00A3{{ offer.item.price | fixed }}</div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"hidden md:flex flex-col px-3\\\"></div>\\n </div>\\n </div>\\n <div>\\n <div class=\\\"mt-3\\\">\\n <div class=\\\"text-lg py-2 font-bold\\\" i18n>Offer info</div>\\n <div class=\\\"flex items-center justify-between py-1\\\">\\n <span class=\\\"font-medium\\\" i18n>Created at</span>\\n <span class=\\\"text-sm\\\"> {{ offer.createdAt }}</span>\\n </div>\\n <div class=\\\"flex items-center justify-between py-1\\\">\\n <span class=\\\"font-medium\\\" i18n>Start date</span>\\n <span class=\\\"text-sm\\\"> {{ offer.startDate }}</span>\\n </div>\\n <div class=\\\"flex items-center justify-between py-1\\\">\\n <span class=\\\"font-medium\\\" i18n>Asked price</span>\\n <span class=\\\"text-sm\\\" i18n>\\u00A3{{ offer.amount | fixed }}</span>\\n </div>\\n <div class=\\\"flex items-center justify-between py-1\\\">\\n <span class=\\\"font-medium\\\" i18n>Deposit due date</span>\\n <span class=\\\"text-sm\\\"> {{ offer.startDate | due }}</span>\\n </div>\\n <div class=\\\"flex items-center justify-between py-1\\\">\\n <span class=\\\"font-medium\\\" i18n>Holding deposit</span>\\n <span class=\\\"text-sm\\\">\\u00A3{{ holdingDeposit }}</span>\\n </div>\\n <div class=\\\"flex items-center justify-between py-1\\\">\\n <span class=\\\"font-medium\\\" i18n>Security deposit</span>\\n <span class=\\\"text-sm\\\">\\u00A3{{ securityDeposit }}</span>\\n </div>\\n <div class=\\\"flex items-baseline justify-between py-1\\\">\\n <span class=\\\"font-medium min-w-20\\\" i18n>Note</span>\\n <!-- <span class=\\\"text-sm\\\">{{ offer.note || '' }}</span> -->\\n </div>\\n </div>\\n <div id=\\\"payment-element\\\"></div>\\n @if (offer.status.toString() === 'CREATED' || offer.status.toString() === 'PAID') {\\n <div class=\\\"mt-6\\\">\\n <div class=\\\"text-lg pb-3 font-medium\\\" i18n>Payment method</div>\\n\\n <div class=\\\"flex items-center\\\">\\n <svg\\n class=\\\"svg-icon\\\"\\n style=\\\"width: 2rem; height: 2rem\\\"\\n viewBox=\\\"0 0 1024 1024\\\"\\n version=\\\"1.1\\\"\\n xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n >\\n <path\\n d=\\\"M395.846 603.585c-3.921 1.98-7.936 2.925-12.81 2.925-10.9 0-19.791-5.85-24.764-14.625l-2.006-3.864-78.106-167.913c-0.956-1.98-0.956-3.865-0.956-5.845 0-7.83 5.928-13.68 13.863-13.68 2.965 0 5.928 0.944 8.893 2.924l91.965 64.43c6.884 3.864 14.82 6.79 23.708 6.79 4.972 0 9.85-0.945 14.822-2.926L861.71 282.479c-77.149-89.804-204.684-148.384-349.135-148.384-235.371 0-427.242 157.158-427.242 351.294 0 105.368 57.361 201.017 147.323 265.447 6.88 4.905 11.852 13.68 11.852 22.45 0 2.925-0.957 5.85-2.006 8.775-6.881 26.318-18.831 69.334-18.831 71.223-0.958 2.92-2.013 6.79-2.013 10.75 0 7.83 5.929 13.68 13.865 13.68 2.963 0 5.928-0.944 7.935-2.925l92.922-53.674c6.885-3.87 14.82-6.794 22.756-6.794 3.916 0 8.889 0.944 12.81 1.98 43.496 12.644 91.012 19.53 139.48 19.53 235.372 0 427.24-157.158 427.24-351.294 0-58.58-17.78-114.143-48.467-163.003l-491.39 280.07-2.963 1.98z\\\"\\n fill=\\\"#09BB07\\\"\\n />\\n </svg>\\n <span class=\\\"ml-1\\\" i18n>Stripe</span>\\n </div>\\n </div>\\n }\\n </div>\\n <!-- safe area -->\\n <div class=\\\"pb-16 sm:pb-3\\\"></div>\\n <div class=\\\"\\\">\\n <div class=\\\"flex items-center justify-end\\\">\\n @if (offer.status.toString() === 'PENDING') {\\n <span\\n class=\\\"underline text-sm underline-offset-4 mr-6 cursor-pointer hover:text-[--rt-brand-color]\\\"\\n (click)=\\\"cancel()\\\"\\n i18n\\n >Cancel</span\\n >\\n }\\n @if (offer.status.toString() === 'PENDING') {\\n <button mat-flat-button class=\\\"min-h-11\\\" (click)=\\\"holdingDepositCheckout()\\\" [disabled]=\\\"checkouting\\\">\\n <span style=\\\"display: flex; align-items: center\\\">\\n @if (checkouting) {\\n <mat-progress-spinner diameter=\\\"20\\\" mode=\\\"indeterminate\\\" [style.marginRight.px]=\\\"8\\\"></mat-progress-spinner>\\n }\\n {{ checkouting ? 'Processing...' : 'Pay holding deposit' }}\\n </span>\\n </button>\\n }\\n @if (offer.status.toString() === 'ACCEPTED') {\\n <button mat-flat-button class=\\\"min-h-11\\\" (click)=\\\"securityDepositCheckout()\\\" [disabled]=\\\"checkouting\\\">\\n <span style=\\\"display: flex; align-items: center\\\">\\n @if (checkouting) {\\n <mat-progress-spinner diameter=\\\"20\\\" mode=\\\"indeterminate\\\" [style.marginRight.px]=\\\"8\\\"></mat-progress-spinner>\\n }\\n {{ checkouting ? 'Processing...' : 'Pay security deposit' }}\\n </span>\\n </button>\\n }\\n <!-- <button mat-flat-button class=\\\"w-32 min-h-11\\\" (click)=\\\"securityDepositCheckout()\\\" i18n>Pay security deposit</button> -->\\n </div>\\n </div>\\n </div>\\n </rolatech-container>\\n}\\n@if (info) {\\n <div\\n [ngClass]=\\\"loadingTimeline ? 'translate-x-full' : 'translate-none'\\\"\\n class=\\\"fixed top-0 right-0 z-[1001] h-screen p-4 overflow-y-auto transition-transform bg-[--rt-raised-background] w-80 sm:w-[300px] shadow-xl\\\"\\n >\\n <div class=\\\"flex justify-between items-center sm:p-4\\\">\\n <div class=\\\"text-xl font-bold\\\" i18n>Status</div>\\n <button mat-icon-button (click)=\\\"info = !info\\\">\\n <mat-icon>close</mat-icon>\\n </button>\\n </div>\\n @if (loadingTimeline) {\\n <div>\\n <rolatech-spinner></rolatech-spinner>\\n </div>\\n } @else {\\n <div class=\\\"mt-3 p-1 sm:p-4\\\">\\n <ol class=\\\"relative boffer-l boffer-[--rt-boffer-color]\\\">\\n @for (item of timelineData; track item) {\\n <li class=\\\"mb-8 ml-4\\\">\\n <div\\n class=\\\"absolute w-3 h-3 rounded-full mt-1.5 -left-1.5 boffer boffer-[--rt-raised-background] bg-[--rt-text-primary]\\\"\\n ></div>\\n <div class=\\\"text-md font-bold mb-1\\\">{{ timelineStatus[item.status] }}</div>\\n @if (item.status === 'OFFER_RETURN_REJECTED') {\\n <div class=\\\"text-sm mb-1\\\">{{ item.return.note }}</div>\\n }\\n @if (item.status === 'OFFER_RETURN_REQUESTED') {\\n <div class=\\\"text-sm mb-1\\\">{{ item.return.reason }}</div>\\n }\\n <div class=\\\"text-sm text-[--rt-text-secondary]\\\">{{ item.date }}</div>\\n </li>\\n }\\n </ol>\\n </div>\\n }\\n </div>\\n}\\n\\n<div\\n (click)=\\\"info = !info\\\"\\n [ngClass]=\\\"info ? 'visible' : 'invisible'\\\"\\n class=\\\"bg-[--rt-10-percent-layer] fixed inset-0 z-[1000]\\\"\\n></div>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i1.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: i1.MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i2.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"component\", type: SpinnerComponent, selector: \"rolatech-spinner\", inputs: [\"title\"] }, { kind: \"component\", type: ContainerComponent, selector: \"rolatech-container\" }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"ngmodule\", type: MatProgressSpinnerModule }, { kind: \"component\", type: i3.MatProgressSpinner, selector: \"mat-progress-spinner, mat-spinner\", inputs: [\"color\", \"mode\", \"value\", \"diameter\", \"strokeWidth\"], exportAs: [\"matProgressSpinner\"] }, { kind: \"directive\", type: RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"pipe\", type: FixedPipe, name: \"fixed\" }, { kind: \"pipe\", type: DuePipe, name: \"due\" }], deferBlockDependencies: [() => [ThumbnailComponent]] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyOfferDetailComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-offer-detail', imports: [\n MatButtonModule,\n MatIconModule,\n NgClass,\n ThumbnailComponent,\n SpinnerComponent,\n ContainerComponent,\n ToolbarComponent,\n FixedPipe,\n MatProgressSpinnerModule,\n RouterLink,\n DuePipe,\n ], template: \"@if (offer) {\\n <rolatech-container>\\n <rolatech-toolbar [title]=\\\"status[offer.status]\\\" large link=\\\"../\\\">\\n <button mat-flat-button (click)=\\\"timeline()\\\">\\n <mat-icon>history</mat-icon>\\n <span i18n>Offer status</span>\\n </button>\\n </rolatech-toolbar>\\n <div>\\n <div class=\\\"flex justify-between items-center py-2\\\">\\n <a class=\\\"text-xl font-bold\\\">Offer ID: {{ offer.id }}</a>\\n </div>\\n\\n <div>\\n <div class=\\\"text-lg font-bold py-2\\\" i18n>Property details</div>\\n <hr class=\\\"mb-2\\\" />\\n <div\\n class=\\\"flex items-center py-2 cursor-pointer hover:bg-[--rt-raised-background]\\\"\\n [routerLink]=\\\"['../../', offer.item.propertyId]\\\"\\n >\\n <div class=\\\"min-w-16 w-24 object-cover aspect-video rounded-md mr-3\\\">\\n @defer {\\n <rolatech-thumbnail [src]=\\\"offer.item.media[0].url\\\" size=\\\"medium\\\" mode=\\\"full\\\"> </rolatech-thumbnail>\\n } @placeholder {\\n <div class=\\\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\\\"></div>\\n }\\n </div>\\n <div class=\\\"flex w-full justify-between\\\">\\n <div class=\\\"flex justify-between w-full\\\">\\n <div class=\\\"flex flex-col\\\">\\n <div>{{ offer.item.propertyTitle }}</div>\\n <div class=\\\"inline-flex gap-1 mt-2\\\">\\n <div>\\n <span class=\\\"mr-1\\\">{{ offer.item.bedrooms }}</span>\\n <span i18n>Bedrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ offer.item.bathrooms }}</span>\\n <span i18n>Bathrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ offer.item.receptions }}</span>\\n <span i18n>Receptions</span>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"text-right\\\">\\n <div class=\\\"text-sm\\\">\\u00A3{{ offer.item.price | fixed }}</div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"hidden md:flex flex-col px-3\\\"></div>\\n </div>\\n </div>\\n <div>\\n <div class=\\\"mt-3\\\">\\n <div class=\\\"text-lg py-2 font-bold\\\" i18n>Offer info</div>\\n <div class=\\\"flex items-center justify-between py-1\\\">\\n <span class=\\\"font-medium\\\" i18n>Created at</span>\\n <span class=\\\"text-sm\\\"> {{ offer.createdAt }}</span>\\n </div>\\n <div class=\\\"flex items-center justify-between py-1\\\">\\n <span class=\\\"font-medium\\\" i18n>Start date</span>\\n <span class=\\\"text-sm\\\"> {{ offer.startDate }}</span>\\n </div>\\n <div class=\\\"flex items-center justify-between py-1\\\">\\n <span class=\\\"font-medium\\\" i18n>Asked price</span>\\n <span class=\\\"text-sm\\\" i18n>\\u00A3{{ offer.amount | fixed }}</span>\\n </div>\\n <div class=\\\"flex items-center justify-between py-1\\\">\\n <span class=\\\"font-medium\\\" i18n>Deposit due date</span>\\n <span class=\\\"text-sm\\\"> {{ offer.startDate | due }}</span>\\n </div>\\n <div class=\\\"flex items-center justify-between py-1\\\">\\n <span class=\\\"font-medium\\\" i18n>Holding deposit</span>\\n <span class=\\\"text-sm\\\">\\u00A3{{ holdingDeposit }}</span>\\n </div>\\n <div class=\\\"flex items-center justify-between py-1\\\">\\n <span class=\\\"font-medium\\\" i18n>Security deposit</span>\\n <span class=\\\"text-sm\\\">\\u00A3{{ securityDeposit }}</span>\\n </div>\\n <div class=\\\"flex items-baseline justify-between py-1\\\">\\n <span class=\\\"font-medium min-w-20\\\" i18n>Note</span>\\n <!-- <span class=\\\"text-sm\\\">{{ offer.note || '' }}</span> -->\\n </div>\\n </div>\\n <div id=\\\"payment-element\\\"></div>\\n @if (offer.status.toString() === 'CREATED' || offer.status.toString() === 'PAID') {\\n <div class=\\\"mt-6\\\">\\n <div class=\\\"text-lg pb-3 font-medium\\\" i18n>Payment method</div>\\n\\n <div class=\\\"flex items-center\\\">\\n <svg\\n class=\\\"svg-icon\\\"\\n style=\\\"width: 2rem; height: 2rem\\\"\\n viewBox=\\\"0 0 1024 1024\\\"\\n version=\\\"1.1\\\"\\n xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n >\\n <path\\n d=\\\"M395.846 603.585c-3.921 1.98-7.936 2.925-12.81 2.925-10.9 0-19.791-5.85-24.764-14.625l-2.006-3.864-78.106-167.913c-0.956-1.98-0.956-3.865-0.956-5.845 0-7.83 5.928-13.68 13.863-13.68 2.965 0 5.928 0.944 8.893 2.924l91.965 64.43c6.884 3.864 14.82 6.79 23.708 6.79 4.972 0 9.85-0.945 14.822-2.926L861.71 282.479c-77.149-89.804-204.684-148.384-349.135-148.384-235.371 0-427.242 157.158-427.242 351.294 0 105.368 57.361 201.017 147.323 265.447 6.88 4.905 11.852 13.68 11.852 22.45 0 2.925-0.957 5.85-2.006 8.775-6.881 26.318-18.831 69.334-18.831 71.223-0.958 2.92-2.013 6.79-2.013 10.75 0 7.83 5.929 13.68 13.865 13.68 2.963 0 5.928-0.944 7.935-2.925l92.922-53.674c6.885-3.87 14.82-6.794 22.756-6.794 3.916 0 8.889 0.944 12.81 1.98 43.496 12.644 91.012 19.53 139.48 19.53 235.372 0 427.24-157.158 427.24-351.294 0-58.58-17.78-114.143-48.467-163.003l-491.39 280.07-2.963 1.98z\\\"\\n fill=\\\"#09BB07\\\"\\n />\\n </svg>\\n <span class=\\\"ml-1\\\" i18n>Stripe</span>\\n </div>\\n </div>\\n }\\n </div>\\n <!-- safe area -->\\n <div class=\\\"pb-16 sm:pb-3\\\"></div>\\n <div class=\\\"\\\">\\n <div class=\\\"flex items-center justify-end\\\">\\n @if (offer.status.toString() === 'PENDING') {\\n <span\\n class=\\\"underline text-sm underline-offset-4 mr-6 cursor-pointer hover:text-[--rt-brand-color]\\\"\\n (click)=\\\"cancel()\\\"\\n i18n\\n >Cancel</span\\n >\\n }\\n @if (offer.status.toString() === 'PENDING') {\\n <button mat-flat-button class=\\\"min-h-11\\\" (click)=\\\"holdingDepositCheckout()\\\" [disabled]=\\\"checkouting\\\">\\n <span style=\\\"display: flex; align-items: center\\\">\\n @if (checkouting) {\\n <mat-progress-spinner diameter=\\\"20\\\" mode=\\\"indeterminate\\\" [style.marginRight.px]=\\\"8\\\"></mat-progress-spinner>\\n }\\n {{ checkouting ? 'Processing...' : 'Pay holding deposit' }}\\n </span>\\n </button>\\n }\\n @if (offer.status.toString() === 'ACCEPTED') {\\n <button mat-flat-button class=\\\"min-h-11\\\" (click)=\\\"securityDepositCheckout()\\\" [disabled]=\\\"checkouting\\\">\\n <span style=\\\"display: flex; align-items: center\\\">\\n @if (checkouting) {\\n <mat-progress-spinner diameter=\\\"20\\\" mode=\\\"indeterminate\\\" [style.marginRight.px]=\\\"8\\\"></mat-progress-spinner>\\n }\\n {{ checkouting ? 'Processing...' : 'Pay security deposit' }}\\n </span>\\n </button>\\n }\\n <!-- <button mat-flat-button class=\\\"w-32 min-h-11\\\" (click)=\\\"securityDepositCheckout()\\\" i18n>Pay security deposit</button> -->\\n </div>\\n </div>\\n </div>\\n </rolatech-container>\\n}\\n@if (info) {\\n <div\\n [ngClass]=\\\"loadingTimeline ? 'translate-x-full' : 'translate-none'\\\"\\n class=\\\"fixed top-0 right-0 z-[1001] h-screen p-4 overflow-y-auto transition-transform bg-[--rt-raised-background] w-80 sm:w-[300px] shadow-xl\\\"\\n >\\n <div class=\\\"flex justify-between items-center sm:p-4\\\">\\n <div class=\\\"text-xl font-bold\\\" i18n>Status</div>\\n <button mat-icon-button (click)=\\\"info = !info\\\">\\n <mat-icon>close</mat-icon>\\n </button>\\n </div>\\n @if (loadingTimeline) {\\n <div>\\n <rolatech-spinner></rolatech-spinner>\\n </div>\\n } @else {\\n <div class=\\\"mt-3 p-1 sm:p-4\\\">\\n <ol class=\\\"relative boffer-l boffer-[--rt-boffer-color]\\\">\\n @for (item of timelineData; track item) {\\n <li class=\\\"mb-8 ml-4\\\">\\n <div\\n class=\\\"absolute w-3 h-3 rounded-full mt-1.5 -left-1.5 boffer boffer-[--rt-raised-background] bg-[--rt-text-primary]\\\"\\n ></div>\\n <div class=\\\"text-md font-bold mb-1\\\">{{ timelineStatus[item.status] }}</div>\\n @if (item.status === 'OFFER_RETURN_REJECTED') {\\n <div class=\\\"text-sm mb-1\\\">{{ item.return.note }}</div>\\n }\\n @if (item.status === 'OFFER_RETURN_REQUESTED') {\\n <div class=\\\"text-sm mb-1\\\">{{ item.return.reason }}</div>\\n }\\n <div class=\\\"text-sm text-[--rt-text-secondary]\\\">{{ item.date }}</div>\\n </li>\\n }\\n </ol>\\n </div>\\n }\\n </div>\\n}\\n\\n<div\\n (click)=\\\"info = !info\\\"\\n [ngClass]=\\\"info ? 'visible' : 'invisible'\\\"\\n class=\\\"bg-[--rt-10-percent-layer] fixed inset-0 z-[1000]\\\"\\n></div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktb2ZmZXItZGV0YWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS9wcm9wZXJ0eS1vZmZlci1kZXRhaWwvcHJvcGVydHktb2ZmZXItZGV0YWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS9wcm9wZXJ0eS1vZmZlci1kZXRhaWwvcHJvcGVydHktb2ZmZXItZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLGtCQUFrQixHQUNuQixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQTJCLG1CQUFtQixFQUFFLDJCQUEyQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFD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QUFJLEdBQUc7WUFDWCxVQUFVLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsbUNBQW1DO1lBQ3RFLFNBQVMsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUk7U0FDaEMsQ0FBQztRQUNGLElBQUksQ0FBQyxlQUFlLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDMUUsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ1osTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDOUMsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNmLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1lBQzNCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO3VHQXpIVSw0QkFBNEI7MkZBQTVCLDRCQUE0QixpSENyQ3pDLDQ4UkErTEEseUREektJLGVBQWUsMGlCQUNmLGFBQWEsb0xBQ2IsT0FBTyxvRkFFUCxnQkFBZ0IsZ0ZBQ2hCLGtCQUFrQiwrREFDbEIsZ0JBQWdCLCtIQUVoQix3QkFBd0IsbU9BQ3hCLFVBQVUsK05BRlYsU0FBUyx5Q0FHVCxPQUFPLGtEQVBQLGtCQUFrQjs7MkZBWVQsNEJBQTRCO2tCQWxCeEMsU0FBUzsrQkFDRSxnQ0FBZ0MsV0FDakM7d0JBQ1AsZUFBZTt3QkFDZixhQUFhO3dCQUNiLE9BQU87d0JBQ1Asa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixTQUFTO3dCQUNULHdCQUF3Qjt3QkFDeEIsVUFBVTt3QkFDVixPQUFPO3FCQUNSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2NhdGlvbiwgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgQVBQX0NPTkZJRywgRml4ZWRQaXBlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7XG4gIFNwaW5uZXJDb21wb25lbnQsXG4gIENvbnRhaW5lckNvbXBvbmVudCxcbiAgVG9vbGJhckNvbXBvbmVudCxcbiAgQmFzZUNvbXBvbmVudCxcbiAgVGh1bWJuYWlsQ29tcG9uZW50LFxufSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IFByb3BlcnR5U2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLXNlcnZpY2VzJztcbmltcG9ydCB7IFByb3BlcnR5LCBQcm9wZXJ0eU9mZmVyLCBQcm9wZXJ0eU9mZmVyU3RhdHVzLCBQcm9wZXJ0eU9mZmVyVGltZWxpbmVTdGF0dXMgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEF1dGhVc2VyU2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWF1dGgnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBSb3V0ZXJMaW5rIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IER1ZVBpcGUgfSBmcm9tICcuL2R1ZS5waXBlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvcGVydHktb2ZmZXItZGV0YWlsJyxcbiAgaW1wb3J0czogW1xuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE5nQ2xhc3MsXG4gICAgVGh1bWJuYWlsQ29tcG9uZW50LFxuICAgIFNwaW5uZXJDb21wb25lbnQsXG4gICAgQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIFRvb2xiYXJDb21wb25lbnQsXG4gICAgRml4ZWRQaXBlLFxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgICBSb3V0ZXJMaW5rLFxuICAgIER1ZVBpcGUsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1vZmZlci1kZXRhaWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHJvcGVydHktb2ZmZXItZGV0YWlsLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlPZmZlckRldGFpbENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByb3BlcnR5U2VydmljZSA9IGluamVjdChQcm9wZXJ0eVNlcnZpY2UpO1xuICBhdXRoVXNlclNlcnZpY2UgPSBpbmplY3QoQXV0aFVzZXJTZXJ2aWNlKTtcbiAgb2ZmZXIhOiBQcm9wZXJ0eU9mZmVyO1xuICBpbmZvID0gZmFsc2U7XG4gIGxvYWRpbmdUaW1lbGluZSA9IGZhbHNlO1xuICB0aW1lbGluZURhdGE6IGFueTtcbiAgc3RhdHVzOiBhbnkgPSBQcm9wZXJ0eU9mZmVyU3RhdHVzO1xuICB0aW1lbGluZVN0YXR1czogYW55ID0gUHJvcGVydHlPZmZlclRpbWVsaW5lU3RhdHVzO1xuICBlbnYgPSBpbmplY3QoQVBQX0NPTkZJRyk7XG4gIGxvY2F0aW9uID0gaW5qZWN0KExvY2F0aW9uKTtcbiAgcHJvcGVydHkhOiBQcm9wZXJ0eTtcbiAgYWdlbnQ6IGFueTtcbiAgY2hlY2tvdXRpbmcgPSBmYWxzZTtcbiAgaG9sZGluZ0RlcG9zaXQ7XG4gIHNlY3VyaXR5RGVwb3NpdDtcbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5yb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKChwYXJhbXMpID0+IHtcbiAgICAgIGNvbnN0IGlkID0gcGFyYW1zWydpZCddO1xuICAgICAgdGhpcy5nZXQoaWQpO1xuICAgIH0pO1xuICAgIHRoaXMucm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKGFzeW5jIChwYXJhbXMpID0+IHtcbiAgICAgIGNvbnN0IHNlc3Npb25JZCA9IHBhcmFtc1snc2Vzc2lvbl9pZCddO1xuICAgICAgaWYgKHNlc3Npb25JZCkge1xuICAgICAgICB0aGlzLnByb3BlcnR5U2VydmljZS5jaGVja09mZmVyUGF5bWVudFN0YXR1cyh0aGlzLmlkLCBzZXNzaW9uSWQpLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09ICdwYWlkJykge1xuICAgICAgICAgICAgICB0aGlzLm9mZmVyLnN0YXR1cyA9IFByb3BlcnR5T2ZmZXJTdGF0dXMuSE9MRElOR19ERVBPU0lUX1BBSUQ7XG4gICAgICAgICAgICAgIC8vIFNob3cgc3VjY2VzcyBVSVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tvdXRpbmcgPSBmYWxzZTtcbiAgfVxuICBnZXQoaWQ6IHN0cmluZykge1xuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmdldE9mZmVyKGlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMub2ZmZXIgPSByZXMuZGF0YTtcbiAgICAgICAgdGhpcy5nZXRQcm9wZXJ0eSh0aGlzLm9mZmVyLnByb3BlcnR5SWQpO1xuICAgICAgICB0aGlzLmNhbGN1bGF0ZURlcG9zaXQoKTtcbiAgICAgICAgLy8gdGhpcy5maW5kQWdlbnRJbmZvKCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIHRpbWVsaW5lKCkge1xuICAgIHRoaXMuaW5mbyA9IHRydWU7XG4gICAgdGhpcy5sb2FkaW5nVGltZWxpbmUgPSB0cnVlO1xuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLm9mZmVyVGltZWxpbmUodGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy50aW1lbGluZURhdGEgPSByZXMuZGF0YTtcbiAgICAgICAgdGhpcy5sb2FkaW5nVGltZWxpbmUgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMubG9hZGluZ1RpbWVsaW5lID0gZmFsc2U7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGdldFByb3BlcnR5KHByb3BlcnR5SWQ6IHN0cmluZykge1xuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmdldChwcm9wZXJ0eUlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMucHJvcGVydHkgPSByZXMuZGF0YTtcbiAgICAgICAgdGhpcy5nZXRBZ2VudFB1YmxpY0luZm8odGhpcy5wcm9wZXJ0eS5hZ2VudElkKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgZ2V0QWdlbnRQdWJsaWNJbmZvKGFnZW50SWQ6IHN0cmluZykge1xuICAgIHRoaXMuYXV0aFVzZXJTZXJ2aWNlLmdldFB1YmxpY1VzZXJJbmZvKGFnZW50SWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuYWdlbnQgPSByZXM7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLnByb3BlcnR5U2VydmljZS5jYW5jZWxPZmZlcih0aGlzLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLm9mZmVyLnN0YXR1cyA9ICdDQU5DRUxMRUQnIGFzIFByb3BlcnR5T2ZmZXJTdGF0dXM7XG4gICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oJ0NhbmNlbGxlZCcpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbihlcnJvci5tZXNzYWdlKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgY2FsY3VsYXRlRGVwb3NpdCgpIHtcbiAgICBjb25zdCBwcmljZSA9IHRoaXMub2ZmZXIuaXRlbS5wcmljZTtcbiAgICB0aGlzLmhvbGRpbmdEZXBvc2l0ID0gKChwcmljZSAqIDEyKSAvIDUyIC8gMTAwKS50b0ZpeGVkKDIpO1xuICAgIHRoaXMuc2VjdXJpdHlEZXBvc2l0ID0gKCgocHJpY2UgKiAxMikgLyA1MiAvIDEwMCkgKiA1KS50b0ZpeGVkKDIpO1xuICB9XG4gIGhvbGRpbmdEZXBvc2l0Q2hlY2tvdXQoKSB7XG4gICAgdGhpcy5jaGVja291dGluZyA9IHRydWU7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIHN1Y2Nlc3NVcmw6IHdpbmRvdy5sb2NhdGlvbi5ocmVmICsgJz9zZXNzaW9uX2lkPXtDSEVDS09VVF9TRVNTSU9OX0lEfScsXG4gICAgICBjYW5jZWxVcmw6IHdpbmRvdy5sb2NhdGlvbi5ocmVmLFxuICAgIH07XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuY3JlYXRlSG9sZGluZ0RlcG9zaXRDaGVja291dCh0aGlzLmlkLCBkYXRhKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHJlcy5kYXRhLmNoZWNrb3V0VXJsO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5jaGVja291dGluZyA9IGZhbHNlO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBzZWN1cml0eURlcG9zaXRDaGVja291dCgpIHtcbiAgICB0aGlzLmNoZWNrb3V0aW5nID0gdHJ1ZTtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgc3VjY2Vzc1VybDogd2luZG93LmxvY2F0aW9uLmhyZWYgKyAnP3Nlc3Npb25faWQ9e0NIRUNLT1VUX1NFU1NJT05fSUR9JyxcbiAgICAgIGNhbmNlbFVybDogd2luZG93LmxvY2F0aW9uLmhyZWYsXG4gICAgfTtcbiAgICB0aGlzLnByb3BlcnR5U2VydmljZS5jcmVhdGVTZWN1cml0eURlcG9zaXRDaGVja291dCh0aGlzLmlkLCBkYXRhKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHJlcy5kYXRhLmNoZWNrb3V0VXJsO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5jaGVja291dGluZyA9IGZhbHNlO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwiQGlmIChvZmZlcikge1xuICA8cm9sYXRlY2gtY29udGFpbmVyPlxuICAgIDxyb2xhdGVjaC10b29sYmFyIFt0aXRsZV09XCJzdGF0dXNbb2ZmZXIuc3RhdHVzXVwiIGxhcmdlIGxpbms9XCIuLi9cIj5cbiAgICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIChjbGljayk9XCJ0aW1lbGluZSgpXCI+XG4gICAgICAgIDxtYXQtaWNvbj5oaXN0b3J5PC9tYXQtaWNvbj5cbiAgICAgICAgPHNwYW4gaTE4bj5PZmZlciBzdGF0dXM8L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L3JvbGF0ZWNoLXRvb2xiYXI+XG4gICAgPGRpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgcHktMlwiPlxuICAgICAgICA8YSBjbGFzcz1cInRleHQteGwgZm9udC1ib2xkXCI+T2ZmZXIgSUQ6IHt7IG9mZmVyLmlkIH19PC9hPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxnIGZvbnQtYm9sZCBweS0yXCIgaTE4bj5Qcm9wZXJ0eSBkZXRhaWxzPC9kaXY+XG4gICAgICAgIDxociBjbGFzcz1cIm1iLTJcIiAvPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBweS0yIGN1cnNvci1wb2ludGVyIGhvdmVyOmJnLVstLXJ0LXJhaXNlZC1iYWNrZ3JvdW5kXVwiXG4gICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycuLi8uLi8nLCBvZmZlci5pdGVtLnByb3BlcnR5SWRdXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaW4tdy0xNiB3LTI0IG9iamVjdC1jb3ZlciBhc3BlY3QtdmlkZW8gcm91bmRlZC1tZCBtci0zXCI+XG4gICAgICAgICAgICBAZGVmZXIge1xuICAgICAgICAgICAgICA8cm9sYXRlY2gtdGh1bWJuYWlsIFtzcmNdPVwib2ZmZXIuaXRlbS5tZWRpYVswXS51cmxcIiBzaXplPVwibWVkaXVtXCIgbW9kZT1cImZ1bGxcIj4gPC9yb2xhdGVjaC10aHVtYm5haWw+XG4gICAgICAgICAgICB9IEBwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiZy1bLS1ydC1yYWlzZWQtYmFja2dyb3VuZF0gaC1mdWxsIHctZnVsbCBvYmplY3QtY292ZXIgYXNwZWN0LXZpZGVvIHJvdW5kZWQtbGdcIj48L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCB3LWZ1bGwganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gdy1mdWxsXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sXCI+XG4gICAgICAgICAgICAgICAgPGRpdj57eyBvZmZlci5pdGVtLnByb3BlcnR5VGl0bGUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5saW5lLWZsZXggZ2FwLTEgbXQtMlwiPlxuICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtci0xXCI+e3sgb2ZmZXIuaXRlbS5iZWRyb29tcyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gaTE4bj5CZWRyb29tczwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtci0xXCI+e3sgb2ZmZXIuaXRlbS5iYXRocm9vbXMgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGkxOG4+QmF0aHJvb21zPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yLTFcIj57eyBvZmZlci5pdGVtLnJlY2VwdGlvbnMgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGkxOG4+UmVjZXB0aW9uczwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtcmlnaHRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zbVwiPsKje3sgb2ZmZXIuaXRlbS5wcmljZSB8IGZpeGVkIH19PC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhpZGRlbiBtZDpmbGV4IGZsZXgtY29sIHB4LTNcIj48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbGcgcHktMiBmb250LWJvbGRcIiBpMThuPk9mZmVyIGluZm88L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHB5LTFcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1tZWRpdW1cIiBpMThuPkNyZWF0ZWQgYXQ8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc21cIj4ge3sgb2ZmZXIuY3JlYXRlZEF0IH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gcHktMVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LW1lZGl1bVwiIGkxOG4+U3RhcnQgZGF0ZTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbVwiPiB7eyBvZmZlci5zdGFydERhdGUgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBweS0xXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtbWVkaXVtXCIgaTE4bj5Bc2tlZCBwcmljZTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbVwiIGkxOG4+wqN7eyBvZmZlci5hbW91bnQgfCBmaXhlZCB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHB5LTFcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1tZWRpdW1cIiBpMThuPkRlcG9zaXQgZHVlIGRhdGU8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc21cIj4ge3sgb2ZmZXIuc3RhcnREYXRlIHwgZHVlIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gcHktMVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LW1lZGl1bVwiIGkxOG4+SG9sZGluZyBkZXBvc2l0PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtXCI+wqN7eyBob2xkaW5nRGVwb3NpdCB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHB5LTFcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1tZWRpdW1cIiBpMThuPlNlY3VyaXR5IGRlcG9zaXQ8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc21cIj7Co3t7IHNlY3VyaXR5RGVwb3NpdCB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1iYXNlbGluZSBqdXN0aWZ5LWJldHdlZW4gcHktMVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LW1lZGl1bSBtaW4tdy0yMFwiIGkxOG4+Tm90ZTwvc3Bhbj5cbiAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtXCI+e3sgb2ZmZXIubm90ZSB8fCAnJyB9fTwvc3Bhbj4gLS0+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGlkPVwicGF5bWVudC1lbGVtZW50XCI+PC9kaXY+XG4gICAgICAgIEBpZiAob2ZmZXIuc3RhdHVzLnRvU3RyaW5nKCkgPT09ICdDUkVBVEVEJyB8fCBvZmZlci5zdGF0dXMudG9TdHJpbmcoKSA9PT0gJ1BBSUQnKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTZcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxnIHBiLTMgZm9udC1tZWRpdW1cIiBpMThuPlBheW1lbnQgbWV0aG9kPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzdmctaWNvblwiXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMnJlbTsgaGVpZ2h0OiAycmVtXCJcbiAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDEwMjQgMTAyNFwiXG4gICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXG4gICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgZD1cIk0zOTUuODQ2IDYwMy41ODVjLTMuOTIxIDEuOTgtNy45MzYgMi45MjUtMTIuODEgMi45MjUtMTAuOSAwLTE5Ljc5MS01Ljg1LTI0Ljc2NC0xNC42MjVsLTIuMDA2LTMuODY0LTc4LjEwNi0xNjcuOTEzYy0wLjk1Ni0xLjk4LTAuOTU2LTMuODY1LTAuOTU2LTUuODQ1IDAtNy44MyA1LjkyOC0xMy42OCAxMy44NjMtMTMuNjggMi45NjUgMCA1LjkyOCAwLjk0NCA4Ljg5MyAyLjkyNGw5MS45NjUgNjQuNDNjNi44ODQgMy44NjQgMTQuODIgNi43OSAyMy43MDggNi43OSA0Ljk3MiAwIDkuODUtMC45NDUgMTQuODIyLTIuOTI2TDg2MS43MSAyODIuNDc5Yy03Ny4xNDktODkuODA0LTIwNC42ODQtMTQ4LjM4NC0zNDkuMTM1LTE0OC4zODQtMjM1LjM3MSAwLTQyNy4yNDIgMTU3LjE1OC00MjcuMjQyIDM1MS4yOTQgMCAxMDUuMzY4IDU3LjM2MSAyMDEuMDE3IDE0Ny4zMjMgMjY1LjQ0NyA2Ljg4IDQuOTA1IDExLjg1MiAxMy42OCAxMS44NTIgMjIuNDUgMCAyLjkyNS0wLjk1NyA1Ljg1LTIuMDA2IDguNzc1LTYuODgxIDI2LjMxOC0xOC44MzEgNjkuMzM0LTE4LjgzMSA3MS4yMjMtMC45NTggMi45Mi0yLjAxMyA2Ljc5LTIuMDEzIDEwLjc1IDAgNy44MyA1LjkyOSAxMy42OCAxMy44NjUgMTMuNjggMi45NjMgMCA1LjkyOC0wLjk0NCA3LjkzNS0yLjkyNWw5Mi45MjItNTMuNjc0YzYuODg1LTMuODcgMTQuODItNi43OTQgMjIuNzU2LTYuNzk0IDMuOTE2IDAgOC44ODkgMC45NDQgMTIuODEgMS45OCA0My40OTYgMTIuNjQ0IDkxLjAxMiAxOS41MyAxMzkuNDggMTkuNTMgMjM1LjM3MiAwIDQyNy4yNC0xNTcuMTU4IDQyNy4yNC0zNTEuMjk0IDAtNTguNTgtMTcuNzgtMTE0LjE0My00OC40NjctMTYzLjAwM2wtNDkxLjM5IDI4MC4wNy0yLjk2MyAxLjk4elwiXG4gICAgICAgICAgICAgICAgICBmaWxsPVwiIzA5QkIwN1wiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWwtMVwiIGkxOG4+U3RyaXBlPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBzYWZlIGFyZWEgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwicGItMTYgc206cGItM1wiPjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIlwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1lbmRcIj5cbiAgICAgICAgICBAaWYgKG9mZmVyLnN0YXR1cy50b1N0cmluZygpID09PSAnUEVORElORycpIHtcbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwidW5kZXJsaW5lIHRleHQtc20gdW5kZXJsaW5lLW9mZnNldC00IG1yLTYgY3Vyc29yLXBvaW50ZXIgaG92ZXI6dGV4dC1bLS1ydC1icmFuZC1jb2xvcl1cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2FuY2VsKClcIlxuICAgICAgICAgICAgICBpMThuXG4gICAgICAgICAgICAgID5DYW5jZWw8L3NwYW5cbiAgICAgICAgICAgID5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIChvZmZlci5zdGF0dXMudG9TdHJpbmcoKSA9PT0gJ1BFTkRJTkcnKSB7XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjbGFzcz1cIm1pbi1oLTExXCIgKGNsaWNrKT1cImhvbGRpbmdEZXBvc2l0Q2hlY2tvdXQoKVwiIFtkaXNhYmxlZF09XCJjaGVja291dGluZ1wiPlxuICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICBAaWYgKGNoZWNrb3V0aW5nKSB7XG4gICAgICAgICAgICAgICAgICA8bWF0LXByb2dyZXNzLXNwaW5uZXIgZGlhbWV0ZXI9XCIyMFwiIG1vZGU9XCJpbmRldGVybWluYXRlXCIgW3N0eWxlLm1hcmdpblJpZ2h0LnB4XT1cIjhcIj48L21hdC1wcm9ncmVzcy1zcGlubmVyPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB7eyBjaGVja291dGluZyA/ICdQcm9jZXNzaW5nLi4uJyA6ICdQYXkgaG9sZGluZyBkZXBvc2l0JyB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIChvZmZlci5zdGF0dXMudG9TdHJpbmcoKSA9PT0gJ0FDQ0VQVEVEJykge1xuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY2xhc3M9XCJtaW4taC0xMVwiIChjbGljayk9XCJzZWN1cml0eURlcG9zaXRDaGVja291dCgpXCIgW2Rpc2FibGVkXT1cImNoZWNrb3V0aW5nXCI+XG4gICAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwiZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlclwiPlxuICAgICAgICAgICAgICAgIEBpZiAoY2hlY2tvdXRpbmcpIHtcbiAgICAgICAgICAgICAgICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBkaWFtZXRlcj1cIjIwXCIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiBbc3R5bGUubWFyZ2luUmlnaHQucHhdPVwiOFwiPjwvbWF0LXByb2dyZXNzLXNwaW5uZXI+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHt7IGNoZWNrb3V0aW5nID8gJ1Byb2Nlc3NpbmcuLi4nIDogJ1BheSBzZWN1cml0eSBkZXBvc2l0JyB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgICAgPCEtLSA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjbGFzcz1cInctMzIgbWluLWgtMTFcIiAoY2xpY2spPVwic2VjdXJpdHlEZXBvc2l0Q2hlY2tvdXQoKVwiIGkxOG4+UGF5IHNlY3VyaXR5IGRlcG9zaXQ8L2J1dHRvbj4gLS0+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvcm9sYXRlY2gtY29udGFpbmVyPlxufVxuQGlmIChpbmZvKSB7XG4gIDxkaXZcbiAgICBbbmdDbGFzc109XCJsb2FkaW5nVGltZWxpbmUgPyAndHJhbnNsYXRlLXgtZnVsbCcgOiAndHJhbnNsYXRlLW5vbmUnXCJcbiAgICBjbGFzcz1cImZpeGVkIHRvcC0wIHJpZ2h0LTAgei1bMTAwMV0gaC1zY3JlZW4gcC00IG92ZXJmbG93LXktYXV0byB0cmFuc2l0aW9uLXRyYW5zZm9ybSBiZy1bLS1ydC1yYWlzZWQtYmFja2dyb3VuZF0gdy04MCBzbTp3LVszMDBweF0gc2hhZG93LXhsXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgc206cC00XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC14bCBmb250LWJvbGRcIiBpMThuPlN0YXR1czwvZGl2PlxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImluZm8gPSAhaW5mb1wiPlxuICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgQGlmIChsb2FkaW5nVGltZWxpbmUpIHtcbiAgICAgIDxkaXY+XG4gICAgICAgIDxyb2xhdGVjaC1zcGlubmVyPjwvcm9sYXRlY2gtc3Bpbm5lcj5cbiAgICAgIDwvZGl2PlxuICAgIH0gQGVsc2Uge1xuICAgICAgPGRpdiBjbGFzcz1cIm10LTMgcC0xIHNtOnAtNFwiPlxuICAgICAgICA8b2wgY2xhc3M9XCJyZWxhdGl2ZSBib2ZmZXItbCBib2ZmZXItWy0tcnQtYm9mZmVyLWNvbG9yXVwiPlxuICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgdGltZWxpbmVEYXRhOyB0cmFjayBpdGVtKSB7XG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJtYi04IG1sLTRcIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYWJzb2x1dGUgdy0zIGgtMyByb3VuZGVkLWZ1bGwgbXQtMS41IC1sZWZ0LTEuNSBib2ZmZXIgYm9mZmVyLVstLXJ0LXJhaXNlZC1iYWNrZ3JvdW5kXSBiZy1bLS1ydC10ZXh0LXByaW1hcnldXCJcbiAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tZCBmb250LWJvbGQgbWItMVwiPnt7IHRpbWVsaW5lU3RhdHVzW2l0ZW0uc3RhdHVzXSB9fTwvZGl2PlxuICAgICAgICAgICAgICBAaWYgKGl0ZW0uc3RhdHVzID09PSAnT0ZGRVJfUkVUVVJOX1JFSkVDVEVEJykge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNtIG1iLTFcIj57eyBpdGVtLnJldHVybi5ub3RlIH19PC9kaXY+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQGlmIChpdGVtLnN0YXR1cyA9PT0gJ09GRkVSX1JFVFVSTl9SRVFVRVNURUQnKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc20gbWItMVwiPnt7IGl0ZW0ucmV0dXJuLnJlYXNvbiB9fTwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNtIHRleHQtWy0tcnQtdGV4dC1zZWNvbmRhcnldXCI+e3sgaXRlbS5kYXRlIH19PC9kaXY+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9vbD5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG59XG5cbjxkaXZcbiAgKGNsaWNrKT1cImluZm8gPSAhaW5mb1wiXG4gIFtuZ0NsYXNzXT1cImluZm8gPyAndmlzaWJsZScgOiAnaW52aXNpYmxlJ1wiXG4gIGNsYXNzPVwiYmctWy0tcnQtMTAtcGVyY2VudC1sYXllcl0gZml4ZWQgaW5zZXQtMCB6LVsxMDAwXVwiXG4+PC9kaXY+XG4iXX0=","import { Component, inject } from '@angular/core';\nimport { NgClass } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { FixedPipe, APP_CONFIG } from '@rolatech/angular-common';\nimport { ContainerComponent, ToolbarComponent, BaseComponent, RichLabelComponent, ThumbnailComponent, } from '@rolatech/angular-components';\nimport { PropertyService } from '@rolatech/angular-services';\nimport { MatIconModule } from '@angular/material/icon';\nimport { PropertyViewingStatus } from '../../../interfaces';\nimport { AuthUserService } from '@rolatech/angular-auth';\nimport { RouterLink } from '@angular/router';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\nimport * as i2 from \"@angular/material/icon\";\nexport class PropertyViewingDetailComponent extends BaseComponent {\n propertyService = inject(PropertyService);\n authUserService = inject(AuthUserService);\n agent;\n viewing;\n info = false;\n loadingTimeline = false;\n status = PropertyViewingStatus;\n env = inject(APP_CONFIG);\n property;\n async ngOnInit() {\n this.route.params.subscribe((params) => {\n const id = params['id'];\n this.get(id);\n });\n }\n get(id) {\n this.propertyService.getViewing(id).subscribe({\n next: (res) => {\n this.viewing = res.data;\n this.getProperty(this.viewing.propertyId);\n // this.findAgentInfo();\n },\n });\n }\n getProperty(propertyId) {\n this.propertyService.get(propertyId).subscribe({\n next: (res) => {\n this.property = res.data;\n this.getAgentPublicInfo(this.property.agentId);\n },\n });\n }\n getAgentPublicInfo(agentId) {\n this.authUserService.getPublicUserInfo(agentId).subscribe({\n next: (res) => {\n this.agent = res;\n },\n });\n }\n cancel() {\n this.propertyService.cancelViewing(this.id).subscribe({\n next: (res) => {\n this.viewing.status = 'CANCELLED';\n this.snackBarService.open('Cancelled');\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyViewingDetailComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyViewingDetailComponent, isStandalone: true, selector: \"rolatech-property-viewing-detail\", usesInheritance: true, ngImport: i0, template: \"@if (viewing) {\\n <rolatech-container>\\n <rolatech-toolbar [title]=\\\"status[viewing.status]\\\" large link=\\\"../\\\"> </rolatech-toolbar>\\n <div>\\n <div>\\n <div class=\\\"text-lg font-bold py-2\\\" i18n>Property details</div>\\n <hr class=\\\"mb-2\\\" />\\n @if (property) {\\n <div\\n class=\\\"flex items-center py-2 cursor-pointer hover:bg-[--rt-raised-background]\\\"\\n [routerLink]=\\\"['../../', property.id]\\\"\\n >\\n <div class=\\\"min-w-16 w-24 object-cover aspect-video rounded-md mr-3\\\">\\n @defer {\\n <rolatech-thumbnail [src]=\\\"property.media[0].url\\\" size=\\\"medium\\\" mode=\\\"full\\\"> </rolatech-thumbnail>\\n } @placeholder {\\n <div class=\\\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\\\"></div>\\n }\\n </div>\\n <div class=\\\"flex w-full justify-between\\\">\\n <div class=\\\"flex justify-between w-full\\\">\\n <div class=\\\"flex flex-col\\\">\\n <div>{{ property.title }}</div>\\n <div class=\\\"inline-flex gap-1 mt-2\\\">\\n <div>\\n <span class=\\\"mr-1\\\">{{ property.bedrooms }}</span>\\n <span i18n>Bedrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ property.bathrooms }}</span>\\n <span i18n>Bathrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ property.receptions }}</span>\\n <span i18n>Receptions</span>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"text-right\\\">\\n <div class=\\\"text-sm\\\">\\u00A3{{ property.price | fixed }}</div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"hidden md:flex flex-col px-3\\\"></div>\\n </div>\\n }\\n </div>\\n\\n <div>\\n <div class=\\\"text-lg font-bold py-2\\\" i18n>Proposed times</div>\\n <hr class=\\\"mb-2\\\" />\\n @for (item of viewing.proposedSlots; track $index) {\\n <div class=\\\"flex flex-row items-center gap-3 py-3\\\">\\n <rolatech-rich-label label=\\\"Date\\\" [title]=\\\"item.date\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Time\\\" [title]=\\\"item.time\\\"></rolatech-rich-label>\\n @if (viewing.viewingDate && viewing.viewingTime) {\\n @if (item.date === viewing.viewingDate && item.time === viewing.viewingTime) {\\n <div class=\\\"ml-3\\\"><button mat-flat-button i18n disabled=\\\"\\\">Confirmed</button></div>\\n }\\n }\\n </div>\\n }\\n </div>\\n <!-- safe area -->\\n <div class=\\\"pb-16 sm:pb-3\\\"></div>\\n <div class=\\\"\\\">\\n <div class=\\\"flex items-center justify-end\\\">\\n @if (viewing.status.toString() !== 'CANCELLED') {\\n <button mat-flat-button class=\\\"min-h-11\\\" (click)=\\\"cancel()\\\" i18n>Cancel</button>\\n }\\n </div>\\n </div>\\n </div>\\n </rolatech-container>\\n}\\n@if (info) {\\n <div\\n [ngClass]=\\\"loadingTimeline ? 'translate-x-full' : 'translate-none'\\\"\\n class=\\\"fixed top-0 right-0 z-[1001] h-screen p-4 overflow-y-auto transition-transform bg-[--rt-raised-background] w-80 sm:w-[300px] shadow-xl\\\"\\n >\\n <div class=\\\"flex justify-between items-center sm:p-4\\\">\\n <div class=\\\"text-xl font-bold\\\" i18n>Status</div>\\n <button mat-icon-button (click)=\\\"info = !info\\\">\\n <mat-icon>close</mat-icon>\\n </button>\\n </div>\\n </div>\\n}\\n\\n<div\\n (click)=\\\"info = !info\\\"\\n [ngClass]=\\\"info ? 'visible' : 'invisible'\\\"\\n class=\\\"bg-[--rt-10-percent-layer] fixed inset-0 z-[1000]\\\"\\n></div>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i1.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: i1.MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i2.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"component\", type: RichLabelComponent, selector: \"rolatech-rich-label\", inputs: [\"label\", \"title\"] }, { kind: \"component\", type: ContainerComponent, selector: \"rolatech-container\" }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"directive\", type: RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"pipe\", type: FixedPipe, name: \"fixed\" }], deferBlockDependencies: [() => [ThumbnailComponent]] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyViewingDetailComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-viewing-detail', imports: [\n MatButtonModule,\n MatIconModule,\n NgClass,\n ThumbnailComponent,\n RichLabelComponent,\n ContainerComponent,\n ToolbarComponent,\n FixedPipe,\n RouterLink,\n ], template: \"@if (viewing) {\\n <rolatech-container>\\n <rolatech-toolbar [title]=\\\"status[viewing.status]\\\" large link=\\\"../\\\"> </rolatech-toolbar>\\n <div>\\n <div>\\n <div class=\\\"text-lg font-bold py-2\\\" i18n>Property details</div>\\n <hr class=\\\"mb-2\\\" />\\n @if (property) {\\n <div\\n class=\\\"flex items-center py-2 cursor-pointer hover:bg-[--rt-raised-background]\\\"\\n [routerLink]=\\\"['../../', property.id]\\\"\\n >\\n <div class=\\\"min-w-16 w-24 object-cover aspect-video rounded-md mr-3\\\">\\n @defer {\\n <rolatech-thumbnail [src]=\\\"property.media[0].url\\\" size=\\\"medium\\\" mode=\\\"full\\\"> </rolatech-thumbnail>\\n } @placeholder {\\n <div class=\\\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\\\"></div>\\n }\\n </div>\\n <div class=\\\"flex w-full justify-between\\\">\\n <div class=\\\"flex justify-between w-full\\\">\\n <div class=\\\"flex flex-col\\\">\\n <div>{{ property.title }}</div>\\n <div class=\\\"inline-flex gap-1 mt-2\\\">\\n <div>\\n <span class=\\\"mr-1\\\">{{ property.bedrooms }}</span>\\n <span i18n>Bedrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ property.bathrooms }}</span>\\n <span i18n>Bathrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ property.receptions }}</span>\\n <span i18n>Receptions</span>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"text-right\\\">\\n <div class=\\\"text-sm\\\">\\u00A3{{ property.price | fixed }}</div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"hidden md:flex flex-col px-3\\\"></div>\\n </div>\\n }\\n </div>\\n\\n <div>\\n <div class=\\\"text-lg font-bold py-2\\\" i18n>Proposed times</div>\\n <hr class=\\\"mb-2\\\" />\\n @for (item of viewing.proposedSlots; track $index) {\\n <div class=\\\"flex flex-row items-center gap-3 py-3\\\">\\n <rolatech-rich-label label=\\\"Date\\\" [title]=\\\"item.date\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Time\\\" [title]=\\\"item.time\\\"></rolatech-rich-label>\\n @if (viewing.viewingDate && viewing.viewingTime) {\\n @if (item.date === viewing.viewingDate && item.time === viewing.viewingTime) {\\n <div class=\\\"ml-3\\\"><button mat-flat-button i18n disabled=\\\"\\\">Confirmed</button></div>\\n }\\n }\\n </div>\\n }\\n </div>\\n <!-- safe area -->\\n <div class=\\\"pb-16 sm:pb-3\\\"></div>\\n <div class=\\\"\\\">\\n <div class=\\\"flex items-center justify-end\\\">\\n @if (viewing.status.toString() !== 'CANCELLED') {\\n <button mat-flat-button class=\\\"min-h-11\\\" (click)=\\\"cancel()\\\" i18n>Cancel</button>\\n }\\n </div>\\n </div>\\n </div>\\n </rolatech-container>\\n}\\n@if (info) {\\n <div\\n [ngClass]=\\\"loadingTimeline ? 'translate-x-full' : 'translate-none'\\\"\\n class=\\\"fixed top-0 right-0 z-[1001] h-screen p-4 overflow-y-auto transition-transform bg-[--rt-raised-background] w-80 sm:w-[300px] shadow-xl\\\"\\n >\\n <div class=\\\"flex justify-between items-center sm:p-4\\\">\\n <div class=\\\"text-xl font-bold\\\" i18n>Status</div>\\n <button mat-icon-button (click)=\\\"info = !info\\\">\\n <mat-icon>close</mat-icon>\\n </button>\\n </div>\\n </div>\\n}\\n\\n<div\\n (click)=\\\"info = !info\\\"\\n [ngClass]=\\\"info ? 'visible' : 'invisible'\\\"\\n class=\\\"bg-[--rt-10-percent-layer] fixed inset-0 z-[1000]\\\"\\n></div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktdmlld2luZy1kZXRhaWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL3BhZ2VzL3Byb3BlcnR5L3Byb3BlcnR5LXZpZXdpbmctZGV0YWlsL3Byb3BlcnR5LXZpZXdpbmctZGV0YWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS9wcm9wZXJ0eS12aWV3aW5nLWRldGFpbC9wcm9wZXJ0eS12aWV3aW5nLWRldGFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDakUsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLGtCQUFrQixFQUNsQixrQkFBa0IsR0FDbkIsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBNkIscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBa0I3QyxNQUFN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Tzt3QkFDUCxrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLFNBQVM7d0JBQ1QsVUFBVTtxQkFDWCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IEZpeGVkUGlwZSwgQVBQX0NPTkZJRyB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQge1xuICBDb250YWluZXJDb21wb25lbnQsXG4gIFRvb2xiYXJDb21wb25lbnQsXG4gIEJhc2VDb21wb25lbnQsXG4gIFJpY2hMYWJlbENvbXBvbmVudCxcbiAgVGh1bWJuYWlsQ29tcG9uZW50LFxufSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IFByb3BlcnR5U2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLXNlcnZpY2VzJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IFByb3BlcnR5LCBQcm9wZXJ0eVZpZXdpbmcsIFByb3BlcnR5Vmlld2luZ1N0YXR1cyB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQXV0aFVzZXJTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItYXV0aCc7XG5pbXBvcnQgeyBSb3V0ZXJMaW5rIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvcGVydHktdmlld2luZy1kZXRhaWwnLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTmdDbGFzcyxcbiAgICBUaHVtYm5haWxDb21wb25lbnQsXG4gICAgUmljaExhYmVsQ29tcG9uZW50LFxuICAgIENvbnRhaW5lckNvbXBvbmVudCxcbiAgICBUb29sYmFyQ29tcG9uZW50LFxuICAgIEZpeGVkUGlwZSxcbiAgICBSb3V0ZXJMaW5rLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydHktdmlld2luZy1kZXRhaWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHJvcGVydHktdmlld2luZy1kZXRhaWwuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eVZpZXdpbmdEZXRhaWxDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJvcGVydHlTZXJ2aWNlID0gaW5qZWN0KFByb3BlcnR5U2VydmljZSk7XG4gIGF1dGhVc2VyU2VydmljZSA9IGluamVjdChBdXRoVXNlclNlcnZpY2UpO1xuICBhZ2VudDogYW55O1xuICB2aWV3aW5nITogUHJvcGVydHlWaWV3aW5nO1xuICBpbmZvID0gZmFsc2U7XG4gIGxvYWRpbmdUaW1lbGluZSA9IGZhbHNlO1xuICBzdGF0dXM6IGFueSA9IFByb3BlcnR5Vmlld2luZ1N0YXR1cztcbiAgZW52ID0gaW5qZWN0KEFQUF9DT05GSUcpO1xuICBwcm9wZXJ0eSE6IFByb3BlcnR5O1xuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHRoaXMucm91dGUucGFyYW1zLnN1YnNjcmliZSgocGFyYW1zKSA9PiB7XG4gICAgICBjb25zdCBpZCA9IHBhcmFtc1snaWQnXTtcbiAgICAgIHRoaXMuZ2V0KGlkKTtcbiAgICB9KTtcbiAgfVxuICBnZXQoaWQ6IHN0cmluZykge1xuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmdldFZpZXdpbmcoaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy52aWV3aW5nID0gcmVzLmRhdGE7XG4gICAgICAgIHRoaXMuZ2V0UHJvcGVydHkodGhpcy52aWV3aW5nLnByb3BlcnR5SWQpO1xuICAgICAgICAvLyB0aGlzLmZpbmRBZ2VudEluZm8oKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgZ2V0UHJvcGVydHkocHJvcGVydHlJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZ2V0KHByb3BlcnR5SWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5wcm9wZXJ0eSA9IHJlcy5kYXRhO1xuICAgICAgICB0aGlzLmdldEFnZW50UHVibGljSW5mbyh0aGlzLnByb3BlcnR5LmFnZW50SWQpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBnZXRBZ2VudFB1YmxpY0luZm8oYWdlbnRJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5hdXRoVXNlclNlcnZpY2UuZ2V0UHVibGljVXNlckluZm8oYWdlbnRJZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5hZ2VudCA9IHJlcztcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgY2FuY2VsKCkge1xuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmNhbmNlbFZpZXdpbmcodGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy52aWV3aW5nLnN0YXR1cyA9ICdDQU5DRUxMRUQnIGFzIFByb3BlcnR5Vmlld2luZ1N0YXR1cztcbiAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbignQ2FuY2VsbGVkJyk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwiQGlmICh2aWV3aW5nKSB7XG4gIDxyb2xhdGVjaC1jb250YWluZXI+XG4gICAgPHJvbGF0ZWNoLXRvb2xiYXIgW3RpdGxlXT1cInN0YXR1c1t2aWV3aW5nLnN0YXR1c11cIiBsYXJnZSBsaW5rPVwiLi4vXCI+IDwvcm9sYXRlY2gtdG9vbGJhcj5cbiAgICA8ZGl2PlxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbGcgZm9udC1ib2xkIHB5LTJcIiBpMThuPlByb3BlcnR5IGRldGFpbHM8L2Rpdj5cbiAgICAgICAgPGhyIGNsYXNzPVwibWItMlwiIC8+XG4gICAgICAgIEBpZiAocHJvcGVydHkpIHtcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIHB5LTIgY3Vyc29yLXBvaW50ZXIgaG92ZXI6YmctWy0tcnQtcmFpc2VkLWJhY2tncm91bmRdXCJcbiAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnLi4vLi4vJywgcHJvcGVydHkuaWRdXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWluLXctMTYgdy0yNCBvYmplY3QtY292ZXIgYXNwZWN0LXZpZGVvIHJvdW5kZWQtbWQgbXItM1wiPlxuICAgICAgICAgICAgICBAZGVmZXIge1xuICAgICAgICAgICAgICAgIDxyb2xhdGVjaC10aHVtYm5haWwgW3NyY109XCJwcm9wZXJ0eS5tZWRpYVswXS51cmxcIiBzaXplPVwibWVkaXVtXCIgbW9kZT1cImZ1bGxcIj4gPC9yb2xhdGVjaC10aHVtYm5haWw+XG4gICAgICAgICAgICAgIH0gQHBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmctWy0tcnQtcmFpc2VkLWJhY2tncm91bmRdIGgtZnVsbCB3LWZ1bGwgb2JqZWN0LWNvdmVyIGFzcGVjdC12aWRlbyByb3VuZGVkLWxnXCI+PC9kaXY+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggdy1mdWxsIGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gdy1mdWxsXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXY+e3sgcHJvcGVydHkudGl0bGUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbmxpbmUtZmxleCBnYXAtMSBtdC0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtci0xXCI+e3sgcHJvcGVydHkuYmVkcm9vbXMgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gaTE4bj5CZWRyb29tczwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtci0xXCI+e3sgcHJvcGVydHkuYmF0aHJvb21zIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGkxOG4+QmF0aHJvb21zPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yLTFcIj57eyBwcm9wZXJ0eS5yZWNlcHRpb25zIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGkxOG4+UmVjZXB0aW9uczwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1yaWdodFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc21cIj7Co3t7IHByb3BlcnR5LnByaWNlIHwgZml4ZWQgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoaWRkZW4gbWQ6ZmxleCBmbGV4LWNvbCBweC0zXCI+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZyBmb250LWJvbGQgcHktMlwiIGkxOG4+UHJvcG9zZWQgdGltZXM8L2Rpdj5cbiAgICAgICAgPGhyIGNsYXNzPVwibWItMlwiIC8+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2Ygdmlld2luZy5wcm9wb3NlZFNsb3RzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBpdGVtcy1jZW50ZXIgZ2FwLTMgcHktM1wiPlxuICAgICAgICAgICAgPHJvbGF0ZWNoLXJpY2gtbGFiZWwgbGFiZWw9XCJEYXRlXCIgW3RpdGxlXT1cIml0ZW0uZGF0ZVwiPjwvcm9sYXRlY2gtcmljaC1sYWJlbD5cbiAgICAgICAgICAgIDxyb2xhdGVjaC1yaWNoLWxhYmVsIGxhYmVsPVwiVGltZVwiIFt0aXRsZV09XCJpdGVtLnRpbWVcIj48L3JvbGF0ZWNoLXJpY2gtbGFiZWw+XG4gICAgICAgICAgICBAaWYgKHZpZXdpbmcudmlld2luZ0RhdGUgJiYgdmlld2luZy52aWV3aW5nVGltZSkge1xuICAgICAgICAgICAgICBAaWYgKGl0ZW0uZGF0ZSA9PT0gdmlld2luZy52aWV3aW5nRGF0ZSAmJiBpdGVtLnRpbWUgPT09IHZpZXdpbmcudmlld2luZ1RpbWUpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWwtM1wiPjxidXR0b24gbWF0LWZsYXQtYnV0dG9uIGkxOG4gZGlzYWJsZWQ9XCJcIj5Db25maXJtZWQ8L2J1dHRvbj48L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gc2FmZSBhcmVhIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInBiLTE2IHNtOnBiLTNcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktZW5kXCI+XG4gICAgICAgICAgQGlmICh2aWV3aW5nLnN0YXR1cy50b1N0cmluZygpICE9PSAnQ0FOQ0VMTEVEJykge1xuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY2xhc3M9XCJtaW4taC0xMVwiIChjbGljayk9XCJjYW5jZWwoKVwiIGkxOG4+Q2FuY2VsPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L3JvbGF0ZWNoLWNvbnRhaW5lcj5cbn1cbkBpZiAoaW5mbykge1xuICA8ZGl2XG4gICAgW25nQ2xhc3NdPVwibG9hZGluZ1RpbWVsaW5lID8gJ3RyYW5zbGF0ZS14LWZ1bGwnIDogJ3RyYW5zbGF0ZS1ub25lJ1wiXG4gICAgY2xhc3M9XCJmaXhlZCB0b3AtMCByaWdodC0wIHotWzEwMDFdIGgtc2NyZWVuIHAtNCBvdmVyZmxvdy15LWF1dG8gdHJhbnNpdGlvbi10cmFuc2Zvcm0gYmctWy0tcnQtcmFpc2VkLWJhY2tncm91bmRdIHctODAgc206dy1bMzAwcHhdIHNoYWRvdy14bFwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIHNtOnAtNFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInRleHQteGwgZm9udC1ib2xkXCIgaTE4bj5TdGF0dXM8L2Rpdj5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJpbmZvID0gIWluZm9cIj5cbiAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbn1cblxuPGRpdlxuICAoY2xpY2spPVwiaW5mbyA9ICFpbmZvXCJcbiAgW25nQ2xhc3NdPVwiaW5mbyA/ICd2aXNpYmxlJyA6ICdpbnZpc2libGUnXCJcbiAgY2xhc3M9XCJiZy1bLS1ydC0xMC1wZXJjZW50LWxheWVyXSBmaXhlZCBpbnNldC0wIHotWzEwMDBdXCJcbj48L2Rpdj5cbiJdfQ==","import { Component, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { RouterModule } from '@angular/router';\nimport { ContainerComponent, ToolbarComponent, ListComponent, EmptyComponent, BaseComponent, } from '@rolatech/angular-components';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatSelectModule } from '@angular/material/select';\nimport { PropertyService } from '@rolatech/angular-services';\nimport { PropertyItemComponent } from '../../../components';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/router\";\nexport class PropertyWishlistComponent extends BaseComponent {\n propertyService = inject(PropertyService);\n wishlist;\n ngOnInit() {\n this.findWishlist();\n }\n findWishlist() {\n this.propertyService.findWishlist({}).subscribe({\n next: (res) => {\n this.wishlist = res.data;\n },\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyWishlistComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyWishlistComponent, isStandalone: true, selector: \"rolatech-property-wishlist\", usesInheritance: true, ngImport: i0, template: \"<rolatech-container>\\n <rolatech-toolbar title=\\\"Wishlist\\\" large> </rolatech-toolbar>\\n <rolatech-list>\\n @if (wishlist) {\\n @for (item of wishlist; track item) {\\n <rolatech-property-item [routerLink]=\\\"['../', item.id]\\\" [property]=\\\"item\\\"></rolatech-property-item>\\n }\\n } @else {\\n <rolatech-empty></rolatech-empty>\\n }\\n </rolatech-list>\\n</rolatech-container>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"component\", type: ContainerComponent, selector: \"rolatech-container\" }, { kind: \"ngmodule\", type: RouterModule }, { kind: \"directive\", type: i1.RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"component\", type: ListComponent, selector: \"rolatech-list\" }, { kind: \"component\", type: EmptyComponent, selector: \"rolatech-empty\" }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"ngmodule\", type: MatDatepickerModule }, { kind: \"ngmodule\", type: MatOptionModule }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"ngmodule\", type: MatSelectModule }, { kind: \"component\", type: PropertyItemComponent, selector: \"rolatech-property-item\", inputs: [\"property\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyWishlistComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-wishlist', imports: [\n CommonModule,\n ContainerComponent,\n RouterModule,\n ToolbarComponent,\n ListComponent,\n EmptyComponent,\n MatButtonModule,\n MatIconModule,\n FormsModule,\n MatFormFieldModule,\n MatDatepickerModule,\n MatOptionModule,\n MatInputModule,\n MatSelectModule,\n MatButtonModule,\n PropertyItemComponent,\n ], template: \"<rolatech-container>\\n <rolatech-toolbar title=\\\"Wishlist\\\" large> </rolatech-toolbar>\\n <rolatech-list>\\n @if (wishlist) {\\n @for (item of wishlist; track item) {\\n <rolatech-property-item [routerLink]=\\\"['../', item.id]\\\" [property]=\\\"item\\\"></rolatech-property-item>\\n }\\n } @else {\\n <rolatech-empty></rolatech-empty>\\n }\\n </rolatech-list>\\n</rolatech-container>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktd2lzaGxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL3BhZ2VzL3Byb3BlcnR5L3Byb3BlcnR5LXdpc2hsaXN0L3Byb3BlcnR5LXdpc2hsaXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS9wcm9wZXJ0eS13aXNobGlzdC9wcm9wZXJ0eS13aXNobGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsY0FBYyxFQUNkLGFBQWEsR0FDZCxNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUF5QjVELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxhQUFhO0lBQzFELGVBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFFMUMsUUFBUSxDQUFNO0lBQ2QsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBQ0QsWUFBWTtRQUNWLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUM5QyxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQzNCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO3VHQWJVLHlCQUF5QjsyRkFBekIseUJBQXlCLDZHQzVDdEMscVpBWUEseUREWUksWUFBWSwrQkFDWixrQkFBa0IsOERBQ2xCLFlBQVksZ1JBQ1osZ0JBQWdCLGdJQUNoQixhQUFhLDBEQUNiLGNBQWMsMERBQ2QsZUFBZSw4QkFDZixhQUFhLDhCQUNiLFdBQVcsOEJBQ1gsa0JBQWtCLDhCQUNsQixtQkFBbUIsOEJBQ25CLGVBQWUsOEJBQ2YsY0FBYyw4QkFDZCxlQUFlLCtCQUVmLHFCQUFxQjs7MkZBS1oseUJBQXlCO2tCQXZCckMsU0FBUzsrQkFDRSw0QkFBNEIsV0FDN0I7d0JBQ1AsWUFBWTt3QkFDWixrQkFBa0I7d0JBQ2xCLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixhQUFhO3dCQUNiLFdBQVc7d0JBQ1gsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGVBQWU7d0JBQ2YscUJBQXFCO3FCQUN0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBDb250YWluZXJDb21wb25lbnQsXG4gIFRvb2xiYXJDb21wb25lbnQsXG4gIExpc3RDb21wb25lbnQsXG4gIEVtcHR5Q29tcG9uZW50LFxuICBCYXNlQ29tcG9uZW50LFxufSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0T3B0aW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgUHJvcGVydHlTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItc2VydmljZXMnO1xuaW1wb3J0IHsgUHJvcGVydHlJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb3BlcnR5LXdpc2hsaXN0JyxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBDb250YWluZXJDb21wb25lbnQsXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIFRvb2xiYXJDb21wb25lbnQsXG4gICAgTGlzdENvbXBvbmVudCxcbiAgICBFbXB0eUNvbXBvbmVudCxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgICBNYXRPcHRpb25Nb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBQcm9wZXJ0eUl0ZW1Db21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS13aXNobGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9wZXJ0eS13aXNobGlzdC5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5V2lzaGxpc3RDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJvcGVydHlTZXJ2aWNlID0gaW5qZWN0KFByb3BlcnR5U2VydmljZSk7XG5cbiAgd2lzaGxpc3Q6IGFueTtcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5maW5kV2lzaGxpc3QoKTtcbiAgfVxuICBmaW5kV2lzaGxpc3QoKSB7XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZmluZFdpc2hsaXN0KHt9KS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMud2lzaGxpc3QgPSByZXMuZGF0YTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxyb2xhdGVjaC1jb250YWluZXI+XG4gIDxyb2xhdGVjaC10b29sYmFyIHRpdGxlPVwiV2lzaGxpc3RcIiBsYXJnZT4gPC9yb2xhdGVjaC10b29sYmFyPlxuICA8cm9sYXRlY2gtbGlzdD5cbiAgICBAaWYgKHdpc2hsaXN0KSB7XG4gICAgICBAZm9yIChpdGVtIG9mIHdpc2hsaXN0OyB0cmFjayBpdGVtKSB7XG4gICAgICAgIDxyb2xhdGVjaC1wcm9wZXJ0eS1pdGVtIFtyb3V0ZXJMaW5rXT1cIlsnLi4vJywgaXRlbS5pZF1cIiBbcHJvcGVydHldPVwiaXRlbVwiPjwvcm9sYXRlY2gtcHJvcGVydHktaXRlbT5cbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxyb2xhdGVjaC1lbXB0eT48L3JvbGF0ZWNoLWVtcHR5PlxuICAgIH1cbiAgPC9yb2xhdGVjaC1saXN0PlxuPC9yb2xhdGVjaC1jb250YWluZXI+XG4iXX0=","import { PropertyLayoutComponent } from './property-layout/property-layout.component';\nimport { PropertyDetailsComponent } from './property-details/property-details.component';\nimport { PropertyViewingRequestComponent } from './property-viewing-request/property-viewing-request.component';\nimport { PropertyOfferComponent } from './property-offer/property-offer.component';\nimport { PropertyOfferIndexComponent } from './property-offer-index/property-offer-index.component';\nimport { PropertyViewingIndexComponent } from './property-viewing-index/property-viewing-index.component';\nimport { PropertyOfferDetailComponent } from './property-offer-detail/property-offer-detail.component';\nimport { PropertyViewingDetailComponent } from './property-viewing-detail/property-viewing-detail.component';\nimport { PropertyWishlistComponent } from './property-wishlist/property-wishlist.component';\nimport { AuthGuard } from '@rolatech/angular-auth';\nexport const propertyRoutes = [\n {\n path: '',\n component: PropertyLayoutComponent,\n children: [\n {\n path: '',\n loadComponent: () => import('./property-index/property-index.component').then((x) => x.PropertyIndexComponent),\n },\n ],\n },\n {\n path: 'wishlist',\n canActivate: [AuthGuard],\n component: PropertyWishlistComponent,\n },\n {\n path: 'viewings',\n canActivate: [AuthGuard],\n component: PropertyViewingIndexComponent,\n },\n {\n path: 'offers',\n canActivate: [AuthGuard],\n component: PropertyOfferIndexComponent,\n },\n {\n path: 'viewings/:id',\n canActivate: [AuthGuard],\n component: PropertyViewingDetailComponent,\n },\n {\n path: 'offers/:id',\n canActivate: [AuthGuard],\n component: PropertyOfferDetailComponent,\n },\n {\n path: ':id/viewing/application',\n canActivate: [AuthGuard],\n component: PropertyViewingRequestComponent,\n },\n {\n path: ':id/offer',\n canActivate: [AuthGuard],\n component: PropertyOfferComponent,\n },\n {\n path: ':id',\n component: PropertyDetailsComponent,\n },\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkucm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL3BhZ2VzL3Byb3BlcnR5L3Byb3BlcnR5LnJvdXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN0RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUNoSCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUM3RyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFbkQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFXO0lBQ3BDO1FBQ0UsSUFBSSxFQUFFLEVBQUU7UUFDUixTQUFTLEVBQUUsdUJBQXVCO1FBQ2xDLFFBQVEsRUFBRTtZQUNSO2dCQUNFLElBQUksRUFBRSxFQUFFO2dCQUNSLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsMkNBQTJDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQzthQUMvRztTQUNGO0tBQ0Y7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQztRQUN4QixTQUFTLEVBQUUseUJBQXlCO0tBQ3JDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsVUFBVTtRQUNoQixXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUM7UUFDeEIsU0FBUyxFQUFFLDZCQUE2QjtLQUN6QztJQUNEO1FBQ0UsSUFBSSxFQUFFLFFBQVE7UUFDZCxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUM7UUFDeEIsU0FBUyxFQUFFLDJCQUEyQjtLQUN2QztJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDO1FBQ3hCLFNBQVMsRUFBRSw4QkFBOEI7S0FDMUM7SUFDRDtRQUNFLElBQUksRUFBRSxZQUFZO1FBQ2xCLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQztRQUN4QixTQUFTLEVBQUUsNEJBQTRCO0tBQ3hDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUseUJBQXlCO1FBQy9CLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQztRQUN4QixTQUFTLEVBQUUsK0JBQStCO0tBQzNDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsV0FBVztRQUNqQixXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUM7UUFDeEIsU0FBUyxFQUFFLHNCQUFzQjtLQUNsQztJQUNEO1FBQ0UsSUFBSSxFQUFFLEtBQUs7UUFDWCxTQUFTLEVBQUUsd0JBQXdCO0tBQ3BDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBQcm9wZXJ0eUxheW91dENvbXBvbmVudCB9IGZyb20gJy4vcHJvcGVydHktbGF5b3V0L3Byb3BlcnR5LWxheW91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvcGVydHlEZXRhaWxzQ29tcG9uZW50IH0gZnJvbSAnLi9wcm9wZXJ0eS1kZXRhaWxzL3Byb3BlcnR5LWRldGFpbHMuY29tcG9uZW50JztcbmltcG9ydCB7IFByb3BlcnR5Vmlld2luZ1JlcXVlc3RDb21wb25lbnQgfSBmcm9tICcuL3Byb3BlcnR5LXZpZXdpbmctcmVxdWVzdC9wcm9wZXJ0eS12aWV3aW5nLXJlcXVlc3QuY29tcG9uZW50JztcbmltcG9ydCB7IFByb3BlcnR5T2ZmZXJDb21wb25lbnQgfSBmcm9tICcuL3Byb3BlcnR5LW9mZmVyL3Byb3BlcnR5LW9mZmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9wZXJ0eU9mZmVySW5kZXhDb21wb25lbnQgfSBmcm9tICcuL3Byb3BlcnR5LW9mZmVyLWluZGV4L3Byb3BlcnR5LW9mZmVyLWluZGV4LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9wZXJ0eVZpZXdpbmdJbmRleENvbXBvbmVudCB9IGZyb20gJy4vcHJvcGVydHktdmlld2luZy1pbmRleC9wcm9wZXJ0eS12aWV3aW5nLWluZGV4LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9wZXJ0eU9mZmVyRGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9wcm9wZXJ0eS1vZmZlci1kZXRhaWwvcHJvcGVydHktb2ZmZXItZGV0YWlsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9wZXJ0eVZpZXdpbmdEZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL3Byb3BlcnR5LXZpZXdpbmctZGV0YWlsL3Byb3BlcnR5LXZpZXdpbmctZGV0YWlsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9wZXJ0eVdpc2hsaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9wcm9wZXJ0eS13aXNobGlzdC9wcm9wZXJ0eS13aXNobGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXV0aEd1YXJkIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItYXV0aCc7XG5cbmV4cG9ydCBjb25zdCBwcm9wZXJ0eVJvdXRlczogUm91dGVzID0gW1xuICB7XG4gICAgcGF0aDogJycsXG4gICAgY29tcG9uZW50OiBQcm9wZXJ0eUxheW91dENvbXBvbmVudCxcbiAgICBjaGlsZHJlbjogW1xuICAgICAge1xuICAgICAgICBwYXRoOiAnJyxcbiAgICAgICAgbG9hZENvbXBvbmVudDogKCkgPT4gaW1wb3J0KCcuL3Byb3BlcnR5LWluZGV4L3Byb3BlcnR5LWluZGV4LmNvbXBvbmVudCcpLnRoZW4oKHgpID0+IHguUHJvcGVydHlJbmRleENvbXBvbmVudCksXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnd2lzaGxpc3QnLFxuICAgIGNhbkFjdGl2YXRlOiBbQXV0aEd1YXJkXSxcbiAgICBjb21wb25lbnQ6IFByb3BlcnR5V2lzaGxpc3RDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAndmlld2luZ3MnLFxuICAgIGNhbkFjdGl2YXRlOiBbQXV0aEd1YXJkXSxcbiAgICBjb21wb25lbnQ6IFByb3BlcnR5Vmlld2luZ0luZGV4Q29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ29mZmVycycsXG4gICAgY2FuQWN0aXZhdGU6IFtBdXRoR3VhcmRdLFxuICAgIGNvbXBvbmVudDogUHJvcGVydHlPZmZlckluZGV4Q29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ3ZpZXdpbmdzLzppZCcsXG4gICAgY2FuQWN0aXZhdGU6IFtBdXRoR3VhcmRdLFxuICAgIGNvbXBvbmVudDogUHJvcGVydHlWaWV3aW5nRGV0YWlsQ29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ29mZmVycy86aWQnLFxuICAgIGNhbkFjdGl2YXRlOiBbQXV0aEd1YXJkXSxcbiAgICBjb21wb25lbnQ6IFByb3BlcnR5T2ZmZXJEZXRhaWxDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnOmlkL3ZpZXdpbmcvYXBwbGljYXRpb24nLFxuICAgIGNhbkFjdGl2YXRlOiBbQXV0aEd1YXJkXSxcbiAgICBjb21wb25lbnQ6IFByb3BlcnR5Vmlld2luZ1JlcXVlc3RDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnOmlkL29mZmVyJyxcbiAgICBjYW5BY3RpdmF0ZTogW0F1dGhHdWFyZF0sXG4gICAgY29tcG9uZW50OiBQcm9wZXJ0eU9mZmVyQ29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJzppZCcsXG4gICAgY29tcG9uZW50OiBQcm9wZXJ0eURldGFpbHNDb21wb25lbnQsXG4gIH0sXG5dO1xuIl19","import { Component, DestroyRef, HostBinding, inject, signal, viewChild, ViewEncapsulation } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatPaginator, MatPaginatorModule } from '@angular/material/paginator';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { MatTableModule } from '@angular/material/table';\nimport { ActivatedRoute, Router, RouterLink } from '@angular/router';\nimport { ToolbarComponent, SpinnerComponent, SearchBar } from '@rolatech/angular-components';\nimport { PropertySearchService, PropertyService } from '@rolatech/angular-services';\nimport { PropertyManageItemComponent } from '../../../components/property-manage-item/property-manage-item.component';\nimport { distinctUntilChanged, finalize, map, switchMap } from 'rxjs';\nimport { PropertyUtil, PropertyViewType } from '../../../property-util';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\nimport * as i2 from \"@angular/material/icon\";\nimport * as i3 from \"@angular/material/paginator\";\nexport class PropertyManageIndexComponent {\n hasClass = true;\n paginator = viewChild(MatPaginator, ...(ngDevMode ? [{ debugName: \"paginator\" }] : []));\n dialog = inject(MatDialog);\n snackBar = inject(MatSnackBar);\n router = inject(Router);\n destroyRef = inject(DestroyRef);\n route = inject(ActivatedRoute);\n gridView = true;\n util = inject(PropertyUtil);\n propertyService = inject(PropertyService);\n propertySearchService = inject(PropertySearchService);\n isSearch = false;\n // properties: Property[] = [];\n properties = signal([], ...(ngDevMode ? [{ debugName: \"properties\" }] : []));\n exporting = false;\n pageEvent;\n length = 100;\n pageSize = 15;\n pageSizeOptions = [5, 10, 25, 100];\n open = signal(false, ...(ngDevMode ? [{ debugName: \"open\" }] : []));\n pageIndex = signal(0, ...(ngDevMode ? [{ debugName: \"pageIndex\" }] : []));\n meta;\n loading = false;\n ngOnInit() {\n // this.findProperties();\n const sub = this.route.queryParamMap.pipe(map((p) => {\n const page = p.get('page') ? Number(p.get('page')) : 1;\n this.pageIndex.set(Math.max(page - 1, 0));\n return {\n q: p.get('q') || undefined,\n city: p.get('city') || undefined,\n minBedrooms: p.get('minBedrooms') ? Number(p.get('minBedrooms')) : undefined,\n maxPricePence: p.get('maxPricePence') ? Number(p.get('maxPricePence')) : undefined,\n availableFrom: p.get('availableFrom') || undefined,\n availableTo: p.get('availableTo') || undefined,\n features: p.getAll('features')?.length ? p.getAll('features') : undefined,\n page,\n limit: p.get('limit') ? Number(p.get('limit')) : 15,\n sort: p.get('sort') || undefined,\n };\n }), \n // Cheap deep compare via JSON to avoid spam calls when nothing changed\n map((o) => JSON.stringify(o)), distinctUntilChanged(), map((s) => JSON.parse(s)), switchMap((params) => {\n this.loading = true;\n return this.propertySearchService.search(params).pipe(finalize(() => this.loading = false));\n })).subscribe({\n next: (res) => {\n this.properties.set(res.data);\n this.meta = res.meta;\n this.length = res.meta.pagination.count;\n },\n error: () => {\n this.properties.set([]);\n this.length = 0;\n }\n });\n // // auto-unsubscribe on destroy\n this.destroyRef.onDestroy(() => sub.unsubscribe());\n }\n toggleSearch() {\n this.open.update(v => !v);\n }\n toggleView() {\n if (this.gridView) {\n this.gridView = false;\n this.util.viewEvent.emit(PropertyViewType.LIST);\n }\n else {\n this.gridView = true;\n this.util.viewEvent.emit(PropertyViewType.GRID);\n }\n }\n searchByText(event) {\n this.router.navigate([], {\n queryParams: { q: event, page: 1, limit: 15 },\n queryParamsHandling: 'merge', // keep other params like sort, etc.\n });\n }\n search(params) {\n this.propertySearchService.search(params).subscribe({\n next: res => {\n this.properties.set(res.data);\n this.meta = res.meta;\n this.loading = false;\n this.length = res.meta.pagination.count;\n // this.pageIndex.set(Math.max(page - 1, 0));\n },\n error: error => {\n this.loading = false;\n }\n });\n }\n onCloseSearch() {\n // this.open.set(false);\n // this.router.navigate([], { queryParams: {}, queryParamsHandling: 'merge' });\n this.router.navigate([\"/properties\"]);\n }\n export() {\n this.exporting = true;\n this.propertyService.export().subscribe({\n next: ({ blob, filename }) => {\n // Browser-only download\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = filename || 'properties.csv';\n document.body.appendChild(a);\n a.click();\n a.remove();\n URL.revokeObjectURL(url);\n this.exporting = false;\n },\n error: (e) => {\n this.exporting = false;\n }\n });\n }\n onPage(e) {\n this.router.navigate([], {\n queryParams: { page: e.pageIndex + 1, limit: e.pageSize },\n queryParamsHandling: 'merge',\n replaceUrl: true, // optional: avoid stacking history on every page click\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageIndexComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyManageIndexComponent, isStandalone: true, selector: \"rolatech-property-manage-index\", host: { properties: { \"class.rolatech-property-manage-index\": \"this.hasClass\" } }, viewQueries: [{ propertyName: \"paginator\", first: true, predicate: MatPaginator, descendants: true, isSignal: true }], ngImport: i0, template: \"<rolatech-toolbar title=\\\"Properties\\\">\\n <div class=\\\"flex items-center gap-2\\\">\\n <button mat-icon-button (click)=\\\"toggleSearch()\\\">\\n <mat-icon>search</mat-icon>\\n </button>\\n <!-- <button mat-icon-button (click)=\\\"toggleView()\\\">\\n <mat-icon>{{ gridView ? 'view_list' : 'grid_on' }}</mat-icon>\\n </button> -->\\n <button mat-flat-button routerLink=\\\"./create\\\">\\n <mat-icon>add</mat-icon>\\n <span i18n>Add property</span>\\n </button>\\n <!-- <button mat-flat-button (click)=\\\"export()\\\" [disabled]=\\\"exporting\\\">\\n <mat-icon>download</mat-icon>\\n <span i18n>Export</span>\\n </button> -->\\n <button mat-flat-button (click)=\\\"export()\\\" [disabled]=\\\"exporting\\\" aria-label=\\\"Export CSV\\\">\\n @if (!exporting) {\\n Export CSV\\n } @else {\\n Exporting\\u2026\\n }\\n </button>\\n </div>\\n</rolatech-toolbar>\\n<div class=\\\"p-2\\\">\\n <rolatech-search-bar\\n [(show)]=\\\"open\\\"\\n #searchBar\\n (search)=\\\"searchByText($event)\\\"\\n (close)=\\\"onCloseSearch()\\\"\\n ></rolatech-search-bar>\\n</div>\\n@if (loading) {\\n <div class=\\\"flex justify-center items-center\\\">\\n <rolatech-spinner></rolatech-spinner>\\n </div>\\n} @else {\\n <div class=\\\"bg-[--rt-rasised-background] h-full\\\">\\n <!-- <rolatech-property-manage-filter></rolatech-property-manage-filter> -->\\n <div class=\\\"flex flex-wrap p-3 gap-3\\\">\\n @for (item of properties(); track $index) {\\n <rolatech-property-manage-item\\n [property]=\\\"item\\\"\\n routerLink=\\\"./{{ item.id }}/manage/info\\\"\\n ></rolatech-property-manage-item>\\n }\\n </div>\\n </div>\\n}\\n<mat-paginator\\n #paginator\\n [length]=\\\"length\\\"\\n [pageSize]=\\\"pageSize\\\"\\n [pageIndex]=\\\"pageIndex()\\\"\\n [pageSizeOptions]=\\\"pageSizeOptions\\\"\\n (page)=\\\"onPage($event)\\\"\\n hidePageSize\\n showFirstLastButtons\\n>\\n</mat-paginator>\\n\", styles: [\"mat-form-field{width:100%}table{width:100%}td.mat-column-actions{text-align:right;max-width:64px;font-size:.8rem;padding:0 8px}.mat-mdc-header-cell.actions{text-align:right;max-width:64px;width:64px}.mat-mdc-cell:nth-last-child(2),.mat-mdc-header-cell:nth-last-child(2),.mat-mdc-footer-cell:nth-last-child(2){text-align:right;max-width:180px;width:180px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{text-align:right;padding-right:8px!important}rolatech-property-manage-index{display:flex;flex-direction:column;--rt-property-view-items-per-row: 1}@media (min-width: 600px){rolatech-property-manage-index{--rt-property-view-items-per-row: 2}}@media (min-width: 768px){rolatech-property-manage-index{--rt-property-view-items-per-row: 3}}@media (min-width: 1280px){rolatech-property-manage-index{--rt-property-view-items-per-row: 3}}@media (min-width: 1536px){rolatech-property-manage-index{--rt-property-view-items-per-row: 4}}@media (min-width: 1920px){rolatech-property-manage-index{--rt-property-view-items-per-row: 5}}\\n\"], dependencies: [{ kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i1.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: i1.MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"directive\", type: RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i2.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"ngmodule\", type: MatTableModule }, { kind: \"ngmodule\", type: MatMenuModule }, { kind: \"ngmodule\", type: MatPaginatorModule }, { kind: \"component\", type: i3.MatPaginator, selector: \"mat-paginator\", inputs: [\"color\", \"pageIndex\", \"length\", \"pageSize\", \"pageSizeOptions\", \"hidePageSize\", \"showFirstLastButtons\", \"selectConfig\", \"disabled\"], outputs: [\"page\"], exportAs: [\"matPaginator\"] }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"component\", type: SpinnerComponent, selector: \"rolatech-spinner\", inputs: [\"title\"] }, { kind: \"component\", type: PropertyManageItemComponent, selector: \"rolatech-property-manage-item\", inputs: [\"property\", \"thumbnail\", \"list\"] }, { kind: \"component\", type: SearchBar, selector: \"rolatech-search-bar\", inputs: [\"show\"], outputs: [\"showChange\", \"search\", \"close\"] }], encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageIndexComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-manage-index', imports: [\n MatButtonModule,\n RouterLink,\n MatIconModule,\n MatTableModule,\n MatMenuModule,\n MatPaginatorModule,\n ToolbarComponent,\n SpinnerComponent,\n PropertyManageItemComponent,\n SearchBar\n ], encapsulation: ViewEncapsulation.None, template: \"<rolatech-toolbar title=\\\"Properties\\\">\\n <div class=\\\"flex items-center gap-2\\\">\\n <button mat-icon-button (click)=\\\"toggleSearch()\\\">\\n <mat-icon>search</mat-icon>\\n </button>\\n <!-- <button mat-icon-button (click)=\\\"toggleView()\\\">\\n <mat-icon>{{ gridView ? 'view_list' : 'grid_on' }}</mat-icon>\\n </button> -->\\n <button mat-flat-button routerLink=\\\"./create\\\">\\n <mat-icon>add</mat-icon>\\n <span i18n>Add property</span>\\n </button>\\n <!-- <button mat-flat-button (click)=\\\"export()\\\" [disabled]=\\\"exporting\\\">\\n <mat-icon>download</mat-icon>\\n <span i18n>Export</span>\\n </button> -->\\n <button mat-flat-button (click)=\\\"export()\\\" [disabled]=\\\"exporting\\\" aria-label=\\\"Export CSV\\\">\\n @if (!exporting) {\\n Export CSV\\n } @else {\\n Exporting\\u2026\\n }\\n </button>\\n </div>\\n</rolatech-toolbar>\\n<div class=\\\"p-2\\\">\\n <rolatech-search-bar\\n [(show)]=\\\"open\\\"\\n #searchBar\\n (search)=\\\"searchByText($event)\\\"\\n (close)=\\\"onCloseSearch()\\\"\\n ></rolatech-search-bar>\\n</div>\\n@if (loading) {\\n <div class=\\\"flex justify-center items-center\\\">\\n <rolatech-spinner></rolatech-spinner>\\n </div>\\n} @else {\\n <div class=\\\"bg-[--rt-rasised-background] h-full\\\">\\n <!-- <rolatech-property-manage-filter></rolatech-property-manage-filter> -->\\n <div class=\\\"flex flex-wrap p-3 gap-3\\\">\\n @for (item of properties(); track $index) {\\n <rolatech-property-manage-item\\n [property]=\\\"item\\\"\\n routerLink=\\\"./{{ item.id }}/manage/info\\\"\\n ></rolatech-property-manage-item>\\n }\\n </div>\\n </div>\\n}\\n<mat-paginator\\n #paginator\\n [length]=\\\"length\\\"\\n [pageSize]=\\\"pageSize\\\"\\n [pageIndex]=\\\"pageIndex()\\\"\\n [pageSizeOptions]=\\\"pageSizeOptions\\\"\\n (page)=\\\"onPage($event)\\\"\\n hidePageSize\\n showFirstLastButtons\\n>\\n</mat-paginator>\\n\", styles: [\"mat-form-field{width:100%}table{width:100%}td.mat-column-actions{text-align:right;max-width:64px;font-size:.8rem;padding:0 8px}.mat-mdc-header-cell.actions{text-align:right;max-width:64px;width:64px}.mat-mdc-cell:nth-last-child(2),.mat-mdc-header-cell:nth-last-child(2),.mat-mdc-footer-cell:nth-last-child(2){text-align:right;max-width:180px;width:180px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{text-align:right;padding-right:8px!important}rolatech-property-manage-index{display:flex;flex-direction:column;--rt-property-view-items-per-row: 1}@media (min-width: 600px){rolatech-property-manage-index{--rt-property-view-items-per-row: 2}}@media (min-width: 768px){rolatech-property-manage-index{--rt-property-view-items-per-row: 3}}@media (min-width: 1280px){rolatech-property-manage-index{--rt-property-view-items-per-row: 3}}@media (min-width: 1536px){rolatech-property-manage-index{--rt-property-view-items-per-row: 4}}@media (min-width: 1920px){rolatech-property-manage-index{--rt-property-view-items-per-row: 5}}\\n\"] }]\n }], propDecorators: { hasClass: [{\n type: HostBinding,\n args: ['class.rolatech-property-manage-index']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbWFuYWdlLWluZGV4LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS1tYW5hZ2UvcHJvcGVydHktbWFuYWdlLWluZGV4L3Byb3BlcnR5LW1hbmFnZS1pbmRleC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktbWFuYWdlL3Byb3BlcnR5LW1hbmFnZS1pbmRleC9wcm9wZXJ0eS1tYW5hZ2UtaW5kZXguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFhLE1BQU0sNkJBQTZCLENBQUM7QUFDMUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdC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QzNCLFNBQVM7OzJGQU1BLDRCQUE0QjtrQkFsQnhDLFNBQVM7K0JBQ0UsZ0NBQWdDLFdBQ2pDO3dCQUNQLGVBQWU7d0JBQ2YsVUFBVTt3QkFDVixhQUFhO3dCQUNiLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixrQkFBa0I7d0JBQ2xCLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQiwyQkFBMkI7d0JBQzNCLFNBQVM7cUJBQ1YsaUJBR2MsaUJBQWlCLENBQUMsSUFBSTs4QkFHZ0IsUUFBUTtzQkFBNUQsV0FBVzt1QkFBQyxzQ0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIERlc3Ryb3lSZWYsIEhvc3RCaW5kaW5nLCBpbmplY3QsIE9uSW5pdCwgc2lnbmFsLCB2aWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IE1hdFBhZ2luYXRvciwgTWF0UGFnaW5hdG9yTW9kdWxlLCBQYWdlRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgTWF0VGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyLCBSb3V0ZXJMaW5rIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFRvb2xiYXJDb21wb25lbnQsIFNwaW5uZXJDb21wb25lbnQsIFNlYXJjaEJhciB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgUHJvcGVydHlTZWFyY2hTZXJ2aWNlLCBQcm9wZXJ0eVNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgUHJvcGVydHlNYW5hZ2VJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9wcm9wZXJ0eS1tYW5hZ2UtaXRlbS9wcm9wZXJ0eS1tYW5hZ2UtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbmFsaXplLCBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUHJvcGVydHlVdGlsLCBQcm9wZXJ0eVZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vLi4vcHJvcGVydHktdXRpbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb3BlcnR5LW1hbmFnZS1pbmRleCcsXG4gIGltcG9ydHM6IFtcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgUm91dGVyTGluayxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdFRhYmxlTW9kdWxlLFxuICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgTWF0UGFnaW5hdG9yTW9kdWxlLFxuICAgIFRvb2xiYXJDb21wb25lbnQsXG4gICAgU3Bpbm5lckNvbXBvbmVudCxcbiAgICBQcm9wZXJ0eU1hbmFnZUl0ZW1Db21wb25lbnQsXG4gICAgU2VhcmNoQmFyXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1tYW5hZ2UtaW5kZXguY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHJvcGVydHktbWFuYWdlLWluZGV4LmNvbXBvbmVudC5zY3NzJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlNYW5hZ2VJbmRleENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBIb3N0QmluZGluZygnY2xhc3Mucm9sYXRlY2gtcHJvcGVydHktbWFuYWdlLWluZGV4JykgaGFzQ2xhc3MgPSB0cnVlO1xuICBwYWdpbmF0b3IgPSB2aWV3Q2hpbGQoTWF0UGFnaW5hdG9yKTtcbiAgZGlhbG9nID0gaW5qZWN0KE1hdERpYWxvZyk7XG4gIHNuYWNrQmFyID0gaW5qZWN0KE1hdFNuYWNrQmFyKTtcbiAgcHJpdmF0ZSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKVxuICBwcml2YXRlIGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIHByaXZhdGUgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuICBncmlkVmlldyA9IHRydWVcbiAgdXRpbCA9IGluamVjdChQcm9wZXJ0eVV0aWwpXG5cbiAgcHJvcGVydHlTZXJ2aWNlID0gaW5qZWN0KFByb3BlcnR5U2VydmljZSk7XG4gIHByb3BlcnR5U2VhcmNoU2VydmljZSA9IGluamVjdChQcm9wZXJ0eVNlYXJjaFNlcnZpY2UpXG4gIGlzU2VhcmNoID0gZmFsc2U7XG4gIC8vIHByb3BlcnRpZXM6IFByb3BlcnR5W10gPSBbXTtcbiAgcHJvcGVydGllcyA9IHNpZ25hbDxQcm9wZXJ0eVtdPihbXSk7XG5cbiAgZXhwb3J0aW5nID0gZmFsc2VcbiAgcGFnZUV2ZW50ITogUGFnZUV2ZW50O1xuICBsZW5ndGggPSAxMDA7XG4gIHBhZ2VTaXplID0gMTU7XG4gIHBhZ2VTaXplT3B0aW9uczogbnVtYmVyW10gPSBbNSwgMTAsIDI1LCAxMDBdO1xuICBvcGVuID0gc2lnbmFsKGZhbHNlKTtcbiAgcGFnZUluZGV4ID0gc2lnbmFsKDApO1xuICBtZXRhOiBhbnk7XG4gIGxvYWRpbmcgPSBmYWxzZTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyB0aGlzLmZpbmRQcm9wZXJ0aWVzKCk7XG4gICAgY29uc3Qgc3ViID0gdGhpcy5yb3V0ZS5xdWVyeVBhcmFtTWFwLnBpcGUoXG4gICAgICBtYXAoKHApID0+IHtcbiAgICAgICAgY29uc3QgcGFnZSA9IHAuZ2V0KCdwYWdlJykgPyBOdW1iZXIocC5nZXQoJ3BhZ2UnKSkgOiAxXG4gICAgICAgIHRoaXMucGFnZUluZGV4LnNldChNYXRoLm1heChwYWdlIC0gMSwgMCkpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcTogcC5nZXQoJ3EnKSB8fCB1bmRlZmluZWQsXG4gICAgICAgICAgY2l0eTogcC5nZXQoJ2NpdHknKSB8fCB1bmRlZmluZWQsXG4gICAgICAgICAgbWluQmVkcm9vbXM6IHAuZ2V0KCdtaW5CZWRyb29tcycpID8gTnVtYmVyKHAuZ2V0KCdtaW5CZWRyb29tcycpKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBtYXhQcmljZVBlbmNlOiBwLmdldCgnbWF4UHJpY2VQZW5jZScpID8gTnVtYmVyKHAuZ2V0KCdtYXhQcmljZVBlbmNlJykpIDogdW5kZWZpbmVkLFxuICAgICAgICAgIGF2YWlsYWJsZUZyb206IHAuZ2V0KCdhdmFpbGFibGVGcm9tJykgfHwgdW5kZWZpbmVkLFxuICAgICAgICAgIGF2YWlsYWJsZVRvOiBwLmdldCgnYXZhaWxhYmxlVG8nKSB8fCB1bmRlZmluZWQsXG4gICAgICAgICAgZmVhdHVyZXM6IHAuZ2V0QWxsKCdmZWF0dXJlcycpPy5sZW5ndGggPyBwLmdldEFsbCgnZmVhdHVyZXMnKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBwYWdlLFxuICAgICAgICAgIGxpbWl0OiBwLmdldCgnbGltaXQnKSA/IE51bWJlcihwLmdldCgnbGltaXQnKSkgOiAxNSxcbiAgICAgICAgICBzb3J0OiBwLmdldCgnc29ydCcpIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgfTtcbiAgICAgIH0pLFxuICAgICAgLy8gQ2hlYXAgZGVlcCBjb21wYXJlIHZpYSBKU09OIHRvIGF2b2lkIHNwYW0gY2FsbHMgd2hlbiBub3RoaW5nIGNoYW5nZWRcbiAgICAgIG1hcCgobykgPT4gSlNPTi5zdHJpbmdpZnkobykpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIG1hcCgocykgPT4gSlNPTi5wYXJzZShzKSksXG4gICAgICBzd2l0Y2hNYXAoKHBhcmFtcykgPT4ge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9wZXJ0eVNlYXJjaFNlcnZpY2Uuc2VhcmNoPGFueT4ocGFyYW1zKS5waXBlKGZpbmFsaXplKCgpID0+IHRoaXMubG9hZGluZyA9IGZhbHNlKSk7XG4gICAgICB9KVxuICAgICkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5wcm9wZXJ0aWVzLnNldChyZXMuZGF0YSk7XG4gICAgICAgIHRoaXMubWV0YSA9IHJlcy5tZXRhO1xuICAgICAgICB0aGlzLmxlbmd0aCA9IHJlcy5tZXRhLnBhZ2luYXRpb24uY291bnQ7XG4gICAgICB9LFxuICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgdGhpcy5wcm9wZXJ0aWVzLnNldChbXSk7XG4gICAgICAgIHRoaXMubGVuZ3RoID0gMDtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIC8vIGF1dG8tdW5zdWJzY3JpYmUgb24gZGVzdHJveVxuICAgIHRoaXMuZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xuICB9XG4gIHRvZ2dsZVNlYXJjaCgpIHtcbiAgICB0aGlzLm9wZW4udXBkYXRlKHYgPT4gIXYpO1xuICB9XG4gIHRvZ2dsZVZpZXcoKSB7XG4gICAgaWYgKHRoaXMuZ3JpZFZpZXcpIHtcbiAgICAgIHRoaXMuZ3JpZFZpZXcgPSBmYWxzZVxuICAgICAgdGhpcy51dGlsLnZpZXdFdmVudC5lbWl0KFByb3BlcnR5Vmlld1R5cGUuTElTVClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5ncmlkVmlldyA9IHRydWVcbiAgICAgIHRoaXMudXRpbC52aWV3RXZlbnQuZW1pdChQcm9wZXJ0eVZpZXdUeXBlLkdSSUQpXG4gICAgfVxuICB9XG4gIHNlYXJjaEJ5VGV4dChldmVudDogYW55KSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW10sIHtcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7IHE6IGV2ZW50LCBwYWdlOiAxLCBsaW1pdDogMTUgfSxcbiAgICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdtZXJnZScsIC8vIGtlZXAgb3RoZXIgcGFyYW1zIGxpa2Ugc29ydCwgZXRjLlxuICAgIH0pO1xuICB9XG4gIHNlYXJjaChwYXJhbXM6IGFueSkge1xuICAgIHRoaXMucHJvcGVydHlTZWFyY2hTZXJ2aWNlLnNlYXJjaChwYXJhbXMpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiByZXMgPT4ge1xuICAgICAgICB0aGlzLnByb3BlcnRpZXMuc2V0KHJlcy5kYXRhKTtcbiAgICAgICAgdGhpcy5tZXRhID0gcmVzLm1ldGE7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxlbmd0aCA9IHJlcy5tZXRhLnBhZ2luYXRpb24uY291bnQ7XG4gICAgICAgIC8vIHRoaXMucGFnZUluZGV4LnNldChNYXRoLm1heChwYWdlIC0gMSwgMCkpO1xuXG4gICAgICB9LFxuICAgICAgZXJyb3I6IGVycm9yID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2VcbiAgICAgIH1cbiAgICB9KVxuICB9XG4gIG9uQ2xvc2VTZWFyY2goKSB7XG4gICAgLy8gdGhpcy5vcGVuLnNldChmYWxzZSk7XG4gICAgLy8gdGhpcy5yb3V0ZXIubmF2aWdhdGUoW10sIHsgcXVlcnlQYXJhbXM6IHt9LCBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnIH0pO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcIi9wcm9wZXJ0aWVzXCJdKTtcbiAgfVxuICBleHBvcnQoKSB7XG4gICAgdGhpcy5leHBvcnRpbmcgPSB0cnVlXG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZXhwb3J0KCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6ICh7IGJsb2IsIGZpbGVuYW1lIH0pID0+IHtcbiAgICAgICAgLy8gQnJvd3Nlci1vbmx5IGRvd25sb2FkXG4gICAgICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG4gICAgICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgICAgIGEuaHJlZiA9IHVybDtcbiAgICAgICAgYS5kb3dubG9hZCA9IGZpbGVuYW1lIHx8ICdwcm9wZXJ0aWVzLmNzdic7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7XG4gICAgICAgIGEuY2xpY2soKTtcbiAgICAgICAgYS5yZW1vdmUoKTtcbiAgICAgICAgVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xuICAgICAgICB0aGlzLmV4cG9ydGluZyA9IGZhbHNlXG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgIHRoaXMuZXhwb3J0aW5nID0gZmFsc2VcbiAgICAgIH1cbiAgICB9KTtcblxuICB9XG4gIG9uUGFnZShlOiBQYWdlRXZlbnQpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwge1xuICAgICAgcXVlcnlQYXJhbXM6IHsgcGFnZTogZS5wYWdlSW5kZXggKyAxLCBsaW1pdDogZS5wYWdlU2l6ZSB9LFxuICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJyxcbiAgICAgIHJlcGxhY2VVcmw6IHRydWUsIC8vIG9wdGlvbmFsOiBhdm9pZCBzdGFja2luZyBoaXN0b3J5IG9uIGV2ZXJ5IHBhZ2UgY2xpY2tcbiAgICB9KTtcbiAgfVxufVxuIiwiPHJvbGF0ZWNoLXRvb2xiYXIgdGl0bGU9XCJQcm9wZXJ0aWVzXCI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJ0b2dnbGVTZWFyY2goKVwiPlxuICAgICAgPG1hdC1pY29uPnNlYXJjaDwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gICAgPCEtLSA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwidG9nZ2xlVmlldygpXCI+XG4gICAgICA8bWF0LWljb24+e3sgZ3JpZFZpZXcgPyAndmlld19saXN0JyA6ICdncmlkX29uJyB9fTwvbWF0LWljb24+XG4gICAgPC9idXR0b24+IC0tPlxuICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIHJvdXRlckxpbms9XCIuL2NyZWF0ZVwiPlxuICAgICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+XG4gICAgICA8c3BhbiBpMThuPkFkZCBwcm9wZXJ0eTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8IS0tIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIChjbGljayk9XCJleHBvcnQoKVwiIFtkaXNhYmxlZF09XCJleHBvcnRpbmdcIj5cbiAgICAgIDxtYXQtaWNvbj5kb3dubG9hZDwvbWF0LWljb24+XG4gICAgICA8c3BhbiBpMThuPkV4cG9ydDwvc3Bhbj5cbiAgICA8L2J1dHRvbj4gLS0+XG4gICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gKGNsaWNrKT1cImV4cG9ydCgpXCIgW2Rpc2FibGVkXT1cImV4cG9ydGluZ1wiIGFyaWEtbGFiZWw9XCJFeHBvcnQgQ1NWXCI+XG4gICAgICBAaWYgKCFleHBvcnRpbmcpIHtcbiAgICAgICAgRXhwb3J0IENTVlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIEV4cG9ydGluZ+KAplxuICAgICAgfVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvcm9sYXRlY2gtdG9vbGJhcj5cbjxkaXYgY2xhc3M9XCJwLTJcIj5cbiAgPHJvbGF0ZWNoLXNlYXJjaC1iYXJcbiAgICBbKHNob3cpXT1cIm9wZW5cIlxuICAgICNzZWFyY2hCYXJcbiAgICAoc2VhcmNoKT1cInNlYXJjaEJ5VGV4dCgkZXZlbnQpXCJcbiAgICAoY2xvc2UpPVwib25DbG9zZVNlYXJjaCgpXCJcbiAgPjwvcm9sYXRlY2gtc2VhcmNoLWJhcj5cbjwvZGl2PlxuQGlmIChsb2FkaW5nKSB7XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlclwiPlxuICAgIDxyb2xhdGVjaC1zcGlubmVyPjwvcm9sYXRlY2gtc3Bpbm5lcj5cbiAgPC9kaXY+XG59IEBlbHNlIHtcbiAgPGRpdiBjbGFzcz1cImJnLVstLXJ0LXJhc2lzZWQtYmFja2dyb3VuZF0gaC1mdWxsXCI+XG4gICAgPCEtLSA8cm9sYXRlY2gtcHJvcGVydHktbWFuYWdlLWZpbHRlcj48L3JvbGF0ZWNoLXByb3BlcnR5LW1hbmFnZS1maWx0ZXI+IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBwLTMgZ2FwLTNcIj5cbiAgICAgIEBmb3IgKGl0ZW0gb2YgcHJvcGVydGllcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPHJvbGF0ZWNoLXByb3BlcnR5LW1hbmFnZS1pdGVtXG4gICAgICAgICAgW3Byb3BlcnR5XT1cIml0ZW1cIlxuICAgICAgICAgIHJvdXRlckxpbms9XCIuL3t7IGl0ZW0uaWQgfX0vbWFuYWdlL2luZm9cIlxuICAgICAgICA+PC9yb2xhdGVjaC1wcm9wZXJ0eS1tYW5hZ2UtaXRlbT5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG59XG48bWF0LXBhZ2luYXRvclxuICAjcGFnaW5hdG9yXG4gIFtsZW5ndGhdPVwibGVuZ3RoXCJcbiAgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCJcbiAgW3BhZ2VJbmRleF09XCJwYWdlSW5kZXgoKVwiXG4gIFtwYWdlU2l6ZU9wdGlvbnNdPVwicGFnZVNpemVPcHRpb25zXCJcbiAgKHBhZ2UpPVwib25QYWdlKCRldmVudClcIlxuICBoaWRlUGFnZVNpemVcbiAgc2hvd0ZpcnN0TGFzdEJ1dHRvbnNcbj5cbjwvbWF0LXBhZ2luYXRvcj5cbiJdfQ==","import { Component, inject } from '@angular/core';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ToolbarComponent } from '@rolatech/angular-components';\nimport { PropertyService } from '@rolatech/angular-services';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@angular/material/form-field\";\nimport * as i3 from \"@angular/material/input\";\nimport * as i4 from \"@angular/cdk/text-field\";\nimport * as i5 from \"@angular/material/button\";\nexport class PropertyManageCreateComponent {\n propertyService = inject(PropertyService);\n router = inject(Router);\n route = inject(ActivatedRoute);\n snackBar = inject(MatSnackBar);\n property = {};\n create() {\n const data = {\n ...this.property,\n };\n this.propertyService.create(data).subscribe({\n next: (res) => {\n this.router.navigate([`../${res.data.id}/manage/info`], {\n relativeTo: this.route,\n });\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageCreateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.2.0\", type: PropertyManageCreateComponent, isStandalone: true, selector: \"rolatech-property-manage-create\", ngImport: i0, template: \"<rolatech-toolbar title=\\\"Add property\\\" link=\\\"../\\\"> </rolatech-toolbar>\\n<div class=\\\"p-3\\\">\\n <section>\\n <form #productForm=\\\"ngForm\\\">\\n <div class=\\\"flex flex-col\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Title </mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"property.title\\\" name=\\\"title\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Description </mat-label>\\n <textarea\\n matInput\\n type=\\\"text\\\"\\n [(ngModel)]=\\\"property.description\\\"\\n name=\\\"description\\\"\\n required\\n cdkTextareaAutosize\\n cdkAutosizeMinRows=\\\"3\\\"\\n ></textarea>\\n </mat-form-field>\\n </div>\\n </form>\\n </section>\\n <div i18n>* items are required</div>\\n <div class=\\\"mt-3\\\">\\n <button mat-flat-button class=\\\"w-28\\\" (click)=\\\"create()\\\" i18n>Create</button>\\n </div>\\n</div>\\n\", styles: [\"\"], dependencies: [{ kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { 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.RequiredValidator, selector: \":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]\", inputs: [\"required\"] }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"directive\", type: i1.NgForm, selector: \"form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]\", inputs: [\"ngFormOptions\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"component\", type: i2.MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: i2.MatLabel, selector: \"mat-label\" }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"directive\", type: i3.MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\", \"disabledInteractive\"], exportAs: [\"matInput\"] }, { kind: \"directive\", type: i4.CdkTextareaAutosize, selector: \"textarea[cdkTextareaAutosize]\", inputs: [\"cdkAutosizeMinRows\", \"cdkAutosizeMaxRows\", \"cdkTextareaAutosize\", \"placeholder\"], exportAs: [\"cdkTextareaAutosize\"] }, { kind: \"ngmodule\", type: TextFieldModule }, { kind: \"ngmodule\", type: MatSelectModule }, { kind: \"ngmodule\", type: MatOptionModule }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i5.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageCreateComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-manage-create', imports: [\n ToolbarComponent,\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n TextFieldModule,\n MatSelectModule,\n MatOptionModule,\n MatButtonModule,\n ], template: \"<rolatech-toolbar title=\\\"Add property\\\" link=\\\"../\\\"> </rolatech-toolbar>\\n<div class=\\\"p-3\\\">\\n <section>\\n <form #productForm=\\\"ngForm\\\">\\n <div class=\\\"flex flex-col\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Title </mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"property.title\\\" name=\\\"title\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Description </mat-label>\\n <textarea\\n matInput\\n type=\\\"text\\\"\\n [(ngModel)]=\\\"property.description\\\"\\n name=\\\"description\\\"\\n required\\n cdkTextareaAutosize\\n cdkAutosizeMinRows=\\\"3\\\"\\n ></textarea>\\n </mat-form-field>\\n </div>\\n </form>\\n </section>\\n <div i18n>* items are required</div>\\n <div class=\\\"mt-3\\\">\\n <button mat-flat-button class=\\\"w-28\\\" (click)=\\\"create()\\\" i18n>Create</button>\\n </div>\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbWFuYWdlLWNyZWF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktbWFuYWdlL3Byb3BlcnR5LW1hbmFnZS1jcmVhdGUvcHJvcGVydHktbWFuYWdlLWNyZWF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktbWFuYWdlL3Byb3BlcnR5LW1hbmFnZS1jcmVhdGUvcHJvcGVydHktbWFuYWdlLWNyZWF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7QUFpQjdELE1BQU0sT0FBTyw2QkFBNkI7SUFDaEMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMxQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLEtBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDL0IsUUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN2QyxRQUFRLEdBQVEsRUFBRSxDQUFDO0lBQ25CLE1BQU07UUFDSixNQUFNLElBQUksR0FBRztZQUNYLEdBQUcsSUFBSSxDQUFDLFFBQVE7U0FDakIsQ0FBQztRQUNGLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUMxQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDWixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLGNBQWMsQ0FBQyxFQUFFO29CQUN0RCxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUs7aUJBQ3ZCLENBQUMsQ0FBQztZQUNMLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDWCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDaEMsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBcEJVLDZCQUE2QjsyRkFBN0IsNkJBQTZCLDJGQzVCMUMsay9CQTZCQSwwRERiSSxnQkFBZ0IsK0hBQ2hCLFdBQVcsb3dDQUNYLGtCQUFrQiwwU0FDbEIsY0FBYyxnbUJBQ2QsZUFBZSw4QkFDZixlQUFlLDhCQUNmLGVBQWUsOEJBQ2YsZUFBZTs7MkZBS04sNkJBQTZCO2tCQWZ6QyxTQUFTOytCQUNFLGlDQUFpQyxXQUNsQzt3QkFDUCxnQkFBZ0I7d0JBQ2hCLFdBQVc7d0JBQ1gsa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGVBQWU7cUJBQ2hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRleHRGaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXh0LWZpZWxkJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdE9wdGlvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFRvb2xiYXJDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IFByb3BlcnR5U2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLXNlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvcGVydHktbWFuYWdlLWNyZWF0ZScsXG4gIGltcG9ydHM6IFtcbiAgICBUb29sYmFyQ29tcG9uZW50LFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBUZXh0RmllbGRNb2R1bGUsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgIE1hdE9wdGlvbk1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1tYW5hZ2UtY3JlYXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb3BlcnR5LW1hbmFnZS1jcmVhdGUuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eU1hbmFnZUNyZWF0ZUNvbXBvbmVudCB7XG4gIHByaXZhdGUgcHJvcGVydHlTZXJ2aWNlID0gaW5qZWN0KFByb3BlcnR5U2VydmljZSk7XG4gIHByaXZhdGUgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHByaXZhdGUgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuICBwcml2YXRlIHNuYWNrQmFyID0gaW5qZWN0KE1hdFNuYWNrQmFyKTtcbiAgcHJvcGVydHk6IGFueSA9IHt9O1xuICBjcmVhdGUoKSB7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIC4uLnRoaXMucHJvcGVydHksXG4gICAgfTtcbiAgICB0aGlzLnByb3BlcnR5U2VydmljZS5jcmVhdGUoZGF0YSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AuLi8ke3Jlcy5kYXRhLmlkfS9tYW5hZ2UvaW5mb2BdLCB7XG4gICAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSxcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXIub3BlbihlLm1lc3NhZ2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPHJvbGF0ZWNoLXRvb2xiYXIgdGl0bGU9XCJBZGQgcHJvcGVydHlcIiBsaW5rPVwiLi4vXCI+IDwvcm9sYXRlY2gtdG9vbGJhcj5cbjxkaXYgY2xhc3M9XCJwLTNcIj5cbiAgPHNlY3Rpb24+XG4gICAgPGZvcm0gI3Byb2R1Y3RGb3JtPVwibmdGb3JtXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgICA8bWF0LWxhYmVsIGkxOG4+IFRpdGxlIDwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwicHJvcGVydHkudGl0bGVcIiBuYW1lPVwidGl0bGVcIiByZXF1aXJlZCAvPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgICA8bWF0LWxhYmVsIGkxOG4+IERlc2NyaXB0aW9uIDwvbWF0LWxhYmVsPlxuICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwicHJvcGVydHkuZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgbmFtZT1cImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICBjZGtUZXh0YXJlYUF1dG9zaXplXG4gICAgICAgICAgICBjZGtBdXRvc2l6ZU1pblJvd3M9XCIzXCJcbiAgICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5cbiAgPC9zZWN0aW9uPlxuICA8ZGl2IGkxOG4+KiBpdGVtcyBhcmUgcmVxdWlyZWQ8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm10LTNcIj5cbiAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjbGFzcz1cInctMjhcIiAoY2xpY2spPVwiY3JlYXRlKClcIiBpMThuPkNyZWF0ZTwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19","import { Component, inject, ViewEncapsulation } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { RouterLink, RouterLinkActive, RouterOutlet } from '@angular/router';\nimport { PropertyService } from '@rolatech/angular-services';\nimport { PropertyStatus } from '../../../interfaces';\nimport { BaseComponent } from '@rolatech/angular-components';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\nexport class PropertyManageLayoutComponent extends BaseComponent {\n property;\n submitted = false;\n accepted = false;\n isDraft = false;\n propertyService = inject(PropertyService);\n ngOnInit() {\n this.id = this.route.snapshot.paramMap.get('id');\n this.get();\n }\n get() {\n this.propertyService.get(this.id).subscribe({\n next: (res) => {\n this.property = res.data;\n },\n });\n }\n submit() {\n this.propertyService.submitForReview(this.id).subscribe({\n next: (res) => {\n this.snackBarService.open('Submit successfully');\n this.property.status = PropertyStatus['Pending'];\n this.updateStatus();\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n updateStatus() {\n this.isDraft = this.property.status.toString() === 'DRAFT' || this.property.status.toString() === 'PENDING';\n this.accepted = this.property.status.toString() === 'ACCEPTED';\n }\n publish() {\n this.propertyService.publish(this.id).subscribe({\n next: (res) => {\n this.snackBarService.open('Publish successfully');\n this.property.status = PropertyStatus['Available'];\n this.updateStatus();\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageLayoutComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyManageLayoutComponent, isStandalone: true, selector: \"rolatech-property-manage-layout\", usesInheritance: true, ngImport: i0, template: \"<div class=\\\"flex flex-col md:flex-row m-auto\\\">\\n <div\\n class=\\\"min-w-[256px] px-3 md:px-0 flex flex-row md:flex-col md:h-full items-center md:items-start h-16 overflow-x-scroll overflow-y-hidden scrollbar-hide whitespace-pre\\\"\\n >\\n <div class=\\\"flex flex-row md:flex-col md:w-full\\\">\\n <div class=\\\"hidden md:flex text-xl font-bold h-14 items-center px-1\\\" i18n>Property</div>\\n <a routerLink=\\\"./info\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Basic info</a>\\n <a routerLink=\\\"./media\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Media</a>\\n <a routerLink=\\\"./videos\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Videos</a>\\n <a routerLink=\\\"./sections\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Details</a>\\n <a routerLink=\\\"./floorplan\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Floorplan</a>\\n <a routerLink=\\\"./location\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Location</a>\\n <a routerLink=\\\"./features\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Features</a>\\n <a routerLink=\\\"./keywords\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Keywords</a>\\n <a routerLink=\\\"./highlights\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Highlights</a>\\n <a routerLink=\\\"./epc\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>EPC</a>\\n <a routerLink=\\\"./translation\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Translation</a>\\n <!-- <a routerLink=\\\"./amenities\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Amenities</a> -->\\n <!-- <a routerLink=\\\"./tags\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Tags</a> -->\\n <!-- <a routerLink=\\\"./options\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Options</a> -->\\n </div>\\n <div class=\\\"flex flex-row md:flex-col md:w-full\\\">\\n <div class=\\\"hidden md:flex text-xl font-bold h-14 items-center px-2\\\" i18n>Settings</div>\\n <!-- <a routerLink=\\\"./variants\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Variants</a> -->\\n <a routerLink=\\\"./schedule\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Schedule</a>\\n <a routerLink=\\\"./pricing\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Pricing</a>\\n </div>\\n <!-- <div class=\\\"flex flex-row md:flex-col md:w-full\\\">\\n <div class=\\\"hidden md:flex text-xl font-bold h-14 items-center px-2\\\" i18n>Others</div>\\n </div> -->\\n @if (property) {\\n @if (property.status.toString() === 'DRAFT') {\\n <div class=\\\"md:mt-6 md:ml-2 flex items-center\\\">\\n <button mat-flat-button (click)=\\\"submit()\\\" i18n>Submit for review</button>\\n </div>\\n }\\n @if (property.status.toString() === 'PENDING') {\\n <div class=\\\"md:mt-6 md:ml-2 flex items-center\\\">\\n <button mat-flat-button disabled i18n>Pending</button>\\n </div>\\n }\\n @if (property.status.toString() === 'APPROVED') {\\n <div class=\\\"md:mt-6 md:ml-2 flex items-center\\\">\\n <button mat-flat-button (click)=\\\"publish()\\\" i18n>Publish</button>\\n </div>\\n }\\n }\\n </div>\\n <div class=\\\"w-full\\\">\\n <router-outlet></router-outlet>\\n </div>\\n</div>\\n\", styles: [\".manage-active{background-color:var(--rt-10-percent-layer, rgba(0, 0, 0, .05));box-shadow:4px 0 var(--rt-base-background-inverse, #000) inset;font-weight:600}@media (max-width: 768px){.manage-active{box-shadow:inset 0 -4px 0 0 var(--rt-base-background-inverse, #000)}}.scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}\\n\"], dependencies: [{ kind: \"directive\", type: RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"directive\", type: RouterLinkActive, selector: \"[routerLinkActive]\", inputs: [\"routerLinkActiveOptions\", \"ariaCurrentWhenActive\", \"routerLinkActive\"], outputs: [\"isActiveChange\"], exportAs: [\"routerLinkActive\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i1.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"directive\", type: RouterOutlet, selector: \"router-outlet\", inputs: [\"name\", \"routerOutletData\"], outputs: [\"activate\", \"deactivate\", \"attach\", \"detach\"], exportAs: [\"outlet\"] }], encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageLayoutComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-manage-layout', imports: [RouterLink, RouterLinkActive, MatButtonModule, RouterOutlet], encapsulation: ViewEncapsulation.None, template: \"<div class=\\\"flex flex-col md:flex-row m-auto\\\">\\n <div\\n class=\\\"min-w-[256px] px-3 md:px-0 flex flex-row md:flex-col md:h-full items-center md:items-start h-16 overflow-x-scroll overflow-y-hidden scrollbar-hide whitespace-pre\\\"\\n >\\n <div class=\\\"flex flex-row md:flex-col md:w-full\\\">\\n <div class=\\\"hidden md:flex text-xl font-bold h-14 items-center px-1\\\" i18n>Property</div>\\n <a routerLink=\\\"./info\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Basic info</a>\\n <a routerLink=\\\"./media\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Media</a>\\n <a routerLink=\\\"./videos\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Videos</a>\\n <a routerLink=\\\"./sections\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Details</a>\\n <a routerLink=\\\"./floorplan\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Floorplan</a>\\n <a routerLink=\\\"./location\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Location</a>\\n <a routerLink=\\\"./features\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Features</a>\\n <a routerLink=\\\"./keywords\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Keywords</a>\\n <a routerLink=\\\"./highlights\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Highlights</a>\\n <a routerLink=\\\"./epc\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>EPC</a>\\n <a routerLink=\\\"./translation\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Translation</a>\\n <!-- <a routerLink=\\\"./amenities\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Amenities</a> -->\\n <!-- <a routerLink=\\\"./tags\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Tags</a> -->\\n <!-- <a routerLink=\\\"./options\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Options</a> -->\\n </div>\\n <div class=\\\"flex flex-row md:flex-col md:w-full\\\">\\n <div class=\\\"hidden md:flex text-xl font-bold h-14 items-center px-2\\\" i18n>Settings</div>\\n <!-- <a routerLink=\\\"./variants\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Variants</a> -->\\n <a routerLink=\\\"./schedule\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Schedule</a>\\n <a routerLink=\\\"./pricing\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Pricing</a>\\n </div>\\n <!-- <div class=\\\"flex flex-row md:flex-col md:w-full\\\">\\n <div class=\\\"hidden md:flex text-xl font-bold h-14 items-center px-2\\\" i18n>Others</div>\\n </div> -->\\n @if (property) {\\n @if (property.status.toString() === 'DRAFT') {\\n <div class=\\\"md:mt-6 md:ml-2 flex items-center\\\">\\n <button mat-flat-button (click)=\\\"submit()\\\" i18n>Submit for review</button>\\n </div>\\n }\\n @if (property.status.toString() === 'PENDING') {\\n <div class=\\\"md:mt-6 md:ml-2 flex items-center\\\">\\n <button mat-flat-button disabled i18n>Pending</button>\\n </div>\\n }\\n @if (property.status.toString() === 'APPROVED') {\\n <div class=\\\"md:mt-6 md:ml-2 flex items-center\\\">\\n <button mat-flat-button (click)=\\\"publish()\\\" i18n>Publish</button>\\n </div>\\n }\\n }\\n </div>\\n <div class=\\\"w-full\\\">\\n <router-outlet></router-outlet>\\n </div>\\n</div>\\n\", styles: [\".manage-active{background-color:var(--rt-10-percent-layer, rgba(0, 0, 0, .05));box-shadow:4px 0 var(--rt-base-background-inverse, #000) inset;font-weight:600}@media (max-width: 768px){.manage-active{box-shadow:inset 0 -4px 0 0 var(--rt-base-background-inverse, #000)}}.scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbWFuYWdlLWxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktbWFuYWdlL3Byb3BlcnR5LW1hbmFnZS1sYXlvdXQvcHJvcGVydHktbWFuYWdlLWxheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktbWFuYWdlL3Byb3BlcnR5LW1hbmFnZS1sYXlvdXQvcHJvcGVydHktbWFuYWdlLWxheW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQWtCLE1BQU0saUJBQWlCLENBQUM7QUFDN0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBWSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7OztBQVM3RCxNQUFNLE9BQU8sNkJBQThCLFNBQVEsYUFBYTtJQUM5RCxRQUFRLENBQVk7SUFDcEIsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUNsQixRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDaEIsZUFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMxQyxRQUFRO1FBQ04sSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBVyxDQUFDO1FBQzNELElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNiLENBQUM7SUFDRCxHQUFHO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUMxQyxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQzNCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsTUFBTTtRQUNKLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDdEQsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztnQkFFakQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsY0FBYyxDQUFDLFNBQXdDLENBQUMsQ0FBQztnQkFDaEYsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDZixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDM0MsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsS0FBSyxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEtBQUssU0FBUyxDQUFDO1FBQzVHLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEtBQUssVUFBVSxDQUFDO0lBQ2pFLENBQUM7SUFDRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUM5QyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDWixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO2dCQUNsRCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxjQUFjLENBQUMsV0FBMEMsQ0FBQyxDQUFDO2dCQUNsRixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNmLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMzQyxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0E3Q1UsNkJBQTZCOzJGQUE3Qiw2QkFBNkIsa0hDaEIxQyx3dEdBb0RBLHFiRHpDWSxVQUFVLG9PQUFFLGdCQUFnQiw2TUFBRSxlQUFlLG9YQUFFLFlBQVk7OzJGQUsxRCw2QkFBNkI7a0JBUHpDLFNBQVM7K0JBQ0UsaUNBQWlDLFdBQ2xDLENBQUMsVUFBVSxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxZQUFZLENBQUMsaUJBR3ZELGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBSb3V0ZXJMaW5rLCBSb3V0ZXJMaW5rQWN0aXZlLCBSb3V0ZXJPdXRsZXQsIEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFByb3BlcnR5U2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLXNlcnZpY2VzJztcbmltcG9ydCB7IFByb3BlcnR5LCBQcm9wZXJ0eVN0YXR1cyB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1wcm9wZXJ0eS1tYW5hZ2UtbGF5b3V0JyxcbiAgaW1wb3J0czogW1JvdXRlckxpbmssIFJvdXRlckxpbmtBY3RpdmUsIE1hdEJ1dHRvbk1vZHVsZSwgUm91dGVyT3V0bGV0XSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LW1hbmFnZS1sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHJvcGVydHktbWFuYWdlLWxheW91dC5jb21wb25lbnQuc2NzcycsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5TWFuYWdlTGF5b3V0Q29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByb3BlcnR5ITogUHJvcGVydHk7XG4gIHN1Ym1pdHRlZCA9IGZhbHNlO1xuICBhY2NlcHRlZCA9IGZhbHNlO1xuICBpc0RyYWZ0ID0gZmFsc2U7XG4gIHByb3BlcnR5U2VydmljZSA9IGluamVjdChQcm9wZXJ0eVNlcnZpY2UpO1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ2lkJykgYXMgc3RyaW5nO1xuICAgIHRoaXMuZ2V0KCk7XG4gIH1cbiAgZ2V0KCkge1xuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmdldCh0aGlzLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMucHJvcGVydHkgPSByZXMuZGF0YTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgc3VibWl0KCkge1xuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLnN1Ym1pdEZvclJldmlldyh0aGlzLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKCdTdWJtaXQgc3VjY2Vzc2Z1bGx5Jyk7XG5cbiAgICAgICAgdGhpcy5wcm9wZXJ0eS5zdGF0dXMgPSBQcm9wZXJ0eVN0YXR1c1snUGVuZGluZycgYXMga2V5b2YgdHlwZW9mIFByb3BlcnR5U3RhdHVzXTtcbiAgICAgICAgdGhpcy51cGRhdGVTdGF0dXMoKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oZXJyb3IubWVzc2FnZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIHVwZGF0ZVN0YXR1cygpIHtcbiAgICB0aGlzLmlzRHJhZnQgPSB0aGlzLnByb3BlcnR5LnN0YXR1cy50b1N0cmluZygpID09PSAnRFJBRlQnIHx8IHRoaXMucHJvcGVydHkuc3RhdHVzLnRvU3RyaW5nKCkgPT09ICdQRU5ESU5HJztcbiAgICB0aGlzLmFjY2VwdGVkID0gdGhpcy5wcm9wZXJ0eS5zdGF0dXMudG9TdHJpbmcoKSA9PT0gJ0FDQ0VQVEVEJztcbiAgfVxuICBwdWJsaXNoKCkge1xuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLnB1Ymxpc2godGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbignUHVibGlzaCBzdWNjZXNzZnVsbHknKTtcbiAgICAgICAgdGhpcy5wcm9wZXJ0eS5zdGF0dXMgPSBQcm9wZXJ0eVN0YXR1c1snQXZhaWxhYmxlJyBhcyBrZXlvZiB0eXBlb2YgUHJvcGVydHlTdGF0dXNdO1xuICAgICAgICB0aGlzLnVwZGF0ZVN0YXR1cygpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbihlcnJvci5tZXNzYWdlKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IG0tYXV0b1wiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJtaW4tdy1bMjU2cHhdIHB4LTMgbWQ6cHgtMCBmbGV4IGZsZXgtcm93IG1kOmZsZXgtY29sIG1kOmgtZnVsbCBpdGVtcy1jZW50ZXIgbWQ6aXRlbXMtc3RhcnQgaC0xNiBvdmVyZmxvdy14LXNjcm9sbCBvdmVyZmxvdy15LWhpZGRlbiBzY3JvbGxiYXItaGlkZSB3aGl0ZXNwYWNlLXByZVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBtZDpmbGV4LWNvbCBtZDp3LWZ1bGxcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJoaWRkZW4gbWQ6ZmxleCB0ZXh0LXhsIGZvbnQtYm9sZCBoLTE0IGl0ZW1zLWNlbnRlciBweC0xXCIgaTE4bj5Qcm9wZXJ0eTwvZGl2PlxuICAgICAgPGEgcm91dGVyTGluaz1cIi4vaW5mb1wiIHJvdXRlckxpbmtBY3RpdmU9XCJtYW5hZ2UtYWN0aXZlXCIgY2xhc3M9XCJwLTJcIiBpMThuPkJhc2ljIGluZm88L2E+XG4gICAgICA8YSByb3V0ZXJMaW5rPVwiLi9tZWRpYVwiIHJvdXRlckxpbmtBY3RpdmU9XCJtYW5hZ2UtYWN0aXZlXCIgY2xhc3M9XCJwLTJcIiBpMThuPk1lZGlhPC9hPlxuICAgICAgPGEgcm91dGVyTGluaz1cIi4vdmlkZW9zXCIgcm91dGVyTGlua0FjdGl2ZT1cIm1hbmFnZS1hY3RpdmVcIiBjbGFzcz1cInAtMlwiIGkxOG4+VmlkZW9zPC9hPlxuICAgICAgPGEgcm91dGVyTGluaz1cIi4vc2VjdGlvbnNcIiByb3V0ZXJMaW5rQWN0aXZlPVwibWFuYWdlLWFjdGl2ZVwiIGNsYXNzPVwicC0yXCIgaTE4bj5EZXRhaWxzPC9hPlxuICAgICAgPGEgcm91dGVyTGluaz1cIi4vZmxvb3JwbGFuXCIgcm91dGVyTGlua0FjdGl2ZT1cIm1hbmFnZS1hY3RpdmVcIiBjbGFzcz1cInAtMlwiIGkxOG4+Rmxvb3JwbGFuPC9hPlxuICAgICAgPGEgcm91dGVyTGluaz1cIi4vbG9jYXRpb25cIiByb3V0ZXJMaW5rQWN0aXZlPVwibWFuYWdlLWFjdGl2ZVwiIGNsYXNzPVwicC0yXCIgaTE4bj5Mb2NhdGlvbjwvYT5cbiAgICAgIDxhIHJvdXRlckxpbms9XCIuL2ZlYXR1cmVzXCIgcm91dGVyTGlua0FjdGl2ZT1cIm1hbmFnZS1hY3RpdmVcIiBjbGFzcz1cInAtMlwiIGkxOG4+RmVhdHVyZXM8L2E+XG4gICAgICA8YSByb3V0ZXJMaW5rPVwiLi9rZXl3b3Jkc1wiIHJvdXRlckxpbmtBY3RpdmU9XCJtYW5hZ2UtYWN0aXZlXCIgY2xhc3M9XCJwLTJcIiBpMThuPktleXdvcmRzPC9hPlxuICAgICAgPGEgcm91dGVyTGluaz1cIi4vaGlnaGxpZ2h0c1wiIHJvdXRlckxpbmtBY3RpdmU9XCJtYW5hZ2UtYWN0aXZlXCIgY2xhc3M9XCJwLTJcIiBpMThuPkhpZ2hsaWdodHM8L2E+XG4gICAgICA8YSByb3V0ZXJMaW5rPVwiLi9lcGNcIiByb3V0ZXJMaW5rQWN0aXZlPVwibWFuYWdlLWFjdGl2ZVwiIGNsYXNzPVwicC0yXCIgaTE4bj5FUEM8L2E+XG4gICAgICA8YSByb3V0ZXJMaW5rPVwiLi90cmFuc2xhdGlvblwiIHJvdXRlckxpbmtBY3RpdmU9XCJtYW5hZ2UtYWN0aXZlXCIgY2xhc3M9XCJwLTJcIiBpMThuPlRyYW5zbGF0aW9uPC9hPlxuICAgICAgPCEtLSA8YSByb3V0ZXJMaW5rPVwiLi9hbWVuaXRpZXNcIiByb3V0ZXJMaW5rQWN0aXZlPVwibWFuYWdlLWFjdGl2ZVwiIGNsYXNzPVwicC0yXCIgaTE4bj5BbWVuaXRpZXM8L2E+IC0tPlxuICAgICAgPCEtLSA8YSByb3V0ZXJMaW5rPVwiLi90YWdzXCIgcm91dGVyTGlua0FjdGl2ZT1cIm1hbmFnZS1hY3RpdmVcIiBjbGFzcz1cInAtMlwiIGkxOG4+VGFnczwvYT4gLS0+XG4gICAgICA8IS0tIDxhIHJvdXRlckxpbms9XCIuL29wdGlvbnNcIiByb3V0ZXJMaW5rQWN0aXZlPVwibWFuYWdlLWFjdGl2ZVwiIGNsYXNzPVwicC0yXCIgaTE4bj5PcHRpb25zPC9hPiAtLT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBtZDpmbGV4LWNvbCBtZDp3LWZ1bGxcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJoaWRkZW4gbWQ6ZmxleCB0ZXh0LXhsIGZvbnQtYm9sZCBoLTE0IGl0ZW1zLWNlbnRlciBweC0yXCIgaTE4bj5TZXR0aW5nczwvZGl2PlxuICAgICAgPCEtLSA8YSByb3V0ZXJMaW5rPVwiLi92YXJpYW50c1wiIHJvdXRlckxpbmtBY3RpdmU9XCJtYW5hZ2UtYWN0aXZlXCIgY2xhc3M9XCJwLTJcIiBpMThuPlZhcmlhbnRzPC9hPiAtLT5cbiAgICAgIDxhIHJvdXRlckxpbms9XCIuL3NjaGVkdWxlXCIgcm91dGVyTGlua0FjdGl2ZT1cIm1hbmFnZS1hY3RpdmVcIiBjbGFzcz1cInAtMlwiIGkxOG4+U2NoZWR1bGU8L2E+XG4gICAgICA8YSByb3V0ZXJMaW5rPVwiLi9wcmljaW5nXCIgcm91dGVyTGlua0FjdGl2ZT1cIm1hbmFnZS1hY3RpdmVcIiBjbGFzcz1cInAtMlwiIGkxOG4+UHJpY2luZzwvYT5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IG1kOmZsZXgtY29sIG1kOnctZnVsbFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImhpZGRlbiBtZDpmbGV4IHRleHQteGwgZm9udC1ib2xkIGgtMTQgaXRlbXMtY2VudGVyIHB4LTJcIiBpMThuPk90aGVyczwvZGl2PlxuICAgIDwvZGl2PiAtLT5cbiAgICBAaWYgKHByb3BlcnR5KSB7XG4gICAgICBAaWYgKHByb3BlcnR5LnN0YXR1cy50b1N0cmluZygpID09PSAnRFJBRlQnKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZDptdC02IG1kOm1sLTIgZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiAoY2xpY2spPVwic3VibWl0KClcIiBpMThuPlN1Ym1pdCBmb3IgcmV2aWV3PC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgICAgQGlmIChwcm9wZXJ0eS5zdGF0dXMudG9TdHJpbmcoKSA9PT0gJ1BFTkRJTkcnKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZDptdC02IG1kOm1sLTIgZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBkaXNhYmxlZCBpMThuPlBlbmRpbmc8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgICBAaWYgKHByb3BlcnR5LnN0YXR1cy50b1N0cmluZygpID09PSAnQVBQUk9WRUQnKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZDptdC02IG1kOm1sLTIgZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiAoY2xpY2spPVwicHVibGlzaCgpXCIgaTE4bj5QdWJsaXNoPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIH1cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJ3LWZ1bGxcIj5cbiAgICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class PropertyManageContentComponent {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.2.0\", type: PropertyManageContentComponent, isStandalone: true, selector: \"rolatech-property-manage-content\", ngImport: i0, template: \"<ng-content select=\\\"rolatech-toolbar\\\"></ng-content>\\n<div class=\\\"p-3\\\">\\n <ng-content></ng-content>\\n</div>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageContentComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-manage-content', imports: [CommonModule], template: \"<ng-content select=\\\"rolatech-toolbar\\\"></ng-content>\\n<div class=\\\"p-3\\\">\\n <ng-content></ng-content>\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbWFuYWdlLWNvbnRlbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL3BhZ2VzL3Byb3BlcnR5LW1hbmFnZS9wcm9wZXJ0eS1tYW5hZ2UtY29udGVudC9wcm9wZXJ0eS1tYW5hZ2UtY29udGVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktbWFuYWdlL3Byb3BlcnR5LW1hbmFnZS1jb250ZW50L3Byb3BlcnR5LW1hbmFnZS1jb250ZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVEvQyxNQUFNLE9BQU8sOEJBQThCO3VHQUE5Qiw4QkFBOEI7MkZBQTlCLDhCQUE4Qiw0RkNUM0MsbUhBSUEseUREQ1ksWUFBWTs7MkZBSVgsOEJBQThCO2tCQU4xQyxTQUFTOytCQUNFLGtDQUFrQyxXQUNuQyxDQUFDLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvcGVydHktbWFuYWdlLWNvbnRlbnQnLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LW1hbmFnZS1jb250ZW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb3BlcnR5LW1hbmFnZS1jb250ZW50LmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlNYW5hZ2VDb250ZW50Q29tcG9uZW50IHt9XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJyb2xhdGVjaC10b29sYmFyXCI+PC9uZy1jb250ZW50PlxuPGRpdiBjbGFzcz1cInAtM1wiPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==","import { Component, inject, model } from '@angular/core';\nimport { KeyValuePipe } from '@angular/common';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DateAdapter, MAT_DATE_LOCALE, MAT_DATE_FORMATS, MatOptionModule } from '@angular/material/core';\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { DecimalDirective } from '@rolatech/angular-common';\nimport { ToolbarComponent, BaseComponent } from '@rolatech/angular-components';\nimport { PropertyService } from '@rolatech/angular-services';\nimport { PropertyManageContentComponent } from '../property-manage-content/property-manage-content.component';\nimport { PropertyStatus, PropertyType, PropertyPriceType } from '../../../interfaces';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@angular/material/form-field\";\nimport * as i3 from \"@angular/material/input\";\nimport * as i4 from \"@angular/cdk/text-field\";\nimport * as i5 from \"@angular/material/select\";\nimport * as i6 from \"@angular/material/button\";\nimport * as i7 from \"@angular/material/datepicker\";\nexport const MY_FORMATS = {\n parse: {\n dateInput: 'YYYY-MM-DD',\n },\n display: {\n dateInput: 'YYYY-MM-DD',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'YYYY-MM-DD',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n};\nexport class PropertyManageInfoComponent extends BaseComponent {\n propertyService = inject(PropertyService);\n property;\n status = PropertyStatus;\n selectedCategoyIds;\n propertyType = PropertyType;\n priceType = PropertyPriceType;\n price = model('0.00', ...(ngDevMode ? [{ debugName: \"price\" }] : []));\n deposit = model('', ...(ngDevMode ? [{ debugName: \"deposit\" }] : []));\n minDate = new Date();\n ngOnInit() {\n this.id = this.route.parent?.snapshot.paramMap.get('id');\n this.find();\n }\n find() {\n this.propertyService.get(this.id).subscribe({\n next: (res) => {\n this.property = res.data;\n const price = this.property.price ? (this.property.price / 100).toFixed(2) : '0.00';\n this.price.set(price);\n if (this.property.priceType?.toString() === 'PARTIAL') {\n const deposit = (this.property.deposit / 100).toFixed(2);\n this.deposit.set(deposit);\n }\n },\n });\n }\n formatPrice(value) {\n // Convert to number first in case it's a string\n this.property.price = Number(Number(value).toFixed(2));\n }\n typeCompareFn(t1, t2) {\n return t1 === t2;\n }\n priceTypeCompareFn(t1, t2) {\n return t1 === t2;\n }\n onTypeChange(event) {\n // this.property.type = Object.keys(this.propertyType).find((key) => {\n // return this.propertyType[key] === event.value;\n // })!;\n this.property.type = event.value;\n }\n onCategoryChange(event) {\n this.selectedCategoyIds = event.value;\n }\n update() {\n const { title, description, type, priceType, availableDate, bedrooms, bathrooms, receptions, size, floor } = this.property;\n const data = {\n title,\n description,\n bedrooms,\n bathrooms,\n receptions,\n size,\n floor,\n type,\n price: Number(this.price()) * 100,\n priceType,\n deposit: Number(this.deposit()) * 100,\n availableDate,\n };\n this.propertyService.update(this.id, data).subscribe({\n next: (res) => {\n this.snackBarService.open('Update successfully');\n },\n error: (e) => {\n this.snackBarService.open(e.message);\n },\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageInfoComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyManageInfoComponent, isStandalone: true, selector: \"rolatech-property-manage-info\", inputs: { price: { classPropertyName: \"price\", publicName: \"price\", isSignal: true, isRequired: false, transformFunction: null }, deposit: { classPropertyName: \"deposit\", publicName: \"deposit\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { price: \"priceChange\", deposit: \"depositChange\" }, providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE],\n },\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },\n ], usesInheritance: true, ngImport: i0, template: \"<rolatech-property-manage-content>\\n <rolatech-toolbar title=\\\"Basic info\\\" class=\\\"hidden md:block\\\" divider></rolatech-toolbar>\\n @if (property) {\\n <div class=\\\"flex flex-col\\\">\\n <form #propertyForm=\\\"ngForm\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Title </mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"property.title\\\" name=\\\"title\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Description </mat-label>\\n <textarea\\n matInput\\n type=\\\"text\\\"\\n [(ngModel)]=\\\"property.description\\\"\\n name=\\\"description\\\"\\n required\\n cdkTextareaAutosize\\n cdkAutosizeMinRows=\\\"3\\\"\\n ></textarea>\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Bedrooms </mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"property.bedrooms\\\" name=\\\"bedrooms\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Bathrooms </mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"property.bathrooms\\\" name=\\\"bathrooms\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Receptions </mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"property.receptions\\\" name=\\\"receptions\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Floor </mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"property.floor\\\" name=\\\"floor\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Size(sqft) </mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"property.size\\\" name=\\\"size\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\" required>\\n <mat-label i18n>Type</mat-label>\\n <mat-select\\n name=\\\"type\\\"\\n [compareWith]=\\\"typeCompareFn\\\"\\n (selectionChange)=\\\"onTypeChange($event)\\\"\\n [(ngModel)]=\\\"property.type\\\"\\n >\\n @for (type of propertyType | keyvalue; track type) {\\n <mat-option [value]=\\\"type.key\\\">\\n {{ type.value }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <!-- <mat-form-field appearance=\\\"fill\\\" required>\\n <mat-label i18n>Price type</mat-label>\\n <mat-select name=\\\"priceType\\\" [compareWith]=\\\"priceTypeCompareFn\\\" [(ngModel)]=\\\"property.priceType\\\">\\n @for (type of priceType | keyvalue; track type) {\\n <mat-option [value]=\\\"type.key\\\">\\n {{ type.value }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field> -->\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Available date</mat-label>\\n <input\\n matInput\\n placeholder=\\\"Available date\\\"\\n [matDatepicker]=\\\"availableDatePicker\\\"\\n [min]=\\\"minDate\\\"\\n (focus)=\\\"availableDatePicker.open()\\\"\\n name=\\\"availableDate\\\"\\n [(ngModel)]=\\\"property.availableDate\\\"\\n (dateInput)=\\\"property.availableDate = $event.value.format('YYYY-MM-DD')\\\"\\n readonly\\n />\\n <mat-datepicker-toggle matIconPrefix [for]=\\\"availableDatePicker\\\"></mat-datepicker-toggle>\\n <mat-datepicker #availableDatePicker></mat-datepicker>\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Price </mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"price\\\" name=\\\"price\\\" required rolatechDecimal />\\n </mat-form-field>\\n @if (property.priceType && property.priceType.toString() === 'PARTIAL') {\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Deposit </mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"deposit\\\" name=\\\"deposit\\\" required rolatechDecimal />\\n </mat-form-field>\\n }\\n </form>\\n </div>\\n <div>\\n <button mat-flat-button (click)=\\\"update()\\\" i18n>Save</button>\\n </div>\\n }\\n</rolatech-property-manage-content>\\n\", styles: [\"mat-form-field{width:100%}\\n\"], dependencies: [{ kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { 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.RequiredValidator, selector: \":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]\", inputs: [\"required\"] }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"directive\", type: i1.NgForm, selector: \"form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]\", inputs: [\"ngFormOptions\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"component\", type: i2.MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: i2.MatLabel, selector: \"mat-label\" }, { kind: \"directive\", type: i2.MatPrefix, selector: \"[matPrefix], [matIconPrefix], [matTextPrefix]\", inputs: [\"matTextPrefix\"] }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"directive\", type: i3.MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\", \"disabledInteractive\"], exportAs: [\"matInput\"] }, { kind: \"directive\", type: i4.CdkTextareaAutosize, selector: \"textarea[cdkTextareaAutosize]\", inputs: [\"cdkAutosizeMinRows\", \"cdkAutosizeMaxRows\", \"cdkTextareaAutosize\", \"placeholder\"], exportAs: [\"cdkTextareaAutosize\"] }, { kind: \"ngmodule\", type: TextFieldModule }, { kind: \"ngmodule\", type: MatSelectModule }, { kind: \"component\", type: i5.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\", \"canSelectNullableOptions\"], outputs: [\"openedChange\", \"opened\", \"closed\", \"selectionChange\", \"valueChange\"], exportAs: [\"matSelect\"] }, { kind: \"component\", type: i5.MatOption, selector: \"mat-option\", inputs: [\"value\", \"id\", \"disabled\"], outputs: [\"onSelectionChange\"], exportAs: [\"matOption\"] }, { kind: \"ngmodule\", type: MatOptionModule }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i6.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"component\", type: PropertyManageContentComponent, selector: \"rolatech-property-manage-content\" }, { kind: \"directive\", type: DecimalDirective, selector: \"[rolatechDecimal]\" }, { kind: \"ngmodule\", type: MatDatepickerModule }, { kind: \"component\", type: i7.MatDatepicker, selector: \"mat-datepicker\", exportAs: [\"matDatepicker\"] }, { kind: \"directive\", type: i7.MatDatepickerInput, selector: \"input[matDatepicker]\", inputs: [\"matDatepicker\", \"min\", \"max\", \"matDatepickerFilter\"], exportAs: [\"matDatepickerInput\"] }, { kind: \"component\", type: i7.MatDatepickerToggle, selector: \"mat-datepicker-toggle\", inputs: [\"for\", \"tabIndex\", \"aria-label\", \"disabled\", \"disableRipple\"], exportAs: [\"matDatepickerToggle\"] }, { kind: \"pipe\", type: KeyValuePipe, name: \"keyvalue\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageInfoComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-manage-info', imports: [\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n TextFieldModule,\n MatSelectModule,\n MatOptionModule,\n MatButtonModule,\n ToolbarComponent,\n PropertyManageContentComponent,\n DecimalDirective,\n MatSelectModule,\n KeyValuePipe,\n MatDatepickerModule,\n ], providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE],\n },\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },\n ], template: \"<rolatech-property-manage-content>\\n <rolatech-toolbar title=\\\"Basic info\\\" class=\\\"hidden md:block\\\" divider></rolatech-toolbar>\\n @if (property) {\\n <div class=\\\"flex flex-col\\\">\\n <form #propertyForm=\\\"ngForm\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Title </mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"property.title\\\" name=\\\"title\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Description </mat-label>\\n <textarea\\n matInput\\n type=\\\"text\\\"\\n [(ngModel)]=\\\"property.description\\\"\\n name=\\\"description\\\"\\n required\\n cdkTextareaAutosize\\n cdkAutosizeMinRows=\\\"3\\\"\\n ></textarea>\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Bedrooms </mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"property.bedrooms\\\" name=\\\"bedrooms\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Bathrooms </mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"property.bathrooms\\\" name=\\\"bathrooms\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Receptions </mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"property.receptions\\\" name=\\\"receptions\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Floor </mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"property.floor\\\" name=\\\"floor\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Size(sqft) </mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"property.size\\\" name=\\\"size\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\" required>\\n <mat-label i18n>Type</mat-label>\\n <mat-select\\n name=\\\"type\\\"\\n [compareWith]=\\\"typeCompareFn\\\"\\n (selectionChange)=\\\"onTypeChange($event)\\\"\\n [(ngModel)]=\\\"property.type\\\"\\n >\\n @for (type of propertyType | keyvalue; track type) {\\n <mat-option [value]=\\\"type.key\\\">\\n {{ type.value }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <!-- <mat-form-field appearance=\\\"fill\\\" required>\\n <mat-label i18n>Price type</mat-label>\\n <mat-select name=\\\"priceType\\\" [compareWith]=\\\"priceTypeCompareFn\\\" [(ngModel)]=\\\"property.priceType\\\">\\n @for (type of priceType | keyvalue; track type) {\\n <mat-option [value]=\\\"type.key\\\">\\n {{ type.value }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field> -->\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Available date</mat-label>\\n <input\\n matInput\\n placeholder=\\\"Available date\\\"\\n [matDatepicker]=\\\"availableDatePicker\\\"\\n [min]=\\\"minDate\\\"\\n (focus)=\\\"availableDatePicker.open()\\\"\\n name=\\\"availableDate\\\"\\n [(ngModel)]=\\\"property.availableDate\\\"\\n (dateInput)=\\\"property.availableDate = $event.value.format('YYYY-MM-DD')\\\"\\n readonly\\n />\\n <mat-datepicker-toggle matIconPrefix [for]=\\\"availableDatePicker\\\"></mat-datepicker-toggle>\\n <mat-datepicker #availableDatePicker></mat-datepicker>\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Price </mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"price\\\" name=\\\"price\\\" required rolatechDecimal />\\n </mat-form-field>\\n @if (property.priceType && property.priceType.toString() === 'PARTIAL') {\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Deposit </mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"deposit\\\" name=\\\"deposit\\\" required rolatechDecimal />\\n </mat-form-field>\\n }\\n </form>\\n </div>\\n <div>\\n <button mat-flat-button (click)=\\\"update()\\\" i18n>Save</button>\\n </div>\\n }\\n</rolatech-property-manage-content>\\n\", styles: [\"mat-form-field{width:100%}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbWFuYWdlLWluZm8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL3BhZ2VzL3Byb3BlcnR5LW1hbmFnZS9wcm9wZXJ0eS1tYW5hZ2UtaW5mby9wcm9wZXJ0eS1tYW5hZ2UtaW5mby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktbWFuYWdlL3Byb3BlcnR5LW1hbmFnZS1pbmZvL3Byb3BlcnR5LW1hbmFnZS1pbmZvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQWdCLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFtQixNQUFNLDBCQUEwQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFN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QUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN2QyxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0F0RVUsMkJBQTJCOzJGQUEzQiwyQkFBMkIsMllBWDNCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLFdBQVc7Z0JBQ3BCLFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLElBQUksRUFBRSxDQUFDLGVBQWUsQ0FBQzthQUN4QjtZQUNELEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7U0FDcEQsaURDckRILG0ySUFtR0EscUZEbkVJLFdBQVcsb3dDQUNYLGtCQUFrQiwyYUFDbEIsY0FBYyxnbUJBQ2QsZUFBZSw4QkFDZixlQUFlLCtzQkFDZixlQUFlLDhCQUNmLGVBQWUsb1hBQ2YsZ0JBQWdCLGdJQUNoQiw4QkFBOEIsNkVBQzlCLGdCQUFnQiw2REFHaEIsbUJBQW1CLDZmQURuQixZQUFZOzsyRkFjSCwyQkFBMkI7a0JBNUJ2QyxTQUFTOytCQUNFLCtCQUErQixXQUNoQzt3QkFDUCxXQUFXO3dCQUNYLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsOEJBQThCO3dCQUM5QixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsWUFBWTt3QkFDWixtQkFBbUI7cUJBQ3BCLGFBQ1U7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLFdBQVc7NEJBQ3BCLFFBQVEsRUFBRSxpQkFBaUI7NEJBQzNCLElBQUksRUFBRSxDQUFDLGVBQWUsQ0FBQzt5QkFDeEI7d0JBQ0QsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRTtxQkFDcEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgbW9kZWwsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBLZXlWYWx1ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVGV4dEZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RleHQtZmllbGQnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIsIE1BVF9EQVRFX0xPQ0FMRSwgTUFUX0RBVEVfRk9STUFUUywgTWF0T3B0aW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBNb21lbnREYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsLW1vbWVudC1hZGFwdGVyJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUsIE1hdFNlbGVjdENoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBEZWNpbWFsRGlyZWN0aXZlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IFRvb2xiYXJDb21wb25lbnQsIEJhc2VDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IFByb3BlcnR5U2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLXNlcnZpY2VzJztcbmltcG9ydCB7IFByb3BlcnR5TWFuYWdlQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4uL3Byb3BlcnR5LW1hbmFnZS1jb250ZW50L3Byb3BlcnR5LW1hbmFnZS1jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9wZXJ0eSwgUHJvcGVydHlTdGF0dXMsIFByb3BlcnR5VHlwZSwgUHJvcGVydHlQcmljZVR5cGUgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcblxuZXhwb3J0IGNvbnN0IE1ZX0ZPUk1BVFMgPSB7XG4gIHBhcnNlOiB7XG4gICAgZGF0ZUlucHV0OiAnWVlZWS1NTS1ERCcsXG4gIH0sXG4gIGRpc3BsYXk6IHtcbiAgICBkYXRlSW5wdXQ6ICdZWVlZLU1NLUREJyxcbiAgICBtb250aFllYXJMYWJlbDogJ01NTSBZWVlZJyxcbiAgICBkYXRlQTExeUxhYmVsOiAnWVlZWS1NTS1ERCcsXG4gICAgbW9udGhZZWFyQTExeUxhYmVsOiAnTU1NTSBZWVlZJyxcbiAgfSxcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb3BlcnR5LW1hbmFnZS1pbmZvJyxcbiAgaW1wb3J0czogW1xuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBUZXh0RmllbGRNb2R1bGUsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgIE1hdE9wdGlvbk1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgVG9vbGJhckNvbXBvbmVudCxcbiAgICBQcm9wZXJ0eU1hbmFnZUNvbnRlbnRDb21wb25lbnQsXG4gICAgRGVjaW1hbERpcmVjdGl2ZSxcbiAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgS2V5VmFsdWVQaXBlLFxuICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IERhdGVBZGFwdGVyLFxuICAgICAgdXNlQ2xhc3M6IE1vbWVudERhdGVBZGFwdGVyLFxuICAgICAgZGVwczogW01BVF9EQVRFX0xPQ0FMRV0sXG4gICAgfSxcbiAgICB7IHByb3ZpZGU6IE1BVF9EQVRFX0ZPUk1BVFMsIHVzZVZhbHVlOiBNWV9GT1JNQVRTIH0sXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1tYW5hZ2UtaW5mby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9wZXJ0eS1tYW5hZ2UtaW5mby5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5TWFuYWdlSW5mb0NvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcm9wZXJ0eVNlcnZpY2UgPSBpbmplY3QoUHJvcGVydHlTZXJ2aWNlKTtcbiAgcHJvcGVydHkhOiBQcm9wZXJ0eTtcbiAgc3RhdHVzID0gUHJvcGVydHlTdGF0dXM7XG4gIHNlbGVjdGVkQ2F0ZWdveUlkcyE6IHN0cmluZ1tdO1xuICBwcm9wZXJ0eVR5cGUgPSBQcm9wZXJ0eVR5cGU7XG4gIHByaWNlVHlwZSA9IFByb3BlcnR5UHJpY2VUeXBlO1xuICBwcmljZSA9IG1vZGVsPHN0cmluZz4oJzAuMDAnKTtcbiAgZGVwb3NpdCA9IG1vZGVsPHN0cmluZz4oJycpO1xuICBtaW5EYXRlID0gbmV3IERhdGUoKTtcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pZCA9IHRoaXMucm91dGUucGFyZW50Py5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ2lkJykgYXMgc3RyaW5nO1xuICAgIHRoaXMuZmluZCgpO1xuICB9XG4gIGZpbmQoKSB7XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZ2V0KHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5wcm9wZXJ0eSA9IHJlcy5kYXRhO1xuICAgICAgICBjb25zdCBwcmljZSA9IHRoaXMucHJvcGVydHkucHJpY2UgPyAodGhpcy5wcm9wZXJ0eS5wcmljZSAvIDEwMCkudG9GaXhlZCgyKSA6ICcwLjAwJztcbiAgICAgICAgdGhpcy5wcmljZS5zZXQocHJpY2UpO1xuICAgICAgICBpZiAodGhpcy5wcm9wZXJ0eS5wcmljZVR5cGU/LnRvU3RyaW5nKCkgPT09ICdQQVJUSUFMJykge1xuICAgICAgICAgIGNvbnN0IGRlcG9zaXQgPSAodGhpcy5wcm9wZXJ0eS5kZXBvc2l0IC8gMTAwKS50b0ZpeGVkKDIpO1xuICAgICAgICAgIHRoaXMuZGVwb3NpdC5zZXQoZGVwb3NpdCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgZm9ybWF0UHJpY2UodmFsdWU6IG51bWJlcikge1xuICAgIC8vIENvbnZlcnQgdG8gbnVtYmVyIGZpcnN0IGluIGNhc2UgaXQncyBhIHN0cmluZ1xuICAgIHRoaXMucHJvcGVydHkucHJpY2UgPSBOdW1iZXIoTnVtYmVyKHZhbHVlKS50b0ZpeGVkKDIpKTtcbiAgfVxuICB0eXBlQ29tcGFyZUZuKHQxOiBhbnksIHQyOiBhbnkpIHtcbiAgICByZXR1cm4gdDEgPT09IHQyO1xuICB9XG4gIHByaWNlVHlwZUNvbXBhcmVGbih0MTogYW55LCB0MjogYW55KSB7XG4gICAgcmV0dXJuIHQxID09PSB0MjtcbiAgfVxuICBvblR5cGVDaGFuZ2UoZXZlbnQ6IE1hdFNlbGVjdENoYW5nZSkge1xuICAgIC8vIHRoaXMucHJvcGVydHkudHlwZSA9IE9iamVjdC5rZXlzKHRoaXMucHJvcGVydHlUeXBlKS5maW5kKChrZXkpID0+IHtcbiAgICAvLyAgIHJldHVybiB0aGlzLnByb3BlcnR5VHlwZVtrZXldID09PSBldmVudC52YWx1ZTtcbiAgICAvLyB9KSE7XG4gICAgdGhpcy5wcm9wZXJ0eS50eXBlID0gZXZlbnQudmFsdWU7XG4gIH1cbiAgb25DYXRlZ29yeUNoYW5nZShldmVudDogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZENhdGVnb3lJZHMgPSBldmVudC52YWx1ZTtcbiAgfVxuICB1cGRhdGUoKSB7XG4gICAgY29uc3QgeyB0aXRsZSwgZGVzY3JpcHRpb24sIHR5cGUsIHByaWNlVHlwZSwgYXZhaWxhYmxlRGF0ZSwgYmVkcm9vbXMsIGJhdGhyb29tcywgcmVjZXB0aW9ucywgc2l6ZSwgZmxvb3IgfSA9IHRoaXMucHJvcGVydHk7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIHRpdGxlLFxuICAgICAgZGVzY3JpcHRpb24sXG4gICAgICBiZWRyb29tcyxcbiAgICAgIGJhdGhyb29tcyxcbiAgICAgIHJlY2VwdGlvbnMsXG4gICAgICBzaXplLFxuICAgICAgZmxvb3IsXG4gICAgICB0eXBlLFxuICAgICAgcHJpY2U6IE51bWJlcih0aGlzLnByaWNlKCkpICogMTAwLFxuICAgICAgcHJpY2VUeXBlLFxuICAgICAgZGVwb3NpdDogTnVtYmVyKHRoaXMuZGVwb3NpdCgpKSAqIDEwMCxcbiAgICAgIGF2YWlsYWJsZURhdGUsXG4gICAgfTtcbiAgICB0aGlzLnByb3BlcnR5U2VydmljZS51cGRhdGUodGhpcy5pZCwgZGF0YSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbignVXBkYXRlIHN1Y2Nlc3NmdWxseScpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZSkgPT4ge1xuICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKGUubWVzc2FnZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iLCI8cm9sYXRlY2gtcHJvcGVydHktbWFuYWdlLWNvbnRlbnQ+XG4gIDxyb2xhdGVjaC10b29sYmFyIHRpdGxlPVwiQmFzaWMgaW5mb1wiIGNsYXNzPVwiaGlkZGVuIG1kOmJsb2NrXCIgZGl2aWRlcj48L3JvbGF0ZWNoLXRvb2xiYXI+XG4gIEBpZiAocHJvcGVydHkpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxuICAgICAgPGZvcm0gI3Byb3BlcnR5Rm9ybT1cIm5nRm9ybVwiPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgICA8bWF0LWxhYmVsIGkxOG4+IFRpdGxlIDwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwicHJvcGVydHkudGl0bGVcIiBuYW1lPVwidGl0bGVcIiByZXF1aXJlZCAvPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgICA8bWF0LWxhYmVsIGkxOG4+IERlc2NyaXB0aW9uIDwvbWF0LWxhYmVsPlxuICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwicHJvcGVydHkuZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgbmFtZT1cImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICBjZGtUZXh0YXJlYUF1dG9zaXplXG4gICAgICAgICAgICBjZGtBdXRvc2l6ZU1pblJvd3M9XCIzXCJcbiAgICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbCBpMThuPiBCZWRyb29tcyA8L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInByb3BlcnR5LmJlZHJvb21zXCIgbmFtZT1cImJlZHJvb21zXCIgcmVxdWlyZWQgLz5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbCBpMThuPiBCYXRocm9vbXMgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJwcm9wZXJ0eS5iYXRocm9vbXNcIiBuYW1lPVwiYmF0aHJvb21zXCIgcmVxdWlyZWQgLz5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbCBpMThuPiBSZWNlcHRpb25zIDwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwicHJvcGVydHkucmVjZXB0aW9uc1wiIG5hbWU9XCJyZWNlcHRpb25zXCIgcmVxdWlyZWQgLz5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbCBpMThuPiBGbG9vciA8L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInByb3BlcnR5LmZsb29yXCIgbmFtZT1cImZsb29yXCIgcmVxdWlyZWQgLz5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbCBpMThuPiBTaXplKHNxZnQpIDwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwicHJvcGVydHkuc2l6ZVwiIG5hbWU9XCJzaXplXCIgcmVxdWlyZWQgLz5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgcmVxdWlyZWQ+XG4gICAgICAgICAgPG1hdC1sYWJlbCBpMThuPlR5cGU8L21hdC1sYWJlbD5cbiAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgbmFtZT1cInR5cGVcIlxuICAgICAgICAgICAgW2NvbXBhcmVXaXRoXT1cInR5cGVDb21wYXJlRm5cIlxuICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblR5cGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInByb3BlcnR5LnR5cGVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIEBmb3IgKHR5cGUgb2YgcHJvcGVydHlUeXBlIHwga2V5dmFsdWU7IHRyYWNrIHR5cGUpIHtcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInR5cGUua2V5XCI+XG4gICAgICAgICAgICAgICAge3sgdHlwZS52YWx1ZSB9fVxuICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8IS0tIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIHJlcXVpcmVkPlxuICAgICAgICAgIDxtYXQtbGFiZWwgaTE4bj5QcmljZSB0eXBlPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPG1hdC1zZWxlY3QgbmFtZT1cInByaWNlVHlwZVwiIFtjb21wYXJlV2l0aF09XCJwcmljZVR5cGVDb21wYXJlRm5cIiBbKG5nTW9kZWwpXT1cInByb3BlcnR5LnByaWNlVHlwZVwiPlxuICAgICAgICAgICAgQGZvciAodHlwZSBvZiBwcmljZVR5cGUgfCBrZXl2YWx1ZTsgdHJhY2sgdHlwZSkge1xuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwidHlwZS5rZXlcIj5cbiAgICAgICAgICAgICAgICB7eyB0eXBlLnZhbHVlIH19XG4gICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+IC0tPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgICA8bWF0LWxhYmVsIGkxOG4+QXZhaWxhYmxlIGRhdGU8L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkF2YWlsYWJsZSBkYXRlXCJcbiAgICAgICAgICAgIFttYXREYXRlcGlja2VyXT1cImF2YWlsYWJsZURhdGVQaWNrZXJcIlxuICAgICAgICAgICAgW21pbl09XCJtaW5EYXRlXCJcbiAgICAgICAgICAgIChmb2N1cyk9XCJhdmFpbGFibGVEYXRlUGlja2VyLm9wZW4oKVwiXG4gICAgICAgICAgICBuYW1lPVwiYXZhaWxhYmxlRGF0ZVwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInByb3BlcnR5LmF2YWlsYWJsZURhdGVcIlxuICAgICAgICAgICAgKGRhdGVJbnB1dCk9XCJwcm9wZXJ0eS5hdmFpbGFibGVEYXRlID0gJGV2ZW50LnZhbHVlLmZvcm1hdCgnWVlZWS1NTS1ERCcpXCJcbiAgICAgICAgICAgIHJlYWRvbmx5XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdEljb25QcmVmaXggW2Zvcl09XCJhdmFpbGFibGVEYXRlUGlja2VyXCI+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XG4gICAgICAgICAgPG1hdC1kYXRlcGlja2VyICNhdmFpbGFibGVEYXRlUGlja2VyPjwvbWF0LWRhdGVwaWNrZXI+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgIDxtYXQtbGFiZWwgaTE4bj4gUHJpY2UgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJwcmljZVwiIG5hbWU9XCJwcmljZVwiIHJlcXVpcmVkIHJvbGF0ZWNoRGVjaW1hbCAvPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICBAaWYgKHByb3BlcnR5LnByaWNlVHlwZSAmJiBwcm9wZXJ0eS5wcmljZVR5cGUudG9TdHJpbmcoKSA9PT0gJ1BBUlRJQUwnKSB7XG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgICA8bWF0LWxhYmVsIGkxOG4+IERlcG9zaXQgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cImRlcG9zaXRcIiBuYW1lPVwiZGVwb3NpdFwiIHJlcXVpcmVkIHJvbGF0ZWNoRGVjaW1hbCAvPlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIH1cbiAgICAgIDwvZm9ybT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gKGNsaWNrKT1cInVwZGF0ZSgpXCIgaTE4bj5TYXZlPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIH1cbjwvcm9sYXRlY2gtcHJvcGVydHktbWFuYWdlLWNvbnRlbnQ+XG4iXX0=","import { Component, inject } from '@angular/core';\nimport { PropertyManageContentComponent } from '../property-manage-content/property-manage-content.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ActivatedRoute } from '@angular/router';\nimport { MediaListComponent, MediaListItemComponent, ToolbarComponent, ImagePreviewDialogComponent, ConfirmationDialogComponent, } from '@rolatech/angular-components';\nimport { PropertyService } from '@rolatech/angular-services';\nimport { findLastIndex } from 'lodash';\nimport { PropertyStatus } from '../../../interfaces';\nimport * as i0 from \"@angular/core\";\nconst SIZE = 10 * 1024 * 1024; // file slice size 10MB\nexport class PropertyManageMediaComponent {\n route = inject(ActivatedRoute);\n propertyService = inject(PropertyService);\n dialog = inject(MatDialog);\n snackBar = inject(MatSnackBar);\n id;\n isLoading = false;\n media = [];\n status = PropertyStatus;\n // propertyType: any = PropertyType;\n constructor() {\n this.id = this.route.parent?.snapshot.paramMap.get('id');\n }\n ngOnInit() {\n this.find();\n }\n find() {\n this.propertyService.get(this.id).subscribe({\n next: (res) => {\n this.media = res.data.media || [];\n },\n });\n }\n onImageClick(i) {\n const dialogRef = this.dialog.open(ImagePreviewDialogComponent, {\n maxWidth: '80vw',\n maxHeight: '80vh',\n height: '80%',\n width: '80%',\n panelClass: 'full-screen-modal',\n data: {\n media: this.media,\n selected: i,\n },\n });\n dialogRef.afterClosed().subscribe((result) => { });\n }\n createFileChunk(file, size = SIZE) {\n const fileChunkList = [];\n let cur = 0;\n while (cur < file.size) {\n fileChunkList.push({ file: file.slice(cur, cur + size) });\n cur += size;\n }\n return fileChunkList;\n }\n onUploadMedia2(event) {\n const file = event.target.files[0];\n const reader = new FileReader();\n reader.onload = (e) => { };\n const fileChunkList = this.createFileChunk(file);\n fileChunkList.forEach((item) => { });\n }\n onMultipleFilesUpload(event) {\n // const files = event.target.files;\n // if (files) {\n // Object.values(files).forEach((file, index) => {\n // this.uploadFile(file, index);\n // });\n // }\n const input = event.target;\n if (input.files && input.files.length > 0) {\n const startIndex = this.media.length; // Offset to preserve existing items\n Array.from(input.files).forEach((file, i) => {\n this.uploadFile(file, startIndex + i);\n });\n }\n }\n uploadFile(file, index) {\n const reader = new FileReader();\n const formData = new FormData();\n formData.append('file', file);\n this.media.splice(index, 0, {\n url: '',\n alt: 'Uploading...',\n width: 0,\n height: 0,\n uploading: true,\n });\n reader.readAsDataURL(file);\n reader.onload = () => {\n const img = new Image();\n img.onload = () => {\n Object.assign(this.media[index], {\n url: img.src,\n width: img.width,\n height: img.height,\n });\n };\n img.src = reader.result;\n };\n this.propertyService.uploadMedia(this.id, formData).subscribe({\n next: (res) => {\n // Replace item at index using native splice\n // this.media.splice(index, 1, res.data);\n this.media.splice(index, 1, {\n ...res.data,\n uploading: false,\n });\n },\n error: (e) => {\n this.snackBar.open('Upload failed: ' + e.message);\n this.media.splice(index, 1); // remove failed placeholder\n },\n });\n reader.onerror = (error) => { };\n }\n onUploadMedia(event) {\n const file = event.target.files[0];\n // 5MB * 1024 * 1024 = 5242880\n // if (file?.size > 5242880) {\n // this.snackBar.open('尺寸过大, 请修改后上传');\n // return;\n // }\n if (file) {\n const reader = new FileReader();\n const formData = new FormData();\n formData.append('file', file);\n reader.readAsDataURL(file);\n reader.onload = () => {\n const img = new Image();\n img.onload = () => {\n this.media.push({\n url: img.src,\n alt: 'upload image',\n width: img.width,\n height: img.height,\n });\n };\n img.src = reader.result; // This is the data URL\n };\n this.propertyService.uploadMedia(this.id, formData).subscribe({\n next: (res) => {\n const index = findLastIndex(this.media);\n // Replace item at index using native splice\n this.media.splice(index, 1, res.data);\n },\n error: (e) => { },\n });\n reader.onerror = (error) => { };\n }\n }\n onMediaDelete(item) {\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\n width: '400px',\n data: {\n title: '删除图片',\n message: '确定删除这张商品图片吗?',\n },\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.propertyService.deleteMedia(this.id, item.id).subscribe({\n next: (res) => {\n this.media = this.media.filter((m) => m.id !== item.id);\n this.snackBar.open('Delete successfully');\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageMediaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyManageMediaComponent, isStandalone: true, selector: \"rolatech-property-manage-media\", ngImport: i0, template: \"<rolatech-property-manage-content>\\n <rolatech-toolbar title=\\\"Media info\\\" class=\\\"hidden md:block\\\" divider></rolatech-toolbar>\\n <div>\\n <p i18n>*Limit 5MB per image*</p>\\n <rolatech-media-list (upload)=\\\"onMultipleFilesUpload($event)\\\">\\n @for (item of media; track item; let i = $index) {\\n <rolatech-media-list-item\\n [media]=\\\"item\\\"\\n (mediaItemClick)=\\\"onImageClick(i)\\\"\\n (deleteMedia)=\\\"onMediaDelete(item)\\\"\\n [uploading]=\\\"item.uploading\\\"\\n ></rolatech-media-list-item>\\n }\\n </rolatech-media-list>\\n </div>\\n</rolatech-property-manage-content>\\n\", styles: [\"\"], dependencies: [{ kind: \"component\", type: MediaListComponent, selector: \"rolatech-media-list\", inputs: [\"isUploading\", \"media\", \"showAdd\"], outputs: [\"mediaItemClick\", \"upload\"] }, { kind: \"component\", type: MediaListItemComponent, selector: \"rolatech-media-list-item\", inputs: [\"media\", \"uploadProgress\", \"uploading\"], outputs: [\"mediaItemClick\", \"deleteMedia\"] }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"component\", type: PropertyManageContentComponent, selector: \"rolatech-property-manage-content\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageMediaComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-manage-media', imports: [MediaListComponent, MediaListItemComponent, ToolbarComponent, PropertyManageContentComponent], template: \"<rolatech-property-manage-content>\\n <rolatech-toolbar title=\\\"Media info\\\" class=\\\"hidden md:block\\\" divider></rolatech-toolbar>\\n <div>\\n <p i18n>*Limit 5MB per image*</p>\\n <rolatech-media-list (upload)=\\\"onMultipleFilesUpload($event)\\\">\\n @for (item of media; track item; let i = $index) {\\n <rolatech-media-list-item\\n [media]=\\\"item\\\"\\n (mediaItemClick)=\\\"onImageClick(i)\\\"\\n (deleteMedia)=\\\"onMediaDelete(item)\\\"\\n [uploading]=\\\"item.uploading\\\"\\n ></rolatech-media-list-item>\\n }\\n </rolatech-media-list>\\n </div>\\n</rolatech-property-manage-content>\\n\" }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbWFuYWdlLW1lZGlhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS1tYW5hZ2UvcHJvcGVydHktbWFuYWdlLW1lZGlhL3Byb3BlcnR5LW1hbmFnZS1tZWRpYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktbWFuYWdlL3Byb3BlcnR5LW1hbmFnZS1tZWRpYS9wcm9wZXJ0eS1tYW5hZ2UtbWVkaWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDOUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFakQsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixzQkFBc0IsRUFDdEIsZ0JBQWdCLEVBQ2hCLDJCQUEyQixFQUMzQiwyQkFBMkIsR0FDNUIsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN2QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBQ3JELE1BQU0sSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsdUJBQXVC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QkFBa0Isb0pBQUUsc0JBQXNCLG1LQUFFLGdCQUFnQixnSUFBRSw4QkFBOEI7OzJGQUkzRiw0QkFBNEI7a0JBTnhDLFNBQVM7K0JBQ0UsZ0NBQWdDLFdBQ2pDLENBQUMsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQUUsZ0JBQWdCLEVBQUUsOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcm9wZXJ0eU1hbmFnZUNvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuLi9wcm9wZXJ0eS1tYW5hZ2UtY29udGVudC9wcm9wZXJ0eS1tYW5hZ2UtY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE1lZGlhIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7XG4gIE1lZGlhTGlzdENvbXBvbmVudCxcbiAgTWVkaWFMaXN0SXRlbUNvbXBvbmVudCxcbiAgVG9vbGJhckNvbXBvbmVudCxcbiAgSW1hZ2VQcmV2aWV3RGlhbG9nQ29tcG9uZW50LFxuICBDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnQsXG59IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgUHJvcGVydHlTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItc2VydmljZXMnO1xuaW1wb3J0IHsgZmluZExhc3RJbmRleCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBQcm9wZXJ0eVN0YXR1cyB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuY29uc3QgU0laRSA9IDEwICogMTAyNCAqIDEwMjQ7IC8vIGZpbGUgc2xpY2Ugc2l6ZSAxME1CXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb3BlcnR5LW1hbmFnZS1tZWRpYScsXG4gIGltcG9ydHM6IFtNZWRpYUxpc3RDb21wb25lbnQsIE1lZGlhTGlzdEl0ZW1Db21wb25lbnQsIFRvb2xiYXJDb21wb25lbnQsIFByb3BlcnR5TWFuYWdlQ29udGVudENvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1tYW5hZ2UtbWVkaWEuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHJvcGVydHktbWFuYWdlLW1lZGlhLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlNYW5hZ2VNZWRpYUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgcHJvcGVydHlTZXJ2aWNlID0gaW5qZWN0KFByb3BlcnR5U2VydmljZSk7XG4gIGRpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xuICBzbmFja0JhciA9IGluamVjdChNYXRTbmFja0Jhcik7XG4gIGlkOiBzdHJpbmc7XG4gIGlzTG9hZGluZyA9IGZhbHNlO1xuICBtZWRpYTogTWVkaWFbXSA9IFtdO1xuICBzdGF0dXMgPSBQcm9wZXJ0eVN0YXR1cztcbiAgLy8gcHJvcGVydHlUeXBlOiBhbnkgPSBQcm9wZXJ0eVR5cGU7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaWQgPSB0aGlzLnJvdXRlLnBhcmVudD8uc25hcHNob3QucGFyYW1NYXAuZ2V0KCdpZCcpIGFzIHN0cmluZztcbiAgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbmQoKTtcbiAgfVxuICBmaW5kKCkge1xuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmdldCh0aGlzLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMubWVkaWEgPSByZXMuZGF0YS5tZWRpYSB8fCBbXTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgb25JbWFnZUNsaWNrKGk6IGFueSkge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oSW1hZ2VQcmV2aWV3RGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICBtYXhXaWR0aDogJzgwdncnLFxuICAgICAgbWF4SGVpZ2h0OiAnODB2aCcsXG4gICAgICBoZWlnaHQ6ICc4MCUnLFxuICAgICAgd2lkdGg6ICc4MCUnLFxuICAgICAgcGFuZWxDbGFzczogJ2Z1bGwtc2NyZWVuLW1vZGFsJyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgbWVkaWE6IHRoaXMubWVkaWEsXG4gICAgICAgIHNlbGVjdGVkOiBpLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge30pO1xuICB9XG4gIHByaXZhdGUgY3JlYXRlRmlsZUNodW5rKGZpbGU6IGFueSwgc2l6ZSA9IFNJWkUpIHtcbiAgICBjb25zdCBmaWxlQ2h1bmtMaXN0OiBhbnkgPSBbXTtcbiAgICBsZXQgY3VyID0gMDtcbiAgICB3aGlsZSAoY3VyIDwgZmlsZS5zaXplKSB7XG4gICAgICBmaWxlQ2h1bmtMaXN0LnB1c2goeyBmaWxlOiBmaWxlLnNsaWNlKGN1ciwgY3VyICsgc2l6ZSkgfSk7XG4gICAgICBjdXIgKz0gc2l6ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZpbGVDaHVua0xpc3Q7XG4gIH1cblxuICBvblVwbG9hZE1lZGlhMihldmVudDogYW55KSB7XG4gICAgY29uc3QgZmlsZSA9IGV2ZW50LnRhcmdldC5maWxlc1swXTtcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgIHJlYWRlci5vbmxvYWQgPSAoZSkgPT4ge307XG5cbiAgICBjb25zdCBmaWxlQ2h1bmtMaXN0ID0gdGhpcy5jcmVhdGVGaWxlQ2h1bmsoZmlsZSk7XG4gICAgZmlsZUNodW5rTGlzdC5mb3JFYWNoKChpdGVtKSA9PiB7fSk7XG4gIH1cbiAgb25NdWx0aXBsZUZpbGVzVXBsb2FkKGV2ZW50OiBhbnkpIHtcbiAgICAvLyBjb25zdCBmaWxlcyA9IGV2ZW50LnRhcmdldC5maWxlcztcbiAgICAvLyBpZiAoZmlsZXMpIHtcbiAgICAvLyAgIE9iamVjdC52YWx1ZXMoZmlsZXMpLmZvckVhY2goKGZpbGUsIGluZGV4KSA9PiB7XG4gICAgLy8gICAgIHRoaXMudXBsb2FkRmlsZShmaWxlLCBpbmRleCk7XG4gICAgLy8gICB9KTtcbiAgICAvLyB9XG4gICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBpZiAoaW5wdXQuZmlsZXMgJiYgaW5wdXQuZmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3Qgc3RhcnRJbmRleCA9IHRoaXMubWVkaWEubGVuZ3RoOyAvLyBPZmZzZXQgdG8gcHJlc2VydmUgZXhpc3RpbmcgaXRlbXNcbiAgICAgIEFycmF5LmZyb20oaW5wdXQuZmlsZXMpLmZvckVhY2goKGZpbGUsIGkpID0+IHtcbiAgICAgICAgdGhpcy51cGxvYWRGaWxlKGZpbGUsIHN0YXJ0SW5kZXggKyBpKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIHVwbG9hZEZpbGUoZmlsZTogYW55LCBpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUpO1xuXG4gICAgdGhpcy5tZWRpYS5zcGxpY2UoaW5kZXgsIDAsIHtcbiAgICAgIHVybDogJycsXG4gICAgICBhbHQ6ICdVcGxvYWRpbmcuLi4nLFxuICAgICAgd2lkdGg6IDAsXG4gICAgICBoZWlnaHQ6IDAsXG4gICAgICB1cGxvYWRpbmc6IHRydWUsXG4gICAgfSk7XG5cbiAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xuICAgICAgY29uc3QgaW1nOiBhbnkgPSBuZXcgSW1hZ2UoKTtcbiAgICAgIGltZy5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5tZWRpYVtpbmRleF0sIHtcbiAgICAgICAgICB1cmw6IGltZy5zcmMsXG4gICAgICAgICAgd2lkdGg6IGltZy53aWR0aCxcbiAgICAgICAgICBoZWlnaHQ6IGltZy5oZWlnaHQsXG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICAgIGltZy5zcmMgPSByZWFkZXIucmVzdWx0IGFzIHN0cmluZztcbiAgICB9O1xuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLnVwbG9hZE1lZGlhKHRoaXMuaWQsIGZvcm1EYXRhKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIC8vIFJlcGxhY2UgaXRlbSBhdCBpbmRleCB1c2luZyBuYXRpdmUgc3BsaWNlXG4gICAgICAgIC8vIHRoaXMubWVkaWEuc3BsaWNlKGluZGV4LCAxLCByZXMuZGF0YSk7XG4gICAgICAgIHRoaXMubWVkaWEuc3BsaWNlKGluZGV4LCAxLCB7XG4gICAgICAgICAgLi4ucmVzLmRhdGEsXG4gICAgICAgICAgdXBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKCdVcGxvYWQgZmFpbGVkOiAnICsgZS5tZXNzYWdlKTtcbiAgICAgICAgdGhpcy5tZWRpYS5zcGxpY2UoaW5kZXgsIDEpOyAvLyByZW1vdmUgZmFpbGVkIHBsYWNlaG9sZGVyXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHJlYWRlci5vbmVycm9yID0gKGVycm9yKSA9PiB7fTtcbiAgfVxuICBvblVwbG9hZE1lZGlhKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBmaWxlID0gZXZlbnQudGFyZ2V0LmZpbGVzWzBdO1xuICAgIC8vIDVNQiAqIDEwMjQgKiAxMDI0ID0gNTI0Mjg4MFxuICAgIC8vIGlmIChmaWxlPy5zaXplID4gNTI0Mjg4MCkge1xuICAgIC8vICAgdGhpcy5zbmFja0Jhci5vcGVuKCflsLrlr7jov4flpKcsIOivt+S/ruaUueWQjuS4iuS8oCcpO1xuICAgIC8vICAgcmV0dXJuO1xuICAgIC8vIH1cblxuICAgIGlmIChmaWxlKSB7XG4gICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUpO1xuXG4gICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGltZzogYW55ID0gbmV3IEltYWdlKCk7XG4gICAgICAgIGltZy5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5tZWRpYS5wdXNoKHtcbiAgICAgICAgICAgIHVybDogaW1nLnNyYyxcbiAgICAgICAgICAgIGFsdDogJ3VwbG9hZCBpbWFnZScsXG4gICAgICAgICAgICB3aWR0aDogaW1nLndpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0OiBpbWcuaGVpZ2h0LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICBpbWcuc3JjID0gcmVhZGVyLnJlc3VsdDsgLy8gVGhpcyBpcyB0aGUgZGF0YSBVUkxcbiAgICAgIH07XG4gICAgICB0aGlzLnByb3BlcnR5U2VydmljZS51cGxvYWRNZWRpYSh0aGlzLmlkLCBmb3JtRGF0YSkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3QgaW5kZXggPSBmaW5kTGFzdEluZGV4KHRoaXMubWVkaWEpO1xuICAgICAgICAgIC8vIFJlcGxhY2UgaXRlbSBhdCBpbmRleCB1c2luZyBuYXRpdmUgc3BsaWNlXG4gICAgICAgICAgdGhpcy5tZWRpYS5zcGxpY2UoaW5kZXgsIDEsIHJlcy5kYXRhKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlOiBhbnkpID0+IHt9LFxuICAgICAgfSk7XG4gICAgICByZWFkZXIub25lcnJvciA9IChlcnJvcikgPT4ge307XG4gICAgfVxuICB9XG4gIG9uTWVkaWFEZWxldGUoaXRlbTogYW55KSB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiAnNDAwcHgnLFxuICAgICAgZGF0YToge1xuICAgICAgICB0aXRsZTogJ+WIoOmZpOWbvueJhycsXG4gICAgICAgIG1lc3NhZ2U6ICfnoa7lrprliKDpmaTov5nlvKDllYblk4Hlm77niYflkJc/JyxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZGVsZXRlTWVkaWEodGhpcy5pZCwgaXRlbS5pZCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm1lZGlhID0gdGhpcy5tZWRpYS5maWx0ZXIoKG0pID0+IG0uaWQgIT09IGl0ZW0uaWQpO1xuICAgICAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKCdEZWxldGUgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvcjogKGUpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc25hY2tCYXIub3BlbihlLm1lc3NhZ2UpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8cm9sYXRlY2gtcHJvcGVydHktbWFuYWdlLWNvbnRlbnQ+XG4gIDxyb2xhdGVjaC10b29sYmFyIHRpdGxlPVwiTWVkaWEgaW5mb1wiIGNsYXNzPVwiaGlkZGVuIG1kOmJsb2NrXCIgZGl2aWRlcj48L3JvbGF0ZWNoLXRvb2xiYXI+XG4gIDxkaXY+XG4gICAgPHAgaTE4bj4qTGltaXQgNU1CIHBlciBpbWFnZSo8L3A+XG4gICAgPHJvbGF0ZWNoLW1lZGlhLWxpc3QgKHVwbG9hZCk9XCJvbk11bHRpcGxlRmlsZXNVcGxvYWQoJGV2ZW50KVwiPlxuICAgICAgQGZvciAoaXRlbSBvZiBtZWRpYTsgdHJhY2sgaXRlbTsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgPHJvbGF0ZWNoLW1lZGlhLWxpc3QtaXRlbVxuICAgICAgICAgIFttZWRpYV09XCJpdGVtXCJcbiAgICAgICAgICAobWVkaWFJdGVtQ2xpY2spPVwib25JbWFnZUNsaWNrKGkpXCJcbiAgICAgICAgICAoZGVsZXRlTWVkaWEpPVwib25NZWRpYURlbGV0ZShpdGVtKVwiXG4gICAgICAgICAgW3VwbG9hZGluZ109XCJpdGVtLnVwbG9hZGluZ1wiXG4gICAgICAgID48L3JvbGF0ZWNoLW1lZGlhLWxpc3QtaXRlbT5cbiAgICAgIH1cbiAgICA8L3JvbGF0ZWNoLW1lZGlhLWxpc3Q+XG4gIDwvZGl2PlxuPC9yb2xhdGVjaC1wcm9wZXJ0eS1tYW5hZ2UtY29udGVudD5cbiJdfQ==","import { Component, input, output } from '@angular/core';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { first } from 'lodash';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { MatMenuModule } from '@angular/material/menu';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/form-field\";\nimport * as i2 from \"@angular/material/input\";\nimport * as i3 from \"@angular/cdk/text-field\";\nimport * as i4 from \"@angular/forms\";\nimport * as i5 from \"@angular/material/button\";\nimport * as i6 from \"@angular/material/icon\";\nimport * as i7 from \"@angular/material/menu\";\nimport * as i8 from \"@angular/material/progress-bar\";\nimport * as i9 from \"@angular/material/divider\";\nexport class PropertyManageSectionItemComponent {\n isUploading = input(...(ngDevMode ? [undefined, { debugName: \"isUploading\" }] : []));\n section = input.required(...(ngDevMode ? [{ debugName: \"section\" }] : []));\n actions = input(false, ...(ngDevMode ? [{ debugName: \"actions\" }] : []));\n selectMedia = input(...(ngDevMode ? [undefined, { debugName: \"selectMedia\" }] : []));\n upload = output();\n delete = output();\n save = output();\n deleteMedia = output();\n selectedImg;\n expanded = false;\n constructor() { }\n ngOnInit() {\n this.selectedImg = this.section().media ? this.section().media[0] : null;\n }\n onUpload(data) {\n this.upload.emit({ section: this.section(), data });\n }\n onMediaItemClick(image) {\n this.selectedImg = image;\n }\n select(item) {\n this.selectedImg = item;\n }\n deleteImage() { }\n onSave(section) {\n this.save.emit(section);\n }\n onDelete(section) {\n this.delete.emit(section);\n }\n onDeleteMedia(media) {\n this.deleteMedia.emit({ section: this.section(), media });\n this.selectedImg = this.section().media ? first(this.section().media) : null;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageSectionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyManageSectionItemComponent, isStandalone: true, selector: \"rolatech-property-manage-section-item\", inputs: { isUploading: { classPropertyName: \"isUploading\", publicName: \"isUploading\", isSignal: true, isRequired: false, transformFunction: null }, section: { classPropertyName: \"section\", publicName: \"section\", isSignal: true, isRequired: true, transformFunction: null }, actions: { classPropertyName: \"actions\", publicName: \"actions\", isSignal: true, isRequired: false, transformFunction: null }, selectMedia: { classPropertyName: \"selectMedia\", publicName: \"selectMedia\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { upload: \"upload\", delete: \"delete\", save: \"save\", deleteMedia: \"deleteMedia\" }, ngImport: i0, template: \"<div class=\\\"px-3\\\">\\n <div\\n class=\\\"h-14 py-3 flex items-center justify-between cursor-pointer\\\"\\n (click)=\\\"expanded = !expanded; $event.stopPropagation()\\\"\\n >\\n <div class=\\\"flex\\\">\\n <div class=\\\"w-32 line-clamp-1\\\">{{ section().title }}</div>\\n <div class=\\\"line-clamp-1\\\">{{ section().description }}</div>\\n </div>\\n <div>\\n <button mat-icon-button aria-label=\\\"expand row\\\" (click)=\\\"expanded = !expanded; $event.stopPropagation()\\\">\\n @if (expanded) {\\n <mat-icon>keyboard_arrow_up</mat-icon>\\n } @else {\\n <mat-icon>keyboard_arrow_down</mat-icon>\\n }\\n </button>\\n </div>\\n </div>\\n <div class=\\\"flex flex-col gap-3 w-full overflow-hidden\\\" [@detailExpand]=\\\"expanded ? 'expanded' : 'collapsed'\\\">\\n <div class=\\\"flex flex-col lg:flex-row\\\">\\n <div class=\\\"flex flex-col grow\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Title</mat-label>\\n <input matInput placeholder=\\\"Title\\\" i18n-placeholder [(ngModel)]=\\\"section().title\\\" />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\" [hideRequiredMarker]=\\\"true\\\">\\n <mat-label i18n>Description</mat-label>\\n <textarea\\n matInput\\n cdkTextareaAutosize\\n cdkAutosizeMinRows=\\\"3\\\"\\n placeholder=\\\"Description\\\"\\n [(ngModel)]=\\\"section().description\\\"\\n i18n-placeholder\\n ></textarea>\\n </mat-form-field>\\n </div>\\n <!-- media -->\\n <div class=\\\"lg:basis-1/2 px-0 lg:px-3\\\">\\n @if (selectedImg) {\\n <div class=\\\"flex flex-row justify-center relative aspect-video\\\">\\n <img class=\\\"object-contain w-full\\\" [src]=\\\"selectedImg.url\\\" [alt]=\\\"selectedImg.alt\\\" />\\n <div class=\\\"absolute z-30 right-0\\\">\\n <button\\n mat-icon-button\\n [matMenuTriggerFor]=\\\"beforeMenu\\\"\\n class=\\\"ml-auto focus:outline-none hover:bg-[--rt-base-background] p-1\\\"\\n >\\n <mat-icon>more_vert</mat-icon>\\n </button>\\n <mat-menu #beforeMenu=\\\"matMenu\\\" xPosition=\\\"before\\\">\\n <button mat-menu-item (click)=\\\"onDeleteMedia(selectedImg)\\\">\\n <span i18n>Delete</span>\\n </button>\\n </mat-menu>\\n </div>\\n </div>\\n }\\n\\n <!-- media -->\\n <div>\\n <div class=\\\"flex flex-row flex-wrap cursor-pointer relative box-border\\\" fxLayout=\\\"row\\\">\\n <div class=\\\"progress-bar\\\">\\n @if (section().isUploading) {\\n <mat-progress-bar mode=\\\"indeterminate\\\"></mat-progress-bar>\\n }\\n </div>\\n @for (media of section().media; track media) {\\n <div class=\\\"media-list-item\\\">\\n <img class=\\\"tile-media\\\" (click)=\\\"onMediaItemClick(media)\\\" [src]=\\\"media.url\\\" [alt]=\\\"media.alt\\\" />\\n </div>\\n }\\n <input style=\\\"display: none\\\" type=\\\"file\\\" accept=\\\"image/*\\\" (change)=\\\"onUpload($event)\\\" #fileInput />\\n <div class=\\\"add-button\\\">\\n <div (click)=\\\"fileInput.click()\\\" class=\\\"tile-media flex justify-center items-center\\\">\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" height=\\\"48px\\\" viewBox=\\\"0 -960 960 960\\\" width=\\\"48px\\\" fill=\\\"#5f6368\\\">\\n <path d=\\\"M444-444H240v-72h204v-204h72v204h204v72H516v204h-72v-204Z\\\" />\\n </svg>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n @if (actions()) {\\n <div class=\\\"flex flex-row justify-end p-3 gap-3\\\">\\n <button mat-button class=\\\"max-h-8\\\" (click)=\\\"onDelete(section())\\\" i18n>Delete</button>\\n <button mat-flat-button class=\\\"max-h-8\\\" (click)=\\\"onSave(section())\\\" i18n>Save</button>\\n </div>\\n }\\n </div>\\n</div>\\n\\n<mat-divider></mat-divider>\\n\", styles: [\".media-list{flex-wrap:wrap;box-sizing:border-box}.progress-bar{display:block;min-height:6px;width:100%}.media-list-item{cursor:pointer;position:relative;box-sizing:border-box;padding:2px}.tile-media{height:64px;width:64px;object-fit:contain;cursor:pointer;border:1px solid grey;position:relative;box-sizing:border-box;border-radius:8px}.add-button{cursor:pointer;position:relative;box-sizing:border-box;padding:2px}\\n\"], dependencies: [{ kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"component\", type: i1.MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: i1.MatLabel, selector: \"mat-label\" }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"directive\", type: i2.MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\", \"disabledInteractive\"], exportAs: [\"matInput\"] }, { kind: \"directive\", type: i3.CdkTextareaAutosize, selector: \"textarea[cdkTextareaAutosize]\", inputs: [\"cdkAutosizeMinRows\", \"cdkAutosizeMaxRows\", \"cdkTextareaAutosize\", \"placeholder\"], exportAs: [\"cdkTextareaAutosize\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i4.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: i4.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i4.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: TextFieldModule }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i5.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: i5.MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i6.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"ngmodule\", type: MatMenuModule }, { kind: \"component\", type: i7.MatMenu, selector: \"mat-menu\", inputs: [\"backdropClass\", \"aria-label\", \"aria-labelledby\", \"aria-describedby\", \"xPosition\", \"yPosition\", \"overlapTrigger\", \"hasBackdrop\", \"class\", \"classList\"], outputs: [\"closed\", \"close\"], exportAs: [\"matMenu\"] }, { kind: \"component\", type: i7.MatMenuItem, selector: \"[mat-menu-item]\", inputs: [\"role\", \"disabled\", \"disableRipple\"], exportAs: [\"matMenuItem\"] }, { kind: \"directive\", type: i7.MatMenuTrigger, selector: \"[mat-menu-trigger-for], [matMenuTriggerFor]\", inputs: [\"mat-menu-trigger-for\", \"matMenuTriggerFor\", \"matMenuTriggerData\", \"matMenuTriggerRestoreFocus\"], outputs: [\"menuOpened\", \"onMenuOpen\", \"menuClosed\", \"onMenuClose\"], exportAs: [\"matMenuTrigger\"] }, { kind: \"ngmodule\", type: MatProgressBarModule }, { kind: \"component\", type: i8.MatProgressBar, selector: \"mat-progress-bar\", inputs: [\"color\", \"value\", \"bufferValue\", \"mode\"], outputs: [\"animationEnd\"], exportAs: [\"matProgressBar\"] }, { kind: \"ngmodule\", type: MatDividerModule }, { kind: \"component\", type: i9.MatDivider, selector: \"mat-divider\", inputs: [\"vertical\", \"inset\"] }], animations: [\n trigger('detailExpand', [\n state('collapsed', style({ height: '0px' })),\n state('expanded', style({ height: '*' })),\n transition('expanded <=> collapsed', animate('400ms cubic-bezier(0.25, 0.1, 0.25, 1)')),\n ]),\n ] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageSectionItemComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-manage-section-item', imports: [\n MatFormFieldModule,\n MatInputModule,\n FormsModule,\n TextFieldModule,\n MatButtonModule,\n MatIconModule,\n MatMenuModule,\n MatProgressBarModule,\n MatDividerModule,\n ], animations: [\n trigger('detailExpand', [\n state('collapsed', style({ height: '0px' })),\n state('expanded', style({ height: '*' })),\n transition('expanded <=> collapsed', animate('400ms cubic-bezier(0.25, 0.1, 0.25, 1)')),\n ]),\n ], template: \"<div class=\\\"px-3\\\">\\n <div\\n class=\\\"h-14 py-3 flex items-center justify-between cursor-pointer\\\"\\n (click)=\\\"expanded = !expanded; $event.stopPropagation()\\\"\\n >\\n <div class=\\\"flex\\\">\\n <div class=\\\"w-32 line-clamp-1\\\">{{ section().title }}</div>\\n <div class=\\\"line-clamp-1\\\">{{ section().description }}</div>\\n </div>\\n <div>\\n <button mat-icon-button aria-label=\\\"expand row\\\" (click)=\\\"expanded = !expanded; $event.stopPropagation()\\\">\\n @if (expanded) {\\n <mat-icon>keyboard_arrow_up</mat-icon>\\n } @else {\\n <mat-icon>keyboard_arrow_down</mat-icon>\\n }\\n </button>\\n </div>\\n </div>\\n <div class=\\\"flex flex-col gap-3 w-full overflow-hidden\\\" [@detailExpand]=\\\"expanded ? 'expanded' : 'collapsed'\\\">\\n <div class=\\\"flex flex-col lg:flex-row\\\">\\n <div class=\\\"flex flex-col grow\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Title</mat-label>\\n <input matInput placeholder=\\\"Title\\\" i18n-placeholder [(ngModel)]=\\\"section().title\\\" />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\" [hideRequiredMarker]=\\\"true\\\">\\n <mat-label i18n>Description</mat-label>\\n <textarea\\n matInput\\n cdkTextareaAutosize\\n cdkAutosizeMinRows=\\\"3\\\"\\n placeholder=\\\"Description\\\"\\n [(ngModel)]=\\\"section().description\\\"\\n i18n-placeholder\\n ></textarea>\\n </mat-form-field>\\n </div>\\n <!-- media -->\\n <div class=\\\"lg:basis-1/2 px-0 lg:px-3\\\">\\n @if (selectedImg) {\\n <div class=\\\"flex flex-row justify-center relative aspect-video\\\">\\n <img class=\\\"object-contain w-full\\\" [src]=\\\"selectedImg.url\\\" [alt]=\\\"selectedImg.alt\\\" />\\n <div class=\\\"absolute z-30 right-0\\\">\\n <button\\n mat-icon-button\\n [matMenuTriggerFor]=\\\"beforeMenu\\\"\\n class=\\\"ml-auto focus:outline-none hover:bg-[--rt-base-background] p-1\\\"\\n >\\n <mat-icon>more_vert</mat-icon>\\n </button>\\n <mat-menu #beforeMenu=\\\"matMenu\\\" xPosition=\\\"before\\\">\\n <button mat-menu-item (click)=\\\"onDeleteMedia(selectedImg)\\\">\\n <span i18n>Delete</span>\\n </button>\\n </mat-menu>\\n </div>\\n </div>\\n }\\n\\n <!-- media -->\\n <div>\\n <div class=\\\"flex flex-row flex-wrap cursor-pointer relative box-border\\\" fxLayout=\\\"row\\\">\\n <div class=\\\"progress-bar\\\">\\n @if (section().isUploading) {\\n <mat-progress-bar mode=\\\"indeterminate\\\"></mat-progress-bar>\\n }\\n </div>\\n @for (media of section().media; track media) {\\n <div class=\\\"media-list-item\\\">\\n <img class=\\\"tile-media\\\" (click)=\\\"onMediaItemClick(media)\\\" [src]=\\\"media.url\\\" [alt]=\\\"media.alt\\\" />\\n </div>\\n }\\n <input style=\\\"display: none\\\" type=\\\"file\\\" accept=\\\"image/*\\\" (change)=\\\"onUpload($event)\\\" #fileInput />\\n <div class=\\\"add-button\\\">\\n <div (click)=\\\"fileInput.click()\\\" class=\\\"tile-media flex justify-center items-center\\\">\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" height=\\\"48px\\\" viewBox=\\\"0 -960 960 960\\\" width=\\\"48px\\\" fill=\\\"#5f6368\\\">\\n <path d=\\\"M444-444H240v-72h204v-204h72v204h204v72H516v204h-72v-204Z\\\" />\\n </svg>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n @if (actions()) {\\n <div class=\\\"flex flex-row justify-end p-3 gap-3\\\">\\n <button mat-button class=\\\"max-h-8\\\" (click)=\\\"onDelete(section())\\\" i18n>Delete</button>\\n <button mat-flat-button class=\\\"max-h-8\\\" (click)=\\\"onSave(section())\\\" i18n>Save</button>\\n </div>\\n }\\n </div>\\n</div>\\n\\n<mat-divider></mat-divider>\\n\", styles: [\".media-list{flex-wrap:wrap;box-sizing:border-box}.progress-bar{display:block;min-height:6px;width:100%}.media-list-item{cursor:pointer;position:relative;box-sizing:border-box;padding:2px}.tile-media{height:64px;width:64px;object-fit:contain;cursor:pointer;border:1px solid grey;position:relative;box-sizing:border-box;border-radius:8px}.add-button{cursor:pointer;position:relative;box-sizing:border-box;padding:2px}\\n\"] }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbWFuYWdlLXNlY3Rpb24taXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvY29tcG9uZW50cy9wcm9wZXJ0eS1tYW5hZ2Utc2VjdGlvbi1pdGVtL3Byb3BlcnR5LW1hbmFnZS1zZWN0aW9uLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktbWFuYWdlLXNlY3Rpb24taXRlbS9wcm9wZXJ0eS1tYW5hZ2Utc2VjdGlvbi1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR3RFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDL0IsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFB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ZCxXQUFXO3dCQUNYLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGFBQWE7d0JBQ2Isb0JBQW9CO3dCQUNwQixnQkFBZ0I7cUJBQ2pCLGNBR1c7d0JBQ1YsT0FBTyxDQUFDLGNBQWMsRUFBRTs0QkFDdEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQzs0QkFDNUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQzs0QkFDekMsVUFBVSxDQUFDLHdCQUF3QixFQUFFLE9BQU8sQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO3lCQUN4RixDQUFDO3FCQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCwgT25Jbml0LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRleHRGaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXh0LWZpZWxkJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XG5pbXBvcnQgeyBNZWRpYSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQgeyBQcm9wZXJ0eVNlY3Rpb24gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IHRyaWdnZXIsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgYW5pbWF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgTWF0TWVudSwgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1wcm9wZXJ0eS1tYW5hZ2Utc2VjdGlvbi1pdGVtJyxcbiAgaW1wb3J0czogW1xuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBUZXh0RmllbGRNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0TWVudU1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc0Jhck1vZHVsZSxcbiAgICBNYXREaXZpZGVyTW9kdWxlLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydHktbWFuYWdlLXNlY3Rpb24taXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9wZXJ0eS1tYW5hZ2Utc2VjdGlvbi1pdGVtLmNvbXBvbmVudC5zY3NzJyxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ2RldGFpbEV4cGFuZCcsIFtcbiAgICAgIHN0YXRlKCdjb2xsYXBzZWQnLCBzdHlsZSh7IGhlaWdodDogJzBweCcgfSkpLFxuICAgICAgc3RhdGUoJ2V4cGFuZGVkJywgc3R5bGUoeyBoZWlnaHQ6ICcqJyB9KSksXG4gICAgICB0cmFuc2l0aW9uKCdleHBhbmRlZCA8PT4gY29sbGFwc2VkJywgYW5pbWF0ZSgnNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuMSwgMC4yNSwgMSknKSksXG4gICAgXSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5TWFuYWdlU2VjdGlvbkl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBpc1VwbG9hZGluZyA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHNlY3Rpb24gPSBpbnB1dC5yZXF1aXJlZDxQcm9wZXJ0eVNlY3Rpb24+KCk7XG4gIGFjdGlvbnMgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHNlbGVjdE1lZGlhID0gaW5wdXQ8YW55PigpO1xuICB1cGxvYWQgPSBvdXRwdXQ8eyBzZWN0aW9uOiBQcm9wZXJ0eVNlY3Rpb247IGRhdGE6IEZvcm1EYXRhIHwgbnVsbCB9PigpO1xuICBkZWxldGUgPSBvdXRwdXQ8UHJvcGVydHlTZWN0aW9uPigpO1xuICBzYXZlID0gb3V0cHV0PFByb3BlcnR5U2VjdGlvbj4oKTtcbiAgZGVsZXRlTWVkaWEgPSBvdXRwdXQ8eyBzZWN0aW9uOiBQcm9wZXJ0eVNlY3Rpb247IG1lZGlhOiBNZWRpYSB9PigpO1xuICBzZWxlY3RlZEltZyE6IE1lZGlhIHwgYW55O1xuICBleHBhbmRlZCA9IGZhbHNlO1xuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEltZyA9IHRoaXMuc2VjdGlvbigpLm1lZGlhID8gdGhpcy5zZWN0aW9uKCkubWVkaWFbMF0gOiBudWxsO1xuICB9XG4gIG9uVXBsb2FkKGRhdGE6IGFueSkge1xuICAgIHRoaXMudXBsb2FkLmVtaXQoeyBzZWN0aW9uOiB0aGlzLnNlY3Rpb24oKSwgZGF0YSB9KTtcbiAgfVxuICBvbk1lZGlhSXRlbUNsaWNrKGltYWdlOiBNZWRpYSkge1xuICAgIHRoaXMuc2VsZWN0ZWRJbWcgPSBpbWFnZTtcbiAgfVxuXG4gIHNlbGVjdChpdGVtOiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGVkSW1nID0gaXRlbTtcbiAgfVxuICBkZWxldGVJbWFnZSgpIHt9XG4gIG9uU2F2ZShzZWN0aW9uOiBQcm9wZXJ0eVNlY3Rpb24pIHtcbiAgICB0aGlzLnNhdmUuZW1pdChzZWN0aW9uKTtcbiAgfVxuICBvbkRlbGV0ZShzZWN0aW9uOiBQcm9wZXJ0eVNlY3Rpb24pIHtcbiAgICB0aGlzLmRlbGV0ZS5lbWl0KHNlY3Rpb24pO1xuICB9XG4gIG9uRGVsZXRlTWVkaWEobWVkaWE6IE1lZGlhKSB7XG4gICAgdGhpcy5kZWxldGVNZWRpYS5lbWl0KHsgc2VjdGlvbjogdGhpcy5zZWN0aW9uKCksIG1lZGlhIH0pO1xuICAgIHRoaXMuc2VsZWN0ZWRJbWcgPSB0aGlzLnNlY3Rpb24oKS5tZWRpYSA/IGZpcnN0KHRoaXMuc2VjdGlvbigpLm1lZGlhKSA6IG51bGw7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJweC0zXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImgtMTQgcHktMyBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gY3Vyc29yLXBvaW50ZXJcIlxuICAgIChjbGljayk9XCJleHBhbmRlZCA9ICFleHBhbmRlZDsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidy0zMiBsaW5lLWNsYW1wLTFcIj57eyBzZWN0aW9uKCkudGl0bGUgfX08L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsaW5lLWNsYW1wLTFcIj57eyBzZWN0aW9uKCkuZGVzY3JpcHRpb24gfX08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gYXJpYS1sYWJlbD1cImV4cGFuZCByb3dcIiAoY2xpY2spPVwiZXhwYW5kZWQgPSAhZXhwYW5kZWQ7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgICBAaWYgKGV4cGFuZGVkKSB7XG4gICAgICAgICAgPG1hdC1pY29uPmtleWJvYXJkX2Fycm93X3VwPC9tYXQtaWNvbj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPG1hdC1pY29uPmtleWJvYXJkX2Fycm93X2Rvd248L21hdC1pY29uPlxuICAgICAgICB9XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zIHctZnVsbCBvdmVyZmxvdy1oaWRkZW5cIiBbQGRldGFpbEV4cGFuZF09XCJleHBhbmRlZCA/ICdleHBhbmRlZCcgOiAnY29sbGFwc2VkJ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGxnOmZsZXgtcm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBncm93XCI+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgIDxtYXQtbGFiZWwgaTE4bj5UaXRsZTwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIlRpdGxlXCIgaTE4bi1wbGFjZWhvbGRlciBbKG5nTW9kZWwpXT1cInNlY3Rpb24oKS50aXRsZVwiIC8+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIFtoaWRlUmVxdWlyZWRNYXJrZXJdPVwidHJ1ZVwiPlxuICAgICAgICAgIDxtYXQtbGFiZWwgaTE4bj5EZXNjcmlwdGlvbjwvbWF0LWxhYmVsPlxuICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgIGNka1RleHRhcmVhQXV0b3NpemVcbiAgICAgICAgICAgIGNka0F1dG9zaXplTWluUm93cz1cIjNcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJEZXNjcmlwdGlvblwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlY3Rpb24oKS5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICBpMThuLXBsYWNlaG9sZGVyXG4gICAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gbWVkaWEgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwibGc6YmFzaXMtMS8yIHB4LTAgbGc6cHgtM1wiPlxuICAgICAgICBAaWYgKHNlbGVjdGVkSW1nKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cganVzdGlmeS1jZW50ZXIgcmVsYXRpdmUgYXNwZWN0LXZpZGVvXCI+XG4gICAgICAgICAgICA8aW1nIGNsYXNzPVwib2JqZWN0LWNvbnRhaW4gdy1mdWxsXCIgW3NyY109XCJzZWxlY3RlZEltZy51cmxcIiBbYWx0XT1cInNlbGVjdGVkSW1nLmFsdFwiIC8+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWJzb2x1dGUgei0zMCByaWdodC0wXCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwiYmVmb3JlTWVudVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtbC1hdXRvIGZvY3VzOm91dGxpbmUtbm9uZSBob3ZlcjpiZy1bLS1ydC1iYXNlLWJhY2tncm91bmRdIHAtMVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+bW9yZV92ZXJ0PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDxtYXQtbWVudSAjYmVmb3JlTWVudT1cIm1hdE1lbnVcIiB4UG9zaXRpb249XCJiZWZvcmVcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cIm9uRGVsZXRlTWVkaWEoc2VsZWN0ZWRJbWcpXCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBpMThuPkRlbGV0ZTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9tYXQtbWVudT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBtZWRpYSAtLT5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBmbGV4LXdyYXAgY3Vyc29yLXBvaW50ZXIgcmVsYXRpdmUgYm94LWJvcmRlclwiIGZ4TGF5b3V0PVwicm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MtYmFyXCI+XG4gICAgICAgICAgICAgIEBpZiAoc2VjdGlvbigpLmlzVXBsb2FkaW5nKSB7XG4gICAgICAgICAgICAgICAgPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIj48L21hdC1wcm9ncmVzcy1iYXI+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgQGZvciAobWVkaWEgb2Ygc2VjdGlvbigpLm1lZGlhOyB0cmFjayBtZWRpYSkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVkaWEtbGlzdC1pdGVtXCI+XG4gICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cInRpbGUtbWVkaWFcIiAoY2xpY2spPVwib25NZWRpYUl0ZW1DbGljayhtZWRpYSlcIiBbc3JjXT1cIm1lZGlhLnVybFwiIFthbHRdPVwibWVkaWEuYWx0XCIgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8aW5wdXQgc3R5bGU9XCJkaXNwbGF5OiBub25lXCIgdHlwZT1cImZpbGVcIiBhY2NlcHQ9XCJpbWFnZS8qXCIgKGNoYW5nZSk9XCJvblVwbG9hZCgkZXZlbnQpXCIgI2ZpbGVJbnB1dCAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZC1idXR0b25cIj5cbiAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIiBjbGFzcz1cInRpbGUtbWVkaWEgZmxleCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBoZWlnaHQ9XCI0OHB4XCIgdmlld0JveD1cIjAgLTk2MCA5NjAgOTYwXCIgd2lkdGg9XCI0OHB4XCIgZmlsbD1cIiM1ZjYzNjhcIj5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNDQ0LTQ0NEgyNDB2LTcyaDIwNHYtMjA0aDcydjIwNGgyMDR2NzJINTE2djIwNGgtNzJ2LTIwNFpcIiAvPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIEBpZiAoYWN0aW9ucygpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWVuZCBwLTMgZ2FwLTNcIj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNsYXNzPVwibWF4LWgtOFwiIChjbGljayk9XCJvbkRlbGV0ZShzZWN0aW9uKCkpXCIgaTE4bj5EZWxldGU8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY2xhc3M9XCJtYXgtaC04XCIgKGNsaWNrKT1cIm9uU2F2ZShzZWN0aW9uKCkpXCIgaTE4bj5TYXZlPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuIl19","import { Component, inject } from '@angular/core';\nimport { PropertyManageSectionItemComponent } from '../../../components/property-manage-section-item/property-manage-section-item.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ActivatedRoute } from '@angular/router';\nimport { ToolbarComponent, ConfirmationDialogComponent } from '@rolatech/angular-components';\nimport { PropertyService } from '@rolatech/angular-services';\nimport { remove } from 'lodash';\nimport { PropertyStatus, PropertyType } from '../../../interfaces';\nimport { PropertyManageContentComponent } from '../property-manage-content/property-manage-content.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\nimport * as i2 from \"@angular/material/icon\";\nexport class PropertyManageSectionsComponent {\n route = inject(ActivatedRoute);\n propertyService = inject(PropertyService);\n dialog = inject(MatDialog);\n snackBar = inject(MatSnackBar);\n id;\n isLoading = false;\n isUploading = false;\n sections = [];\n status = PropertyStatus;\n propertyType = PropertyType;\n constructor() {\n this.id = this.route.parent?.snapshot.paramMap.get('id');\n }\n ngOnInit() {\n this.find();\n }\n find() {\n this.propertyService.findSections(this.id).subscribe({\n next: (res) => {\n if (res.data) {\n this.sections = res.data;\n }\n },\n });\n }\n addSection() {\n if (!this.sections) {\n this.sections = [];\n }\n this.propertyService\n .addSection(this.id, {\n title: '',\n description: '',\n content: '',\n media: [],\n })\n .subscribe({\n next: (res) => {\n const section = res.data;\n this.sections.push({\n id: section.id,\n title: 'Untitled',\n description: '',\n content: '',\n media: [],\n });\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n onUploadSectionMedia(event) {\n const section = event.section;\n const sectionId = section.id;\n const file = event.data.target.files[0];\n if (file) {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n if (!section.media) {\n section.media = [];\n }\n section.media.push({\n url: reader.result,\n alt: 'upload image',\n });\n section.isUploading = true;\n const formData = new FormData();\n formData.append('file', file);\n this.propertyService.uploadSectionMedia(sectionId, formData).subscribe({\n next: (res) => {\n this.isUploading = false;\n section.isUploading = false;\n delete res.data.propertySection;\n section.media[section.media.length - 1].id = res.data.id;\n section.media[section.media.length - 1].url = res.data.url;\n },\n error: (e) => {\n this.isUploading = false;\n this.snackBar.open('Upload failed: ' + e.message);\n },\n });\n };\n reader.onerror = (error) => {\n this.isUploading = false;\n };\n }\n }\n onDeleteSectionMedia(event) {\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\n width: '400px',\n data: {\n title: '删除图片',\n message: `确定删除吗?`,\n },\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n const section = event.section;\n const mediaId = event.media.id;\n remove(section.media, {\n id: mediaId,\n });\n this.propertyService.deleteSectionMedia(section.id, mediaId).subscribe({\n next: (res) => {\n // remove(section.media, {\n // id: mediaId,\n // });\n },\n });\n }\n });\n }\n onSectionSave(section) {\n delete section.isUploading;\n this.propertyService.updateSection(section.id, section).subscribe({\n next: (res) => {\n this.snackBar.open('Success');\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n onSectionDelete(section) {\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\n width: '400px',\n data: {\n title: '删除详情',\n message: '确定删除此详情吗?',\n },\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.propertyService.deleteSection(section.id).subscribe({\n next: (res) => {\n this.snackBar.open(res.data);\n remove(this.sections, {\n id: section.id,\n });\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageSectionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyManageSectionsComponent, isStandalone: true, selector: \"rolatech-property-manage-sections\", ngImport: i0, template: \"<rolatech-property-manage-content>\\n <rolatech-toolbar title=\\\"Details\\\" class=\\\"hidden md:block\\\" divider> </rolatech-toolbar>\\n <div>\\n <div>\\n @for (section of sections; track section) {\\n <rolatech-property-manage-section-item\\n [section]=\\\"section\\\"\\n (upload)=\\\"onUploadSectionMedia($event)\\\"\\n (deleteMedia)=\\\"onDeleteSectionMedia($event)\\\"\\n (save)=\\\"onSectionSave($event)\\\"\\n (delete)=\\\"onSectionDelete($event)\\\"\\n [actions]=\\\"true\\\"\\n ></rolatech-property-manage-section-item>\\n }\\n </div>\\n <button mat-stroked-button (click)=\\\"addSection()\\\" class=\\\"mt-3\\\">\\n <mat-icon>add</mat-icon>\\n <span i18n>Add</span>\\n </button>\\n </div>\\n</rolatech-property-manage-content>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i1.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i2.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"component\", type: PropertyManageContentComponent, selector: \"rolatech-property-manage-content\" }, { kind: \"component\", type: PropertyManageSectionItemComponent, selector: \"rolatech-property-manage-section-item\", inputs: [\"isUploading\", \"section\", \"actions\", \"selectMedia\"], outputs: [\"upload\", \"delete\", \"save\", \"deleteMedia\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageSectionsComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-manage-sections', imports: [\n MatButtonModule,\n MatIconModule,\n ToolbarComponent,\n PropertyManageContentComponent,\n PropertyManageSectionItemComponent,\n ], template: \"<rolatech-property-manage-content>\\n <rolatech-toolbar title=\\\"Details\\\" class=\\\"hidden md:block\\\" divider> </rolatech-toolbar>\\n <div>\\n <div>\\n @for (section of sections; track section) {\\n <rolatech-property-manage-section-item\\n [section]=\\\"section\\\"\\n (upload)=\\\"onUploadSectionMedia($event)\\\"\\n (deleteMedia)=\\\"onDeleteSectionMedia($event)\\\"\\n (save)=\\\"onSectionSave($event)\\\"\\n (delete)=\\\"onSectionDelete($event)\\\"\\n [actions]=\\\"true\\\"\\n ></rolatech-property-manage-section-item>\\n }\\n </div>\\n <button mat-stroked-button (click)=\\\"addSection()\\\" class=\\\"mt-3\\\">\\n <mat-icon>add</mat-icon>\\n <span i18n>Add</span>\\n </button>\\n </div>\\n</rolatech-property-manage-content>\\n\" }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbWFuYWdlLXNlY3Rpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS1tYW5hZ2UvcHJvcGVydHktbWFuYWdlLXNlY3Rpb25zL3Byb3BlcnR5LW1hbmFnZS1zZWN0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktbWFuYWdlL3Byb3BlcnR5LW1hbmFnZS1zZWN0aW9ucy9wcm9wZXJ0eS1tYW5hZ2Utc2VjdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0seUZBQXlGLENBQUM7QUFDN0ksT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoQyxPQUFPLEVBQW1CLGNBQWMsRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFB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LENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUNoQyxDQUFDO2lCQUNGLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBdkpVLCtCQUErQjsyRkFBL0IsK0JBQStCLDZGQ3pCNUMsaXhCQXFCQSx5RERMSSxlQUFlLG1YQUNmLGFBQWEsb0xBQ2IsZ0JBQWdCLGdJQUNoQiw4QkFBOEIsNkVBQzlCLGtDQUFrQzs7MkZBS3pCLCtCQUErQjtrQkFaM0MsU0FBUzsrQkFDRSxtQ0FBbUMsV0FDcEM7d0JBQ1AsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsOEJBQThCO3dCQUM5QixrQ0FBa0M7cUJBQ25DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJvcGVydHlNYW5hZ2VTZWN0aW9uSXRlbUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvcHJvcGVydHktbWFuYWdlLXNlY3Rpb24taXRlbS9wcm9wZXJ0eS1tYW5hZ2Utc2VjdGlvbi1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFRvb2xiYXJDb21wb25lbnQsIENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgUHJvcGVydHlTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItc2VydmljZXMnO1xuaW1wb3J0IHsgcmVtb3ZlIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFByb3BlcnR5U2VjdGlvbiwgUHJvcGVydHlTdGF0dXMsIFByb3BlcnR5VHlwZSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgUHJvcGVydHlNYW5hZ2VDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vcHJvcGVydHktbWFuYWdlLWNvbnRlbnQvcHJvcGVydHktbWFuYWdlLWNvbnRlbnQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvcGVydHktbWFuYWdlLXNlY3Rpb25zJyxcbiAgaW1wb3J0czogW1xuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIFRvb2xiYXJDb21wb25lbnQsXG4gICAgUHJvcGVydHlNYW5hZ2VDb250ZW50Q29tcG9uZW50LFxuICAgIFByb3BlcnR5TWFuYWdlU2VjdGlvbkl0ZW1Db21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1tYW5hZ2Utc2VjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHJvcGVydHktbWFuYWdlLXNlY3Rpb25zLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlNYW5hZ2VTZWN0aW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgcHJvcGVydHlTZXJ2aWNlID0gaW5qZWN0KFByb3BlcnR5U2VydmljZSk7XG4gIGRpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xuICBzbmFja0JhciA9IGluamVjdChNYXRTbmFja0Jhcik7XG5cbiAgaWQ6IHN0cmluZztcbiAgaXNMb2FkaW5nID0gZmFsc2U7XG4gIGlzVXBsb2FkaW5nID0gZmFsc2U7XG4gIHNlY3Rpb25zOiBQcm9wZXJ0eVNlY3Rpb25bXSA9IFtdO1xuICBzdGF0dXMgPSBQcm9wZXJ0eVN0YXR1cztcbiAgcHJvcGVydHlUeXBlOiBhbnkgPSBQcm9wZXJ0eVR5cGU7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaWQgPSB0aGlzLnJvdXRlLnBhcmVudD8uc25hcHNob3QucGFyYW1NYXAuZ2V0KCdpZCcpIGFzIHN0cmluZztcbiAgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbmQoKTtcbiAgfVxuICBmaW5kKCkge1xuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmZpbmRTZWN0aW9ucyh0aGlzLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICBpZiAocmVzLmRhdGEpIHtcbiAgICAgICAgICB0aGlzLnNlY3Rpb25zID0gcmVzLmRhdGE7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgYWRkU2VjdGlvbigpIHtcbiAgICBpZiAoIXRoaXMuc2VjdGlvbnMpIHtcbiAgICAgIHRoaXMuc2VjdGlvbnMgPSBbXTtcbiAgICB9XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2VcbiAgICAgIC5hZGRTZWN0aW9uKHRoaXMuaWQsIHtcbiAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgICAgIGNvbnRlbnQ6ICcnLFxuICAgICAgICBtZWRpYTogW10sXG4gICAgICB9KVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHNlY3Rpb24gPSByZXMuZGF0YTtcbiAgICAgICAgICB0aGlzLnNlY3Rpb25zLnB1c2goe1xuICAgICAgICAgICAgaWQ6IHNlY3Rpb24uaWQsXG4gICAgICAgICAgICB0aXRsZTogJ1VudGl0bGVkJyxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnLFxuICAgICAgICAgICAgbWVkaWE6IFtdLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGUpID0+IHtcbiAgICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oZS5tZXNzYWdlKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9XG4gIG9uVXBsb2FkU2VjdGlvbk1lZGlhKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBzZWN0aW9uID0gZXZlbnQuc2VjdGlvbjtcbiAgICBjb25zdCBzZWN0aW9uSWQgPSBzZWN0aW9uLmlkO1xuICAgIGNvbnN0IGZpbGUgPSBldmVudC5kYXRhLnRhcmdldC5maWxlc1swXTtcbiAgICBpZiAoZmlsZSkge1xuICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgaWYgKCFzZWN0aW9uLm1lZGlhKSB7XG4gICAgICAgICAgc2VjdGlvbi5tZWRpYSA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIChzZWN0aW9uLm1lZGlhIGFzIGFueSkucHVzaCh7XG4gICAgICAgICAgdXJsOiByZWFkZXIucmVzdWx0LFxuICAgICAgICAgIGFsdDogJ3VwbG9hZCBpbWFnZScsXG4gICAgICAgIH0pO1xuICAgICAgICBzZWN0aW9uLmlzVXBsb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSk7XG4gICAgICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLnVwbG9hZFNlY3Rpb25NZWRpYShzZWN0aW9uSWQsIGZvcm1EYXRhKS5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc1VwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgc2VjdGlvbi5pc1VwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgZGVsZXRlIHJlcy5kYXRhLnByb3BlcnR5U2VjdGlvbjtcbiAgICAgICAgICAgIHNlY3Rpb24ubWVkaWFbc2VjdGlvbi5tZWRpYS5sZW5ndGggLSAxXS5pZCA9IHJlcy5kYXRhLmlkO1xuICAgICAgICAgICAgc2VjdGlvbi5tZWRpYVtzZWN0aW9uLm1lZGlhLmxlbmd0aCAtIDFdLnVybCA9IHJlcy5kYXRhLnVybDtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yOiAoZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc1VwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKCdVcGxvYWQgZmFpbGVkOiAnICsgZS5tZXNzYWdlKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgICByZWFkZXIub25lcnJvciA9IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLmlzVXBsb2FkaW5nID0gZmFsc2U7XG4gICAgICB9O1xuICAgIH1cbiAgfVxuICBvbkRlbGV0ZVNlY3Rpb25NZWRpYShldmVudDogYW55KSB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiAnNDAwcHgnLFxuICAgICAgZGF0YToge1xuICAgICAgICB0aXRsZTogJ+WIoOmZpOWbvueJhycsXG4gICAgICAgIG1lc3NhZ2U6IGDnoa7lrprliKDpmaTlkJc/YCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICBjb25zdCBzZWN0aW9uID0gZXZlbnQuc2VjdGlvbjtcbiAgICAgICAgY29uc3QgbWVkaWFJZCA9IGV2ZW50Lm1lZGlhLmlkO1xuICAgICAgICByZW1vdmUoc2VjdGlvbi5tZWRpYSwge1xuICAgICAgICAgIGlkOiBtZWRpYUlkLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZGVsZXRlU2VjdGlvbk1lZGlhKHNlY3Rpb24uaWQsIG1lZGlhSWQpLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgICAvLyByZW1vdmUoc2VjdGlvbi5tZWRpYSwge1xuICAgICAgICAgICAgLy8gICBpZDogbWVkaWFJZCxcbiAgICAgICAgICAgIC8vIH0pO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIG9uU2VjdGlvblNhdmUoc2VjdGlvbjogUHJvcGVydHlTZWN0aW9uKSB7XG4gICAgZGVsZXRlIHNlY3Rpb24uaXNVcGxvYWRpbmc7XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UudXBkYXRlU2VjdGlvbihzZWN0aW9uLmlkLCBzZWN0aW9uKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXIub3BlbignU3VjY2VzcycpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZSkgPT4ge1xuICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oZS5tZXNzYWdlKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgb25TZWN0aW9uRGVsZXRlKHNlY3Rpb246IFByb3BlcnR5U2VjdGlvbikge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICB3aWR0aDogJzQwMHB4JyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgdGl0bGU6ICfliKDpmaTor6bmg4UnLFxuICAgICAgICBtZXNzYWdlOiAn56Gu5a6a5Yig6Zmk5q2k6K+m5oOF5ZCXPycsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmRlbGV0ZVNlY3Rpb24oc2VjdGlvbi5pZCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc25hY2tCYXIub3BlbihyZXMuZGF0YSk7XG4gICAgICAgICAgICByZW1vdmUodGhpcy5zZWN0aW9ucywge1xuICAgICAgICAgICAgICBpZDogc2VjdGlvbi5pZCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oZS5tZXNzYWdlKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPHJvbGF0ZWNoLXByb3BlcnR5LW1hbmFnZS1jb250ZW50PlxuICA8cm9sYXRlY2gtdG9vbGJhciB0aXRsZT1cIkRldGFpbHNcIiBjbGFzcz1cImhpZGRlbiBtZDpibG9ja1wiIGRpdmlkZXI+IDwvcm9sYXRlY2gtdG9vbGJhcj5cbiAgPGRpdj5cbiAgICA8ZGl2PlxuICAgICAgQGZvciAoc2VjdGlvbiBvZiBzZWN0aW9uczsgdHJhY2sgc2VjdGlvbikge1xuICAgICAgICA8cm9sYXRlY2gtcHJvcGVydHktbWFuYWdlLXNlY3Rpb24taXRlbVxuICAgICAgICAgIFtzZWN0aW9uXT1cInNlY3Rpb25cIlxuICAgICAgICAgICh1cGxvYWQpPVwib25VcGxvYWRTZWN0aW9uTWVkaWEoJGV2ZW50KVwiXG4gICAgICAgICAgKGRlbGV0ZU1lZGlhKT1cIm9uRGVsZXRlU2VjdGlvbk1lZGlhKCRldmVudClcIlxuICAgICAgICAgIChzYXZlKT1cIm9uU2VjdGlvblNhdmUoJGV2ZW50KVwiXG4gICAgICAgICAgKGRlbGV0ZSk9XCJvblNlY3Rpb25EZWxldGUoJGV2ZW50KVwiXG4gICAgICAgICAgW2FjdGlvbnNdPVwidHJ1ZVwiXG4gICAgICAgID48L3JvbGF0ZWNoLXByb3BlcnR5LW1hbmFnZS1zZWN0aW9uLWl0ZW0+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cImFkZFNlY3Rpb24oKVwiIGNsYXNzPVwibXQtM1wiPlxuICAgICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+XG4gICAgICA8c3BhbiBpMThuPkFkZDwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L3JvbGF0ZWNoLXByb3BlcnR5LW1hbmFnZS1jb250ZW50PlxuIl19","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class PropertyManagePricingComponent {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManagePricingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.2.0\", type: PropertyManagePricingComponent, isStandalone: true, selector: \"rolatech-property-manage-pricing\", ngImport: i0, template: \"<p>property-manage-pricing works!</p>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManagePricingComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-manage-pricing', imports: [CommonModule], template: \"<p>property-manage-pricing works!</p>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbWFuYWdlLXByaWNpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL3BhZ2VzL3Byb3BlcnR5LW1hbmFnZS9wcm9wZXJ0eS1tYW5hZ2UtcHJpY2luZy9wcm9wZXJ0eS1tYW5hZ2UtcHJpY2luZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktbWFuYWdlL3Byb3BlcnR5LW1hbmFnZS1wcmljaW5nL3Byb3BlcnR5LW1hbmFnZS1wcmljaW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVEvQyxNQUFNLE9BQU8sOEJBQThCO3VHQUE5Qiw4QkFBOEI7MkZBQTlCLDhCQUE4Qiw0RkNUM0MseUNBQ0EseURESVksWUFBWTs7MkZBSVgsOEJBQThCO2tCQU4xQyxTQUFTOytCQUNFLGtDQUFrQyxXQUNuQyxDQUFDLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvcGVydHktbWFuYWdlLXByaWNpbmcnLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LW1hbmFnZS1wcmljaW5nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb3BlcnR5LW1hbmFnZS1wcmljaW5nLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlNYW5hZ2VQcmljaW5nQ29tcG9uZW50IHt9XG4iLCI8cD5wcm9wZXJ0eS1tYW5hZ2UtcHJpY2luZyB3b3JrcyE8L3A+XG4iXX0=","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class PropertyManageScheduleComponent {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageScheduleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.2.0\", type: PropertyManageScheduleComponent, isStandalone: true, selector: \"rolatech-property-manage-schedule\", ngImport: i0, template: \"<p>property-manage-schedule works!</p>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageScheduleComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-manage-schedule', imports: [CommonModule], template: \"<p>property-manage-schedule works!</p>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbWFuYWdlLXNjaGVkdWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS1tYW5hZ2UvcHJvcGVydHktbWFuYWdlLXNjaGVkdWxlL3Byb3BlcnR5LW1hbmFnZS1zY2hlZHVsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktbWFuYWdlL3Byb3BlcnR5LW1hbmFnZS1zY2hlZHVsZS9wcm9wZXJ0eS1tYW5hZ2Utc2NoZWR1bGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBUS9DLE1BQU0sT0FBTywrQkFBK0I7dUdBQS9CLCtCQUErQjsyRkFBL0IsK0JBQStCLDZGQ1Q1QywwQ0FDQSx5RERJWSxZQUFZOzsyRkFJWCwrQkFBK0I7a0JBTjNDLFNBQVM7K0JBQ0UsbUNBQW1DLFdBQ3BDLENBQUMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1wcm9wZXJ0eS1tYW5hZ2Utc2NoZWR1bGUnLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LW1hbmFnZS1zY2hlZHVsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9wZXJ0eS1tYW5hZ2Utc2NoZWR1bGUuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eU1hbmFnZVNjaGVkdWxlQ29tcG9uZW50IHt9XG4iLCI8cD5wcm9wZXJ0eS1tYW5hZ2Utc2NoZWR1bGUgd29ya3MhPC9wPlxuIl19","import { Component, computed, inject } from '@angular/core';\nimport { PropertyManageContentComponent } from '../property-manage-content/property-manage-content.component';\nimport { BaseComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { FeatureService, PropertyService } from '@rolatech/angular-services';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatButtonModule } from '@angular/material/button';\nimport { forkJoin } from 'rxjs';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/checkbox\";\nimport * as i2 from \"@angular/material/button\";\nexport class PropertyManageFeaturesComponent extends BaseComponent {\n propertyService = inject(PropertyService);\n featureService = inject(FeatureService);\n features = [];\n selected = {};\n partiallyComplete = (feature) => computed(() => {\n if (!feature.values) {\n return false;\n }\n return feature.values.some((t) => t.selected) && !feature.values.every((t) => t.selected);\n });\n ngOnInit() {\n this.id = this.route.parent?.snapshot.paramMap.get('id');\n this.find();\n }\n isEmpty(obj) {\n return obj && Object.keys(obj).length === 0;\n }\n find() {\n forkJoin({\n features: this.featureService.find({}),\n options: this.propertyService.findFeatures(this.id),\n }).subscribe(({ features, options }) => {\n this.features = features.data;\n if (options.data) {\n this.selected = this.convertToBinding(options.data);\n // ensure all features have initialized value arrays\n for (const feature of this.features) {\n if (!this.selected[feature.id]) {\n this.selected[feature.id] = [];\n }\n }\n }\n });\n }\n sectionChange(feature, selected, index) {\n if (index === undefined) {\n feature.selected = selected;\n feature.values?.forEach((t) => (t.selected = selected));\n }\n else {\n feature.values[index].selected = selected;\n feature.selected = feature.values?.every((t) => t.selected) ?? true;\n }\n }\n toggleValue(featureId, valueId, checked) {\n const selectedValues = this.selected[featureId] || [];\n if (checked) {\n selectedValues.push(valueId);\n }\n else {\n const index = selectedValues.indexOf(valueId);\n if (index !== -1)\n selectedValues.splice(index, 1);\n }\n this.selected[featureId] = selectedValues;\n }\n save() {\n this.propertyService.updateFeatures(this.id, this.selected).subscribe({\n next: (res) => {\n this.snackBarService.open('Update successfully');\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n convertToBinding(options) {\n const binding = {};\n for (const option of options) {\n const featureId = option.feature.id;\n const valueId = option.value.id;\n if (!binding[featureId]) {\n binding[featureId] = [];\n }\n // avoid duplicates just in case\n if (!binding[featureId].includes(valueId)) {\n binding[featureId].push(valueId);\n }\n }\n return binding;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageFeaturesComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyManageFeaturesComponent, isStandalone: true, selector: \"rolatech-property-manage-features\", usesInheritance: true, ngImport: i0, template: \"<rolatech-property-manage-content>\\n <rolatech-toolbar title=\\\"Features\\\" class=\\\"hidden md:block\\\" divider></rolatech-toolbar>\\n <div>\\n @for (feature of features; track $index) {\\n <div>\\n <h4>{{ feature.name }}</h4>\\n @for (value of feature.values; track $index) {\\n <mat-checkbox\\n [checked]=\\\"selected[feature.id] ? selected[feature.id].includes(value.id) : false\\\"\\n (change)=\\\"toggleValue(feature.id, value.id, $event.checked)\\\"\\n >\\n {{ value.name }}\\n </mat-checkbox>\\n }\\n </div>\\n }\\n </div>\\n\\n <!-- @for (item of features; track item) {\\n <section class=\\\"example-section\\\">\\n <span class=\\\"example-list-section\\\">\\n <h4>{{ item.name }}</h4>\\n <mat-checkbox\\n class=\\\"example-margin\\\"\\n [checked]=\\\"item.selected\\\"\\n [indeterminate]=\\\"partiallyComplete(item)()\\\"\\n (change)=\\\"sectionChange(item, $event.checked)\\\"\\n >\\n {{ item.name }}\\n </mat-checkbox>\\n </span>\\n <div class=\\\"example-list-section\\\">\\n <div>\\n @for (value of item.values; track value; let i = $index) {\\n <mat-checkbox [checked]=\\\"value.selected\\\" (change)=\\\"sectionChange(item, $event.checked, i)\\\">\\n {{ value.name }}\\n </mat-checkbox>\\n }\\n </div>\\n </div>\\n </section>\\n } -->\\n <!-- <div class=\\\"px-3 mb-3\\\">\\n @for (item of features; track $index) {\\n <div class=\\\"text-xl font-bold py-2\\\">{{ item.name }}</div>\\n @for (value of item.values; track value; let i = $index) {\\n <mat-checkbox\\n class=\\\"text-lg font-medium\\\"\\n (click)=\\\"$event.stopPropagation()\\\"\\n [checked]=\\\"value.selected\\\"\\n (change)=\\\"sectionChange($event.checked, i)\\\"\\n >\\n {{ value.name }}\\n </mat-checkbox>\\n }\\n }\\n </div> -->\\n <button mat-flat-button (click)=\\\"save()\\\" i18n>Save</button>\\n</rolatech-property-manage-content>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"component\", type: PropertyManageContentComponent, selector: \"rolatech-property-manage-content\" }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"ngmodule\", type: MatCheckboxModule }, { kind: \"component\", type: i1.MatCheckbox, selector: \"mat-checkbox\", inputs: [\"aria-label\", \"aria-labelledby\", \"aria-describedby\", \"aria-expanded\", \"aria-controls\", \"aria-owns\", \"id\", \"required\", \"labelPosition\", \"name\", \"value\", \"disableRipple\", \"tabIndex\", \"color\", \"disabledInteractive\", \"checked\", \"disabled\", \"indeterminate\"], outputs: [\"change\", \"indeterminateChange\"], exportAs: [\"matCheckbox\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i2.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageFeaturesComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-manage-features', imports: [CommonModule, PropertyManageContentComponent, ToolbarComponent, MatCheckboxModule, MatButtonModule], template: \"<rolatech-property-manage-content>\\n <rolatech-toolbar title=\\\"Features\\\" class=\\\"hidden md:block\\\" divider></rolatech-toolbar>\\n <div>\\n @for (feature of features; track $index) {\\n <div>\\n <h4>{{ feature.name }}</h4>\\n @for (value of feature.values; track $index) {\\n <mat-checkbox\\n [checked]=\\\"selected[feature.id] ? selected[feature.id].includes(value.id) : false\\\"\\n (change)=\\\"toggleValue(feature.id, value.id, $event.checked)\\\"\\n >\\n {{ value.name }}\\n </mat-checkbox>\\n }\\n </div>\\n }\\n </div>\\n\\n <!-- @for (item of features; track item) {\\n <section class=\\\"example-section\\\">\\n <span class=\\\"example-list-section\\\">\\n <h4>{{ item.name }}</h4>\\n <mat-checkbox\\n class=\\\"example-margin\\\"\\n [checked]=\\\"item.selected\\\"\\n [indeterminate]=\\\"partiallyComplete(item)()\\\"\\n (change)=\\\"sectionChange(item, $event.checked)\\\"\\n >\\n {{ item.name }}\\n </mat-checkbox>\\n </span>\\n <div class=\\\"example-list-section\\\">\\n <div>\\n @for (value of item.values; track value; let i = $index) {\\n <mat-checkbox [checked]=\\\"value.selected\\\" (change)=\\\"sectionChange(item, $event.checked, i)\\\">\\n {{ value.name }}\\n </mat-checkbox>\\n }\\n </div>\\n </div>\\n </section>\\n } -->\\n <!-- <div class=\\\"px-3 mb-3\\\">\\n @for (item of features; track $index) {\\n <div class=\\\"text-xl font-bold py-2\\\">{{ item.name }}</div>\\n @for (value of item.values; track value; let i = $index) {\\n <mat-checkbox\\n class=\\\"text-lg font-medium\\\"\\n (click)=\\\"$event.stopPropagation()\\\"\\n [checked]=\\\"value.selected\\\"\\n (change)=\\\"sectionChange($event.checked, i)\\\"\\n >\\n {{ value.name }}\\n </mat-checkbox>\\n }\\n }\\n </div> -->\\n <button mat-flat-button (click)=\\\"save()\\\" i18n>Save</button>\\n</rolatech-property-manage-content>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbWFuYWdlLWZlYXR1cmVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS1tYW5hZ2UvcHJvcGVydHktbWFuYWdlLWZlYXR1cmVzL3Byb3BlcnR5LW1hbmFnZS1mZWF0dXJlcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktbWFuYWdlL3Byb3BlcnR5LW1hbmFnZS1mZWF0dXJlcy9wcm9wZXJ0eS1tYW5hZ2UtZmVhdHVyZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUM5RyxPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU3RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVoQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFVL0MsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLGFBQWE7SUFDaEUsZUFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMxQyxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FB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T0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUMxQixDQUFDO1lBRUQsZ0NBQWdDO1lBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQzFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbkMsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO3VHQXBGVSwrQkFBK0I7MkZBQS9CLCtCQUErQixvSENuQjVDLG1nRUEyREEseURENUNZLFlBQVksK0JBQUUsOEJBQThCLDZFQUFFLGdCQUFnQiwrSEFBRSxpQkFBaUIsbWJBQUUsZUFBZTs7MkZBSWpHLCtCQUErQjtrQkFOM0MsU0FBUzsrQkFDRSxtQ0FBbUMsV0FDcEMsQ0FBQyxZQUFZLEVBQUUsOEJBQThCLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBPbkluaXQsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJvcGVydHlNYW5hZ2VDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vcHJvcGVydHktbWFuYWdlLWNvbnRlbnQvcHJvcGVydHktbWFuYWdlLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIFRvb2xiYXJDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IEZlYXR1cmVTZXJ2aWNlLCBQcm9wZXJ0eVNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9mZWF0dXJlJztcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQcm9wZXJ0eUZlYXR1cmVPcHRpb24gfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5leHBvcnQgaW50ZXJmYWNlIFByb3BlcnR5RmVhdHVyZUJpbmRpbmcge1xuICBbZmVhdHVyZUlkOiBzdHJpbmddOiBzdHJpbmdbXTsgLy8gZmVhdHVyZUlkIC0+IGxpc3Qgb2YgdmFsdWVJZHNcbn1cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb3BlcnR5LW1hbmFnZS1mZWF0dXJlcycsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFByb3BlcnR5TWFuYWdlQ29udGVudENvbXBvbmVudCwgVG9vbGJhckNvbXBvbmVudCwgTWF0Q2hlY2tib3hNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1tYW5hZ2UtZmVhdHVyZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHJvcGVydHktbWFuYWdlLWZlYXR1cmVzLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlNYW5hZ2VGZWF0dXJlc0NvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcm9wZXJ0eVNlcnZpY2UgPSBpbmplY3QoUHJvcGVydHlTZXJ2aWNlKTtcbiAgZmVhdHVyZVNlcnZpY2UgPSBpbmplY3QoRmVhdHVyZVNlcnZpY2UpO1xuICBmZWF0dXJlczogRmVhdHVyZVtdID0gW107XG4gIHNlbGVjdGVkOiBQcm9wZXJ0eUZlYXR1cmVCaW5kaW5nID0ge307XG5cbiAgcmVhZG9ubHkgcGFydGlhbGx5Q29tcGxldGUgPSAoZmVhdHVyZTogRmVhdHVyZSkgPT5cbiAgICBjb21wdXRlZCgoKSA9PiB7XG4gICAgICBpZiAoIWZlYXR1cmUudmFsdWVzKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmZWF0dXJlLnZhbHVlcy5zb21lKCh0KSA9PiB0LnNlbGVjdGVkKSAmJiAhZmVhdHVyZS52YWx1ZXMuZXZlcnkoKHQpID0+IHQuc2VsZWN0ZWQpO1xuICAgIH0pO1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlkID0gdGhpcy5yb3V0ZS5wYXJlbnQ/LnNuYXBzaG90LnBhcmFtTWFwLmdldCgnaWQnKSBhcyBzdHJpbmc7XG4gICAgdGhpcy5maW5kKCk7XG4gIH1cbiAgaXNFbXB0eShvYmo6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBvYmogJiYgT2JqZWN0LmtleXMob2JqKS5sZW5ndGggPT09IDA7XG4gIH1cbiAgZmluZCgpIHtcbiAgICBmb3JrSm9pbih7XG4gICAgICBmZWF0dXJlczogdGhpcy5mZWF0dXJlU2VydmljZS5maW5kPGFueT4oe30pLFxuICAgICAgb3B0aW9uczogdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZmluZEZlYXR1cmVzPGFueT4odGhpcy5pZCksXG4gICAgfSkuc3Vic2NyaWJlKCh7IGZlYXR1cmVzLCBvcHRpb25zIH0pID0+IHtcbiAgICAgIHRoaXMuZmVhdHVyZXMgPSBmZWF0dXJlcy5kYXRhO1xuICAgICAgaWYgKG9wdGlvbnMuZGF0YSkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkID0gdGhpcy5jb252ZXJ0VG9CaW5kaW5nKG9wdGlvbnMuZGF0YSk7XG4gICAgICAgIC8vIGVuc3VyZSBhbGwgZmVhdHVyZXMgaGF2ZSBpbml0aWFsaXplZCB2YWx1ZSBhcnJheXNcbiAgICAgICAgZm9yIChjb25zdCBmZWF0dXJlIG9mIHRoaXMuZmVhdHVyZXMpIHtcbiAgICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRbZmVhdHVyZS5pZF0pIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRbZmVhdHVyZS5pZF0gPSBbXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICBzZWN0aW9uQ2hhbmdlKGZlYXR1cmU6IEZlYXR1cmUsIHNlbGVjdGVkOiBib29sZWFuLCBpbmRleD86IG51bWJlcikge1xuICAgIGlmIChpbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBmZWF0dXJlLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gICAgICBmZWF0dXJlLnZhbHVlcz8uZm9yRWFjaCgodCkgPT4gKHQuc2VsZWN0ZWQgPSBzZWxlY3RlZCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmZWF0dXJlLnZhbHVlc1tpbmRleF0uc2VsZWN0ZWQgPSBzZWxlY3RlZDtcbiAgICAgIGZlYXR1cmUuc2VsZWN0ZWQgPSBmZWF0dXJlLnZhbHVlcz8uZXZlcnkoKHQpID0+IHQuc2VsZWN0ZWQpID8/IHRydWU7XG4gICAgfVxuICB9XG4gIHRvZ2dsZVZhbHVlKGZlYXR1cmVJZDogc3RyaW5nLCB2YWx1ZUlkOiBzdHJpbmcsIGNoZWNrZWQ6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBzZWxlY3RlZFZhbHVlcyA9IHRoaXMuc2VsZWN0ZWRbZmVhdHVyZUlkXSB8fCBbXTtcbiAgICBpZiAoY2hlY2tlZCkge1xuICAgICAgc2VsZWN0ZWRWYWx1ZXMucHVzaCh2YWx1ZUlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaW5kZXggPSBzZWxlY3RlZFZhbHVlcy5pbmRleE9mKHZhbHVlSWQpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkgc2VsZWN0ZWRWYWx1ZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZFtmZWF0dXJlSWRdID0gc2VsZWN0ZWRWYWx1ZXM7XG4gIH1cbiAgc2F2ZSgpIHtcbiAgICB0aGlzLnByb3BlcnR5U2VydmljZS51cGRhdGVGZWF0dXJlcyh0aGlzLmlkLCB0aGlzLnNlbGVjdGVkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKCdVcGRhdGUgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBjb252ZXJ0VG9CaW5kaW5nKG9wdGlvbnM6IFByb3BlcnR5RmVhdHVyZU9wdGlvbltdKTogUHJvcGVydHlGZWF0dXJlQmluZGluZyB7XG4gICAgY29uc3QgYmluZGluZzogUHJvcGVydHlGZWF0dXJlQmluZGluZyA9IHt9O1xuXG4gICAgZm9yIChjb25zdCBvcHRpb24gb2Ygb3B0aW9ucykge1xuICAgICAgY29uc3QgZmVhdHVyZUlkID0gb3B0aW9uLmZlYXR1cmUuaWQ7XG4gICAgICBjb25zdCB2YWx1ZUlkID0gb3B0aW9uLnZhbHVlLmlkO1xuXG4gICAgICBpZiAoIWJpbmRpbmdbZmVhdHVyZUlkXSkge1xuICAgICAgICBiaW5kaW5nW2ZlYXR1cmVJZF0gPSBbXTtcbiAgICAgIH1cblxuICAgICAgLy8gYXZvaWQgZHVwbGljYXRlcyBqdXN0IGluIGNhc2VcbiAgICAgIGlmICghYmluZGluZ1tmZWF0dXJlSWRdLmluY2x1ZGVzKHZhbHVlSWQpKSB7XG4gICAgICAgIGJpbmRpbmdbZmVhdHVyZUlkXS5wdXNoKHZhbHVlSWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBiaW5kaW5nO1xuICB9XG59XG4iLCI8cm9sYXRlY2gtcHJvcGVydHktbWFuYWdlLWNvbnRlbnQ+XG4gIDxyb2xhdGVjaC10b29sYmFyIHRpdGxlPVwiRmVhdHVyZXNcIiBjbGFzcz1cImhpZGRlbiBtZDpibG9ja1wiIGRpdmlkZXI+PC9yb2xhdGVjaC10b29sYmFyPlxuICA8ZGl2PlxuICAgIEBmb3IgKGZlYXR1cmUgb2YgZmVhdHVyZXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgPGRpdj5cbiAgICAgICAgPGg0Pnt7IGZlYXR1cmUubmFtZSB9fTwvaDQ+XG4gICAgICAgIEBmb3IgKHZhbHVlIG9mIGZlYXR1cmUudmFsdWVzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICA8bWF0LWNoZWNrYm94XG4gICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3RlZFtmZWF0dXJlLmlkXSA/IHNlbGVjdGVkW2ZlYXR1cmUuaWRdLmluY2x1ZGVzKHZhbHVlLmlkKSA6IGZhbHNlXCJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwidG9nZ2xlVmFsdWUoZmVhdHVyZS5pZCwgdmFsdWUuaWQsICRldmVudC5jaGVja2VkKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgdmFsdWUubmFtZSB9fVxuICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuXG4gIDwhLS0gQGZvciAoaXRlbSBvZiBmZWF0dXJlczsgdHJhY2sgaXRlbSkge1xuICAgIDxzZWN0aW9uIGNsYXNzPVwiZXhhbXBsZS1zZWN0aW9uXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImV4YW1wbGUtbGlzdC1zZWN0aW9uXCI+XG4gICAgICAgIDxoND57eyBpdGVtLm5hbWUgfX08L2g0PlxuICAgICAgICA8bWF0LWNoZWNrYm94XG4gICAgICAgICAgY2xhc3M9XCJleGFtcGxlLW1hcmdpblwiXG4gICAgICAgICAgW2NoZWNrZWRdPVwiaXRlbS5zZWxlY3RlZFwiXG4gICAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwicGFydGlhbGx5Q29tcGxldGUoaXRlbSkoKVwiXG4gICAgICAgICAgKGNoYW5nZSk9XCJzZWN0aW9uQ2hhbmdlKGl0ZW0sICRldmVudC5jaGVja2VkKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBpdGVtLm5hbWUgfX1cbiAgICAgICAgPC9tYXQtY2hlY2tib3g+XG4gICAgICA8L3NwYW4+XG4gICAgICA8ZGl2IGNsYXNzPVwiZXhhbXBsZS1saXN0LXNlY3Rpb25cIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICBAZm9yICh2YWx1ZSBvZiBpdGVtLnZhbHVlczsgdHJhY2sgdmFsdWU7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgICA8bWF0LWNoZWNrYm94IFtjaGVja2VkXT1cInZhbHVlLnNlbGVjdGVkXCIgKGNoYW5nZSk9XCJzZWN0aW9uQ2hhbmdlKGl0ZW0sICRldmVudC5jaGVja2VkLCBpKVwiPlxuICAgICAgICAgICAgICB7eyB2YWx1ZS5uYW1lIH19XG4gICAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9zZWN0aW9uPlxuICB9IC0tPlxuICA8IS0tIDxkaXYgY2xhc3M9XCJweC0zIG1iLTNcIj5cbiAgICBAZm9yIChpdGVtIG9mIGZlYXR1cmVzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXhsIGZvbnQtYm9sZCBweS0yXCI+e3sgaXRlbS5uYW1lIH19PC9kaXY+XG4gICAgICBAZm9yICh2YWx1ZSBvZiBpdGVtLnZhbHVlczsgdHJhY2sgdmFsdWU7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgIDxtYXQtY2hlY2tib3hcbiAgICAgICAgICBjbGFzcz1cInRleHQtbGcgZm9udC1tZWRpdW1cIlxuICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgIFtjaGVja2VkXT1cInZhbHVlLnNlbGVjdGVkXCJcbiAgICAgICAgICAoY2hhbmdlKT1cInNlY3Rpb25DaGFuZ2UoJGV2ZW50LmNoZWNrZWQsIGkpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IHZhbHVlLm5hbWUgfX1cbiAgICAgICAgPC9tYXQtY2hlY2tib3g+XG4gICAgICB9XG4gICAgfVxuICA8L2Rpdj4gLS0+XG4gIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIChjbGljayk9XCJzYXZlKClcIiBpMThuPlNhdmU8L2J1dHRvbj5cbjwvcm9sYXRlY2gtcHJvcGVydHktbWFuYWdlLWNvbnRlbnQ+XG4iXX0=","import { Component, ElementRef, inject, model, ViewChild, } from '@angular/core';\nimport { PropertyManageContentComponent } from '../property-manage-content/property-manage-content.component';\nimport { BaseComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { isPlatformBrowser } from '@angular/common';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { PropertyService } from '@rolatech/angular-services';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@angular/material/form-field\";\nimport * as i3 from \"@angular/material/input\";\nimport * as i4 from \"@angular/material/autocomplete\";\nimport * as i5 from \"@angular/material/select\";\nimport * as i6 from \"@angular/material/button\";\nimport * as i7 from \"@angular/material/icon\";\nexport class PropertyManageLocationComponent extends BaseComponent {\n propertyService = inject(PropertyService);\n predictions = [];\n autocompleteSuggestion;\n titleElement;\n resultsContainerElement;\n inputElement;\n newestRequestId = 0;\n expand = false;\n request = {\n input: '',\n includedPrimaryTypes: ['restaurant'],\n language: 'en-GB',\n region: 'uk',\n };\n map;\n placesService;\n sessionToken;\n autocompleteService;\n location = model({\n flatNumber: '',\n streetNumber: '',\n name: '',\n street: '',\n town: '',\n postCode: '',\n country: '',\n longitude: '',\n latitude: '',\n }, ...(ngDevMode ? [{ debugName: \"location\" }] : []));\n placeAutocompleteElement;\n autocompleteInput;\n ngOnInit() {\n this.id = this.route.parent?.snapshot.paramMap.get('id');\n this.find();\n if (this.isBrowser) {\n // this.autocompleteService = new google.maps.places.AutocompleteService();\n }\n }\n find() {\n this.propertyService.get(this.id).subscribe({\n next: (res) => {\n // this.location = res.data.location || {};\n this.location.update((state) => {\n return { ...(res.data.location || {}) };\n });\n if (res.data.location) {\n this.expand = true;\n }\n },\n });\n }\n async onPlaceSelected(place) {\n await place.fetchFields({\n fields: ['displayName', 'formattedAddress'],\n });\n const placeText = document.createTextNode(`${place.displayName}: ${place.formattedAddress}`);\n this.resultsContainerElement.replaceChildren(placeText);\n this.titleElement.innerText = 'Selected Place:';\n this.inputElement.value = '';\n this.refreshToken(this.request);\n }\n displayFn(option) {\n return option && option.description ? option.description : '';\n }\n onOptionSelected(event) {\n const prediction = event.option.value;\n const placeId = prediction.place_id;\n // Use Places Service to get detailed information (geometry) about the selected place\n this.placesService.getDetails({ placeId: placeId, fields: ['name', 'formatted_address', 'geometry', 'address_components'] }, (place, status) => {\n const components = place.address_components;\n const getComponent = (type) => components?.find((c) => c.types.includes(type))?.long_name || '';\n const streetNumber = getComponent('street_number');\n const route = getComponent('route');\n const town = getComponent('postal_town') || getComponent('locality');\n const postcode = getComponent('postal_code');\n if (streetNumber) {\n this.location.update((state) => {\n state.streetNumber = streetNumber;\n return { ...state };\n });\n }\n if (town) {\n this.location.update((state) => {\n state.town = town;\n return { ...state };\n });\n }\n if (postcode) {\n this.location.update((state) => {\n state.postCode = postcode;\n return { ...state };\n });\n }\n if (status === google.maps.places.PlacesServiceStatus.OK && place?.geometry) {\n const location = place.geometry.location;\n }\n });\n }\n refreshToken(request) {\n // Create a new session token and add it to the request.\n request.sessionToken = new google.maps.places.AutocompleteSessionToken();\n }\n ngAfterViewInit() {\n if (isPlatformBrowser(this.platformId)) {\n google.maps.importLibrary('places').then((res) => {\n const places = res;\n this.autocompleteService = new google.maps.places.AutocompleteService();\n this.placesService = new google.maps.places.PlacesService(document.createElement('div'));\n this.sessionToken = new google.maps.places.AutocompleteSessionToken();\n });\n }\n }\n onInputChange(e) {\n const query = e.target.value;\n if (query.length > 0) {\n const request = {\n input: e.target.value,\n sessionToken: this.sessionToken,\n includedRegionCodes: ['uk'],\n region: 'uk',\n includedPrimaryTypes: ['street_address', 'postal_code'],\n };\n this.autocompleteService.getPlacePredictions(request, (predictions, status) => {\n console.log(predictions);\n if (status === google.maps.places.PlacesServiceStatus.OK && predictions) {\n this.predictions = predictions;\n }\n else {\n this.predictions = [];\n }\n });\n }\n else {\n this.predictions = [];\n }\n }\n save() {\n this.propertyService.updateLocation(this.id, this.location()).subscribe({\n next: (res) => {\n this.snackBarService.open('Update successfully');\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n searchSchools(lat, lng, radius = 2000) {\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageLocationComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyManageLocationComponent, isStandalone: true, selector: \"rolatech-property-manage-location\", inputs: { location: { classPropertyName: \"location\", publicName: \"location\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { location: \"locationChange\" }, viewQueries: [{ propertyName: \"autocompleteInput\", first: true, predicate: [\"autocompleteInput\"], descendants: true }], usesInheritance: true, ngImport: i0, template: \"<rolatech-property-manage-content>\\n <rolatech-toolbar title=\\\"Location\\\" class=\\\"hidden md:block\\\" divider></rolatech-toolbar>\\n <mat-form-field position=\\\"left\\\">\\n <input\\n type=\\\"text\\\"\\n placeholder=\\\"Search for a location\\\"\\n #searchInput\\n (input)=\\\"onInputChange($event)\\\"\\n matInput\\n [matAutocomplete]=\\\"auto\\\"\\n />\\n <mat-autocomplete\\n class=\\\"single-autocomplete\\\"\\n #auto=\\\"matAutocomplete\\\"\\n (optionSelected)=\\\"onOptionSelected($event)\\\"\\n [displayWith]=\\\"displayFn\\\"\\n >\\n @for (prediction of predictions; track $index) {\\n <mat-option [value]=\\\"prediction\\\">\\n {{ prediction.description }}\\n </mat-option>\\n }\\n </mat-autocomplete>\\n </mat-form-field>\\n <div class=\\\"border px-3 rounded-md\\\">\\n <div class=\\\"flex justify-between items-center py-3 cursor-pointer select-none\\\" i18n (click)=\\\"expand = !expand\\\">\\n <span> Enter the address manually </span>\\n <mat-icon>{{ expand ? 'keyboard_arrow_up' : 'keyboard_arrow_down' }}</mat-icon>\\n </div>\\n <div [@contentAnimation]=\\\"expand\\\" [class.hidden]=\\\"!expand\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Flat number </mat-label>\\n <input matInput [(ngModel)]=\\\"location().flatNumber\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Street number </mat-label>\\n <input matInput [(ngModel)]=\\\"location().streetNumber\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Building name </mat-label>\\n <input matInput [(ngModel)]=\\\"location().name\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Street </mat-label>\\n <input matInput [(ngModel)]=\\\"location().street\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Town </mat-label>\\n <input matInput [(ngModel)]=\\\"location().town\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Postcode </mat-label>\\n <input matInput [(ngModel)]=\\\"location().postCode\\\" required />\\n </mat-form-field>\\n </div>\\n </div>\\n <div class=\\\"flex justify-end items-center p-3 gap-3\\\">\\n <button mat-flat-button i18n (click)=\\\"save()\\\">Save</button>\\n </div>\\n</rolatech-property-manage-content>\\n\", styles: [\"mat-form-field{width:100%}\\n\"], dependencies: [{ kind: \"component\", type: PropertyManageContentComponent, selector: \"rolatech-property-manage-content\" }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"ngmodule\", type: FormsModule }, { 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.RequiredValidator, selector: \":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]\", inputs: [\"required\"] }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"component\", type: i2.MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: i2.MatLabel, selector: \"mat-label\" }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"directive\", type: i3.MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\", \"disabledInteractive\"], exportAs: [\"matInput\"] }, { kind: \"ngmodule\", type: TextFieldModule }, { kind: \"ngmodule\", type: MatAutocompleteModule }, { kind: \"component\", type: i4.MatAutocomplete, selector: \"mat-autocomplete\", inputs: [\"aria-label\", \"aria-labelledby\", \"displayWith\", \"autoActiveFirstOption\", \"autoSelectActiveOption\", \"requireSelection\", \"panelWidth\", \"disableRipple\", \"class\", \"hideSingleSelectionIndicator\"], outputs: [\"optionSelected\", \"opened\", \"closed\", \"optionActivated\"], exportAs: [\"matAutocomplete\"] }, { kind: \"component\", type: i5.MatOption, selector: \"mat-option\", inputs: [\"value\", \"id\", \"disabled\"], outputs: [\"onSelectionChange\"], exportAs: [\"matOption\"] }, { kind: \"directive\", type: i4.MatAutocompleteTrigger, selector: \"input[matAutocomplete], textarea[matAutocomplete]\", inputs: [\"matAutocomplete\", \"matAutocompletePosition\", \"matAutocompleteConnectedTo\", \"autocomplete\", \"matAutocompleteDisabled\"], exportAs: [\"matAutocompleteTrigger\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i6.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i7.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }], animations: [\n trigger('contentAnimation', [\n state('hidden', style({\n height: '0',\n opacity: 0,\n })),\n state('visible', style({\n height: '*',\n opacity: 1,\n })),\n transition('hidden <=> visible', animate('300ms ease-in-out')),\n ]),\n ] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageLocationComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-manage-location', imports: [\n PropertyManageContentComponent,\n ToolbarComponent,\n FormsModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n MatInputModule,\n FormsModule,\n TextFieldModule,\n MatAutocompleteModule,\n MatButtonModule,\n MatIconModule,\n ], animations: [\n trigger('contentAnimation', [\n state('hidden', style({\n height: '0',\n opacity: 0,\n })),\n state('visible', style({\n height: '*',\n opacity: 1,\n })),\n transition('hidden <=> visible', animate('300ms ease-in-out')),\n ]),\n ], template: \"<rolatech-property-manage-content>\\n <rolatech-toolbar title=\\\"Location\\\" class=\\\"hidden md:block\\\" divider></rolatech-toolbar>\\n <mat-form-field position=\\\"left\\\">\\n <input\\n type=\\\"text\\\"\\n placeholder=\\\"Search for a location\\\"\\n #searchInput\\n (input)=\\\"onInputChange($event)\\\"\\n matInput\\n [matAutocomplete]=\\\"auto\\\"\\n />\\n <mat-autocomplete\\n class=\\\"single-autocomplete\\\"\\n #auto=\\\"matAutocomplete\\\"\\n (optionSelected)=\\\"onOptionSelected($event)\\\"\\n [displayWith]=\\\"displayFn\\\"\\n >\\n @for (prediction of predictions; track $index) {\\n <mat-option [value]=\\\"prediction\\\">\\n {{ prediction.description }}\\n </mat-option>\\n }\\n </mat-autocomplete>\\n </mat-form-field>\\n <div class=\\\"border px-3 rounded-md\\\">\\n <div class=\\\"flex justify-between items-center py-3 cursor-pointer select-none\\\" i18n (click)=\\\"expand = !expand\\\">\\n <span> Enter the address manually </span>\\n <mat-icon>{{ expand ? 'keyboard_arrow_up' : 'keyboard_arrow_down' }}</mat-icon>\\n </div>\\n <div [@contentAnimation]=\\\"expand\\\" [class.hidden]=\\\"!expand\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Flat number </mat-label>\\n <input matInput [(ngModel)]=\\\"location().flatNumber\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Street number </mat-label>\\n <input matInput [(ngModel)]=\\\"location().streetNumber\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Building name </mat-label>\\n <input matInput [(ngModel)]=\\\"location().name\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Street </mat-label>\\n <input matInput [(ngModel)]=\\\"location().street\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Town </mat-label>\\n <input matInput [(ngModel)]=\\\"location().town\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Postcode </mat-label>\\n <input matInput [(ngModel)]=\\\"location().postCode\\\" required />\\n </mat-form-field>\\n </div>\\n </div>\\n <div class=\\\"flex justify-end items-center p-3 gap-3\\\">\\n <button mat-flat-button i18n (click)=\\\"save()\\\">Save</button>\\n </div>\\n</rolatech-property-manage-content>\\n\", styles: [\"mat-form-field{width:100%}\\n\"] }]\n }], propDecorators: { autocompleteInput: [{\n type: ViewChild,\n args: ['autocompleteInput', { static: false }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbWFuYWdlLWxvY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS1tYW5hZ2UvcHJvcGVydHktbWFuYWdlLWxvY2F0aW9uL3Byb3BlcnR5LW1hbmFnZS1sb2NhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktbWFuYWdlL3Byb3BlcnR5LW1hbmFnZS1sb2NhdGlvbi9wcm9wZXJ0eS1tYW5hZ2UtbG9jYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFJTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDOUcsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9FLE9BQU8sRUFBMEIsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUscUJBQXFCLEVBQWdDLE1BQU0sZ0NBQWdDLENBQUM7QUFDckcsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FB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ZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIG1vZGVsLFxuICBPbkluaXQsXG4gIFBMQVRGT1JNX0lELFxuICBzaWduYWwsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcm9wZXJ0eU1hbmFnZUNvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuLi9wcm9wZXJ0eS1tYW5hZ2UtY29udGVudC9wcm9wZXJ0eS1tYW5hZ2UtY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCwgVG9vbGJhckNvbXBvbmVudCB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQnVpbGRlciwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBHb29nbGVNYXAsIEdvb2dsZU1hcHNNb2R1bGUsIE1hcEFkdmFuY2VkTWFya2VyLCBNYXBJbmZvV2luZG93LCBNYXBNYXJrZXIgfSBmcm9tICdAYW5ndWxhci9nb29nbGUtbWFwcyc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IFRleHRGaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXh0LWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLCBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IFByb3BlcnR5TG9jYXRpb24gfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFByb3BlcnR5U2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLXNlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvcGVydHktbWFuYWdlLWxvY2F0aW9uJyxcbiAgaW1wb3J0czogW1xuICAgIFByb3BlcnR5TWFuYWdlQ29udGVudENvbXBvbmVudCxcbiAgICBUb29sYmFyQ29tcG9uZW50LFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFRleHRGaWVsZE1vZHVsZSxcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1tYW5hZ2UtbG9jYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHJvcGVydHktbWFuYWdlLWxvY2F0aW9uLmNvbXBvbmVudC5zY3NzJyxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ2NvbnRlbnRBbmltYXRpb24nLCBbXG4gICAgICBzdGF0ZShcbiAgICAgICAgJ2hpZGRlbicsXG4gICAgICAgIHN0eWxlKHtcbiAgICAgICAgICBoZWlnaHQ6ICcwJyxcbiAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgICBzdGF0ZShcbiAgICAgICAgJ3Zpc2libGUnLFxuICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgaGVpZ2h0OiAnKicsXG4gICAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgfSksXG4gICAgICApLFxuICAgICAgdHJhbnNpdGlvbignaGlkZGVuIDw9PiB2aXNpYmxlJywgYW5pbWF0ZSgnMzAwbXMgZWFzZS1pbi1vdXQnKSksXG4gICAgXSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5TWFuYWdlTG9jYXRpb25Db21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgcHJvcGVydHlTZXJ2aWNlID0gaW5qZWN0KFByb3BlcnR5U2VydmljZSk7XG4gIHByZWRpY3Rpb25zOiBhbnlbXSA9IFtdO1xuICBhdXRvY29tcGxldGVTdWdnZXN0aW9uOiBhbnk7XG4gIHRpdGxlRWxlbWVudDtcbiAgcmVzdWx0c0NvbnRhaW5lckVsZW1lbnQ7XG4gIGlucHV0RWxlbWVudDtcbiAgbmV3ZXN0UmVxdWVzdElkID0gMDtcbiAgZXhwYW5kID0gZmFsc2U7XG4gIHJlcXVlc3QgPSB7XG4gICAgaW5wdXQ6ICcnLFxuICAgIGluY2x1ZGVkUHJpbWFyeVR5cGVzOiBbJ3Jlc3RhdXJhbnQnXSxcbiAgICBsYW5ndWFnZTogJ2VuLUdCJyxcbiAgICByZWdpb246ICd1aycsXG4gIH07XG4gIG1hcCE6IGdvb2dsZS5tYXBzLk1hcDtcbiAgcGxhY2VzU2VydmljZSE6IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZXNTZXJ2aWNlO1xuICBzZXNzaW9uVG9rZW4hOiBnb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlU2Vzc2lvblRva2VuO1xuICBhdXRvY29tcGxldGVTZXJ2aWNlITogZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZVNlcnZpY2U7XG4gIGxvY2F0aW9uID0gbW9kZWw8UHJvcGVydHlMb2NhdGlvbj4oe1xuICAgIGZsYXROdW1iZXI6ICcnLFxuICAgIHN0cmVldE51bWJlcjogJycsXG4gICAgbmFtZTogJycsXG4gICAgc3RyZWV0OiAnJyxcbiAgICB0b3duOiAnJyxcbiAgICBwb3N0Q29kZTogJycsXG4gICAgY291bnRyeTogJycsXG4gICAgbG9uZ2l0dWRlOiAnJyxcbiAgICBsYXRpdHVkZTogJycsXG4gIH0pO1xuICBwbGFjZUF1dG9jb21wbGV0ZUVsZW1lbnQ6IGFueTtcbiAgQFZpZXdDaGlsZCgnYXV0b2NvbXBsZXRlSW5wdXQnLCB7IHN0YXRpYzogZmFsc2UgfSkgYXV0b2NvbXBsZXRlSW5wdXQhOiBFbGVtZW50UmVmO1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlkID0gdGhpcy5yb3V0ZS5wYXJlbnQ/LnNuYXBzaG90LnBhcmFtTWFwLmdldCgnaWQnKSBhcyBzdHJpbmc7XG4gICAgdGhpcy5maW5kKCk7XG4gICAgaWYgKHRoaXMuaXNCcm93c2VyKSB7XG4gICAgICAvLyB0aGlzLmF1dG9jb21wbGV0ZVNlcnZpY2UgPSBuZXcgZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZVNlcnZpY2UoKTtcbiAgICB9XG4gIH1cbiAgZmluZCgpIHtcbiAgICB0aGlzLnByb3BlcnR5U2VydmljZS5nZXQodGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICAvLyB0aGlzLmxvY2F0aW9uID0gcmVzLmRhdGEubG9jYXRpb24gfHwge307XG4gICAgICAgIHRoaXMubG9jYXRpb24udXBkYXRlKChzdGF0ZSkgPT4ge1xuICAgICAgICAgIHJldHVybiB7IC4uLihyZXMuZGF0YS5sb2NhdGlvbiB8fCB7fSkgfTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChyZXMuZGF0YS5sb2NhdGlvbikge1xuICAgICAgICAgIHRoaXMuZXhwYW5kID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIG9uUGxhY2VTZWxlY3RlZChwbGFjZSkge1xuICAgIGF3YWl0IHBsYWNlLmZldGNoRmllbGRzKHtcbiAgICAgIGZpZWxkczogWydkaXNwbGF5TmFtZScsICdmb3JtYXR0ZWRBZGRyZXNzJ10sXG4gICAgfSk7XG4gICAgY29uc3QgcGxhY2VUZXh0ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoYCR7cGxhY2UuZGlzcGxheU5hbWV9OiAke3BsYWNlLmZvcm1hdHRlZEFkZHJlc3N9YCk7XG4gICAgdGhpcy5yZXN1bHRzQ29udGFpbmVyRWxlbWVudC5yZXBsYWNlQ2hpbGRyZW4ocGxhY2VUZXh0KTtcbiAgICB0aGlzLnRpdGxlRWxlbWVudC5pbm5lclRleHQgPSAnU2VsZWN0ZWQgUGxhY2U6JztcbiAgICB0aGlzLmlucHV0RWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIHRoaXMucmVmcmVzaFRva2VuKHRoaXMucmVxdWVzdCk7XG4gIH1cbiAgZGlzcGxheUZuKG9wdGlvbjogYW55KTogc3RyaW5nIHtcbiAgICByZXR1cm4gb3B0aW9uICYmIG9wdGlvbi5kZXNjcmlwdGlvbiA/IG9wdGlvbi5kZXNjcmlwdGlvbiA6ICcnO1xuICB9XG4gIG9uT3B0aW9uU2VsZWN0ZWQoZXZlbnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBwcmVkaWN0aW9uOiBnb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlUHJlZGljdGlvbiA9IGV2ZW50Lm9wdGlvbi52YWx1ZTtcbiAgICBjb25zdCBwbGFjZUlkID0gcHJlZGljdGlvbi5wbGFjZV9pZDtcbiAgICAvLyBVc2UgUGxhY2VzIFNlcnZpY2UgdG8gZ2V0IGRldGFpbGVkIGluZm9ybWF0aW9uIChnZW9tZXRyeSkgYWJvdXQgdGhlIHNlbGVjdGVkIHBsYWNlXG4gICAgdGhpcy5wbGFjZXNTZXJ2aWNlLmdldERldGFpbHMoXG4gICAgICB7IHBsYWNlSWQ6IHBsYWNlSWQsIGZpZWxkczogWyduYW1lJywgJ2Zvcm1hdHRlZF9hZGRyZXNzJywgJ2dlb21ldHJ5JywgJ2FkZHJlc3NfY29tcG9uZW50cyddIH0sXG4gICAgICAocGxhY2U6IGFueSwgc3RhdHVzOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50cyA9IHBsYWNlLmFkZHJlc3NfY29tcG9uZW50cztcblxuICAgICAgICBjb25zdCBnZXRDb21wb25lbnQgPSAodHlwZTogc3RyaW5nKSA9PiBjb21wb25lbnRzPy5maW5kKChjOiBhbnkpID0+IGMudHlwZXMuaW5jbHVkZXModHlwZSkpPy5sb25nX25hbWUgfHwgJyc7XG5cbiAgICAgICAgY29uc3Qgc3RyZWV0TnVtYmVyID0gZ2V0Q29tcG9uZW50KCdzdHJlZXRfbnVtYmVyJyk7XG4gICAgICAgIGNvbnN0IHJvdXRlID0gZ2V0Q29tcG9uZW50KCdyb3V0ZScpO1xuICAgICAgICBjb25zdCB0b3duID0gZ2V0Q29tcG9uZW50KCdwb3N0YWxfdG93bicpIHx8IGdldENvbXBvbmVudCgnbG9jYWxpdHknKTtcbiAgICAgICAgY29uc3QgcG9zdGNvZGUgPSBnZXRDb21wb25lbnQoJ3Bvc3RhbF9jb2RlJyk7XG5cbiAgICAgICAgaWYgKHN0cmVldE51bWJlcikge1xuICAgICAgICAgIHRoaXMubG9jYXRpb24udXBkYXRlKChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgc3RhdGUuc3RyZWV0TnVtYmVyID0gc3RyZWV0TnVtYmVyO1xuICAgICAgICAgICAgcmV0dXJuIHsgLi4uc3RhdGUgfTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG93bikge1xuICAgICAgICAgIHRoaXMubG9jYXRpb24udXBkYXRlKChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgc3RhdGUudG93biA9IHRvd247XG4gICAgICAgICAgICByZXR1cm4geyAuLi5zdGF0ZSB9O1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwb3N0Y29kZSkge1xuICAgICAgICAgIHRoaXMubG9jYXRpb24udXBkYXRlKChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgc3RhdGUucG9zdENvZGUgPSBwb3N0Y29kZTtcbiAgICAgICAgICAgIHJldHVybiB7IC4uLnN0YXRlIH07XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3RhdHVzID09PSBnb29nbGUubWFwcy5wbGFjZXMuUGxhY2VzU2VydmljZVN0YXR1cy5PSyAmJiBwbGFjZT8uZ2VvbWV0cnkpIHtcbiAgICAgICAgICBjb25zdCBsb2NhdGlvbiA9IHBsYWNlLmdlb21ldHJ5LmxvY2F0aW9uO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICByZWZyZXNoVG9rZW4ocmVxdWVzdCkge1xuICAgIC8vIENyZWF0ZSBhIG5ldyBzZXNzaW9uIHRva2VuIGFuZCBhZGQgaXQgdG8gdGhlIHJlcXVlc3QuXG4gICAgcmVxdWVzdC5zZXNzaW9uVG9rZW4gPSBuZXcgZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZVNlc3Npb25Ub2tlbigpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICBnb29nbGUubWFwcy5pbXBvcnRMaWJyYXJ5KCdwbGFjZXMnKS50aGVuKChyZXM6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBwbGFjZXMgPSByZXMgYXMgZ29vZ2xlLm1hcHMuUGxhY2VzTGlicmFyeTtcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGVTZXJ2aWNlID0gbmV3IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGVTZXJ2aWNlKCk7XG4gICAgICAgIHRoaXMucGxhY2VzU2VydmljZSA9IG5ldyBnb29nbGUubWFwcy5wbGFjZXMuUGxhY2VzU2VydmljZShkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7XG4gICAgICAgIHRoaXMuc2Vzc2lvblRva2VuID0gbmV3IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGVTZXNzaW9uVG9rZW4oKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBvbklucHV0Q2hhbmdlKGUpIHtcbiAgICBjb25zdCBxdWVyeSA9IGUudGFyZ2V0LnZhbHVlO1xuICAgIGlmIChxdWVyeS5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCByZXF1ZXN0ID0ge1xuICAgICAgICBpbnB1dDogZS50YXJnZXQudmFsdWUsXG4gICAgICAgIHNlc3Npb25Ub2tlbjogdGhpcy5zZXNzaW9uVG9rZW4sXG4gICAgICAgIGluY2x1ZGVkUmVnaW9uQ29kZXM6IFsndWsnXSxcbiAgICAgICAgcmVnaW9uOiAndWsnLFxuICAgICAgICBpbmNsdWRlZFByaW1hcnlUeXBlczogWydzdHJlZXRfYWRkcmVzcycsICdwb3N0YWxfY29kZSddLFxuICAgICAgfTtcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlU2VydmljZS5nZXRQbGFjZVByZWRpY3Rpb25zKHJlcXVlc3QsIChwcmVkaWN0aW9ucywgc3RhdHVzKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKHByZWRpY3Rpb25zKTtcbiAgICAgICAgaWYgKHN0YXR1cyA9PT0gZ29vZ2xlLm1hcHMucGxhY2VzLlBsYWNlc1NlcnZpY2VTdGF0dXMuT0sgJiYgcHJlZGljdGlvbnMpIHtcbiAgICAgICAgICB0aGlzLnByZWRpY3Rpb25zID0gcHJlZGljdGlvbnM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5wcmVkaWN0aW9ucyA9IFtdO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcmVkaWN0aW9ucyA9IFtdO1xuICAgIH1cbiAgfVxuICBzYXZlKCkge1xuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLnVwZGF0ZUxvY2F0aW9uKHRoaXMuaWQsIHRoaXMubG9jYXRpb24oKSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbignVXBkYXRlIHN1Y2Nlc3NmdWxseScpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbihlcnJvci5tZXNzYWdlKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgc2VhcmNoU2Nob29scyhsYXQ6IG51bWJlciwgbG5nOiBudW1iZXIsIHJhZGl1cyA9IDIwMDApIHtcblxuICB9XG59XG4iLCI8cm9sYXRlY2gtcHJvcGVydHktbWFuYWdlLWNvbnRlbnQ+XG4gIDxyb2xhdGVjaC10b29sYmFyIHRpdGxlPVwiTG9jYXRpb25cIiBjbGFzcz1cImhpZGRlbiBtZDpibG9ja1wiIGRpdmlkZXI+PC9yb2xhdGVjaC10b29sYmFyPlxuICA8bWF0LWZvcm0tZmllbGQgcG9zaXRpb249XCJsZWZ0XCI+XG4gICAgPGlucHV0XG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaCBmb3IgYSBsb2NhdGlvblwiXG4gICAgICAjc2VhcmNoSW5wdXRcbiAgICAgIChpbnB1dCk9XCJvbklucHV0Q2hhbmdlKCRldmVudClcIlxuICAgICAgbWF0SW5wdXRcbiAgICAgIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b1wiXG4gICAgLz5cbiAgICA8bWF0LWF1dG9jb21wbGV0ZVxuICAgICAgY2xhc3M9XCJzaW5nbGUtYXV0b2NvbXBsZXRlXCJcbiAgICAgICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCJcbiAgICAgIChvcHRpb25TZWxlY3RlZCk9XCJvbk9wdGlvblNlbGVjdGVkKCRldmVudClcIlxuICAgICAgW2Rpc3BsYXlXaXRoXT1cImRpc3BsYXlGblwiXG4gICAgPlxuICAgICAgQGZvciAocHJlZGljdGlvbiBvZiBwcmVkaWN0aW9uczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJwcmVkaWN0aW9uXCI+XG4gICAgICAgICAge3sgcHJlZGljdGlvbi5kZXNjcmlwdGlvbiB9fVxuICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICB9XG4gICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxuICA8L21hdC1mb3JtLWZpZWxkPlxuICA8ZGl2IGNsYXNzPVwiYm9yZGVyIHB4LTMgcm91bmRlZC1tZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgcHktMyBjdXJzb3ItcG9pbnRlciBzZWxlY3Qtbm9uZVwiIGkxOG4gKGNsaWNrKT1cImV4cGFuZCA9ICFleHBhbmRcIj5cbiAgICAgIDxzcGFuPiBFbnRlciB0aGUgYWRkcmVzcyBtYW51YWxseSA8L3NwYW4+XG4gICAgICA8bWF0LWljb24+e3sgZXhwYW5kID8gJ2tleWJvYXJkX2Fycm93X3VwJyA6ICdrZXlib2FyZF9hcnJvd19kb3duJyB9fTwvbWF0LWljb24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBbQGNvbnRlbnRBbmltYXRpb25dPVwiZXhwYW5kXCIgW2NsYXNzLmhpZGRlbl09XCIhZXhwYW5kXCI+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgPG1hdC1sYWJlbCBpMThuPiBGbGF0IG51bWJlciA8L21hdC1sYWJlbD5cbiAgICAgICAgPGlucHV0IG1hdElucHV0IFsobmdNb2RlbCldPVwibG9jYXRpb24oKS5mbGF0TnVtYmVyXCIgcmVxdWlyZWQgLz5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgPG1hdC1sYWJlbCBpMThuPiBTdHJlZXQgbnVtYmVyIDwvbWF0LWxhYmVsPlxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgWyhuZ01vZGVsKV09XCJsb2NhdGlvbigpLnN0cmVldE51bWJlclwiIHJlcXVpcmVkIC8+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgIDxtYXQtbGFiZWwgaTE4bj4gQnVpbGRpbmcgbmFtZSA8L21hdC1sYWJlbD5cbiAgICAgICAgPGlucHV0IG1hdElucHV0IFsobmdNb2RlbCldPVwibG9jYXRpb24oKS5uYW1lXCIgcmVxdWlyZWQgLz5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgPG1hdC1sYWJlbCBpMThuPiBTdHJlZXQgPC9tYXQtbGFiZWw+XG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCBbKG5nTW9kZWwpXT1cImxvY2F0aW9uKCkuc3RyZWV0XCIgcmVxdWlyZWQgLz5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgPG1hdC1sYWJlbCBpMThuPiBUb3duIDwvbWF0LWxhYmVsPlxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgWyhuZ01vZGVsKV09XCJsb2NhdGlvbigpLnRvd25cIiByZXF1aXJlZCAvPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICA8bWF0LWxhYmVsIGkxOG4+IFBvc3Rjb2RlIDwvbWF0LWxhYmVsPlxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgWyhuZ01vZGVsKV09XCJsb2NhdGlvbigpLnBvc3RDb2RlXCIgcmVxdWlyZWQgLz5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWVuZCBpdGVtcy1jZW50ZXIgcC0zIGdhcC0zXCI+XG4gICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gaTE4biAoY2xpY2spPVwic2F2ZSgpXCI+U2F2ZTwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvcm9sYXRlY2gtcHJvcGVydHktbWFuYWdlLWNvbnRlbnQ+XG4iXX0=","import { Component, output } from '@angular/core';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/form-field\";\nimport * as i2 from \"@angular/material/input\";\nimport * as i3 from \"@angular/forms\";\nexport class PropertyVideoYoutubeAddComponent {\n url = '';\n output = output();\n getYouTubeVideoId(url) {\n const regex = /(?:youtube\\.com\\/(?:watch\\?v=|embed\\/|v\\/|shorts\\/)|youtu\\.be\\/)([a-zA-Z0-9_-]{11})/;\n const match = url.match(regex);\n return match ? match[1] : null;\n }\n ngDoCheck() {\n this.output.emit(this.url);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyVideoYoutubeAddComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.2.0\", type: PropertyVideoYoutubeAddComponent, isStandalone: true, selector: \"rolatech-property-video-youtube-add\", outputs: { output: \"output\" }, ngImport: i0, template: \"<mat-form-field appearance=\\\"fill\\\">\\n <mat-label>Youtube Video URL</mat-label>\\n <input matInput placeholder=\\\"Youtube Video URL\\\" type=\\\"text\\\" [(ngModel)]=\\\"url\\\" i18n />\\n</mat-form-field>\\n\", styles: [\"mat-form-field{width:100%}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"component\", type: i1.MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: i1.MatLabel, selector: \"mat-label\" }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"directive\", type: i2.MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\", \"disabledInteractive\"], exportAs: [\"matInput\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i3.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: i3.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i3.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyVideoYoutubeAddComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-video-youtube-add', imports: [CommonModule, MatFormFieldModule, MatInputModule, FormsModule], template: \"<mat-form-field appearance=\\\"fill\\\">\\n <mat-label>Youtube Video URL</mat-label>\\n <input matInput placeholder=\\\"Youtube Video URL\\\" type=\\\"text\\\" [(ngModel)]=\\\"url\\\" i18n />\\n</mat-form-field>\\n\", styles: [\"mat-form-field{width:100%}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktdmlkZW8teW91dHViZS1hZGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktdmlkZW8teW91dHViZS1hZGQvcHJvcGVydHktdmlkZW8teW91dHViZS1hZGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktdmlkZW8teW91dHViZS1hZGQvcHJvcGVydHktdmlkZW8teW91dHViZS1hZGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBbUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQVE3QyxNQUFNLE9BQU8sZ0NBQWdDO0lBQzNDLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDVCxNQUFNLEdBQUcsTUFBTSxFQUFPLENBQUM7SUFFdkIsaUJBQWlCLENBQUMsR0FBRztRQUNuQixNQUFNLEtBQUssR0FBRyxxRkFBcUYsQ0FBQztRQUNwRyxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9CLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNqQyxDQUFDO0lBQ0QsU0FBUztRQUNQLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3QixDQUFDO3VHQVhVLGdDQUFnQzsyRkFBaEMsZ0NBQWdDLDhIQ1o3QyxzTUFJQSxxRkRJWSxZQUFZLDhCQUFFLGtCQUFrQiwwU0FBRSxjQUFjLGlZQUFFLFdBQVc7OzJGQUk1RCxnQ0FBZ0M7a0JBTjVDLFNBQVM7K0JBQ0UscUNBQXFDLFdBQ3RDLENBQUMsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIERvQ2hlY2ssIE9uSW5pdCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1wcm9wZXJ0eS12aWRlby15b3V0dWJlLWFkZCcsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdEZvcm1GaWVsZE1vZHVsZSwgTWF0SW5wdXRNb2R1bGUsIEZvcm1zTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LXZpZGVvLXlvdXR1YmUtYWRkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb3BlcnR5LXZpZGVvLXlvdXR1YmUtYWRkLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlWaWRlb1lvdXR1YmVBZGRDb21wb25lbnQgaW1wbGVtZW50cyBEb0NoZWNrIHtcbiAgdXJsID0gJyc7XG4gIG91dHB1dCA9IG91dHB1dDxhbnk+KCk7XG5cbiAgZ2V0WW91VHViZVZpZGVvSWQodXJsKSB7XG4gICAgY29uc3QgcmVnZXggPSAvKD86eW91dHViZVxcLmNvbVxcLyg/OndhdGNoXFw/dj18ZW1iZWRcXC98dlxcL3xzaG9ydHNcXC8pfHlvdXR1XFwuYmVcXC8pKFthLXpBLVowLTlfLV17MTF9KS87XG4gICAgY29uc3QgbWF0Y2ggPSB1cmwubWF0Y2gocmVnZXgpO1xuICAgIHJldHVybiBtYXRjaCA/IG1hdGNoWzFdIDogbnVsbDtcbiAgfVxuICBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgdGhpcy5vdXRwdXQuZW1pdCh0aGlzLnVybCk7XG4gIH1cbn1cbiIsIjxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICA8bWF0LWxhYmVsPllvdXR1YmUgVmlkZW8gVVJMPC9tYXQtbGFiZWw+XG4gIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIllvdXR1YmUgVmlkZW8gVVJMXCIgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInVybFwiIGkxOG4gLz5cbjwvbWF0LWZvcm0tZmllbGQ+XG4iXX0=","import { inject, Pipe } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport * as i0 from \"@angular/core\";\nexport class SafeUrlPipe {\n sanitizer = inject(DomSanitizer);\n transform(url) {\n if (!url) {\n return null;\n }\n // If you want to allow in [href], [src], [poster], [srcdoc], etc.\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: SafeUrlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\n static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.2.0\", ngImport: i0, type: SafeUrlPipe, isStandalone: true, name: \"safeUrl\" });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: SafeUrlPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'safeUrl',\n standalone: true\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZS11cmwucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS1tYW5hZ2UvcHJvcGVydHktbWFuYWdlLXZpZGVvL3NhZmUtdXJsLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQTRCLE1BQU0sMkJBQTJCLENBQUM7O0FBTW5GLE1BQU0sT0FBTyxXQUFXO0lBQ3RCLFNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUE7SUFFaEMsU0FBUyxDQUFDLEdBQThCO1FBQ3RDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNULE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELGtFQUFrRTtRQUNsRSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsOEJBQThCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUQsQ0FBQzt1R0FUVSxXQUFXO3FHQUFYLFdBQVc7OzJGQUFYLFdBQVc7a0JBSnZCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFNBQVM7b0JBQ2YsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVSZXNvdXJjZVVybCwgU2FmZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdzYWZlVXJsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBTYWZlVXJsUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBzYW5pdGl6ZXIgPSBpbmplY3QoRG9tU2FuaXRpemVyKVxuXG4gIHRyYW5zZm9ybSh1cmw6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBTYWZlVXJsIHwgU2FmZVJlc291cmNlVXJsIHwgbnVsbCB7XG4gICAgaWYgKCF1cmwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICAvLyBJZiB5b3Ugd2FudCB0byBhbGxvdyBpbiBbaHJlZl0sIFtzcmNdLCBbcG9zdGVyXSwgW3NyY2RvY10sIGV0Yy5cbiAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKHVybCk7XG4gIH1cbn1cbiJdfQ==","import { Component, ElementRef, inject, input, model, output, PLATFORM_ID, viewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\nimport { AngularCommonModule, DurationPipe } from '@rolatech/angular-common';\nimport { AngularComponentsModule, InputComponent } from '@rolatech/angular-components';\nimport { DialogService } from '@rolatech/angular-services';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/icon\";\nimport * as i2 from \"@angular/material/button\";\nimport * as i3 from \"@angular/material/progress-bar\";\nexport class PropertyVideoItem {\n platformId = inject(PLATFORM_ID);\n el = inject(ElementRef);\n dialogService = inject(DialogService);\n myVideo = viewChild('video', ...(ngDevMode ? [{ debugName: \"myVideo\" }] : []));\n progress = input(0, ...(ngDevMode ? [{ debugName: \"progress\" }] : []));\n video = input.required(...(ngDevMode ? [{ debugName: \"video\" }] : []));\n actions = input(true, ...(ngDevMode ? [{ debugName: \"actions\" }] : []));\n hasUnsaved = input(false, ...(ngDevMode ? [{ debugName: \"hasUnsaved\" }] : []));\n editId = model(...(ngDevMode ? [undefined, { debugName: \"editId\" }] : []));\n save = output();\n cancel = output();\n delete = output();\n edit = output();\n upload = output();\n editTitle = false;\n editing = false;\n onSave(video) {\n this.editTitle = false;\n this.editId.set(null);\n this.save.emit(video);\n }\n onCancel(video) {\n this.editTitle = false;\n this.editId.set(null);\n this.cancel.emit(video);\n }\n onDelete(video) {\n this.delete.emit(video);\n }\n onEdit(video) {\n this.editId.set(video.id);\n this.editTitle = true;\n this.edit.emit(video);\n }\n onMediaEdit(video) {\n this.editId.set(video.id);\n this.editing = true;\n }\n onUpload(id, data) {\n this.video().uploading = true;\n this.upload.emit({ id, data });\n }\n onLoadedMetadata(event) {\n if (this.video().duration) {\n return;\n }\n const videoElement = event.target;\n this.video().duration = videoElement.duration;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyVideoItem, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyVideoItem, isStandalone: true, selector: \"rolatech-property-video-item\", inputs: { progress: { classPropertyName: \"progress\", publicName: \"progress\", isSignal: true, isRequired: false, transformFunction: null }, video: { classPropertyName: \"video\", publicName: \"video\", isSignal: true, isRequired: true, transformFunction: null }, actions: { classPropertyName: \"actions\", publicName: \"actions\", isSignal: true, isRequired: false, transformFunction: null }, hasUnsaved: { classPropertyName: \"hasUnsaved\", publicName: \"hasUnsaved\", isSignal: true, isRequired: false, transformFunction: null }, editId: { classPropertyName: \"editId\", publicName: \"editId\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { editId: \"editIdChange\", save: \"save\", cancel: \"cancel\", delete: \"delete\", edit: \"edit\", upload: \"upload\" }, viewQueries: [{ propertyName: \"myVideo\", first: true, predicate: [\"video\"], descendants: true, isSignal: true }], ngImport: i0, template: \"<div class=\\\"flex flex-col grow p-2\\\">\\n @if (!editTitle) {\\n <div class=\\\"w-full flex gap-3 p-3 items-center\\\">\\n <span>{{ video().title }}</span>\\n <button mat-icon-button (click)=\\\"onEdit(video()); $event.stopPropagation()\\\" class=\\\"max-w-8 max-h-8 !p-1\\\">\\n <mat-icon>edit</mat-icon>\\n </button>\\n <button mat-icon-button (click)=\\\"onDelete(video()); $event.stopPropagation()\\\" class=\\\"max-w-8 max-h-8 !p-1\\\">\\n <mat-icon>delete</mat-icon>\\n </button>\\n </div>\\n } @else {\\n <div class=\\\"flex flex-col justify-between items-center\\\">\\n <rolatech-input [(title)]=\\\"video().title\\\" placeholder=\\\"Title\\\"></rolatech-input>\\n <div class=\\\"w-full flex flex-row justify-end p-3 gap-3\\\">\\n <button mat-button class=\\\"max-h-8\\\" (click)=\\\"onCancel(video())\\\" i18n>Cancel</button>\\n <button mat-flat-button class=\\\"max-h-8\\\" (click)=\\\"onSave(video())\\\" i18n>Save</button>\\n </div>\\n </div>\\n }\\n\\n <div>\\n @if (video().url) {\\n <div class=\\\"flex flex-col p-2 gap-3\\\">\\n <div class=\\\"bg-black h-fit\\\">\\n <video\\n controls\\n #videoContainer\\n [src]=\\\"video().url\\\"\\n class=\\\"w-full aspect-video\\\"\\n (loadedmetadata)=\\\"onLoadedMetadata($event)\\\"\\n [poster]=\\\"video().thumbnail\\\"\\n >\\n <!-- <source [src]=\\\"video().url\\\" type=\\\"video/mp4\\\" /> -->\\n </video>\\n </div>\\n <div class=\\\"flex flex-col justify-between w-full\\\">\\n <div class=\\\"flex justify-between items-center w-full\\\">\\n @if (video().uploading) {\\n <div>\\n <span> {{ video().progress }}%</span>\\n </div>\\n }\\n </div>\\n <div class=\\\"flex justify-between items-center\\\">\\n <div>\\n <span>{{ video().duration | duration }}</span>\\n </div>\\n </div>\\n </div>\\n </div>\\n @if (video().uploading) {\\n <div class=\\\"p-2\\\">\\n <mat-progress-bar mode=\\\"determinate\\\" [value]=\\\"video().progress\\\"> </mat-progress-bar>\\n </div>\\n } } @else {\\n <div class=\\\"px-3\\\">\\n <input\\n class=\\\"ud-sr-only\\\"\\n type=\\\"file\\\"\\n accept=\\\".avi,.mpg,.mpeg,.flv,.mov,.m2v,.m4v,.mp4,.rm,.ram,.vob,.ogv,.webm,.wmv\\\"\\n (change)=\\\"onUpload(video().id, $event)\\\"\\n #fileInput\\n />\\n <div class=\\\"flex justify-between items-center\\\">\\n <div i18n>No videos</div>\\n <button mat-flat-button class=\\\"max-h-8\\\" (click)=\\\"fileInput.click()\\\" i18n>Upload</button>\\n </div>\\n </div>\\n }\\n </div>\\n @if (!hasUnsaved) {\\n <ng-content></ng-content>\\n }\\n</div>\\n\", styles: [\".ud-sr-only{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}\\n\"], dependencies: [{ kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i1.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"ngmodule\", type: AngularCommonModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i2.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: i2.MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatDividerModule }, { kind: \"ngmodule\", type: AngularComponentsModule }, { kind: \"component\", type: i3.MatProgressBar, selector: \"mat-progress-bar\", inputs: [\"color\", \"value\", \"bufferValue\", \"mode\"], outputs: [\"animationEnd\"], exportAs: [\"matProgressBar\"] }, { kind: \"component\", type: InputComponent, selector: \"rolatech-input\", inputs: [\"title\", \"placeholder\"], outputs: [\"titleChange\"] }, { kind: \"pipe\", type: DurationPipe, name: \"duration\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyVideoItem, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-video-item', imports: [\n MatIconModule,\n AngularCommonModule,\n FormsModule,\n MatButtonModule,\n MatDividerModule,\n AngularComponentsModule,\n DurationPipe,\n InputComponent\n ], template: \"<div class=\\\"flex flex-col grow p-2\\\">\\n @if (!editTitle) {\\n <div class=\\\"w-full flex gap-3 p-3 items-center\\\">\\n <span>{{ video().title }}</span>\\n <button mat-icon-button (click)=\\\"onEdit(video()); $event.stopPropagation()\\\" class=\\\"max-w-8 max-h-8 !p-1\\\">\\n <mat-icon>edit</mat-icon>\\n </button>\\n <button mat-icon-button (click)=\\\"onDelete(video()); $event.stopPropagation()\\\" class=\\\"max-w-8 max-h-8 !p-1\\\">\\n <mat-icon>delete</mat-icon>\\n </button>\\n </div>\\n } @else {\\n <div class=\\\"flex flex-col justify-between items-center\\\">\\n <rolatech-input [(title)]=\\\"video().title\\\" placeholder=\\\"Title\\\"></rolatech-input>\\n <div class=\\\"w-full flex flex-row justify-end p-3 gap-3\\\">\\n <button mat-button class=\\\"max-h-8\\\" (click)=\\\"onCancel(video())\\\" i18n>Cancel</button>\\n <button mat-flat-button class=\\\"max-h-8\\\" (click)=\\\"onSave(video())\\\" i18n>Save</button>\\n </div>\\n </div>\\n }\\n\\n <div>\\n @if (video().url) {\\n <div class=\\\"flex flex-col p-2 gap-3\\\">\\n <div class=\\\"bg-black h-fit\\\">\\n <video\\n controls\\n #videoContainer\\n [src]=\\\"video().url\\\"\\n class=\\\"w-full aspect-video\\\"\\n (loadedmetadata)=\\\"onLoadedMetadata($event)\\\"\\n [poster]=\\\"video().thumbnail\\\"\\n >\\n <!-- <source [src]=\\\"video().url\\\" type=\\\"video/mp4\\\" /> -->\\n </video>\\n </div>\\n <div class=\\\"flex flex-col justify-between w-full\\\">\\n <div class=\\\"flex justify-between items-center w-full\\\">\\n @if (video().uploading) {\\n <div>\\n <span> {{ video().progress }}%</span>\\n </div>\\n }\\n </div>\\n <div class=\\\"flex justify-between items-center\\\">\\n <div>\\n <span>{{ video().duration | duration }}</span>\\n </div>\\n </div>\\n </div>\\n </div>\\n @if (video().uploading) {\\n <div class=\\\"p-2\\\">\\n <mat-progress-bar mode=\\\"determinate\\\" [value]=\\\"video().progress\\\"> </mat-progress-bar>\\n </div>\\n } } @else {\\n <div class=\\\"px-3\\\">\\n <input\\n class=\\\"ud-sr-only\\\"\\n type=\\\"file\\\"\\n accept=\\\".avi,.mpg,.mpeg,.flv,.mov,.m2v,.m4v,.mp4,.rm,.ram,.vob,.ogv,.webm,.wmv\\\"\\n (change)=\\\"onUpload(video().id, $event)\\\"\\n #fileInput\\n />\\n <div class=\\\"flex justify-between items-center\\\">\\n <div i18n>No videos</div>\\n <button mat-flat-button class=\\\"max-h-8\\\" (click)=\\\"fileInput.click()\\\" i18n>Upload</button>\\n </div>\\n </div>\\n }\\n </div>\\n @if (!hasUnsaved) {\\n <ng-content></ng-content>\\n }\\n</div>\\n\", styles: [\".ud-sr-only{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktdmlkZW8taXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9jb21wb25lbnRzL3Byb3BlcnR5LXZpZGVvLWl0ZW0vcHJvcGVydHktdmlkZW8taXRlbS50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9jb21wb25lbnRzL3Byb3BlcnR5LXZpZGVvLWl0ZW0vcHJvcGVydHktdmlkZW8taXRlbS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7OztBQWlCM0QsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixVQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2pDLEVBQUUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEIsYUFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENB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QWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQix1QkFBdUI7d0JBQ3ZCLFlBQVk7d0JBQ1osY0FBYztxQkFDZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgaW5qZWN0LCBpbnB1dCwgbW9kZWwsIG91dHB1dCwgUExBVEZPUk1fSUQsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0RGl2aWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpdmlkZXInO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgQW5ndWxhckNvbW1vbk1vZHVsZSwgRHVyYXRpb25QaXBlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlLCBJbnB1dENvbXBvbmVudCB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLXNlcnZpY2VzJztcbmltcG9ydCB7IFByb3BlcnR5VmlkZW8gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb3BlcnR5LXZpZGVvLWl0ZW0nLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBBbmd1bGFyQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXREaXZpZGVyTW9kdWxlLFxuICAgIEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlLFxuICAgIER1cmF0aW9uUGlwZSxcbiAgICBJbnB1dENvbXBvbmVudFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydHktdmlkZW8taXRlbS5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb3BlcnR5LXZpZGVvLWl0ZW0uc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5VmlkZW9JdGVtIHtcbiAgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG4gIGVsID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBkaWFsb2dTZXJ2aWNlID0gaW5qZWN0KERpYWxvZ1NlcnZpY2UpO1xuICBteVZpZGVvID0gdmlld0NoaWxkKCd2aWRlbycpO1xuICBwcm9ncmVzcyA9IGlucHV0PG51bWJlcj4oMCk7XG4gIHZpZGVvID0gaW5wdXQucmVxdWlyZWQ8UHJvcGVydHlWaWRlbz4oKTtcblxuICBhY3Rpb25zID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG4gIGhhc1Vuc2F2ZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIGVkaXRJZCA9IG1vZGVsPGFueT4oKTtcblxuICBzYXZlID0gb3V0cHV0PFByb3BlcnR5VmlkZW8+KCk7XG4gIGNhbmNlbCA9IG91dHB1dDxQcm9wZXJ0eVZpZGVvPigpO1xuICBkZWxldGUgPSBvdXRwdXQ8UHJvcGVydHlWaWRlbz4oKTtcbiAgZWRpdCA9IG91dHB1dDxQcm9wZXJ0eVZpZGVvPigpO1xuICB1cGxvYWQgPSBvdXRwdXQ8eyBpZDogYW55LCBkYXRhOiBGb3JtRGF0YSB8IG51bGwgfT4oKTtcbiAgZWRpdFRpdGxlID0gZmFsc2U7XG4gIGVkaXRpbmcgPSBmYWxzZTtcblxuICBvblNhdmUodmlkZW86IFByb3BlcnR5VmlkZW8pIHtcbiAgICB0aGlzLmVkaXRUaXRsZSA9IGZhbHNlO1xuICAgIHRoaXMuZWRpdElkLnNldChudWxsKTtcbiAgICB0aGlzLnNhdmUuZW1pdCh2aWRlbyk7XG4gIH1cbiAgb25DYW5jZWwodmlkZW86IFByb3BlcnR5VmlkZW8pIHtcbiAgICB0aGlzLmVkaXRUaXRsZSA9IGZhbHNlO1xuICAgIHRoaXMuZWRpdElkLnNldChudWxsKTtcbiAgICB0aGlzLmNhbmNlbC5lbWl0KHZpZGVvKTtcbiAgfVxuICBvbkRlbGV0ZSh2aWRlbzogUHJvcGVydHlWaWRlbykge1xuICAgIHRoaXMuZGVsZXRlLmVtaXQodmlkZW8pO1xuICB9XG4gIG9uRWRpdCh2aWRlbzogUHJvcGVydHlWaWRlbykge1xuICAgIHRoaXMuZWRpdElkLnNldCh2aWRlby5pZCk7XG4gICAgdGhpcy5lZGl0VGl0bGUgPSB0cnVlO1xuICAgIHRoaXMuZWRpdC5lbWl0KHZpZGVvKTtcbiAgfVxuICBvbk1lZGlhRWRpdCh2aWRlbzogUHJvcGVydHlWaWRlbykge1xuICAgIHRoaXMuZWRpdElkLnNldCh2aWRlby5pZCk7XG4gICAgdGhpcy5lZGl0aW5nID0gdHJ1ZTtcblxuICB9XG5cbiAgb25VcGxvYWQoaWQ6IGFueSwgZGF0YTogYW55KSB7XG4gICAgdGhpcy52aWRlbygpLnVwbG9hZGluZyA9IHRydWVcbiAgICB0aGlzLnVwbG9hZC5lbWl0KHsgaWQsIGRhdGEgfSk7XG4gIH1cblxuICBvbkxvYWRlZE1ldGFkYXRhKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnZpZGVvKCkuZHVyYXRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdmlkZW9FbGVtZW50OiBIVE1MVmlkZW9FbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxWaWRlb0VsZW1lbnQ7XG4gICAgdGhpcy52aWRlbygpLmR1cmF0aW9uID0gdmlkZW9FbGVtZW50LmR1cmF0aW9uO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdyb3cgcC0yXCI+XG4gIEBpZiAoIWVkaXRUaXRsZSkge1xuICA8ZGl2IGNsYXNzPVwidy1mdWxsIGZsZXggZ2FwLTMgcC0zIGl0ZW1zLWNlbnRlclwiPlxuICAgIDxzcGFuPnt7IHZpZGVvKCkudGl0bGUgfX08L3NwYW4+XG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIm9uRWRpdCh2aWRlbygpKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCIgY2xhc3M9XCJtYXgtdy04IG1heC1oLTggIXAtMVwiPlxuICAgICAgPG1hdC1pY29uPmVkaXQ8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJvbkRlbGV0ZSh2aWRlbygpKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCIgY2xhc3M9XCJtYXgtdy04IG1heC1oLTggIXAtMVwiPlxuICAgICAgPG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICB9IEBlbHNlIHtcbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlclwiPlxuICAgIDxyb2xhdGVjaC1pbnB1dCBbKHRpdGxlKV09XCJ2aWRlbygpLnRpdGxlXCIgcGxhY2Vob2xkZXI9XCJUaXRsZVwiPjwvcm9sYXRlY2gtaW5wdXQ+XG4gICAgPGRpdiBjbGFzcz1cInctZnVsbCBmbGV4IGZsZXgtcm93IGp1c3RpZnktZW5kIHAtMyBnYXAtM1wiPlxuICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNsYXNzPVwibWF4LWgtOFwiIChjbGljayk9XCJvbkNhbmNlbCh2aWRlbygpKVwiIGkxOG4+Q2FuY2VsPC9idXR0b24+XG4gICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjbGFzcz1cIm1heC1oLThcIiAoY2xpY2spPVwib25TYXZlKHZpZGVvKCkpXCIgaTE4bj5TYXZlPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICB9XG5cbiAgPGRpdj5cbiAgICBAaWYgKHZpZGVvKCkudXJsKSB7XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgcC0yIGdhcC0zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYmctYmxhY2sgaC1maXRcIj5cbiAgICAgICAgPHZpZGVvXG4gICAgICAgICAgY29udHJvbHNcbiAgICAgICAgICAjdmlkZW9Db250YWluZXJcbiAgICAgICAgICBbc3JjXT1cInZpZGVvKCkudXJsXCJcbiAgICAgICAgICBjbGFzcz1cInctZnVsbCBhc3BlY3QtdmlkZW9cIlxuICAgICAgICAgIChsb2FkZWRtZXRhZGF0YSk9XCJvbkxvYWRlZE1ldGFkYXRhKCRldmVudClcIlxuICAgICAgICAgIFtwb3N0ZXJdPVwidmlkZW8oKS50aHVtYm5haWxcIlxuICAgICAgICA+XG4gICAgICAgICAgPCEtLSA8c291cmNlIFtzcmNdPVwidmlkZW8oKS51cmxcIiB0eXBlPVwidmlkZW8vbXA0XCIgLz4gLS0+XG4gICAgICAgIDwvdmlkZW8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGp1c3RpZnktYmV0d2VlbiB3LWZ1bGxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciB3LWZ1bGxcIj5cbiAgICAgICAgICBAaWYgKHZpZGVvKCkudXBsb2FkaW5nKSB7XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxzcGFuPiB7eyB2aWRlbygpLnByb2dyZXNzIH19JTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxzcGFuPnt7IHZpZGVvKCkuZHVyYXRpb24gfCBkdXJhdGlvbiB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICBAaWYgKHZpZGVvKCkudXBsb2FkaW5nKSB7XG4gICAgPGRpdiBjbGFzcz1cInAtMlwiPlxuICAgICAgPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImRldGVybWluYXRlXCIgW3ZhbHVlXT1cInZpZGVvKCkucHJvZ3Jlc3NcIj4gPC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICAgIDwvZGl2PlxuICAgIH0gfSBAZWxzZSB7XG4gICAgPGRpdiBjbGFzcz1cInB4LTNcIj5cbiAgICAgIDxpbnB1dFxuICAgICAgICBjbGFzcz1cInVkLXNyLW9ubHlcIlxuICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgIGFjY2VwdD1cIi5hdmksLm1wZywubXBlZywuZmx2LC5tb3YsLm0ydiwubTR2LC5tcDQsLnJtLC5yYW0sLnZvYiwub2d2LC53ZWJtLC53bXZcIlxuICAgICAgICAoY2hhbmdlKT1cIm9uVXBsb2FkKHZpZGVvKCkuaWQsICRldmVudClcIlxuICAgICAgICAjZmlsZUlucHV0XG4gICAgICAvPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8ZGl2IGkxOG4+Tm8gdmlkZW9zPC9kaXY+XG4gICAgICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIGNsYXNzPVwibWF4LWgtOFwiIChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiIGkxOG4+VXBsb2FkPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuICBAaWYgKCFoYXNVbnNhdmVkKSB7XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgfVxuPC9kaXY+XG4iXX0=","import { Component, effect, inject, signal } from '@angular/core';\nimport { BaseComponent, ToolbarComponent, TabsComponent, TabComponent } from '@rolatech/angular-components';\nimport { PropertyManageContentComponent } from '../property-manage-content/property-manage-content.component';\nimport { PropertyService } from '@rolatech/angular-services';\nimport { PropertyVideoProvider } from '../../../interfaces';\nimport { MatButtonModule } from '@angular/material/button';\nimport { PropertyVideoYoutubeAddComponent } from '../../../components/property-video-youtube-add/property-video-youtube-add.component';\nimport { concatMap, from, Observable, take } from 'rxjs';\nimport { SafeUrlPipe } from './safe-url.pipe';\nimport { PropertyVideoItem } from \"../../../components/property-video-item/property-video-item\";\nimport { MatIcon } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\nexport class PropertyManageVideoComponent extends BaseComponent {\n propertyService = inject(PropertyService);\n tabIndex = signal(0, ...(ngDevMode ? [{ debugName: \"tabIndex\" }] : []));\n videos = [];\n data;\n iframeVisible = false;\n iframeLoaded = false;\n thumbnailUrl;\n provider = PropertyVideoProvider;\n chunkSize = 5 * 1024 * 1024; // 切片大小\n selectProvider = '';\n videoEditId = '';\n get youtubeVideos() {\n return this.videos.filter(v => v.provider === PropertyVideoProvider.YOUTUBE);\n }\n get cosVideos() {\n return this.videos.filter(v => v.provider === PropertyVideoProvider.COS);\n }\n constructor() {\n super();\n effect(() => {\n const index = this.tabIndex();\n if (index === 0) {\n this.selectProvider = 'YOUTUBE';\n }\n if (index === 1) {\n this.selectProvider = 'COS';\n }\n });\n }\n ngOnInit() {\n this.id = this.route.parent?.snapshot.paramMap.get('id');\n this.getVideos();\n }\n getVideos() {\n this.propertyService.getVideos(this.id).subscribe({\n next: (res) => {\n this.videos = Array.isArray(res.data) ? res.data : [];\n },\n });\n }\n showIframe() {\n this.iframeVisible = true;\n }\n onIframeLoad() {\n this.iframeLoaded = true;\n }\n addYoutubeUrl() {\n const options = {\n title: 'Add Youtube url',\n cancelText: 'Cancel',\n confirmText: 'Confirm',\n data: {\n url: '',\n },\n component: PropertyVideoYoutubeAddComponent,\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe({\n next: (res) => {\n if (res) {\n const data = {\n url: res,\n title: 'Youtube',\n provider: PropertyVideoProvider.YOUTUBE\n };\n this.propertyService.addVideo(this.id, data).subscribe({\n next: (res) => {\n this.videos.push(res.data);\n this.snackBarService.open('Video added');\n },\n });\n }\n },\n });\n }\n updateYoutubeUrl(video) {\n const options = {\n title: 'Update Youtube url',\n cancelText: 'Cancel',\n confirmText: 'Confirm',\n data: {\n url: video?.url || '',\n },\n component: PropertyVideoYoutubeAddComponent,\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe({\n next: (res) => {\n if (res) {\n const data = {\n url: res,\n title: video.title\n };\n this.propertyService.updateVideo(this.id, video.id, data).subscribe({\n next: (res) => {\n video.url = res.data.url;\n // Force reload\n this.iframeLoaded = false;\n this.snackBarService.open('Youtube url updated');\n },\n });\n }\n },\n });\n }\n toYoutubeEmbed(urlOrId) {\n const m = urlOrId.match(/(?:v=|\\/embed\\/|\\.be\\/)([A-Za-z0-9_-]{6,})/);\n const id = m ? m[1] : urlOrId;\n return `https://www.youtube-nocookie.com/embed/${id}`;\n }\n addCOSVideo() {\n const video = {\n provider: PropertyVideoProvider.COS\n };\n this.propertyService.addVideo(this.id, video).subscribe({\n next: (res) => {\n this.videoEditId = res.data.id;\n this.videos.push(res.data);\n },\n });\n }\n onCOSVideoSave(event) {\n const { id, title, url } = event;\n const data = {\n title, url\n };\n this.propertyService.updateVideo(this.id, id, data).subscribe({\n next: (res) => {\n this.snackBarService.open('Youtube url updated');\n },\n });\n }\n onCOSVideoDelete(video, event) {\n if (!video.id) {\n return;\n }\n const options = {\n title: 'Confirm delete',\n message: 'Are you sure?',\n cancelText: 'Cancel',\n confirmText: 'Ok',\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe({\n next: (res) => {\n if (res) {\n this.propertyService.deleteVideo(this.id, video.id).subscribe({\n next: res => {\n this.videos = this.videos.filter(v => v.id !== video.id);\n this.snackBarService.open(\"Video deleted\");\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n },\n });\n }\n onVideoEdit(event) { }\n onMediaDelete(video, event) { }\n onCOSVideoUpload(video, event) {\n const file = event.data.target.files[0];\n if (!file) {\n return;\n }\n video.url = URL.createObjectURL(file);\n video.progress = 0;\n video.uploading = true;\n const reader = new FileReader();\n if (reader.readyState === FileReader.EMPTY) {\n reader.onload = async (e) => {\n const fileBuffer = e.target.result;\n crypto.subtle.digest('SHA-256', fileBuffer).then((res) => {\n const hashArray = Array.from(new Uint8Array(res));\n const hashHex = hashArray.map((byte) => byte.toString(16).padStart(2, '0')).join('');\n const data = { hash: hashHex, filename: file.name, fileType: file.type, type: 'COS' };\n this.propertyService.uploadVideosInit(this.id, data).subscribe({\n next: (res) => {\n this.uploadPart(video, res.data.uploadId, file);\n },\n error: (e) => { },\n });\n });\n };\n reader.onerror = (error) => { };\n reader.readAsArrayBuffer(file);\n }\n }\n uploadPart(video, uploadId, file) {\n let uploadedCount = 0;\n const fileChunkList = this.createFileChunk(file);\n const numberOfChunks = fileChunkList.length;\n from(fileChunkList)\n .pipe(concatMap((val, index) => this.uploadFile(video, val.file, index, uploadId)), take(numberOfChunks))\n .subscribe((res) => {\n uploadedCount++;\n const p = ((uploadedCount / numberOfChunks) * 100).toFixed(0);\n video.progress = parseFloat(p);\n if (uploadedCount === numberOfChunks) {\n this.completePartUpload(video, { uploadId });\n }\n });\n }\n completePartUpload(video, data) {\n data.duration = video.duration;\n this.propertyService.completePartUpload(video.id || '', data).subscribe({\n next: (res) => {\n video.uploading = false;\n },\n error: (e) => {\n this.snackBarService.open('Upload failed: ' + e.message);\n },\n });\n }\n uploadFile(property, file, index, uploadId) {\n const reader = new FileReader();\n return new Observable((observer) => {\n reader.readAsArrayBuffer(file);\n reader.onload = (e) => {\n const fileBuffer = e.target.result;\n crypto.subtle.digest('SHA-256', fileBuffer).then((res) => {\n const hashArray = Array.from(new Uint8Array(res));\n const hashHex = hashArray.map((byte) => byte.toString(16).padStart(2, '0')).join('');\n const formData = new FormData();\n formData.append('file', file);\n formData.append('uploadId', uploadId);\n formData.append('number', index + 1);\n formData.append('hash', hashHex);\n formData.append('type', 'COS');\n this.propertyService.uploadVideosPartsToProperty(property.id, formData).subscribe({\n next: (res) => {\n observer.next(res);\n observer.complete();\n },\n error: (e) => {\n this.snackBarService.open('Upload failed: ' + e.message);\n },\n });\n });\n };\n reader.onerror = (error) => {\n this.snackBarService.open('Upload failed: ' + error);\n };\n });\n }\n createFileChunk(file, size = this.chunkSize) {\n const fileChunkList = [];\n let count = 0;\n while (count < file.size) {\n fileChunkList.push({\n file: file.slice(count, count + size),\n });\n count += size;\n }\n return fileChunkList;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageVideoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyManageVideoComponent, isStandalone: true, selector: \"rolatech-property-manage-video\", usesInheritance: true, ngImport: i0, template: \"<rolatech-property-manage-content>\\n <rolatech-toolbar title=\\\"Videos\\\" class=\\\"hidden md:block\\\" divider> </rolatech-toolbar>\\n <rolatech-tabs [(select)]=\\\"tabIndex\\\">\\n <rolatech-tab label=\\\"Youtube\\\"></rolatech-tab>\\n <rolatech-tab label=\\\"COS\\\"></rolatech-tab>\\n </rolatech-tabs>\\n <div class=\\\"py-2\\\">\\n @if (tabIndex() === 0) {\\n @if (youtubeVideos.length > 0 && youtubeVideos[0].url) {\\n <div class=\\\"relative w-full aspect-video\\\">\\n @if (!iframeLoaded) {\\n <div class=\\\"absolute inset-0 flex items-center justify-center bg-black/10 border bg-white\\\">\\n <span>Loading...</span>\\n </div>\\n }\\n <iframe\\n [src]=\\\"toYoutubeEmbed(youtubeVideos[0].url) | safeUrl\\\"\\n frameborder=\\\"0\\\"\\n allowfullscreen\\n class=\\\"w-full h-full\\\"\\n (load)=\\\"iframeLoaded = true\\\"\\n ></iframe>\\n </div>\\n <button mat-flat-button (click)=\\\"updateYoutubeUrl(youtubeVideos[0])\\\" class=\\\"mt-3\\\">Update Youtube url</button>\\n } @else {\\n <button mat-flat-button (click)=\\\"addYoutubeUrl()\\\" class=\\\"mt-3\\\">Add Youtube url</button>\\n }\\n }\\n @if (tabIndex() === 1) {\\n @for (video of cosVideos; track $index) {\\n <rolatech-property-video-item\\n [video]=\\\"video\\\"\\n (save)=\\\"onCOSVideoSave($event)\\\"\\n (delete)=\\\"onCOSVideoDelete(video, $event)\\\"\\n (edit)=\\\"onVideoEdit($event)\\\"\\n (upload)=\\\"onCOSVideoUpload(video, $event)\\\"\\n [editId]=\\\"videoEditId\\\"\\n ></rolatech-property-video-item>\\n }\\n @if (cosVideos.length === 0) {\\n <div class=\\\"p-3\\\">\\n <button mat-flat-button class=\\\"max-h-8\\\" (click)=\\\"addCOSVideo()\\\">\\n <mat-icon>add</mat-icon>\\n <span>Add video</span>\\n </button>\\n </div>\\n }\\n <!-- <rolatech-video-upload (upload)=\\\"onMediaUploadInit($event)\\\"></rolatech-video-upload> -->\\n }\\n </div>\\n</rolatech-property-manage-content>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"component\", type: PropertyManageContentComponent, selector: \"rolatech-property-manage-content\" }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i1.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: TabsComponent, selector: \"rolatech-tabs\", inputs: [\"select\", \"loading\"], outputs: [\"selectChange\"] }, { kind: \"component\", type: TabComponent, selector: \"rolatech-tab\", inputs: [\"label\"] }, { kind: \"component\", type: PropertyVideoItem, selector: \"rolatech-property-video-item\", inputs: [\"progress\", \"video\", \"actions\", \"hasUnsaved\", \"editId\"], outputs: [\"editIdChange\", \"save\", \"cancel\", \"delete\", \"edit\", \"upload\"] }, { kind: \"component\", type: MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"pipe\", type: SafeUrlPipe, name: \"safeUrl\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageVideoComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-manage-video', imports: [CommonModule, ToolbarComponent, PropertyManageContentComponent, MatButtonModule, TabsComponent, TabComponent, SafeUrlPipe, PropertyVideoItem, MatIcon], template: \"<rolatech-property-manage-content>\\n <rolatech-toolbar title=\\\"Videos\\\" class=\\\"hidden md:block\\\" divider> </rolatech-toolbar>\\n <rolatech-tabs [(select)]=\\\"tabIndex\\\">\\n <rolatech-tab label=\\\"Youtube\\\"></rolatech-tab>\\n <rolatech-tab label=\\\"COS\\\"></rolatech-tab>\\n </rolatech-tabs>\\n <div class=\\\"py-2\\\">\\n @if (tabIndex() === 0) {\\n @if (youtubeVideos.length > 0 && youtubeVideos[0].url) {\\n <div class=\\\"relative w-full aspect-video\\\">\\n @if (!iframeLoaded) {\\n <div class=\\\"absolute inset-0 flex items-center justify-center bg-black/10 border bg-white\\\">\\n <span>Loading...</span>\\n </div>\\n }\\n <iframe\\n [src]=\\\"toYoutubeEmbed(youtubeVideos[0].url) | safeUrl\\\"\\n frameborder=\\\"0\\\"\\n allowfullscreen\\n class=\\\"w-full h-full\\\"\\n (load)=\\\"iframeLoaded = true\\\"\\n ></iframe>\\n </div>\\n <button mat-flat-button (click)=\\\"updateYoutubeUrl(youtubeVideos[0])\\\" class=\\\"mt-3\\\">Update Youtube url</button>\\n } @else {\\n <button mat-flat-button (click)=\\\"addYoutubeUrl()\\\" class=\\\"mt-3\\\">Add Youtube url</button>\\n }\\n }\\n @if (tabIndex() === 1) {\\n @for (video of cosVideos; track $index) {\\n <rolatech-property-video-item\\n [video]=\\\"video\\\"\\n (save)=\\\"onCOSVideoSave($event)\\\"\\n (delete)=\\\"onCOSVideoDelete(video, $event)\\\"\\n (edit)=\\\"onVideoEdit($event)\\\"\\n (upload)=\\\"onCOSVideoUpload(video, $event)\\\"\\n [editId]=\\\"videoEditId\\\"\\n ></rolatech-property-video-item>\\n }\\n @if (cosVideos.length === 0) {\\n <div class=\\\"p-3\\\">\\n <button mat-flat-button class=\\\"max-h-8\\\" (click)=\\\"addCOSVideo()\\\">\\n <mat-icon>add</mat-icon>\\n <span>Add video</span>\\n </button>\\n </div>\\n }\\n <!-- <rolatech-video-upload (upload)=\\\"onMediaUploadInit($event)\\\"></rolatech-video-upload> -->\\n }\\n </div>\\n</rolatech-property-manage-content>\\n\" }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbWFuYWdlLXZpZGVvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS1tYW5hZ2UvcHJvcGVydHktbWFuYWdlLXZpZGVvL3Byb3BlcnR5LW1hbmFnZS12aWRlby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktbWFuYWdlL3Byb3BlcnR5LW1hbmFnZS12aWRlby9wcm9wZXJ0eS1tYW5hZ2UtdmlkZW8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBWSxNQUFNLEVBQUUsTUFBTSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUM5RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUEyQixxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxxRkFBcUYsQ0FBQztBQUN2SSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQVksSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFB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Q0FBQztRQUM5QixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxPQUFPLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDekIsYUFBYSxDQUFDLElBQUksQ0FBQztnQkFDakIsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssR0FBRyxJQUFJLENBQUM7YUFDdEMsQ0FBQyxDQUFDO1lBQ0gsS0FBSyxJQUFJLElBQUksQ0FBQztRQUNoQixDQUFDO1FBQ0QsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQzt1R0EvUVUsNEJBQTRCOzJGQUE1Qiw0QkFBNEIsaUhDcEJ6Qyw4Z0VBbURBLHlERG5DWSxZQUFZLCtCQUFFLGdCQUFnQixnSUFBRSw4QkFBOEIsNEVBQUUsZUFBZSxvWEFBRSxhQUFhLG9IQUFFLFlBQVksNEVBQWUsaUJBQWlCLG9OQUFFLE9BQU8sc0lBQXZDLFdBQVc7OzJGQUl4SCw0QkFBNEI7a0JBTnhDLFNBQVM7K0JBQ0UsZ0NBQWdDLFdBQ2pDLENBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFFLDhCQUE4QixFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxPQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgT25Jbml0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIFRvb2xiYXJDb21wb25lbnQsIFRhYnNDb21wb25lbnQsIFRhYkNvbXBvbmVudCB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgUHJvcGVydHlNYW5hZ2VDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vcHJvcGVydHktbWFuYWdlLWNvbnRlbnQvcHJvcGVydHktbWFuYWdlLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFByb3BlcnR5U2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLXNlcnZpY2VzJztcbmltcG9ydCB7IFByb3BlcnR5LCBQcm9wZXJ0eVZpZGVvLCBQcm9wZXJ0eVZpZGVvUHJvdmlkZXIgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBQcm9wZXJ0eVZpZGVvWW91dHViZUFkZENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvcHJvcGVydHktdmlkZW8teW91dHViZS1hZGQvcHJvcGVydHktdmlkZW8teW91dHViZS1hZGQuY29tcG9uZW50JztcbmltcG9ydCB7IGNvbmNhdE1hcCwgZnJvbSwgT2JzZXJ2YWJsZSwgT2JzZXJ2ZXIsIHRha2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNhZmVVcmxQaXBlIH0gZnJvbSAnLi9zYWZlLXVybC5waXBlJztcbmltcG9ydCB7IFByb3BlcnR5VmlkZW9JdGVtIH0gZnJvbSBcIi4uLy4uLy4uL2NvbXBvbmVudHMvcHJvcGVydHktdmlkZW8taXRlbS9wcm9wZXJ0eS12aWRlby1pdGVtXCI7XG5pbXBvcnQgeyBkdXJhdGlvbiB9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1wcm9wZXJ0eS1tYW5hZ2UtdmlkZW8nLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUb29sYmFyQ29tcG9uZW50LCBQcm9wZXJ0eU1hbmFnZUNvbnRlbnRDb21wb25lbnQsIE1hdEJ1dHRvbk1vZHVsZSwgVGFic0NvbXBvbmVudCwgVGFiQ29tcG9uZW50LCBTYWZlVXJsUGlwZSwgUHJvcGVydHlWaWRlb0l0ZW0sIE1hdEljb25dLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydHktbWFuYWdlLXZpZGVvLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb3BlcnR5LW1hbmFnZS12aWRlby5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5TWFuYWdlVmlkZW9Db21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJvcGVydHlTZXJ2aWNlID0gaW5qZWN0KFByb3BlcnR5U2VydmljZSk7XG4gIHRhYkluZGV4ID0gc2lnbmFsKDApO1xuICB2aWRlb3M6IFByb3BlcnR5VmlkZW9bXSA9IFtdXG4gIGRhdGE6IGFueTtcbiAgaWZyYW1lVmlzaWJsZSA9IGZhbHNlO1xuICBpZnJhbWVMb2FkZWQgPSBmYWxzZTtcbiAgdGh1bWJuYWlsVXJsO1xuICBwcm92aWRlciA9IFByb3BlcnR5VmlkZW9Qcm92aWRlclxuICBjaHVua1NpemUgPSA1ICogMTAyNCAqIDEwMjQ7IC8vIOWIh+eJh+Wkp+Wwj1xuICBzZWxlY3RQcm92aWRlciA9ICcnXG4gIHZpZGVvRWRpdElkID0gJyc7XG4gIGdldCB5b3V0dWJlVmlkZW9zKCk6IFByb3BlcnR5VmlkZW9bXSB7XG4gICAgcmV0dXJuIHRoaXMudmlkZW9zLmZpbHRlcih2ID0+IHYucHJvdmlkZXIgPT09IFByb3BlcnR5VmlkZW9Qcm92aWRlci5ZT1VUVUJFKTtcbiAgfVxuXG4gIGdldCBjb3NWaWRlb3MoKTogUHJvcGVydHlWaWRlb1tdIHtcbiAgICByZXR1cm4gdGhpcy52aWRlb3MuZmlsdGVyKHYgPT4gdi5wcm92aWRlciA9PT0gUHJvcGVydHlWaWRlb1Byb3ZpZGVyLkNPUyk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy50YWJJbmRleCgpO1xuICAgICAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0UHJvdmlkZXIgPSAnWU9VVFVCRSdcbiAgICAgIH1cbiAgICAgIGlmIChpbmRleCA9PT0gMSkge1xuICAgICAgICB0aGlzLnNlbGVjdFByb3ZpZGVyID0gJ0NPUydcblxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pZCA9IHRoaXMucm91dGUucGFyZW50Py5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ2lkJykgYXMgc3RyaW5nO1xuICAgIHRoaXMuZ2V0VmlkZW9zKCk7XG4gIH1cblxuICBnZXRWaWRlb3MoKSB7XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZ2V0VmlkZW9zKHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy52aWRlb3MgPSBBcnJheS5pc0FycmF5KHJlcy5kYXRhKSA/IHJlcy5kYXRhIDogW107XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIHNob3dJZnJhbWUoKSB7XG4gICAgdGhpcy5pZnJhbWVWaXNpYmxlID0gdHJ1ZTtcbiAgfVxuICBvbklmcmFtZUxvYWQoKSB7XG4gICAgdGhpcy5pZnJhbWVMb2FkZWQgPSB0cnVlO1xuICB9XG5cbiAgYWRkWW91dHViZVVybCgpIHtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgdGl0bGU6ICdBZGQgWW91dHViZSB1cmwnLFxuICAgICAgY2FuY2VsVGV4dDogJ0NhbmNlbCcsXG4gICAgICBjb25maXJtVGV4dDogJ0NvbmZpcm0nLFxuICAgICAgZGF0YToge1xuICAgICAgICB1cmw6ICcnLFxuICAgICAgfSxcbiAgICAgIGNvbXBvbmVudDogUHJvcGVydHlWaWRlb1lvdXR1YmVBZGRDb21wb25lbnQsXG4gICAgfTtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbihvcHRpb25zKTtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuY29uZmlybWVkKCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICB1cmw6IHJlcyxcbiAgICAgICAgICAgIHRpdGxlOiAnWW91dHViZScsXG4gICAgICAgICAgICBwcm92aWRlcjogUHJvcGVydHlWaWRlb1Byb3ZpZGVyLllPVVRVQkVcbiAgICAgICAgICB9O1xuICAgICAgICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmFkZFZpZGVvKHRoaXMuaWQsIGRhdGEpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy52aWRlb3MucHVzaChyZXMuZGF0YSlcbiAgICAgICAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbignVmlkZW8gYWRkZWQnKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgdXBkYXRlWW91dHViZVVybCh2aWRlbzogUHJvcGVydHlWaWRlbykge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICB0aXRsZTogJ1VwZGF0ZSBZb3V0dWJlIHVybCcsXG4gICAgICBjYW5jZWxUZXh0OiAnQ2FuY2VsJyxcbiAgICAgIGNvbmZpcm1UZXh0OiAnQ29uZmlybScsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHVybDogdmlkZW8/LnVybCB8fCAnJyxcbiAgICAgIH0sXG4gICAgICBjb21wb25lbnQ6IFByb3BlcnR5VmlkZW9Zb3V0dWJlQWRkQ29tcG9uZW50LFxuICAgIH07XG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW4ob3B0aW9ucyk7XG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmNvbmZpcm1lZCgpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgdXJsOiByZXMsXG4gICAgICAgICAgICB0aXRsZTogdmlkZW8udGl0bGVcbiAgICAgICAgICB9O1xuICAgICAgICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLnVwZGF0ZVZpZGVvKHRoaXMuaWQsIHZpZGVvLmlkISwgZGF0YSkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICB2aWRlby51cmwgPSByZXMuZGF0YS51cmw7XG4gICAgICAgICAgICAgIC8vIEZvcmNlIHJlbG9hZFxuICAgICAgICAgICAgICB0aGlzLmlmcmFtZUxvYWRlZCA9IGZhbHNlXG4gICAgICAgICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oJ1lvdXR1YmUgdXJsIHVwZGF0ZWQnKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgdG9Zb3V0dWJlRW1iZWQodXJsT3JJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBtID0gdXJsT3JJZC5tYXRjaCgvKD86dj18XFwvZW1iZWRcXC98XFwuYmVcXC8pKFtBLVphLXowLTlfLV17Nix9KS8pO1xuICAgIGNvbnN0IGlkID0gbSA/IG1bMV0gOiB1cmxPcklkO1xuICAgIHJldHVybiBgaHR0cHM6Ly93d3cueW91dHViZS1ub2Nvb2tpZS5jb20vZW1iZWQvJHtpZH1gO1xuICB9XG5cbiAgYWRkQ09TVmlkZW8oKSB7XG4gICAgY29uc3QgdmlkZW8gPSB7XG4gICAgICBwcm92aWRlcjogUHJvcGVydHlWaWRlb1Byb3ZpZGVyLkNPU1xuICAgIH07XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuYWRkVmlkZW8odGhpcy5pZCwgdmlkZW8pLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy52aWRlb0VkaXRJZCA9IHJlcy5kYXRhLmlkO1xuICAgICAgICB0aGlzLnZpZGVvcy5wdXNoKHJlcy5kYXRhKVxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBvbkNPU1ZpZGVvU2F2ZShldmVudDogYW55KSB7XG4gICAgY29uc3QgeyBpZCwgdGl0bGUsIHVybCB9ID0gZXZlbnQ7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIHRpdGxlLCB1cmxcbiAgICB9XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UudXBkYXRlVmlkZW8odGhpcy5pZCwgaWQsIGRhdGEpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbignWW91dHViZSB1cmwgdXBkYXRlZCcpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBvbkNPU1ZpZGVvRGVsZXRlKHZpZGVvOiBQcm9wZXJ0eVZpZGVvLCBldmVudDogYW55KSB7XG4gICAgaWYgKCF2aWRlby5pZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgdGl0bGU6ICdDb25maXJtIGRlbGV0ZScsXG4gICAgICBtZXNzYWdlOiAnQXJlIHlvdSBzdXJlPycsXG4gICAgICBjYW5jZWxUZXh0OiAnQ2FuY2VsJyxcbiAgICAgIGNvbmZpcm1UZXh0OiAnT2snLFxuICAgIH07XG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW4ob3B0aW9ucyk7XG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmNvbmZpcm1lZCgpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICB0aGlzLnByb3BlcnR5U2VydmljZS5kZWxldGVWaWRlbyh0aGlzLmlkLCB2aWRlby5pZCEpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiByZXMgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnZpZGVvcyA9IHRoaXMudmlkZW9zLmZpbHRlcih2ID0+IHYuaWQgIT09IHZpZGVvLmlkKTtcbiAgICAgICAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbihcIlZpZGVvIGRlbGV0ZWRcIik7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KVxuXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgfVxuICBvblZpZGVvRWRpdChldmVudDogYW55KSB7IH1cbiAgb25NZWRpYURlbGV0ZSh2aWRlbzogUHJvcGVydHlWaWRlbywgZXZlbnQ6IGFueSkgeyB9XG4gIG9uQ09TVmlkZW9VcGxvYWQodmlkZW86IFByb3BlcnR5VmlkZW8sIGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBmaWxlID0gZXZlbnQuZGF0YS50YXJnZXQuZmlsZXNbMF07XG5cbiAgICBpZiAoIWZpbGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmlkZW8udXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKVxuICAgIHZpZGVvLnByb2dyZXNzID0gMFxuICAgIHZpZGVvLnVwbG9hZGluZyA9IHRydWVcblxuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgaWYgKHJlYWRlci5yZWFkeVN0YXRlID09PSBGaWxlUmVhZGVyLkVNUFRZKSB7XG4gICAgICByZWFkZXIub25sb2FkID0gYXN5bmMgKGU6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBmaWxlQnVmZmVyID0gZS50YXJnZXQucmVzdWx0O1xuICAgICAgICBjcnlwdG8uc3VidGxlLmRpZ2VzdCgnU0hBLTI1NicsIGZpbGVCdWZmZXIpLnRoZW4oKHJlcykgPT4ge1xuICAgICAgICAgIGNvbnN0IGhhc2hBcnJheSA9IEFycmF5LmZyb20obmV3IFVpbnQ4QXJyYXkocmVzKSk7XG4gICAgICAgICAgY29uc3QgaGFzaEhleCA9IGhhc2hBcnJheS5tYXAoKGJ5dGUpID0+IGJ5dGUudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsICcwJykpLmpvaW4oJycpO1xuICAgICAgICAgIGNvbnN0IGRhdGE6IGFueSA9IHsgaGFzaDogaGFzaEhleCwgZmlsZW5hbWU6IGZpbGUubmFtZSwgZmlsZVR5cGU6IGZpbGUudHlwZSwgdHlwZTogJ0NPUycgfTtcbiAgICAgICAgICB0aGlzLnByb3BlcnR5U2VydmljZS51cGxvYWRWaWRlb3NJbml0KHRoaXMuaWQsIGRhdGEpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy51cGxvYWRQYXJ0KHZpZGVvLCByZXMuZGF0YS51cGxvYWRJZCwgZmlsZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3I6IChlKSA9PiB7IH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICAgIHJlYWRlci5vbmVycm9yID0gKGVycm9yKSA9PiB7IH07XG4gICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZmlsZSk7XG4gICAgfVxuICB9XG4gIHVwbG9hZFBhcnQodmlkZW86IFByb3BlcnR5VmlkZW8sIHVwbG9hZElkOiBzdHJpbmcsIGZpbGU6IGFueSkge1xuICAgIGxldCB1cGxvYWRlZENvdW50ID0gMDtcbiAgICBjb25zdCBmaWxlQ2h1bmtMaXN0ID0gdGhpcy5jcmVhdGVGaWxlQ2h1bmsoZmlsZSk7XG4gICAgY29uc3QgbnVtYmVyT2ZDaHVua3MgPSBmaWxlQ2h1bmtMaXN0Lmxlbmd0aDtcbiAgICBmcm9tKGZpbGVDaHVua0xpc3QpXG4gICAgICAucGlwZShcbiAgICAgICAgY29uY2F0TWFwKCh2YWw6IGFueSwgaW5kZXgpID0+IHRoaXMudXBsb2FkRmlsZSh2aWRlbywgdmFsLmZpbGUsIGluZGV4LCB1cGxvYWRJZCkpLFxuICAgICAgICB0YWtlKG51bWJlck9mQ2h1bmtzKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICB1cGxvYWRlZENvdW50Kys7XG4gICAgICAgIGNvbnN0IHAgPSAoKHVwbG9hZGVkQ291bnQgLyBudW1iZXJPZkNodW5rcykgKiAxMDApLnRvRml4ZWQoMCk7XG4gICAgICAgIHZpZGVvLnByb2dyZXNzID0gcGFyc2VGbG9hdChwKTtcbiAgICAgICAgaWYgKHVwbG9hZGVkQ291bnQgPT09IG51bWJlck9mQ2h1bmtzKSB7XG4gICAgICAgICAgdGhpcy5jb21wbGV0ZVBhcnRVcGxvYWQodmlkZW8sIHsgdXBsb2FkSWQgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG4gIGNvbXBsZXRlUGFydFVwbG9hZCh2aWRlbzogUHJvcGVydHlWaWRlbywgZGF0YTogYW55KSB7XG4gICAgZGF0YS5kdXJhdGlvbiA9IHZpZGVvLmR1cmF0aW9uO1xuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmNvbXBsZXRlUGFydFVwbG9hZCh2aWRlby5pZCB8fCAnJywgZGF0YSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB2aWRlby51cGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGUpID0+IHtcbiAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbignVXBsb2FkIGZhaWxlZDogJyArIGUubWVzc2FnZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIHVwbG9hZEZpbGUocHJvcGVydHk6IGFueSwgZmlsZTogYW55LCBpbmRleDogbnVtYmVyLCB1cGxvYWRJZDogc3RyaW5nKSB7XG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKG9ic2VydmVyOiBPYnNlcnZlcjxGb3JtRGF0YT4pID0+IHtcbiAgICAgIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihmaWxlKTtcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoZTogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbGVCdWZmZXIgPSBlLnRhcmdldC5yZXN1bHQ7XG4gICAgICAgIGNyeXB0by5zdWJ0bGUuZGlnZXN0KCdTSEEtMjU2JywgZmlsZUJ1ZmZlcikudGhlbigocmVzKSA9PiB7XG4gICAgICAgICAgY29uc3QgaGFzaEFycmF5ID0gQXJyYXkuZnJvbShuZXcgVWludDhBcnJheShyZXMpKTtcbiAgICAgICAgICBjb25zdCBoYXNoSGV4ID0gaGFzaEFycmF5Lm1hcCgoYnl0ZSkgPT4gYnl0ZS50b1N0cmluZygxNikucGFkU3RhcnQoMiwgJzAnKSkuam9pbignJyk7XG4gICAgICAgICAgY29uc3QgZm9ybURhdGE6IGFueSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUpO1xuICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgndXBsb2FkSWQnLCB1cGxvYWRJZCk7XG4gICAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdudW1iZXInLCBpbmRleCArIDEpO1xuICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnaGFzaCcsIGhhc2hIZXgpO1xuICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgndHlwZScsICdDT1MnKTtcbiAgICAgICAgICB0aGlzLnByb3BlcnR5U2VydmljZS51cGxvYWRWaWRlb3NQYXJ0c1RvUHJvcGVydHkocHJvcGVydHkuaWQsIGZvcm1EYXRhKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgICAgIG9ic2VydmVyLm5leHQocmVzKTtcbiAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogKGUpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbignVXBsb2FkIGZhaWxlZDogJyArIGUubWVzc2FnZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgICByZWFkZXIub25lcnJvciA9IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKCdVcGxvYWQgZmFpbGVkOiAnICsgZXJyb3IpO1xuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuICBjcmVhdGVGaWxlQ2h1bmsoZmlsZTogYW55LCBzaXplID0gdGhpcy5jaHVua1NpemUpIHtcbiAgICBjb25zdCBmaWxlQ2h1bmtMaXN0OiBhbnkgPSBbXTtcbiAgICBsZXQgY291bnQgPSAwO1xuICAgIHdoaWxlIChjb3VudCA8IGZpbGUuc2l6ZSkge1xuICAgICAgZmlsZUNodW5rTGlzdC5wdXNoKHtcbiAgICAgICAgZmlsZTogZmlsZS5zbGljZShjb3VudCwgY291bnQgKyBzaXplKSxcbiAgICAgIH0pO1xuICAgICAgY291bnQgKz0gc2l6ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZpbGVDaHVua0xpc3Q7XG4gIH1cbn1cbiIsIjxyb2xhdGVjaC1wcm9wZXJ0eS1tYW5hZ2UtY29udGVudD5cbiAgPHJvbGF0ZWNoLXRvb2xiYXIgdGl0bGU9XCJWaWRlb3NcIiBjbGFzcz1cImhpZGRlbiBtZDpibG9ja1wiIGRpdmlkZXI+IDwvcm9sYXRlY2gtdG9vbGJhcj5cbiAgPHJvbGF0ZWNoLXRhYnMgWyhzZWxlY3QpXT1cInRhYkluZGV4XCI+XG4gICAgPHJvbGF0ZWNoLXRhYiBsYWJlbD1cIllvdXR1YmVcIj48L3JvbGF0ZWNoLXRhYj5cbiAgICA8cm9sYXRlY2gtdGFiIGxhYmVsPVwiQ09TXCI+PC9yb2xhdGVjaC10YWI+XG4gIDwvcm9sYXRlY2gtdGFicz5cbiAgPGRpdiBjbGFzcz1cInB5LTJcIj5cbiAgICBAaWYgKHRhYkluZGV4KCkgPT09IDApIHtcbiAgICAgIEBpZiAoeW91dHViZVZpZGVvcy5sZW5ndGggPiAwICYmIHlvdXR1YmVWaWRlb3NbMF0udXJsKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZSB3LWZ1bGwgYXNwZWN0LXZpZGVvXCI+XG4gICAgICAgICAgQGlmICghaWZyYW1lTG9hZGVkKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWJzb2x1dGUgaW5zZXQtMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBiZy1ibGFjay8xMCBib3JkZXIgYmctd2hpdGVcIj5cbiAgICAgICAgICAgICAgPHNwYW4+TG9hZGluZy4uLjwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgICA8aWZyYW1lXG4gICAgICAgICAgICBbc3JjXT1cInRvWW91dHViZUVtYmVkKHlvdXR1YmVWaWRlb3NbMF0udXJsKSB8IHNhZmVVcmxcIlxuICAgICAgICAgICAgZnJhbWVib3JkZXI9XCIwXCJcbiAgICAgICAgICAgIGFsbG93ZnVsbHNjcmVlblxuICAgICAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgaC1mdWxsXCJcbiAgICAgICAgICAgIChsb2FkKT1cImlmcmFtZUxvYWRlZCA9IHRydWVcIlxuICAgICAgICAgID48L2lmcmFtZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIChjbGljayk9XCJ1cGRhdGVZb3V0dWJlVXJsKHlvdXR1YmVWaWRlb3NbMF0pXCIgY2xhc3M9XCJtdC0zXCI+VXBkYXRlIFlvdXR1YmUgdXJsPC9idXR0b24+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gKGNsaWNrKT1cImFkZFlvdXR1YmVVcmwoKVwiIGNsYXNzPVwibXQtM1wiPkFkZCBZb3V0dWJlIHVybDwvYnV0dG9uPlxuICAgICAgfVxuICAgIH1cbiAgICBAaWYgKHRhYkluZGV4KCkgPT09IDEpIHtcbiAgICAgIEBmb3IgKHZpZGVvIG9mIGNvc1ZpZGVvczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgIDxyb2xhdGVjaC1wcm9wZXJ0eS12aWRlby1pdGVtXG4gICAgICAgICAgW3ZpZGVvXT1cInZpZGVvXCJcbiAgICAgICAgICAoc2F2ZSk9XCJvbkNPU1ZpZGVvU2F2ZSgkZXZlbnQpXCJcbiAgICAgICAgICAoZGVsZXRlKT1cIm9uQ09TVmlkZW9EZWxldGUodmlkZW8sICRldmVudClcIlxuICAgICAgICAgIChlZGl0KT1cIm9uVmlkZW9FZGl0KCRldmVudClcIlxuICAgICAgICAgICh1cGxvYWQpPVwib25DT1NWaWRlb1VwbG9hZCh2aWRlbywgJGV2ZW50KVwiXG4gICAgICAgICAgW2VkaXRJZF09XCJ2aWRlb0VkaXRJZFwiXG4gICAgICAgID48L3JvbGF0ZWNoLXByb3BlcnR5LXZpZGVvLWl0ZW0+XG4gICAgICB9XG4gICAgICBAaWYgKGNvc1ZpZGVvcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInAtM1wiPlxuICAgICAgICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIGNsYXNzPVwibWF4LWgtOFwiIChjbGljayk9XCJhZGRDT1NWaWRlbygpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuPkFkZCB2aWRlbzwvc3Bhbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgICA8IS0tIDxyb2xhdGVjaC12aWRlby11cGxvYWQgKHVwbG9hZCk9XCJvbk1lZGlhVXBsb2FkSW5pdCgkZXZlbnQpXCI+PC9yb2xhdGVjaC12aWRlby11cGxvYWQ+IC0tPlxuICAgIH1cbiAgPC9kaXY+XG48L3JvbGF0ZWNoLXByb3BlcnR5LW1hbmFnZS1jb250ZW50PlxuIl19","import { Component, inject } from '@angular/core';\nimport { BaseComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { PropertyManageContentComponent } from '../property-manage-content/property-manage-content.component';\nimport { PropertyService } from '@rolatech/angular-services';\nimport * as i0 from \"@angular/core\";\nexport class PropertyManageHighlights extends BaseComponent {\n propertyService = inject(PropertyService);\n highlights = [];\n ngOnInit() {\n this.id = this.route.parent?.snapshot.paramMap.get('id');\n this.find();\n }\n find() {\n this.propertyService.getHighlights(this.id).subscribe({\n next: (res) => {\n this.highlights = res.data;\n }\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageHighlights, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyManageHighlights, isStandalone: true, selector: \"rolatech-property-manage-highlights\", usesInheritance: true, ngImport: i0, template: \"<rolatech-property-manage-content>\\n <rolatech-toolbar title=\\\"Highlights\\\" class=\\\"hidden md:block\\\" divider></rolatech-toolbar>\\n <div>\\n @for (item of highlights; track $index) {\\n <div class=\\\"font-bold p-1\\\">{{item}}</div>\\n }\\n </div>\\n</rolatech-property-manage-content>\\n\", styles: [\"\"], dependencies: [{ kind: \"component\", type: PropertyManageContentComponent, selector: \"rolatech-property-manage-content\" }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageHighlights, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-manage-highlights', imports: [PropertyManageContentComponent, ToolbarComponent], template: \"<rolatech-property-manage-content>\\n <rolatech-toolbar title=\\\"Highlights\\\" class=\\\"hidden md:block\\\" divider></rolatech-toolbar>\\n <div>\\n @for (item of highlights; track $index) {\\n <div class=\\\"font-bold p-1\\\">{{item}}</div>\\n }\\n </div>\\n</rolatech-property-manage-content>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbWFuYWdlLWhpZ2hsaWdodHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktbWFuYWdlL3Byb3BlcnR5LW1hbmFnZS1oaWdobGlnaHRzL3Byb3BlcnR5LW1hbmFnZS1oaWdobGlnaHRzLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL3BhZ2VzL3Byb3BlcnR5LW1hbmFnZS9wcm9wZXJ0eS1tYW5hZ2UtaGlnaGxpZ2h0cy9wcm9wZXJ0eS1tYW5hZ2UtaGlnaGxpZ2h0cy5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUM5RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBUTdELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxhQUFhO0lBQ3pELGVBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDMUMsVUFBVSxHQUFHLEVBQUUsQ0FBQTtJQUNmLFFBQVE7UUFDTixJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBVyxDQUFDO1FBQ25FLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFDRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNwRCxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQzdCLENBQUM7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO3VHQWJVLHdCQUF3QjsyRkFBeEIsd0JBQXdCLHNIQ1hyQyxxU0FRQSwwREREWSw4QkFBOEIsNkVBQUUsZ0JBQWdCOzsyRkFJL0Msd0JBQXdCO2tCQU5wQyxTQUFTOytCQUNFLHFDQUFxQyxXQUN0QyxDQUFDLDhCQUE4QixFQUFFLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCwgVG9vbGJhckNvbXBvbmVudCB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgUHJvcGVydHlNYW5hZ2VDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vcHJvcGVydHktbWFuYWdlLWNvbnRlbnQvcHJvcGVydHktbWFuYWdlLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFByb3BlcnR5U2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLXNlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvcGVydHktbWFuYWdlLWhpZ2hsaWdodHMnLFxuICBpbXBvcnRzOiBbUHJvcGVydHlNYW5hZ2VDb250ZW50Q29tcG9uZW50LCBUb29sYmFyQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LW1hbmFnZS1oaWdobGlnaHRzLmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHJvcGVydHktbWFuYWdlLWhpZ2hsaWdodHMuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5TWFuYWdlSGlnaGxpZ2h0cyBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcm9wZXJ0eVNlcnZpY2UgPSBpbmplY3QoUHJvcGVydHlTZXJ2aWNlKTtcbiAgaGlnaGxpZ2h0cyA9IFtdXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaWQgPSB0aGlzLnJvdXRlLnBhcmVudD8uc25hcHNob3QucGFyYW1NYXAuZ2V0KCdpZCcpIGFzIHN0cmluZztcbiAgICB0aGlzLmZpbmQoKTtcbiAgfVxuICBmaW5kKCkge1xuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmdldEhpZ2hsaWdodHModGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmhpZ2hsaWdodHMgPSByZXMuZGF0YTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbn1cbiIsIjxyb2xhdGVjaC1wcm9wZXJ0eS1tYW5hZ2UtY29udGVudD5cbiAgPHJvbGF0ZWNoLXRvb2xiYXIgdGl0bGU9XCJIaWdobGlnaHRzXCIgY2xhc3M9XCJoaWRkZW4gbWQ6YmxvY2tcIiBkaXZpZGVyPjwvcm9sYXRlY2gtdG9vbGJhcj5cbiAgPGRpdj5cbiAgICBAZm9yIChpdGVtIG9mIGhpZ2hsaWdodHM7IHRyYWNrICRpbmRleCkge1xuICAgIDxkaXYgY2xhc3M9XCJmb250LWJvbGQgcC0xXCI+e3tpdGVtfX08L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuPC9yb2xhdGVjaC1wcm9wZXJ0eS1tYW5hZ2UtY29udGVudD5cbiJdfQ==","import { Component, inject } from '@angular/core';\nimport { PropertyManageContentComponent } from \"../property-manage-content/property-manage-content.component\";\nimport { BaseComponent, ToolbarComponent } from \"@rolatech/angular-components\";\nimport { EpcChart } from \"../../../components/epc-chart/epc-chart\";\nimport { PropertyService } from '@rolatech/angular-services';\nimport { FormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatButtonModule } from '@angular/material/button';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/form-field\";\nimport * as i2 from \"@angular/forms\";\nimport * as i3 from \"@angular/material/input\";\nimport * as i4 from \"@angular/material/button\";\nexport class PropertyManageEpc extends BaseComponent {\n propertyService = inject(PropertyService);\n currentRating = '';\n potentialRating = '';\n currentScore = 0;\n potentialScore = 0;\n ngOnInit() {\n this.id = this.route.parent?.snapshot.paramMap.get('id');\n this.get();\n }\n get() {\n this.propertyService.getEpc(this.id).subscribe({\n next: (res) => {\n this.currentScore = res.data.currentScore || 0;\n this.potentialScore = res.data.potentialScore || 0;\n }\n });\n }\n add() {\n const data = {\n currentScore: this.currentScore,\n potentialScore: this.potentialScore\n };\n this.propertyService.addEpc(this.id, data).subscribe({\n next: res => {\n this.snackBarService.open(\"EPC Added\");\n }\n });\n }\n update() {\n const data = {\n currentScore: this.currentScore,\n potentialScore: this.potentialScore\n };\n this.propertyService.updateEpc(this.id, data).subscribe({\n next: res => {\n this.snackBarService.open(\"EPC Updated\");\n }\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageEpc, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.2.0\", type: PropertyManageEpc, isStandalone: true, selector: \"rolatech-property-manage-epc\", usesInheritance: true, ngImport: i0, template: \"<rolatech-property-manage-content>\\n <rolatech-toolbar title=\\\"EPC\\\" class=\\\"hidden md:block\\\" divider></rolatech-toolbar>\\n <div class=\\\"w-full md:max-w-[70%]\\\">\\n <div class=\\\"p-2\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label>Current Score</mat-label>\\n <input matInput [(ngModel)]=\\\"currentScore\\\" placeholder=\\\"Current Score\\\" />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label>Potential Score</mat-label>\\n <input matInput [(ngModel)]=\\\"potentialScore\\\" placeholder=\\\"Potential Score\\\" />\\n </mat-form-field>\\n <button mat-flat-button (click)=\\\"add()\\\">Save</button>\\n </div>\\n <div>\\n <div class=\\\"font-bold text-lg p-2\\\">Domestic EPC</div>\\n <rolatech-epc-chart\\n [currentScore]=\\\"currentScore\\\"\\n [potentialScore]=\\\"potentialScore\\\"\\n [showCaptions]=\\\"true\\\"\\n ></rolatech-epc-chart>\\n </div>\\n </div>\\n</rolatech-property-manage-content>\\n\", styles: [\"mat-form-field{width:100%}\\n\"], dependencies: [{ kind: \"component\", type: PropertyManageContentComponent, selector: \"rolatech-property-manage-content\" }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"component\", type: EpcChart, selector: \"rolatech-epc-chart\", inputs: [\"currentScore\", \"potentialScore\", \"showCaptions\"] }, { kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"component\", type: i1.MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: i1.MatLabel, selector: \"mat-label\" }, { kind: \"ngmodule\", type: FormsModule }, { 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.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"directive\", type: i3.MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\", \"disabledInteractive\"], exportAs: [\"matInput\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i4.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageEpc, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-manage-epc', imports: [PropertyManageContentComponent, ToolbarComponent, EpcChart, MatFormFieldModule, FormsModule, MatInputModule, MatButtonModule], template: \"<rolatech-property-manage-content>\\n <rolatech-toolbar title=\\\"EPC\\\" class=\\\"hidden md:block\\\" divider></rolatech-toolbar>\\n <div class=\\\"w-full md:max-w-[70%]\\\">\\n <div class=\\\"p-2\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label>Current Score</mat-label>\\n <input matInput [(ngModel)]=\\\"currentScore\\\" placeholder=\\\"Current Score\\\" />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label>Potential Score</mat-label>\\n <input matInput [(ngModel)]=\\\"potentialScore\\\" placeholder=\\\"Potential Score\\\" />\\n </mat-form-field>\\n <button mat-flat-button (click)=\\\"add()\\\">Save</button>\\n </div>\\n <div>\\n <div class=\\\"font-bold text-lg p-2\\\">Domestic EPC</div>\\n <rolatech-epc-chart\\n [currentScore]=\\\"currentScore\\\"\\n [potentialScore]=\\\"potentialScore\\\"\\n [showCaptions]=\\\"true\\\"\\n ></rolatech-epc-chart>\\n </div>\\n </div>\\n</rolatech-property-manage-content>\\n\", styles: [\"mat-form-field{width:100%}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbWFuYWdlLWVwYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS1tYW5hZ2UvcHJvcGVydHktbWFuYWdlLWVwYy9wcm9wZXJ0eS1tYW5hZ2UtZXBjLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL3BhZ2VzL3Byb3BlcnR5LW1hbmFnZS9wcm9wZXJ0eS1tYW5hZ2UtZXBjL3Byb3BlcnR5LW1hbmFnZS1lcGMuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUM5RyxPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7O0FBUTNELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxhQUFhO0lBQ2xELGVBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDekMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUNuQixlQUFlLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLFlBQVksR0FBRyxDQUFDLENBQUM7SUFDakIsY0FBYyxHQUFHLENBQUMsQ0FBQztJQUNuQixRQUFRO1FBQ04sSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQVcsQ0FBQztRQUNuRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUE7SUFDWixDQUFDO0lBQ0QsR0FBRztRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDN0MsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDO2dCQUMvQyxJQUFJLENBQUMsY0FBYyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsQ0FBQztZQUNyRCxDQUFDO1NBQ0YsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELEdBQUc7UUFDRCxNQUFNLElBQUksR0FBRztZQUNYLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtZQUMvQixjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7U0FDcEMsQ0FBQTtRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ25ELElBQUksRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDVixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQTtZQUN4QyxDQUFDO1NBQ0YsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUNELE1BQU07UUFDSixNQUFNLElBQUksR0FBRztZQUNYLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtZQUMvQixjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7U0FDcEMsQ0FBQTtRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3RELElBQUksRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDVixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQTtZQUMxQyxDQUFDO1NBQ0YsQ0FBQyxDQUFBO0lBQ0osQ0FBQzt1R0F4Q1UsaUJBQWlCOzJGQUFqQixpQkFBaUIsK0dDaEI5QiwyOUJBd0JBLHNGRFpZLDhCQUE4Qiw2RUFBRSxnQkFBZ0IsZ0lBQUUsUUFBUSwwSEFBRSxrQkFBa0IsMFNBQUUsV0FBVyw4bUJBQUUsY0FBYyxpWUFBRSxlQUFlOzsyRkFJM0gsaUJBQWlCO2tCQU43QixTQUFTOytCQUNFLDhCQUE4QixXQUMvQixDQUFDLDhCQUE4QixFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb3BlcnR5TWFuYWdlQ29udGVudENvbXBvbmVudCB9IGZyb20gXCIuLi9wcm9wZXJ0eS1tYW5hZ2UtY29udGVudC9wcm9wZXJ0eS1tYW5hZ2UtY29udGVudC5jb21wb25lbnRcIjtcbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIFRvb2xiYXJDb21wb25lbnQgfSBmcm9tIFwiQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgRXBjQ2hhcnQgfSBmcm9tIFwiLi4vLi4vLi4vY29tcG9uZW50cy9lcGMtY2hhcnQvZXBjLWNoYXJ0XCI7XG5pbXBvcnQgeyBQcm9wZXJ0eVNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1wcm9wZXJ0eS1tYW5hZ2UtZXBjJyxcbiAgaW1wb3J0czogW1Byb3BlcnR5TWFuYWdlQ29udGVudENvbXBvbmVudCwgVG9vbGJhckNvbXBvbmVudCwgRXBjQ2hhcnQsIE1hdEZvcm1GaWVsZE1vZHVsZSwgRm9ybXNNb2R1bGUsIE1hdElucHV0TW9kdWxlLCBNYXRCdXR0b25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydHktbWFuYWdlLWVwYy5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb3BlcnR5LW1hbmFnZS1lcGMuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5TWFuYWdlRXBjIGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByb3BlcnR5U2VydmljZSA9IGluamVjdChQcm9wZXJ0eVNlcnZpY2UpXG4gIGN1cnJlbnRSYXRpbmcgPSAnJztcbiAgcG90ZW50aWFsUmF0aW5nID0gJyc7XG4gIGN1cnJlbnRTY29yZSA9IDA7XG4gIHBvdGVudGlhbFNjb3JlID0gMDtcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pZCA9IHRoaXMucm91dGUucGFyZW50Py5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ2lkJykgYXMgc3RyaW5nO1xuICAgIHRoaXMuZ2V0KClcbiAgfVxuICBnZXQoKSB7XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZ2V0RXBjKHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5jdXJyZW50U2NvcmUgPSByZXMuZGF0YS5jdXJyZW50U2NvcmUgfHwgMDtcbiAgICAgICAgdGhpcy5wb3RlbnRpYWxTY29yZSA9IHJlcy5kYXRhLnBvdGVudGlhbFNjb3JlIHx8IDA7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGFkZCgpIHtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgY3VycmVudFNjb3JlOiB0aGlzLmN1cnJlbnRTY29yZSxcbiAgICAgIHBvdGVudGlhbFNjb3JlOiB0aGlzLnBvdGVudGlhbFNjb3JlXG4gICAgfVxuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmFkZEVwYyh0aGlzLmlkLCBkYXRhKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogcmVzID0+IHtcbiAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbihcIkVQQyBBZGRlZFwiKVxuICAgICAgfVxuICAgIH0pXG4gIH1cbiAgdXBkYXRlKCkge1xuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICBjdXJyZW50U2NvcmU6IHRoaXMuY3VycmVudFNjb3JlLFxuICAgICAgcG90ZW50aWFsU2NvcmU6IHRoaXMucG90ZW50aWFsU2NvcmVcbiAgICB9XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UudXBkYXRlRXBjKHRoaXMuaWQsIGRhdGEpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiByZXMgPT4ge1xuICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKFwiRVBDIFVwZGF0ZWRcIilcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cblxufVxuXG4iLCI8cm9sYXRlY2gtcHJvcGVydHktbWFuYWdlLWNvbnRlbnQ+XG4gIDxyb2xhdGVjaC10b29sYmFyIHRpdGxlPVwiRVBDXCIgY2xhc3M9XCJoaWRkZW4gbWQ6YmxvY2tcIiBkaXZpZGVyPjwvcm9sYXRlY2gtdG9vbGJhcj5cbiAgPGRpdiBjbGFzcz1cInctZnVsbCBtZDptYXgtdy1bNzAlXVwiPlxuICAgIDxkaXYgY2xhc3M9XCJwLTJcIj5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICA8bWF0LWxhYmVsPkN1cnJlbnQgU2NvcmU8L21hdC1sYWJlbD5cbiAgICAgICAgPGlucHV0IG1hdElucHV0IFsobmdNb2RlbCldPVwiY3VycmVudFNjb3JlXCIgcGxhY2Vob2xkZXI9XCJDdXJyZW50IFNjb3JlXCIgLz5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgPG1hdC1sYWJlbD5Qb3RlbnRpYWwgU2NvcmU8L21hdC1sYWJlbD5cbiAgICAgICAgPGlucHV0IG1hdElucHV0IFsobmdNb2RlbCldPVwicG90ZW50aWFsU2NvcmVcIiBwbGFjZWhvbGRlcj1cIlBvdGVudGlhbCBTY29yZVwiIC8+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gKGNsaWNrKT1cImFkZCgpXCI+U2F2ZTwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9udC1ib2xkIHRleHQtbGcgcC0yXCI+RG9tZXN0aWMgRVBDPC9kaXY+XG4gICAgICA8cm9sYXRlY2gtZXBjLWNoYXJ0XG4gICAgICAgIFtjdXJyZW50U2NvcmVdPVwiY3VycmVudFNjb3JlXCJcbiAgICAgICAgW3BvdGVudGlhbFNjb3JlXT1cInBvdGVudGlhbFNjb3JlXCJcbiAgICAgICAgW3Nob3dDYXB0aW9uc109XCJ0cnVlXCJcbiAgICAgID48L3JvbGF0ZWNoLWVwYy1jaGFydD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3JvbGF0ZWNoLXByb3BlcnR5LW1hbmFnZS1jb250ZW50PlxuIl19","import { Component } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class PropertyManageTranslation {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageTranslation, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.2.0\", type: PropertyManageTranslation, isStandalone: true, selector: \"rolatech-property-manage-translation\", ngImport: i0, template: \"<p>property-manage-translation works!</p>\\n\", styles: [\"\"] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageTranslation, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-manage-translation', imports: [], template: \"<p>property-manage-translation works!</p>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbWFuYWdlLXRyYW5zbGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL3BhZ2VzL3Byb3BlcnR5LW1hbmFnZS9wcm9wZXJ0eS1tYW5hZ2UtdHJhbnNsYXRpb24vcHJvcGVydHktbWFuYWdlLXRyYW5zbGF0aW9uLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL3BhZ2VzL3Byb3BlcnR5LW1hbmFnZS9wcm9wZXJ0eS1tYW5hZ2UtdHJhbnNsYXRpb24vcHJvcGVydHktbWFuYWdlLXRyYW5zbGF0aW9uLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFRMUMsTUFBTSxPQUFPLHlCQUF5Qjt1R0FBekIseUJBQXlCOzJGQUF6Qix5QkFBeUIsZ0dDUnRDLDZDQUNBOzsyRkRPYSx5QkFBeUI7a0JBTnJDLFNBQVM7K0JBQ0Usc0NBQXNDLFdBQ3ZDLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvcGVydHktbWFuYWdlLXRyYW5zbGF0aW9uJyxcbiAgaW1wb3J0czogW10sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1tYW5hZ2UtdHJhbnNsYXRpb24uaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9wZXJ0eS1tYW5hZ2UtdHJhbnNsYXRpb24uc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5TWFuYWdlVHJhbnNsYXRpb24ge31cbiIsIjxwPnByb3BlcnR5LW1hbmFnZS10cmFuc2xhdGlvbiB3b3JrcyE8L3A+XG4iXX0=","import { Component } from '@angular/core';\nimport { PropertyManageContentComponent } from \"../property-manage-content/property-manage-content.component\";\nimport { ToolbarComponent } from \"@rolatech/angular-components\";\nimport * as i0 from \"@angular/core\";\nexport class PropertyManageKeywords {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageKeywords, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.2.0\", type: PropertyManageKeywords, isStandalone: true, selector: \"rolatech-property-manage-keywords\", ngImport: i0, template: \"<rolatech-property-manage-content>\\n <rolatech-toolbar title=\\\"Keywords\\\" class=\\\"hidden md:block\\\" divider></rolatech-toolbar>\\n <div></div>\\n</rolatech-property-manage-content>\\n\", styles: [\"\"], dependencies: [{ kind: \"component\", type: PropertyManageContentComponent, selector: \"rolatech-property-manage-content\" }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageKeywords, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-manage-keywords', imports: [PropertyManageContentComponent, ToolbarComponent], template: \"<rolatech-property-manage-content>\\n <rolatech-toolbar title=\\\"Keywords\\\" class=\\\"hidden md:block\\\" divider></rolatech-toolbar>\\n <div></div>\\n</rolatech-property-manage-content>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbWFuYWdlLWtleXdvcmRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL3BhZ2VzL3Byb3BlcnR5LW1hbmFnZS9wcm9wZXJ0eS1tYW5hZ2Uta2V5d29yZHMvcHJvcGVydHktbWFuYWdlLWtleXdvcmRzLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL3BhZ2VzL3Byb3BlcnR5LW1hbmFnZS9wcm9wZXJ0eS1tYW5hZ2Uta2V5d29yZHMvcHJvcGVydHktbWFuYWdlLWtleXdvcmRzLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUM5RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFRaEUsTUFBTSxPQUFPLHNCQUFzQjt1R0FBdEIsc0JBQXNCOzJGQUF0QixzQkFBc0IsNkZDVm5DLHdMQUlBLDBEREVZLDhCQUE4Qiw2RUFBRSxnQkFBZ0I7OzJGQUkvQyxzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0UsbUNBQW1DLFdBQ3BDLENBQUMsOEJBQThCLEVBQUUsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb3BlcnR5TWFuYWdlQ29udGVudENvbXBvbmVudCB9IGZyb20gXCIuLi9wcm9wZXJ0eS1tYW5hZ2UtY29udGVudC9wcm9wZXJ0eS1tYW5hZ2UtY29udGVudC5jb21wb25lbnRcIjtcbmltcG9ydCB7IFRvb2xiYXJDb21wb25lbnQgfSBmcm9tIFwiQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50c1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1wcm9wZXJ0eS1tYW5hZ2Uta2V5d29yZHMnLFxuICBpbXBvcnRzOiBbUHJvcGVydHlNYW5hZ2VDb250ZW50Q29tcG9uZW50LCBUb29sYmFyQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LW1hbmFnZS1rZXl3b3Jkcy5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb3BlcnR5LW1hbmFnZS1rZXl3b3Jkcy5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlNYW5hZ2VLZXl3b3JkcyB7IH1cbiIsIjxyb2xhdGVjaC1wcm9wZXJ0eS1tYW5hZ2UtY29udGVudD5cbiAgPHJvbGF0ZWNoLXRvb2xiYXIgdGl0bGU9XCJLZXl3b3Jkc1wiIGNsYXNzPVwiaGlkZGVuIG1kOmJsb2NrXCIgZGl2aWRlcj48L3JvbGF0ZWNoLXRvb2xiYXI+XG4gIDxkaXY+PC9kaXY+XG48L3JvbGF0ZWNoLXByb3BlcnR5LW1hbmFnZS1jb250ZW50PlxuIl19","import { Component } from '@angular/core';\nimport { PropertyManageContentComponent } from \"../property-manage-content/property-manage-content.component\";\nimport { ToolbarComponent } from \"@rolatech/angular-components\";\nimport * as i0 from \"@angular/core\";\nexport class PropertyManageFloorplan {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageFloorplan, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.2.0\", type: PropertyManageFloorplan, isStandalone: true, selector: \"rolatech-property-manage-floorplan\", ngImport: i0, template: \"<rolatech-property-manage-content>\\n <rolatech-toolbar title=\\\"Floorplan\\\" class=\\\"hidden md:block\\\" divider></rolatech-toolbar>\\n <div></div>\\n</rolatech-property-manage-content>\\n\", styles: [\"\"], dependencies: [{ kind: \"component\", type: PropertyManageContentComponent, selector: \"rolatech-property-manage-content\" }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageFloorplan, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-manage-floorplan', imports: [PropertyManageContentComponent, ToolbarComponent], template: \"<rolatech-property-manage-content>\\n <rolatech-toolbar title=\\\"Floorplan\\\" class=\\\"hidden md:block\\\" divider></rolatech-toolbar>\\n <div></div>\\n</rolatech-property-manage-content>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbWFuYWdlLWZsb29ycGxhbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS1tYW5hZ2UvcHJvcGVydHktbWFuYWdlLWZsb29ycGxhbi9wcm9wZXJ0eS1tYW5hZ2UtZmxvb3JwbGFuLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL3BhZ2VzL3Byb3BlcnR5LW1hbmFnZS9wcm9wZXJ0eS1tYW5hZ2UtZmxvb3JwbGFuL3Byb3BlcnR5LW1hbmFnZS1mbG9vcnBsYW4uaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQzlHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQVFoRSxNQUFNLE9BQU8sdUJBQXVCO3VHQUF2Qix1QkFBdUI7MkZBQXZCLHVCQUF1Qiw4RkNWcEMseUxBSUEsMERERVksOEJBQThCLDZFQUFFLGdCQUFnQjs7MkZBSS9DLHVCQUF1QjtrQkFObkMsU0FBUzsrQkFDRSxvQ0FBb0MsV0FDckMsQ0FBQyw4QkFBOEIsRUFBRSxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJvcGVydHlNYW5hZ2VDb250ZW50Q29tcG9uZW50IH0gZnJvbSBcIi4uL3Byb3BlcnR5LW1hbmFnZS1jb250ZW50L3Byb3BlcnR5LW1hbmFnZS1jb250ZW50LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgVG9vbGJhckNvbXBvbmVudCB9IGZyb20gXCJAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb3BlcnR5LW1hbmFnZS1mbG9vcnBsYW4nLFxuICBpbXBvcnRzOiBbUHJvcGVydHlNYW5hZ2VDb250ZW50Q29tcG9uZW50LCBUb29sYmFyQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LW1hbmFnZS1mbG9vcnBsYW4uaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9wZXJ0eS1tYW5hZ2UtZmxvb3JwbGFuLnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eU1hbmFnZUZsb29ycGxhbiB7IH1cbiIsIjxyb2xhdGVjaC1wcm9wZXJ0eS1tYW5hZ2UtY29udGVudD5cbiAgPHJvbGF0ZWNoLXRvb2xiYXIgdGl0bGU9XCJGbG9vcnBsYW5cIiBjbGFzcz1cImhpZGRlbiBtZDpibG9ja1wiIGRpdmlkZXI+PC9yb2xhdGVjaC10b29sYmFyPlxuICA8ZGl2PjwvZGl2PlxuPC9yb2xhdGVjaC1wcm9wZXJ0eS1tYW5hZ2UtY29udGVudD5cbiJdfQ==","import { PropertyManageIndexComponent } from './property-manage-index/property-manage-index.component';\nimport { PropertyManageCreateComponent } from './property-manage-create/property-manage-create.component';\nimport { PropertyManageLayoutComponent } from './property-manage-layout/property-manage-layout.component';\nimport { PropertyManageInfoComponent } from './property-manage-info/property-manage-info.component';\nimport { PropertyManageMediaComponent } from './property-manage-media/property-manage-media.component';\nimport { PropertyManageSectionsComponent } from './property-manage-sections/property-manage-sections.component';\nimport { PropertyManagePricingComponent } from './property-manage-pricing/property-manage-pricing.component';\nimport { PropertyManageScheduleComponent } from './property-manage-schedule/property-manage-schedule.component';\nimport { PropertyManageFeaturesComponent } from './property-manage-features/property-manage-features.component';\nimport { PropertyManageLocationComponent } from './property-manage-location/property-manage-location.component';\nimport { PropertyManageVideoComponent } from './property-manage-video/property-manage-video.component';\nimport { PropertyManageHighlights } from './property-manage-highlights/property-manage-highlights';\nimport { PropertyManageEpc } from './property-manage-epc/property-manage-epc';\nimport { PropertyManageTranslation } from './property-manage-translation/property-manage-translation';\nimport { PropertyManageKeywords } from './property-manage-keywords/property-manage-keywords';\nimport { PropertyManageFloorplan } from './property-manage-floorplan/property-manage-floorplan';\nexport const propertyManageRoutes = [\n {\n path: '',\n component: PropertyManageIndexComponent,\n },\n {\n path: 'create',\n component: PropertyManageCreateComponent,\n },\n {\n path: ':id/manage',\n component: PropertyManageLayoutComponent,\n children: [\n {\n path: 'info',\n component: PropertyManageInfoComponent,\n },\n {\n path: 'media',\n component: PropertyManageMediaComponent,\n },\n {\n path: 'videos',\n component: PropertyManageVideoComponent,\n },\n {\n path: 'sections',\n component: PropertyManageSectionsComponent,\n },\n {\n path: 'floorplan',\n component: PropertyManageFloorplan,\n },\n {\n path: 'location',\n component: PropertyManageLocationComponent,\n },\n {\n path: 'features',\n component: PropertyManageFeaturesComponent,\n },\n {\n path: 'keywords',\n component: PropertyManageKeywords,\n },\n {\n path: 'highlights',\n component: PropertyManageHighlights,\n },\n {\n path: 'epc',\n component: PropertyManageEpc,\n },\n {\n path: 'translation',\n component: PropertyManageTranslation,\n },\n // {\n // path: 'amenities',\n // component: PropertyManageAmenitiesComponent,\n // },\n // {\n // path: 'options',\n // component: PropertyManageOptionsComponent,\n // },\n {\n path: 'pricing',\n component: PropertyManagePricingComponent,\n },\n {\n path: 'schedule',\n component: PropertyManageScheduleComponent,\n },\n ],\n },\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbWFuZ2Uucm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL3BhZ2VzL3Byb3BlcnR5LW1hbmFnZS9wcm9wZXJ0eS1tYW5nZS5yb3V0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDdkcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDMUcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDMUcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDcEcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDdkcsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFFaEgsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDN0csT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFFaEgsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDaEgsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDaEgsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDdkcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDbkcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDOUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDdEcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDN0YsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFFaEcsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQVc7SUFDMUM7UUFDRSxJQUFJLEVBQUUsRUFBRTtRQUNSLFNBQVMsRUFBRSw0QkFBNEI7S0FDeEM7SUFDRDtRQUNFLElBQUksRUFBRSxRQUFRO1FBQ2QsU0FBUyxFQUFFLDZCQUE2QjtLQUN6QztJQUNEO1FBQ0UsSUFBSSxFQUFFLFlBQVk7UUFDbEIsU0FBUyxFQUFFLDZCQUE2QjtRQUN4QyxRQUFRLEVBQUU7WUFDUjtnQkFDRSxJQUFJLEVBQUUsTUFBTTtnQkFDWixTQUFTLEVBQUUsMkJBQTJCO2FBQ3ZDO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsU0FBUyxFQUFFLDRCQUE0QjthQUN4QztZQUNEO2dCQUNFLElBQUksRUFBRSxRQUFRO2dCQUNkLFNBQVMsRUFBRSw0QkFBNEI7YUFDeEM7WUFDRDtnQkFDRSxJQUFJLEVBQUUsVUFBVTtnQkFDaEIsU0FBUyxFQUFFLCtCQUErQjthQUMzQztZQUNEO2dCQUNFLElBQUksRUFBRSxXQUFXO2dCQUNqQixTQUFTLEVBQUUsdUJBQXVCO2FBQ25DO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLFNBQVMsRUFBRSwrQkFBK0I7YUFDM0M7WUFDRDtnQkFDRSxJQUFJLEVBQUUsVUFBVTtnQkFDaEIsU0FBUyxFQUFFLCtCQUErQjthQUMzQztZQUNEO2dCQUNFLElBQUksRUFBRSxVQUFVO2dCQUNoQixTQUFTLEVBQUUsc0JBQXNCO2FBQ2xDO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFlBQVk7Z0JBQ2xCLFNBQVMsRUFBRSx3QkFBd0I7YUFDcEM7WUFDRDtnQkFDRSxJQUFJLEVBQUUsS0FBSztnQkFDWCxTQUFTLEVBQUUsaUJBQWlCO2FBQzdCO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLGFBQWE7Z0JBQ25CLFNBQVMsRUFBRSx5QkFBeUI7YUFDckM7WUFDRCxJQUFJO1lBQ0osdUJBQXVCO1lBQ3ZCLGlEQUFpRDtZQUNqRCxLQUFLO1lBQ0wsSUFBSTtZQUNKLHFCQUFxQjtZQUNyQiwrQ0FBK0M7WUFDL0MsS0FBSztZQUNMO2dCQUNFLElBQUksRUFBRSxTQUFTO2dCQUNmLFNBQVMsRUFBRSw4QkFBOEI7YUFDMUM7WUFDRDtnQkFDRSxJQUFJLEVBQUUsVUFBVTtnQkFDaEIsU0FBUyxFQUFFLCtCQUErQjthQUMzQztTQUNGO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFByb3BlcnR5TWFuYWdlSW5kZXhDb21wb25lbnQgfSBmcm9tICcuL3Byb3BlcnR5LW1hbmFnZS1pbmRleC9wcm9wZXJ0eS1tYW5hZ2UtaW5kZXguY29tcG9uZW50JztcbmltcG9ydCB7IFByb3BlcnR5TWFuYWdlQ3JlYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9wcm9wZXJ0eS1tYW5hZ2UtY3JlYXRlL3Byb3BlcnR5LW1hbmFnZS1jcmVhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IFByb3BlcnR5TWFuYWdlTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi9wcm9wZXJ0eS1tYW5hZ2UtbGF5b3V0L3Byb3BlcnR5LW1hbmFnZS1sYXlvdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFByb3BlcnR5TWFuYWdlSW5mb0NvbXBvbmVudCB9IGZyb20gJy4vcHJvcGVydHktbWFuYWdlLWluZm8vcHJvcGVydHktbWFuYWdlLWluZm8uY29tcG9uZW50JztcbmltcG9ydCB7IFByb3BlcnR5TWFuYWdlTWVkaWFDb21wb25lbnQgfSBmcm9tICcuL3Byb3BlcnR5LW1hbmFnZS1tZWRpYS9wcm9wZXJ0eS1tYW5hZ2UtbWVkaWEuY29tcG9uZW50JztcbmltcG9ydCB7IFByb3BlcnR5TWFuYWdlU2VjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL3Byb3BlcnR5LW1hbmFnZS1zZWN0aW9ucy9wcm9wZXJ0eS1tYW5hZ2Utc2VjdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IFByb3BlcnR5TWFuYWdlT3B0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4vcHJvcGVydHktbWFuYWdlLW9wdGlvbnMvcHJvcGVydHktbWFuYWdlLW9wdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IFByb3BlcnR5TWFuYWdlUHJpY2luZ0NvbXBvbmVudCB9IGZyb20gJy4vcHJvcGVydHktbWFuYWdlLXByaWNpbmcvcHJvcGVydHktbWFuYWdlLXByaWNpbmcuY29tcG9uZW50JztcbmltcG9ydCB7IFByb3BlcnR5TWFuYWdlU2NoZWR1bGVDb21wb25lbnQgfSBmcm9tICcuL3Byb3BlcnR5LW1hbmFnZS1zY2hlZHVsZS9wcm9wZXJ0eS1tYW5hZ2Utc2NoZWR1bGUuY29tcG9uZW50JztcbmltcG9ydCB7IFByb3BlcnR5TWFuYWdlQW1lbml0aWVzQ29tcG9uZW50IH0gZnJvbSAnLi9wcm9wZXJ0eS1tYW5hZ2UtYW1lbml0aWVzL3Byb3BlcnR5LW1hbmFnZS1hbWVuaXRpZXMuY29tcG9uZW50JztcbmltcG9ydCB7IFByb3BlcnR5TWFuYWdlRmVhdHVyZXNDb21wb25lbnQgfSBmcm9tICcuL3Byb3BlcnR5LW1hbmFnZS1mZWF0dXJlcy9wcm9wZXJ0eS1tYW5hZ2UtZmVhdHVyZXMuY29tcG9uZW50JztcbmltcG9ydCB7IFByb3BlcnR5TWFuYWdlTG9jYXRpb25Db21wb25lbnQgfSBmcm9tICcuL3Byb3BlcnR5LW1hbmFnZS1sb2NhdGlvbi9wcm9wZXJ0eS1tYW5hZ2UtbG9jYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFByb3BlcnR5TWFuYWdlVmlkZW9Db21wb25lbnQgfSBmcm9tICcuL3Byb3BlcnR5LW1hbmFnZS12aWRlby9wcm9wZXJ0eS1tYW5hZ2UtdmlkZW8uY29tcG9uZW50JztcbmltcG9ydCB7IFByb3BlcnR5TWFuYWdlSGlnaGxpZ2h0cyB9IGZyb20gJy4vcHJvcGVydHktbWFuYWdlLWhpZ2hsaWdodHMvcHJvcGVydHktbWFuYWdlLWhpZ2hsaWdodHMnO1xuaW1wb3J0IHsgUHJvcGVydHlNYW5hZ2VFcGMgfSBmcm9tICcuL3Byb3BlcnR5LW1hbmFnZS1lcGMvcHJvcGVydHktbWFuYWdlLWVwYyc7XG5pbXBvcnQgeyBQcm9wZXJ0eU1hbmFnZVRyYW5zbGF0aW9uIH0gZnJvbSAnLi9wcm9wZXJ0eS1tYW5hZ2UtdHJhbnNsYXRpb24vcHJvcGVydHktbWFuYWdlLXRyYW5zbGF0aW9uJztcbmltcG9ydCB7IFByb3BlcnR5TWFuYWdlS2V5d29yZHMgfSBmcm9tICcuL3Byb3BlcnR5LW1hbmFnZS1rZXl3b3Jkcy9wcm9wZXJ0eS1tYW5hZ2Uta2V5d29yZHMnO1xuaW1wb3J0IHsgUHJvcGVydHlNYW5hZ2VGbG9vcnBsYW4gfSBmcm9tICcuL3Byb3BlcnR5LW1hbmFnZS1mbG9vcnBsYW4vcHJvcGVydHktbWFuYWdlLWZsb29ycGxhbic7XG5cbmV4cG9ydCBjb25zdCBwcm9wZXJ0eU1hbmFnZVJvdXRlczogUm91dGVzID0gW1xuICB7XG4gICAgcGF0aDogJycsXG4gICAgY29tcG9uZW50OiBQcm9wZXJ0eU1hbmFnZUluZGV4Q29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ2NyZWF0ZScsXG4gICAgY29tcG9uZW50OiBQcm9wZXJ0eU1hbmFnZUNyZWF0ZUNvbXBvbmVudCxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICc6aWQvbWFuYWdlJyxcbiAgICBjb21wb25lbnQ6IFByb3BlcnR5TWFuYWdlTGF5b3V0Q29tcG9uZW50LFxuICAgIGNoaWxkcmVuOiBbXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICdpbmZvJyxcbiAgICAgICAgY29tcG9uZW50OiBQcm9wZXJ0eU1hbmFnZUluZm9Db21wb25lbnQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwYXRoOiAnbWVkaWEnLFxuICAgICAgICBjb21wb25lbnQ6IFByb3BlcnR5TWFuYWdlTWVkaWFDb21wb25lbnQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwYXRoOiAndmlkZW9zJyxcbiAgICAgICAgY29tcG9uZW50OiBQcm9wZXJ0eU1hbmFnZVZpZGVvQ29tcG9uZW50LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcGF0aDogJ3NlY3Rpb25zJyxcbiAgICAgICAgY29tcG9uZW50OiBQcm9wZXJ0eU1hbmFnZVNlY3Rpb25zQ29tcG9uZW50LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcGF0aDogJ2Zsb29ycGxhbicsXG4gICAgICAgIGNvbXBvbmVudDogUHJvcGVydHlNYW5hZ2VGbG9vcnBsYW4sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwYXRoOiAnbG9jYXRpb24nLFxuICAgICAgICBjb21wb25lbnQ6IFByb3BlcnR5TWFuYWdlTG9jYXRpb25Db21wb25lbnQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwYXRoOiAnZmVhdHVyZXMnLFxuICAgICAgICBjb21wb25lbnQ6IFByb3BlcnR5TWFuYWdlRmVhdHVyZXNDb21wb25lbnQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwYXRoOiAna2V5d29yZHMnLFxuICAgICAgICBjb21wb25lbnQ6IFByb3BlcnR5TWFuYWdlS2V5d29yZHMsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwYXRoOiAnaGlnaGxpZ2h0cycsXG4gICAgICAgIGNvbXBvbmVudDogUHJvcGVydHlNYW5hZ2VIaWdobGlnaHRzLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcGF0aDogJ2VwYycsXG4gICAgICAgIGNvbXBvbmVudDogUHJvcGVydHlNYW5hZ2VFcGMsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwYXRoOiAndHJhbnNsYXRpb24nLFxuICAgICAgICBjb21wb25lbnQ6IFByb3BlcnR5TWFuYWdlVHJhbnNsYXRpb24sXG4gICAgICB9LFxuICAgICAgLy8ge1xuICAgICAgLy8gICBwYXRoOiAnYW1lbml0aWVzJyxcbiAgICAgIC8vICAgY29tcG9uZW50OiBQcm9wZXJ0eU1hbmFnZUFtZW5pdGllc0NvbXBvbmVudCxcbiAgICAgIC8vIH0sXG4gICAgICAvLyB7XG4gICAgICAvLyAgIHBhdGg6ICdvcHRpb25zJyxcbiAgICAgIC8vICAgY29tcG9uZW50OiBQcm9wZXJ0eU1hbmFnZU9wdGlvbnNDb21wb25lbnQsXG4gICAgICAvLyB9LFxuICAgICAge1xuICAgICAgICBwYXRoOiAncHJpY2luZycsXG4gICAgICAgIGNvbXBvbmVudDogUHJvcGVydHlNYW5hZ2VQcmljaW5nQ29tcG9uZW50LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcGF0aDogJ3NjaGVkdWxlJyxcbiAgICAgICAgY29tcG9uZW50OiBQcm9wZXJ0eU1hbmFnZVNjaGVkdWxlQ29tcG9uZW50LFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuXTtcbiJdfQ==","import { Component, model, output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class PropertyViewingConfirmationComponent {\n output = output();\n proposedTime = model(...(ngDevMode ? [undefined, { debugName: \"proposedTime\" }] : []));\n selectedTime = model(...(ngDevMode ? [undefined, { debugName: \"selectedTime\" }] : []));\n ngDoCheck() {\n this.output.emit(true);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyViewingConfirmationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyViewingConfirmationComponent, isStandalone: true, selector: \"rolatech-property-viewing-confirmation\", inputs: { proposedTime: { classPropertyName: \"proposedTime\", publicName: \"proposedTime\", isSignal: true, isRequired: false, transformFunction: null }, selectedTime: { classPropertyName: \"selectedTime\", publicName: \"selectedTime\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { output: \"output\", proposedTime: \"proposedTimeChange\", selectedTime: \"selectedTimeChange\" }, ngImport: i0, template: \"<div>\\n @if (proposedTime()) {\\n <div>\\n <span> {{ proposedTime().date }} </span><span>{{ proposedTime().time }}</span>\\n </div>\\n }\\n</div>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyViewingConfirmationComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-viewing-confirmation', imports: [CommonModule], template: \"<div>\\n @if (proposedTime()) {\\n <div>\\n <span> {{ proposedTime().date }} </span><span>{{ proposedTime().time }}</span>\\n </div>\\n }\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktdmlld2luZy1jb25maXJtYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktdmlld2luZy1jb25maXJtYXRpb24vcHJvcGVydHktdmlld2luZy1jb25maXJtYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktdmlld2luZy1jb25maXJtYXRpb24vcHJvcGVydHktdmlld2luZy1jb25maXJtYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFRL0MsTUFBTSxPQUFPLG9DQUFvQztJQUMvQyxNQUFNLEdBQUcsTUFBTSxFQUFPLENBQUM7SUFDdkIsWUFBWSxHQUFHLEtBQUssa0VBQU8sQ0FBQztJQUM1QixZQUFZLEdBQUcsS0FBSyxrRUFBTyxDQUFDO0lBRTVCLFNBQVM7UUFDUCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDO3VHQVBVLG9DQUFvQzsyRkFBcEMsb0NBQW9DLCtlQ1RqRCw2SkFPQSx5RERGWSxZQUFZOzsyRkFJWCxvQ0FBb0M7a0JBTmhELFNBQVM7K0JBQ0Usd0NBQXdDLFdBQ3pDLENBQUMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBEb0NoZWNrLCBtb2RlbCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1wcm9wZXJ0eS12aWV3aW5nLWNvbmZpcm1hdGlvbicsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydHktdmlld2luZy1jb25maXJtYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHJvcGVydHktdmlld2luZy1jb25maXJtYXRpb24uY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eVZpZXdpbmdDb25maXJtYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBEb0NoZWNrIHtcbiAgb3V0cHV0ID0gb3V0cHV0PGFueT4oKTtcbiAgcHJvcG9zZWRUaW1lID0gbW9kZWw8YW55PigpO1xuICBzZWxlY3RlZFRpbWUgPSBtb2RlbDxhbnk+KCk7XG5cbiAgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgIHRoaXMub3V0cHV0LmVtaXQodHJ1ZSk7XG4gIH1cbn1cbiIsIjxkaXY+XG4gIEBpZiAocHJvcG9zZWRUaW1lKCkpIHtcbiAgICA8ZGl2PlxuICAgICAgPHNwYW4+IHt7IHByb3Bvc2VkVGltZSgpLmRhdGUgfX0gPC9zcGFuPjxzcGFuPnt7IHByb3Bvc2VkVGltZSgpLnRpbWUgfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuIl19","import { Component, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ToolbarComponent, BaseComponent, RichLabelComponent, ThumbnailComponent } from '@rolatech/angular-components';\nimport { AuthUserService } from '@rolatech/angular-auth';\nimport { PropertyService } from '@rolatech/angular-services';\nimport { PropertyViewingStatus, EmploymentStatus, PropertyViewerCategory, } from '../../../interfaces';\nimport { FixedPipe } from '@rolatech/angular-common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { PropertyViewingConfirmationComponent } from '../../../components/property-viewing-confirmation/property-viewing-confirmation.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\nexport class PropertyManageViewingsDetailComponent extends BaseComponent {\n propertyService = inject(PropertyService);\n authUserService = inject(AuthUserService);\n viewing;\n name = '';\n property;\n status = PropertyViewingStatus;\n employmentStatus = EmploymentStatus;\n propertyViewerCategory = PropertyViewerCategory;\n agent;\n viewingTimeConfirmed = false;\n selectedSlotId = '';\n ngOnInit() {\n this.getViewing();\n }\n getViewing() {\n this.propertyService.getViewing(this.id).subscribe({\n next: (res) => {\n this.viewing = res.data;\n this.name = this.viewing.firstName + ', ' + this.viewing.lastName;\n this.getProperty(this.viewing.propertyId);\n this.viewingTimeConfirmed = this.viewing.viewingDate ? true : false;\n },\n });\n }\n getProperty(propertyId) {\n this.propertyService.get(propertyId).subscribe({\n next: (res) => {\n this.property = res.data;\n this.getAgentPublicInfo(this.property.agentId);\n },\n });\n }\n getAgentPublicInfo(agentId) {\n this.authUserService.getPublicUserInfo(agentId).subscribe({\n next: (res) => {\n this.agent = res;\n },\n });\n }\n findConfirmedViewingTime() {\n const viewingProposedSlot = this.viewing.proposedSlots.find((item) => {\n return item.date === this.viewing.viewingDate && item.time === this.viewing.viewingTime;\n });\n this.selectedSlotId = viewingProposedSlot.id;\n }\n confirmViewingTime(item) {\n const options = {\n title: 'Confirm viewing time',\n component: PropertyViewingConfirmationComponent,\n data: {\n proposedTime: item,\n },\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe({\n next: (result) => {\n if (result) {\n console.log(result);\n this.propertyService.confirmViewing(this.id, item.id).subscribe({\n next: (res) => {\n this.viewingTimeConfirmed = true;\n },\n });\n }\n },\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageViewingsDetailComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: PropertyManageViewingsDetailComponent, isStandalone: true, selector: \"rolatech-property-manage-viewings-detail\", usesInheritance: true, ngImport: i0, template: \"@if (viewing) {\\n <rolatech-toolbar [title]=\\\"status[viewing.status]\\\" large link=\\\"../\\\"></rolatech-toolbar>\\n <div class=\\\"px-4\\\">\\n <div>\\n <div class=\\\"text-lg font-bold py-2\\\" i18n>Viewer</div>\\n <hr class=\\\"mb-2\\\" />\\n <div class=\\\"flex flex-col md:flex-row gap-1 md:gap-3\\\">\\n <rolatech-rich-label label=\\\"Name\\\" [title]=\\\"name\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Email\\\" [title]=\\\"viewing.email\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Phone\\\" [title]=\\\"viewing.phone\\\"></rolatech-rich-label>\\n </div>\\n </div>\\n <div>\\n <div class=\\\"text-lg font-bold py-2\\\" i18n>Proposed times</div>\\n <hr class=\\\"mb-2\\\" />\\n @for (item of viewing.proposedSlots; track $index) {\\n <div class=\\\"flex flex-row items-center gap-3 py-3\\\">\\n <rolatech-rich-label label=\\\"Date\\\" [title]=\\\"item.date\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Time\\\" [title]=\\\"item.time\\\"></rolatech-rich-label>\\n @if (viewing.viewingDate && viewing.viewingTime) {\\n @if (item.date === viewing.viewingDate && item.time === viewing.viewingTime) {\\n <div class=\\\"ml-3\\\"><button mat-flat-button i18n disabled=\\\"\\\">Confirmed</button></div>\\n }\\n }\\n @if (!viewingTimeConfirmed) {\\n <div class=\\\"ml-3\\\"><button mat-flat-button (click)=\\\"confirmViewingTime(item)\\\" i18n>Confirm</button></div>\\n }\\n </div>\\n }\\n </div>\\n <!-- Introducing agent -->\\n @if (viewing.viewerCategory.toString() === 'AGENT') {\\n <div>\\n <div class=\\\"text-lg font-bold py-2\\\" i18n>Qualification</div>\\n <hr class=\\\"mb-2\\\" />\\n <div class=\\\"flex flex-col md:flex-row gap-1 md:gap-3\\\">\\n <!-- <rolatech-rich-label label=\\\"Move-in date\\\" [title]=\\\"viewing.startDate\\\"></rolatech-rich-label> -->\\n <rolatech-rich-label label=\\\"Tenancy duration\\\" [title]=\\\"viewing.tenancyDuration\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Number of tenants\\\" [title]=\\\"viewing.numberOfTenants\\\"></rolatech-rich-label>\\n </div>\\n <div class=\\\"flex flex-col md:flex-row gap-1 md:gap-3\\\">\\n <rolatech-rich-label\\n label=\\\"Employment status\\\"\\n [title]=\\\"employmentStatus[viewing.employmentStatus]\\\"\\n ></rolatech-rich-label>\\n <!-- <rolatech-rich-label label=\\\"Employer\\\" [title]=\\\"viewing.startDate\\\"></rolatech-rich-label> -->\\n <rolatech-rich-label label=\\\"Annual income\\\" [title]=\\\"viewing.income\\\"></rolatech-rich-label>\\n </div>\\n </div>\\n }\\n\\n <div>\\n <div class=\\\"text-lg font-bold py-2\\\" i18n>Property details</div>\\n <hr class=\\\"mb-2\\\" />\\n @if (property) {\\n <div class=\\\"flex items-center py-2\\\">\\n <div class=\\\"min-w-16 w-24 object-cover aspect-video rounded-md mr-3\\\">\\n @defer {\\n <rolatech-thumbnail [src]=\\\"property.media[0].url\\\" size=\\\"medium\\\" mode=\\\"full\\\"> </rolatech-thumbnail>\\n } @placeholder {\\n <div class=\\\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\\\"></div>\\n }\\n </div>\\n <div class=\\\"flex w-full justify-between\\\">\\n <div class=\\\"flex justify-between w-full\\\">\\n <div class=\\\"flex flex-col\\\">\\n <div>{{ property.title }}</div>\\n <div class=\\\"inline-flex gap-1 mt-2\\\">\\n <div>\\n <span class=\\\"mr-1\\\">{{ property.bedrooms }}</span>\\n <span i18n>Bedrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ property.bathrooms }}</span>\\n <span i18n>Bathrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ property.receptions }}</span>\\n <span i18n>Receptions</span>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"text-right\\\">\\n <div class=\\\"text-sm\\\">\\u00A3{{ property.price | fixed }}</div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"hidden md:flex flex-col px-3\\\"></div>\\n </div>\\n }\\n </div>\\n\\n <div>\\n <div class=\\\"text-lg font-bold py-2\\\" i18n>Viewing agent</div>\\n <hr class=\\\"mb-2\\\" />\\n @if (agent) {\\n <div class=\\\"flex flex-col md:flex-row gap-1 md:gap-3\\\">\\n <rolatech-rich-label label=\\\"Name\\\" [title]=\\\"agent.name\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Email\\\" [title]=\\\"agent.email\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Phone\\\" [title]=\\\"agent.phone\\\"></rolatech-rich-label>\\n </div>\\n }\\n </div>\\n </div>\\n}\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"component\", type: RichLabelComponent, selector: \"rolatech-rich-label\", inputs: [\"label\", \"title\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i1.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"pipe\", type: FixedPipe, name: \"fixed\" }], deferBlockDependencies: [() => [ThumbnailComponent]] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyManageViewingsDetailComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-manage-viewings-detail', imports: [CommonModule, ToolbarComponent, RichLabelComponent, ThumbnailComponent, FixedPipe, MatButtonModule], template: \"@if (viewing) {\\n <rolatech-toolbar [title]=\\\"status[viewing.status]\\\" large link=\\\"../\\\"></rolatech-toolbar>\\n <div class=\\\"px-4\\\">\\n <div>\\n <div class=\\\"text-lg font-bold py-2\\\" i18n>Viewer</div>\\n <hr class=\\\"mb-2\\\" />\\n <div class=\\\"flex flex-col md:flex-row gap-1 md:gap-3\\\">\\n <rolatech-rich-label label=\\\"Name\\\" [title]=\\\"name\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Email\\\" [title]=\\\"viewing.email\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Phone\\\" [title]=\\\"viewing.phone\\\"></rolatech-rich-label>\\n </div>\\n </div>\\n <div>\\n <div class=\\\"text-lg font-bold py-2\\\" i18n>Proposed times</div>\\n <hr class=\\\"mb-2\\\" />\\n @for (item of viewing.proposedSlots; track $index) {\\n <div class=\\\"flex flex-row items-center gap-3 py-3\\\">\\n <rolatech-rich-label label=\\\"Date\\\" [title]=\\\"item.date\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Time\\\" [title]=\\\"item.time\\\"></rolatech-rich-label>\\n @if (viewing.viewingDate && viewing.viewingTime) {\\n @if (item.date === viewing.viewingDate && item.time === viewing.viewingTime) {\\n <div class=\\\"ml-3\\\"><button mat-flat-button i18n disabled=\\\"\\\">Confirmed</button></div>\\n }\\n }\\n @if (!viewingTimeConfirmed) {\\n <div class=\\\"ml-3\\\"><button mat-flat-button (click)=\\\"confirmViewingTime(item)\\\" i18n>Confirm</button></div>\\n }\\n </div>\\n }\\n </div>\\n <!-- Introducing agent -->\\n @if (viewing.viewerCategory.toString() === 'AGENT') {\\n <div>\\n <div class=\\\"text-lg font-bold py-2\\\" i18n>Qualification</div>\\n <hr class=\\\"mb-2\\\" />\\n <div class=\\\"flex flex-col md:flex-row gap-1 md:gap-3\\\">\\n <!-- <rolatech-rich-label label=\\\"Move-in date\\\" [title]=\\\"viewing.startDate\\\"></rolatech-rich-label> -->\\n <rolatech-rich-label label=\\\"Tenancy duration\\\" [title]=\\\"viewing.tenancyDuration\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Number of tenants\\\" [title]=\\\"viewing.numberOfTenants\\\"></rolatech-rich-label>\\n </div>\\n <div class=\\\"flex flex-col md:flex-row gap-1 md:gap-3\\\">\\n <rolatech-rich-label\\n label=\\\"Employment status\\\"\\n [title]=\\\"employmentStatus[viewing.employmentStatus]\\\"\\n ></rolatech-rich-label>\\n <!-- <rolatech-rich-label label=\\\"Employer\\\" [title]=\\\"viewing.startDate\\\"></rolatech-rich-label> -->\\n <rolatech-rich-label label=\\\"Annual income\\\" [title]=\\\"viewing.income\\\"></rolatech-rich-label>\\n </div>\\n </div>\\n }\\n\\n <div>\\n <div class=\\\"text-lg font-bold py-2\\\" i18n>Property details</div>\\n <hr class=\\\"mb-2\\\" />\\n @if (property) {\\n <div class=\\\"flex items-center py-2\\\">\\n <div class=\\\"min-w-16 w-24 object-cover aspect-video rounded-md mr-3\\\">\\n @defer {\\n <rolatech-thumbnail [src]=\\\"property.media[0].url\\\" size=\\\"medium\\\" mode=\\\"full\\\"> </rolatech-thumbnail>\\n } @placeholder {\\n <div class=\\\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\\\"></div>\\n }\\n </div>\\n <div class=\\\"flex w-full justify-between\\\">\\n <div class=\\\"flex justify-between w-full\\\">\\n <div class=\\\"flex flex-col\\\">\\n <div>{{ property.title }}</div>\\n <div class=\\\"inline-flex gap-1 mt-2\\\">\\n <div>\\n <span class=\\\"mr-1\\\">{{ property.bedrooms }}</span>\\n <span i18n>Bedrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ property.bathrooms }}</span>\\n <span i18n>Bathrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ property.receptions }}</span>\\n <span i18n>Receptions</span>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"text-right\\\">\\n <div class=\\\"text-sm\\\">\\u00A3{{ property.price | fixed }}</div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"hidden md:flex flex-col px-3\\\"></div>\\n </div>\\n }\\n </div>\\n\\n <div>\\n <div class=\\\"text-lg font-bold py-2\\\" i18n>Viewing agent</div>\\n <hr class=\\\"mb-2\\\" />\\n @if (agent) {\\n <div class=\\\"flex flex-col md:flex-row gap-1 md:gap-3\\\">\\n <rolatech-rich-label label=\\\"Name\\\" [title]=\\\"agent.name\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Email\\\" [title]=\\\"agent.email\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Phone\\\" [title]=\\\"agent.phone\\\"></rolatech-rich-label>\\n </div>\\n }\\n </div>\\n </div>\\n}\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbWFuYWdlLXZpZXdpbmdzLWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktbWFuYWdlL3Byb3BlcnR5LW1hbmFnZS12aWV3aW5ncy1kZXRhaWwvcHJvcGVydHktbWFuYWdlLXZpZXdpbmdzLWRldGFpbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktbWFuYWdlL3Byb3BlcnR5LW1hbmFnZS12aWV3aW5ncy1kZXRhaWwvcHJvcGVydHktbWFuYWdlLXZpZXdpbmdzLWRldGFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUVMLHFCQUFxQixFQUNyQixnQkFBZ0IsRUFFaEIsc0JBQXNCLEdBQ3ZCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSwyRkFBMkYsQ0FBQzs7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QUFTLEVBQUUsQ0FBQyxTQUFTLENBQUM7WUFDdkMsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ2YsSUFBSSxNQUFNLEVBQUUsQ0FBQztvQkFDWCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUNwQixJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUM7d0JBQzlELElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFOzRCQUNaLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7d0JBQ25DLENBQUM7cUJBQ0YsQ0FBQyxDQUFDO2dCQUNMLENBQUM7WUFDSCxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0FuRVUscUNBQXFDOzJGQUFyQyxxQ0FBcUMsMkhDdkJsRCxreUpBeUdBLHlERHZGWSxZQUFZLCtCQUFFLGdCQUFnQixnSUFBRSxrQkFBa0IsMkZBQWlDLGVBQWUsK1dBQTFCLFNBQVMsb0RBQTdCLGtCQUFrQjs7MkZBS3JFLHFDQUFxQztrQkFQakQsU0FBUzsrQkFDRSwwQ0FBMEMsV0FDM0MsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUb29sYmFyQ29tcG9uZW50LCBCYXNlQ29tcG9uZW50LCBSaWNoTGFiZWxDb21wb25lbnQsIFRodW1ibmFpbENvbXBvbmVudCB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQXV0aFVzZXJTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItYXV0aCc7XG5pbXBvcnQgeyBQcm9wZXJ0eVNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1zZXJ2aWNlcyc7XG5pbXBvcnQge1xuICBQcm9wZXJ0eSxcbiAgUHJvcGVydHlWaWV3aW5nU3RhdHVzLFxuICBFbXBsb3ltZW50U3RhdHVzLFxuICBQcm9wZXJ0eVZpZXdpbmcsXG4gIFByb3BlcnR5Vmlld2VyQ2F0ZWdvcnksXG59IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgRml4ZWRQaXBlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBQcm9wZXJ0eVZpZXdpbmdDb25maXJtYXRpb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL3Byb3BlcnR5LXZpZXdpbmctY29uZmlybWF0aW9uL3Byb3BlcnR5LXZpZXdpbmctY29uZmlybWF0aW9uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb3BlcnR5LW1hbmFnZS12aWV3aW5ncy1kZXRhaWwnLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUb29sYmFyQ29tcG9uZW50LCBSaWNoTGFiZWxDb21wb25lbnQsIFRodW1ibmFpbENvbXBvbmVudCwgRml4ZWRQaXBlLCBNYXRCdXR0b25Nb2R1bGVdLFxuXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1tYW5hZ2Utdmlld2luZ3MtZGV0YWlsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb3BlcnR5LW1hbmFnZS12aWV3aW5ncy1kZXRhaWwuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eU1hbmFnZVZpZXdpbmdzRGV0YWlsQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByb3BlcnR5U2VydmljZSA9IGluamVjdChQcm9wZXJ0eVNlcnZpY2UpO1xuICBhdXRoVXNlclNlcnZpY2UgPSBpbmplY3QoQXV0aFVzZXJTZXJ2aWNlKTtcbiAgdmlld2luZyE6IFByb3BlcnR5Vmlld2luZztcbiAgbmFtZSA9ICcnO1xuICBwcm9wZXJ0eSE6IFByb3BlcnR5O1xuICBzdGF0dXMgPSBQcm9wZXJ0eVZpZXdpbmdTdGF0dXM7XG4gIGVtcGxveW1lbnRTdGF0dXMgPSBFbXBsb3ltZW50U3RhdHVzO1xuICBwcm9wZXJ0eVZpZXdlckNhdGVnb3J5ID0gUHJvcGVydHlWaWV3ZXJDYXRlZ29yeTtcbiAgYWdlbnQ6IGFueTtcbiAgdmlld2luZ1RpbWVDb25maXJtZWQgPSBmYWxzZTtcbiAgc2VsZWN0ZWRTbG90SWQgPSAnJztcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5nZXRWaWV3aW5nKCk7XG4gIH1cbiAgZ2V0Vmlld2luZygpIHtcbiAgICB0aGlzLnByb3BlcnR5U2VydmljZS5nZXRWaWV3aW5nKHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMudmlld2luZyA9IHJlcy5kYXRhO1xuICAgICAgICB0aGlzLm5hbWUgPSB0aGlzLnZpZXdpbmcuZmlyc3ROYW1lICsgJywgJyArIHRoaXMudmlld2luZy5sYXN0TmFtZTtcbiAgICAgICAgdGhpcy5nZXRQcm9wZXJ0eSh0aGlzLnZpZXdpbmcucHJvcGVydHlJZCk7XG4gICAgICAgIHRoaXMudmlld2luZ1RpbWVDb25maXJtZWQgPSB0aGlzLnZpZXdpbmcudmlld2luZ0RhdGUgPyB0cnVlIDogZmFsc2U7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGdldFByb3BlcnR5KHByb3BlcnR5SWQ6IHN0cmluZykge1xuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmdldChwcm9wZXJ0eUlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMucHJvcGVydHkgPSByZXMuZGF0YTtcbiAgICAgICAgdGhpcy5nZXRBZ2VudFB1YmxpY0luZm8odGhpcy5wcm9wZXJ0eS5hZ2VudElkKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgZ2V0QWdlbnRQdWJsaWNJbmZvKGFnZW50SWQ6IHN0cmluZykge1xuICAgIHRoaXMuYXV0aFVzZXJTZXJ2aWNlLmdldFB1YmxpY1VzZXJJbmZvKGFnZW50SWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuYWdlbnQgPSByZXM7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGZpbmRDb25maXJtZWRWaWV3aW5nVGltZSgpIHtcbiAgICBjb25zdCB2aWV3aW5nUHJvcG9zZWRTbG90OiBhbnkgPSB0aGlzLnZpZXdpbmcucHJvcG9zZWRTbG90cy5maW5kKChpdGVtKSA9PiB7XG4gICAgICByZXR1cm4gaXRlbS5kYXRlID09PSB0aGlzLnZpZXdpbmcudmlld2luZ0RhdGUgJiYgaXRlbS50aW1lID09PSB0aGlzLnZpZXdpbmcudmlld2luZ1RpbWU7XG4gICAgfSk7XG4gICAgdGhpcy5zZWxlY3RlZFNsb3RJZCA9IHZpZXdpbmdQcm9wb3NlZFNsb3QuaWQ7XG4gIH1cbiAgY29uZmlybVZpZXdpbmdUaW1lKGl0ZW06IGFueSkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICB0aXRsZTogJ0NvbmZpcm0gdmlld2luZyB0aW1lJyxcbiAgICAgIGNvbXBvbmVudDogUHJvcGVydHlWaWV3aW5nQ29uZmlybWF0aW9uQ29tcG9uZW50LFxuICAgICAgZGF0YToge1xuICAgICAgICBwcm9wb3NlZFRpbWU6IGl0ZW0sXG4gICAgICB9LFxuICAgIH07XG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW4ob3B0aW9ucyk7XG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmNvbmZpcm1lZCgpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzdWx0KSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhyZXN1bHQpO1xuICAgICAgICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmNvbmZpcm1WaWV3aW5nKHRoaXMuaWQsIGl0ZW0uaWQpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMudmlld2luZ1RpbWVDb25maXJtZWQgPSB0cnVlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwiQGlmICh2aWV3aW5nKSB7XG4gIDxyb2xhdGVjaC10b29sYmFyIFt0aXRsZV09XCJzdGF0dXNbdmlld2luZy5zdGF0dXNdXCIgbGFyZ2UgbGluaz1cIi4uL1wiPjwvcm9sYXRlY2gtdG9vbGJhcj5cbiAgPGRpdiBjbGFzcz1cInB4LTRcIj5cbiAgICA8ZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtbGcgZm9udC1ib2xkIHB5LTJcIiBpMThuPlZpZXdlcjwvZGl2PlxuICAgICAgPGhyIGNsYXNzPVwibWItMlwiIC8+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBtZDpmbGV4LXJvdyBnYXAtMSBtZDpnYXAtM1wiPlxuICAgICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIk5hbWVcIiBbdGl0bGVdPVwibmFtZVwiPjwvcm9sYXRlY2gtcmljaC1sYWJlbD5cbiAgICAgICAgPHJvbGF0ZWNoLXJpY2gtbGFiZWwgbGFiZWw9XCJFbWFpbFwiIFt0aXRsZV09XCJ2aWV3aW5nLmVtYWlsXCI+PC9yb2xhdGVjaC1yaWNoLWxhYmVsPlxuICAgICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIlBob25lXCIgW3RpdGxlXT1cInZpZXdpbmcucGhvbmVcIj48L3JvbGF0ZWNoLXJpY2gtbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtbGcgZm9udC1ib2xkIHB5LTJcIiBpMThuPlByb3Bvc2VkIHRpbWVzPC9kaXY+XG4gICAgICA8aHIgY2xhc3M9XCJtYi0yXCIgLz5cbiAgICAgIEBmb3IgKGl0ZW0gb2Ygdmlld2luZy5wcm9wb3NlZFNsb3RzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgaXRlbXMtY2VudGVyIGdhcC0zIHB5LTNcIj5cbiAgICAgICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIkRhdGVcIiBbdGl0bGVdPVwiaXRlbS5kYXRlXCI+PC9yb2xhdGVjaC1yaWNoLWxhYmVsPlxuICAgICAgICAgIDxyb2xhdGVjaC1yaWNoLWxhYmVsIGxhYmVsPVwiVGltZVwiIFt0aXRsZV09XCJpdGVtLnRpbWVcIj48L3JvbGF0ZWNoLXJpY2gtbGFiZWw+XG4gICAgICAgICAgQGlmICh2aWV3aW5nLnZpZXdpbmdEYXRlICYmIHZpZXdpbmcudmlld2luZ1RpbWUpIHtcbiAgICAgICAgICAgIEBpZiAoaXRlbS5kYXRlID09PSB2aWV3aW5nLnZpZXdpbmdEYXRlICYmIGl0ZW0udGltZSA9PT0gdmlld2luZy52aWV3aW5nVGltZSkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWwtM1wiPjxidXR0b24gbWF0LWZsYXQtYnV0dG9uIGkxOG4gZGlzYWJsZWQ9XCJcIj5Db25maXJtZWQ8L2J1dHRvbj48L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmICghdmlld2luZ1RpbWVDb25maXJtZWQpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtbC0zXCI+PGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gKGNsaWNrKT1cImNvbmZpcm1WaWV3aW5nVGltZShpdGVtKVwiIGkxOG4+Q29uZmlybTwvYnV0dG9uPjwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gICAgPCEtLSBJbnRyb2R1Y2luZyBhZ2VudCAtLT5cbiAgICBAaWYgKHZpZXdpbmcudmlld2VyQ2F0ZWdvcnkudG9TdHJpbmcoKSA9PT0gJ0FHRU5UJykge1xuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbGcgZm9udC1ib2xkIHB5LTJcIiBpMThuPlF1YWxpZmljYXRpb248L2Rpdj5cbiAgICAgICAgPGhyIGNsYXNzPVwibWItMlwiIC8+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IGdhcC0xIG1kOmdhcC0zXCI+XG4gICAgICAgICAgPCEtLSA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIk1vdmUtaW4gZGF0ZVwiIFt0aXRsZV09XCJ2aWV3aW5nLnN0YXJ0RGF0ZVwiPjwvcm9sYXRlY2gtcmljaC1sYWJlbD4gLS0+XG4gICAgICAgICAgPHJvbGF0ZWNoLXJpY2gtbGFiZWwgbGFiZWw9XCJUZW5hbmN5IGR1cmF0aW9uXCIgW3RpdGxlXT1cInZpZXdpbmcudGVuYW5jeUR1cmF0aW9uXCI+PC9yb2xhdGVjaC1yaWNoLWxhYmVsPlxuICAgICAgICAgIDxyb2xhdGVjaC1yaWNoLWxhYmVsIGxhYmVsPVwiTnVtYmVyIG9mIHRlbmFudHNcIiBbdGl0bGVdPVwidmlld2luZy5udW1iZXJPZlRlbmFudHNcIj48L3JvbGF0ZWNoLXJpY2gtbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBtZDpmbGV4LXJvdyBnYXAtMSBtZDpnYXAtM1wiPlxuICAgICAgICAgIDxyb2xhdGVjaC1yaWNoLWxhYmVsXG4gICAgICAgICAgICBsYWJlbD1cIkVtcGxveW1lbnQgc3RhdHVzXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCJlbXBsb3ltZW50U3RhdHVzW3ZpZXdpbmcuZW1wbG95bWVudFN0YXR1c11cIlxuICAgICAgICAgID48L3JvbGF0ZWNoLXJpY2gtbGFiZWw+XG4gICAgICAgICAgPCEtLSA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIkVtcGxveWVyXCIgW3RpdGxlXT1cInZpZXdpbmcuc3RhcnREYXRlXCI+PC9yb2xhdGVjaC1yaWNoLWxhYmVsPiAtLT5cbiAgICAgICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIkFubnVhbCBpbmNvbWVcIiBbdGl0bGVdPVwidmlld2luZy5pbmNvbWVcIj48L3JvbGF0ZWNoLXJpY2gtbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgPGRpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxnIGZvbnQtYm9sZCBweS0yXCIgaTE4bj5Qcm9wZXJ0eSBkZXRhaWxzPC9kaXY+XG4gICAgICA8aHIgY2xhc3M9XCJtYi0yXCIgLz5cbiAgICAgIEBpZiAocHJvcGVydHkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIHB5LTJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWluLXctMTYgdy0yNCBvYmplY3QtY292ZXIgYXNwZWN0LXZpZGVvIHJvdW5kZWQtbWQgbXItM1wiPlxuICAgICAgICAgICAgQGRlZmVyIHtcbiAgICAgICAgICAgICAgPHJvbGF0ZWNoLXRodW1ibmFpbCBbc3JjXT1cInByb3BlcnR5Lm1lZGlhWzBdLnVybFwiIHNpemU9XCJtZWRpdW1cIiBtb2RlPVwiZnVsbFwiPiA8L3JvbGF0ZWNoLXRodW1ibmFpbD5cbiAgICAgICAgICAgIH0gQHBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJnLVstLXJ0LXJhaXNlZC1iYWNrZ3JvdW5kXSBoLWZ1bGwgdy1mdWxsIG9iamVjdC1jb3ZlciBhc3BlY3QtdmlkZW8gcm91bmRlZC1sZ1wiPjwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IHctZnVsbCBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiB3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgICAgICAgICAgICA8ZGl2Pnt7IHByb3BlcnR5LnRpdGxlIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlubGluZS1mbGV4IGdhcC0xIG10LTJcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXItMVwiPnt7IHByb3BlcnR5LmJlZHJvb21zIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBpMThuPkJlZHJvb21zPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yLTFcIj57eyBwcm9wZXJ0eS5iYXRocm9vbXMgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGkxOG4+QmF0aHJvb21zPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yLTFcIj57eyBwcm9wZXJ0eS5yZWNlcHRpb25zIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBpMThuPlJlY2VwdGlvbnM8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc21cIj7Co3t7IHByb3BlcnR5LnByaWNlIHwgZml4ZWQgfX08L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGlkZGVuIG1kOmZsZXggZmxleC1jb2wgcHgtM1wiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cblxuICAgIDxkaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZyBmb250LWJvbGQgcHktMlwiIGkxOG4+Vmlld2luZyBhZ2VudDwvZGl2PlxuICAgICAgPGhyIGNsYXNzPVwibWItMlwiIC8+XG4gICAgICBAaWYgKGFnZW50KSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IGdhcC0xIG1kOmdhcC0zXCI+XG4gICAgICAgICAgPHJvbGF0ZWNoLXJpY2gtbGFiZWwgbGFiZWw9XCJOYW1lXCIgW3RpdGxlXT1cImFnZW50Lm5hbWVcIj48L3JvbGF0ZWNoLXJpY2gtbGFiZWw+XG4gICAgICAgICAgPHJvbGF0ZWNoLXJpY2gtbGFiZWwgbGFiZWw9XCJFbWFpbFwiIFt0aXRsZV09XCJhZ2VudC5lbWFpbFwiPjwvcm9sYXRlY2gtcmljaC1sYWJlbD5cbiAgICAgICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIlBob25lXCIgW3RpdGxlXT1cImFnZW50LnBob25lXCI+PC9yb2xhdGVjaC1yaWNoLWxhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG59XG4iXX0=","import { PropertyManageViewingsDetailComponent } from './property-manage-viewings-detail/property-manage-viewings-detail.component';\nexport const propertyManageViewingsRoutes = [\n {\n path: '',\n loadComponent: () => import('./property-manage-viewings-index/property-manage-viewings-index.component').then((x) => x.PropertyManageViewingsIndexComponent),\n },\n {\n path: ':id',\n component: PropertyManageViewingsDetailComponent,\n },\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbWFuYWdlLXZpZXdpbmdzLnJvdXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS1tYW5hZ2UvcHJvcGVydHktbWFuYWdlLXZpZXdpbmdzLnJvdXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSw2RUFBNkUsQ0FBQztBQUVwSSxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBVztJQUNsRDtRQUNFLElBQUksRUFBRSxFQUFFO1FBQ1IsYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUNsQixNQUFNLENBQUMsMkVBQTJFLENBQUMsQ0FBQyxJQUFJLENBQ3RGLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsb0NBQW9DLENBQzlDO0tBQ0o7SUFDRDtRQUNFLElBQUksRUFBRSxLQUFLO1FBQ1gsU0FBUyxFQUFFLHFDQUFxQztLQUNqRDtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgUHJvcGVydHlMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuLi9wcm9wZXJ0eS9wcm9wZXJ0eS1sYXlvdXQvcHJvcGVydHktbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9wZXJ0eU1hbmFnZVZpZXdpbmdzRGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9wcm9wZXJ0eS1tYW5hZ2Utdmlld2luZ3MtZGV0YWlsL3Byb3BlcnR5LW1hbmFnZS12aWV3aW5ncy1kZXRhaWwuY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IHByb3BlcnR5TWFuYWdlVmlld2luZ3NSb3V0ZXM6IFJvdXRlcyA9IFtcbiAge1xuICAgIHBhdGg6ICcnLFxuICAgIGxvYWRDb21wb25lbnQ6ICgpID0+XG4gICAgICBpbXBvcnQoJy4vcHJvcGVydHktbWFuYWdlLXZpZXdpbmdzLWluZGV4L3Byb3BlcnR5LW1hbmFnZS12aWV3aW5ncy1pbmRleC5jb21wb25lbnQnKS50aGVuKFxuICAgICAgICAoeCkgPT4geC5Qcm9wZXJ0eU1hbmFnZVZpZXdpbmdzSW5kZXhDb21wb25lbnQsXG4gICAgICApLFxuICB9LFxuICB7XG4gICAgcGF0aDogJzppZCcsXG4gICAgY29tcG9uZW50OiBQcm9wZXJ0eU1hbmFnZVZpZXdpbmdzRGV0YWlsQ29tcG9uZW50LFxuICB9LFxuXTtcbiJdfQ==","import { booleanAttribute, Component, effect, ElementRef, HostBinding, inject, input, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { FixedPipe } from '@rolatech/angular-common';\nimport { ThumbnailComponent, ImagePlaceholderComponent } from '@rolatech/angular-components';\nimport { PropertyStatus } from '../../interfaces';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nexport class LettingManageItem {\n hasClass = true;\n el = inject(ElementRef);\n letting = input.required(...(ngDevMode ? [{ debugName: \"letting\" }] : []));\n thumbnail = input(...(ngDevMode ? [undefined, { debugName: \"thumbnail\" }] : []));\n status = PropertyStatus;\n list = input(false, ...(ngDevMode ? [{ debugName: \"list\", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));\n constructor() {\n effect(() => {\n if (this.list()) {\n this.el.nativeElement.setAttribute('list', '');\n }\n else {\n this.el.nativeElement.removeAttribute('list', '');\n }\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: LettingManageItem, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: LettingManageItem, isStandalone: true, selector: \"rolatech-letting-manage-item\", inputs: { letting: { classPropertyName: \"letting\", publicName: \"letting\", isSignal: true, isRequired: true, transformFunction: null }, thumbnail: { classPropertyName: \"thumbnail\", publicName: \"thumbnail\", isSignal: true, isRequired: false, transformFunction: null }, list: { classPropertyName: \"list\", publicName: \"list\", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { \"class.rolatech-letting-manage-item\": \"this.hasClass\" } }, ngImport: i0, template: \"<div\\n class=\\\"flex p-3 bg-[--rt-raised-background] hover:bg-[--rt-raised-background] cursor-pointer rounded-md\\\"\\n [ngClass]=\\\"list() ? 'w-full flex-row' : 'flex-col h-full'\\\"\\n>\\n <div>\\n @if (letting().media) {\\n <div class=\\\"object-cover aspect-video rounded-lg\\\" [ngClass]=\\\"list() ? 'w-32 mr-3' : ''\\\">\\n @defer {\\n <rolatech-thumbnail [src]=\\\"letting().media ? letting().media[0].url : ''\\\" size=\\\"medium\\\" mode=\\\"full\\\"> </rolatech-thumbnail>\\n } @placeholder {\\n <div class=\\\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\\\"></div>\\n }\\n </div>\\n } @else {\\n <div class=\\\"object-cover aspect-video rounded-lg\\\" [ngClass]=\\\"list() ? 'w-32 mr-3' : ''\\\">\\n <rolatech-image-placeholder></rolatech-image-placeholder>\\n </div>\\n }\\n </div>\\n\\n <div class=\\\"py-2\\\">\\n <div class=\\\"text-lg font-bold\\\">{{ letting().title }}</div>\\n </div>\\n <div class=\\\"flex-1\\\"></div>\\n <div class=\\\"\\\">\\u00A3{{ letting().price | fixed }}</div>\\n</div>\\n\", styles: [\"rolatech-letting-manage-item{--rt-letting-view-item-margin: 16px;width:calc(100% / var(--rt-letting-view-items-per-row) - var(--rt-letting-view-item-margin) - .01px)}rolatech-letting-manage-item[list]{--rt-letting-view-items-per-row: 1}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"component\", type: ImagePlaceholderComponent, selector: \"rolatech-image-placeholder\", inputs: [\"ratio\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"ngmodule\", type: MatMenuModule }, { kind: \"pipe\", type: FixedPipe, name: \"fixed\" }], encapsulation: i0.ViewEncapsulation.None, deferBlockDependencies: [() => [ThumbnailComponent]] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: LettingManageItem, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-letting-manage-item', imports: [CommonModule, ThumbnailComponent, ImagePlaceholderComponent, MatButtonModule, MatMenuModule, FixedPipe], encapsulation: ViewEncapsulation.None, template: \"<div\\n class=\\\"flex p-3 bg-[--rt-raised-background] hover:bg-[--rt-raised-background] cursor-pointer rounded-md\\\"\\n [ngClass]=\\\"list() ? 'w-full flex-row' : 'flex-col h-full'\\\"\\n>\\n <div>\\n @if (letting().media) {\\n <div class=\\\"object-cover aspect-video rounded-lg\\\" [ngClass]=\\\"list() ? 'w-32 mr-3' : ''\\\">\\n @defer {\\n <rolatech-thumbnail [src]=\\\"letting().media ? letting().media[0].url : ''\\\" size=\\\"medium\\\" mode=\\\"full\\\"> </rolatech-thumbnail>\\n } @placeholder {\\n <div class=\\\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\\\"></div>\\n }\\n </div>\\n } @else {\\n <div class=\\\"object-cover aspect-video rounded-lg\\\" [ngClass]=\\\"list() ? 'w-32 mr-3' : ''\\\">\\n <rolatech-image-placeholder></rolatech-image-placeholder>\\n </div>\\n }\\n </div>\\n\\n <div class=\\\"py-2\\\">\\n <div class=\\\"text-lg font-bold\\\">{{ letting().title }}</div>\\n </div>\\n <div class=\\\"flex-1\\\"></div>\\n <div class=\\\"\\\">\\u00A3{{ letting().price | fixed }}</div>\\n</div>\\n\", styles: [\"rolatech-letting-manage-item{--rt-letting-view-item-margin: 16px;width:calc(100% / var(--rt-letting-view-items-per-row) - var(--rt-letting-view-item-margin) - .01px)}rolatech-letting-manage-item[list]{--rt-letting-view-items-per-row: 1}\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { hasClass: [{\n type: HostBinding,\n args: ['class.rolatech-letting-manage-item']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGV0dGluZy1tYW5hZ2UtaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9jb21wb25lbnRzL2xldHRpbmctbWFuYWdlLWl0ZW0vbGV0dGluZy1tYW5hZ2UtaXRlbS50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9jb21wb25lbnRzL2xldHRpbmctbWFuYWdlLWl0ZW0vbGV0dGluZy1tYW5hZ2UtaXRlbS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHlCQUF5QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0YsT0FBTyxFQUFZLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7QUFTNUQsTUFBTSxPQUFPLGlCQUFpQjtJQUN1QixRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ25FLEVBQUUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEIsT0FBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLGtEQUFZLENBQUM7SUFDckMsU0FBUyxHQUFHLEtBQUssK0RBQUUsQ0FBQztJQUNwQixNQUFNLEdBQUcsY0FBYyxDQUFDO0lBQ3hCLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyx3Q0FBSSxTQUFTLEVBQUUsZ0JBQWdCLE9BQTdCLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLEdBQUMsQ0FBQztJQUNyRDtRQUNFLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO2dCQUNoQixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2pELENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3BELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBZlUsaUJBQWlCOzJGQUFqQixpQkFBaUIsMmlCQ2Y5Qiw0Z0NBMEJBLHVTRGhCWSxZQUFZLDZIQUFzQix5QkFBeUIseUZBQUUsZUFBZSw4QkFBRSxhQUFhLDBCQUFFLFNBQVMsOEZBQXhGLGtCQUFrQjs7MkZBSy9CLGlCQUFpQjtrQkFQN0IsU0FBUzsrQkFDRSw4QkFBOEIsV0FDL0IsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUseUJBQXlCLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxTQUFTLENBQUMsaUJBR2xHLGlCQUFpQixDQUFDLElBQUk7d0RBR2MsUUFBUTtzQkFBMUQsV0FBVzt1QkFBQyxvQ0FBb0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBib29sZWFuQXR0cmlidXRlLCBDb21wb25lbnQsIGVmZmVjdCwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIGluamVjdCwgaW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IEZpeGVkUGlwZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQgeyBUaHVtYm5haWxDb21wb25lbnQsIEltYWdlUGxhY2Vob2xkZXJDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IFByb3BlcnR5LCBQcm9wZXJ0eVN0YXR1cyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1sZXR0aW5nLW1hbmFnZS1pdGVtJyxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVGh1bWJuYWlsQ29tcG9uZW50LCBJbWFnZVBsYWNlaG9sZGVyQ29tcG9uZW50LCBNYXRCdXR0b25Nb2R1bGUsIE1hdE1lbnVNb2R1bGUsIEZpeGVkUGlwZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9sZXR0aW5nLW1hbmFnZS1pdGVtLmh0bWwnLFxuICBzdHlsZVVybDogJy4vbGV0dGluZy1tYW5hZ2UtaXRlbS5zY3NzJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgTGV0dGluZ01hbmFnZUl0ZW0ge1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnJvbGF0ZWNoLWxldHRpbmctbWFuYWdlLWl0ZW0nKSBoYXNDbGFzcyA9IHRydWU7XG4gIGVsID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBsZXR0aW5nID0gaW5wdXQucmVxdWlyZWQ8UHJvcGVydHk+KCk7XG4gIHRodW1ibmFpbCA9IGlucHV0KCk7XG4gIHN0YXR1cyA9IFByb3BlcnR5U3RhdHVzO1xuICBsaXN0ID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMubGlzdCgpKSB7XG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2xpc3QnLCAnJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdsaXN0JywgJycpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiZmxleCBwLTMgYmctWy0tcnQtcmFpc2VkLWJhY2tncm91bmRdIGhvdmVyOmJnLVstLXJ0LXJhaXNlZC1iYWNrZ3JvdW5kXSBjdXJzb3ItcG9pbnRlciByb3VuZGVkLW1kXCJcbiAgW25nQ2xhc3NdPVwibGlzdCgpID8gJ3ctZnVsbCBmbGV4LXJvdycgOiAnZmxleC1jb2wgaC1mdWxsJ1wiXG4+XG4gIDxkaXY+XG4gICAgQGlmIChsZXR0aW5nKCkubWVkaWEpIHtcbiAgICA8ZGl2IGNsYXNzPVwib2JqZWN0LWNvdmVyIGFzcGVjdC12aWRlbyByb3VuZGVkLWxnXCIgW25nQ2xhc3NdPVwibGlzdCgpID8gJ3ctMzIgbXItMycgOiAnJ1wiPlxuICAgICAgQGRlZmVyIHtcbiAgICAgIDxyb2xhdGVjaC10aHVtYm5haWwgW3NyY109XCJsZXR0aW5nKCkubWVkaWEgPyBsZXR0aW5nKCkubWVkaWFbMF0udXJsIDogJydcIiBzaXplPVwibWVkaXVtXCIgbW9kZT1cImZ1bGxcIj4gPC9yb2xhdGVjaC10aHVtYm5haWw+XG4gICAgICB9IEBwbGFjZWhvbGRlciB7XG4gICAgICA8ZGl2IGNsYXNzPVwiYmctWy0tcnQtcmFpc2VkLWJhY2tncm91bmRdIGgtZnVsbCB3LWZ1bGwgb2JqZWN0LWNvdmVyIGFzcGVjdC12aWRlbyByb3VuZGVkLWxnXCI+PC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gICAgfSBAZWxzZSB7XG4gICAgPGRpdiBjbGFzcz1cIm9iamVjdC1jb3ZlciBhc3BlY3QtdmlkZW8gcm91bmRlZC1sZ1wiIFtuZ0NsYXNzXT1cImxpc3QoKSA/ICd3LTMyIG1yLTMnIDogJydcIj5cbiAgICAgIDxyb2xhdGVjaC1pbWFnZS1wbGFjZWhvbGRlcj48L3JvbGF0ZWNoLWltYWdlLXBsYWNlaG9sZGVyPlxuICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cInB5LTJcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZyBmb250LWJvbGRcIj57eyBsZXR0aW5nKCkudGl0bGUgfX08L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmbGV4LTFcIj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIlwiPsKje3sgbGV0dGluZygpLnByaWNlIHwgZml4ZWQgfX08L2Rpdj5cbjwvZGl2PlxuIl19","import { Component, inject, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { RouterLink } from '@angular/router';\nimport { ToolbarComponent, SpinnerComponent } from '@rolatech/angular-components';\nimport { PropertyService } from '@rolatech/angular-services';\nimport { LettingManageItem } from '../../../components/letting-manage-item/letting-manage-item';\nimport * as i0 from \"@angular/core\";\nexport class LettingManageIndex {\n propertyService = inject(PropertyService);\n loading = false;\n lettings;\n ngOnInit() {\n this.find();\n }\n find() {\n this.loading = true;\n this.propertyService.find({}).subscribe({\n next: (res) => {\n this.lettings = res.data;\n this.loading = false;\n },\n error: error => {\n this.loading = false;\n }\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: LettingManageIndex, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: LettingManageIndex, isStandalone: true, selector: \"rolatech-letting-manage-index\", ngImport: i0, template: \"<rolatech-toolbar title=\\\"Lettings\\\"> </rolatech-toolbar>\\n@if (loading) {\\n<div class=\\\"flex justify-center items-center\\\">\\n <rolatech-spinner></rolatech-spinner>\\n</div>\\n} @else {\\n<div class=\\\"bg-[--rt-rasised-background] h-full\\\">\\n <div class=\\\"flex flex-wrap p-3 gap-3\\\">\\n @for (item of lettings; track $index) {\\n <rolatech-letting-manage-item [letting]=\\\"item\\\" routerLink=\\\"./{{ item.id }}\\\"></rolatech-letting-manage-item>\\n }\\n </div>\\n</div>\\n\\n<!-- <mat-paginator\\n #paginator\\n [length]=\\\"length\\\"\\n [pageSize]=\\\"pageSize\\\"\\n [pageSizeOptions]=\\\"pageSizeOptions\\\"\\n (page)=\\\"pageEvent = find($event)\\\"\\n hidePageSize\\n showFirstLastButtons\\n >\\n </mat-paginator> -->\\n}\\n\", styles: [\"rolatech-letting-manage-index{--rt-letting-view-items-per-row: 1}@media (min-width: 600px){rolatech-letting-manage-index{--rt-letting-view-items-per-row: 2}}@media (min-width: 768px){rolatech-letting-manage-index{--rt-letting-view-items-per-row: 3}}@media (min-width: 1280px){rolatech-letting-manage-index{--rt-letting-view-items-per-row: 3}}@media (min-width: 1536px){rolatech-letting-manage-index{--rt-letting-view-items-per-row: 4}}@media (min-width: 1920px){rolatech-letting-manage-index{--rt-letting-view-items-per-row: 5}}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"component\", type: SpinnerComponent, selector: \"rolatech-spinner\", inputs: [\"title\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"directive\", type: RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"component\", type: LettingManageItem, selector: \"rolatech-letting-manage-item\", inputs: [\"letting\", \"thumbnail\", \"list\"] }], encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: LettingManageIndex, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-letting-manage-index', imports: [CommonModule, ToolbarComponent, SpinnerComponent, MatButtonModule, RouterLink, LettingManageItem], encapsulation: ViewEncapsulation.None, template: \"<rolatech-toolbar title=\\\"Lettings\\\"> </rolatech-toolbar>\\n@if (loading) {\\n<div class=\\\"flex justify-center items-center\\\">\\n <rolatech-spinner></rolatech-spinner>\\n</div>\\n} @else {\\n<div class=\\\"bg-[--rt-rasised-background] h-full\\\">\\n <div class=\\\"flex flex-wrap p-3 gap-3\\\">\\n @for (item of lettings; track $index) {\\n <rolatech-letting-manage-item [letting]=\\\"item\\\" routerLink=\\\"./{{ item.id }}\\\"></rolatech-letting-manage-item>\\n }\\n </div>\\n</div>\\n\\n<!-- <mat-paginator\\n #paginator\\n [length]=\\\"length\\\"\\n [pageSize]=\\\"pageSize\\\"\\n [pageSizeOptions]=\\\"pageSizeOptions\\\"\\n (page)=\\\"pageEvent = find($event)\\\"\\n hidePageSize\\n showFirstLastButtons\\n >\\n </mat-paginator> -->\\n}\\n\", styles: [\"rolatech-letting-manage-index{--rt-letting-view-items-per-row: 1}@media (min-width: 600px){rolatech-letting-manage-index{--rt-letting-view-items-per-row: 2}}@media (min-width: 768px){rolatech-letting-manage-index{--rt-letting-view-items-per-row: 3}}@media (min-width: 1280px){rolatech-letting-manage-index{--rt-letting-view-items-per-row: 3}}@media (min-width: 1536px){rolatech-letting-manage-index{--rt-letting-view-items-per-row: 4}}@media (min-width: 1920px){rolatech-letting-manage-index{--rt-letting-view-items-per-row: 5}}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGV0dGluZy1tYW5hZ2UtaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvbGV0dGluZy1tYW5hZ2UvbGV0dGluZy1tYW5hZ2UtaW5kZXgvbGV0dGluZy1tYW5hZ2UtaW5kZXgudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvbGV0dGluZy1tYW5hZ2UvbGV0dGluZy1tYW5hZ2UtaW5kZXgvbGV0dGluZy1tYW5hZ2UtaW5kZXguaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkRBQTZELENBQUM7O0FBU2hHLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsZUFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQTtJQUN6QyxPQUFPLEdBQUcsS0FBSyxDQUFBO0lBQ2YsUUFBUSxDQUFhO0lBQ3JCLFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDYixDQUFDO0lBQ0QsSUFBSTtRQUNGLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFBO1FBQ25CLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUN0QyxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFBO2dCQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQTtZQUN0QixDQUFDO1lBQ0QsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFO2dCQUNiLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFBO1lBQ3RCLENBQUM7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO3VHQWxCVSxrQkFBa0I7MkZBQWxCLGtCQUFrQix5RkNqQi9CLHF0QkF5QkEsMmtCRGJZLFlBQVksK0JBQUUsZ0JBQWdCLGdJQUFFLGdCQUFnQiwrRUFBRSxlQUFlLCtCQUFFLFVBQVUsb09BQUUsaUJBQWlCOzsyRkFLL0Ysa0JBQWtCO2tCQVA5QixTQUFTOytCQUNFLCtCQUErQixXQUNoQyxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixDQUFDLGlCQUc1RixpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgUm91dGVyTGluayB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBUb29sYmFyQ29tcG9uZW50LCBTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBQcm9wZXJ0eVNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTGV0dGluZ01hbmFnZUl0ZW0gfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2xldHRpbmctbWFuYWdlLWl0ZW0vbGV0dGluZy1tYW5hZ2UtaXRlbSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWxldHRpbmctbWFuYWdlLWluZGV4JyxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVG9vbGJhckNvbXBvbmVudCwgU3Bpbm5lckNvbXBvbmVudCwgTWF0QnV0dG9uTW9kdWxlLCBSb3V0ZXJMaW5rLCBMZXR0aW5nTWFuYWdlSXRlbV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9sZXR0aW5nLW1hbmFnZS1pbmRleC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2xldHRpbmctbWFuYWdlLWluZGV4LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBMZXR0aW5nTWFuYWdlSW5kZXggaW1wbGVtZW50cyBPbkluaXQge1xuICBwcm9wZXJ0eVNlcnZpY2UgPSBpbmplY3QoUHJvcGVydHlTZXJ2aWNlKVxuICBsb2FkaW5nID0gZmFsc2VcbiAgbGV0dGluZ3MhOiBQcm9wZXJ0eVtdXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZmluZCgpXG4gIH1cbiAgZmluZCgpIHtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlXG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZmluZCh7fSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmxldHRpbmdzID0gcmVzLmRhdGFcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2VcbiAgICAgIH0sXG4gICAgICBlcnJvcjogZXJyb3IgPT4ge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZVxuICAgICAgfVxuICAgIH0pXG4gIH1cbn1cbiIsIjxyb2xhdGVjaC10b29sYmFyIHRpdGxlPVwiTGV0dGluZ3NcIj4gPC9yb2xhdGVjaC10b29sYmFyPlxuQGlmIChsb2FkaW5nKSB7XG48ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXJcIj5cbiAgPHJvbGF0ZWNoLXNwaW5uZXI+PC9yb2xhdGVjaC1zcGlubmVyPlxuPC9kaXY+XG59IEBlbHNlIHtcbjxkaXYgY2xhc3M9XCJiZy1bLS1ydC1yYXNpc2VkLWJhY2tncm91bmRdIGgtZnVsbFwiPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgcC0zIGdhcC0zXCI+XG4gICAgQGZvciAoaXRlbSBvZiBsZXR0aW5nczsgdHJhY2sgJGluZGV4KSB7XG4gICAgPHJvbGF0ZWNoLWxldHRpbmctbWFuYWdlLWl0ZW0gW2xldHRpbmddPVwiaXRlbVwiIHJvdXRlckxpbms9XCIuL3t7IGl0ZW0uaWQgfX1cIj48L3JvbGF0ZWNoLWxldHRpbmctbWFuYWdlLWl0ZW0+XG4gICAgfVxuICA8L2Rpdj5cbjwvZGl2PlxuXG48IS0tIDxtYXQtcGFnaW5hdG9yXG4gICAgI3BhZ2luYXRvclxuICAgIFtsZW5ndGhdPVwibGVuZ3RoXCJcbiAgICBbcGFnZVNpemVdPVwicGFnZVNpemVcIlxuICAgIFtwYWdlU2l6ZU9wdGlvbnNdPVwicGFnZVNpemVPcHRpb25zXCJcbiAgICAocGFnZSk9XCJwYWdlRXZlbnQgPSBmaW5kKCRldmVudClcIlxuICAgIGhpZGVQYWdlU2l6ZVxuICAgIHNob3dGaXJzdExhc3RCdXR0b25zXG4gID5cbiAgPC9tYXQtcGFnaW5hdG9yPiAtLT5cbn1cbiJdfQ==","import { Component, computed, input, output, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\nexport class LettingActions {\n letting = input.required(...(ngDevMode ? [{ debugName: \"letting\" }] : []));\n requestViewing = output();\n offer = output();\n deposit = output();\n displayDeposit = computed(() => {\n return (this.letting().deposit / 100).toFixed(2);\n }, ...(ngDevMode ? [{ debugName: \"displayDeposit\" }] : []));\n onRequestViewing(letting) {\n this.requestViewing.emit(letting);\n }\n onOffer(letting) {\n this.offer.emit(letting);\n }\n onDeposit(letting) {\n this.deposit.emit(letting);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: LettingActions, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: LettingActions, isStandalone: true, selector: \"rolatech-letting-actions\", inputs: { letting: { classPropertyName: \"letting\", publicName: \"letting\", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { requestViewing: \"requestViewing\", offer: \"offer\", deposit: \"deposit\" }, ngImport: i0, template: \"<div class=\\\"flex flex-col gap-3\\\">\\n <a mat-stroked-button class=\\\"\\\" (click)=\\\"onRequestViewing(letting())\\\" i18n>Request viewing</a>\\n @if (letting().priceType && letting().priceType.toString() === 'PARTIAL') {\\n <a mat-flat-button class=\\\"\\\" (click)=\\\"onDeposit(letting())\\\" i18n>Pay deposit \\u00A3{{ displayDeposit() }}</a>\\n } @else {\\n <a mat-flat-button class=\\\"\\\" (click)=\\\"onOffer(letting())\\\" i18n>Make an offer</a>\\n }\\n <ng-content select=\\\"rolatech-letting-action-contact\\\"></ng-content>\\n</div>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i1.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"ngmodule\", type: MatMenuModule }], encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: LettingActions, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-letting-actions', imports: [CommonModule, MatButtonModule, MatIconModule, MatMenuModule], encapsulation: ViewEncapsulation.None, template: \"<div class=\\\"flex flex-col gap-3\\\">\\n <a mat-stroked-button class=\\\"\\\" (click)=\\\"onRequestViewing(letting())\\\" i18n>Request viewing</a>\\n @if (letting().priceType && letting().priceType.toString() === 'PARTIAL') {\\n <a mat-flat-button class=\\\"\\\" (click)=\\\"onDeposit(letting())\\\" i18n>Pay deposit \\u00A3{{ displayDeposit() }}</a>\\n } @else {\\n <a mat-flat-button class=\\\"\\\" (click)=\\\"onOffer(letting())\\\" i18n>Make an offer</a>\\n }\\n <ng-content select=\\\"rolatech-letting-action-contact\\\"></ng-content>\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGV0dGluZy1hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvbGV0dGluZy1hY3Rpb25zL2xldHRpbmctYWN0aW9ucy50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9jb21wb25lbnRzL2xldHRpbmctYWN0aW9ucy9sZXR0aW5nLWFjdGlvbnMuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBVXZELE1BQU0sT0FBTyxjQUFjO0lBQ3pCLE9BQU8sR0FBRyxLQUFLLENBQUMsUUFBUSxrREFBWSxDQUFDO0lBQ3JDLGNBQWMsR0FBRyxNQUFNLEVBQVksQ0FBQztJQUNwQyxLQUFLLEdBQUcsTUFBTSxFQUFZLENBQUM7SUFDM0IsT0FBTyxHQUFHLE1BQU0sRUFBWSxDQUFDO0lBRTdCLGNBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQzdCLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRCxDQUFDLDBEQUFDLENBQUM7SUFFSCxnQkFBZ0IsQ0FBQyxPQUFpQjtRQUNoQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsT0FBTyxDQUFDLE9BQWlCO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFDRCxTQUFTLENBQUMsT0FBaUI7UUFDekIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0IsQ0FBQzt1R0FsQlUsY0FBYzsyRkFBZCxjQUFjLGdUQ2QzQix3Z0JBU0EseUREQVksWUFBWSw4QkFBRSxlQUFlLG1YQUFFLGFBQWEsOEJBQUUsYUFBYTs7MkZBSzFELGNBQWM7a0JBUDFCLFNBQVM7K0JBQ0UsMEJBQTBCLFdBQzNCLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLGlCQUd2RCxpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5wdXQsIG91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgUHJvcGVydHkgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtbGV0dGluZy1hY3Rpb25zJyxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBNYXRNZW51TW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2xldHRpbmctYWN0aW9ucy5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2xldHRpbmctYWN0aW9ucy5zY3NzJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgTGV0dGluZ0FjdGlvbnMge1xuICBsZXR0aW5nID0gaW5wdXQucmVxdWlyZWQ8UHJvcGVydHk+KCk7XG4gIHJlcXVlc3RWaWV3aW5nID0gb3V0cHV0PFByb3BlcnR5PigpO1xuICBvZmZlciA9IG91dHB1dDxQcm9wZXJ0eT4oKTtcbiAgZGVwb3NpdCA9IG91dHB1dDxQcm9wZXJ0eT4oKTtcblxuICBkaXNwbGF5RGVwb3NpdCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gKHRoaXMubGV0dGluZygpLmRlcG9zaXQgLyAxMDApLnRvRml4ZWQoMik7XG4gIH0pO1xuXG4gIG9uUmVxdWVzdFZpZXdpbmcobGV0dGluZzogUHJvcGVydHkpIHtcbiAgICB0aGlzLnJlcXVlc3RWaWV3aW5nLmVtaXQobGV0dGluZyk7XG4gIH1cbiAgb25PZmZlcihsZXR0aW5nOiBQcm9wZXJ0eSkge1xuICAgIHRoaXMub2ZmZXIuZW1pdChsZXR0aW5nKTtcbiAgfVxuICBvbkRlcG9zaXQobGV0dGluZzogUHJvcGVydHkpIHtcbiAgICB0aGlzLmRlcG9zaXQuZW1pdChsZXR0aW5nKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTNcIj5cbiAgPGEgbWF0LXN0cm9rZWQtYnV0dG9uIGNsYXNzPVwiXCIgKGNsaWNrKT1cIm9uUmVxdWVzdFZpZXdpbmcobGV0dGluZygpKVwiIGkxOG4+UmVxdWVzdCB2aWV3aW5nPC9hPlxuICBAaWYgKGxldHRpbmcoKS5wcmljZVR5cGUgJiYgbGV0dGluZygpLnByaWNlVHlwZS50b1N0cmluZygpID09PSAnUEFSVElBTCcpIHtcbiAgPGEgbWF0LWZsYXQtYnV0dG9uIGNsYXNzPVwiXCIgKGNsaWNrKT1cIm9uRGVwb3NpdChsZXR0aW5nKCkpXCIgaTE4bj5QYXkgZGVwb3NpdCDCo3t7IGRpc3BsYXlEZXBvc2l0KCkgfX08L2E+XG4gIH0gQGVsc2Uge1xuICA8YSBtYXQtZmxhdC1idXR0b24gY2xhc3M9XCJcIiAoY2xpY2spPVwib25PZmZlcihsZXR0aW5nKCkpXCIgaTE4bj5NYWtlIGFuIG9mZmVyPC9hPlxuICB9XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cInJvbGF0ZWNoLWxldHRpbmctYWN0aW9uLWNvbnRhY3RcIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==","import { Component, input, output, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\nexport class LettingActionContact {\n phone = input(...(ngDevMode ? [undefined, { debugName: \"phone\" }] : []));\n callAgent = output();\n emailAgent = output();\n onCallAgent() { }\n onEmailAgent(property) {\n this.emailAgent.emit(property);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: LettingActionContact, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.2.0\", type: LettingActionContact, isStandalone: true, selector: \"rolatech-letting-action-contact\", inputs: { phone: { classPropertyName: \"phone\", publicName: \"phone\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { callAgent: \"callAgent\", emailAgent: \"emailAgent\" }, ngImport: i0, template: \"<a mat-stroked-button class=\\\"w-full\\\" [href]=\\\"'https://wa.me/' + phone()\\\" target=\\\"_blank\\\">\\n <span i18n>Chat With Agent</span>\\n</a>\\n\", styles: [\".mat-mdc-menu-panel,.custom-menu-panel{max-width:100%}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i1.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"ngmodule\", type: MatMenuModule }], encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: LettingActionContact, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-letting-action-contact', imports: [CommonModule, MatButtonModule, MatIconModule, MatMenuModule], encapsulation: ViewEncapsulation.None, template: \"<a mat-stroked-button class=\\\"w-full\\\" [href]=\\\"'https://wa.me/' + phone()\\\" target=\\\"_blank\\\">\\n <span i18n>Chat With Agent</span>\\n</a>\\n\", styles: [\".mat-mdc-menu-panel,.custom-menu-panel{max-width:100%}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGV0dGluZy1hY3Rpb24tY29udGFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9jb21wb25lbnRzL2xldHRpbmctYWN0aW9uLWNvbnRhY3QvbGV0dGluZy1hY3Rpb24tY29udGFjdC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9jb21wb25lbnRzL2xldHRpbmctYWN0aW9uLWNvbnRhY3QvbGV0dGluZy1hY3Rpb24tY29udGFjdC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7OztBQVV2RCxNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLEtBQUssR0FBRyxLQUFLLDJEQUFVLENBQUM7SUFDeEIsU0FBUyxHQUFHLE1BQU0sRUFBWSxDQUFDO0lBQy9CLFVBQVUsR0FBRyxNQUFNLEVBQVksQ0FBQztJQUNoQyxXQUFXLEtBQUssQ0FBQztJQUNqQixZQUFZLENBQUMsUUFBa0I7UUFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakMsQ0FBQzt1R0FQVSxvQkFBb0I7MkZBQXBCLG9CQUFvQiw4UkNkakMsOElBR0EsaUhETVksWUFBWSw4QkFBRSxlQUFlLG1YQUFFLGFBQWEsOEJBQUUsYUFBYTs7MkZBSzFELG9CQUFvQjtrQkFQaEMsU0FBUzsrQkFDRSxpQ0FBaUMsV0FDbEMsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsaUJBR3ZELGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBvdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWxldHRpbmctYWN0aW9uLWNvbnRhY3QnLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsIE1hdEljb25Nb2R1bGUsIE1hdE1lbnVNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vbGV0dGluZy1hY3Rpb24tY29udGFjdC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2xldHRpbmctYWN0aW9uLWNvbnRhY3Quc2NzcycsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIExldHRpbmdBY3Rpb25Db250YWN0IHtcbiAgcGhvbmUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIGNhbGxBZ2VudCA9IG91dHB1dDxQcm9wZXJ0eT4oKTtcbiAgZW1haWxBZ2VudCA9IG91dHB1dDxQcm9wZXJ0eT4oKTtcbiAgb25DYWxsQWdlbnQoKSB7IH1cbiAgb25FbWFpbEFnZW50KHByb3BlcnR5OiBQcm9wZXJ0eSkge1xuICAgIHRoaXMuZW1haWxBZ2VudC5lbWl0KHByb3BlcnR5KTtcbiAgfVxufVxuIiwiPGEgbWF0LXN0cm9rZWQtYnV0dG9uIGNsYXNzPVwidy1mdWxsXCIgW2hyZWZdPVwiJ2h0dHBzOi8vd2EubWUvJyArIHBob25lKClcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgPHNwYW4gaTE4bj5DaGF0IFdpdGggQWdlbnQ8L3NwYW4+XG48L2E+XG4iXX0=","import { Component, computed, effect, inject, signal } from '@angular/core';\nimport { AuthService, AuthUserService } from '@rolatech/angular-auth';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { AngularComponentsModule, ContainerComponent, BaseComponent } from '@rolatech/angular-components';\nimport { PropertyService } from '@rolatech/angular-services';\nimport _ from 'lodash';\nimport { PropertyPricingComponent } from '../../../components';\nimport { PropertyFeaturesComponent } from '../../../components/property-features/property-features.component';\nimport { PropertyInfoComponent } from '../../../components/property-info/property-info.component';\nimport { PropertyLocationComponent } from '../../../components/property-location/property-location.component';\nimport { PropertyMediaComponent } from '../../../components/property-media/property-media.component';\nimport { PropertySectionComponent } from '../../../components/property-section/property-section.component';\nimport { PropertyVideoComponent } from '../../../components/property-video/property-video.component';\nimport { LettingActions } from '../../../components/letting-actions/letting-actions';\nimport { LettingActionContact } from '../../../components/letting-action-contact/letting-action-contact';\nimport { PropertyAgentRenderer } from '../../../components/property-agent-renderer/property-agent-renderer';\nimport * as i0 from \"@angular/core\";\nexport class LettingManageDetail extends BaseComponent {\n authService = inject(AuthService);\n authUserService = inject(AuthUserService);\n propertyService = inject(PropertyService);\n authenticated = this.authService.authenticated;\n property;\n fullname = '';\n username = '';\n user;\n inWishList = false;\n purchased = false;\n selectedOption;\n variants = [];\n selectedVariant;\n variantOption = signal(undefined, ...(ngDevMode ? [{ debugName: \"variantOption\" }] : []));\n variantOptionChanged = computed(() => {\n return this.variantOption();\n }, ...(ngDevMode ? [{ debugName: \"variantOptionChanged\" }] : []));\n // results: any[] = [];\n constructor() {\n super();\n effect(() => {\n if (this.authenticated()) {\n this.wishListCheck();\n }\n });\n }\n ngOnInit() {\n this.getProperty();\n }\n getProperty() {\n this.propertyService.get(this.id).subscribe({\n next: (res) => {\n this.property = res.data;\n if (this.property.variants) {\n this.variants = this.property.variants;\n this.selectedVariant = this.variants[0];\n // this.selectedVariant.options.forEach((item) => {\n // this.results.push([item.option.id, item.value.id]);\n // });\n }\n this.findUserBaseInfo(this.property.agentId);\n this.titleService.setTitle(`${this.property.title}`);\n },\n });\n }\n findVariant(optionId, valueId) {\n return this.variants.find((item) => {\n const exist = item.options.some((i) => i.option.id === optionId && i.value.id === valueId);\n if (exist) {\n return item;\n }\n return null;\n });\n }\n findUserBaseInfo(userId) {\n this.authUserService.getPublicUserInfo(userId).subscribe({\n next: (res) => {\n this.fullname = res.name;\n this.username = res.username;\n this.user = res;\n },\n });\n }\n wishListCheck() {\n this.propertyService.wishListCheck(this.id).subscribe({\n next: (res) => {\n this.inWishList = res.data;\n },\n });\n }\n onWish(e) {\n if (this.authenticated()) {\n if (this.inWishList) {\n this.removeFromWishlist();\n }\n else {\n this.addToWishlist();\n }\n }\n else {\n this.snackBarService.open('Please sign in');\n }\n }\n onRequestViewing(e) {\n this.router.navigate([`/lettings/${this.id}/viewing/application`]);\n }\n removeFromWishlist() {\n this.propertyService.removeFromWishlist(this.id).subscribe({\n next: (res) => {\n this.inWishList = false;\n this.snackBarService.open('Removed');\n },\n });\n }\n addToWishlist() {\n this.propertyService.addToWishlist(this.id).subscribe({\n next: (res) => {\n this.inWishList = true;\n this.snackBarService.open('Added');\n },\n });\n }\n onOffer(e) {\n if (this.authenticated()) {\n this.router.navigate([`/lettings/${this.id}/offer`]);\n }\n else {\n this.snackBarService.open('Please sign in');\n }\n }\n onOptionChange(e) {\n const criteria = [];\n this.selectedVariant.options.map((item) => {\n criteria.push({\n optionId: item.option.id === e.option.id ? e.option.id : item.option.id,\n valueId: item.option.id === e.option.id ? e.value.id : item.value.id,\n });\n });\n // const criteria = [\n // { optionId: '249008855294545920', valueId: '249008855298740224' }, // color: red\n // { optionId: '248661715955355648', valueId: '249001130061860865' }, // size: 256GB\n // ];\n // Function to check if a variant matches all the criteria\n const matchesAllCriteria = (variant, criteria) => {\n return _.every(criteria, (criterion) => {\n return _.some(variant.options, (o) => o.option.id === criterion.optionId && o.value.id === criterion.valueId);\n });\n };\n // Function to update the criteria based on a matching variant\n const updateCriteriaFromVariant = (variant) => {\n return _.map(variant.options, (o) => ({\n optionId: o.option.id,\n valueId: o.value.id,\n }));\n };\n // Find the variant that matches all the criteria\n const matchingVariant = _.find(this.variants, (variant) => matchesAllCriteria(variant, criteria));\n this.selectedVariant = matchingVariant;\n // const updatedCriteria = matchingVariant ? updateCriteriaFromVariant(matchingVariant) : [];\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: LettingManageDetail, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: LettingManageDetail, isStandalone: true, selector: \"rolatech-letting-manage-detail\", usesInheritance: true, ngImport: i0, template: \"@if (property) {\\n<rolatech-container>\\n <div class=\\\"flex flex-col w-full\\\">\\n <div class=\\\"py-3\\\">\\n <rolatech-property-media [media]=\\\"property.media\\\"></rolatech-property-media>\\n </div>\\n <div class=\\\"flex flex-col md:flex-row gap-3 w-full\\\">\\n <div class=\\\"w-full md:w-2/3\\\">\\n <rolatech-property-info [property]=\\\"property\\\" (wish)=\\\"onWish($event)\\\" [inWishList]=\\\"inWishList\\\">\\n </rolatech-property-info>\\n <rolatech-property-agent-renderer\\n [name]=\\\"fullname\\\"\\n [avatar]=\\\"user?.avatar\\\"\\n [username]=\\\"username\\\"\\n ></rolatech-property-agent-renderer>\\n <rolatech-property-features [features]=\\\"property.features\\\"></rolatech-property-features>\\n <rolatech-property-location [location]=\\\"property.location\\\"></rolatech-property-location>\\n @if (property.videos) {\\n <rolatech-property-video [video]=\\\"property.videos[0]\\\"></rolatech-property-video>\\n }\\n <div class=\\\"flex flex-col\\\">\\n <div class=\\\"text-2xl font-bold pt-3\\\" i18n>Sections</div>\\n @for (section of property.sections; track $index) {\\n <rolatech-property-section [section]=\\\"section\\\"></rolatech-property-section>\\n }\\n </div>\\n </div>\\n <div class=\\\"w-full h-fit md:w-1/3 rounded-md border shadow p-3\\\">\\n <rolatech-property-agent-renderer\\n [name]=\\\"fullname\\\"\\n [avatar]=\\\"user?.avatar\\\"\\n [username]=\\\"username\\\"\\n subtitle=\\\"PrimeCase Agent\\\"\\n ></rolatech-property-agent-renderer>\\n <rolatech-property-pricing (wish)=\\\"onWish($event)\\\" [property]=\\\"property\\\"></rolatech-property-pricing>\\n <rolatech-letting-actions\\n [letting]=\\\"property\\\"\\n (offer)=\\\"onOffer($event)\\\"\\n (deposit)=\\\"onOffer($event)\\\"\\n (requestViewing)=\\\"onRequestViewing($event)\\\"\\n >\\n @if (user) {\\n <rolatech-letting-action-contact [phone]=\\\"user.phone\\\"></rolatech-letting-action-contact>\\n }\\n </rolatech-letting-actions>\\n </div>\\n </div>\\n </div>\\n</rolatech-container>\\n}\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: AngularCommonModule }, { kind: \"ngmodule\", type: AngularComponentsModule }, { kind: \"component\", type: ContainerComponent, selector: \"rolatech-container\" }, { kind: \"component\", type: PropertyInfoComponent, selector: \"rolatech-property-info\", inputs: [\"property\", \"inWishList\"], outputs: [\"wish\"] }, { kind: \"component\", type: PropertyMediaComponent, selector: \"rolatech-property-media\", inputs: [\"media\", \"min\"] }, { kind: \"component\", type: PropertyPricingComponent, selector: \"rolatech-property-pricing\", inputs: [\"property\", \"price\"] }, { kind: \"component\", type: PropertySectionComponent, selector: \"rolatech-property-section\", inputs: [\"section\", \"user\", \"username\"] }, { kind: \"component\", type: LettingActions, selector: \"rolatech-letting-actions\", inputs: [\"letting\"], outputs: [\"requestViewing\", \"offer\", \"deposit\"] }, { kind: \"component\", type: LettingActionContact, selector: \"rolatech-letting-action-contact\", inputs: [\"phone\"], outputs: [\"callAgent\", \"emailAgent\"] }, { kind: \"component\", type: PropertyLocationComponent, selector: \"rolatech-property-location\", inputs: [\"location\"] }, { kind: \"component\", type: PropertyFeaturesComponent, selector: \"rolatech-property-features\", inputs: [\"features\"] }, { kind: \"component\", type: PropertyVideoComponent, selector: \"rolatech-property-video\", inputs: [\"video\"] }, { kind: \"component\", type: PropertyAgentRenderer, selector: \"rolatech-property-agent-renderer\", inputs: [\"name\", \"avatar\", \"username\", \"subtitle\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: LettingManageDetail, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-letting-manage-detail', imports: [\n AngularCommonModule,\n AngularComponentsModule,\n ContainerComponent,\n PropertyInfoComponent,\n PropertyMediaComponent,\n PropertyPricingComponent,\n PropertySectionComponent,\n LettingActions,\n LettingActionContact,\n PropertyLocationComponent,\n PropertyFeaturesComponent,\n PropertyVideoComponent,\n PropertyAgentRenderer\n ], template: \"@if (property) {\\n<rolatech-container>\\n <div class=\\\"flex flex-col w-full\\\">\\n <div class=\\\"py-3\\\">\\n <rolatech-property-media [media]=\\\"property.media\\\"></rolatech-property-media>\\n </div>\\n <div class=\\\"flex flex-col md:flex-row gap-3 w-full\\\">\\n <div class=\\\"w-full md:w-2/3\\\">\\n <rolatech-property-info [property]=\\\"property\\\" (wish)=\\\"onWish($event)\\\" [inWishList]=\\\"inWishList\\\">\\n </rolatech-property-info>\\n <rolatech-property-agent-renderer\\n [name]=\\\"fullname\\\"\\n [avatar]=\\\"user?.avatar\\\"\\n [username]=\\\"username\\\"\\n ></rolatech-property-agent-renderer>\\n <rolatech-property-features [features]=\\\"property.features\\\"></rolatech-property-features>\\n <rolatech-property-location [location]=\\\"property.location\\\"></rolatech-property-location>\\n @if (property.videos) {\\n <rolatech-property-video [video]=\\\"property.videos[0]\\\"></rolatech-property-video>\\n }\\n <div class=\\\"flex flex-col\\\">\\n <div class=\\\"text-2xl font-bold pt-3\\\" i18n>Sections</div>\\n @for (section of property.sections; track $index) {\\n <rolatech-property-section [section]=\\\"section\\\"></rolatech-property-section>\\n }\\n </div>\\n </div>\\n <div class=\\\"w-full h-fit md:w-1/3 rounded-md border shadow p-3\\\">\\n <rolatech-property-agent-renderer\\n [name]=\\\"fullname\\\"\\n [avatar]=\\\"user?.avatar\\\"\\n [username]=\\\"username\\\"\\n subtitle=\\\"PrimeCase Agent\\\"\\n ></rolatech-property-agent-renderer>\\n <rolatech-property-pricing (wish)=\\\"onWish($event)\\\" [property]=\\\"property\\\"></rolatech-property-pricing>\\n <rolatech-letting-actions\\n [letting]=\\\"property\\\"\\n (offer)=\\\"onOffer($event)\\\"\\n (deposit)=\\\"onOffer($event)\\\"\\n (requestViewing)=\\\"onRequestViewing($event)\\\"\\n >\\n @if (user) {\\n <rolatech-letting-action-contact [phone]=\\\"user.phone\\\"></rolatech-letting-action-contact>\\n }\\n </rolatech-letting-actions>\\n </div>\\n </div>\\n </div>\\n</rolatech-container>\\n}\\n\" }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGV0dGluZy1tYW5hZ2UtZGV0YWlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL3BhZ2VzL2xldHRpbmctbWFuYWdlL2xldHRpbmctbWFuYWdlLWRldGFpbC9sZXR0aW5nLW1hbmFnZS1kZXRhaWwudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvbGV0dGluZy1tYW5hZ2UvbGV0dGluZy1tYW5hZ2UtZGV0YWlsL2xldHRpbmctbWFuYWdlLWRldGFpbC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzFHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDdkIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbUVBQW1FLENBQUM7QUFDOUcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDbEcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbUVBQW1FLENBQUM7QUFDOUcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkRBQTZELENBQUM7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Q0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3BDLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3JCLE9BQU8sRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUU7YUFDcEIsQ0FBQyxDQUFDLENBQUM7UUFDTixDQUFDLENBQUM7UUFFRixpREFBaUQ7UUFDakQsTUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNsRyxJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWdCLENBQUM7UUFDeEMsNkZBQTZGO0lBQy9GLENBQUM7dUdBOUlVLG1CQUFtQjsyRkFBbkIsbUJBQW1CLGlIQ3RDaEMsZ25FQWtEQSx5REQ3QkksbUJBQW1CLDhCQUNuQix1QkFBdUIsK0JBQ3ZCLGtCQUFrQiwrREFDbEIscUJBQXFCLDBIQUNyQixzQkFBc0IsOEZBQ3RCLHdCQUF3QixxR0FDeEIsd0JBQXdCLCtHQUN4QixjQUFjLDJJQUNkLG9CQUFvQixxSUFDcEIseUJBQXlCLDZGQUN6Qix5QkFBeUIsNkZBQ3pCLHNCQUFzQix1RkFDdEIscUJBQXFCOzsyRkFLWixtQkFBbUI7a0JBcEIvQixTQUFTOytCQUNFLGdDQUFnQyxXQUNqQzt3QkFDUCxtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIsa0JBQWtCO3dCQUNsQixxQkFBcUI7d0JBQ3JCLHNCQUFzQjt3QkFDdEIsd0JBQXdCO3dCQUN4Qix3QkFBd0I7d0JBQ3hCLGNBQWM7d0JBQ2Qsb0JBQW9CO3dCQUNwQix5QkFBeUI7d0JBQ3pCLHlCQUF5Qjt3QkFDekIsc0JBQXNCO3dCQUN0QixxQkFBcUI7cUJBQ3RCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QsIE9uSW5pdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSwgQXV0aFVzZXJTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItYXV0aCc7XG5pbXBvcnQgeyBBbmd1bGFyQ29tbW9uTW9kdWxlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlLCBDb250YWluZXJDb21wb25lbnQsIEJhc2VDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IFByb3BlcnR5U2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLXNlcnZpY2VzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBQcm9wZXJ0eVByaWNpbmdDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzJztcbmltcG9ydCB7IFByb3BlcnR5RmVhdHVyZXNDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL3Byb3BlcnR5LWZlYXR1cmVzL3Byb3BlcnR5LWZlYXR1cmVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9wZXJ0eUluZm9Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL3Byb3BlcnR5LWluZm8vcHJvcGVydHktaW5mby5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvcGVydHlMb2NhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvcHJvcGVydHktbG9jYXRpb24vcHJvcGVydHktbG9jYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFByb3BlcnR5TWVkaWFDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL3Byb3BlcnR5LW1lZGlhL3Byb3BlcnR5LW1lZGlhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9wZXJ0eVNlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL3Byb3BlcnR5LXNlY3Rpb24vcHJvcGVydHktc2VjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvcGVydHlWaWRlb0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvcHJvcGVydHktdmlkZW8vcHJvcGVydHktdmlkZW8uY29tcG9uZW50JztcbmltcG9ydCB7IFByb3BlcnR5LCBQcm9wZXJ0eU9wdGlvbiwgUHJvcGVydHlWYXJpYW50LCBQcm9wZXJ0eVZhcmlhbnRPcHRpb24gfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IExldHRpbmdBY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9sZXR0aW5nLWFjdGlvbnMvbGV0dGluZy1hY3Rpb25zJztcbmltcG9ydCB7IExldHRpbmdBY3Rpb25Db250YWN0IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9sZXR0aW5nLWFjdGlvbi1jb250YWN0L2xldHRpbmctYWN0aW9uLWNvbnRhY3QnO1xuaW1wb3J0IHsgUHJvcGVydHlBZ2VudFJlbmRlcmVyIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9wcm9wZXJ0eS1hZ2VudC1yZW5kZXJlci9wcm9wZXJ0eS1hZ2VudC1yZW5kZXJlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWxldHRpbmctbWFuYWdlLWRldGFpbCcsXG4gIGltcG9ydHM6IFtcbiAgICBBbmd1bGFyQ29tbW9uTW9kdWxlLFxuICAgIEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlLFxuICAgIENvbnRhaW5lckNvbXBvbmVudCxcbiAgICBQcm9wZXJ0eUluZm9Db21wb25lbnQsXG4gICAgUHJvcGVydHlNZWRpYUNvbXBvbmVudCxcbiAgICBQcm9wZXJ0eVByaWNpbmdDb21wb25lbnQsXG4gICAgUHJvcGVydHlTZWN0aW9uQ29tcG9uZW50LFxuICAgIExldHRpbmdBY3Rpb25zLFxuICAgIExldHRpbmdBY3Rpb25Db250YWN0LFxuICAgIFByb3BlcnR5TG9jYXRpb25Db21wb25lbnQsXG4gICAgUHJvcGVydHlGZWF0dXJlc0NvbXBvbmVudCxcbiAgICBQcm9wZXJ0eVZpZGVvQ29tcG9uZW50LFxuICAgIFByb3BlcnR5QWdlbnRSZW5kZXJlclxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vbGV0dGluZy1tYW5hZ2UtZGV0YWlsLmh0bWwnLFxuICBzdHlsZVVybDogJy4vbGV0dGluZy1tYW5hZ2UtZGV0YWlsLnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBMZXR0aW5nTWFuYWdlRGV0YWlsIGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgYXV0aFVzZXJTZXJ2aWNlID0gaW5qZWN0KEF1dGhVc2VyU2VydmljZSk7XG4gIHByb3BlcnR5U2VydmljZSA9IGluamVjdChQcm9wZXJ0eVNlcnZpY2UpO1xuICBhdXRoZW50aWNhdGVkID0gdGhpcy5hdXRoU2VydmljZS5hdXRoZW50aWNhdGVkO1xuICBwcm9wZXJ0eSE6IFByb3BlcnR5O1xuICBmdWxsbmFtZSA9ICcnO1xuICB1c2VybmFtZSA9ICcnO1xuICB1c2VyOiBhbnk7XG4gIGluV2lzaExpc3QgPSBmYWxzZTtcbiAgcHVyY2hhc2VkID0gZmFsc2U7XG4gIHNlbGVjdGVkT3B0aW9uITogUHJvcGVydHlPcHRpb247XG4gIHZhcmlhbnRzOiBQcm9wZXJ0eVZhcmlhbnRbXSA9IFtdO1xuICBzZWxlY3RlZFZhcmlhbnQhOiBQcm9wZXJ0eVZhcmlhbnQ7XG4gIHZhcmlhbnRPcHRpb24gPSBzaWduYWw8UHJvcGVydHlWYXJpYW50T3B0aW9uIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICB2YXJpYW50T3B0aW9uQ2hhbmdlZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy52YXJpYW50T3B0aW9uKCk7XG4gIH0pO1xuXG4gIC8vIHJlc3VsdHM6IGFueVtdID0gW107XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmF1dGhlbnRpY2F0ZWQoKSkge1xuICAgICAgICB0aGlzLndpc2hMaXN0Q2hlY2soKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmdldFByb3BlcnR5KCk7XG4gIH1cbiAgZ2V0UHJvcGVydHkoKSB7XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZ2V0KHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5wcm9wZXJ0eSA9IHJlcy5kYXRhO1xuICAgICAgICBpZiAodGhpcy5wcm9wZXJ0eS52YXJpYW50cykge1xuICAgICAgICAgIHRoaXMudmFyaWFudHMgPSB0aGlzLnByb3BlcnR5LnZhcmlhbnRzO1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYXJpYW50ID0gdGhpcy52YXJpYW50c1swXTtcbiAgICAgICAgICAvLyB0aGlzLnNlbGVjdGVkVmFyaWFudC5vcHRpb25zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAvLyAgIHRoaXMucmVzdWx0cy5wdXNoKFtpdGVtLm9wdGlvbi5pZCwgaXRlbS52YWx1ZS5pZF0pO1xuICAgICAgICAgIC8vIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZmluZFVzZXJCYXNlSW5mbyh0aGlzLnByb3BlcnR5LmFnZW50SWQpO1xuICAgICAgICB0aGlzLnRpdGxlU2VydmljZS5zZXRUaXRsZShgJHt0aGlzLnByb3BlcnR5LnRpdGxlfWApO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIGZpbmRWYXJpYW50KG9wdGlvbklkOiBzdHJpbmcsIHZhbHVlSWQ6IHN0cmluZyk6IFByb3BlcnR5VmFyaWFudCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMudmFyaWFudHMuZmluZCgoaXRlbSkgPT4ge1xuICAgICAgY29uc3QgZXhpc3QgPSBpdGVtLm9wdGlvbnMuc29tZSgoaTogUHJvcGVydHlWYXJpYW50T3B0aW9uKSA9PiBpLm9wdGlvbi5pZCA9PT0gb3B0aW9uSWQgJiYgaS52YWx1ZS5pZCA9PT0gdmFsdWVJZCk7XG4gICAgICBpZiAoZXhpc3QpIHtcbiAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9KTtcbiAgfVxuICBmaW5kVXNlckJhc2VJbmZvKHVzZXJJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5hdXRoVXNlclNlcnZpY2UuZ2V0UHVibGljVXNlckluZm8odXNlcklkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmZ1bGxuYW1lID0gcmVzLm5hbWU7XG4gICAgICAgIHRoaXMudXNlcm5hbWUgPSByZXMudXNlcm5hbWU7XG4gICAgICAgIHRoaXMudXNlciA9IHJlcztcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgcHJpdmF0ZSB3aXNoTGlzdENoZWNrKCkge1xuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLndpc2hMaXN0Q2hlY2sodGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmluV2lzaExpc3QgPSByZXMuZGF0YTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgb25XaXNoKGU6IGFueSkge1xuICAgIGlmICh0aGlzLmF1dGhlbnRpY2F0ZWQoKSkge1xuICAgICAgaWYgKHRoaXMuaW5XaXNoTGlzdCkge1xuICAgICAgICB0aGlzLnJlbW92ZUZyb21XaXNobGlzdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5hZGRUb1dpc2hsaXN0KCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oJ1BsZWFzZSBzaWduIGluJyk7XG4gICAgfVxuICB9XG4gIG9uUmVxdWVzdFZpZXdpbmcoZTogYW55KSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AvbGV0dGluZ3MvJHt0aGlzLmlkfS92aWV3aW5nL2FwcGxpY2F0aW9uYF0pO1xuICB9XG4gIHByaXZhdGUgcmVtb3ZlRnJvbVdpc2hsaXN0KCkge1xuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLnJlbW92ZUZyb21XaXNobGlzdCh0aGlzLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmluV2lzaExpc3QgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbignUmVtb3ZlZCcpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIGFkZFRvV2lzaGxpc3QoKSB7XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuYWRkVG9XaXNobGlzdCh0aGlzLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmluV2lzaExpc3QgPSB0cnVlO1xuICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKCdBZGRlZCcpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBvbk9mZmVyKGU6IGFueSkge1xuICAgIGlmICh0aGlzLmF1dGhlbnRpY2F0ZWQoKSkge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AvbGV0dGluZ3MvJHt0aGlzLmlkfS9vZmZlcmBdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbignUGxlYXNlIHNpZ24gaW4nKTtcbiAgICB9XG4gIH1cblxuICBvbk9wdGlvbkNoYW5nZShlKSB7XG4gICAgY29uc3QgY3JpdGVyaWE6IGFueSA9IFtdO1xuICAgIHRoaXMuc2VsZWN0ZWRWYXJpYW50Lm9wdGlvbnMubWFwKChpdGVtKSA9PiB7XG4gICAgICBjcml0ZXJpYS5wdXNoKHtcbiAgICAgICAgb3B0aW9uSWQ6IGl0ZW0ub3B0aW9uLmlkID09PSBlLm9wdGlvbi5pZCA/IGUub3B0aW9uLmlkIDogaXRlbS5vcHRpb24uaWQsXG4gICAgICAgIHZhbHVlSWQ6IGl0ZW0ub3B0aW9uLmlkID09PSBlLm9wdGlvbi5pZCA/IGUudmFsdWUuaWQgOiBpdGVtLnZhbHVlLmlkLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICAvLyBjb25zdCBjcml0ZXJpYSA9IFtcbiAgICAvLyAgIHsgb3B0aW9uSWQ6ICcyNDkwMDg4NTUyOTQ1NDU5MjAnLCB2YWx1ZUlkOiAnMjQ5MDA4ODU1Mjk4NzQwMjI0JyB9LCAvLyBjb2xvcjogcmVkXG4gICAgLy8gICB7IG9wdGlvbklkOiAnMjQ4NjYxNzE1OTU1MzU1NjQ4JywgdmFsdWVJZDogJzI0OTAwMTEzMDA2MTg2MDg2NScgfSwgLy8gc2l6ZTogMjU2R0JcbiAgICAvLyBdO1xuXG4gICAgLy8gRnVuY3Rpb24gdG8gY2hlY2sgaWYgYSB2YXJpYW50IG1hdGNoZXMgYWxsIHRoZSBjcml0ZXJpYVxuICAgIGNvbnN0IG1hdGNoZXNBbGxDcml0ZXJpYSA9ICh2YXJpYW50LCBjcml0ZXJpYSkgPT4ge1xuICAgICAgcmV0dXJuIF8uZXZlcnkoY3JpdGVyaWEsIChjcml0ZXJpb24pID0+IHtcbiAgICAgICAgcmV0dXJuIF8uc29tZSh2YXJpYW50Lm9wdGlvbnMsIChvKSA9PiBvLm9wdGlvbi5pZCA9PT0gY3JpdGVyaW9uLm9wdGlvbklkICYmIG8udmFsdWUuaWQgPT09IGNyaXRlcmlvbi52YWx1ZUlkKTtcbiAgICAgIH0pO1xuICAgIH07XG4gICAgLy8gRnVuY3Rpb24gdG8gdXBkYXRlIHRoZSBjcml0ZXJpYSBiYXNlZCBvbiBhIG1hdGNoaW5nIHZhcmlhbnRcbiAgICBjb25zdCB1cGRhdGVDcml0ZXJpYUZyb21WYXJpYW50ID0gKHZhcmlhbnQpID0+IHtcbiAgICAgIHJldHVybiBfLm1hcCh2YXJpYW50Lm9wdGlvbnMsIChvKSA9PiAoe1xuICAgICAgICBvcHRpb25JZDogby5vcHRpb24uaWQsXG4gICAgICAgIHZhbHVlSWQ6IG8udmFsdWUuaWQsXG4gICAgICB9KSk7XG4gICAgfTtcblxuICAgIC8vIEZpbmQgdGhlIHZhcmlhbnQgdGhhdCBtYXRjaGVzIGFsbCB0aGUgY3JpdGVyaWFcbiAgICBjb25zdCBtYXRjaGluZ1ZhcmlhbnQgPSBfLmZpbmQodGhpcy52YXJpYW50cywgKHZhcmlhbnQpID0+IG1hdGNoZXNBbGxDcml0ZXJpYSh2YXJpYW50LCBjcml0ZXJpYSkpO1xuICAgIHRoaXMuc2VsZWN0ZWRWYXJpYW50ID0gbWF0Y2hpbmdWYXJpYW50ITtcbiAgICAvLyBjb25zdCB1cGRhdGVkQ3JpdGVyaWEgPSBtYXRjaGluZ1ZhcmlhbnQgPyB1cGRhdGVDcml0ZXJpYUZyb21WYXJpYW50KG1hdGNoaW5nVmFyaWFudCkgOiBbXTtcbiAgfVxufVxuIiwiQGlmIChwcm9wZXJ0eSkge1xuPHJvbGF0ZWNoLWNvbnRhaW5lcj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgdy1mdWxsXCI+XG4gICAgPGRpdiBjbGFzcz1cInB5LTNcIj5cbiAgICAgIDxyb2xhdGVjaC1wcm9wZXJ0eS1tZWRpYSBbbWVkaWFdPVwicHJvcGVydHkubWVkaWFcIj48L3JvbGF0ZWNoLXByb3BlcnR5LW1lZGlhPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IGdhcC0zIHctZnVsbFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBtZDp3LTIvM1wiPlxuICAgICAgICA8cm9sYXRlY2gtcHJvcGVydHktaW5mbyBbcHJvcGVydHldPVwicHJvcGVydHlcIiAod2lzaCk9XCJvbldpc2goJGV2ZW50KVwiIFtpbldpc2hMaXN0XT1cImluV2lzaExpc3RcIj5cbiAgICAgICAgPC9yb2xhdGVjaC1wcm9wZXJ0eS1pbmZvPlxuICAgICAgICA8cm9sYXRlY2gtcHJvcGVydHktYWdlbnQtcmVuZGVyZXJcbiAgICAgICAgICBbbmFtZV09XCJmdWxsbmFtZVwiXG4gICAgICAgICAgW2F2YXRhcl09XCJ1c2VyPy5hdmF0YXJcIlxuICAgICAgICAgIFt1c2VybmFtZV09XCJ1c2VybmFtZVwiXG4gICAgICAgID48L3JvbGF0ZWNoLXByb3BlcnR5LWFnZW50LXJlbmRlcmVyPlxuICAgICAgICA8cm9sYXRlY2gtcHJvcGVydHktZmVhdHVyZXMgW2ZlYXR1cmVzXT1cInByb3BlcnR5LmZlYXR1cmVzXCI+PC9yb2xhdGVjaC1wcm9wZXJ0eS1mZWF0dXJlcz5cbiAgICAgICAgPHJvbGF0ZWNoLXByb3BlcnR5LWxvY2F0aW9uIFtsb2NhdGlvbl09XCJwcm9wZXJ0eS5sb2NhdGlvblwiPjwvcm9sYXRlY2gtcHJvcGVydHktbG9jYXRpb24+XG4gICAgICAgIEBpZiAocHJvcGVydHkudmlkZW9zKSB7XG4gICAgICAgIDxyb2xhdGVjaC1wcm9wZXJ0eS12aWRlbyBbdmlkZW9dPVwicHJvcGVydHkudmlkZW9zWzBdXCI+PC9yb2xhdGVjaC1wcm9wZXJ0eS12aWRlbz5cbiAgICAgICAgfVxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LTJ4bCBmb250LWJvbGQgcHQtM1wiIGkxOG4+U2VjdGlvbnM8L2Rpdj5cbiAgICAgICAgICBAZm9yIChzZWN0aW9uIG9mIHByb3BlcnR5LnNlY3Rpb25zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICA8cm9sYXRlY2gtcHJvcGVydHktc2VjdGlvbiBbc2VjdGlvbl09XCJzZWN0aW9uXCI+PC9yb2xhdGVjaC1wcm9wZXJ0eS1zZWN0aW9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgaC1maXQgbWQ6dy0xLzMgcm91bmRlZC1tZCBib3JkZXIgc2hhZG93IHAtM1wiPlxuICAgICAgICA8cm9sYXRlY2gtcHJvcGVydHktYWdlbnQtcmVuZGVyZXJcbiAgICAgICAgICBbbmFtZV09XCJmdWxsbmFtZVwiXG4gICAgICAgICAgW2F2YXRhcl09XCJ1c2VyPy5hdmF0YXJcIlxuICAgICAgICAgIFt1c2VybmFtZV09XCJ1c2VybmFtZVwiXG4gICAgICAgICAgc3VidGl0bGU9XCJQcmltZUNhc2UgQWdlbnRcIlxuICAgICAgICA+PC9yb2xhdGVjaC1wcm9wZXJ0eS1hZ2VudC1yZW5kZXJlcj5cbiAgICAgICAgPHJvbGF0ZWNoLXByb3BlcnR5LXByaWNpbmcgKHdpc2gpPVwib25XaXNoKCRldmVudClcIiBbcHJvcGVydHldPVwicHJvcGVydHlcIj48L3JvbGF0ZWNoLXByb3BlcnR5LXByaWNpbmc+XG4gICAgICAgIDxyb2xhdGVjaC1sZXR0aW5nLWFjdGlvbnNcbiAgICAgICAgICBbbGV0dGluZ109XCJwcm9wZXJ0eVwiXG4gICAgICAgICAgKG9mZmVyKT1cIm9uT2ZmZXIoJGV2ZW50KVwiXG4gICAgICAgICAgKGRlcG9zaXQpPVwib25PZmZlcigkZXZlbnQpXCJcbiAgICAgICAgICAocmVxdWVzdFZpZXdpbmcpPVwib25SZXF1ZXN0Vmlld2luZygkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIEBpZiAodXNlcikge1xuICAgICAgICAgIDxyb2xhdGVjaC1sZXR0aW5nLWFjdGlvbi1jb250YWN0IFtwaG9uZV09XCJ1c2VyLnBob25lXCI+PC9yb2xhdGVjaC1sZXR0aW5nLWFjdGlvbi1jb250YWN0PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9yb2xhdGVjaC1sZXR0aW5nLWFjdGlvbnM+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3JvbGF0ZWNoLWNvbnRhaW5lcj5cbn1cbiJdfQ==","import { Component, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { FormsModule } from '@angular/forms';\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DateAdapter, MAT_DATE_LOCALE, MAT_DATE_FORMATS } from '@angular/material/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSelectModule } from '@angular/material/select';\nimport { AuthService, AuthUserService } from '@rolatech/angular-auth';\nimport { ContainerComponent, ThumbnailComponent, BaseComponent } from '@rolatech/angular-components';\nimport { PropertyService } from '@rolatech/angular-services';\nimport { PropertyViewingTimeComponent } from '../../../components/property-viewing-time/property-viewing-time.component';\nimport { PropertyPricingComponent } from '../../../components';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/form-field\";\nimport * as i2 from \"@angular/forms\";\nimport * as i3 from \"@angular/material/input\";\nimport * as i4 from \"@angular/material/button\";\nimport * as i5 from \"@angular/material/select\";\nimport * as i6 from \"@angular/material/datepicker\";\nexport const MY_FORMATS = {\n parse: {\n dateInput: 'YYYY-MM-DD',\n },\n display: {\n dateInput: 'YYYY-MM-DD',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'YYYY-MM-DD',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n};\nexport class LettingManageViewingRequest extends BaseComponent {\n authService = inject(AuthService);\n authUserService = inject(AuthUserService);\n propertyService = inject(PropertyService);\n property;\n minDate = new Date();\n viewing = {\n proposedSlots: [\n { date: '', time: '' },\n { date: '', time: '' },\n { date: '', time: '' },\n ],\n };\n tenants;\n countries = ['United Kingdom', 'China'];\n selectedCountry;\n ngOnInit() {\n this.getProperty();\n this.findTenants();\n }\n getProperty() {\n this.propertyService.get(this.id).subscribe({\n next: (res) => {\n this.property = res.data;\n this.titleService.setTitle(`${this.property.title}`);\n },\n });\n }\n findTenants() {\n this.propertyService.findTenants({}).subscribe({\n next: (res) => {\n this.tenants = res.data;\n }\n });\n }\n onCountrySelect(event) {\n this.viewing['country'] = event.value;\n }\n sendRequest() {\n this.propertyService.requestViewing(this.id, this.viewing).subscribe({\n next: (res) => {\n this.snackBarService.open('Request viewing successfully');\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: LettingManageViewingRequest, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: LettingManageViewingRequest, isStandalone: true, selector: \"rolatech-letting-viewing-request\", providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE],\n },\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },\n ], usesInheritance: true, ngImport: i0, template: \"<rolatech-container>\\n <div class=\\\"flex flex-col-reverse md:flex-row w-full py-2 mb-3 gap-3\\\">\\n <div class=\\\"w-full md:w-2/3\\\">\\n <div>\\n <div class=\\\"text-xl font-bold py-2 mb-3\\\" i18n>Request a viewing</div>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label>Select tenant</mat-label>\\n <mat-select [(ngModel)]=\\\"viewing.tenantId\\\">\\n @for (item of tenants; track $index) {\\n <mat-option [value]=\\\"item.id\\\">\\n <div class=\\\"flex justify-between items-center\\\">\\n <span class=\\\"mr-3\\\">{{ item.firstName }}, {{item.lastName}}</span>\\n <span>{{item.email}}</span>\\n </div>\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <input\\n matInput\\n placeholder=\\\"Start date\\\"\\n [matDatepicker]=\\\"startDatePicker\\\"\\n [min]=\\\"minDate\\\"\\n (focus)=\\\"startDatePicker.open()\\\"\\n name=\\\"startDate\\\"\\n [(ngModel)]=\\\"viewing.startDate\\\"\\n (dateInput)=\\\"viewing.startDate = $event.value.format('YYYY-MM-DD')\\\"\\n readonly\\n />\\n <mat-datepicker-toggle matIconPrefix [for]=\\\"startDatePicker\\\"></mat-datepicker-toggle>\\n <mat-datepicker #startDatePicker></mat-datepicker>\\n </mat-form-field>\\n <div class=\\\"flex flex-col md:flex-row gap-2\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Tenancy length</mat-label>\\n <span matTextSuffix>months</span>\\n <input matInput type=\\\"number\\\" [(ngModel)]=\\\"viewing.tenancyDuration\\\" />\\n </mat-form-field>\\n </div>\\n\\n <div>\\n <div class=\\\"mb-3\\\">\\n <div class=\\\"text-lg font-bold\\\" i18n>Viewing date</div>\\n <div class=\\\"opacity-70\\\" i18n>\\n Please choose 3 different times on at least 2 different days that would work for you.\\n </div>\\n </div>\\n @for (item of viewing.proposedSlots; track $index) {\\n <rolatech-property-viewing-time [proposedTime]=\\\"item\\\"></rolatech-property-viewing-time>\\n }\\n </div>\\n </div>\\n <button mat-flat-button (click)=\\\"sendRequest()\\\" i18n>Send request</button>\\n </div>\\n @if (property) {\\n <div class=\\\"w-full md:w-1/2 py-2 mb-3\\\">\\n <div class=\\\"text-xl font-bold py-2 mb-3\\\" i18n>Property info</div>\\n <div>\\n <rolatech-thumbnail [src]=\\\"property ? property.media[0].url : ''\\\" size=\\\"small\\\"></rolatech-thumbnail>\\n </div>\\n <rolatech-property-pricing [property]=\\\"property\\\"></rolatech-property-pricing>\\n </div>\\n }\\n </div>\\n</rolatech-container>\\n\", styles: [\"mat-form-field{width:100%}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"component\", type: ContainerComponent, selector: \"rolatech-container\" }, { kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"component\", type: i1.MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: i1.MatLabel, selector: \"mat-label\" }, { kind: \"directive\", type: i1.MatPrefix, selector: \"[matPrefix], [matIconPrefix], [matTextPrefix]\", inputs: [\"matTextPrefix\"] }, { kind: \"directive\", type: i1.MatSuffix, selector: \"[matSuffix], [matIconSuffix], [matTextSuffix]\", inputs: [\"matTextSuffix\"] }, { kind: \"ngmodule\", type: FormsModule }, { 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.NumberValueAccessor, selector: \"input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]\" }, { kind: \"directive\", type: i2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i2.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"directive\", type: i3.MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\", \"disabledInteractive\"], exportAs: [\"matInput\"] }, { kind: \"ngmodule\", type: TextFieldModule }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i4.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: ThumbnailComponent, selector: \"rolatech-thumbnail\", inputs: [\"src\", \"size\", \"mode\", \"ratio\", \"width\", \"height\"] }, { kind: \"ngmodule\", type: MatSelectModule }, { kind: \"component\", type: i5.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\", \"canSelectNullableOptions\"], outputs: [\"openedChange\", \"opened\", \"closed\", \"selectionChange\", \"valueChange\"], exportAs: [\"matSelect\"] }, { kind: \"component\", type: i5.MatOption, selector: \"mat-option\", inputs: [\"value\", \"id\", \"disabled\"], outputs: [\"onSelectionChange\"], exportAs: [\"matOption\"] }, { kind: \"ngmodule\", type: MatDatepickerModule }, { kind: \"component\", type: i6.MatDatepicker, selector: \"mat-datepicker\", exportAs: [\"matDatepicker\"] }, { kind: \"directive\", type: i6.MatDatepickerInput, selector: \"input[matDatepicker]\", inputs: [\"matDatepicker\", \"min\", \"max\", \"matDatepickerFilter\"], exportAs: [\"matDatepickerInput\"] }, { kind: \"component\", type: i6.MatDatepickerToggle, selector: \"mat-datepicker-toggle\", inputs: [\"for\", \"tabIndex\", \"aria-label\", \"disabled\", \"disableRipple\"], exportAs: [\"matDatepickerToggle\"] }, { kind: \"ngmodule\", type: MatRadioModule }, { kind: \"component\", type: PropertyViewingTimeComponent, selector: \"rolatech-property-viewing-time\", inputs: [\"proposedTime\"], outputs: [\"output\", \"select\"] }, { kind: \"component\", type: PropertyPricingComponent, selector: \"rolatech-property-pricing\", inputs: [\"property\", \"price\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: LettingManageViewingRequest, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-letting-viewing-request', imports: [\n CommonModule,\n ContainerComponent,\n MatFormFieldModule,\n FormsModule,\n MatInputModule,\n TextFieldModule,\n MatButtonModule,\n ThumbnailComponent,\n MatSelectModule,\n MatDatepickerModule,\n MatRadioModule,\n PropertyViewingTimeComponent,\n PropertyPricingComponent\n ], providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE],\n },\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },\n ], template: \"<rolatech-container>\\n <div class=\\\"flex flex-col-reverse md:flex-row w-full py-2 mb-3 gap-3\\\">\\n <div class=\\\"w-full md:w-2/3\\\">\\n <div>\\n <div class=\\\"text-xl font-bold py-2 mb-3\\\" i18n>Request a viewing</div>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label>Select tenant</mat-label>\\n <mat-select [(ngModel)]=\\\"viewing.tenantId\\\">\\n @for (item of tenants; track $index) {\\n <mat-option [value]=\\\"item.id\\\">\\n <div class=\\\"flex justify-between items-center\\\">\\n <span class=\\\"mr-3\\\">{{ item.firstName }}, {{item.lastName}}</span>\\n <span>{{item.email}}</span>\\n </div>\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <input\\n matInput\\n placeholder=\\\"Start date\\\"\\n [matDatepicker]=\\\"startDatePicker\\\"\\n [min]=\\\"minDate\\\"\\n (focus)=\\\"startDatePicker.open()\\\"\\n name=\\\"startDate\\\"\\n [(ngModel)]=\\\"viewing.startDate\\\"\\n (dateInput)=\\\"viewing.startDate = $event.value.format('YYYY-MM-DD')\\\"\\n readonly\\n />\\n <mat-datepicker-toggle matIconPrefix [for]=\\\"startDatePicker\\\"></mat-datepicker-toggle>\\n <mat-datepicker #startDatePicker></mat-datepicker>\\n </mat-form-field>\\n <div class=\\\"flex flex-col md:flex-row gap-2\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Tenancy length</mat-label>\\n <span matTextSuffix>months</span>\\n <input matInput type=\\\"number\\\" [(ngModel)]=\\\"viewing.tenancyDuration\\\" />\\n </mat-form-field>\\n </div>\\n\\n <div>\\n <div class=\\\"mb-3\\\">\\n <div class=\\\"text-lg font-bold\\\" i18n>Viewing date</div>\\n <div class=\\\"opacity-70\\\" i18n>\\n Please choose 3 different times on at least 2 different days that would work for you.\\n </div>\\n </div>\\n @for (item of viewing.proposedSlots; track $index) {\\n <rolatech-property-viewing-time [proposedTime]=\\\"item\\\"></rolatech-property-viewing-time>\\n }\\n </div>\\n </div>\\n <button mat-flat-button (click)=\\\"sendRequest()\\\" i18n>Send request</button>\\n </div>\\n @if (property) {\\n <div class=\\\"w-full md:w-1/2 py-2 mb-3\\\">\\n <div class=\\\"text-xl font-bold py-2 mb-3\\\" i18n>Property info</div>\\n <div>\\n <rolatech-thumbnail [src]=\\\"property ? property.media[0].url : ''\\\" size=\\\"small\\\"></rolatech-thumbnail>\\n </div>\\n <rolatech-property-pricing [property]=\\\"property\\\"></rolatech-property-pricing>\\n </div>\\n }\\n </div>\\n</rolatech-container>\\n\", styles: [\"mat-form-field{width:100%}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGV0dGluZy1tYW5hZ2Utdmlld2luZy1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL3BhZ2VzL2xldHRpbmctbWFuYWdlL2xldHRpbmctbWFuYWdlLXZpZXdpbmctcmVxdWVzdC9sZXR0aW5nLW1hbmFnZS12aWV3aW5nLXJlcXVlc3QudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvbGV0dGluZy1tYW5hZ2UvbGV0dGluZy1tYW5hZ2Utdmlld2luZy1yZXF1ZXN0L2xldHRpbmctbWFuYWdlLXZpZXdpbmctcmVxdWVzdC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVksTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFrQixNQUFNLHlC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cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUZXh0RmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGV4dC1maWVsZCc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1vbWVudERhdGVBZGFwdGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwtbW9tZW50LWFkYXB0ZXInO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IERhdGVBZGFwdGVyLCBNQVRfREFURV9MT0NBTEUsIE1BVF9EQVRFX0ZPUk1BVFMgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRSYWRpb01vZHVsZSwgTWF0UmFkaW9DaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UsIEF1dGhVc2VyU2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWF1dGgnO1xuaW1wb3J0IHsgQ29udGFpbmVyQ29tcG9uZW50LCBUaHVtYm5haWxDb21wb25lbnQsIEJhc2VDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IFByb3BlcnR5U2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLXNlcnZpY2VzJztcbmltcG9ydCB7IFByb3BlcnR5LCBQcm9wZXJ0eVZpZXdpbmdSZXF1ZXN0LCBQcm9wZXJ0eVZpZXdlckNhdGVnb3J5LCBQcm9wZXJ0eUFwcGxpY2FudFR5cGUsIFJlc2lkZW5jeVN0YXR1cywgRW1wbG95bWVudFN0YXR1cywgQWR2ZXJzZUNyZWRpdFN0YXR1cyB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgUHJvcGVydHlWaWV3aW5nVGltZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvcHJvcGVydHktdmlld2luZy10aW1lL3Byb3BlcnR5LXZpZXdpbmctdGltZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvcGVydHlQcmljaW5nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cyc7XG5leHBvcnQgY29uc3QgTVlfRk9STUFUUyA9IHtcbiAgcGFyc2U6IHtcbiAgICBkYXRlSW5wdXQ6ICdZWVlZLU1NLUREJyxcbiAgfSxcbiAgZGlzcGxheToge1xuICAgIGRhdGVJbnB1dDogJ1lZWVktTU0tREQnLFxuICAgIG1vbnRoWWVhckxhYmVsOiAnTU1NIFlZWVknLFxuICAgIGRhdGVBMTF5TGFiZWw6ICdZWVlZLU1NLUREJyxcbiAgICBtb250aFllYXJBMTF5TGFiZWw6ICdNTU1NIFlZWVknLFxuICB9LFxufTtcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWxldHRpbmctdmlld2luZy1yZXF1ZXN0JyxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBDb250YWluZXJDb21wb25lbnQsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIFRleHRGaWVsZE1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgVGh1bWJuYWlsQ29tcG9uZW50LFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxuICAgIE1hdFJhZGlvTW9kdWxlLFxuICAgIFByb3BlcnR5Vmlld2luZ1RpbWVDb21wb25lbnQsXG4gICAgUHJvcGVydHlQcmljaW5nQ29tcG9uZW50XG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9sZXR0aW5nLW1hbmFnZS12aWV3aW5nLXJlcXVlc3QuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9sZXR0aW5nLW1hbmFnZS12aWV3aW5nLXJlcXVlc3Quc2NzcycsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IERhdGVBZGFwdGVyLFxuICAgICAgdXNlQ2xhc3M6IE1vbWVudERhdGVBZGFwdGVyLFxuICAgICAgZGVwczogW01BVF9EQVRFX0xPQ0FMRV0sXG4gICAgfSxcbiAgICB7IHByb3ZpZGU6IE1BVF9EQVRFX0ZPUk1BVFMsIHVzZVZhbHVlOiBNWV9GT1JNQVRTIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIExldHRpbmdNYW5hZ2VWaWV3aW5nUmVxdWVzdCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBhdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7XG4gIGF1dGhVc2VyU2VydmljZSA9IGluamVjdChBdXRoVXNlclNlcnZpY2UpO1xuICBwcm9wZXJ0eVNlcnZpY2UgPSBpbmplY3QoUHJvcGVydHlTZXJ2aWNlKTtcbiAgcHJvcGVydHkhOiBQcm9wZXJ0eTtcbiAgbWluRGF0ZSA9IG5ldyBEYXRlKCk7XG4gIHZpZXdpbmc6IFByb3BlcnR5Vmlld2luZ1JlcXVlc3QgPSB7XG4gICAgcHJvcG9zZWRTbG90czogW1xuICAgICAgeyBkYXRlOiAnJywgdGltZTogJycgfSxcbiAgICAgIHsgZGF0ZTogJycsIHRpbWU6ICcnIH0sXG4gICAgICB7IGRhdGU6ICcnLCB0aW1lOiAnJyB9LFxuICAgIF0sXG4gIH07XG4gIHRlbmFudHM6IGFueTtcbiAgY291bnRyaWVzOiBzdHJpbmdbXSA9IFsnVW5pdGVkIEtpbmdkb20nLCAnQ2hpbmEnXTtcbiAgc2VsZWN0ZWRDb3VudHJ5O1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmdldFByb3BlcnR5KCk7XG4gICAgdGhpcy5maW5kVGVuYW50cygpXG4gIH1cbiAgZ2V0UHJvcGVydHkoKSB7XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZ2V0KHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5wcm9wZXJ0eSA9IHJlcy5kYXRhO1xuICAgICAgICB0aGlzLnRpdGxlU2VydmljZS5zZXRUaXRsZShgJHt0aGlzLnByb3BlcnR5LnRpdGxlfWApO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBmaW5kVGVuYW50cygpIHtcbiAgICB0aGlzLnByb3BlcnR5U2VydmljZS5maW5kVGVuYW50cyh7fSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnRlbmFudHMgPSByZXMuZGF0YVxuICAgICAgfVxuICAgIH0pXG4gIH1cbiAgb25Db3VudHJ5U2VsZWN0KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnZpZXdpbmdbJ2NvdW50cnknXSA9IGV2ZW50LnZhbHVlO1xuICB9XG5cbiAgc2VuZFJlcXVlc3QoKSB7XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UucmVxdWVzdFZpZXdpbmcodGhpcy5pZCwgdGhpcy52aWV3aW5nKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKCdSZXF1ZXN0IHZpZXdpbmcgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuXG4iLCI8cm9sYXRlY2gtY29udGFpbmVyPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbC1yZXZlcnNlIG1kOmZsZXgtcm93IHctZnVsbCBweS0yIG1iLTMgZ2FwLTNcIj5cbiAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIG1kOnctMi8zXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC14bCBmb250LWJvbGQgcHktMiBtYi0zXCIgaTE4bj5SZXF1ZXN0IGEgdmlld2luZzwvZGl2PlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgICA8bWF0LWxhYmVsPlNlbGVjdCB0ZW5hbnQ8L21hdC1sYWJlbD5cbiAgICAgICAgICA8bWF0LXNlbGVjdCBbKG5nTW9kZWwpXT1cInZpZXdpbmcudGVuYW50SWRcIj5cbiAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgdGVuYW50czsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiaXRlbS5pZFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtci0zXCI+e3sgaXRlbS5maXJzdE5hbWUgfX0sIHt7aXRlbS5sYXN0TmFtZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7aXRlbS5lbWFpbH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU3RhcnQgZGF0ZVwiXG4gICAgICAgICAgICBbbWF0RGF0ZXBpY2tlcl09XCJzdGFydERhdGVQaWNrZXJcIlxuICAgICAgICAgICAgW21pbl09XCJtaW5EYXRlXCJcbiAgICAgICAgICAgIChmb2N1cyk9XCJzdGFydERhdGVQaWNrZXIub3BlbigpXCJcbiAgICAgICAgICAgIG5hbWU9XCJzdGFydERhdGVcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ2aWV3aW5nLnN0YXJ0RGF0ZVwiXG4gICAgICAgICAgICAoZGF0ZUlucHV0KT1cInZpZXdpbmcuc3RhcnREYXRlID0gJGV2ZW50LnZhbHVlLmZvcm1hdCgnWVlZWS1NTS1ERCcpXCJcbiAgICAgICAgICAgIHJlYWRvbmx5XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdEljb25QcmVmaXggW2Zvcl09XCJzdGFydERhdGVQaWNrZXJcIj48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cbiAgICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI3N0YXJ0RGF0ZVBpY2tlcj48L21hdC1kYXRlcGlja2VyPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBtZDpmbGV4LXJvdyBnYXAtMlwiPlxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgICAgPG1hdC1sYWJlbCBpMThuPlRlbmFuY3kgbGVuZ3RoPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8c3BhbiBtYXRUZXh0U3VmZml4Pm1vbnRoczwvc3Bhbj5cbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwibnVtYmVyXCIgWyhuZ01vZGVsKV09XCJ2aWV3aW5nLnRlbmFuY3lEdXJhdGlvblwiIC8+XG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbGcgZm9udC1ib2xkXCIgaTE4bj5WaWV3aW5nIGRhdGU8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcGFjaXR5LTcwXCIgaTE4bj5cbiAgICAgICAgICAgICAgUGxlYXNlIGNob29zZSAzIGRpZmZlcmVudCB0aW1lcyBvbiBhdCBsZWFzdCAyIGRpZmZlcmVudCBkYXlzIHRoYXQgd291bGQgd29yayBmb3IgeW91LlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgQGZvciAoaXRlbSBvZiB2aWV3aW5nLnByb3Bvc2VkU2xvdHM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgIDxyb2xhdGVjaC1wcm9wZXJ0eS12aWV3aW5nLXRpbWUgW3Byb3Bvc2VkVGltZV09XCJpdGVtXCI+PC9yb2xhdGVjaC1wcm9wZXJ0eS12aWV3aW5nLXRpbWU+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gKGNsaWNrKT1cInNlbmRSZXF1ZXN0KClcIiBpMThuPlNlbmQgcmVxdWVzdDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIEBpZiAocHJvcGVydHkpIHtcbiAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIG1kOnctMS8yIHB5LTIgbWItM1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInRleHQteGwgZm9udC1ib2xkIHB5LTIgbWItM1wiIGkxOG4+UHJvcGVydHkgaW5mbzwvZGl2PlxuICAgICAgPGRpdj5cbiAgICAgICAgPHJvbGF0ZWNoLXRodW1ibmFpbCBbc3JjXT1cInByb3BlcnR5ID8gcHJvcGVydHkubWVkaWFbMF0udXJsIDogJydcIiBzaXplPVwic21hbGxcIj48L3JvbGF0ZWNoLXRodW1ibmFpbD5cbiAgICAgIDwvZGl2PlxuICAgICAgPHJvbGF0ZWNoLXByb3BlcnR5LXByaWNpbmcgW3Byb3BlcnR5XT1cInByb3BlcnR5XCI+PC9yb2xhdGVjaC1wcm9wZXJ0eS1wcmljaW5nPlxuICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG48L3JvbGF0ZWNoLWNvbnRhaW5lcj5cbiJdfQ==","import { Component, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\nimport { MatSelectModule } from '@angular/material/select';\nimport { AuthService, AuthUserService } from '@rolatech/angular-auth';\nimport { ContainerComponent, ThumbnailComponent, BaseComponent } from '@rolatech/angular-components';\nimport { PropertyService } from '@rolatech/angular-services';\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { DateAdapter, MAT_DATE_LOCALE, MAT_DATE_FORMATS } from '@angular/material/core';\nimport { PropertyPricingComponent } from '../../../components';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/form-field\";\nimport * as i2 from \"@angular/forms\";\nimport * as i3 from \"@angular/material/input\";\nimport * as i4 from \"@angular/cdk/text-field\";\nimport * as i5 from \"@angular/material/button\";\nimport * as i6 from \"@angular/material/select\";\nimport * as i7 from \"@angular/material/datepicker\";\nexport const MY_FORMATS = {\n parse: {\n dateInput: 'YYYY-MM-DD',\n },\n display: {\n dateInput: 'YYYY-MM-DD',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'YYYY-MM-DD',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n};\nexport class LettingManageOfferRequest extends BaseComponent {\n authService = inject(AuthService);\n authUserService = inject(AuthUserService);\n propertyService = inject(PropertyService);\n offer = {\n startDate: '',\n notes: '',\n amount: 0,\n };\n get formattedAmount() {\n return this.offer.amount.toFixed(2); // equivalent to | number:'1.2-2'\n }\n ;\n property;\n minDate = new Date();\n sending = false;\n tenants;\n ngOnInit() {\n this.getProperty();\n this.findTenants();\n }\n onAmountChange(event) {\n const inputValue = event.target.value;\n console.log(inputValue);\n const regex = /^\\d*\\.?\\d{0,2}$/;\n if (regex.test(inputValue)) {\n this.offer.amount = inputValue;\n }\n }\n getProperty() {\n this.propertyService.get(this.id).subscribe({\n next: (res) => {\n this.property = res.data;\n this.titleService.setTitle(`${this.property.title}`);\n },\n });\n }\n findTenants() {\n this.propertyService.findTenants({}).subscribe({\n next: (res) => {\n this.tenants = res.data;\n }\n });\n }\n onCategorySelect(event) {\n this.offer['category'] = event.value;\n }\n onResidencyStatusSelect(event) { }\n sendRequest() {\n this.sending = true;\n this.propertyService.makeOffer(this.id, this.offer).subscribe({\n next: (res) => {\n this.sending = false;\n this.snackBarService.open('Sent successfully');\n this.router.navigate([`/properties/offers/${res.data.id}`]);\n },\n error: (error) => {\n this.sending = false;\n this.snackBarService.open(error.message);\n },\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: LettingManageOfferRequest, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: LettingManageOfferRequest, isStandalone: true, selector: \"rolatech-letting-manage-offer-request\", providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE],\n },\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },\n ], usesInheritance: true, ngImport: i0, template: \"<rolatech-container>\\n <div class=\\\"flex flex-col-reverse md:flex-row w-full py-2 mb-3 gap-3\\\">\\n <div class=\\\"w-full md:w-2/3\\\">\\n <div>\\n <div class=\\\"text-xl font-bold py-2 mb-3\\\">\\n <!-- <span i18n>Offer for </span><span>{{ property()?.title : '' }}</span> -->\\n @if (property) {\\n <span i18n=\\\"@@offerFor\\\">Offer for {{ property.title }}</span>\\n\\n }\\n </div>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label>Select tenant</mat-label>\\n <mat-select [(ngModel)]=\\\"offer.tenantId\\\">\\n @for (item of tenants; track $index) {\\n <mat-option [value]=\\\"item.id\\\">\\n <div class=\\\"flex justify-between items-center\\\">\\n <span class=\\\"mr-3\\\">{{ item.firstName }}, {{item.lastName}}</span>\\n <span>{{item.email}}</span>\\n </div>\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\" floatLabel=\\\"always\\\">\\n <mat-label i18n>Asking price</mat-label>\\n <span matTextPrefix>\\u00A3&nbsp;</span>\\n <input matInput type=\\\"text\\\" placeholder=\\\"0.00\\\" [(ngModel)]=\\\"offer.amount\\\" required />\\n <!-- <input\\n matInput\\n type=\\\"number\\\"\\n placeholder=\\\"0.00\\\"\\n [value]=\\\"formattedAmount\\\"\\n (input)=\\\"onAmountChange($event)\\\"\\n required\\n /> -->\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Tenancy Length</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"offer.tenancyDuration\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label>Start date</mat-label>\\n <input\\n matInput\\n placeholder=\\\"Start date\\\"\\n [matDatepicker]=\\\"startDatePicker\\\"\\n [min]=\\\"minDate\\\"\\n (focus)=\\\"startDatePicker.open()\\\"\\n name=\\\"startDate\\\"\\n [(ngModel)]=\\\"offer.startDate\\\"\\n (dateInput)=\\\"offer.startDate = $event.value.format('YYYY-MM-DD')\\\"\\n readonly\\n required\\n />\\n <mat-datepicker-toggle matIconPrefix [for]=\\\"startDatePicker\\\"></mat-datepicker-toggle>\\n <mat-datepicker #startDatePicker></mat-datepicker>\\n </mat-form-field>\\n </div>\\n <div>\\n <div class=\\\"text-md py-2\\\" i18n>Your message(Optional)</div>\\n <mat-form-field appearance=\\\"fill\\\">\\n <textarea matInput type=\\\"text\\\" [(ngModel)]=\\\"offer.notes\\\" cdkTextareaAutosize cdkAutosizeMinRows=\\\"3\\\"></textarea>\\n </mat-form-field>\\n </div>\\n <!-- <button mat-flat-button (click)=\\\"sendRequest()\\\" i18n>Send request</button> -->\\n <button mat-flat-button (click)=\\\"sendRequest()\\\" [disabled]=\\\"sending\\\">\\n <span style=\\\"display: flex; align-items: center\\\">\\n @if (sending) {\\n <mat-progress-spinner diameter=\\\"20\\\" mode=\\\"indeterminate\\\" [style.marginRight.px]=\\\"8\\\"></mat-progress-spinner>\\n } {{ sending ? 'Requesting...' : 'Send request' }}\\n </span>\\n </button>\\n </div>\\n @if (property) {\\n <div class=\\\"w-full md:w-1/2 py-2 mb-3\\\">\\n <div class=\\\"text-xl font-bold py-2 mb-3\\\" i18n>Property info</div>\\n <div>\\n <rolatech-thumbnail [src]=\\\"property ? property.media[0].url : ''\\\" size=\\\"small\\\"></rolatech-thumbnail>\\n </div>\\n <rolatech-property-pricing [property]=\\\"property\\\"></rolatech-property-pricing>\\n </div>\\n }\\n </div>\\n</rolatech-container>\\n\", styles: [\"mat-form-field{width:100%}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"component\", type: ContainerComponent, selector: \"rolatech-container\" }, { kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"component\", type: i1.MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: i1.MatLabel, selector: \"mat-label\" }, { kind: \"directive\", type: i1.MatPrefix, selector: \"[matPrefix], [matIconPrefix], [matTextPrefix]\", inputs: [\"matTextPrefix\"] }, { kind: \"ngmodule\", type: FormsModule }, { 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.RequiredValidator, selector: \":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]\", inputs: [\"required\"] }, { kind: \"directive\", type: i2.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"directive\", type: i3.MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\", \"disabledInteractive\"], exportAs: [\"matInput\"] }, { kind: \"directive\", type: i4.CdkTextareaAutosize, selector: \"textarea[cdkTextareaAutosize]\", inputs: [\"cdkAutosizeMinRows\", \"cdkAutosizeMaxRows\", \"cdkTextareaAutosize\", \"placeholder\"], exportAs: [\"cdkTextareaAutosize\"] }, { kind: \"ngmodule\", type: TextFieldModule }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i5.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: ThumbnailComponent, selector: \"rolatech-thumbnail\", inputs: [\"src\", \"size\", \"mode\", \"ratio\", \"width\", \"height\"] }, { kind: \"ngmodule\", type: MatSelectModule }, { 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\", \"canSelectNullableOptions\"], outputs: [\"openedChange\", \"opened\", \"closed\", \"selectionChange\", \"valueChange\"], exportAs: [\"matSelect\"] }, { kind: \"component\", type: i6.MatOption, selector: \"mat-option\", inputs: [\"value\", \"id\", \"disabled\"], outputs: [\"onSelectionChange\"], exportAs: [\"matOption\"] }, { kind: \"ngmodule\", type: MatDatepickerModule }, { kind: \"component\", type: i7.MatDatepicker, selector: \"mat-datepicker\", exportAs: [\"matDatepicker\"] }, { kind: \"directive\", type: i7.MatDatepickerInput, selector: \"input[matDatepicker]\", inputs: [\"matDatepicker\", \"min\", \"max\", \"matDatepickerFilter\"], exportAs: [\"matDatepickerInput\"] }, { kind: \"component\", type: i7.MatDatepickerToggle, selector: \"mat-datepicker-toggle\", inputs: [\"for\", \"tabIndex\", \"aria-label\", \"disabled\", \"disableRipple\"], exportAs: [\"matDatepickerToggle\"] }, { kind: \"component\", type: MatProgressSpinner, selector: \"mat-progress-spinner, mat-spinner\", inputs: [\"color\", \"mode\", \"value\", \"diameter\", \"strokeWidth\"], exportAs: [\"matProgressSpinner\"] }, { kind: \"component\", type: PropertyPricingComponent, selector: \"rolatech-property-pricing\", inputs: [\"property\", \"price\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: LettingManageOfferRequest, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-letting-manage-offer-request', imports: [\n CommonModule,\n ContainerComponent,\n MatFormFieldModule,\n FormsModule,\n MatInputModule,\n TextFieldModule,\n MatButtonModule,\n ThumbnailComponent,\n MatSelectModule,\n MatDatepickerModule,\n MatProgressSpinner,\n PropertyPricingComponent\n ], providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE],\n },\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },\n ], template: \"<rolatech-container>\\n <div class=\\\"flex flex-col-reverse md:flex-row w-full py-2 mb-3 gap-3\\\">\\n <div class=\\\"w-full md:w-2/3\\\">\\n <div>\\n <div class=\\\"text-xl font-bold py-2 mb-3\\\">\\n <!-- <span i18n>Offer for </span><span>{{ property()?.title : '' }}</span> -->\\n @if (property) {\\n <span i18n=\\\"@@offerFor\\\">Offer for {{ property.title }}</span>\\n\\n }\\n </div>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label>Select tenant</mat-label>\\n <mat-select [(ngModel)]=\\\"offer.tenantId\\\">\\n @for (item of tenants; track $index) {\\n <mat-option [value]=\\\"item.id\\\">\\n <div class=\\\"flex justify-between items-center\\\">\\n <span class=\\\"mr-3\\\">{{ item.firstName }}, {{item.lastName}}</span>\\n <span>{{item.email}}</span>\\n </div>\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\" floatLabel=\\\"always\\\">\\n <mat-label i18n>Asking price</mat-label>\\n <span matTextPrefix>\\u00A3&nbsp;</span>\\n <input matInput type=\\\"text\\\" placeholder=\\\"0.00\\\" [(ngModel)]=\\\"offer.amount\\\" required />\\n <!-- <input\\n matInput\\n type=\\\"number\\\"\\n placeholder=\\\"0.00\\\"\\n [value]=\\\"formattedAmount\\\"\\n (input)=\\\"onAmountChange($event)\\\"\\n required\\n /> -->\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Tenancy Length</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"offer.tenancyDuration\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label>Start date</mat-label>\\n <input\\n matInput\\n placeholder=\\\"Start date\\\"\\n [matDatepicker]=\\\"startDatePicker\\\"\\n [min]=\\\"minDate\\\"\\n (focus)=\\\"startDatePicker.open()\\\"\\n name=\\\"startDate\\\"\\n [(ngModel)]=\\\"offer.startDate\\\"\\n (dateInput)=\\\"offer.startDate = $event.value.format('YYYY-MM-DD')\\\"\\n readonly\\n required\\n />\\n <mat-datepicker-toggle matIconPrefix [for]=\\\"startDatePicker\\\"></mat-datepicker-toggle>\\n <mat-datepicker #startDatePicker></mat-datepicker>\\n </mat-form-field>\\n </div>\\n <div>\\n <div class=\\\"text-md py-2\\\" i18n>Your message(Optional)</div>\\n <mat-form-field appearance=\\\"fill\\\">\\n <textarea matInput type=\\\"text\\\" [(ngModel)]=\\\"offer.notes\\\" cdkTextareaAutosize cdkAutosizeMinRows=\\\"3\\\"></textarea>\\n </mat-form-field>\\n </div>\\n <!-- <button mat-flat-button (click)=\\\"sendRequest()\\\" i18n>Send request</button> -->\\n <button mat-flat-button (click)=\\\"sendRequest()\\\" [disabled]=\\\"sending\\\">\\n <span style=\\\"display: flex; align-items: center\\\">\\n @if (sending) {\\n <mat-progress-spinner diameter=\\\"20\\\" mode=\\\"indeterminate\\\" [style.marginRight.px]=\\\"8\\\"></mat-progress-spinner>\\n } {{ sending ? 'Requesting...' : 'Send request' }}\\n </span>\\n </button>\\n </div>\\n @if (property) {\\n <div class=\\\"w-full md:w-1/2 py-2 mb-3\\\">\\n <div class=\\\"text-xl font-bold py-2 mb-3\\\" i18n>Property info</div>\\n <div>\\n <rolatech-thumbnail [src]=\\\"property ? property.media[0].url : ''\\\" size=\\\"small\\\"></rolatech-thumbnail>\\n </div>\\n <rolatech-property-pricing [property]=\\\"property\\\"></rolatech-property-pricing>\\n </div>\\n }\\n </div>\\n</rolatech-container>\\n\", styles: [\"mat-form-field{width:100%}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGV0dGluZy1tYW5hZ2Utb2ZmZXItcmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9sZXR0aW5nLW1hbmFnZS9sZXR0aW5nLW1hbmFnZS1vZmZlci1yZXF1ZXN0L2xldHRpbmctbWFuYWdlLW9mZmVyLXJlcXVlc3QudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvbGV0dGluZy1tYW5hZ2UvbGV0dGluZy1tYW5hZ2Utb2ZmZXItcmVxdWVzdC9sZXR0aW5nLW1hbmFnZS1vZmZlci1yZXF1ZXN0Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVB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a2dCQUNuQixrQkFBa0IsK0tBQ2xCLHdCQUF3Qjs7MkZBYWYseUJBQXlCO2tCQTNCckMsU0FBUzsrQkFDRSx1Q0FBdUMsV0FDeEM7d0JBQ1AsWUFBWTt3QkFDWixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsV0FBVzt3QkFDWCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLHdCQUF3QjtxQkFDekIsYUFHVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsV0FBVzs0QkFDcEIsUUFBUSxFQUFFLGlCQUFpQjs0QkFDM0IsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDO3lCQUN4Qjt3QkFDRCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFO3FCQUNwRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUZXh0RmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGV4dC1maWVsZCc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UsIEF1dGhVc2VyU2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWF1dGgnO1xuaW1wb3J0IHsgQ29udGFpbmVyQ29tcG9uZW50LCBUaHVtYm5haWxDb21wb25lbnQsIEJhc2VDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IFByb3BlcnR5U2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLXNlcnZpY2VzJztcbmltcG9ydCB7IFByb3BlcnR5T2ZmZXJSZXF1ZXN0LCBQcm9wZXJ0eSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTW9tZW50RGF0ZUFkYXB0ZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC1tb21lbnQtYWRhcHRlcic7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfTE9DQUxFLCBNQVRfREFURV9GT1JNQVRTIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBQcm9wZXJ0eVByaWNpbmdDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzJztcbmV4cG9ydCBjb25zdCBNWV9GT1JNQVRTID0ge1xuICBwYXJzZToge1xuICAgIGRhdGVJbnB1dDogJ1lZWVktTU0tREQnLFxuICB9LFxuICBkaXNwbGF5OiB7XG4gICAgZGF0ZUlucHV0OiAnWVlZWS1NTS1ERCcsXG4gICAgbW9udGhZZWFyTGFiZWw6ICdNTU0gWVlZWScsXG4gICAgZGF0ZUExMXlMYWJlbDogJ1lZWVktTU0tREQnLFxuICAgIG1vbnRoWWVhckExMXlMYWJlbDogJ01NTU0gWVlZWScsXG4gIH0sXG59O1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtbGV0dGluZy1tYW5hZ2Utb2ZmZXItcmVxdWVzdCcsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBUZXh0RmllbGRNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIFRodW1ibmFpbENvbXBvbmVudCxcbiAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXIsXG4gICAgUHJvcGVydHlQcmljaW5nQ29tcG9uZW50XG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9sZXR0aW5nLW1hbmFnZS1vZmZlci1yZXF1ZXN0Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vbGV0dGluZy1tYW5hZ2Utb2ZmZXItcmVxdWVzdC5zY3NzJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogRGF0ZUFkYXB0ZXIsXG4gICAgICB1c2VDbGFzczogTW9tZW50RGF0ZUFkYXB0ZXIsXG4gICAgICBkZXBzOiBbTUFUX0RBVEVfTE9DQUxFXSxcbiAgICB9LFxuICAgIHsgcHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUywgdXNlVmFsdWU6IE1ZX0ZPUk1BVFMgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTGV0dGluZ01hbmFnZU9mZmVyUmVxdWVzdCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBhdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7XG4gIGF1dGhVc2VyU2VydmljZSA9IGluamVjdChBdXRoVXNlclNlcnZpY2UpO1xuICBwcm9wZXJ0eVNlcnZpY2UgPSBpbmplY3QoUHJvcGVydHlTZXJ2aWNlKTtcbiAgb2ZmZXI6IFByb3BlcnR5T2ZmZXJSZXF1ZXN0ID0ge1xuICAgIHN0YXJ0RGF0ZTogJycsXG4gICAgbm90ZXM6ICcnLFxuICAgIGFtb3VudDogMCxcbiAgfTtcbiAgZ2V0IGZvcm1hdHRlZEFtb3VudCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm9mZmVyLmFtb3VudC50b0ZpeGVkKDIpOyAvLyBlcXVpdmFsZW50IHRvIHwgbnVtYmVyOicxLjItMidcbiAgfVxuICA7XG4gIHByb3BlcnR5ITogUHJvcGVydHk7XG4gIG1pbkRhdGUgPSBuZXcgRGF0ZSgpO1xuICBzZW5kaW5nID0gZmFsc2U7XG4gIHRlbmFudHM6IGFueTtcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5nZXRQcm9wZXJ0eSgpO1xuICAgIHRoaXMuZmluZFRlbmFudHMoKVxuICB9XG4gIG9uQW1vdW50Q2hhbmdlKGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IGlucHV0VmFsdWU6IGFueSA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG4gICAgY29uc29sZS5sb2coaW5wdXRWYWx1ZSk7XG4gICAgY29uc3QgcmVnZXggPSAvXlxcZCpcXC4/XFxkezAsMn0kLztcblxuICAgIGlmIChyZWdleC50ZXN0KGlucHV0VmFsdWUpKSB7XG4gICAgICB0aGlzLm9mZmVyLmFtb3VudCA9IGlucHV0VmFsdWU7XG4gICAgfVxuICB9XG4gIGdldFByb3BlcnR5KCkge1xuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmdldCh0aGlzLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMucHJvcGVydHkgPSByZXMuZGF0YTtcbiAgICAgICAgdGhpcy50aXRsZVNlcnZpY2Uuc2V0VGl0bGUoYCR7dGhpcy5wcm9wZXJ0eS50aXRsZX1gKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgZmluZFRlbmFudHMoKSB7XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZmluZFRlbmFudHMoe30pLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy50ZW5hbnRzID0gcmVzLmRhdGFcbiAgICAgIH1cbiAgICB9KVxuICB9XG4gIG9uQ2F0ZWdvcnlTZWxlY3QoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMub2ZmZXJbJ2NhdGVnb3J5J10gPSBldmVudC52YWx1ZTtcbiAgfVxuICBvblJlc2lkZW5jeVN0YXR1c1NlbGVjdChldmVudDogYW55KSB7IH1cbiAgc2VuZFJlcXVlc3QoKSB7XG4gICAgdGhpcy5zZW5kaW5nID0gdHJ1ZTtcbiAgICB0aGlzLnByb3BlcnR5U2VydmljZS5tYWtlT2ZmZXIodGhpcy5pZCwgdGhpcy5vZmZlcikuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5zZW5kaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oJ1NlbnQgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgL3Byb3BlcnRpZXMvb2ZmZXJzLyR7cmVzLmRhdGEuaWR9YF0pO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5zZW5kaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oZXJyb3IubWVzc2FnZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG5cbiIsIjxyb2xhdGVjaC1jb250YWluZXI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sLXJldmVyc2UgbWQ6ZmxleC1yb3cgdy1mdWxsIHB5LTIgbWItMyBnYXAtM1wiPlxuICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgbWQ6dy0yLzNcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXhsIGZvbnQtYm9sZCBweS0yIG1iLTNcIj5cbiAgICAgICAgICA8IS0tIDxzcGFuIGkxOG4+T2ZmZXIgZm9yIDwvc3Bhbj48c3Bhbj57eyBwcm9wZXJ0eSgpPy50aXRsZSA6ICcnIH19PC9zcGFuPiAtLT5cbiAgICAgICAgICBAaWYgKHByb3BlcnR5KSB7XG4gICAgICAgICAgPHNwYW4gaTE4bj1cIkBAb2ZmZXJGb3JcIj5PZmZlciBmb3Ige3sgcHJvcGVydHkudGl0bGUgfX08L3NwYW4+XG5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgICA8bWF0LWxhYmVsPlNlbGVjdCB0ZW5hbnQ8L21hdC1sYWJlbD5cbiAgICAgICAgICA8bWF0LXNlbGVjdCBbKG5nTW9kZWwpXT1cIm9mZmVyLnRlbmFudElkXCI+XG4gICAgICAgICAgICBAZm9yIChpdGVtIG9mIHRlbmFudHM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIml0ZW0uaWRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXItM1wiPnt7IGl0ZW0uZmlyc3ROYW1lIH19LCB7e2l0ZW0ubGFzdE5hbWV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57e2l0ZW0uZW1haWx9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiBmbG9hdExhYmVsPVwiYWx3YXlzXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbCBpMThuPkFza2luZyBwcmljZTwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxzcGFuIG1hdFRleHRQcmVmaXg+wqMmbmJzcDs8L3NwYW4+XG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCIwLjAwXCIgWyhuZ01vZGVsKV09XCJvZmZlci5hbW91bnRcIiByZXF1aXJlZCAvPlxuICAgICAgICAgIDwhLS0gPGlucHV0XG4gICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIjAuMDBcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cImZvcm1hdHRlZEFtb3VudFwiXG4gICAgICAgICAgICAoaW5wdXQpPVwib25BbW91bnRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgIC8+IC0tPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgICA8bWF0LWxhYmVsIGkxOG4+VGVuYW5jeSBMZW5ndGg8L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cIm9mZmVyLnRlbmFuY3lEdXJhdGlvblwiIHJlcXVpcmVkIC8+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgIDxtYXQtbGFiZWw+U3RhcnQgZGF0ZTwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU3RhcnQgZGF0ZVwiXG4gICAgICAgICAgICBbbWF0RGF0ZXBpY2tlcl09XCJzdGFydERhdGVQaWNrZXJcIlxuICAgICAgICAgICAgW21pbl09XCJtaW5EYXRlXCJcbiAgICAgICAgICAgIChmb2N1cyk9XCJzdGFydERhdGVQaWNrZXIub3BlbigpXCJcbiAgICAgICAgICAgIG5hbWU9XCJzdGFydERhdGVcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJvZmZlci5zdGFydERhdGVcIlxuICAgICAgICAgICAgKGRhdGVJbnB1dCk9XCJvZmZlci5zdGFydERhdGUgPSAkZXZlbnQudmFsdWUuZm9ybWF0KCdZWVlZLU1NLUREJylcIlxuICAgICAgICAgICAgcmVhZG9ubHlcbiAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdEljb25QcmVmaXggW2Zvcl09XCJzdGFydERhdGVQaWNrZXJcIj48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cbiAgICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI3N0YXJ0RGF0ZVBpY2tlcj48L21hdC1kYXRlcGlja2VyPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tZCBweS0yXCIgaTE4bj5Zb3VyIG1lc3NhZ2UoT3B0aW9uYWwpPC9kaXY+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgIDx0ZXh0YXJlYSBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwib2ZmZXIubm90ZXNcIiBjZGtUZXh0YXJlYUF1dG9zaXplIGNka0F1dG9zaXplTWluUm93cz1cIjNcIj48L3RleHRhcmVhPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIChjbGljayk9XCJzZW5kUmVxdWVzdCgpXCIgaTE4bj5TZW5kIHJlcXVlc3Q8L2J1dHRvbj4gLS0+XG4gICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiAoY2xpY2spPVwic2VuZFJlcXVlc3QoKVwiIFtkaXNhYmxlZF09XCJzZW5kaW5nXCI+XG4gICAgICAgIDxzcGFuIHN0eWxlPVwiZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlclwiPlxuICAgICAgICAgIEBpZiAoc2VuZGluZykge1xuICAgICAgICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBkaWFtZXRlcj1cIjIwXCIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiBbc3R5bGUubWFyZ2luUmlnaHQucHhdPVwiOFwiPjwvbWF0LXByb2dyZXNzLXNwaW5uZXI+XG4gICAgICAgICAgfSB7eyBzZW5kaW5nID8gJ1JlcXVlc3RpbmcuLi4nIDogJ1NlbmQgcmVxdWVzdCcgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgQGlmIChwcm9wZXJ0eSkge1xuICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgbWQ6dy0xLzIgcHktMiBtYi0zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC14bCBmb250LWJvbGQgcHktMiBtYi0zXCIgaTE4bj5Qcm9wZXJ0eSBpbmZvPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8cm9sYXRlY2gtdGh1bWJuYWlsIFtzcmNdPVwicHJvcGVydHkgPyBwcm9wZXJ0eS5tZWRpYVswXS51cmwgOiAnJ1wiIHNpemU9XCJzbWFsbFwiPjwvcm9sYXRlY2gtdGh1bWJuYWlsPlxuICAgICAgPC9kaXY+XG4gICAgICA8cm9sYXRlY2gtcHJvcGVydHktcHJpY2luZyBbcHJvcGVydHldPVwicHJvcGVydHlcIj48L3JvbGF0ZWNoLXByb3BlcnR5LXByaWNpbmc+XG4gICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbjwvcm9sYXRlY2gtY29udGFpbmVyPlxuIl19","import { LettingManageIndex } from \"./letting-manage-index/letting-manage-index\";\nimport { LettingManageDetail } from \"./letting-manage-detail/letting-manage-detail\";\nimport { LettingManageViewingRequest } from \"./letting-manage-viewing-request/letting-manage-viewing-request\";\nimport { LettingManageOfferRequest } from \"./letting-manage-offer-request/letting-manage-offer-request\";\nexport const lettingManageRoutes = [\n {\n path: '',\n component: LettingManageIndex\n },\n {\n path: ':id',\n component: LettingManageDetail\n },\n {\n path: ':id/viewing/application',\n component: LettingManageViewingRequest,\n },\n {\n path: ':id/offer',\n component: LettingManageOfferRequest,\n },\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGV0dGluZy1tYW5hZ2Uucm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL3BhZ2VzL2xldHRpbmctbWFuYWdlL2xldHRpbmctbWFuYWdlLnJvdXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNqRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUM5RyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUV4RyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBVztJQUN6QztRQUNFLElBQUksRUFBRSxFQUFFO1FBQ1IsU0FBUyxFQUFFLGtCQUFrQjtLQUM5QjtJQUNEO1FBQ0UsSUFBSSxFQUFFLEtBQUs7UUFDWCxTQUFTLEVBQUUsbUJBQW1CO0tBQy9CO0lBQ0Q7UUFDRSxJQUFJLEVBQUUseUJBQXlCO1FBQy9CLFNBQVMsRUFBRSwyQkFBMkI7S0FDdkM7SUFDRDtRQUNFLElBQUksRUFBRSxXQUFXO1FBQ2pCLFNBQVMsRUFBRSx5QkFBeUI7S0FDckM7Q0FDRixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm91dGVzIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHsgTGV0dGluZ01hbmFnZUluZGV4IH0gZnJvbSBcIi4vbGV0dGluZy1tYW5hZ2UtaW5kZXgvbGV0dGluZy1tYW5hZ2UtaW5kZXhcIjtcbmltcG9ydCB7IExldHRpbmdNYW5hZ2VEZXRhaWwgfSBmcm9tIFwiLi9sZXR0aW5nLW1hbmFnZS1kZXRhaWwvbGV0dGluZy1tYW5hZ2UtZGV0YWlsXCI7XG5pbXBvcnQgeyBMZXR0aW5nTWFuYWdlVmlld2luZ1JlcXVlc3QgfSBmcm9tIFwiLi9sZXR0aW5nLW1hbmFnZS12aWV3aW5nLXJlcXVlc3QvbGV0dGluZy1tYW5hZ2Utdmlld2luZy1yZXF1ZXN0XCI7XG5pbXBvcnQgeyBMZXR0aW5nTWFuYWdlT2ZmZXJSZXF1ZXN0IH0gZnJvbSBcIi4vbGV0dGluZy1tYW5hZ2Utb2ZmZXItcmVxdWVzdC9sZXR0aW5nLW1hbmFnZS1vZmZlci1yZXF1ZXN0XCI7XG5cbmV4cG9ydCBjb25zdCBsZXR0aW5nTWFuYWdlUm91dGVzOiBSb3V0ZXMgPSBbXG4gIHtcbiAgICBwYXRoOiAnJyxcbiAgICBjb21wb25lbnQ6IExldHRpbmdNYW5hZ2VJbmRleFxuICB9LFxuICB7XG4gICAgcGF0aDogJzppZCcsXG4gICAgY29tcG9uZW50OiBMZXR0aW5nTWFuYWdlRGV0YWlsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnOmlkL3ZpZXdpbmcvYXBwbGljYXRpb24nLFxuICAgIGNvbXBvbmVudDogTGV0dGluZ01hbmFnZVZpZXdpbmdSZXF1ZXN0LFxuICB9LFxuICB7XG4gICAgcGF0aDogJzppZC9vZmZlcicsXG4gICAgY29tcG9uZW50OiBMZXR0aW5nTWFuYWdlT2ZmZXJSZXF1ZXN0LFxuICB9LFxuXVxuIl19","import { Component, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class TenantItem {\n tenant = input.required(...(ngDevMode ? [{ debugName: \"tenant\" }] : []));\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: TenantItem, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.2.0\", type: TenantItem, isStandalone: true, selector: \"rolatech-tenant-item\", inputs: { tenant: { classPropertyName: \"tenant\", publicName: \"tenant\", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: \"<div class=\\\"flex items-center justify-between px-2 h-11 cursor-pointer hover:bg-[--rt-raised-background]\\\">\\n <div>{{tenant().firstName}}, {{tenant().lastName}}</div>\\n <div class=\\\"flex flex-row items-center\\\">\\n <div>{{tenant().email}}</div>\\n </div>\\n</div>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: TenantItem, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-tenant-item', imports: [CommonModule], template: \"<div class=\\\"flex items-center justify-between px-2 h-11 cursor-pointer hover:bg-[--rt-raised-background]\\\">\\n <div>{{tenant().firstName}}, {{tenant().lastName}}</div>\\n <div class=\\\"flex flex-row items-center\\\">\\n <div>{{tenant().email}}</div>\\n </div>\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvY29tcG9uZW50cy90ZW5hbnQtaXRlbS90ZW5hbnQtaXRlbS50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9jb21wb25lbnRzL3RlbmFudC1pdGVtL3RlbmFudC1pdGVtLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVMvQyxNQUFNLE9BQU8sVUFBVTtJQUNyQixNQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsaURBQVUsQ0FBQzt1R0FEdkIsVUFBVTsyRkFBVixVQUFVLHNOQ1Z2QiwrUUFNQSx5RERBWSxZQUFZOzsyRkFJWCxVQUFVO2tCQU50QixTQUFTOytCQUNFLHNCQUFzQixXQUN2QixDQUFDLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUZW5hbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtdGVuYW50LWl0ZW0nLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RlbmFudC1pdGVtLmh0bWwnLFxuICBzdHlsZVVybDogJy4vdGVuYW50LWl0ZW0uc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFRlbmFudEl0ZW0ge1xuICB0ZW5hbnQgPSBpbnB1dC5yZXF1aXJlZDxUZW5hbnQ+KCk7XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHB4LTIgaC0xMSBjdXJzb3ItcG9pbnRlciBob3ZlcjpiZy1bLS1ydC1yYWlzZWQtYmFja2dyb3VuZF1cIj5cbiAgPGRpdj57e3RlbmFudCgpLmZpcnN0TmFtZX19LCB7e3RlbmFudCgpLmxhc3ROYW1lfX08L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgaXRlbXMtY2VudGVyXCI+XG4gICAgPGRpdj57e3RlbmFudCgpLmVtYWlsfX08L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==","import { Component, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ToolbarComponent, SpinnerComponent } from '@rolatech/angular-components';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport { RouterLink } from '@angular/router';\nimport { TenantItem } from \"../../../components/tenant-item/tenant-item\";\nimport { PropertyService } from '@rolatech/angular-services';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\nexport class TenantManageIndex {\n propertyService = inject(PropertyService);\n loading = false;\n tenants;\n ngOnInit() {\n this.find();\n }\n find() {\n this.loading = true;\n this.propertyService.findTenants({}).subscribe({\n next: (res) => {\n this.tenants = res.data;\n this.loading = false;\n },\n error: error => {\n this.loading = false;\n }\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: TenantManageIndex, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: TenantManageIndex, isStandalone: true, selector: \"rolatech-tenant-manage-index\", ngImport: i0, template: \"<rolatech-toolbar title=\\\"Tenants\\\">\\n <div class=\\\"flex items-center gap-2\\\">\\n <button mat-flat-button routerLink=\\\"./create\\\">\\n <mat-icon>add</mat-icon>\\n <span i18n>Add tenant</span>\\n </button>\\n </div>\\n</rolatech-toolbar>\\n@if (loading) {\\n<div class=\\\"flex justify-center items-center\\\">\\n <rolatech-spinner></rolatech-spinner>\\n</div>\\n} @else {\\n<div class=\\\"bg-[--rt-rasised-background] h-full\\\">\\n <div class=\\\"flex flex-col p-2\\\">\\n <div class=\\\"flex px-2 h-11 items-center justify-between\\\">\\n <div class=\\\"text-lg font-bold\\\">Name</div>\\n <div class=\\\"text-lg font-bold\\\">Email</div>\\n </div>\\n @for (item of tenants; track $index) {\\n <rolatech-tenant-item [tenant]=\\\"item\\\" routerLink=\\\"./{{ item.id }}\\\"></rolatech-tenant-item>\\n <hr />\\n }\\n </div>\\n</div>\\n\\n<!-- <mat-paginator\\n #paginator\\n [length]=\\\"length\\\"\\n [pageSize]=\\\"pageSize\\\"\\n [pageSizeOptions]=\\\"pageSizeOptions\\\"\\n (page)=\\\"pageEvent = find($event)\\\"\\n hidePageSize\\n showFirstLastButtons\\n >\\n </mat-paginator> -->\\n}\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"component\", type: SpinnerComponent, selector: \"rolatech-spinner\", inputs: [\"title\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i1.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"directive\", type: RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"component\", type: TenantItem, selector: \"rolatech-tenant-item\", inputs: [\"tenant\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: TenantManageIndex, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-tenant-manage-index', imports: [CommonModule, ToolbarComponent, SpinnerComponent, MatButtonModule, MatIcon, RouterLink, TenantItem], template: \"<rolatech-toolbar title=\\\"Tenants\\\">\\n <div class=\\\"flex items-center gap-2\\\">\\n <button mat-flat-button routerLink=\\\"./create\\\">\\n <mat-icon>add</mat-icon>\\n <span i18n>Add tenant</span>\\n </button>\\n </div>\\n</rolatech-toolbar>\\n@if (loading) {\\n<div class=\\\"flex justify-center items-center\\\">\\n <rolatech-spinner></rolatech-spinner>\\n</div>\\n} @else {\\n<div class=\\\"bg-[--rt-rasised-background] h-full\\\">\\n <div class=\\\"flex flex-col p-2\\\">\\n <div class=\\\"flex px-2 h-11 items-center justify-between\\\">\\n <div class=\\\"text-lg font-bold\\\">Name</div>\\n <div class=\\\"text-lg font-bold\\\">Email</div>\\n </div>\\n @for (item of tenants; track $index) {\\n <rolatech-tenant-item [tenant]=\\\"item\\\" routerLink=\\\"./{{ item.id }}\\\"></rolatech-tenant-item>\\n <hr />\\n }\\n </div>\\n</div>\\n\\n<!-- <mat-paginator\\n #paginator\\n [length]=\\\"length\\\"\\n [pageSize]=\\\"pageSize\\\"\\n [pageSizeOptions]=\\\"pageSizeOptions\\\"\\n (page)=\\\"pageEvent = find($event)\\\"\\n hidePageSize\\n showFirstLastButtons\\n >\\n </mat-paginator> -->\\n}\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LW1hbmFnZS1pbmRleC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy90ZW5hbnQtbWFuYWdlL3RlbmFudC1tYW5hZ2UtaW5kZXgvdGVuYW50LW1hbmFnZS1pbmRleC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy90ZW5hbnQtbWFuYWdlL3RlbmFudC1tYW5hZ2UtaW5kZXgvdGVuYW50LW1hbmFnZS1pbmRleC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFRN0QsTUFBTSxPQUFPLGlCQUFpQjtJQUNwQixlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2xELE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDaEIsT0FBTyxDQUFLO0lBQ1osUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUNiLENBQUM7SUFDRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUE7UUFDbkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQzdDLElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUE7Z0JBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFBO1lBQ3RCLENBQUM7WUFDRCxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUE7WUFDdEIsQ0FBQztTQUNGLENBQUMsQ0FBQTtJQUVKLENBQUM7dUdBbkJVLGlCQUFpQjsyRkFBakIsaUJBQWlCLHdGQ2Y5QiwwakNBcUNBLHlERDFCWSxZQUFZLCtCQUFFLGdCQUFnQixnSUFBRSxnQkFBZ0IsK0VBQUUsZUFBZSxvWEFBRSxPQUFPLDJJQUFFLFVBQVUsb09BQUUsVUFBVTs7MkZBSWpHLGlCQUFpQjtrQkFON0IsU0FBUzsrQkFDRSw4QkFBOEIsV0FDL0IsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRvb2xiYXJDb21wb25lbnQsIFNwaW5uZXJDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBSb3V0ZXJMaW5rIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFRlbmFudEl0ZW0gfSBmcm9tIFwiLi4vLi4vLi4vY29tcG9uZW50cy90ZW5hbnQtaXRlbS90ZW5hbnQtaXRlbVwiO1xuaW1wb3J0IHsgUHJvcGVydHlTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC10ZW5hbnQtbWFuYWdlLWluZGV4JyxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVG9vbGJhckNvbXBvbmVudCwgU3Bpbm5lckNvbXBvbmVudCwgTWF0QnV0dG9uTW9kdWxlLCBNYXRJY29uLCBSb3V0ZXJMaW5rLCBUZW5hbnRJdGVtXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RlbmFudC1tYW5hZ2UtaW5kZXguaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi90ZW5hbnQtbWFuYWdlLWluZGV4LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBUZW5hbnRNYW5hZ2VJbmRleCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgcHJvcGVydHlTZXJ2aWNlID0gaW5qZWN0KFByb3BlcnR5U2VydmljZSk7XG4gIGxvYWRpbmcgPSBmYWxzZTtcbiAgdGVuYW50czogYW55XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZmluZCgpXG4gIH1cbiAgZmluZCgpIHtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlXG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZmluZFRlbmFudHMoe30pLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy50ZW5hbnRzID0gcmVzLmRhdGFcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2VcbiAgICAgIH0sXG4gICAgICBlcnJvcjogZXJyb3IgPT4ge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZVxuICAgICAgfVxuICAgIH0pXG5cbiAgfVxufVxuIiwiPHJvbGF0ZWNoLXRvb2xiYXIgdGl0bGU9XCJUZW5hbnRzXCI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIHJvdXRlckxpbms9XCIuL2NyZWF0ZVwiPlxuICAgICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+XG4gICAgICA8c3BhbiBpMThuPkFkZCB0ZW5hbnQ8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9yb2xhdGVjaC10b29sYmFyPlxuQGlmIChsb2FkaW5nKSB7XG48ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXJcIj5cbiAgPHJvbGF0ZWNoLXNwaW5uZXI+PC9yb2xhdGVjaC1zcGlubmVyPlxuPC9kaXY+XG59IEBlbHNlIHtcbjxkaXYgY2xhc3M9XCJiZy1bLS1ydC1yYXNpc2VkLWJhY2tncm91bmRdIGgtZnVsbFwiPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBwLTJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBweC0yIGgtMTEgaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtbGcgZm9udC1ib2xkXCI+TmFtZTwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtbGcgZm9udC1ib2xkXCI+RW1haWw8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICBAZm9yIChpdGVtIG9mIHRlbmFudHM7IHRyYWNrICRpbmRleCkge1xuICAgIDxyb2xhdGVjaC10ZW5hbnQtaXRlbSBbdGVuYW50XT1cIml0ZW1cIiByb3V0ZXJMaW5rPVwiLi97eyBpdGVtLmlkIH19XCI+PC9yb2xhdGVjaC10ZW5hbnQtaXRlbT5cbiAgICA8aHIgLz5cbiAgICB9XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjwhLS0gPG1hdC1wYWdpbmF0b3JcbiAgICAjcGFnaW5hdG9yXG4gICAgW2xlbmd0aF09XCJsZW5ndGhcIlxuICAgIFtwYWdlU2l6ZV09XCJwYWdlU2l6ZVwiXG4gICAgW3BhZ2VTaXplT3B0aW9uc109XCJwYWdlU2l6ZU9wdGlvbnNcIlxuICAgIChwYWdlKT1cInBhZ2VFdmVudCA9IGZpbmQoJGV2ZW50KVwiXG4gICAgaGlkZVBhZ2VTaXplXG4gICAgc2hvd0ZpcnN0TGFzdEJ1dHRvbnNcbiAgPlxuICA8L21hdC1wYWdpbmF0b3I+IC0tPlxufVxuIl19","import { Component, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BaseComponent, RichLabelComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { PropertyService } from '@rolatech/angular-services';\nimport { AdverseCreditStatus, EmploymentStatus, PropertyApplicantType, ResidencyStatus } from '../../../interfaces';\nimport * as i0 from \"@angular/core\";\nexport class TenantManageDetail extends BaseComponent {\n propertyService = inject(PropertyService);\n tenant;\n employmentStatus = EmploymentStatus;\n tenantCategory = PropertyApplicantType;\n residencyStatus = ResidencyStatus;\n adverseCreditStatus = AdverseCreditStatus;\n ngOnInit() {\n this.getTenant();\n }\n getTenant() {\n this.propertyService.getTenant(this.id).subscribe({\n next: (res) => {\n this.tenant = res.data;\n }\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: TenantManageDetail, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: TenantManageDetail, isStandalone: true, selector: \"rolatech-tenant-manage-detail\", usesInheritance: true, ngImport: i0, template: \"<rolatech-toolbar title=\\\"Tenant details\\\" large link=\\\"../\\\"> </rolatech-toolbar>\\n@if (tenant) {\\n<div class=\\\"px-4\\\">\\n <div>\\n <div class=\\\"text-lg font-bold py-2\\\">Tenant</div>\\n <hr class=\\\"mb-2\\\" />\\n <div class=\\\"flex flex-col md:flex-row gap-1 md:gap-4\\\">\\n <rolatech-rich-label label=\\\"First Name\\\" [title]=\\\"tenant.firstName\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Last Name\\\" [title]=\\\"tenant.lastName\\\"></rolatech-rich-label>\\n </div>\\n <div class=\\\"flex flex-col md:flex-row gap-1 md:gap-4\\\">\\n <rolatech-rich-label label=\\\"Email\\\" [title]=\\\"tenant.email\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Phone\\\" [title]=\\\"tenant.phone\\\"></rolatech-rich-label>\\n </div>\\n <div>\\n <div class=\\\"text-lg font-bold py-2\\\">Qualification</div>\\n <hr class=\\\"mb-2\\\" />\\n <rolatech-rich-label label=\\\"Annual income\\\" [title]=\\\"tenant.income\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Number of tenants\\\" [title]=\\\"tenant.numberOfTenants\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Tenant category\\\" [title]=\\\"tenantCategory[tenant.tenantCategory]\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Employment status\\\" [title]=\\\"employmentStatus[tenant.employmentStatus]\\\"></rolatech-rich-label>\\n <rolatech-rich-label\\n label=\\\"AdverseCredit Status\\\"\\n [title]=\\\"adverseCreditStatus[tenant.adverseCreditStatus]\\\"\\n ></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Residency status\\\" [title]=\\\"residencyStatus[tenant.residencyStatus]\\\"></rolatech-rich-label>\\n </div>\\n </div>\\n</div>\\n}\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"component\", type: RichLabelComponent, selector: \"rolatech-rich-label\", inputs: [\"label\", \"title\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: TenantManageDetail, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-tenant-manage-detail', imports: [CommonModule, ToolbarComponent, RichLabelComponent, ToolbarComponent], template: \"<rolatech-toolbar title=\\\"Tenant details\\\" large link=\\\"../\\\"> </rolatech-toolbar>\\n@if (tenant) {\\n<div class=\\\"px-4\\\">\\n <div>\\n <div class=\\\"text-lg font-bold py-2\\\">Tenant</div>\\n <hr class=\\\"mb-2\\\" />\\n <div class=\\\"flex flex-col md:flex-row gap-1 md:gap-4\\\">\\n <rolatech-rich-label label=\\\"First Name\\\" [title]=\\\"tenant.firstName\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Last Name\\\" [title]=\\\"tenant.lastName\\\"></rolatech-rich-label>\\n </div>\\n <div class=\\\"flex flex-col md:flex-row gap-1 md:gap-4\\\">\\n <rolatech-rich-label label=\\\"Email\\\" [title]=\\\"tenant.email\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Phone\\\" [title]=\\\"tenant.phone\\\"></rolatech-rich-label>\\n </div>\\n <div>\\n <div class=\\\"text-lg font-bold py-2\\\">Qualification</div>\\n <hr class=\\\"mb-2\\\" />\\n <rolatech-rich-label label=\\\"Annual income\\\" [title]=\\\"tenant.income\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Number of tenants\\\" [title]=\\\"tenant.numberOfTenants\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Tenant category\\\" [title]=\\\"tenantCategory[tenant.tenantCategory]\\\"></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Employment status\\\" [title]=\\\"employmentStatus[tenant.employmentStatus]\\\"></rolatech-rich-label>\\n <rolatech-rich-label\\n label=\\\"AdverseCredit Status\\\"\\n [title]=\\\"adverseCreditStatus[tenant.adverseCreditStatus]\\\"\\n ></rolatech-rich-label>\\n <rolatech-rich-label label=\\\"Residency status\\\" [title]=\\\"residencyStatus[tenant.residencyStatus]\\\"></rolatech-rich-label>\\n </div>\\n </div>\\n</div>\\n}\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LW1hbmFnZS1kZXRhaWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvdGVuYW50LW1hbmFnZS90ZW5hbnQtbWFuYWdlLWRldGFpbC90ZW5hbnQtbWFuYWdlLWRldGFpbC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy90ZW5hbnQtbWFuYWdlL3RlbmFudC1tYW5hZ2UtZGV0YWlsL3RlbmFudC1tYW5hZ2UtZGV0YWlsLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQVFwSCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsYUFBYTtJQUMzQyxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sQ0FBTTtJQUNaLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO0lBQ3BDLGNBQWMsR0FBRyxxQkFBcUIsQ0FBQztJQUN2QyxlQUFlLEdBQUcsZUFBZSxDQUFDO0lBQ2xDLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDO0lBQzFDLFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUE7SUFDbEIsQ0FBQztJQUNELFNBQVM7UUFDUCxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ2hELElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFDekIsQ0FBQztTQUNGLENBQUMsQ0FBQTtJQUNKLENBQUM7dUdBaEJVLGtCQUFrQjsyRkFBbEIsa0JBQWtCLGdIQ1ovQiwybkRBOEJBLHlERHRCWSxZQUFZLCtCQUFFLGdCQUFnQixnSUFBRSxrQkFBa0I7OzJGQUlqRCxrQkFBa0I7a0JBTjlCLFNBQVM7K0JBQ0UsK0JBQStCLFdBQ2hDLENBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIFJpY2hMYWJlbENvbXBvbmVudCwgVG9vbGJhckNvbXBvbmVudCB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgUHJvcGVydHlTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItc2VydmljZXMnO1xuaW1wb3J0IHsgQWR2ZXJzZUNyZWRpdFN0YXR1cywgRW1wbG95bWVudFN0YXR1cywgUHJvcGVydHlBcHBsaWNhbnRUeXBlLCBSZXNpZGVuY3lTdGF0dXMgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtdGVuYW50LW1hbmFnZS1kZXRhaWwnLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUb29sYmFyQ29tcG9uZW50LCBSaWNoTGFiZWxDb21wb25lbnQsIFRvb2xiYXJDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVuYW50LW1hbmFnZS1kZXRhaWwuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi90ZW5hbnQtbWFuYWdlLWRldGFpbC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgVGVuYW50TWFuYWdlRGV0YWlsIGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgcHJvcGVydHlTZXJ2aWNlID0gaW5qZWN0KFByb3BlcnR5U2VydmljZSk7XG4gIHRlbmFudDogYW55O1xuICBlbXBsb3ltZW50U3RhdHVzID0gRW1wbG95bWVudFN0YXR1cztcbiAgdGVuYW50Q2F0ZWdvcnkgPSBQcm9wZXJ0eUFwcGxpY2FudFR5cGU7XG4gIHJlc2lkZW5jeVN0YXR1cyA9IFJlc2lkZW5jeVN0YXR1cztcbiAgYWR2ZXJzZUNyZWRpdFN0YXR1cyA9IEFkdmVyc2VDcmVkaXRTdGF0dXM7XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0VGVuYW50KClcbiAgfVxuICBnZXRUZW5hbnQoKSB7XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZ2V0VGVuYW50KHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy50ZW5hbnQgPSByZXMuZGF0YTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG59XG4iLCI8cm9sYXRlY2gtdG9vbGJhciB0aXRsZT1cIlRlbmFudCBkZXRhaWxzXCIgbGFyZ2UgbGluaz1cIi4uL1wiPiA8L3JvbGF0ZWNoLXRvb2xiYXI+XG5AaWYgKHRlbmFudCkge1xuPGRpdiBjbGFzcz1cInB4LTRcIj5cbiAgPGRpdj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZyBmb250LWJvbGQgcHktMlwiPlRlbmFudDwvZGl2PlxuICAgIDxociBjbGFzcz1cIm1iLTJcIiAvPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IGdhcC0xIG1kOmdhcC00XCI+XG4gICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIkZpcnN0IE5hbWVcIiBbdGl0bGVdPVwidGVuYW50LmZpcnN0TmFtZVwiPjwvcm9sYXRlY2gtcmljaC1sYWJlbD5cbiAgICAgIDxyb2xhdGVjaC1yaWNoLWxhYmVsIGxhYmVsPVwiTGFzdCBOYW1lXCIgW3RpdGxlXT1cInRlbmFudC5sYXN0TmFtZVwiPjwvcm9sYXRlY2gtcmljaC1sYWJlbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBtZDpmbGV4LXJvdyBnYXAtMSBtZDpnYXAtNFwiPlxuICAgICAgPHJvbGF0ZWNoLXJpY2gtbGFiZWwgbGFiZWw9XCJFbWFpbFwiIFt0aXRsZV09XCJ0ZW5hbnQuZW1haWxcIj48L3JvbGF0ZWNoLXJpY2gtbGFiZWw+XG4gICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIlBob25lXCIgW3RpdGxlXT1cInRlbmFudC5waG9uZVwiPjwvcm9sYXRlY2gtcmljaC1sYWJlbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtbGcgZm9udC1ib2xkIHB5LTJcIj5RdWFsaWZpY2F0aW9uPC9kaXY+XG4gICAgICA8aHIgY2xhc3M9XCJtYi0yXCIgLz5cbiAgICAgIDxyb2xhdGVjaC1yaWNoLWxhYmVsIGxhYmVsPVwiQW5udWFsIGluY29tZVwiIFt0aXRsZV09XCJ0ZW5hbnQuaW5jb21lXCI+PC9yb2xhdGVjaC1yaWNoLWxhYmVsPlxuICAgICAgPHJvbGF0ZWNoLXJpY2gtbGFiZWwgbGFiZWw9XCJOdW1iZXIgb2YgdGVuYW50c1wiIFt0aXRsZV09XCJ0ZW5hbnQubnVtYmVyT2ZUZW5hbnRzXCI+PC9yb2xhdGVjaC1yaWNoLWxhYmVsPlxuICAgICAgPHJvbGF0ZWNoLXJpY2gtbGFiZWwgbGFiZWw9XCJUZW5hbnQgY2F0ZWdvcnlcIiBbdGl0bGVdPVwidGVuYW50Q2F0ZWdvcnlbdGVuYW50LnRlbmFudENhdGVnb3J5XVwiPjwvcm9sYXRlY2gtcmljaC1sYWJlbD5cbiAgICAgIDxyb2xhdGVjaC1yaWNoLWxhYmVsIGxhYmVsPVwiRW1wbG95bWVudCBzdGF0dXNcIiBbdGl0bGVdPVwiZW1wbG95bWVudFN0YXR1c1t0ZW5hbnQuZW1wbG95bWVudFN0YXR1c11cIj48L3JvbGF0ZWNoLXJpY2gtbGFiZWw+XG4gICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbFxuICAgICAgICBsYWJlbD1cIkFkdmVyc2VDcmVkaXQgU3RhdHVzXCJcbiAgICAgICAgW3RpdGxlXT1cImFkdmVyc2VDcmVkaXRTdGF0dXNbdGVuYW50LmFkdmVyc2VDcmVkaXRTdGF0dXNdXCJcbiAgICAgID48L3JvbGF0ZWNoLXJpY2gtbGFiZWw+XG4gICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIlJlc2lkZW5jeSBzdGF0dXNcIiBbdGl0bGVdPVwicmVzaWRlbmN5U3RhdHVzW3RlbmFudC5yZXNpZGVuY3lTdGF0dXNdXCI+PC9yb2xhdGVjaC1yaWNoLWxhYmVsPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxufVxuIl19","import { Component, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ToolbarComponent } from '@rolatech/angular-components';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { PropertyService } from '@rolatech/angular-services';\nimport { PropertyApplicantType, ResidencyStatus, EmploymentStatus, AdverseCreditStatus } from '../../../interfaces';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@angular/material/form-field\";\nimport * as i3 from \"@angular/material/input\";\nimport * as i4 from \"@angular/material/select\";\nimport * as i5 from \"@angular/material/button\";\nimport * as i6 from \"@angular/common\";\nexport class TenantManageCreate {\n propertyService = inject(PropertyService);\n router = inject(Router);\n route = inject(ActivatedRoute);\n snackBar = inject(MatSnackBar);\n tenant = {};\n tenantCategory = PropertyApplicantType;\n residencyStatus = ResidencyStatus;\n employmentStatus = EmploymentStatus;\n adverseCreditStatus = AdverseCreditStatus;\n create() {\n const data = {\n ...this.tenant,\n };\n this.propertyService.createTenant(data).subscribe({\n next: (res) => {\n this.router.navigate([`../${res.data.id}`], {\n relativeTo: this.route,\n });\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: TenantManageCreate, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.0\", type: TenantManageCreate, isStandalone: true, selector: \"rolatech-tenant-manage-create\", ngImport: i0, template: \"<rolatech-toolbar title=\\\"Add tenant\\\" link=\\\"../\\\"> </rolatech-toolbar>\\n<div class=\\\"p-3\\\">\\n <div class=\\\"flex flex-col md:w-2/3\\\">\\n <div class=\\\"flex w-full gap-2\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>First name</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"tenant.firstName\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Last name</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"tenant.lastName\\\" required />\\n </mat-form-field>\\n </div>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Email</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"tenant.email\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Phone</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"tenant.phone\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\" floatLabel=\\\"always\\\">\\n <mat-label i18n>Annual income(All tenants combined)</mat-label>\\n <span matTextPrefix>\\u00A3&nbsp;</span>\\n <input matInput type=\\\"text\\\" placeholder=\\\"00.00\\\" [(ngModel)]=\\\"tenant.income\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Number Of Tenants</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"tenant.numberOfTenants\\\" required />\\n </mat-form-field>\\n <mat-form-field>\\n <mat-label i18n>Tenant category</mat-label>\\n <mat-select placeholder=\\\"Applicant type\\\" [(ngModel)]=\\\"tenant.tenantCategory\\\" required>\\n @for (tenantCategory of tenantCategory | keyvalue; track tenantCategory) {\\n <mat-option [value]=\\\"tenantCategory.key\\\"> {{ tenantCategory.value }} </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <mat-form-field>\\n <mat-label i18n>Employment Status</mat-label>\\n <mat-select placeholder=\\\"Employment Status\\\" [(ngModel)]=\\\"tenant.employmentStatus\\\" required>\\n @for (item of employmentStatus | keyvalue; track item) {\\n <mat-option [value]=\\\"item.key\\\"> {{ item.value }} </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <mat-form-field>\\n <mat-label i18n>AdverseCredit Status</mat-label>\\n <mat-select placeholder=\\\"AdverseCredit Status\\\" [(ngModel)]=\\\"tenant.adverseCreditStatus\\\" required>\\n @for (item of adverseCreditStatus | keyvalue; track item) {\\n <mat-option [value]=\\\"item.key\\\"> {{ item.value }} </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <mat-form-field>\\n <mat-label i18n>Residency status</mat-label>\\n <mat-select placeholder=\\\"Residency status\\\" [(ngModel)]=\\\"tenant.residencyStatus\\\" required>\\n @for (status of residencyStatus | keyvalue; track status) {\\n <mat-option [value]=\\\"status.key\\\"> {{ status.value }} </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div i18n>* items are required</div>\\n <div class=\\\"mt-3\\\">\\n <button mat-flat-button class=\\\"w-28\\\" (click)=\\\"create()\\\" i18n>Save</button>\\n </div>\\n</div>\\n\", styles: [\"mat-form-field{width:100%}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"ngmodule\", type: FormsModule }, { 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.RequiredValidator, selector: \":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]\", inputs: [\"required\"] }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"component\", type: i2.MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: i2.MatLabel, selector: \"mat-label\" }, { kind: \"directive\", type: i2.MatPrefix, selector: \"[matPrefix], [matIconPrefix], [matTextPrefix]\", inputs: [\"matTextPrefix\"] }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"directive\", type: i3.MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\", \"disabledInteractive\"], exportAs: [\"matInput\"] }, { kind: \"ngmodule\", type: TextFieldModule }, { kind: \"ngmodule\", type: MatSelectModule }, { kind: \"component\", type: i4.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\", \"canSelectNullableOptions\"], outputs: [\"openedChange\", \"opened\", \"closed\", \"selectionChange\", \"valueChange\"], exportAs: [\"matSelect\"] }, { kind: \"component\", type: i4.MatOption, selector: \"mat-option\", inputs: [\"value\", \"id\", \"disabled\"], outputs: [\"onSelectionChange\"], exportAs: [\"matOption\"] }, { kind: \"ngmodule\", type: MatOptionModule }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i5.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"pipe\", type: i6.KeyValuePipe, name: \"keyvalue\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: TenantManageCreate, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-tenant-manage-create', imports: [\n CommonModule,\n ToolbarComponent,\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n TextFieldModule,\n MatSelectModule,\n MatOptionModule,\n MatButtonModule\n ], template: \"<rolatech-toolbar title=\\\"Add tenant\\\" link=\\\"../\\\"> </rolatech-toolbar>\\n<div class=\\\"p-3\\\">\\n <div class=\\\"flex flex-col md:w-2/3\\\">\\n <div class=\\\"flex w-full gap-2\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>First name</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"tenant.firstName\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Last name</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"tenant.lastName\\\" required />\\n </mat-form-field>\\n </div>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Email</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"tenant.email\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Phone</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"tenant.phone\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\" floatLabel=\\\"always\\\">\\n <mat-label i18n>Annual income(All tenants combined)</mat-label>\\n <span matTextPrefix>\\u00A3&nbsp;</span>\\n <input matInput type=\\\"text\\\" placeholder=\\\"00.00\\\" [(ngModel)]=\\\"tenant.income\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Number Of Tenants</mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"tenant.numberOfTenants\\\" required />\\n </mat-form-field>\\n <mat-form-field>\\n <mat-label i18n>Tenant category</mat-label>\\n <mat-select placeholder=\\\"Applicant type\\\" [(ngModel)]=\\\"tenant.tenantCategory\\\" required>\\n @for (tenantCategory of tenantCategory | keyvalue; track tenantCategory) {\\n <mat-option [value]=\\\"tenantCategory.key\\\"> {{ tenantCategory.value }} </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <mat-form-field>\\n <mat-label i18n>Employment Status</mat-label>\\n <mat-select placeholder=\\\"Employment Status\\\" [(ngModel)]=\\\"tenant.employmentStatus\\\" required>\\n @for (item of employmentStatus | keyvalue; track item) {\\n <mat-option [value]=\\\"item.key\\\"> {{ item.value }} </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <mat-form-field>\\n <mat-label i18n>AdverseCredit Status</mat-label>\\n <mat-select placeholder=\\\"AdverseCredit Status\\\" [(ngModel)]=\\\"tenant.adverseCreditStatus\\\" required>\\n @for (item of adverseCreditStatus | keyvalue; track item) {\\n <mat-option [value]=\\\"item.key\\\"> {{ item.value }} </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <mat-form-field>\\n <mat-label i18n>Residency status</mat-label>\\n <mat-select placeholder=\\\"Residency status\\\" [(ngModel)]=\\\"tenant.residencyStatus\\\" required>\\n @for (status of residencyStatus | keyvalue; track status) {\\n <mat-option [value]=\\\"status.key\\\"> {{ status.value }} </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div i18n>* items are required</div>\\n <div class=\\\"mt-3\\\">\\n <button mat-flat-button class=\\\"w-28\\\" (click)=\\\"create()\\\" i18n>Save</button>\\n </div>\\n</div>\\n\", styles: [\"mat-form-field{width:100%}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LW1hbmFnZS1jcmVhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvdGVuYW50LW1hbmFnZS90ZW5hbnQtbWFuYWdlLWNyZWF0ZS90ZW5hbnQtbWFuYWdlLWNyZWF0ZS50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy90ZW5hbnQtbWFuYWdlL3RlbmFudC1tYW5hZ2UtY3JlYXRlL3RlbmFudC1tYW5hZ2UtY3JlYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQTBCLHFCQUFxQixFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7OztBQWlCNUksTUFBTSxPQUFPLGtCQUFrQjtJQUNyQixlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEIsS0FBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMvQixRQUFRLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZDLE1BQU0sR0FBUSxFQUFFLENBQUM7SUFDakIsY0FBYyxHQUFHLHFCQUFxQixDQUFDO0lBQ3ZDLGVBQWUsR0FBRyxlQUFlLENBQUM7SUFDbEMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7SUFDcEMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUM7SUFDMUMsTUFBTTtRQUNKLE1BQU0sSUFBSSxHQUFHO1lBQ1gsR0FBRyxJQUFJLENBQUMsTUFBTTtTQUNmLENBQUM7UUFDRixJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDaEQsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUU7b0JBQzFDLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSztpQkFDdkIsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNYLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNoQyxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0F4QlUsa0JBQWtCOzJGQUFsQixrQkFBa0IseUZDOUIvQixpbkdBb0VBLHFGRGxESSxZQUFZLCtCQUNaLGdCQUFnQiwrSEFDaEIsV0FBVywyMEJBQ1gsa0JBQWtCLDJhQUNsQixjQUFjLGlZQUNkLGVBQWUsOEJBQ2YsZUFBZSwrc0JBQ2YsZUFBZSw4QkFDZixlQUFlOzsyRkFJTixrQkFBa0I7a0JBZjlCLFNBQVM7K0JBQ0UsK0JBQStCLFdBQ2hDO3dCQUNQLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixXQUFXO3dCQUNYLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixlQUFlO3FCQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBUZXh0RmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGV4dC1maWVsZCc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBQcm9wZXJ0eVNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBQcm9wZXJ0eVZpZXdlckNhdGVnb3J5LCBQcm9wZXJ0eUFwcGxpY2FudFR5cGUsIFJlc2lkZW5jeVN0YXR1cywgRW1wbG95bWVudFN0YXR1cywgQWR2ZXJzZUNyZWRpdFN0YXR1cyB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC10ZW5hbnQtbWFuYWdlLWNyZWF0ZScsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVG9vbGJhckNvbXBvbmVudCxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgVGV4dEZpZWxkTW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBNYXRPcHRpb25Nb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RlbmFudC1tYW5hZ2UtY3JlYXRlLmh0bWwnLFxuICBzdHlsZVVybDogJy4vdGVuYW50LW1hbmFnZS1jcmVhdGUuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFRlbmFudE1hbmFnZUNyZWF0ZSB7XG4gIHByaXZhdGUgcHJvcGVydHlTZXJ2aWNlID0gaW5qZWN0KFByb3BlcnR5U2VydmljZSk7XG4gIHByaXZhdGUgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHByaXZhdGUgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuICBwcml2YXRlIHNuYWNrQmFyID0gaW5qZWN0KE1hdFNuYWNrQmFyKTtcbiAgdGVuYW50OiBhbnkgPSB7fTtcbiAgdGVuYW50Q2F0ZWdvcnkgPSBQcm9wZXJ0eUFwcGxpY2FudFR5cGU7XG4gIHJlc2lkZW5jeVN0YXR1cyA9IFJlc2lkZW5jeVN0YXR1cztcbiAgZW1wbG95bWVudFN0YXR1cyA9IEVtcGxveW1lbnRTdGF0dXM7XG4gIGFkdmVyc2VDcmVkaXRTdGF0dXMgPSBBZHZlcnNlQ3JlZGl0U3RhdHVzO1xuICBjcmVhdGUoKSB7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIC4uLnRoaXMudGVuYW50LFxuICAgIH07XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuY3JlYXRlVGVuYW50KGRhdGEpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AuLi8ke3Jlcy5kYXRhLmlkfWBdLCB7XG4gICAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSxcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXIub3BlbihlLm1lc3NhZ2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPHJvbGF0ZWNoLXRvb2xiYXIgdGl0bGU9XCJBZGQgdGVuYW50XCIgbGluaz1cIi4uL1wiPiA8L3JvbGF0ZWNoLXRvb2xiYXI+XG48ZGl2IGNsYXNzPVwicC0zXCI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1kOnctMi8zXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggdy1mdWxsIGdhcC0yXCI+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgPG1hdC1sYWJlbCBpMThuPkZpcnN0IG5hbWU8L21hdC1sYWJlbD5cbiAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJ0ZW5hbnQuZmlyc3ROYW1lXCIgcmVxdWlyZWQgLz5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgPG1hdC1sYWJlbCBpMThuPkxhc3QgbmFtZTwvbWF0LWxhYmVsPlxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInRlbmFudC5sYXN0TmFtZVwiIHJlcXVpcmVkIC8+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDwvZGl2PlxuICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgPG1hdC1sYWJlbCBpMThuPkVtYWlsPC9tYXQtbGFiZWw+XG4gICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInRlbmFudC5lbWFpbFwiIHJlcXVpcmVkIC8+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgIDxtYXQtbGFiZWwgaTE4bj5QaG9uZTwvbWF0LWxhYmVsPlxuICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJ0ZW5hbnQucGhvbmVcIiByZXF1aXJlZCAvPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgZmxvYXRMYWJlbD1cImFsd2F5c1wiPlxuICAgICAgPG1hdC1sYWJlbCBpMThuPkFubnVhbCBpbmNvbWUoQWxsIHRlbmFudHMgY29tYmluZWQpPC9tYXQtbGFiZWw+XG4gICAgICA8c3BhbiBtYXRUZXh0UHJlZml4PsKjJm5ic3A7PC9zcGFuPlxuICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCIwMC4wMFwiIFsobmdNb2RlbCldPVwidGVuYW50LmluY29tZVwiIHJlcXVpcmVkIC8+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgIDxtYXQtbGFiZWwgaTE4bj5OdW1iZXIgT2YgVGVuYW50czwvbWF0LWxhYmVsPlxuICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJ0ZW5hbnQubnVtYmVyT2ZUZW5hbnRzXCIgcmVxdWlyZWQgLz5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgIDxtYXQtbGFiZWwgaTE4bj5UZW5hbnQgY2F0ZWdvcnk8L21hdC1sYWJlbD5cbiAgICAgIDxtYXQtc2VsZWN0IHBsYWNlaG9sZGVyPVwiQXBwbGljYW50IHR5cGVcIiBbKG5nTW9kZWwpXT1cInRlbmFudC50ZW5hbnRDYXRlZ29yeVwiIHJlcXVpcmVkPlxuICAgICAgICBAZm9yICh0ZW5hbnRDYXRlZ29yeSBvZiB0ZW5hbnRDYXRlZ29yeSB8IGtleXZhbHVlOyB0cmFjayB0ZW5hbnRDYXRlZ29yeSkge1xuICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwidGVuYW50Q2F0ZWdvcnkua2V5XCI+IHt7IHRlbmFudENhdGVnb3J5LnZhbHVlIH19IDwvbWF0LW9wdGlvbj5cbiAgICAgICAgfVxuICAgICAgPC9tYXQtc2VsZWN0PlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1sYWJlbCBpMThuPkVtcGxveW1lbnQgU3RhdHVzPC9tYXQtbGFiZWw+XG4gICAgICA8bWF0LXNlbGVjdCBwbGFjZWhvbGRlcj1cIkVtcGxveW1lbnQgU3RhdHVzXCIgWyhuZ01vZGVsKV09XCJ0ZW5hbnQuZW1wbG95bWVudFN0YXR1c1wiIHJlcXVpcmVkPlxuICAgICAgICBAZm9yIChpdGVtIG9mIGVtcGxveW1lbnRTdGF0dXMgfCBrZXl2YWx1ZTsgdHJhY2sgaXRlbSkge1xuICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiaXRlbS5rZXlcIj4ge3sgaXRlbS52YWx1ZSB9fSA8L21hdC1vcHRpb24+XG4gICAgICAgIH1cbiAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgIDxtYXQtbGFiZWwgaTE4bj5BZHZlcnNlQ3JlZGl0IFN0YXR1czwvbWF0LWxhYmVsPlxuICAgICAgPG1hdC1zZWxlY3QgcGxhY2Vob2xkZXI9XCJBZHZlcnNlQ3JlZGl0IFN0YXR1c1wiIFsobmdNb2RlbCldPVwidGVuYW50LmFkdmVyc2VDcmVkaXRTdGF0dXNcIiByZXF1aXJlZD5cbiAgICAgICAgQGZvciAoaXRlbSBvZiBhZHZlcnNlQ3JlZGl0U3RhdHVzIHwga2V5dmFsdWU7IHRyYWNrIGl0ZW0pIHtcbiAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIml0ZW0ua2V5XCI+IHt7IGl0ZW0udmFsdWUgfX0gPC9tYXQtb3B0aW9uPlxuICAgICAgICB9XG4gICAgICA8L21hdC1zZWxlY3Q+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWxhYmVsIGkxOG4+UmVzaWRlbmN5IHN0YXR1czwvbWF0LWxhYmVsPlxuICAgICAgPG1hdC1zZWxlY3QgcGxhY2Vob2xkZXI9XCJSZXNpZGVuY3kgc3RhdHVzXCIgWyhuZ01vZGVsKV09XCJ0ZW5hbnQucmVzaWRlbmN5U3RhdHVzXCIgcmVxdWlyZWQ+XG4gICAgICAgIEBmb3IgKHN0YXR1cyBvZiByZXNpZGVuY3lTdGF0dXMgfCBrZXl2YWx1ZTsgdHJhY2sgc3RhdHVzKSB7XG4gICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJzdGF0dXMua2V5XCI+IHt7IHN0YXR1cy52YWx1ZSB9fSA8L21hdC1vcHRpb24+XG4gICAgICAgIH1cbiAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L2Rpdj5cbiAgPGRpdiBpMThuPiogaXRlbXMgYXJlIHJlcXVpcmVkPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtdC0zXCI+XG4gICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY2xhc3M9XCJ3LTI4XCIgKGNsaWNrKT1cImNyZWF0ZSgpXCIgaTE4bj5TYXZlPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=","import { TenantManageIndex } from \"./tenant-manage-index/tenant-manage-index\";\nimport { TenantManageDetail } from \"./tenant-manage-detail/tenant-manage-detail\";\nimport { TenantManageCreate } from \"./tenant-manage-create/tenant-manage-create\";\nexport const tenantManageRoutes = [\n {\n path: '',\n component: TenantManageIndex,\n },\n {\n path: 'create',\n component: TenantManageCreate,\n },\n {\n path: ':id',\n component: TenantManageDetail,\n }\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LW1hbmFnZS5yb3V0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvdGVuYW50LW1hbmFnZS90ZW5hbnQtbWFuYWdlLnJvdXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNqRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUVqRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBVztJQUN4QztRQUNFLElBQUksRUFBRSxFQUFFO1FBQ1IsU0FBUyxFQUFFLGlCQUFpQjtLQUM3QjtJQUNEO1FBQ0UsSUFBSSxFQUFFLFFBQVE7UUFDZCxTQUFTLEVBQUUsa0JBQWtCO0tBQzlCO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsS0FBSztRQUNYLFNBQVMsRUFBRSxrQkFBa0I7S0FDOUI7Q0FDRixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm91dGVzIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHsgVGVuYW50TWFuYWdlSW5kZXggfSBmcm9tIFwiLi90ZW5hbnQtbWFuYWdlLWluZGV4L3RlbmFudC1tYW5hZ2UtaW5kZXhcIjtcbmltcG9ydCB7IFRlbmFudE1hbmFnZURldGFpbCB9IGZyb20gXCIuL3RlbmFudC1tYW5hZ2UtZGV0YWlsL3RlbmFudC1tYW5hZ2UtZGV0YWlsXCI7XG5pbXBvcnQgeyBUZW5hbnRNYW5hZ2VDcmVhdGUgfSBmcm9tIFwiLi90ZW5hbnQtbWFuYWdlLWNyZWF0ZS90ZW5hbnQtbWFuYWdlLWNyZWF0ZVwiO1xuXG5leHBvcnQgY29uc3QgdGVuYW50TWFuYWdlUm91dGVzOiBSb3V0ZXMgPSBbXG4gIHtcbiAgICBwYXRoOiAnJyxcbiAgICBjb21wb25lbnQ6IFRlbmFudE1hbmFnZUluZGV4LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ2NyZWF0ZScsXG4gICAgY29tcG9uZW50OiBUZW5hbnRNYW5hZ2VDcmVhdGUsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnOmlkJyxcbiAgICBjb21wb25lbnQ6IFRlbmFudE1hbmFnZURldGFpbCxcbiAgfVxuXVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sYXRlY2gtYW5ndWxhci1wcm9wZXJ0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL3JvbGF0ZWNoLWFuZ3VsYXItcHJvcGVydHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":["i1","i2","i3","i4","i5","i6","MY_FORMATS","i7","i8","i9"],"mappings":"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ACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;A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"}