@rolatech/angular-property 20.1.2 → 20.1.3-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rolatech-angular-property-rolatech-angular-property-6DXjssB_.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/load-google-maps.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/components/property-filter-bar/property-filter-bar.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/pipes/property-available.pipe.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/pipes/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/lib/pages/property-agent/property-agent-viewing-index/property-agent-viewing-index.js","../tmp-esm2022/lib/pages/property-agent/property-agent-viewing-detail/property-agent-viewing-detail.js","../tmp-esm2022/lib/pages/property-agent/property-agent-viewing.routes.js","../tmp-esm2022/lib/pages/property-agent/property-agent-offer-detail/property-agent-offer-detail.js","../tmp-esm2022/lib/pages/property-agent/property-agent-offer-index/property-agent-offer-index.js","../tmp-esm2022/lib/pages/property-agent/property-agent-offer.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[\"SALES\"] = \"Sales\";\n PropertyOfferType[\"LETTINGS\"] = \"Lettings\";\n PropertyOfferType[\"NOT_SPECIFIED\"] = \"Not specified\";\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];\nexport const BedroomRange = [\n { label: 'No min', value: '0' },\n { label: 'No max', value: null },\n { label: '1', value: '1' },\n { label: '2', value: '2' },\n { label: '3', value: '3' },\n { label: '4', value: '4' },\n { label: '5', value: '5' },\n];\nexport const PriceRange = [\n { label: 'No min', value: 0 },\n { label: 'No max', value: null },\n { label: '£100 PCM', value: 100 },\n { label: '£150 PCM', value: 150 },\n { label: '£200 PCM', value: 200 },\n { label: '£250 PCM', value: 250 },\n { label: '£300 PCM', value: 300 },\n { label: '£350 PCM', value: 350 },\n { label: '£400 PCM', value: 400 },\n { label: '£450 PCM', value: 450 },\n { label: '£500 PCM', value: 500 },\n { label: '£600 PCM', value: 600 },\n { label: '£700 PCM', value: 700 },\n { label: '£800 PCM', value: 800 },\n { label: '£900 PCM', value: 900 },\n { label: '£1,000 PCM', value: 1000 },\n { label: '£1,100 PCM', value: 1100 },\n { label: '£1,200 PCM', value: 1200 },\n { label: '£1,250 PCM', value: 1250 },\n { label: '£1,300 PCM', value: 1300 },\n { label: '£1,400 PCM', value: 1400 },\n { label: '£1,500 PCM', value: 1500 },\n { label: '£1,750 PCM', value: 1750 },\n { label: '£2,000 PCM', value: 2000 },\n { label: '£2,250 PCM', value: 2250 },\n { label: '£2,500 PCM', value: 2500 },\n { label: '£2,750 PCM', value: 2750 },\n { label: '£3,000 PCM', value: 3000 },\n { label: '£3,500 PCM', value: 3500 },\n { label: '£4,000 PCM', value: 4000 },\n { label: '£4,500 PCM', value: 4500 },\n { label: '£5,000 PCM', value: 5000 },\n { label: '£5,500 PCM', value: 5500 },\n { label: '£6,000 PCM', value: 6000 },\n { label: '£6,500 PCM', value: 6500 },\n { label: '£7,000 PCM', value: 7000 },\n { label: '£8,000 PCM', value: 8000 },\n { label: '£9,000 PCM', value: 9000 },\n { label: '£10,000 PCM', value: 10000 },\n { label: '£12,500 PCM', value: 12500 },\n { label: '£15,000 PCM', value: 15000 },\n { label: '£17,500 PCM', value: 17500 },\n { label: '£20,000 PCM', value: 20000 },\n { label: '£25,000 PCM', value: 25000 },\n { label: '£30,000 PCM', value: 30000 },\n { label: '£35,000 PCM', value: 35000 },\n { label: '£40,000 PCM', value: 40000 },\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvaW50ZXJmYWNlcy9wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxQ0EsTUFBTSxDQUFOLElBQVksYUFZWDtBQVpELFdBQVksYUFBYTtJQUN2QixnREFBK0IsQ0FBQTtJQUMvQixrQ0FBaUIsQ0FBQTtJQUNqQix3Q0FBdUIsQ0FBQTtJQUN2QixvQ0FBbUIsQ0FBQTtJQUNuQiwwQ0FBeUIsQ0FBQTtJQUN6Qix3Q0FBdUIsQ0FBQTtJQUN2Qiw0Q0FBMkIsQ0FBQTtJQUMzQixrQ0FBaUIsQ0FBQTtJQUNqQixzQ0FBcUIsQ0FBQTtJQUNyQixnQ0FBZSxDQUFBO0lBQ2Ysa0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQVpXLGFBQWEsS0FBYixhQUFhLFFBWXhCO0FBQ0QsTUFBTSxDQUFOLElBQVksTUFJWDtBQUpELFdBQVksTUFBTTtJQUNoQix5QkFBZSxDQUFBO0lBQ2YsK0JBQXFCLENBQUE7SUFDckIseUNBQStCLENBQUE7QUFDakMsQ0FBQyxFQUpXLE1BQU0sS0FBTixNQUFNLFFBSWpCO0FBcUJELE1BQU0sQ0FBTixJQUFZLGlCQUlYO0FBSkQsV0FBWSxpQkFBaUI7SUFDM0IsdURBQWMsQ0FBQTtJQUNkLHlEQUFnQixDQUFBO0lBQ2hCLGtEQUFjLENBQUE7QUFDaEIsQ0FBQyxFQUpXLGlCQUFpQixLQUFqQixpQkFBaUIsUUFJNUI7QUF5REQsTUFBTSxDQUFOLElBQVkscUJBS1g7QUFMRCxXQUFZLHFCQUFxQjtJQUMvQiw0Q0FBbUIsQ0FBQTtJQUNuQixzQ0FBYSxDQUFBO0lBQ2IsK0NBQXNCLENBQUE7SUFDdEIsb0NBQVcsQ0FBQTtBQUNiLENBQUMsRUFMVyxxQkFBcUIsS0FBckIscUJBQXFCLFFBS2hDO0FBQ0QsTUFBTSxDQUFOLElBQVksY0FVWDtBQVZELFdBQVksY0FBYztJQUN4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QU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUVQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBRVAsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFFUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUVQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBRVAsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFFUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUVQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBRVAsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFFUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztDQUNSLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUc7SUFDMUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUU7SUFDL0IsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7SUFDaEMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUU7SUFDMUIsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUU7SUFDMUIsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUU7SUFDMUIsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUU7SUFDMUIsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUU7Q0FDM0IsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtJQUM3QixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtJQUNoQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtJQUNqQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtJQUNqQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtJQUNqQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtJQUNqQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtJQUNqQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtJQUNqQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtJQUNqQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtJQUNqQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtJQUNqQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtJQUNqQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtJQUNqQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtJQUNqQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtJQUNqQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtJQUNwQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtJQUNwQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtJQUNwQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtJQUNwQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtJQUNwQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtJQUNwQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtJQUNwQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtJQUNwQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtJQUNwQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtJQUNwQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtJQUNwQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtJQUNwQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtJQUNwQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtJQUNwQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtJQUNwQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtJQUNwQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtJQUNwQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtJQUNwQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtJQUNwQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtJQUNwQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtJQUNwQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtJQUNwQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtJQUNwQyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtJQUN0QyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtJQUN0QyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtJQUN0QyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtJQUN0QyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtJQUN0QyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtJQUN0QyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtJQUN0QyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtJQUN0QyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtDQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmVhdHVyZSwgRmVhdHVyZVZhbHVlIH0gZnJvbSAnLi9mZWF0dXJlJztcblxuZXhwb3J0IGludGVyZmFjZSBQcm9wZXJ0eSB7XG4gIGlkOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGJlZHJvb21zOiBudW1iZXI7XG4gIGJhdGhyb29tczogbnVtYmVyO1xuICByZWNlcHRpb25zOiBudW1iZXI7XG4gIGZsb29yOiBudW1iZXI7XG4gIHNpemU6IG51bWJlcjtcbiAgYXZhaWxhYmxlRGF0ZTogRGF0ZTtcbiAgbWVkaWE6IFByb3BlcnR5TWVkaWFbXTtcbiAgc3RhdHVzOiBQcm9wZXJ0eVN0YXR1cyB8IHN0cmluZztcbiAgdHlwZTogUHJvcGVydHlUeXBlIHwgc3RyaW5nO1xuICBzY29wZTogUHJvcGVydHlTY29wZSB8IHN0cmluZztcbiAgdGFnczogUHJvcGVydHlUYWdbXTtcbiAgc2VjdGlvbnM6IFByb3BlcnR5U2VjdGlvbltdO1xuICBvcHRpb25zOiBQcm9wZXJ0eU9wdGlvbltdO1xuICBmZWF0dXJlczogUHJvcGVydHlGZWF0dXJlT3B0aW9uW107XG4gIHVzZXJGZWF0dXJlczogUHJvcGVydHlGZWF0dXJlW107XG5cbiAgbG9jYXRpb246IFByb3BlcnR5TG9jYXRpb247XG4gIHZhcmlhbnRzPzogUHJvcGVydHlWYXJpYW50W107XG4gIHByaWNlOiBudW1iZXI7XG4gIGRlcG9zaXQ6IG51bWJlcjtcbiAgcHJpY2VUeXBlOiBQcm9wZXJ0eVByaWNlVHlwZTtcbiAgYWdlbnRJZDogc3RyaW5nO1xuICBsYW5kbG9yZElkOiBzdHJpbmc7XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xuICB1cGRhdGVkQXQ6IHN0cmluZztcbiAgdmlkZW9zOiBQcm9wZXJ0eVZpZGVvW107XG4gIGhpZ2hsaWdodHM6IHN0cmluZ1tdO1xuICBlcGM6IFByb3BlcnR5RXBjTW9kZWw7XG4gIHJlbnRGcmVxdWVuY3k6IFJlbnRGcmVxdWVuY3k7XG4gIG1hcmtldDogTWFya2V0O1xufVxuZXhwb3J0IGVudW0gUmVudEZyZXF1ZW5jeSB7XG4gIE5PVF9TUEVDSUZJRUQgPSAnTm90IHNwZWNpZmllZCcsXG4gIFdFRUtMWSA9ICdXZWVrbHknLFxuICBCSV9XRUVLTFkgPSAnQmkgd2Vla2x5JywgLy8gZXZlcnkgMiB3ZWVrc1xuICBNT05USExZID0gJ01vbnRobHknLFxuICBCSV9NT05USExZID0gJ0JpIG1vbnRobHknLCAvLyBldmVyeSAyIG1vbnRoc1xuICBRVUFSVEVSTFkgPSAnUXVhcnRlcmx5JywgLy8gZXZlcnkgMyBtb250aHNcbiAgU0VNSV9BTk5VQUwgPSAnU2VtaSBhbm51YWwnLCAvLyBldmVyeSA2IG1vbnRoc1xuICBBTk5VQUwgPSAnQW5udWFsJywgLy8geWVhcmx5XG4gIE9ORV9USU1FID0gJ09uZSB0aW1lJywgLy8gc2luZ2xlIHBheW1lbnRcbiAgREFJTFkgPSAnRGFpbHknLCAvLyBzaG9ydC10ZXJtIHJlbnRhbHNcbiAgQ1VTVE9NID0gJ0N1c3RvbScsIC8vIGZsZXhpYmxlL25lZ290aWF0ZWQgdGVybXNcbn1cbmV4cG9ydCBlbnVtIE1hcmtldCB7XG4gIFNBTEVTID0gJ1NhbGVzJyxcbiAgTEVUVElOR1MgPSAnTGV0dGluZ3MnLFxuICBOT1RfU1BFQ0lGSUVEID0gJ05vdCBzcGVjaWZpZWQnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb3BlcnR5RXBjTW9kZWwge1xuICBjdXJyZW50UmF0aW5nOiBzdHJpbmc7XG4gIHBvdGVudGlhbFJhdGluZzogc3RyaW5nO1xuICBjdXJyZW50U2NvcmU6IG51bWJlcjtcbiAgcG90ZW50aWFsU2NvcmU6IG51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcGVydHlIaWdobGlnaHQge1xuICB0ZXh0OiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIFByb3BlcnR5RmVhdHVyZSB7XG4gIGNvZGU6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBQcm9wZXJ0eUZlYXR1cmVPcHRpb24ge1xuICBwcm9wZXJ0eTogUHJvcGVydHk7XG4gIGZlYXR1cmU6IEZlYXR1cmU7XG4gIHZhbHVlOiBGZWF0dXJlVmFsdWU7XG59XG5leHBvcnQgZW51bSBQcm9wZXJ0eVByaWNlVHlwZSB7XG4gIEZJWEVEID0gJ+WbuuWumuS7t+agvCcsXG4gIFBBUlRJQUwgPSAn5pSv5LuY5a6a6YeRJyxcbiAgVkFSSUVEID0gJ+WkmuWPmOeahCcsXG59XG5leHBvcnQgaW50ZXJmYWNlIFByb3BlcnR5U2VjdGlvbiB7XG4gIGlkOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGNvbnRlbnQ6IHN0cmluZztcbiAgbWVkaWE6IFByb3BlcnR5TWVkaWFbXTtcbiAgaXNVcGxvYWRpbmc/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb3BlcnR5VmFyaWFudCB7XG4gIGlkOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHByaWNlOiBudW1iZXI7XG4gIHNrdTogc3RyaW5nO1xuICBvcHRpb25zOiBQcm9wZXJ0eVZhcmlhbnRPcHRpb25bXTtcbiAgbWVkaWE6IFByb3BlcnR5VmFyaWFudE1lZGlhW107XG4gIGlzVXBsb2FkaW5nPzogYm9vbGVhbjtcbiAgc3RhdHVzOiBQcm9wZXJ0eUludmVudG9yeVN0YXR1cyB8IHN0cmluZztcbiAgaW52ZW50b3J5SXRlbUlkOiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIFByb3BlcnR5VmFyaWFudE1lZGlhIHtcbiAgdXJsOiBzdHJpbmc7XG4gIGFsdDogc3RyaW5nO1xuICB1cGxvYWRpbmc/OiBib29sZWFuO1xufVxuZXhwb3J0IGludGVyZmFjZSBQcm9wZXJ0eVZhcmlhbnRPcHRpb24ge1xuICBvcHRpb246IFByb3BlcnR5T3B0aW9uO1xuICB2YWx1ZTogUHJvcGVydHlPcHRpb25WYWx1ZTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcGVydHlUYWcge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIFByb3BlcnR5TG9jYXRpb24ge1xuICBpZD86IHN0cmluZztcbiAgZmxhdE51bWJlcjogc3RyaW5nO1xuICBzdHJlZXROdW1iZXI6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBzdHJlZXQ6IHN0cmluZztcbiAgdG93bjogc3RyaW5nO1xuICBwb3N0Q29kZTogc3RyaW5nO1xuICBjb3VudHJ5OiBzdHJpbmc7XG4gIGxvbmdpdHVkZTogc3RyaW5nO1xuICBsYXRpdHVkZTogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBQcm9wZXJ0eVZpZGVvIHtcbiAgaWQ/OiBzdHJpbmc7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgdXJsOiBzdHJpbmc7XG4gIHByb3ZpZGVyPzogUHJvcGVydHlWaWRlb1Byb3ZpZGVyO1xuICB1cGxvYWRpbmc/OiBib29sZWFuO1xuICBwcm9ncmVzczogbnVtYmVyIHwgMDtcbiAgZHVyYXRpb246IG51bWJlciB8IDA7XG4gIHRodW1ibmFpbD86IHN0cmluZztcbn1cbmV4cG9ydCBlbnVtIFByb3BlcnR5VmlkZW9Qcm92aWRlciB7XG4gIFlPVVRVQkUgPSAnWU9VVFVCRScsXG4gIFMzID0gJ0FXUyBTMycsXG4gIExPQ0FMID0gJ0xvY2FsIHNlcnZlcicsXG4gIENPUyA9ICdDT1MnLFxufVxuZXhwb3J0IGVudW0gUHJvcGVydHlTdGF0dXMge1xuICBEUkFGVCA9IDxhbnk+J0RyYWZ0JyxcbiAgUEVORElORyA9IDxhbnk+J1BlbmRpbmcnLFxuICBBUFBST1ZFRCA9IDxhbnk+J0FwcHJvdmVkJyxcbiAgUkVKRUNURUQgPSA8YW55PidSZWplY3RlZCcsXG4gIEFWQUlMQUJMRSA9IDxhbnk+J0F2YWlsYWJsZScsXG4gIFNPTEQgPSA8YW55PidTb2xkJyxcbiAgUkVOVEVEID0gPGFueT4nUmVudGVkJyxcbiAgREVMRVRFRCA9IDxhbnk+J0RlbGV0ZWQnLFxuICBBUkNISVZFRCA9IDxhbnk+J0FyY2hpdmVkJyxcbn1cbmV4cG9ydCBlbnVtIFByb3BlcnR5VHlwZSB7XG4gIEFQQVJUTUVOVCA9ICdBcGFydG1lbnQnLFxuICBDT05ETyA9ICdDb25kbycsXG4gIEhPVVNFID0gJ0hvdXJzZScsXG4gIFRPV05IT1VTRSA9ICdUb3duaG91cnNlJyxcbiAgTEFORCA9ICdMYW5kJyxcbiAgQ09NTUVSQ0lBTCA9ICdDb21tZXJjaWFsJyxcbiAgSU5EVVNUUklBTCA9ICdJbmR1c3RyaWFsJyxcbiAgRkxBVCA9ICdGbGF0JyxcbiAgT1RIRVIgPSAnT3RoZXInLFxufVxuZXhwb3J0IGVudW0gUHJvcGVydHlJbnZlbnRvcnlTdGF0dXMge1xuICBJTl9TVE9DSyA9ICfmnInotKcnLFxuICBMT1dfU1RPQ0sgPSAn5bqT5a2Y5LiN6LazJyxcbiAgT1VUX09GX1NUT0NLID0gJ+WUrue9hCcsXG4gIERJU0NPTlRJTlVFRCA9ICflt7LlgZzkuqcnLFxufVxuZXhwb3J0IGVudW0gUHJvcGVydHlTY29wZSB7XG4gIFdFQiA9IDxhbnk+J+e9keermScsXG4gIEdMT0JBTCA9IDxhbnk+J+WFqOWfnycsXG59XG5leHBvcnQgaW50ZXJmYWNlIFByb3BlcnR5TWVkaWEge1xuICBpZDogc3RyaW5nO1xuICB1cmw6IHN0cmluZztcbiAgYWx0OiBzdHJpbmc7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xuICB1dWlkOiBzdHJpbmc7XG4gIHNlbGVjdGVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb3BlcnR5VGFnIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb3BlcnR5T3B0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICB2YWx1ZXM6IFByb3BlcnR5T3B0aW9uVmFsdWVbXTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcGVydHlPcHRpb25WYWx1ZSB7XG4gIGlkPzogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIFByb3BlcnR5RGVwb3NpdFJlc3VsdCB7XG4gIGhvbGRpbmdEZXBvc2l0OiBudW1iZXI7XG4gIHNlY3VyaXR5RGVwb3NpdDogbnVtYmVyO1xuICBhZ2VudENvbW1pc3Npb246IG51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcGVydHlWaWV3aW5nUmVxdWVzdCB7XG4gIGZpcnN0TmFtZT86IHN0cmluZztcbiAgbGFzdE5hbWU/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuICBwaG9uZT86IHN0cmluZztcbiAgdmlld2VyQ2F0ZWdvcnk/OiBQcm9wZXJ0eVZpZXdlckNhdGVnb3J5O1xuICB0ZW5hbnRDYXRlZ29yeT86IFByb3BlcnR5QXBwbGljYW50VHlwZTtcbiAgc3RhcnREYXRlPzogc3RyaW5nO1xuICBudW1iZXJPZlRlbmFudHM/OiBudW1iZXI7XG4gIHRlbmFuY3lEdXJhdGlvbj86IG51bWJlcjtcbiAgYXBwbGljYW50VHlwZT86IFByb3BlcnR5QXBwbGljYW50VHlwZTtcbiAgaW5jb21lPzogbnVtYmVyO1xuICBlbXBsb3ltZW50U3RhdHVzPzogRW1wbG95bWVudFN0YXR1cztcbiAgYWR2ZXJzZUNyZWRpdFN0YXR1cz86IEFkdmVyc2VDcmVkaXRTdGF0dXM7XG4gIHByb3Bvc2VkU2xvdHM6IFZpZXdpbmdQcm9wb3NlZFNsb3RbXTtcbiAgdGVuYW50SWQ/OiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIFZpZXdpbmdQcm9wb3NlZFNsb3Qge1xuICBkYXRlOiBzdHJpbmc7XG4gIHRpbWU6IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcGVydHlWaWV3aW5nIHtcbiAgaWQ6IHN0cmluZztcbiAgZmlyc3ROYW1lOiBzdHJpbmc7XG4gIGxhc3ROYW1lOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIHBob25lOiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICBhZ2VudElkOiBzdHJpbmc7XG4gIHByb3BlcnR5SWQ6IHN0cmluZztcbiAgdmlld2luZ0RhdGU6IHN0cmluZztcbiAgdmlld2luZ1RpbWU6IHN0cmluZztcbiAgc3RhdHVzOiBQcm9wZXJ0eVZpZXdpbmdTdGF0dXM7XG4gIHZpZXdlckNhdGVnb3J5OiBQcm9wZXJ0eVZpZXdlckNhdGVnb3J5O1xuICB0ZW5hbnRDYXRlZ29yeTogUHJvcGVydHlBcHBsaWNhbnRUeXBlO1xuICBwcm9wZXJ0eTogUHJvcGVydHk7XG4gIG51bWJlck9mVGVuYW50cz86IG51bWJlcjtcbiAgdGVuYW5jeUR1cmF0aW9uPzogbnVtYmVyO1xuICBhcHBsaWNhbnRUeXBlPzogUHJvcGVydHlBcHBsaWNhbnRUeXBlO1xuICBpbmNvbWU/OiBudW1iZXI7XG4gIGVtcGxveW1lbnRTdGF0dXM6IEVtcGxveW1lbnRTdGF0dXM7XG4gIGFkdmVyc2VDcmVkaXRTdGF0dXM/OiBBZHZlcnNlQ3JlZGl0U3RhdHVzO1xuICBwcm9wb3NlZFNsb3RzOiBWaWV3aW5nUHJvcG9zZWRTbG90W107XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xuICBpdGVtOiBQcm9wZXJ0eVZpZXdpbmdJdGVtO1xufVxuZXhwb3J0IGludGVyZmFjZSBQcm9wZXJ0eVZpZXdpbmdJdGVtIHtcbiAgcHJvcGVydHlJZDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBwcmljZTogbnVtYmVyO1xuICBiZWRyb29tczogbnVtYmVyO1xuICBiYXRocm9vbXM6IG51bWJlcjtcbiAgcmVjZXB0aW9uczogbnVtYmVyO1xuICBhZ2VudElkOiBzdHJpbmc7XG4gIG1lZGlhOiBQcm9wZXJ0eVZpZXdpbmdJdGVtTWVkaWE7XG59XG5leHBvcnQgaW50ZXJmYWNlIFByb3BlcnR5Vmlld2luZ0l0ZW1NZWRpYSB7XG4gIGlkOiBzdHJpbmc7XG4gIHVybDogc3RyaW5nO1xuICBhbHQ6IHN0cmluZztcbn1cbmV4cG9ydCBlbnVtIFByb3BlcnR5Vmlld2luZ1N0YXR1cyB7XG4gIFBFTkRJTkcgPSAnUGVuZGluZycsXG4gIEFQUFJPVkVEID0gJ0FwcHJvdmVkJyxcbiAgUkVKRUNURUQgPSAnUmVqZWN0ZWQnLFxuICBDQU5DRUxMRUQgPSAnQ2FuY2VsbGVkJyxcbiAgQ09NUExFVEVEID0gJ0NvbXBsZXRlZCcsXG59XG5leHBvcnQgZW51bSBQcm9wZXJ0eVZpZXdlckNhdGVnb3J5IHtcbiAgVEVOQU5UID0gJ1RlbmFudCcsXG4gIEFHRU5UID0gJ0FnZW50Jyxcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcGVydHlPZmZlclJlcXVlc3Qge1xuICBmaXJzdE5hbWU/OiBzdHJpbmc7XG4gIGxhc3ROYW1lPzogc3RyaW5nO1xuICBlbWFpbD86IHN0cmluZztcbiAgcGhvbmU/OiBzdHJpbmc7XG4gIGFwcGxpY2FudFR5cGU/OiBQcm9wZXJ0eUFwcGxpY2FudFR5cGUgfCBzdHJpbmc7XG4gIHJlc2lkZW5jeVN0YXR1cz86IFJlc2lkZW5jeVN0YXR1cyB8IHN0cmluZztcbiAgZW1wbG95bWVudFN0YXR1cz86IEVtcGxveW1lbnRTdGF0dXMgfCBzdHJpbmc7XG4gIGFkdmVyc2VDcmVkaXRTdGF0dXM/OiBBZHZlcnNlQ3JlZGl0U3RhdHVzIHwgc3RyaW5nO1xuICBzdGFydERhdGU6IHN0cmluZztcbiAgbm90ZXM6IHN0cmluZztcbiAgYW1vdW50OiBudW1iZXI7XG4gIG51bWJlck9mVGVuYW50cz86IG51bWJlcjtcbiAgdGVuYW5jeUR1cmF0aW9uPzogbnVtYmVyO1xuICB0ZW5hbnRJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9wZXJ0eU9mZmVyIHtcbiAgaWQ6IHN0cmluZztcbiAgZmlyc3ROYW1lOiBzdHJpbmc7XG4gIGxhc3ROYW1lOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIHBob25lOiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICBhZ2VudElkOiBzdHJpbmc7XG4gIHByb3BlcnR5SWQ6IHN0cmluZztcbiAgYW1vdW50OiBudW1iZXI7XG4gIHN0YXJ0RGF0ZTogc3RyaW5nO1xuICB0eXBlOiBQcm9wZXJ0eU9mZmVyVHlwZTtcbiAgc3RhdHVzOiBQcm9wZXJ0eU9mZmVyU3RhdHVzO1xuICBudW1iZXJPZlRlbmFudHM6IHN0cmluZztcbiAgdGVuYW5jeUR1cmF0aW9uOiBudW1iZXI7XG4gIGFwcGxpY2FudFR5cGU6IFByb3BlcnR5QXBwbGljYW50VHlwZTtcbiAgcmVzaWRlbmN5U3RhdHVzOiBSZXNpZGVuY3lTdGF0dXM7XG4gIGVtcGxveW1lbnRTdGF0dXM6IEVtcGxveW1lbnRTdGF0dXM7XG4gIGVtcGxveWVyOiBzdHJpbmc7XG4gIGpvYlRpdGxlOiBzdHJpbmc7XG4gIGluY29tZTogbnVtYmVyO1xuICBhZHZlcnNlQ3JlZGl0U3RhdHVzOiBBZHZlcnNlQ3JlZGl0U3RhdHVzO1xuICBwcm9wZXJ0eTogUHJvcGVydHk7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xuICBub3Rlczogc3RyaW5nO1xuICBpdGVtOiBQcm9wZXJ0eU9mZmVySXRlbTtcbn1cbmV4cG9ydCBlbnVtIFByb3BlcnR5T2ZmZXJUaW1lbGluZVN0YXR1cyB7XG4gIE9GRkVSX0NSRUFURUQgPSAnT2ZmZXIgY3JlYXRlZCcsXG4gIE9GRkVSX0FDQ0VQVEVEID0gJ09mZmVyIGFjY2VwdGVkJyxcbiAgT0ZGRVJfUkVKRUNURUQgPSAnT2ZmZXIgcmVqZWN0ZWQnLFxuICBPRkZFUl9DTE9TRUQgPSAnT2ZmZXIgY2xvc2VkJyxcbiAgT0ZGRVJfQ0FOQ0VMTEVEID0gJ09mZmVyIGNhbmNlbGxlZCcsXG4gIE9GRkVSX0hPTERJTkdfREVQT1NJVF9QQUlEID0gJ09mZmVyIGhvbGRpbmcgZGVwb3NpdCBwYWlkJyxcbiAgT0ZGRVJfU0VDVVJJVFlfREVQT1NJVF9QQUlEID0gJ09mZmVyIHNlY3VyaXR5IGRlcG9zaXQgcGFpZCcsXG4gIE9GRkVSX1JFRlVOREVEID0gJ09mZmVyIHJlZnVuZGVkJyxcbiAgT0ZGRVJfQ09NUExFVEVEID0gJ09mZmVyIGNvbXBsZXRlZCcsXG4gIE9GRkVSX1JFVFVSTl9SRVFVRVNURUQgPSAnT2ZmZXIgcmV0dXJuIHJlcXVlc3RlZCcsXG4gIE9GRkVSX1JFVFVSTl9BUFBST1ZFRCA9ICdPZmZlciByZXR1cm4gYXBwcm92ZWQnLFxuICBPRkZFUl9SRVRVUk5fUkVKRUNURUQgPSAnT2ZmZXIgcmV0dXJuIHJlamVjdGVkJyxcbiAgT0ZGRVJfUkVUVVJOX1BST0NFU1NJTkcgPSAnT2ZmZXIgcmV0dXJuIHByb2Nlc3NpbmcnLFxuICBPRkZFUl9SRVRVUk5fUkVGVU5ERUQgPSAnT2ZmZXIgcmV0dXJuIHJlZnVuZGVkJyxcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcGVydHlPZmZlckl0ZW0ge1xuICBwcm9wZXJ0eUlkOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGFtb3VudDogbnVtYmVyO1xuICBiZWRyb29tczogbnVtYmVyO1xuICBiYXRocm9vbXM6IG51bWJlcjtcbiAgcmVjZXB0aW9uczogbnVtYmVyO1xuICBhZ2VudElkOiBzdHJpbmc7XG4gIG1lZGlhOiBQcm9wZXJ0eU9mZmVySXRlbU1lZGlhO1xufVxuZXhwb3J0IGludGVyZmFjZSBQcm9wZXJ0eU9mZmVySXRlbU1lZGlhIHtcbiAgaWQ6IHN0cmluZztcbiAgdXJsOiBzdHJpbmc7XG4gIGFsdDogc3RyaW5nO1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbiAgdXVpZDogc3RyaW5nO1xufVxuZXhwb3J0IGVudW0gUHJvcGVydHlPZmZlclR5cGUge1xuICBTQUxFUyA9ICdTYWxlcycsXG4gIExFVFRJTkdTID0gJ0xldHRpbmdzJyxcbiAgTk9UX1NQRUNJRklFRCA9ICdOb3Qgc3BlY2lmaWVkJyxcbn1cbmV4cG9ydCBlbnVtIFByb3BlcnR5T2ZmZXJTdGF0dXMge1xuICBQRU5ESU5HID0gJ1BlbmRpbmcnLFxuICBBQ0NFUFRFRCA9ICdBY2NlcHRlZCcsXG4gIFJFSkVDVEVEID0gJ1JlamVjdGVkJyxcbiAgSE9MRElOR19ERVBPU0lUX1BBSUQgPSAnSG9sZGluZyBkZXBvc2l0IHBhaWQnLFxuICBTRUNVUklUWV9ERVBPU0lUX1BBSUQgPSAnU2VjdXJpdHkgZGVwb3NpdCBwYWlkJyxcbiAgQ0FOQ0VMTEVEID0gJ0NhbmNlbGxlZCcsXG4gIFRFTkFOQ1lfRklOQUxJWkVEID0gJ0ZpbmFsaXplZCcsXG59XG5leHBvcnQgZW51bSBFbXBsb3ltZW50U3RhdHVzIHtcbiAgRU1QTE9ZRUQgPSAnRW1wbG95ZWQnLFxuICBSRVRSSUVEID0gJ1JldHJpZWQnLFxuICBTRUxGX0VNUExPWUVEID0gJ1NlbGYgZW1wbG95ZWQnLFxuICBTVFVERU5UID0gJ1N0dWRlbnQnLFxuICBVTkVNUExPWUVEID0gJ1VuRW1wbG95ZWQnLFxufVxuZXhwb3J0IGVudW0gUmVzaWRlbmN5U3RhdHVzIHtcbiAgVUtfQ0lUSVpFTiA9IFwiSSBkb24ndCBuZWVkIGEgdmlzYVwiLFxuICBWSVNBX0hPTERFUiA9ICdJIGhhdmUgYSB2aXNhJyxcbiAgV0FJVElOR19GT1JfVklTQSA9ICdJIGFtIHdhaXRpbmcgZm9yIG15IHZpc2EnLFxuICBOT1RfWUVUX0FQUExJRURfRk9SX1ZJU0EgPSAnSSBoYXZlIG5vdCB5ZXQgYXBwbGllZCBmb3IgYSB2aXNhJyxcbn1cbmV4cG9ydCBlbnVtIFByb3BlcnR5QXBwbGljYW50VHlwZSB7XG4gIElORElWSURVQUwgPSAnSW5kaXZpZHVhbCcsXG4gIENPUlBPUkFURSA9ICdDb3Jwb3JhdGUnLFxuICBTVFVERU5UID0gJ1N0dWRlbnQnLFxuICBTVUJMRVRUSU5HX0NPTVBBTlkgPSAnU3VibGV0dGluZyBDb21wYW55Jyxcbn1cblxuZXhwb3J0IGVudW0gQWR2ZXJzZUNyZWRpdFN0YXR1cyB7XG4gIE5PTkUgPSAnTm9uZScsXG4gIEFDVElWRV9DQ0ogPSAnQWN0aXZlIENDSicsXG4gIFNBVElTRklFRF9DQ0ogPSAnU2F0aXNmaWVkIENDSicsXG4gIERFQlRfTUFOQUdFTUVOVF9QTEFOID0gJ0RlYnQgbWFuYWdtZW50IHBsYW4nLFxuICBMT1dfQ1JFRElUX1NDT1JFID0gJ0xvdyBjcmVkaXQgc2NvcmUnLFxuICBPVEhFUiA9ICdPdGhlcicsXG59XG5leHBvcnQgaW50ZXJmYWNlIFRlbmFudCB7XG4gIGZpcnN0TmFtZTogc3RyaW5nO1xuICBsYXN0TmFtZTogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBwaG9uZTogc3RyaW5nO1xuICBhdmF0YXI6IHN0cmluZztcbiAgaW5jb21lPzogbnVtYmVyO1xuICB0ZW5hbnRDYXRlZ29yeT86IFByb3BlcnR5QXBwbGljYW50VHlwZTtcbiAgZW1wbG95bWVudFN0YXR1cz86IEVtcGxveW1lbnRTdGF0dXM7XG4gIGFkdmVyc2VDcmVkaXRTdGF0dXM/OiBBZHZlcnNlQ3JlZGl0U3RhdHVzO1xuICByZXNpZGVuY3lTdGF0dXM/OiBSZXNpZGVuY3lTdGF0dXM7XG59XG5leHBvcnQgaW50ZXJmYWNlIFByb3BlcnR5U2VhcmNoT3B0aW9ucyB7XG4gIG1hcmtldDogc3RyaW5nO1xuICB0b3duOiBzdHJpbmc7XG4gIGF2YWlsYWJsZUZyb206IHN0cmluZztcbiAgbWluQmVkcm9vbXM6IHN0cmluZztcbiAgbWF4QmVkcm9vbXM6IHN0cmluZztcbiAgbWluUHJpY2U6IG51bWJlciB8IDA7XG4gIG1heFByaWNlOiBudW1iZXIgfCBudWxsO1xuICBsb2NhdGlvbjogc3RyaW5nO1xuICByYWRpdXM/OiBzdHJpbmc7XG4gIHBhZ2U/OiBudW1iZXI7XG4gIGxpbWl0PzogbnVtYmVyO1xufVxuZXhwb3J0IGNvbnN0IFZpZXdpbmdUaW1lID0gW1xuICAnMDA6MDAnLFxuICAnMDA6MTUnLFxuICAnMDA6MzAnLFxuICAnMDA6NDUnLFxuXG4gICcwMTowMCcsXG4gICcwMToxNScsXG4gICcwMTozMCcsXG4gICcwMTo0NScsXG5cbiAgJzAyOjAwJyxcbiAgJzAyOjE1JyxcbiAgJzAyOjMwJyxcbiAgJzAyOjQ1JyxcbiAgJzAzOjAwJyxcbiAgJzAzOjE1JyxcbiAgJzAzOjMwJyxcbiAgJzAzOjQ1JyxcblxuICAnMDQ6MDAnLFxuICAnMDQ6MTUnLFxuICAnMDQ6MzAnLFxuICAnMDQ6NDUnLFxuICAnMDU6MDAnLFxuICAnMDU6MTUnLFxuICAnMDU6MzAnLFxuICAnMDU6NDUnLFxuXG4gICcwNjowMCcsXG4gICcwNjoxNScsXG4gICcwNjozMCcsXG4gICcwNjo0NScsXG4gICcwNzowMCcsXG4gICcwNzoxNScsXG4gICcwNzozMCcsXG4gICcwNzo0NScsXG5cbiAgJzA4OjAwJyxcbiAgJzA4OjE1JyxcbiAgJzA4OjMwJyxcbiAgJzA4OjQ1JyxcbiAgJzA5OjAwJyxcbiAgJzA5OjE1JyxcbiAgJzA5OjMwJyxcbiAgJzA5OjQ1JyxcblxuICAnMTA6MDAnLFxuICAnMTA6MTUnLFxuICAnMTA6MzAnLFxuICAnMTA6NDUnLFxuICAnMTE6MDAnLFxuICAnMTE6MTUnLFxuICAnMTE6MzAnLFxuICAnMTE6NDUnLFxuXG4gICcxMjowMCcsXG4gICcxMjoxNScsXG4gICcxMjozMCcsXG4gICcxMjo0NScsXG4gICcxMzowMCcsXG4gICcxMzoxNScsXG4gICcxMzozMCcsXG4gICcxMzo0NScsXG5cbiAgJzE0OjAwJyxcbiAgJzE0OjE1JyxcbiAgJzE0OjMwJyxcbiAgJzE0OjQ1JyxcbiAgJzE1OjAwJyxcbiAgJzE1OjE1JyxcbiAgJzE1OjMwJyxcbiAgJzE1OjQ1JyxcblxuICAnMTY6MDAnLFxuICAnMTY6MTUnLFxuICAnMTY6MzAnLFxuICAnMTY6NDUnLFxuICAnMTc6MDAnLFxuICAnMTc6MTUnLFxuICAnMTc6MzAnLFxuICAnMTc6NDUnLFxuXG4gICcxODowMCcsXG4gICcxODoxNScsXG4gICcxODozMCcsXG4gICcxODo0NScsXG4gICcxOTowMCcsXG4gICcxOToxNScsXG4gICcxOTozMCcsXG4gICcxOTo0NScsXG5cbiAgJzIwOjAwJyxcbiAgJzIwOjE1JyxcbiAgJzIwOjMwJyxcbiAgJzIwOjQ1JyxcbiAgJzIxOjAwJyxcbiAgJzIxOjE1JyxcbiAgJzIxOjMwJyxcbiAgJzIxOjQ1JyxcblxuICAnMjI6MDAnLFxuICAnMjI6MTUnLFxuICAnMjI6MzAnLFxuICAnMjI6NDUnLFxuICAnMjM6MDAnLFxuICAnMjM6MTUnLFxuICAnMjM6MzAnLFxuICAnMjM6NDUnLFxuXTtcbmV4cG9ydCBjb25zdCBCZWRyb29tUmFuZ2UgPSBbXG4gIHsgbGFiZWw6ICdObyBtaW4nLCB2YWx1ZTogJzAnIH0sXG4gIHsgbGFiZWw6ICdObyBtYXgnLCB2YWx1ZTogbnVsbCB9LFxuICB7IGxhYmVsOiAnMScsIHZhbHVlOiAnMScgfSxcbiAgeyBsYWJlbDogJzInLCB2YWx1ZTogJzInIH0sXG4gIHsgbGFiZWw6ICczJywgdmFsdWU6ICczJyB9LFxuICB7IGxhYmVsOiAnNCcsIHZhbHVlOiAnNCcgfSxcbiAgeyBsYWJlbDogJzUnLCB2YWx1ZTogJzUnIH0sXG5dO1xuZXhwb3J0IGNvbnN0IFByaWNlUmFuZ2UgPSBbXG4gIHsgbGFiZWw6ICdObyBtaW4nLCB2YWx1ZTogMCB9LFxuICB7IGxhYmVsOiAnTm8gbWF4JywgdmFsdWU6IG51bGwgfSxcbiAgeyBsYWJlbDogJ8KjMTAwIFBDTScsIHZhbHVlOiAxMDAgfSxcbiAgeyBsYWJlbDogJ8KjMTUwIFBDTScsIHZhbHVlOiAxNTAgfSxcbiAgeyBsYWJlbDogJ8KjMjAwIFBDTScsIHZhbHVlOiAyMDAgfSxcbiAgeyBsYWJlbDogJ8KjMjUwIFBDTScsIHZhbHVlOiAyNTAgfSxcbiAgeyBsYWJlbDogJ8KjMzAwIFBDTScsIHZhbHVlOiAzMDAgfSxcbiAgeyBsYWJlbDogJ8KjMzUwIFBDTScsIHZhbHVlOiAzNTAgfSxcbiAgeyBsYWJlbDogJ8KjNDAwIFBDTScsIHZhbHVlOiA0MDAgfSxcbiAgeyBsYWJlbDogJ8KjNDUwIFBDTScsIHZhbHVlOiA0NTAgfSxcbiAgeyBsYWJlbDogJ8KjNTAwIFBDTScsIHZhbHVlOiA1MDAgfSxcbiAgeyBsYWJlbDogJ8KjNjAwIFBDTScsIHZhbHVlOiA2MDAgfSxcbiAgeyBsYWJlbDogJ8KjNzAwIFBDTScsIHZhbHVlOiA3MDAgfSxcbiAgeyBsYWJlbDogJ8KjODAwIFBDTScsIHZhbHVlOiA4MDAgfSxcbiAgeyBsYWJlbDogJ8KjOTAwIFBDTScsIHZhbHVlOiA5MDAgfSxcbiAgeyBsYWJlbDogJ8KjMSwwMDAgUENNJywgdmFsdWU6IDEwMDAgfSxcbiAgeyBsYWJlbDogJ8KjMSwxMDAgUENNJywgdmFsdWU6IDExMDAgfSxcbiAgeyBsYWJlbDogJ8KjMSwyMDAgUENNJywgdmFsdWU6IDEyMDAgfSxcbiAgeyBsYWJlbDogJ8KjMSwyNTAgUENNJywgdmFsdWU6IDEyNTAgfSxcbiAgeyBsYWJlbDogJ8KjMSwzMDAgUENNJywgdmFsdWU6IDEzMDAgfSxcbiAgeyBsYWJlbDogJ8KjMSw0MDAgUENNJywgdmFsdWU6IDE0MDAgfSxcbiAgeyBsYWJlbDogJ8KjMSw1MDAgUENNJywgdmFsdWU6IDE1MDAgfSxcbiAgeyBsYWJlbDogJ8KjMSw3NTAgUENNJywgdmFsdWU6IDE3NTAgfSxcbiAgeyBsYWJlbDogJ8KjMiwwMDAgUENNJywgdmFsdWU6IDIwMDAgfSxcbiAgeyBsYWJlbDogJ8KjMiwyNTAgUENNJywgdmFsdWU6IDIyNTAgfSxcbiAgeyBsYWJlbDogJ8KjMiw1MDAgUENNJywgdmFsdWU6IDI1MDAgfSxcbiAgeyBsYWJlbDogJ8KjMiw3NTAgUENNJywgdmFsdWU6IDI3NTAgfSxcbiAgeyBsYWJlbDogJ8KjMywwMDAgUENNJywgdmFsdWU6IDMwMDAgfSxcbiAgeyBsYWJlbDogJ8KjMyw1MDAgUENNJywgdmFsdWU6IDM1MDAgfSxcbiAgeyBsYWJlbDogJ8KjNCwwMDAgUENNJywgdmFsdWU6IDQwMDAgfSxcbiAgeyBsYWJlbDogJ8KjNCw1MDAgUENNJywgdmFsdWU6IDQ1MDAgfSxcbiAgeyBsYWJlbDogJ8KjNSwwMDAgUENNJywgdmFsdWU6IDUwMDAgfSxcbiAgeyBsYWJlbDogJ8KjNSw1MDAgUENNJywgdmFsdWU6IDU1MDAgfSxcbiAgeyBsYWJlbDogJ8KjNiwwMDAgUENNJywgdmFsdWU6IDYwMDAgfSxcbiAgeyBsYWJlbDogJ8KjNiw1MDAgUENNJywgdmFsdWU6IDY1MDAgfSxcbiAgeyBsYWJlbDogJ8KjNywwMDAgUENNJywgdmFsdWU6IDcwMDAgfSxcbiAgeyBsYWJlbDogJ8KjOCwwMDAgUENNJywgdmFsdWU6IDgwMDAgfSxcbiAgeyBsYWJlbDogJ8KjOSwwMDAgUENNJywgdmFsdWU6IDkwMDAgfSxcbiAgeyBsYWJlbDogJ8KjMTAsMDAwIFBDTScsIHZhbHVlOiAxMDAwMCB9LFxuICB7IGxhYmVsOiAnwqMxMiw1MDAgUENNJywgdmFsdWU6IDEyNTAwIH0sXG4gIHsgbGFiZWw6ICfCozE1LDAwMCBQQ00nLCB2YWx1ZTogMTUwMDAgfSxcbiAgeyBsYWJlbDogJ8KjMTcsNTAwIFBDTScsIHZhbHVlOiAxNzUwMCB9LFxuICB7IGxhYmVsOiAnwqMyMCwwMDAgUENNJywgdmFsdWU6IDIwMDAwIH0sXG4gIHsgbGFiZWw6ICfCozI1LDAwMCBQQ00nLCB2YWx1ZTogMjUwMDAgfSxcbiAgeyBsYWJlbDogJ8KjMzAsMDAwIFBDTScsIHZhbHVlOiAzMDAwMCB9LFxuICB7IGxhYmVsOiAnwqMzNSwwMDAgUENNJywgdmFsdWU6IDM1MDAwIH0sXG4gIHsgbGFiZWw6ICfCozQwLDAwMCBQQ00nLCB2YWx1ZTogNDAwMDAgfSxcbl07XG4iXX0=","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 * 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.3.4\", ngImport: i0, type: PropertyManageItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.toFixed(2) }}</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 }], encapsulation: i0.ViewEncapsulation.None, deferBlockDependencies: [() => [ThumbnailComponent]] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: PropertyManageItemComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-manage-item', imports: [CommonModule, ThumbnailComponent, ImagePlaceholderComponent, MatButtonModule, MatMenuModule], 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.toFixed(2) }}</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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbWFuYWdlLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktbWFuYWdlLWl0ZW0vcHJvcGVydHktbWFuYWdlLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktbWFuYWdlLWl0ZW0vcHJvcGVydHktbWFuYWdlLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdGLE9BQU8sRUFBWSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBUzVELE1BQU0sT0FBTywyQkFBMkI7SUFDYyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ3BFLEVBQUUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEIsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLG1EQUFZLENBQUM7SUFDdEMsU0FBUyxHQUFHLEtBQUssK0RBQUUsQ0FBQztJQUNwQixNQUFNLEdBQUcsY0FBYyxDQUFDO0lBQ3hCLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyx3Q0FBSSxTQUFTLEVBQUUsZ0JBQWdCLE9BQTdCLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLEdBQUMsQ0FBQztJQUNyRDtRQUNFLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO2dCQUNoQixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2pELENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3BELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLEtBQUksQ0FBQztJQUNaLFFBQVEsS0FBSSxDQUFDO0lBQ2IsTUFBTSxLQUFJLENBQUM7dUdBbEJBLDJCQUEyQjsyRkFBM0IsMkJBQTJCLGdqQkNkeEMscWtDQTZCQSw2U0RwQlksWUFBWSw2SEFBc0IseUJBQXlCLHlGQUFFLGVBQWUsOEJBQUUsYUFBYSwrRUFBN0Usa0JBQWtCOzsyRkFLL0IsMkJBQTJCO2tCQVB2QyxTQUFTOytCQUNFLCtCQUErQixXQUNoQyxDQUFDLFlBQVksRUFBRSxrQkFBa0IsRUFBRSx5QkFBeUIsRUFBRSxlQUFlLEVBQUUsYUFBYSxDQUFDLGlCQUd2RixpQkFBaUIsQ0FBQyxJQUFJO3dEQUdlLFFBQVE7c0JBQTNELFdBQVc7dUJBQUMscUNBQXFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYm9vbGVhbkF0dHJpYnV0ZSwgQ29tcG9uZW50LCBlZmZlY3QsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBpbmplY3QsIGlucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBUaHVtYm5haWxDb21wb25lbnQsIEltYWdlUGxhY2Vob2xkZXJDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IFByb3BlcnR5LCBQcm9wZXJ0eVN0YXR1cyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1wcm9wZXJ0eS1tYW5hZ2UtaXRlbScsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRodW1ibmFpbENvbXBvbmVudCwgSW1hZ2VQbGFjZWhvbGRlckNvbXBvbmVudCwgTWF0QnV0dG9uTW9kdWxlLCBNYXRNZW51TW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LW1hbmFnZS1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb3BlcnR5LW1hbmFnZS1pdGVtLmNvbXBvbmVudC5zY3NzJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlNYW5hZ2VJdGVtQ29tcG9uZW50IHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5yb2xhdGVjaC1wcm9wZXJ0eS1tYW5hZ2UtaXRlbScpIGhhc0NsYXNzID0gdHJ1ZTtcbiAgZWwgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHByb3BlcnR5ID0gaW5wdXQucmVxdWlyZWQ8UHJvcGVydHk+KCk7XG4gIHRodW1ibmFpbCA9IGlucHV0KCk7XG4gIHN0YXR1cyA9IFByb3BlcnR5U3RhdHVzO1xuICBsaXN0ID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMubGlzdCgpKSB7XG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2xpc3QnLCAnJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdsaXN0JywgJycpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIHB1Ymxpc2goKSB7fVxuICBhcmNoaXZlZCgpIHt9XG4gIGRlbGV0ZSgpIHt9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiZmxleCBwLTMgYmctWy0tcnQtcmFpc2VkLWJhY2tncm91bmRdIGhvdmVyOmJnLVstLXJ0LXJhaXNlZC1iYWNrZ3JvdW5kXSBjdXJzb3ItcG9pbnRlciByb3VuZGVkLW1kXCJcbiAgW25nQ2xhc3NdPVwibGlzdCgpID8gJ3ctZnVsbCBmbGV4LXJvdycgOiAnZmxleC1jb2wgaC1mdWxsJ1wiXG4+XG4gIDxkaXY+XG4gICAgQGlmIChwcm9wZXJ0eSgpLm1lZGlhKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwib2JqZWN0LWNvdmVyIGFzcGVjdC12aWRlbyByb3VuZGVkLWxnXCIgW25nQ2xhc3NdPVwibGlzdCgpID8gJ3ctMzIgbXItMycgOiAnJ1wiPlxuICAgICAgICBAZGVmZXIge1xuICAgICAgICAgIDxyb2xhdGVjaC10aHVtYm5haWwgW3NyY109XCJwcm9wZXJ0eSgpLm1lZGlhID8gcHJvcGVydHkoKS5tZWRpYVswXS51cmwgOiAnJ1wiIHNpemU9XCJtZWRpdW1cIiBtb2RlPVwiZnVsbFwiPlxuICAgICAgICAgIDwvcm9sYXRlY2gtdGh1bWJuYWlsPlxuICAgICAgICB9IEBwbGFjZWhvbGRlciB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJnLVstLXJ0LXJhaXNlZC1iYWNrZ3JvdW5kXSBoLWZ1bGwgdy1mdWxsIG9iamVjdC1jb3ZlciBhc3BlY3QtdmlkZW8gcm91bmRlZC1sZ1wiPjwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJvYmplY3QtY292ZXIgYXNwZWN0LXZpZGVvIHJvdW5kZWQtbGdcIiBbbmdDbGFzc109XCJsaXN0KCkgPyAndy0zMiBtci0zJyA6ICcnXCI+XG4gICAgICAgIDxyb2xhdGVjaC1pbWFnZS1wbGFjZWhvbGRlcj48L3JvbGF0ZWNoLWltYWdlLXBsYWNlaG9sZGVyPlxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwicHktMlwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxnIGZvbnQtYm9sZFwiPlxuICAgICAge3sgcHJvcGVydHkoKS50aXRsZSB9fVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZsZXgtMVwiPjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiXCI+wqN7eyBwcm9wZXJ0eSgpLnByaWNlLnRvRml4ZWQoMikgfX08L2Rpdj5cbjwvZGl2PlxuIl19","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.3.4\", ngImport: i0, type: PropertyReviewIndexComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.3.4\", 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.3.4\", ngImport: i0, type: PropertyMediaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.3.4\", 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.3.4\", ngImport: i0, type: PropertyFeaturesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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\\\">\\n @for (feature of features(); track feature) {\\n <div class=\\\"flex items-center mr-2\\\">\\n <mat-icon>check</mat-icon>\\n <span>{{ feature.label }}</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.3.4\", 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\\\">\\n @for (feature of features(); track feature) {\\n <div class=\\\"flex items-center mr-2\\\">\\n <mat-icon>check</mat-icon>\\n <span>{{ feature.label }}</span>\\n </div>\\n }\\n </div>\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZmVhdHVyZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktZmVhdHVyZXMvcHJvcGVydHktZmVhdHVyZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktZmVhdHVyZXMvcHJvcGVydHktZmVhdHVyZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBUXZELE1BQU0sT0FBTyx5QkFBeUI7SUFDcEMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLG1EQUFxQixDQUFDO3VHQURwQyx5QkFBeUI7MkZBQXpCLHlCQUF5QixrT0NYdEMsZ1dBV0EseURESlksWUFBWSw4QkFBRSxhQUFhOzsyRkFJMUIseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNFLDRCQUE0QixXQUM3QixDQUFDLFlBQVksRUFBRSxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUHJvcGVydHlGZWF0dXJlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb3BlcnR5LWZlYXR1cmVzJyxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0SWNvbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1mZWF0dXJlcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9wZXJ0eS1mZWF0dXJlcy5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5RmVhdHVyZXNDb21wb25lbnQge1xuICBmZWF0dXJlcyA9IGlucHV0LnJlcXVpcmVkPFByb3BlcnR5RmVhdHVyZVtdPigpO1xufVxuIiwiPGRpdiBjbGFzcz1cIlwiPlxuICA8ZGl2IGNsYXNzPVwidGV4dC0yeGwgZm9udC1ib2xkIHB5LTNcIiBpMThuPkZlYXR1cmVzPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGZsZXgtd3JhcCBpdGVtcy1jZW50ZXJcIj5cbiAgICBAZm9yIChmZWF0dXJlIG9mIGZlYXR1cmVzKCk7IHRyYWNrIGZlYXR1cmUpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBtci0yXCI+XG4gICAgICAgIDxtYXQtaWNvbj5jaGVjazwvbWF0LWljb24+XG4gICAgICAgIDxzcGFuPnt7IGZlYXR1cmUubGFiZWwgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=","// src/app/utils/load-google-maps.ts\nlet mapsLoadingPromise = null;\nexport function loadGoogleMaps({ host = 'https://maps.google.com', key, libraries = [], version = 'weekly', language, region, mapIds, // <-- NEW\nnonceSelector, }) {\n if (typeof window === 'undefined' || typeof document === 'undefined')\n return Promise.resolve();\n if (window.google?.maps)\n return Promise.resolve();\n if (mapsLoadingPromise)\n return mapsLoadingPromise;\n mapsLoadingPromise = new Promise((resolve, reject) => {\n // Define the global callback BEFORE inserting the script\n window.__initMapLoaderCb = () => {\n resolve();\n delete window.__initMapLoaderCb;\n };\n const params = new URLSearchParams();\n params.set('key', key);\n params.set('v', version);\n if (libraries.length)\n params.set('libraries', Array.from(new Set(libraries)).join(','));\n if (language)\n params.set('language', language);\n if (region)\n params.set('region', region);\n if (mapIds?.length)\n params.set('map_ids', Array.from(new Set(mapIds)).join(',')); // <-- NEW\n params.set('loading', 'async');\n params.set('callback', '__initMapLoaderCb');\n const script = document.createElement('script');\n script.async = true;\n script.src = `${host}/maps/api/js?${params.toString()}`;\n if (nonceSelector) {\n const el = document.querySelector(nonceSelector);\n if (el?.nonce)\n script.nonce = el.nonce;\n }\n script.onerror = () => reject(new Error('Maps JS failed to load'));\n document.head.appendChild(script);\n });\n return mapsLoadingPromise;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1nb29nbGUtbWFwcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9jb21wb25lbnRzL3Byb3BlcnR5LWxvY2F0aW9uL2xvYWQtZ29vZ2xlLW1hcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DO0FBQ3BDLElBQUksa0JBQWtCLEdBQXlCLElBQUksQ0FBQztBQW9CcEQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxFQUM3QixJQUFJLEdBQUcseUJBQXlCLEVBQ2hDLEdBQUcsRUFDSCxTQUFTLEdBQUcsRUFBRSxFQUNkLE9BQU8sR0FBRyxRQUFRLEVBQ2xCLFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUFFLFVBQVU7QUFDbEIsYUFBYSxHQUNBO0lBQ2IsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLElBQUksT0FBTyxRQUFRLEtBQUssV0FBVztRQUFFLE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQy9GLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJO1FBQUUsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbEQsSUFBSSxrQkFBa0I7UUFBRSxPQUFPLGtCQUFrQixDQUFDO0lBRWxELGtCQUFrQixHQUFHLElBQUksT0FBTyxDQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ3pELHlEQUF5RDtRQUN6RCxNQUFNLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxFQUFFO1lBQzlCLE9BQU8sRUFBRSxDQUFDO1lBQ1YsT0FBTyxNQUFNLENBQUMsaUJBQWlCLENBQUM7UUFDbEMsQ0FBQyxDQUFDO1FBRUYsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUNyQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN2QixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN6QixJQUFJLFNBQVMsQ0FBQyxNQUFNO1lBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3hGLElBQUksUUFBUTtZQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLElBQUksTUFBTTtZQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3pDLElBQUksTUFBTSxFQUFFLE1BQU07WUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVO1FBQzVGLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQy9CLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFFNUMsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNwQixNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxnQkFBZ0IsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7UUFFeEQsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNsQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFvQixhQUFhLENBQUMsQ0FBQztZQUNwRSxJQUFJLEVBQUUsRUFBRSxLQUFLO2dCQUFFLE1BQU0sQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQztRQUN6QyxDQUFDO1FBRUQsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDO1FBQ25FLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxrQkFBa0IsQ0FBQztBQUM1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gc3JjL2FwcC91dGlscy9sb2FkLWdvb2dsZS1tYXBzLnRzXG5sZXQgbWFwc0xvYWRpbmdQcm9taXNlOiBQcm9taXNlPHZvaWQ+IHwgbnVsbCA9IG51bGw7XG5cbnR5cGUgTG9hZE1hcHNPcHRzID0ge1xuICBob3N0Pzogc3RyaW5nOyAvLyBkZWZhdWx0OiB5b3VyIHByb3h5IGhvc3RcbiAga2V5OiBzdHJpbmc7IC8vIEJyb3dzZXIgQVBJIGtleVxuICBsaWJyYXJpZXM/OiBzdHJpbmdbXTsgLy8gZS5nLiBbJ21hcmtlcicsJ3BsYWNlcyddXG4gIHZlcnNpb24/OiBzdHJpbmc7IC8vIGUuZy4gJ3dlZWtseSdcbiAgbGFuZ3VhZ2U/OiBzdHJpbmc7IC8vIGUuZy4gJ2VuLUdCJ1xuICByZWdpb24/OiBzdHJpbmc7IC8vIGUuZy4gJ0dCJ1xuICBtYXBJZHM/OiBzdHJpbmdbXTsgLy8gPC0tIE5FVzogSlMgTWFwIElEcyB0byBwcmVsb2FkIChjb21tYS1zZXBhcmF0ZWQpXG4gIG5vbmNlU2VsZWN0b3I/OiBzdHJpbmc7IC8vIHNlbGVjdG9yIHRvIGNvcHkgQ1NQIG5vbmNlIGZyb21cbn07XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIFdpbmRvdyB7XG4gICAgZ29vZ2xlOiBhbnk7XG4gICAgX19pbml0TWFwTG9hZGVyQ2I/OiAoKSA9PiB2b2lkO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkR29vZ2xlTWFwcyh7XG4gIGhvc3QgPSAnaHR0cHM6Ly9tYXBzLmdvb2dsZS5jb20nLFxuICBrZXksXG4gIGxpYnJhcmllcyA9IFtdLFxuICB2ZXJzaW9uID0gJ3dlZWtseScsXG4gIGxhbmd1YWdlLFxuICByZWdpb24sXG4gIG1hcElkcywgLy8gPC0tIE5FV1xuICBub25jZVNlbGVjdG9yLFxufTogTG9hZE1hcHNPcHRzKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCB0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIGlmICh3aW5kb3cuZ29vZ2xlPy5tYXBzKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIGlmIChtYXBzTG9hZGluZ1Byb21pc2UpIHJldHVybiBtYXBzTG9hZGluZ1Byb21pc2U7XG5cbiAgbWFwc0xvYWRpbmdQcm9taXNlID0gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIC8vIERlZmluZSB0aGUgZ2xvYmFsIGNhbGxiYWNrIEJFRk9SRSBpbnNlcnRpbmcgdGhlIHNjcmlwdFxuICAgIHdpbmRvdy5fX2luaXRNYXBMb2FkZXJDYiA9ICgpID0+IHtcbiAgICAgIHJlc29sdmUoKTtcbiAgICAgIGRlbGV0ZSB3aW5kb3cuX19pbml0TWFwTG9hZGVyQ2I7XG4gICAgfTtcblxuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICBwYXJhbXMuc2V0KCdrZXknLCBrZXkpO1xuICAgIHBhcmFtcy5zZXQoJ3YnLCB2ZXJzaW9uKTtcbiAgICBpZiAobGlicmFyaWVzLmxlbmd0aCkgcGFyYW1zLnNldCgnbGlicmFyaWVzJywgQXJyYXkuZnJvbShuZXcgU2V0KGxpYnJhcmllcykpLmpvaW4oJywnKSk7XG4gICAgaWYgKGxhbmd1YWdlKSBwYXJhbXMuc2V0KCdsYW5ndWFnZScsIGxhbmd1YWdlKTtcbiAgICBpZiAocmVnaW9uKSBwYXJhbXMuc2V0KCdyZWdpb24nLCByZWdpb24pO1xuICAgIGlmIChtYXBJZHM/Lmxlbmd0aCkgcGFyYW1zLnNldCgnbWFwX2lkcycsIEFycmF5LmZyb20obmV3IFNldChtYXBJZHMpKS5qb2luKCcsJykpOyAvLyA8LS0gTkVXXG4gICAgcGFyYW1zLnNldCgnbG9hZGluZycsICdhc3luYycpO1xuICAgIHBhcmFtcy5zZXQoJ2NhbGxiYWNrJywgJ19faW5pdE1hcExvYWRlckNiJyk7XG5cbiAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICBzY3JpcHQuYXN5bmMgPSB0cnVlO1xuICAgIHNjcmlwdC5zcmMgPSBgJHtob3N0fS9tYXBzL2FwaS9qcz8ke3BhcmFtcy50b1N0cmluZygpfWA7XG5cbiAgICBpZiAobm9uY2VTZWxlY3Rvcikge1xuICAgICAgY29uc3QgZWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yPEhUTUxTY3JpcHRFbGVtZW50Pihub25jZVNlbGVjdG9yKTtcbiAgICAgIGlmIChlbD8ubm9uY2UpIHNjcmlwdC5ub25jZSA9IGVsLm5vbmNlO1xuICAgIH1cblxuICAgIHNjcmlwdC5vbmVycm9yID0gKCkgPT4gcmVqZWN0KG5ldyBFcnJvcignTWFwcyBKUyBmYWlsZWQgdG8gbG9hZCcpKTtcbiAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdCk7XG4gIH0pO1xuXG4gIHJldHVybiBtYXBzTG9hZGluZ1Byb21pc2U7XG59XG4iXX0=","import { Component, inject, input, PLATFORM_ID, viewChild } from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { loadGoogleMaps } from './load-google-maps';\nimport { APP_CONFIG } from '@rolatech/angular-common';\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 environment = inject(APP_CONFIG);\n async ngOnInit() {\n if (!isPlatformBrowser(this.platformId))\n return;\n await loadGoogleMaps({\n host: this.environment.mapsUrl,\n key: 'AIzaSyAeV09t2sHyceSpInkj63wl5t1rM_YV78M',\n libraries: ['marker', 'places'],\n language: 'en-GB',\n region: 'GB',\n mapIds: ['6a8f7b7d56282c69'],\n });\n const { Map } = (await google.maps.importLibrary('maps'));\n const { AdvancedMarkerElement } = (await google.maps.importLibrary('marker'));\n const center = {\n lat: parseFloat(this.location().latitude) || 51.509865,\n lng: parseFloat(this.location().longitude) || -0.118092,\n };\n const options = {\n mapId: '6a8f7b7d56282c69',\n center: center,\n zoom: 15,\n };\n const map = new Map(this.mapElementRef().nativeElement, options);\n new AdvancedMarkerElement({ map, position: map.getCenter() });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: PropertyLocationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.3.4\", 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 </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 }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: PropertyLocationComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-location', imports: [CommonModule], 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 </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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbG9jYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktbG9jYXRpb24vcHJvcGVydHktbG9jYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktbG9jYXRpb24vcHJvcGVydHktbG9jYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLEVBQUUsS0FBSyxFQUFVLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBUXRELE1BQU0sT0FBTyx5QkFBeUI7SUFDcEMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNqQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsbURBQW9CLENBQUM7SUFDOUMsYUFBYSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQWEsWUFBWSxDQUFDLENBQUM7SUFDN0QsV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVqQyxLQUFLLENBQUMsUUFBUTtRQUNaLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQUUsT0FBTztRQUVoRCxNQUFNLGNBQWMsQ0FBQztZQUNuQixJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPO1lBQzlCLEdBQUcsRUFBRSx5Q0FBeUM7WUFDOUMsU0FBUyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQztZQUMvQixRQUFRLEVBQUUsT0FBTztZQUNqQixNQUFNLEVBQUUsSUFBSTtZQUNaLE1BQU0sRUFBRSxDQUFDLGtCQUFrQixDQUFDO1NBQzdCLENBQUMsQ0FBQztRQUVILE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQTRCLENBQUM7UUFDckYsTUFBTSxFQUFFLHFCQUFxQixFQUFFLEdBQUcsQ0FBQyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUE4QixDQUFDO1FBRTNHLE1BQU0sTUFBTSxHQUFHO1lBQ2IsR0FBRyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksU0FBUztZQUN0RCxHQUFHLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVE7U0FDeEQsQ0FBQztRQUNGLE1BQU0sT0FBTyxHQUEyQjtZQUN0QyxLQUFLLEVBQUUsa0JBQWtCO1lBQ3pCLE1BQU0sRUFBRSxNQUFNO1lBQ2QsSUFBSSxFQUFFLEVBQUU7U0FDVCxDQUFDO1FBQ0YsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNqRSxJQUFJLHFCQUFxQixDQUFDLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7dUdBaENVLHlCQUF5QjsyRkFBekIseUJBQXlCLCtWQ1p0Qyw0T0FRQSxnU0RBWSxZQUFZOzsyRkFJWCx5QkFBeUI7a0JBTnJDLFNBQVM7K0JBQ0UsNEJBQTRCLFdBQzdCLENBQUMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBpbmplY3QsIGlucHV0LCBPbkluaXQsIFBMQVRGT1JNX0lELCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUHJvcGVydHlMb2NhdGlvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgbG9hZEdvb2dsZU1hcHMgfSBmcm9tICcuL2xvYWQtZ29vZ2xlLW1hcHMnO1xuaW1wb3J0IHsgQVBQX0NPTkZJRyB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb3BlcnR5LWxvY2F0aW9uJyxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1sb2NhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9wZXJ0eS1sb2NhdGlvbi5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5TG9jYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgbG9jYXRpb24gPSBpbnB1dC5yZXF1aXJlZDxQcm9wZXJ0eUxvY2F0aW9uPigpO1xuICBtYXBFbGVtZW50UmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY+KCdtYXBFbGVtZW50Jyk7XG4gIGVudmlyb25tZW50ID0gaW5qZWN0KEFQUF9DT05GSUcpO1xuXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuXG4gICAgYXdhaXQgbG9hZEdvb2dsZU1hcHMoe1xuICAgICAgaG9zdDogdGhpcy5lbnZpcm9ubWVudC5tYXBzVXJsLFxuICAgICAga2V5OiAnQUl6YVN5QWVWMDl0MnNIeWNlU3BJbmtqNjN3bDV0MXJNX1lWNzhNJyxcbiAgICAgIGxpYnJhcmllczogWydtYXJrZXInLCAncGxhY2VzJ10sXG4gICAgICBsYW5ndWFnZTogJ2VuLUdCJyxcbiAgICAgIHJlZ2lvbjogJ0dCJyxcbiAgICAgIG1hcElkczogWyc2YThmN2I3ZDU2MjgyYzY5J10sXG4gICAgfSk7XG5cbiAgICBjb25zdCB7IE1hcCB9ID0gKGF3YWl0IGdvb2dsZS5tYXBzLmltcG9ydExpYnJhcnkoJ21hcHMnKSkgYXMgZ29vZ2xlLm1hcHMuTWFwc0xpYnJhcnk7XG4gICAgY29uc3QgeyBBZHZhbmNlZE1hcmtlckVsZW1lbnQgfSA9IChhd2FpdCBnb29nbGUubWFwcy5pbXBvcnRMaWJyYXJ5KCdtYXJrZXInKSkgYXMgZ29vZ2xlLm1hcHMuTWFya2VyTGlicmFyeTtcblxuICAgIGNvbnN0IGNlbnRlciA9IHtcbiAgICAgIGxhdDogcGFyc2VGbG9hdCh0aGlzLmxvY2F0aW9uKCkubGF0aXR1ZGUpIHx8IDUxLjUwOTg2NSxcbiAgICAgIGxuZzogcGFyc2VGbG9hdCh0aGlzLmxvY2F0aW9uKCkubG9uZ2l0dWRlKSB8fCAtMC4xMTgwOTIsXG4gICAgfTtcbiAgICBjb25zdCBvcHRpb25zOiBnb29nbGUubWFwcy5NYXBPcHRpb25zID0ge1xuICAgICAgbWFwSWQ6ICc2YThmN2I3ZDU2MjgyYzY5JyxcbiAgICAgIGNlbnRlcjogY2VudGVyLFxuICAgICAgem9vbTogMTUsXG4gICAgfTtcbiAgICBjb25zdCBtYXAgPSBuZXcgTWFwKHRoaXMubWFwRWxlbWVudFJlZigpLm5hdGl2ZUVsZW1lbnQsIG9wdGlvbnMpO1xuICAgIG5ldyBBZHZhbmNlZE1hcmtlckVsZW1lbnQoeyBtYXAsIHBvc2l0aW9uOiBtYXAuZ2V0Q2VudGVyKCkgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJcIj5cbiAgPGRpdiBjbGFzcz1cInRleHQtMnhsIGZvbnQtYm9sZCBweS00XCIgaTE4bj5Mb2NhdGlvbjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiYmctWy0tcnQtcmFpc2VkLWJhY2tncm91bmRdXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1hcC1jb250YWluZXJcIj5cbiAgICAgIDxkaXYgI21hcEVsZW1lbnQgaWQ9XCJtYXBcIj48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==","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.3.4\", ngImport: i0, type: PropertyOwnerRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.3.4\", 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.3.4\", ngImport: i0, type: PropertyAgentUpdate, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.3.4\", 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 { 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.3.4\", ngImport: i0, type: PropertyReviewDetailComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.toFixed(2) }}</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\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: PropertyReviewDetailComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-review-detail', imports: [\n CommonModule,\n ToolbarComponent,\n RichLabelComponent,\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.toFixed(2) }}</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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktcmV2aWV3LWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktcmV2aWV3L3Byb3BlcnR5LXJldmlldy1kZXRhaWwvcHJvcGVydHktcmV2aWV3LWRldGFpbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktcmV2aWV3L3Byb3BlcnR5LXJldmlldy1kZXRhaWwvcHJvcGVydHktcmV2aWV3LWRldGFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixhQUFhLEVBQ2IscUJBQXFCLEVBQ3JCLGtCQUFrQixFQUNsQixnQkFBZ0IsR0FDakIsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUNyRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQztBQUM5RyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQztBQUM5RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sK0VBQStFLENBQUM7QUFDL0gsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUVBQWlFLENBQUM7OztBQWlCdEcsTUFBTSxPQUFPLDZCQUE4QixTQUFRLGFBQWE7SUFDOUQsZUFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMxQyxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzFDLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDbEIsUUFBUSxDQUFNO0lBQ2QsSUFBSSxDQUFNO0lBQ1YsS0FBSyxDQUFNO0lBQ1gsTUFBTSxHQUFHLGNBQWMsQ0FBQztJQUN4QixRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUMxQyxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO2dCQUN6QixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ3pCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMvQyxDQUFDO2dCQUNELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDMUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ2pELENBQUM7WUFDSCxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGlCQUFpQixDQUFDLE1BQWM7UUFDOUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDdkQsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7Z0JBQ2hCLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztZQUMvQixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGtCQUFrQixDQUFDLE9BQWU7UUFDaEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDeEQsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7WUFDbkIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPO1FBQ0wsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDeEQsS0FBSyxFQUFFLE9BQU87WUFDZCxJQUFJLEVBQUU7Z0JBQ0osS0FBSyxFQUFFLFNBQVM7Z0JBQ2hCLE9BQU8sRUFBRSx3QkFBd0I7YUFDbEM7U0FDRixDQUFDLENBQUM7UUFDSCxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDM0MsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDWCxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDO29CQUNwRCxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTt3QkFDWixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUM7d0JBQ2hDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUN4QyxDQUFDO29CQUNELEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO3dCQUNYLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDdkMsQ0FBQztpQkFDRixDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsTUFBTTtRQUNKLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQ3hELEtBQUssRUFBRSxPQUFPO1lBQ2QsSUFBSSxFQUFFO2dCQUNKLE9BQU8sRUFBRSxFQUFFO2FBQ1o7U0FDRixDQUFDLENBQUM7UUFDSCxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDM0MsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDWCxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQztvQkFDM0QsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7d0JBQ1osSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQ3hDLENBQUM7b0JBQ0QsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7d0JBQ1gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUN2QyxDQUFDO2lCQUNGLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxXQUFXO1FBQ1QsTUFBTSxPQUFPLEdBQUc7WUFDZCxLQUFLLEVBQUUsY0FBYztZQUNyQixVQUFVLEVBQUUsUUFBUTtZQUNwQixXQUFXLEVBQUUsU0FBUztZQUN0QixTQUFTLEVBQUUsbUJBQW1CO1lBQzlCLElBQUksRUFBRTtnQkFDSixNQUFNLEVBQUUsRUFBRTthQUNYO1lBQ0QsS0FBSyxFQUFFLE9BQU87U0FDZixDQUFDO1FBRUYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxTQUFTLENBQUM7WUFDdkMsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxHQUFHLEVBQUUsQ0FBQztvQkFDUixJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDO3dCQUNuRSxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTs0QkFDakIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQzs0QkFDakIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7d0JBQzVDLENBQUM7cUJBQ0YsQ0FBQyxDQUFDO2dCQUNMLENBQUM7WUFDSCxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0ExR1UsNkJBQTZCOzJGQUE3Qiw2QkFBNkIsa0hDbEMxQyw4NEZBZ0VBLHlERDFDSSxZQUFZLCtCQUNaLGdCQUFnQixnSUFDaEIsa0JBQWtCLDRGQUNsQixzQkFBc0IsOEZBQ3RCLHlCQUF5Qiw2RkFDekIseUJBQXlCLDRGQUN6QixlQUFlLG9YQUNmLDhCQUE4Qjs7MkZBS3JCLDZCQUE2QjtrQkFmekMsU0FBUzsrQkFDRSxpQ0FBaUMsV0FDbEM7d0JBQ1AsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsc0JBQXNCO3dCQUN0Qix5QkFBeUI7d0JBQ3pCLHlCQUF5Qjt3QkFDekIsZUFBZTt3QkFDZiw4QkFBOEI7cUJBQy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFjY2VwdERpYWxvZ0NvbXBvbmVudCxcbiAgQmFzZUNvbXBvbmVudCxcbiAgUmVqZWN0RGlhbG9nQ29tcG9uZW50LFxuICBSaWNoTGFiZWxDb21wb25lbnQsXG4gIFRvb2xiYXJDb21wb25lbnQsXG59IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgUHJvcGVydHlTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItc2VydmljZXMnO1xuaW1wb3J0IHsgUHJvcGVydHlTdGF0dXMgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEF1dGhVc2VyU2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWF1dGgnO1xuaW1wb3J0IHsgUHJvcGVydHlNZWRpYUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvcHJvcGVydHktbWVkaWEvcHJvcGVydHktbWVkaWEuY29tcG9uZW50JztcbmltcG9ydCB7IFByb3BlcnR5RmVhdHVyZXNDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL3Byb3BlcnR5LWZlYXR1cmVzL3Byb3BlcnR5LWZlYXR1cmVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9wZXJ0eUxvY2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9wcm9wZXJ0eS1sb2NhdGlvbi9wcm9wZXJ0eS1sb2NhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IFByb3BlcnR5T3duZXJSZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvcHJvcGVydHktb3duZXItcmVuZGVyZXIvcHJvcGVydHktb3duZXItcmVuZGVyZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFByb3BlcnR5QWdlbnRVcGRhdGUgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL3Byb3BlcnR5LWFnZW50LXVwZGF0ZS9wcm9wZXJ0eS1hZ2VudC11cGRhdGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1wcm9wZXJ0eS1yZXZpZXctZGV0YWlsJyxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBUb29sYmFyQ29tcG9uZW50LFxuICAgIFJpY2hMYWJlbENvbXBvbmVudCxcbiAgICBQcm9wZXJ0eU1lZGlhQ29tcG9uZW50LFxuICAgIFByb3BlcnR5RmVhdHVyZXNDb21wb25lbnQsXG4gICAgUHJvcGVydHlMb2NhdGlvbkNvbXBvbmVudCxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgUHJvcGVydHlPd25lclJlbmRlcmVyQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydHktcmV2aWV3LWRldGFpbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9wZXJ0eS1yZXZpZXctZGV0YWlsLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlSZXZpZXdEZXRhaWxDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJvcGVydHlTZXJ2aWNlID0gaW5qZWN0KFByb3BlcnR5U2VydmljZSk7XG4gIGF1dGhVc2VyU2VydmljZSA9IGluamVjdChBdXRoVXNlclNlcnZpY2UpO1xuICB1c2VyRnVsbE5hbWUgPSAnJztcbiAgcHJvcGVydHk6IGFueTtcbiAgdXNlcjogYW55O1xuICBhZ2VudDogYW55O1xuICBzdGF0dXMgPSBQcm9wZXJ0eVN0YXR1cztcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5nZXRQcm9wZXJ0eSgpO1xuICB9XG4gIGdldFByb3BlcnR5KCkge1xuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmdldCh0aGlzLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMucHJvcGVydHkgPSByZXMuZGF0YTtcbiAgICAgICAgaWYgKHRoaXMucHJvcGVydHkudXNlcklkKSB7XG4gICAgICAgICAgdGhpcy5nZXRVc2VyUHVibGljSW5mbyh0aGlzLnByb3BlcnR5LnVzZXJJZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucHJvcGVydHkuYWdlbnRJZCkge1xuICAgICAgICAgIHRoaXMuZ2V0QWdlbnRQdWJsaWNJbmZvKHRoaXMucHJvcGVydHkuYWdlbnRJZCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgZ2V0VXNlclB1YmxpY0luZm8odXNlcklkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmF1dGhVc2VyU2VydmljZS5nZXRQdWJsaWNVc2VySW5mbyh1c2VySWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMudXNlciA9IHJlcztcbiAgICAgICAgdGhpcy51c2VyRnVsbE5hbWUgPSByZXMubmFtZTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgZ2V0QWdlbnRQdWJsaWNJbmZvKGFnZW50SWQ6IHN0cmluZykge1xuICAgIHRoaXMuYXV0aFVzZXJTZXJ2aWNlLmdldFB1YmxpY1VzZXJJbmZvKGFnZW50SWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuYWdlbnQgPSByZXM7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGFwcHJvdmUoKSB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihBY2NlcHREaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiAnNDAwcHgnLFxuICAgICAgZGF0YToge1xuICAgICAgICB0aXRsZTogJ0FwcHJvdmUnLFxuICAgICAgICBtZXNzYWdlOiAnQXBwcm92ZSB0aGlzIHByb3BlcnR5PycsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLnJldmlld0FwcHJvdmUodGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnByb3BlcnR5LnN0YXR1cyA9ICdBQ1RJVkUnO1xuICAgICAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbignQXBwcm92ZWQnKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yOiAoZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbihlLm1lc3NhZ2UpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIHJlamVjdCgpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFJlamVjdERpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgd2lkdGg6ICc0MDBweCcsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGNvbnRlbnQ6ICcnLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICB0aGlzLnByb3BlcnR5U2VydmljZS5yZXZpZXdSZWplY3QodGhpcy5pZCwgcmVzdWx0KS5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oJ1JlamVjdGVkJyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvcjogKGUpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oZS5tZXNzYWdlKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICB1cGRhdGVBZ2VudCgpIHtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgdGl0bGU6ICdVcGRhdGUgYWdlbnQnLFxuICAgICAgY2FuY2VsVGV4dDogJ0NhbmNlbCcsXG4gICAgICBjb25maXJtVGV4dDogJ0NvbmZpcm0nLFxuICAgICAgY29tcG9uZW50OiBQcm9wZXJ0eUFnZW50VXBkYXRlLFxuICAgICAgZGF0YToge1xuICAgICAgICBhZ2VudHM6IHt9LFxuICAgICAgfSxcbiAgICAgIHdpZHRoOiAnNTk5cHgnLFxuICAgIH07XG5cbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbihvcHRpb25zKTtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuY29uZmlybWVkKCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLnVwZGF0ZUFnZW50KHRoaXMuaWQsIHsgdXNlcklkOiByZXMgfSkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXMpO1xuICAgICAgICAgICAgICB0aGlzLmdldEFnZW50UHVibGljSW5mbyhyZXMuZGF0YS5hZ2VudElkKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiIsIkBpZiAocHJvcGVydHkpIHtcbiAgPHJvbGF0ZWNoLXRvb2xiYXIgW3RpdGxlXT1cInN0YXR1c1twcm9wZXJ0eS5zdGF0dXNdXCIgbGFyZ2UgbGluaz1cIi4uLy4uL1wiPlxuICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIChjbGljayk9XCJhcHByb3ZlKClcIiBpMThuPkFwcHJvdmU8L2J1dHRvbj5cbiAgICA8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT1cInJlamVjdCgpXCIgaTE4bj5SZWplY3Q8L2J1dHRvbj5cbiAgPC9yb2xhdGVjaC10b29sYmFyPlxuICA8ZGl2IGNsYXNzPVwicHgtNFwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IG1iLTMyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIG1kOnctMi8zIHAtM1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZyBmb250LWJvbGQgcHktMlwiPnt7IHByb3BlcnR5LnRpdGxlIH19PC9kaXY+XG4gICAgICAgIDxociBjbGFzcz1cIm1iLTJcIiAvPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgcHktMlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IHctZnVsbCBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiB3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5saW5lLWZsZXggZ2FwLTFcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXItMVwiPnt7IHByb3BlcnR5LmJlZHJvb21zIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBpMThuPkJlZHJvb21zPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yLTFcIj57eyBwcm9wZXJ0eS5iYXRocm9vbXMgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGkxOG4+QmF0aHJvb21zPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yLTFcIj57eyBwcm9wZXJ0eS5yZWNlcHRpb25zIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBpMThuPlJlY2VwdGlvbnM8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc21cIj7Co3t7IHByb3BlcnR5LnByaWNlLnRvRml4ZWQoMikgfX08L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+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.3.4\", ngImport: i0, type: FeatureManageItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.3.4\", 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.3.4\", 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.3.4\", ngImport: i0, type: FeatureManageItemAddComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.3.4\", 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.findUserFeatures();\n }\n findUserFeatures() {\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.3.4\", ngImport: i0, type: FeatureManageIndexComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.3.4\", 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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LDJCQUEyQix3VkNyQ3hDLDYxQkEyQkEsMEZETkksZ0JBQWdCLDhCQUNoQixXQUFXLDhCQUNYLGtCQUFrQiw4QkFDbEIsY0FBYyw4QkFDZCxhQUFhLG1MQUNiLHFCQUFxQiw4QkFDckIsbUJBQW1CLDhCQUNuQixlQUFlLG1YQUNmLGVBQWUsK0JBQ2YsZ0JBQWdCLGdJQUNoQiwwQkFBMEIsbUlBQzFCLDZCQUE2Qjs7MkZBS3BCLDJCQUEyQjtrQkFuQnZDLFNBQVM7K0JBQ0UsK0JBQStCLFdBQ2hDO3dCQUNQLGdCQUFnQjt3QkFDaEIsV0FBVzt3QkFDWCxrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixxQkFBcUI7d0JBQ3JCLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsMEJBQTBCO3dCQUMxQiw2QkFBNkI7cUJBQzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBpbmplY3QsIE9uSW5pdCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCwgQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50LCBUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdENoaXBzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvZmVhdHVyZSc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRU5URVIsIENPTU1BIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZSwgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLCBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IE1hdE9wdGlvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgZmluZEluZGV4IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcbmltcG9ydCB7IEZlYXR1cmVTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItc2VydmljZXMnO1xuaW1wb3J0IHsgRmVhdHVyZU1hbmFnZUl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2ZlYXR1cmUtbWFuYWdlLWl0ZW0vZmVhdHVyZS1tYW5hZ2UtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmVhdHVyZU1hbmFnZUl0ZW1BZGRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2ZlYXR1cmUtbWFuYWdlLWl0ZW0tYWRkL2ZlYXR1cmUtbWFuYWdlLWl0ZW0tYWRkLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWZlYXR1cmUtbWFuYWdlLWluZGV4JyxcbiAgaW1wb3J0czogW1xuICAgIE1hdERpdmlkZXJNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdENoaXBzTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdE9wdGlvbk1vZHVsZSxcbiAgICBUb29sYmFyQ29tcG9uZW50LFxuICAgIEZlYXR1cmVNYW5hZ2VJdGVtQ29tcG9uZW50LFxuICAgIEZlYXR1cmVNYW5hZ2VJdGVtQWRkQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vZmVhdHVyZS1tYW5hZ2UtaW5kZXguY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZmVhdHVyZS1tYW5hZ2UtaW5kZXguY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBGZWF0dXJlTWFuYWdlSW5kZXhDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgZmVhdHVyZVNlcnZpY2UgPSBpbmplY3QoRmVhdHVyZVNlcnZpY2UpO1xuICBmZWF0dXJlczogRmVhdHVyZVtdID0gW107XG4gIHNlbGVjdGVkRmVhdHVyZXM6IEZlYXR1cmVbXSA9IFtdO1xuICBmaWx0ZXJlZEZlYXR1cmVzITogT2JzZXJ2YWJsZTxzdHJpbmdbXT47XG4gIGFkZE9uQmx1ciA9IHRydWU7XG4gIGFkZCA9IGZhbHNlO1xuICBwcml2YXRlIGFsbG93RnJlZVRleHRBZGRGZWF0dXJlID0gZmFsc2U7XG4gIHB1YmxpYyBmZWF0dXJlQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICByZWFkb25seSBzZXBhcmF0b3JLZXlzQ29kZXM6IG51bWJlcltdID0gW0VOVEVSLCBDT01NQV07XG4gIGZlYXR1cmVJbnB1dCA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+PignZmVhdHVyZUlucHV0Jyk7XG4gIG1hdEF1dG9jb21wbGV0ZSA9IHZpZXdDaGlsZDxNYXRBdXRvY29tcGxldGU+KCdhdXRvJyk7XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZmluZFVzZXJGZWF0dXJlcygpO1xuICB9XG4gIGZpbmRVc2VyRmVhdHVyZXMoKSB7XG4gICAgdGhpcy5mZWF0dXJlU2VydmljZS5maW5kKHt9KS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuZmVhdHVyZXMgPSByZXMuZGF0YSB8fCBbXTtcbiAgICAgICAgdGhpcy5maWx0ZXJlZEZlYXR1cmVzID0gdGhpcy5mZWF0dXJlQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICBzdGFydFdpdGgobnVsbCksXG4gICAgICAgICAgbWFwKChmZWF0dXJlTmFtZSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyT25JbnB1dENoYW5nZShmZWF0dXJlTmFtZSk7XG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIHNhdmVGZWF0dXJlKGZlYXR1cmU6IEZlYXR1cmUpIHtcbiAgICBjb25zb2xlLmxvZyhmZWF0dXJlKTtcbiAgICB0aGlzLmZlYXR1cmVTZXJ2aWNlLmFkZEZlYXR1cmUoZmVhdHVyZSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+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.3.4\", ngImport: i0, type: FeatureManageDetailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.4\", 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.3.4\", 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 { 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.toFixed(2);\n }, ...(ngDevMode ? [{ debugName: \"total\" }] : []));\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: PropertyOfferItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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 @if (offer().item) {\\n <div class=\\\"flex flex-row py-2\\\">\\n @if (offer().item.media) {\\n <div class=\\\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\\\">\\n @defer {\\n <rolatech-thumbnail [src]=\\\"offer().item.media ? offer().item.media[0].url : ''\\\" size=\\\"medium\\\" mode=\\\"clip\\\">\\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=\\\"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 class=\\\"font-bold\\\">{{ offer().item.title }}</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.amount.toFixed(2) }}</div>\\n </div>\\n </div>\\n </div>\\n </div>\\n }\\n </div>\\n</div>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: ImagePlaceholderComponent, selector: \"rolatech-image-placeholder\", inputs: [\"ratio\"] }], deferBlockDependencies: [() => [ThumbnailComponent]] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: PropertyOfferItemComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-offer-item', imports: [MatIconModule, ThumbnailComponent, ImagePlaceholderComponent], 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 @if (offer().item) {\\n <div class=\\\"flex flex-row py-2\\\">\\n @if (offer().item.media) {\\n <div class=\\\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\\\">\\n @defer {\\n <rolatech-thumbnail [src]=\\\"offer().item.media ? offer().item.media[0].url : ''\\\" size=\\\"medium\\\" mode=\\\"clip\\\">\\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=\\\"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 class=\\\"font-bold\\\">{{ offer().item.title }}</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.amount.toFixed(2) }}</div>\\n </div>\\n </div>\\n </div>\\n </div>\\n }\\n </div>\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktb2ZmZXItaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvY29tcG9uZW50cy9wcm9wZXJ0eS1vZmZlci1pdGVtL3Byb3BlcnR5LW9mZmVyLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktb2ZmZXItaXRlbS9wcm9wZXJ0eS1vZmZlci1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQWlCLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQVE3RixNQUFNLE9BQU8sMEJBQTBCO0lBQ3JDLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxnREFBaUIsQ0FBQztJQUN4QyxNQUFNLEdBQVEsbUJBQW1CLENBQUM7SUFDbEMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDcEIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QyxDQUFDLGlEQUFDLENBQUM7dUdBTFEsMEJBQTBCOzJGQUExQiwwQkFBMEIsMk5DWHZDLHFtRUFvREEseUREN0NZLGFBQWEsK0JBQXNCLHlCQUF5QixnR0FBN0Msa0JBQWtCOzsyRkFJaEMsMEJBQTBCO2tCQU50QyxTQUFTOytCQUNFLDhCQUE4QixXQUMvQixDQUFDLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcm9wZXJ0eU9mZmVyLCBQcm9wZXJ0eU9mZmVyU3RhdHVzIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBUaHVtYm5haWxDb21wb25lbnQsIEltYWdlUGxhY2Vob2xkZXJDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvcGVydHktb2ZmZXItaXRlbScsXG4gIGltcG9ydHM6IFtNYXRJY29uTW9kdWxlLCBUaHVtYm5haWxDb21wb25lbnQsIEltYWdlUGxhY2Vob2xkZXJDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydHktb2ZmZXItaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9wZXJ0eS1vZmZlci1pdGVtLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlPZmZlckl0ZW1Db21wb25lbnQge1xuICBvZmZlciA9IGlucHV0LnJlcXVpcmVkPFByb3BlcnR5T2ZmZXI+KCk7XG4gIHN0YXR1czogYW55ID0gUHJvcGVydHlPZmZlclN0YXR1cztcbiAgdG90YWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMub2ZmZXIoKS5hbW91bnQudG9GaXhlZCgyKTtcbiAgfSk7XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBob3ZlcjpiZy1bLS1ydC1yYWlzZWQtYmFja2dyb3VuZF0gY3Vyc29yLXBvaW50ZXIgcC0zXCI+XG4gIDxkaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIHctZnVsbCBtYi0yXCI+XG4gICAgICA8YSBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0zXCI+XG4gICAgICAgIDxzcGFuPk9mZmVyIElEOiB7eyBvZmZlcigpLmlkIH19PC9zcGFuPlxuICAgICAgPC9hPlxuICAgICAgPHNwYW4gY2xhc3M9XCJmb250LW1lZGl1bSB0ZXh0LXNtXCI+e3sgc3RhdHVzW29mZmVyKCkuc3RhdHVzXSB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICBAaWYgKG9mZmVyKCkuaXRlbSkge1xuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgcHktMlwiPlxuICAgICAgICBAaWYgKG9mZmVyKCkuaXRlbS5tZWRpYSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaW4tdy0yNCB3LTM2IG9iamVjdC1jb3ZlciBhc3BlY3QtdmlkZW8gcm91bmRlZC1sZyBtci0zXCI+XG4gICAgICAgICAgICBAZGVmZXIge1xuICAgICAgICAgICAgICA8cm9sYXRlY2gtdGh1bWJuYWlsIFtzcmNdPVwib2ZmZXIoKS5pdGVtLm1lZGlhID8gb2ZmZXIoKS5pdGVtLm1lZGlhWzBdLnVybCA6ICcnXCIgc2l6ZT1cIm1lZGl1bVwiIG1vZGU9XCJjbGlwXCI+XG4gICAgICAgICAgICAgIDwvcm9sYXRlY2gtdGh1bWJuYWlsPlxuICAgICAgICAgICAgfSBAcGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmctWy0tcnQtcmFpc2VkLWJhY2tncm91bmRdIGgtZnVsbCB3LWZ1bGwgb2JqZWN0LWNvdmVyIGFzcGVjdC12aWRlbyByb3VuZGVkLWxnXCI+PC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaW4tdy0yNCB3LTM2IG9iamVjdC1jb3ZlciBhc3BlY3QtdmlkZW8gcm91bmRlZC1sZyBtci0zXCI+XG4gICAgICAgICAgICA8cm9sYXRlY2gtaW1hZ2UtcGxhY2Vob2xkZXI+PC9yb2xhdGVjaC1pbWFnZS1wbGFjZWhvbGRlcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCB3LWZ1bGwganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIHctZnVsbFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvbnQtYm9sZFwiPnt7IG9mZmVyKCkuaXRlbS50aXRsZSB9fTwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5saW5lLWZsZXggZ2FwLTEgbXQtMlwiPlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yLTFcIj57eyBvZmZlcigpLml0ZW0uYmVkcm9vbXMgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBpMThuPkJlZHJvb21zPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yLTFcIj57eyBvZmZlcigpLml0ZW0uYmF0aHJvb21zIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gaTE4bj5CYXRocm9vbXM8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXItMVwiPnt7IG9mZmVyKCkuaXRlbS5yZWNlcHRpb25zIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gaTE4bj5SZWNlcHRpb25zPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtcmlnaHRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc21cIj7Co3t7IG9mZmVyKCkuaXRlbS5hbW91bnQudG9GaXhlZCgyKSB9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbjwvZGl2PlxuIl19","import { Component, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BaseComponent, EmptyComponent, TabComponent, TabsComponent, ToolbarComponent, ListComponent } 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.3.4\", ngImport: i0, type: PropertyManageOfferIndexComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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<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\", 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\" }, { kind: \"component\", type: ListComponent, selector: \"rolatech-list\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", 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 ListComponent\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<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\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbWFuYWdlLW9mZmVyLWluZGV4LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS1tYW5hZ2UvcHJvcGVydHktbWFuYWdlLW9mZmVyLWluZGV4L3Byb3BlcnR5LW1hbmFnZS1vZmZlci1pbmRleC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktbWFuYWdlL3Byb3BlcnR5LW1hbmFnZS1vZmZlci1pbmRleC9wcm9wZXJ0eS1tYW5hZ2Utb2ZmZXItaW5kZXguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0ksT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1RUFBdUUsQ0FBQzs7O0FBa0JuSCxNQUFNLE9BQU8saUNBQWtDLFNBQVEsYUFBYTtJQUNsRSxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBRTFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDWCxLQUFLLEdBQUc7UUFDTjtZQUNFLElBQUksRUFBRSxLQUFLO1lBQ1gsSUFBSSxFQUFFLFdBQVc7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ZCxhQUFhO3FCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIEVtcHR5Q29tcG9uZW50LCBUYWJDb21wb25lbnQsIFRhYnNDb21wb25lbnQsIFRvb2xiYXJDb21wb25lbnQsIExpc3RDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBQcm9wZXJ0eVNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBQcm9wZXJ0eU9mZmVySXRlbUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvcHJvcGVydHktb2ZmZXItaXRlbS9wcm9wZXJ0eS1vZmZlci1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9wZXJ0eU9mZmVyIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb3BlcnR5LW1hbmFnZS1vZmZlci1pbmRleCcsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVG9vbGJhckNvbXBvbmVudCxcbiAgICBUYWJzQ29tcG9uZW50LFxuICAgIFRhYkNvbXBvbmVudCxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgUHJvcGVydHlPZmZlckl0ZW1Db21wb25lbnQsXG4gICAgRW1wdHlDb21wb25lbnQsXG4gICAgTGlzdENvbXBvbmVudFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydHktbWFuYWdlLW9mZmVyLWluZGV4LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb3BlcnR5LW1hbmFnZS1vZmZlci1pbmRleC5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5TWFuYWdlT2ZmZXJJbmRleENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcm9wZXJ0eVNlcnZpY2UgPSBpbmplY3QoUHJvcGVydHlTZXJ2aWNlKTtcblxuICBzZWxlY3QgPSAwO1xuICBsaW5rcyA9IFtcbiAgICB7XG4gICAgICBuYW1lOiAnQWxsJyxcbiAgICAgIGljb246ICdkYXNoYm9hcmQnLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ1BlbmRpbmcnLFxuICAgICAgaWNvbjogJ2NhdGVnb3J5JyxcbiAgICAgIHN0YXR1czogJ3BlbmRpbmcnLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ0FjY2VwdGVkJyxcbiAgICAgIGljb246ICdjYXRlZ29yeScsXG4gICAgICBzdGF0dXM6ICdhY2NlcHRlZCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnUmVqZWN0ZWQnLFxuICAgICAgaWNvbjogJ2NhdGVnb3J5JyxcbiAgICAgIHN0YXR1czogJ3JlamVjdGVkJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdDYW5jZWxsZWQnLFxuICAgICAgaWNvbjogJ2NhdGVnb3J5JyxcbiAgICAgIHN0YXR1czogJ2NhbmNlbGxlZCcsXG4gICAgfSxcbiAgXTtcbiAgZmlsdGVyT3B0aW9uczogYW55ID0ge1xuICAgIHR5cGU6ICcnLFxuICAgIHN0YXR1czogJycsXG4gIH07XG4gIG9mZmVyczogUHJvcGVydHlPZmZlcltdID0gW107XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoKHsgc3RhdHVzIH0pID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0ID0gdGhpcy5saW5rcy5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0uc3RhdHVzID09PSBzdGF0dXMpO1xuICAgICAgaWYgKHN0YXR1cykge1xuICAgICAgICB0aGlzLmZpbHRlck9wdGlvbnMuc3RhdHVzID0gKHN0YXR1cyBhcyBzdHJpbmcpLnRvVXBwZXJDYXNlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZWxldGUgdGhpcy5maWx0ZXJPcHRpb25zLnN0YXR1cztcbiAgICAgIH1cbiAgICAgIHRoaXMuZmluZE9mZmVycygpO1xuICAgIH0pO1xuICB9XG4gIGZpbmRPZmZlcnMoKSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIHNvcnQ6ICd1cGRhdGVkQXQgZGVzYycsXG4gICAgfTtcbiAgICBjb25zdCBmaWx0ZXJTdHJpbmcgPSB0aGlzLmNvbnZlcnRGaWx0ZXJPcHRpb25zKHRoaXMuZmlsdGVyT3B0aW9ucyk7XG4gICAgaWYgKGZpbHRlclN0cmluZykge1xuICAgICAgb3B0aW9uc1snZmlsdGVyJ10gPSBmaWx0ZXJTdHJpbmc7XG4gICAgfVxuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmZpbmRPZmZlcnNCeUFnZW50KG9wdGlvbnMpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5vZmZlcnMgPSByZXMuZGF0YTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgY29udmVydEZpbHRlck9wdGlvbnMoanNvbk9iaikge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhqc29uT2JqKVxuICAgICAgLmZpbHRlcigoW2tleSwgdmFsdWVdKSA9PiB2YWx1ZSAhPT0gJycgJiYgdmFsdWUgIT09IHVuZGVmaW5lZClcbiAgICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICByZXR1cm4gYCR7a2V5fToke3ZhbHVlfWA7XG4gICAgICB9KVxuICAgICAgLmpvaW4oJywnKTtcbiAgfVxufVxuIiwiPHJvbGF0ZWNoLXRvb2xiYXIgdGl0bGU9XCJPZmZlcnNcIj5cbiAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+PC9kaXY+XG48L3JvbGF0ZWNoLXRvb2xiYXI+XG48cm9sYXRlY2gtdGFicyBbc2VsZWN0XT1cInNlbGVjdFwiPlxuICBAZm9yIChpdGVtIG9mIGxpbmtzOyB0cmFjayBpdGVtKSB7XG4gICAgQGlmIChpdGVtLnN0YXR1cykge1xuICAgICAgPHJvbGF0ZWNoLXRhYiBbbGFiZWxdPVwiaXRlbS5uYW1lXCIgcm91dGVyTGluaz1cIi4vXCIgW3F1ZXJ5UGFyYW1zXT1cInsgc3RhdHVzOiBpdGVtLnN0YXR1cyB9XCI+PC9yb2xhdGVjaC10YWI+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8cm9sYXRlY2gtdGFiIFtsYWJlbF09XCJpdGVtLm5hbWVcIiByb3V0ZXJMaW5rPVwiLi9cIj48L3JvbGF0ZWNoLXRhYj5cbiAgICB9XG4gIH1cbjwvcm9sYXRlY2gtdGFicz5cbjxyb2xhdGVjaC1saXN0PlxuICBAaWYgKG9mZmVycykge1xuICAgIEBmb3IgKGl0ZW0gb2Ygb2ZmZXJzOyB0cmFjayBpdGVtKSB7XG4gICAgICA8cm9sYXRlY2gtcHJvcGVydHktb2ZmZXItaXRlbSBbcm91dGVyTGlua109XCJbJy4vJywgaXRlbS5pZF1cIiBbb2ZmZXJdPVwiaXRlbVwiPjwvcm9sYXRlY2gtcHJvcGVydHktb2ZmZXItaXRlbT5cbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIDxyb2xhdGVjaC1lbXB0eT48L3JvbGF0ZWNoLWVtcHR5PlxuICB9XG48L3JvbGF0ZWNoLWxpc3Q+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 { InvoiceService, PropertyService } from '@rolatech/angular-services';\nimport { AuthUserService } from '@rolatech/angular-auth';\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 invoiceService = inject(InvoiceService);\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 counter() { }\n createInvoice() {\n this.invoiceService.create({ itemId: this.id }).subscribe({\n next: (res) => {\n console.log(res);\n },\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: PropertyManageOfferDetailComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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() === 'CREATED') {\\n <button mat-flat-button (click)=\\\"accept()\\\" i18n>Accept</button>\\n <button mat-flat-button (click)=\\\"counter()\\\" i18n>Counter offer</button>\\n <button mat-button (click)=\\\"reject()\\\" i18n>Reject</button>\\n }\\n <button mat-flat-button (click)=\\\"createInvoice()\\\" i18n>Create invoice</button>\\n\\n <!-- create invoice -->\\n @if (offer.status.toString() === 'ACCEPTED') {\\n <button mat-flat-button (click)=\\\"createInvoice()\\\" i18n>Create invoice</button>\\n }\\n <!-- References -->\\n @if (offer.status.toString() === 'REFERENCES_PASSED') {\\n <button mat-flat-button (click)=\\\"createInvoice()\\\" i18n>Create invoice</button>\\n }\\n @if (offer.status.toString() === 'REFERENCES_FAILED') {\\n <button mat-flat-button (click)=\\\"createInvoice()\\\" i18n>Create invoice</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-24 w-24 object-cover aspect-video rounded-md mr-3\\\">\\n @defer {\\n <rolatech-thumbnail [src]=\\\"offer.item.media[0].url\\\" size=\\\"medium\\\" mode=\\\"clip\\\"> </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.title }}</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.amount.toFixed(2) }}</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\"] }], deferBlockDependencies: [() => [ThumbnailComponent]] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: PropertyManageOfferDetailComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-manage-offer-detail', imports: [CommonModule, ToolbarComponent, RichLabelComponent, ThumbnailComponent, MatButtonModule], template: \"@if (offer) {\\n <rolatech-toolbar [title]=\\\"status[offer.status]\\\" large link=\\\"../\\\">\\n @if (offer.status.toString() === 'CREATED') {\\n <button mat-flat-button (click)=\\\"accept()\\\" i18n>Accept</button>\\n <button mat-flat-button (click)=\\\"counter()\\\" i18n>Counter offer</button>\\n <button mat-button (click)=\\\"reject()\\\" i18n>Reject</button>\\n }\\n <button mat-flat-button (click)=\\\"createInvoice()\\\" i18n>Create invoice</button>\\n\\n <!-- create invoice -->\\n @if (offer.status.toString() === 'ACCEPTED') {\\n <button mat-flat-button (click)=\\\"createInvoice()\\\" i18n>Create invoice</button>\\n }\\n <!-- References -->\\n @if (offer.status.toString() === 'REFERENCES_PASSED') {\\n <button mat-flat-button (click)=\\\"createInvoice()\\\" i18n>Create invoice</button>\\n }\\n @if (offer.status.toString() === 'REFERENCES_FAILED') {\\n <button mat-flat-button (click)=\\\"createInvoice()\\\" i18n>Create invoice</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-24 w-24 object-cover aspect-video rounded-md mr-3\\\">\\n @defer {\\n <rolatech-thumbnail [src]=\\\"offer.item.media[0].url\\\" size=\\\"medium\\\" mode=\\\"clip\\\"> </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.title }}</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.amount.toFixed(2) }}</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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbWFuYWdlLW9mZmVyLWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktbWFuYWdlL3Byb3BlcnR5LW1hbmFnZS1vZmZlci1kZXRhaWwvcHJvcGVydHktbWFuYWdlLW9mZmVyLWRldGFpbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktbWFuYWdlL3Byb3BlcnR5LW1hbmFnZS1vZmZlci1kZXRhaWwvcHJvcGVydHktbWFuYWdlLW9mZmVyLWRldGFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixhQUFhLEVBQ2IscUJBQXFCLEVBQ3JCLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsZ0JBQWdCLEdBQ2pCLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFFLGdCQUFnQixFQUEyQixtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBUTNELE1BQU0sT0FBTyxrQ0FBbUMsU0FBUSxhQUFhO0lBQ25FLGVBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFD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QixlQUFlLDBYQUFuQyxrQkFBa0I7OzJGQUlyRSxrQ0FBa0M7a0JBTjlDLFNBQVM7K0JBQ0UsdUNBQXVDLFdBQ3hDLENBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBY2NlcHREaWFsb2dDb21wb25lbnQsXG4gIEJhc2VDb21wb25lbnQsXG4gIFJlamVjdERpYWxvZ0NvbXBvbmVudCxcbiAgUmljaExhYmVsQ29tcG9uZW50LFxuICBUaHVtYm5haWxDb21wb25lbnQsXG4gIFRvb2xiYXJDb21wb25lbnQsXG59IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgRW1wbG95bWVudFN0YXR1cywgUHJvcGVydHksIFByb3BlcnR5T2ZmZXIsIFByb3BlcnR5T2ZmZXJTdGF0dXMgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEludm9pY2VTZXJ2aWNlLCBQcm9wZXJ0eVNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBBdXRoVXNlclNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1hdXRoJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb3BlcnR5LW1hbmFnZS1vZmZlci1kZXRhaWwnLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUb29sYmFyQ29tcG9uZW50LCBSaWNoTGFiZWxDb21wb25lbnQsIFRodW1ibmFpbENvbXBvbmVudCwgTWF0QnV0dG9uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LW1hbmFnZS1vZmZlci1kZXRhaWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHJvcGVydHktbWFuYWdlLW9mZmVyLWRldGFpbC5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5TWFuYWdlT2ZmZXJEZXRhaWxDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJvcGVydHlTZXJ2aWNlID0gaW5qZWN0KFByb3BlcnR5U2VydmljZSk7XG4gIGF1dGhVc2VyU2VydmljZSA9IGluamVjdChBdXRoVXNlclNlcnZpY2UpO1xuICBpbnZvaWNlU2VydmljZSA9IGluamVjdChJbnZvaWNlU2VydmljZSk7XG4gIG9mZmVyITogUHJvcGVydHlPZmZlcjtcbiAgbmFtZSA9ICcnO1xuICBwcm9wZXJ0eSE6IFByb3BlcnR5O1xuICBzdGF0dXMgPSBQcm9wZXJ0eU9mZmVyU3RhdHVzO1xuICBlbXBsb3ltZW50U3RhdHVzID0gRW1wbG95bWVudFN0YXR1cztcbiAgYWdlbnQ6IGFueTtcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5nZXRPZmZlcigpO1xuICB9XG4gIGdldE9mZmVyKCkge1xuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmdldE9mZmVyKHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMub2ZmZXIgPSByZXMuZGF0YTtcbiAgICAgICAgdGhpcy5uYW1lID0gdGhpcy5vZmZlci5maXJzdE5hbWUgKyAnLCAnICsgdGhpcy5vZmZlci5sYXN0TmFtZTtcbiAgICAgICAgdGhpcy5nZXRQcm9wZXJ0eSh0aGlzLm9mZmVyLnByb3BlcnR5SWQpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBnZXRQcm9wZXJ0eShwcm9wZXJ0eUlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnByb3BlcnR5U2VydmljZS5nZXQocHJvcGVydHlJZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnByb3BlcnR5ID0gcmVzLmRhdGE7XG4gICAgICAgIHRoaXMuZ2V0QWdlbnRQdWJsaWNJbmZvKHRoaXMucHJvcGVydHkuYWdlbnRJZCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGdldEFnZW50UHVibGljSW5mbyhhZ2VudElkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmF1dGhVc2VyU2VydmljZS5nZXRQdWJsaWNVc2VySW5mbyhhZ2VudElkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmFnZW50ID0gcmVzO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBhY2NlcHQoKSB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihBY2NlcHREaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiAnNDAwcHgnLFxuICAgICAgZGF0YToge1xuICAgICAgICB0aXRsZTogJ0FjY2VwdCBvZmZlcicsXG4gICAgICAgIG1lc3NhZ2U6ICdBY2NlcHQgdGhpcyBvZmZlcj8nLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICB0aGlzLnByb3BlcnR5U2VydmljZS5hY2NlcHRPZmZlcih0aGlzLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgICAgIHRoaXMub2ZmZXIuc3RhdHVzID0gJ0FDQ0VQVEVEJyBhcyBQcm9wZXJ0eU9mZmVyU3RhdHVzO1xuICAgICAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbignQWNjZXB0ZWQnKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yOiAoZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbihlLm1lc3NhZ2UpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIHJlamVjdCgpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFJlamVjdERpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgd2lkdGg6ICc0MDBweCcsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGNvbnRlbnQ6ICcnLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICB0aGlzLnByb3BlcnR5U2VydmljZS5yZWplY3RPZmZlcih0aGlzLmlkLCB7IHJlYXNvbjogcmVzdWx0LmNvbnRlbnQgfSkuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9mZmVyLnN0YXR1cyA9ICdSRUpFQ1RFRCcgYXMgUHJvcGVydHlPZmZlclN0YXR1cztcbiAgICAgICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oJ1JlamVjdGVkJyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvcjogKGUpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oZS5tZXNzYWdlKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICBjb3VudGVyKCkge31cbiAgY3JlYXRlSW52b2ljZSgpIHtcbiAgICB0aGlzLmludm9pY2VTZXJ2aWNlLmNyZWF0ZSh7IGl0ZW1JZDogdGhpcy5pZCB9KS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZyhyZXMpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwiQGlmIChvZmZlcikge1xuICA8cm9sYXRlY2gtdG9vbGJhciBbdGl0bGVdPVwic3RhdHVzW29mZmVyLnN0YXR1c11cIiBsYXJnZSBsaW5rPVwiLi4vXCI+XG4gICAgQGlmIChvZmZlci5zdGF0dXMudG9TdHJpbmcoKSA9PT0gJ0NSRUFURUQnKSB7XG4gICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiAoY2xpY2spPVwiYWNjZXB0KClcIiBpMThuPkFjY2VwdDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gKGNsaWNrKT1cImNvdW50ZXIoKVwiIGkxOG4+Q291bnRlciBvZmZlcjwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIChjbGljayk9XCJyZWplY3QoKVwiIGkxOG4+UmVqZWN0PC9idXR0b24+XG4gICAgfVxuICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIChjbGljayk9XCJjcmVhdGVJbnZvaWNlKClcIiBpMThuPkNyZWF0ZSBpbnZvaWNlPC9idXR0b24+XG5cbiAgICA8IS0tIGNyZWF0ZSBpbnZvaWNlIC0tPlxuICAgIEBpZiAob2ZmZXIuc3RhdHVzLnRvU3RyaW5nKCkgPT09ICdBQ0NFUFRFRCcpIHtcbiAgICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIChjbGljayk9XCJjcmVhdGVJbnZvaWNlKClcIiBpMThuPkNyZWF0ZSBpbnZvaWNlPC9idXR0b24+XG4gICAgfVxuICAgIDwhLS0gUmVmZXJlbmNlcyAtLT5cbiAgICBAaWYgKG9mZmVyLnN0YXR1cy50b1N0cmluZygpID09PSAnUkVGRVJFTkNFU19QQVNTRUQnKSB7XG4gICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiAoY2xpY2spPVwiY3JlYXRlSW52b2ljZSgpXCIgaTE4bj5DcmVhdGUgaW52b2ljZTwvYnV0dG9uPlxuICAgIH1cbiAgICBAaWYgKG9mZmVyLnN0YXR1cy50b1N0cmluZygpID09PSAnUkVGRVJFTkNFU19GQUlMRUQnKSB7XG4gICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiAoY2xpY2spPVwiY3JlYXRlSW52b2ljZSgpXCIgaTE4bj5DcmVhdGUgaW52b2ljZTwvYnV0dG9uPlxuICAgIH1cbiAgPC9yb2xhdGVjaC10b29sYmFyPlxuICA8ZGl2IGNsYXNzPVwicHgtNFwiPlxuICAgIDxkaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZyBmb250LWJvbGQgcHktMlwiPlZpZXdlcjwvZGl2PlxuICAgICAgPGhyIGNsYXNzPVwibWItMlwiIC8+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBtZDpmbGV4LXJvdyBnYXAtMSBtZDpnYXAtNFwiPlxuICAgICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIk5hbWVcIiBbdGl0bGVdPVwibmFtZVwiPjwvcm9sYXRlY2gtcmljaC1sYWJlbD5cbiAgICAgICAgPHJvbGF0ZWNoLXJpY2gtbGFiZWwgbGFiZWw9XCJFbWFpbFwiIFt0aXRsZV09XCJvZmZlci5lbWFpbFwiPjwvcm9sYXRlY2gtcmljaC1sYWJlbD5cbiAgICAgICAgPHJvbGF0ZWNoLXJpY2gtbGFiZWwgbGFiZWw9XCJQaG9uZVwiIFt0aXRsZV09XCJvZmZlci5waG9uZVwiPjwvcm9sYXRlY2gtcmljaC1sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZyBmb250LWJvbGQgcHktMlwiPlF1YWxpZmljYXRpb248L2Rpdj5cbiAgICAgIDxociBjbGFzcz1cIm1iLTJcIiAvPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbWQ6ZmxleC1yb3cgZ2FwLTEgbWQ6Z2FwLTRcIj5cbiAgICAgICAgPHJvbGF0ZWNoLXJpY2gtbGFiZWwgbGFiZWw9XCJNb3ZlLWluIGRhdGVcIiBbdGl0bGVdPVwib2ZmZXIuc3RhcnREYXRlXCI+PC9yb2xhdGVjaC1yaWNoLWxhYmVsPlxuICAgICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIlRlbmFuY3kgZHVyYXRpb25cIiBbdGl0bGVdPVwib2ZmZXIudGVuYW5jeUR1cmF0aW9uXCI+PC9yb2xhdGVjaC1yaWNoLWxhYmVsPlxuICAgICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIk51bWJlciBvZiB0ZW5hbnRzXCIgW3RpdGxlXT1cIm9mZmVyLm51bWJlck9mVGVuYW50c1wiPjwvcm9sYXRlY2gtcmljaC1sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbWQ6ZmxleC1yb3cgZ2FwLTEgbWQ6Z2FwLTRcIj5cbiAgICAgICAgPHJvbGF0ZWNoLXJpY2gtbGFiZWwgbGFiZWw9XCJFbXBsb3ltZW50IHN0YXR1c1wiIFt0aXRsZV09XCJlbXBsb3ltZW50U3RhdHVzW29mZmVyLmVtcGxveW1lbnRTdGF0dXNdXCI+PC9yb2xhdGVjaC1yaWNoLWxhYmVsPlxuICAgICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIkVtcGxveWVyXCIgW3RpdGxlXT1cIm9mZmVyLnN0YXJ0RGF0ZVwiPjwvcm9sYXRlY2gtcmljaC1sYWJlbD5cbiAgICAgICAgQGlmIChvZmZlci5pbmNvbWUpIHtcbiAgICAgICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIkFubnVhbCBpbmNvbWVcIiBbdGl0bGVdPVwib2ZmZXIuaW5jb21lXCI+PC9yb2xhdGVjaC1yaWNoLWxhYmVsPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtbGcgZm9udC1ib2xkIHB5LTJcIj5Qcm9wZXJ0eSBkZXRhaWxzPC9kaXY+XG4gICAgICA8aHIgY2xhc3M9XCJtYi0yXCIgLz5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBweS0yXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaW4tdy0yNCB3LTI0IG9iamVjdC1jb3ZlciBhc3BlY3QtdmlkZW8gcm91bmRlZC1tZCBtci0zXCI+XG4gICAgICAgICAgQGRlZmVyIHtcbiAgICAgICAgICAgIDxyb2xhdGVjaC10aHVtYm5haWwgW3NyY109XCJvZmZlci5pdGVtLm1lZGlhWzBdLnVybFwiIHNpemU9XCJtZWRpdW1cIiBtb2RlPVwiY2xpcFwiPiA8L3JvbGF0ZWNoLXRodW1ibmFpbD5cbiAgICAgICAgICB9IEBwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmctWy0tcnQtcmFpc2VkLWJhY2tncm91bmRdIGgtZnVsbCB3LWZ1bGwgb2JqZWN0LWNvdmVyIGFzcGVjdC12aWRlbyByb3VuZGVkLWxnXCI+PC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggdy1mdWxsIGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiB3LWZ1bGxcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sXCI+XG4gICAgICAgICAgICAgIDxkaXY+e3sgb2ZmZXIuaXRlbS50aXRsZSB9fTwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5saW5lLWZsZXggZ2FwLTEgbXQtMlwiPlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yLTFcIj57eyBvZmZlci5pdGVtLmJlZHJvb21zIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gaTE4bj5CZWRyb29tczwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtci0xXCI+e3sgb2ZmZXIuaXRlbS5iYXRocm9vbXMgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBpMThuPkJhdGhyb29tczwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtci0xXCI+e3sgb2ZmZXIuaXRlbS5yZWNlcHRpb25zIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gaTE4bj5SZWNlcHRpb25zPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtcmlnaHRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc21cIj7Co3t7IG9mZmVyLml0ZW0uYW1vdW50LnRvRml4ZWQoMikgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhpZGRlbiBtZDpmbGV4IGZsZXgtY29sIHB4LTNcIj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxnIGZvbnQtYm9sZCBweS0yXCI+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.3.4\", ngImport: i0, type: PropertyUtil, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: PropertyUtil, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: PropertyUtil, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wcm9wZXJ0eS11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUV6RCxNQUFNLENBQU4sSUFBWSxnQkFHWDtBQUhELFdBQVksZ0JBQWdCO0lBQzFCLHVEQUFRLENBQUE7SUFDUix1REFBUSxDQUFBO0FBQ1YsQ0FBQyxFQUhXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFHM0I7QUFLRCxNQUFNLE9BQU8sWUFBWTtJQUN2QixTQUFTLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7dUdBRHRDLFlBQVk7MkdBQVosWUFBWSxjQUZYLE1BQU07OzJGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuZXhwb3J0IGVudW0gUHJvcGVydHlWaWV3VHlwZSB7XG4gIEdSSUQgPSAwLFxuICBMSVNUID0gMSxcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5VXRpbCB7XG4gIHZpZXdFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8UHJvcGVydHlWaWV3VHlwZT4oKTtcblxufVxuIl19","import { CommonModule } from '@angular/common';\nimport { Component, computed, effect, inject, model, output, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { MatButtonModule } from '@angular/material/button';\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 { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { PriceRange } from '../../interfaces';\nimport { BedroomRange } from '../../interfaces';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\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/forms\";\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 PropertyFilterBar {\n route = inject(ActivatedRoute);\n router = inject(Router);\n search = output();\n reset = output();\n show = model(true, ...(ngDevMode ? [{ debugName: \"show\" }] : []));\n priceOptions = PriceRange;\n bedroomOptions = BedroomRange;\n minOptions = computed(() => {\n return this.priceOptions.filter((o) => o.value !== null);\n }, ...(ngDevMode ? [{ debugName: \"minOptions\" }] : []));\n maxOptions = computed(() => {\n return this.priceOptions.filter((o) => o.value !== 0);\n }, ...(ngDevMode ? [{ debugName: \"maxOptions\" }] : []));\n minBedroom = computed(() => {\n return this.bedroomOptions.filter((o) => o.value !== null);\n }, ...(ngDevMode ? [{ debugName: \"minBedroom\" }] : []));\n maxBedRoom = computed(() => {\n return this.bedroomOptions.filter((o) => o.value !== '0');\n }, ...(ngDevMode ? [{ debugName: \"maxBedRoom\" }] : []));\n towns = ['London'];\n market = ['Sales', 'Lettings'];\n options = model({\n market: '',\n town: '',\n availableFrom: '',\n minBedrooms: '',\n maxBedrooms: '',\n minPrice: 0,\n maxPrice: null,\n location: '',\n radius: '',\n }, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n minDate = new Date();\n constructor() {\n // Reflect model changes back to URL\n effect(() => {\n const opts = this.options();\n this.router.navigate([], {\n queryParams: {\n market: opts.market || null,\n town: opts.town || null,\n minBedrooms: opts.minBedrooms || null,\n maxBedrooms: opts.maxBedrooms || null,\n minPrice: opts.minPrice || null,\n maxPrice: opts.maxPrice || null,\n },\n queryParamsHandling: 'merge',\n });\n });\n }\n ngOnInit() {\n this.route.queryParams.subscribe((params) => {\n this.options.set({\n market: params['market'] || '',\n town: params['town'] || '',\n availableFrom: params['availableFrom'] || '',\n minBedrooms: params['minBedrooms'] || '',\n maxBedrooms: params['maxBedrooms'] || '',\n minPrice: params['minPrice'] ? +params['minPrice'] : 0,\n maxPrice: params['maxPrice'] ? +params['maxPrice'] : null,\n location: params['location'] || '',\n page: params['page'] ? +params['page'] : 1,\n limit: params['limit'] ? +params['limit'] : 15,\n });\n });\n }\n onReset() {\n this.reset.emit({});\n this.options.update(() => {\n return {\n market: '',\n town: '',\n availableFrom: '',\n minBedrooms: '',\n maxBedrooms: '',\n minPrice: 0,\n maxPrice: null,\n location: '',\n radius: '',\n page: 1,\n limit: 15,\n };\n });\n }\n onSearch() {\n const filteredOptions = Object.fromEntries(Object.entries(this.options()).filter(([_, v]) => v != null && v !== ''));\n this.search.emit(filteredOptions);\n this.router.navigate([], {\n queryParams: filteredOptions,\n queryParamsHandling: 'merge', // keep other params like sort, etc.\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: PropertyFilterBar, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", type: PropertyFilterBar, isStandalone: true, selector: \"rolatech-property-filter-bar\", inputs: { show: { classPropertyName: \"show\", publicName: \"show\", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { search: \"search\", reset: \"reset\", show: \"showChange\", options: \"optionsChange\" }, 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=\\\"px-2 mb-3 close\\\" [class.open]=\\\"show()\\\">\\n <div class=\\\"flex flex-col h-min justify-center items-center gap-3\\\">\\n <div class=\\\"flex flex-col md:flex-row gap-3 w-full items-center\\\">\\n <div class=\\\"flex flex-col w-full md:w-1/3\\\">\\n <div class=\\\"py-1\\\">Market</div>\\n <div>\\n <mat-form-field appearance=\\\"fill\\\" subscriptSizing=\\\"dynamic\\\">\\n <mat-select #select=\\\"matSelect\\\" placeholder=\\\"Market\\\" [(ngModel)]=\\\"options().market\\\">\\n @for (m of market; track m) {\\n <mat-option [value]=\\\"m\\\"> {{ m }} </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n </div>\\n <div class=\\\"flex flex-col w-full md:w-1/3\\\">\\n <div class=\\\"py-1\\\">Town</div>\\n <div>\\n <mat-form-field appearance=\\\"fill\\\" subscriptSizing=\\\"dynamic\\\">\\n <mat-select #select=\\\"matSelect\\\" placeholder=\\\"Town\\\" [(ngModel)]=\\\"options().town\\\">\\n @for (town of towns; track town) {\\n <mat-option [value]=\\\"town\\\"> {{ town }} </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n </div>\\n <div class=\\\"flex flex-col w-full md:w-1/3\\\">\\n <div class=\\\"py-1\\\">Available date</div>\\n <div>\\n <mat-form-field appearance=\\\"fill\\\" subscriptSizing=\\\"dynamic\\\" class=\\\"z-[1000]\\\">\\n <input\\n matInput\\n placeholder=\\\"Available\\\"\\n [matDatepicker]=\\\"startDatePicker\\\"\\n [min]=\\\"minDate\\\"\\n (focus)=\\\"startDatePicker.open()\\\"\\n name=\\\"available\\\"\\n [(ngModel)]=\\\"options().availableFrom\\\"\\n (dateInput)=\\\"options().availableFrom = $event.value.format('YYYY-MM-DD')\\\"\\n readonly\\n />\\n <mat-datepicker-toggle matIconPrefix [for]=\\\"startDatePicker\\\"></mat-datepicker-toggle>\\n <mat-datepicker panelClass=\\\"datepicker-on-top\\\" #startDatePicker></mat-datepicker>\\n </mat-form-field>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"flex flex-col md:flex-row gap-3 w-full items-center\\\">\\n <div class=\\\"flex flex-col w-full md:w-1/3 overflow-hidden\\\">\\n <div class=\\\"py-1\\\">Price range (\\u00A3)</div>\\n <div class=\\\"flex flex-row items-center\\\">\\n <mat-form-field appearance=\\\"fill\\\" subscriptSizing=\\\"dynamic\\\">\\n <mat-label>Min (PCM)</mat-label>\\n <mat-select [(ngModel)]=\\\"options().minPrice\\\">\\n @for (opt of minOptions(); track opt.value) {\\n <mat-option [value]=\\\"opt.value\\\">{{ opt.label }}</mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <div class=\\\"px-2\\\">-</div>\\n <mat-form-field appearance=\\\"fill\\\" subscriptSizing=\\\"dynamic\\\">\\n <mat-label>Max (PCM)</mat-label>\\n <mat-select [(ngModel)]=\\\"options().maxPrice\\\">\\n @for (opt of maxOptions(); track opt.value) {\\n <mat-option [value]=\\\"opt.value\\\">{{ opt.label }}</mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n </div>\\n <div class=\\\"flex flex-col w-full md:w-1/3\\\">\\n <div class=\\\"py-1\\\">No. of bedrooms</div>\\n <div class=\\\"flex flex-row items-center\\\">\\n <mat-form-field appearance=\\\"fill\\\" subscriptSizing=\\\"dynamic\\\">\\n <mat-label>Min</mat-label>\\n <mat-select [(ngModel)]=\\\"options().minBedrooms\\\">\\n @for (opt of minBedroom(); track opt.value) {\\n <mat-option [value]=\\\"opt.value\\\">{{ opt.label }}</mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <div class=\\\"px-2\\\">-</div>\\n <mat-form-field appearance=\\\"fill\\\" subscriptSizing=\\\"dynamic\\\">\\n <mat-label>Max</mat-label>\\n <mat-select [(ngModel)]=\\\"options().maxBedrooms\\\">\\n @for (opt of maxBedRoom(); track opt.value) {\\n <mat-option [value]=\\\"opt.value\\\">{{ opt.label }}</mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n </div>\\n <div class=\\\"h-14 md:w-1/3 self-end w-full\\\">\\n <button mat-flat-button (click)=\\\"onSearch()\\\" class=\\\"w-full min-h-14\\\">\\n <a i18n>Search</a>\\n </button>\\n </div>\\n </div>\\n </div>\\n</div>\\n\", styles: [\"mat-form-field{width:100%}.close{max-height:0;overflow:hidden;transition:max-height .5s cubic-bezier(.4,0,.2,1)}.open{max-height:1000px}\\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: 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: 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: FormsModule }, { kind: \"directive\", type: i5.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: i5.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i5.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { 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\"] }], encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: PropertyFilterBar, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-filter-bar', imports: [\n CommonModule,\n MatButtonModule,\n MatFormFieldModule,\n MatInputModule,\n MatSelectModule,\n MatOptionModule,\n FormsModule,\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 ], encapsulation: ViewEncapsulation.None, template: \"<div class=\\\"px-2 mb-3 close\\\" [class.open]=\\\"show()\\\">\\n <div class=\\\"flex flex-col h-min justify-center items-center gap-3\\\">\\n <div class=\\\"flex flex-col md:flex-row gap-3 w-full items-center\\\">\\n <div class=\\\"flex flex-col w-full md:w-1/3\\\">\\n <div class=\\\"py-1\\\">Market</div>\\n <div>\\n <mat-form-field appearance=\\\"fill\\\" subscriptSizing=\\\"dynamic\\\">\\n <mat-select #select=\\\"matSelect\\\" placeholder=\\\"Market\\\" [(ngModel)]=\\\"options().market\\\">\\n @for (m of market; track m) {\\n <mat-option [value]=\\\"m\\\"> {{ m }} </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n </div>\\n <div class=\\\"flex flex-col w-full md:w-1/3\\\">\\n <div class=\\\"py-1\\\">Town</div>\\n <div>\\n <mat-form-field appearance=\\\"fill\\\" subscriptSizing=\\\"dynamic\\\">\\n <mat-select #select=\\\"matSelect\\\" placeholder=\\\"Town\\\" [(ngModel)]=\\\"options().town\\\">\\n @for (town of towns; track town) {\\n <mat-option [value]=\\\"town\\\"> {{ town }} </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n </div>\\n <div class=\\\"flex flex-col w-full md:w-1/3\\\">\\n <div class=\\\"py-1\\\">Available date</div>\\n <div>\\n <mat-form-field appearance=\\\"fill\\\" subscriptSizing=\\\"dynamic\\\" class=\\\"z-[1000]\\\">\\n <input\\n matInput\\n placeholder=\\\"Available\\\"\\n [matDatepicker]=\\\"startDatePicker\\\"\\n [min]=\\\"minDate\\\"\\n (focus)=\\\"startDatePicker.open()\\\"\\n name=\\\"available\\\"\\n [(ngModel)]=\\\"options().availableFrom\\\"\\n (dateInput)=\\\"options().availableFrom = $event.value.format('YYYY-MM-DD')\\\"\\n readonly\\n />\\n <mat-datepicker-toggle matIconPrefix [for]=\\\"startDatePicker\\\"></mat-datepicker-toggle>\\n <mat-datepicker panelClass=\\\"datepicker-on-top\\\" #startDatePicker></mat-datepicker>\\n </mat-form-field>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"flex flex-col md:flex-row gap-3 w-full items-center\\\">\\n <div class=\\\"flex flex-col w-full md:w-1/3 overflow-hidden\\\">\\n <div class=\\\"py-1\\\">Price range (\\u00A3)</div>\\n <div class=\\\"flex flex-row items-center\\\">\\n <mat-form-field appearance=\\\"fill\\\" subscriptSizing=\\\"dynamic\\\">\\n <mat-label>Min (PCM)</mat-label>\\n <mat-select [(ngModel)]=\\\"options().minPrice\\\">\\n @for (opt of minOptions(); track opt.value) {\\n <mat-option [value]=\\\"opt.value\\\">{{ opt.label }}</mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <div class=\\\"px-2\\\">-</div>\\n <mat-form-field appearance=\\\"fill\\\" subscriptSizing=\\\"dynamic\\\">\\n <mat-label>Max (PCM)</mat-label>\\n <mat-select [(ngModel)]=\\\"options().maxPrice\\\">\\n @for (opt of maxOptions(); track opt.value) {\\n <mat-option [value]=\\\"opt.value\\\">{{ opt.label }}</mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n </div>\\n <div class=\\\"flex flex-col w-full md:w-1/3\\\">\\n <div class=\\\"py-1\\\">No. of bedrooms</div>\\n <div class=\\\"flex flex-row items-center\\\">\\n <mat-form-field appearance=\\\"fill\\\" subscriptSizing=\\\"dynamic\\\">\\n <mat-label>Min</mat-label>\\n <mat-select [(ngModel)]=\\\"options().minBedrooms\\\">\\n @for (opt of minBedroom(); track opt.value) {\\n <mat-option [value]=\\\"opt.value\\\">{{ opt.label }}</mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <div class=\\\"px-2\\\">-</div>\\n <mat-form-field appearance=\\\"fill\\\" subscriptSizing=\\\"dynamic\\\">\\n <mat-label>Max</mat-label>\\n <mat-select [(ngModel)]=\\\"options().maxBedrooms\\\">\\n @for (opt of maxBedRoom(); track opt.value) {\\n <mat-option [value]=\\\"opt.value\\\">{{ opt.label }}</mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n </div>\\n <div class=\\\"h-14 md:w-1/3 self-end w-full\\\">\\n <button mat-flat-button (click)=\\\"onSearch()\\\" class=\\\"w-full min-h-14\\\">\\n <a i18n>Search</a>\\n </button>\\n </div>\\n </div>\\n </div>\\n</div>\\n\", styles: [\"mat-form-field{width:100%}.close{max-height:0;overflow:hidden;transition:max-height .5s cubic-bezier(.4,0,.2,1)}.open{max-height:1000px}\\n\"] }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZmlsdGVyLWJhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9jb21wb25lbnRzL3Byb3BlcnR5LWZpbHRlci1iYXIvcHJvcGVydHktZmlsdGVyLWJhci50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9jb21wb25lbnRzL3Byb3BlcnR5LWZpbHRlci1iYXIvcHJvcGVydHktZmlsdGVyLWJhci5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQVUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7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RlUsaUJBQWlCOzJGQUFqQixpQkFBaUIsdWFBVmpCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLFdBQVc7Z0JBQ3BCLFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLElBQUksRUFBRSxDQUFDLGVBQWUsQ0FBQzthQUN4QjtZQUNELEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7U0FDcEQsMEJDN0NILGs0SUFxR0EsbU1EMUVJLFlBQVksOEJBQ1osZUFBZSxtWEFDZixrQkFBa0IsMmFBQ2xCLGNBQWMsaVlBQ2QsZUFBZSwrc0JBQ2YsZUFBZSw4QkFDZixXQUFXLDhtQkFDWCxtQkFBbUI7OzJGQWNWLGlCQUFpQjtrQkF4QjdCLFNBQVM7K0JBQ0UsOEJBQThCLFdBQy9CO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixlQUFlO3dCQUNmLFdBQVc7d0JBQ1gsbUJBQW1CO3FCQUNwQixhQUdVO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxXQUFXOzRCQUNwQixRQUFRLEVBQUUsaUJBQWlCOzRCQUMzQixJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUM7eUJBQ3hCO3dCQUNELEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7cUJBQ3BELGlCQUNjLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QsIG1vZGVsLCBPbkluaXQsIG91dHB1dCwgc2lnbmFsLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNb21lbnREYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsLW1vbWVudC1hZGFwdGVyJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfRk9STUFUUywgTUFUX0RBVEVfTE9DQUxFLCBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBQcmljZVJhbmdlLCBQcm9wZXJ0eVNlYXJjaE9wdGlvbnMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEJlZHJvb21SYW5nZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuZXhwb3J0IGNvbnN0IE1ZX0ZPUk1BVFMgPSB7XG4gIHBhcnNlOiB7XG4gICAgZGF0ZUlucHV0OiAnWVlZWS1NTS1ERCcsXG4gIH0sXG4gIGRpc3BsYXk6IHtcbiAgICBkYXRlSW5wdXQ6ICdZWVlZLU1NLUREJyxcbiAgICBtb250aFllYXJMYWJlbDogJ01NTSBZWVlZJyxcbiAgICBkYXRlQTExeUxhYmVsOiAnWVlZWS1NTS1ERCcsXG4gICAgbW9udGhZZWFyQTExeUxhYmVsOiAnTU1NTSBZWVlZJyxcbiAgfSxcbn07XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1wcm9wZXJ0eS1maWx0ZXItYmFyJyxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBNYXRPcHRpb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LWZpbHRlci1iYXIuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9wZXJ0eS1maWx0ZXItYmFyLnNjc3MnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBEYXRlQWRhcHRlcixcbiAgICAgIHVzZUNsYXNzOiBNb21lbnREYXRlQWRhcHRlcixcbiAgICAgIGRlcHM6IFtNQVRfREFURV9MT0NBTEVdLFxuICAgIH0sXG4gICAgeyBwcm92aWRlOiBNQVRfREFURV9GT1JNQVRTLCB1c2VWYWx1ZTogTVlfRk9STUFUUyB9LFxuICBdLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eUZpbHRlckJhciBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHNlYXJjaCA9IG91dHB1dDxhbnk+KCk7XG4gIHJlc2V0ID0gb3V0cHV0PGFueT4oKTtcbiAgc2hvdyA9IG1vZGVsPGJvb2xlYW4+KHRydWUpO1xuXG4gIHByaWNlT3B0aW9ucyA9IFByaWNlUmFuZ2U7XG4gIGJlZHJvb21PcHRpb25zID0gQmVkcm9vbVJhbmdlO1xuXG4gIG1pbk9wdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMucHJpY2VPcHRpb25zLmZpbHRlcigobykgPT4gby52YWx1ZSAhPT0gbnVsbCk7XG4gIH0pO1xuICBtYXhPcHRpb25zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnByaWNlT3B0aW9ucy5maWx0ZXIoKG8pID0+IG8udmFsdWUgIT09IDApO1xuICB9KTtcbiAgbWluQmVkcm9vbSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5iZWRyb29tT3B0aW9ucy5maWx0ZXIoKG8pID0+IG8udmFsdWUgIT09IG51bGwpO1xuICB9KTtcbiAgbWF4QmVkUm9vbSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5iZWRyb29tT3B0aW9ucy5maWx0ZXIoKG8pID0+IG8udmFsdWUgIT09ICcwJyk7XG4gIH0pO1xuICB0b3duczogc3RyaW5nW10gPSBbJ0xvbmRvbiddO1xuICBtYXJrZXQ6IHN0cmluZ1tdID0gWydTYWxlcycsICdMZXR0aW5ncyddO1xuXG4gIG9wdGlvbnMgPSBtb2RlbDxQcm9wZXJ0eVNlYXJjaE9wdGlvbnM+KHtcbiAgICBtYXJrZXQ6ICcnLFxuICAgIHRvd246ICcnLFxuICAgIGF2YWlsYWJsZUZyb206ICcnLFxuICAgIG1pbkJlZHJvb21zOiAnJyxcbiAgICBtYXhCZWRyb29tczogJycsXG4gICAgbWluUHJpY2U6IDAsXG4gICAgbWF4UHJpY2U6IG51bGwsXG4gICAgbG9jYXRpb246ICcnLFxuICAgIHJhZGl1czogJycsXG4gIH0pO1xuICBtaW5EYXRlID0gbmV3IERhdGUoKTtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gUmVmbGVjdCBtb2RlbCBjaGFuZ2VzIGJhY2sgdG8gVVJMXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IG9wdHMgPSB0aGlzLm9wdGlvbnMoKTtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7XG4gICAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgICAgbWFya2V0OiBvcHRzLm1hcmtldCB8fCBudWxsLFxuICAgICAgICAgIHRvd246IG9wdHMudG93biB8fCBudWxsLFxuICAgICAgICAgIG1pbkJlZHJvb21zOiBvcHRzLm1pbkJlZHJvb21zIHx8IG51bGwsXG4gICAgICAgICAgbWF4QmVkcm9vbXM6IG9wdHMubWF4QmVkcm9vbXMgfHwgbnVsbCxcbiAgICAgICAgICBtaW5QcmljZTogb3B0cy5taW5QcmljZSB8fCBudWxsLFxuICAgICAgICAgIG1heFByaWNlOiBvcHRzLm1heFByaWNlIHx8IG51bGwsXG4gICAgICAgIH0sXG4gICAgICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdtZXJnZScsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZSgocGFyYW1zKSA9PiB7XG4gICAgICB0aGlzLm9wdGlvbnMuc2V0KHtcbiAgICAgICAgbWFya2V0OiBwYXJhbXNbJ21hcmtldCddIHx8ICcnLFxuICAgICAgICB0b3duOiBwYXJhbXNbJ3Rvd24nXSB8fCAnJyxcbiAgICAgICAgYXZhaWxhYmxlRnJvbTogcGFyYW1zWydhdmFpbGFibGVGcm9tJ10gfHwgJycsXG4gICAgICAgIG1pbkJlZHJvb21zOiBwYXJhbXNbJ21pbkJlZHJvb21zJ10gfHwgJycsXG4gICAgICAgIG1heEJlZHJvb21zOiBwYXJhbXNbJ21heEJlZHJvb21zJ10gfHwgJycsXG4gICAgICAgIG1pblByaWNlOiBwYXJhbXNbJ21pblByaWNlJ10gPyArcGFyYW1zWydtaW5QcmljZSddIDogMCxcbiAgICAgICAgbWF4UHJpY2U6IHBhcmFtc1snbWF4UHJpY2UnXSA/ICtwYXJhbXNbJ21heFByaWNlJ10gOiBudWxsLFxuICAgICAgICBsb2NhdGlvbjogcGFyYW1zWydsb2NhdGlvbiddIHx8ICcnLFxuICAgICAgICBwYWdlOiBwYXJhbXNbJ3BhZ2UnXSA/ICtwYXJhbXNbJ3BhZ2UnXSA6IDEsXG4gICAgICAgIGxpbWl0OiBwYXJhbXNbJ2xpbWl0J10gPyArcGFyYW1zWydsaW1pdCddIDogMTUsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuICBvblJlc2V0KCkge1xuICAgIHRoaXMucmVzZXQuZW1pdCh7fSk7XG4gICAgdGhpcy5vcHRpb25zLnVwZGF0ZSgoKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBtYXJrZXQ6ICcnLFxuICAgICAgICB0b3duOiAnJyxcbiAgICAgICAgYXZhaWxhYmxlRnJvbTogJycsXG4gICAgICAgIG1pbkJlZHJvb21zOiAnJyxcbiAgICAgICAgbWF4QmVkcm9vbXM6ICcnLFxuICAgICAgICBtaW5QcmljZTogMCxcbiAgICAgICAgbWF4UHJpY2U6IG51bGwsXG4gICAgICAgIGxvY2F0aW9uOiAnJyxcbiAgICAgICAgcmFkaXVzOiAnJyxcbiAgICAgICAgcGFnZTogMSxcbiAgICAgICAgbGltaXQ6IDE1LFxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuICBvblNlYXJjaCgpIHtcbiAgICBjb25zdCBmaWx0ZXJlZE9wdGlvbnMgPSBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXModGhpcy5vcHRpb25zKCkpLmZpbHRlcigoW18sIHZdKSA9PiB2ICE9IG51bGwgJiYgdiAhPT0gJycpKTtcbiAgICB0aGlzLnNlYXJjaC5lbWl0KGZpbHRlcmVkT3B0aW9ucyk7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW10sIHtcbiAgICAgIHF1ZXJ5UGFyYW1zOiBmaWx0ZXJlZE9wdGlvbnMsXG4gICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnLCAvLyBrZWVwIG90aGVyIHBhcmFtcyBsaWtlIHNvcnQsIGV0Yy5cbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInB4LTIgbWItMyBjbG9zZVwiIFtjbGFzcy5vcGVuXT1cInNob3coKVwiPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBoLW1pbiBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXIgZ2FwLTNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBtZDpmbGV4LXJvdyBnYXAtMyB3LWZ1bGwgaXRlbXMtY2VudGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCB3LWZ1bGwgbWQ6dy0xLzNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInB5LTFcIj5NYXJrZXQ8L2Rpdj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XG4gICAgICAgICAgICA8bWF0LXNlbGVjdCAjc2VsZWN0PVwibWF0U2VsZWN0XCIgcGxhY2Vob2xkZXI9XCJNYXJrZXRcIiBbKG5nTW9kZWwpXT1cIm9wdGlvbnMoKS5tYXJrZXRcIj5cbiAgICAgICAgICAgICAgQGZvciAobSBvZiBtYXJrZXQ7IHRyYWNrIG0pIHtcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIm1cIj4ge3sgbSB9fSA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgdy1mdWxsIG1kOnctMS8zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJweS0xXCI+VG93bjwvZGl2PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICAgICAgICAgIDxtYXQtc2VsZWN0ICNzZWxlY3Q9XCJtYXRTZWxlY3RcIiBwbGFjZWhvbGRlcj1cIlRvd25cIiBbKG5nTW9kZWwpXT1cIm9wdGlvbnMoKS50b3duXCI+XG4gICAgICAgICAgICAgIEBmb3IgKHRvd24gb2YgdG93bnM7IHRyYWNrIHRvd24pIHtcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInRvd25cIj4ge3sgdG93biB9fSA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgdy1mdWxsIG1kOnctMS8zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJweS0xXCI+QXZhaWxhYmxlIGRhdGU8L2Rpdj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCIgY2xhc3M9XCJ6LVsxMDAwXVwiPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiQXZhaWxhYmxlXCJcbiAgICAgICAgICAgICAgW21hdERhdGVwaWNrZXJdPVwic3RhcnREYXRlUGlja2VyXCJcbiAgICAgICAgICAgICAgW21pbl09XCJtaW5EYXRlXCJcbiAgICAgICAgICAgICAgKGZvY3VzKT1cInN0YXJ0RGF0ZVBpY2tlci5vcGVuKClcIlxuICAgICAgICAgICAgICBuYW1lPVwiYXZhaWxhYmxlXCJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJvcHRpb25zKCkuYXZhaWxhYmxlRnJvbVwiXG4gICAgICAgICAgICAgIChkYXRlSW5wdXQpPVwib3B0aW9ucygpLmF2YWlsYWJsZUZyb20gPSAkZXZlbnQudmFsdWUuZm9ybWF0KCdZWVlZLU1NLUREJylcIlxuICAgICAgICAgICAgICByZWFkb25seVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0SWNvblByZWZpeCBbZm9yXT1cInN0YXJ0RGF0ZVBpY2tlclwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxuICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyIHBhbmVsQ2xhc3M9XCJkYXRlcGlja2VyLW9uLXRvcFwiICNzdGFydERhdGVQaWNrZXI+PC9tYXQtZGF0ZXBpY2tlcj5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IGdhcC0zIHctZnVsbCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIHctZnVsbCBtZDp3LTEvMyBvdmVyZmxvdy1oaWRkZW5cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInB5LTFcIj5QcmljZSByYW5nZSAowqMpPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICAgICAgICAgIDxtYXQtbGFiZWw+TWluIChQQ00pPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8bWF0LXNlbGVjdCBbKG5nTW9kZWwpXT1cIm9wdGlvbnMoKS5taW5QcmljZVwiPlxuICAgICAgICAgICAgICBAZm9yIChvcHQgb2YgbWluT3B0aW9ucygpOyB0cmFjayBvcHQudmFsdWUpIHtcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIm9wdC52YWx1ZVwiPnt7IG9wdC5sYWJlbCB9fTwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInB4LTJcIj4tPC9kaXY+XG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxuICAgICAgICAgICAgPG1hdC1sYWJlbD5NYXggKFBDTSk8L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxtYXQtc2VsZWN0IFsobmdNb2RlbCldPVwib3B0aW9ucygpLm1heFByaWNlXCI+XG4gICAgICAgICAgICAgIEBmb3IgKG9wdCBvZiBtYXhPcHRpb25zKCk7IHRyYWNrIG9wdC52YWx1ZSkge1xuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwib3B0LnZhbHVlXCI+e3sgb3B0LmxhYmVsIH19PC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIHctZnVsbCBtZDp3LTEvM1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHktMVwiPk5vLiBvZiBiZWRyb29tczwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XG4gICAgICAgICAgICA8bWF0LWxhYmVsPk1pbjwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgPG1hdC1zZWxlY3QgWyhuZ01vZGVsKV09XCJvcHRpb25zKCkubWluQmVkcm9vbXNcIj5cbiAgICAgICAgICAgICAgQGZvciAob3B0IG9mIG1pbkJlZHJvb20oKTsgdHJhY2sgb3B0LnZhbHVlKSB7XG4gICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJvcHQudmFsdWVcIj57eyBvcHQubGFiZWwgfX08L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJweC0yXCI+LTwvZGl2PlxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICAgICAgICAgIDxtYXQtbGFiZWw+TWF4PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8bWF0LXNlbGVjdCBbKG5nTW9kZWwpXT1cIm9wdGlvbnMoKS5tYXhCZWRyb29tc1wiPlxuICAgICAgICAgICAgICBAZm9yIChvcHQgb2YgbWF4QmVkUm9vbSgpOyB0cmFjayBvcHQudmFsdWUpIHtcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIm9wdC52YWx1ZVwiPnt7IG9wdC5sYWJlbCB9fTwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiaC0xNCBtZDp3LTEvMyBzZWxmLWVuZCB3LWZ1bGxcIj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gKGNsaWNrKT1cIm9uU2VhcmNoKClcIiBjbGFzcz1cInctZnVsbCBtaW4taC0xNFwiPlxuICAgICAgICAgIDxhIGkxOG4+U2VhcmNoPC9hPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19","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 { PropertyUtil, PropertyViewType } from '../../../property-util';\nimport { PropertyFilterBar } from '../../../components/property-filter-bar/property-filter-bar';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/router\";\nimport * as i2 from \"@angular/material/button\";\nimport * as i3 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 showFilter = signal(true, ...(ngDevMode ? [{ debugName: \"showFilter\" }] : []));\n model = {};\n gridView = true;\n searchBar = viewChild('searchBar', ...(ngDevMode ? [{ debugName: \"searchBar\" }] : []));\n selectIndex = 0;\n filter = false;\n options = signal({\n market: '',\n town: '',\n availableFrom: '',\n minBedrooms: '',\n maxBedrooms: '',\n minPrice: 0,\n maxPrice: null,\n location: '',\n }, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n ngOnInit() { }\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 toggleFilter() {\n this.showFilter.update((v) => !v);\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 console.log(qp);\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.3.4\", ngImport: i0, type: PropertyLayoutComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.3.4\", 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 <button mat-icon-button (click)=\\\"toggleFilter()\\\">\\n <mat-icon>tune</mat-icon>\\n </button>\\n </div>\\n </div>\\n </div>\\n <rolatech-property-filter-bar\\n [(show)]=\\\"showFilter\\\"\\n (search)=\\\"onSearch($event)\\\"\\n [(options)]=\\\"options\\\"\\n ></rolatech-property-filter-bar>\\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.RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"directive\", type: i1.RouterOutlet, selector: \"router-outlet\", inputs: [\"name\", \"routerOutletData\"], outputs: [\"activate\", \"deactivate\", \"attach\", \"detach\"], exportAs: [\"outlet\"] }, { kind: \"ngmodule\", type: AngularComponentsModule }, { kind: \"component\", type: i2.MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: i3.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: \"component\", type: PropertyFilterBar, selector: \"rolatech-property-filter-bar\", inputs: [\"show\", \"options\"], outputs: [\"search\", \"reset\", \"showChange\", \"optionsChange\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: PropertyLayoutComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-layout', imports: [AngularCommonModule, AngularComponentsModule, ContainerComponent, SearchBar, PropertyFilterBar], 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 <button mat-icon-button (click)=\\\"toggleFilter()\\\">\\n <mat-icon>tune</mat-icon>\\n </button>\\n </div>\\n </div>\\n </div>\\n <rolatech-property-filter-bar\\n [(show)]=\\\"showFilter\\\"\\n (search)=\\\"onSearch($event)\\\"\\n [(options)]=\\\"options\\\"\\n ></rolatech-property-filter-bar>\\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS9wcm9wZXJ0eS1sYXlvdXQvcHJvcGVydHktbGF5b3V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS9wcm9wZXJ0eS1sYXlvdXQvcHJvcGVydHktbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXNCLE1BQU0sRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQzs7Ozs7QUFTaEcsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGFBQWE7SUFDeEQsZUFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMxQyxJQUFJLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzVCLElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxnREFBQyxDQUFDO0lBQ3JCLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxzREFBQyxDQUFDO0lBQzFCLEtBQUssR0FBbUIsRUFBRSxDQUFDO0lBQzNCLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDaEIsU0FBUyxHQUFHLFNBQVMsQ0FBK0IsV0FBVyxxREFBQyxDQUFDO0lBQ2pFLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDaEIsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUNmLE9BQU8sR0FBRyxNQUFNLENBQXdCO1FBQ3RDLE1BQU0sRUFBRSxFQUFFO1FBQ1YsSUFBSSxFQUFFLEVBQUU7UUFDUixhQUFhLEVBQUUsRUFBRTtRQUNqQixXQUFXLEVBQUUsRUFBRTtRQUNmLFdBQVcsRUFBRSxFQUFFO1FBQ2YsUUFBUSxFQUFFLENBQUM7UUFDWCxRQUFRLEVBQUUsSUFBSTtRQUNkLFFBQVEsRUFBRSxFQUFFO0tBQ2IsbURBQUMsQ0FBQztJQUNILFFBQVEsS0FBVSxDQUFDO0lBQ25CLFlBQVk7UUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBQ0QsYUFBYTtRQUNYLHdCQUF3QjtRQUN4QiwrRUFBK0U7UUFDL0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFDRCxVQUFVO1FBQ1IsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xELENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xELENBQUM7SUFDSCxDQUFDO0lBQ0QsWUFBWTtRQUNWLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFDRCxRQUFRLENBQUMsS0FBVTtRQUNqQixNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUMzQixNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FDMUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLFNBQVMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FDL0YsQ0FDRixDQUFDO1FBQ0YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVoQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUU7WUFDdkIsV0FBVyxFQUFFLEVBQUU7WUFDZixtQkFBbUIsRUFBRSxPQUFPLEVBQUUsb0NBQW9DO1NBQ25FLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxZQUFZLENBQUMsS0FBVTtRQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUU7WUFDdkIsV0FBVyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDN0MsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLG9DQUFvQztTQUNuRSxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxDQUFDLEtBQVU7UUFDaEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFO1lBQ3ZCLFdBQVcsRUFBRSxFQUFFLEVBQUUsUUFBUTtZQUN6QiwyRUFBMkU7U0FDNUUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0FqRVUsdUJBQXVCOzJGQUF2Qix1QkFBdUIsbU9DZHBDLDB2Q0FrQ0Esd2NEeEJZLG1CQUFtQiw2Y0FBRSx1QkFBdUIsMldBQUUsa0JBQWtCLCtEQUFFLFNBQVMsOEhBQUUsaUJBQWlCOzsyRkFJN0YsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUNFLDBCQUEwQixXQUMzQixDQUFDLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZWZmZWN0LCBFbGVtZW50UmVmLCBpbmplY3QsIE9uSW5pdCwgc2lnbmFsLCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlLCBCYXNlQ29tcG9uZW50LCBDb250YWluZXJDb21wb25lbnQsIFNlYXJjaEJhciB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQW5ndWxhckNvbW1vbk1vZHVsZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQgeyBQcm9wZXJ0eVNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBQcm9wZXJ0eVV0aWwsIFByb3BlcnR5Vmlld1R5cGUgfSBmcm9tICcuLi8uLi8uLi9wcm9wZXJ0eS11dGlsJztcbmltcG9ydCB7IFByb3BlcnR5RmlsdGVyQmFyIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9wcm9wZXJ0eS1maWx0ZXItYmFyL3Byb3BlcnR5LWZpbHRlci1iYXInO1xuaW1wb3J0IHsgUHJvcGVydHlTZWFyY2hPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb3BlcnR5LWxheW91dCcsXG4gIGltcG9ydHM6IFtBbmd1bGFyQ29tbW9uTW9kdWxlLCBBbmd1bGFyQ29tcG9uZW50c01vZHVsZSwgQ29udGFpbmVyQ29tcG9uZW50LCBTZWFyY2hCYXIsIFByb3BlcnR5RmlsdGVyQmFyXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LWxheW91dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9wZXJ0eS1sYXlvdXQuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eUxheW91dENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcm9wZXJ0eVNlcnZpY2UgPSBpbmplY3QoUHJvcGVydHlTZXJ2aWNlKTtcbiAgdXRpbCA9IGluamVjdChQcm9wZXJ0eVV0aWwpO1xuICBvcGVuID0gc2lnbmFsKGZhbHNlKTtcbiAgc2hvd0ZpbHRlciA9IHNpZ25hbCh0cnVlKTtcbiAgbW9kZWw6IHsgcT86IHN0cmluZyB9ID0ge307XG4gIGdyaWRWaWV3ID0gdHJ1ZTtcbiAgc2VhcmNoQmFyID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4+KCdzZWFyY2hCYXInKTtcbiAgc2VsZWN0SW5kZXggPSAwO1xuICBmaWx0ZXIgPSBmYWxzZTtcbiAgb3B0aW9ucyA9IHNpZ25hbDxQcm9wZXJ0eVNlYXJjaE9wdGlvbnM+KHtcbiAgICBtYXJrZXQ6ICcnLFxuICAgIHRvd246ICcnLFxuICAgIGF2YWlsYWJsZUZyb206ICcnLFxuICAgIG1pbkJlZHJvb21zOiAnJyxcbiAgICBtYXhCZWRyb29tczogJycsXG4gICAgbWluUHJpY2U6IDAsXG4gICAgbWF4UHJpY2U6IG51bGwsXG4gICAgbG9jYXRpb246ICcnLFxuICB9KTtcbiAgbmdPbkluaXQoKTogdm9pZCB7fVxuICB0b2dnbGVTZWFyY2goKSB7XG4gICAgdGhpcy5vcGVuLnVwZGF0ZSgodikgPT4gIXYpO1xuICB9XG4gIG9uQ2xvc2VTZWFyY2goKSB7XG4gICAgLy8gdGhpcy5vcGVuLnNldChmYWxzZSk7XG4gICAgLy8gdGhpcy5yb3V0ZXIubmF2aWdhdGUoW10sIHsgcXVlcnlQYXJhbXM6IHt9LCBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnIH0pO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3Byb3BlcnRpZXMnXSk7XG4gIH1cbiAgdG9nZ2xlVmlldygpIHtcbiAgICBpZiAodGhpcy5ncmlkVmlldykge1xuICAgICAgdGhpcy5ncmlkVmlldyA9IGZhbHNlO1xuICAgICAgdGhpcy51dGlsLnZpZXdFdmVudC5lbWl0KFByb3BlcnR5Vmlld1R5cGUuTElTVCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZ3JpZFZpZXcgPSB0cnVlO1xuICAgICAgdGhpcy51dGlsLnZpZXdFdmVudC5lbWl0KFByb3BlcnR5Vmlld1R5cGUuR1JJRCk7XG4gICAgfVxuICB9XG4gIHRvZ2dsZUZpbHRlcigpIHtcbiAgICB0aGlzLnNob3dGaWx0ZXIudXBkYXRlKCh2KSA9PiAhdik7XG4gIH1cbiAgb25TZWFyY2goZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IHFwID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgT2JqZWN0LmVudHJpZXMoZXZlbnQpLmZpbHRlcihcbiAgICAgICAgKFtfLCB2XSkgPT4gdiAhPT0gdW5kZWZpbmVkICYmIHYgIT09IG51bGwgJiYgIShBcnJheS5pc0FycmF5KHYpICYmIHYubGVuZ3RoID09PSAwKSAmJiB2ICE9PSAnJyxcbiAgICAgICksXG4gICAgKTtcbiAgICBjb25zb2xlLmxvZyhxcCk7XG5cbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwge1xuICAgICAgcXVlcnlQYXJhbXM6IHFwLFxuICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJywgLy8ga2VlcCBvdGhlciBwYXJhbXMgbGlrZSBzb3J0LCBldGMuXG4gICAgfSk7XG4gIH1cbiAgc2VhcmNoQnlUZXh0KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwge1xuICAgICAgcXVlcnlQYXJhbXM6IHsgcTogZXZlbnQsIHBhZ2U6IDEsIGxpbWl0OiAxNSB9LFxuICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJywgLy8ga2VlcCBvdGhlciBwYXJhbXMgbGlrZSBzb3J0LCBldGMuXG4gICAgfSk7XG4gIH1cbiAgb25SZXNldChldmVudDogYW55KSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW10sIHtcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7fSwgLy8gZW1wdHlcbiAgICAgIC8vIG9taXQgcXVlcnlQYXJhbXNIYW5kbGluZyBzbyBpdCBSRVBMQUNFUyAobm90IG1lcmdlcykg4oaSIGNsZWFycyBldmVyeXRoaW5nXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxyb2xhdGVjaC1jb250YWluZXI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1pbi13LVszMjBweF0gbWF4LXctWzEyODBweF0gbS1hdXRvXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBoLTE2XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIHctZnVsbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicC0zIHRleHQtMnhsIGZvbnQtbWVkaXVtIGN1cnNvci1wb2ludGVyXCIgcm91dGVyTGluaz1cIi9wcm9wZXJ0aWVzXCIgaTE4bj5Qcm9wZXJ0aWVzPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93XCI+XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInRvZ2dsZVNlYXJjaCgpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+c2VhcmNoPC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwidG9nZ2xlVmlldygpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+e3sgZ3JpZFZpZXcgPyAndmlld19saXN0JyA6ICdncmlkX29uJyB9fTwvbWF0LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInRvZ2dsZUZpbHRlcigpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+dHVuZTwvbWF0LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPHJvbGF0ZWNoLXByb3BlcnR5LWZpbHRlci1iYXJcbiAgICAgIFsoc2hvdyldPVwic2hvd0ZpbHRlclwiXG4gICAgICAoc2VhcmNoKT1cIm9uU2VhcmNoKCRldmVudClcIlxuICAgICAgWyhvcHRpb25zKV09XCJvcHRpb25zXCJcbiAgICA+PC9yb2xhdGVjaC1wcm9wZXJ0eS1maWx0ZXItYmFyPlxuICAgIDxyb2xhdGVjaC1zZWFyY2gtYmFyXG4gICAgICBbKHNob3cpXT1cIm9wZW5cIlxuICAgICAgI3NlYXJjaEJhclxuICAgICAgKHNlYXJjaCk9XCJzZWFyY2hCeVRleHQoJGV2ZW50KVwiXG4gICAgICAoY2xvc2UpPVwib25DbG9zZVNlYXJjaCgpXCJcbiAgICA+PC9yb2xhdGVjaC1zZWFyY2gtYmFyPlxuICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGxcIj5cbiAgICAgIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3JvbGF0ZWNoLWNvbnRhaW5lcj5cbiJdfQ==","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.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.3.4\", ngImport: i0, type: PropertyActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.3.4\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktYWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvY29tcG9uZW50cy9wcm9wZXJ0eS1hY3Rpb25zL3Byb3BlcnR5LWFjdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktYWN0aW9ucy9wcm9wZXJ0eS1hY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFTdkQsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsbURBQVksQ0FBQztJQUN0QyxjQUFjLEdBQUcsTUFBTSxFQUFZLENBQUM7SUFDcEMsS0FBSyxHQUFHLE1BQU0sRUFBWSxDQUFDO0lBQzNCLE9BQU8sR0FBRyxNQUFNLEVBQVksQ0FBQztJQUU3QixjQUFjLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUM3QixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUMsMERBQUMsQ0FBQztJQUVILGdCQUFnQixDQUFDLFFBQWtCO1FBQ2pDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFDRCxPQUFPLENBQUMsUUFBa0I7UUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNELFNBQVMsQ0FBQyxRQUFrQjtRQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QixDQUFDO3VHQWxCVSx3QkFBd0I7MkZBQXhCLHdCQUF3QixvVENkckMsa2hCQVNBLHlEREFZLFlBQVksOEJBQUUsZUFBZSxtWEFBRSxhQUFhLDhCQUFFLGFBQWE7OzJGQUsxRCx3QkFBd0I7a0JBUHBDLFNBQVM7K0JBQ0UsMkJBQTJCLFdBQzVCLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLGlCQUd2RCxpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5wdXQsIG91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvcGVydHktYWN0aW9ucycsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgTWF0TWVudU1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1hY3Rpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb3BlcnR5LWFjdGlvbnMuY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eUFjdGlvbnNDb21wb25lbnQge1xuICBwcm9wZXJ0eSA9IGlucHV0LnJlcXVpcmVkPFByb3BlcnR5PigpO1xuICByZXF1ZXN0Vmlld2luZyA9IG91dHB1dDxQcm9wZXJ0eT4oKTtcbiAgb2ZmZXIgPSBvdXRwdXQ8UHJvcGVydHk+KCk7XG4gIGRlcG9zaXQgPSBvdXRwdXQ8UHJvcGVydHk+KCk7XG5cbiAgZGlzcGxheURlcG9zaXQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMucHJvcGVydHkoKS5kZXBvc2l0LnRvRml4ZWQoMik7XG4gIH0pO1xuXG4gIG9uUmVxdWVzdFZpZXdpbmcocHJvcGVydHk6IFByb3BlcnR5KSB7XG4gICAgdGhpcy5yZXF1ZXN0Vmlld2luZy5lbWl0KHByb3BlcnR5KTtcbiAgfVxuICBvbk9mZmVyKHByb3BlcnR5OiBQcm9wZXJ0eSkge1xuICAgIHRoaXMub2ZmZXIuZW1pdChwcm9wZXJ0eSk7XG4gIH1cbiAgb25EZXBvc2l0KHByb3BlcnR5OiBQcm9wZXJ0eSkge1xuICAgIHRoaXMuZGVwb3NpdC5lbWl0KHByb3BlcnR5KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTNcIj5cbiAgPGEgbWF0LXN0cm9rZWQtYnV0dG9uIGNsYXNzPVwiXCIgKGNsaWNrKT1cIm9uUmVxdWVzdFZpZXdpbmcocHJvcGVydHkoKSlcIiBpMThuPlJlcXVlc3Qgdmlld2luZzwvYT5cbiAgQGlmIChwcm9wZXJ0eSgpLnByaWNlVHlwZSAmJiBwcm9wZXJ0eSgpLnByaWNlVHlwZS50b1N0cmluZygpID09PSAnUEFSVElBTCcpIHtcbiAgICA8YSBtYXQtZmxhdC1idXR0b24gY2xhc3M9XCJcIiAoY2xpY2spPVwib25EZXBvc2l0KHByb3BlcnR5KCkpXCIgaTE4bj5QYXkgZGVwb3NpdCDCo3t7IGRpc3BsYXlEZXBvc2l0KCkgfX08L2E+XG4gIH0gQGVsc2Uge1xuICAgIDxhIG1hdC1mbGF0LWJ1dHRvbiBjbGFzcz1cIlwiIChjbGljayk9XCJvbk9mZmVyKHByb3BlcnR5KCkpXCIgaTE4bj5NYWtlIGFuIG9mZmVyPC9hPlxuICB9XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cInJvbGF0ZWNoLXByb3BlcnR5LWFjdGlvbi1jb250YWN0XCI+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=","import { Component, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ImagePlaceholderComponent, ThumbnailComponent } from '@rolatech/angular-components';\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.3.4\", ngImport: i0, type: PropertyItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.toFixed(2) }}</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\"] }], deferBlockDependencies: [() => [ThumbnailComponent]] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: PropertyItemComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-item', imports: [CommonModule, ThumbnailComponent, ImagePlaceholderComponent], 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.toFixed(2) }}</div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvY29tcG9uZW50cy9wcm9wZXJ0eS1pdGVtL3Byb3BlcnR5LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktaXRlbS9wcm9wZXJ0eS1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFRN0YsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsbURBQVksQ0FBQzt1R0FEM0IscUJBQXFCOzJGQUFyQixxQkFBcUIsOE5DWGxDLHMvREFrREEseUREM0NZLFlBQVksK0JBQXNCLHlCQUF5QixnR0FBN0Msa0JBQWtCOzsyRkFJL0IscUJBQXFCO2tCQU5qQyxTQUFTOytCQUNFLHdCQUF3QixXQUN6QixDQUFDLFlBQVksRUFBRSxrQkFBa0IsRUFBRSx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgSW1hZ2VQbGFjZWhvbGRlckNvbXBvbmVudCwgVGh1bWJuYWlsQ29tcG9uZW50IH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb3BlcnR5LWl0ZW0nLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUaHVtYm5haWxDb21wb25lbnQsIEltYWdlUGxhY2Vob2xkZXJDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydHktaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9wZXJ0eS1pdGVtLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlJdGVtQ29tcG9uZW50IHtcbiAgcHJvcGVydHkgPSBpbnB1dC5yZXF1aXJlZDxQcm9wZXJ0eT4oKTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGhvdmVyOmJnLVstLXJ0LXJhaXNlZC1iYWNrZ3JvdW5kXSBjdXJzb3ItcG9pbnRlciBwLTNcIj5cbiAgPGRpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gdy1mdWxsIG1iLTJcIj5cbiAgICAgIDxhIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTNcIj5cbiAgICAgICAgPHNwYW4+SUQ6IHt7IHByb3BlcnR5KCkuaWQgfX08L3NwYW4+XG4gICAgICA8L2E+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgb3ZlcmZsb3cteC1zY3JvbGwgc2Nyb2xsYmFyLWhpZGVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IHB5LTJcIj5cbiAgICAgICAgQGlmIChwcm9wZXJ0eSgpLm1lZGlhKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1pbi13LTI0IHctMzYgb2JqZWN0LWNvdmVyIGFzcGVjdC12aWRlbyByb3VuZGVkLWxnIG1yLTNcIj5cbiAgICAgICAgICAgIEBkZWZlciB7XG4gICAgICAgICAgICAgIDxyb2xhdGVjaC10aHVtYm5haWwgW3NyY109XCJwcm9wZXJ0eSgpLm1lZGlhWzBdLnVybFwiIHNpemU9XCJtZWRpdW1cIiBtb2RlPVwiZnVsbFwiPiA8L3JvbGF0ZWNoLXRodW1ibmFpbD5cbiAgICAgICAgICAgIH0gQHBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJnLVstLXJ0LXJhaXNlZC1iYWNrZ3JvdW5kXSBoLWZ1bGwgdy1mdWxsIG9iamVjdC1jb3ZlciBhc3BlY3QtdmlkZW8gcm91bmRlZC1sZ1wiPjwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWluLXctMjQgdy0zNiBvYmplY3QtY292ZXIgYXNwZWN0LXZpZGVvIHJvdW5kZWQtbGcgbXItM1wiPlxuICAgICAgICAgICAgPHJvbGF0ZWNoLWltYWdlLXBsYWNlaG9sZGVyPjwvcm9sYXRlY2gtaW1hZ2UtcGxhY2Vob2xkZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggdy1mdWxsIGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiB3LWZ1bGxcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sXCI+XG4gICAgICAgICAgICAgIDxkaXY+e3sgcHJvcGVydHkoKS50aXRsZSB9fTwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5saW5lLWZsZXggZ2FwLTEgbXQtMlwiPlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yLTFcIj57eyBwcm9wZXJ0eSgpLmJlZHJvb21zIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gaTE4bj5CZWRyb29tczwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtci0xXCI+e3sgcHJvcGVydHkoKS5iYXRocm9vbXMgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBpMThuPkJhdGhyb29tczwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtci0xXCI+e3sgcHJvcGVydHkoKS5yZWNlcHRpb25zIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gaTE4bj5SZWNlcHRpb25zPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtcmlnaHRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc21cIj7Co3t7IHByb3BlcnR5KCkucHJpY2UudG9GaXhlZCgyKSB9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=","// property-available.pipe.ts\nimport { Pipe } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AvailableDatePipe {\n transform(value) {\n if (!value)\n return '';\n const date = new Date(value);\n const today = new Date();\n // strip time for comparison\n today.setHours(0, 0, 0, 0);\n date.setHours(0, 0, 0, 0);\n if (date <= today) {\n return 'Now';\n }\n return new Intl.DateTimeFormat('en-GB', {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n }).format(date);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: AvailableDatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\n static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.3.4\", ngImport: i0, type: AvailableDatePipe, isStandalone: true, name: \"availableDate\" });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: AvailableDatePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'availableDate',\n standalone: true,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktYXZhaWxhYmxlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGlwZXMvcHJvcGVydHktYXZhaWxhYmxlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNkJBQTZCO0FBQzdCLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQU1wRCxNQUFNLE9BQU8saUJBQWlCO0lBQzVCLFNBQVMsQ0FBQyxLQUEyQjtRQUNuQyxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3RCLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLE1BQU0sS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFFekIsNEJBQTRCO1FBQzVCLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUUxQixJQUFJLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNsQixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxPQUFPLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUU7WUFDdEMsSUFBSSxFQUFFLFNBQVM7WUFDZixLQUFLLEVBQUUsT0FBTztZQUNkLEdBQUcsRUFBRSxTQUFTO1NBQ2YsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQixDQUFDO3VHQWxCVSxpQkFBaUI7cUdBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFKN0IsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsZUFBZTtvQkFDckIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gcHJvcGVydHktYXZhaWxhYmxlLnBpcGUudHNcbmltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQFBpcGUoe1xuICBuYW1lOiAnYXZhaWxhYmxlRGF0ZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEF2YWlsYWJsZURhdGVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nIHwgRGF0ZSB8IG51bGwpOiBzdHJpbmcge1xuICAgIGlmICghdmFsdWUpIHJldHVybiAnJztcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodmFsdWUpO1xuICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcblxuICAgIC8vIHN0cmlwIHRpbWUgZm9yIGNvbXBhcmlzb25cbiAgICB0b2RheS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgICBkYXRlLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuXG4gICAgaWYgKGRhdGUgPD0gdG9kYXkpIHtcbiAgICAgIHJldHVybiAnTm93JztcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCdlbi1HQicsIHtcbiAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgIG1vbnRoOiAnc2hvcnQnLFxuICAgICAgZGF5OiAnbnVtZXJpYycsXG4gICAgfSkuZm9ybWF0KGRhdGUpO1xuICB9XG59XG4iXX0=","import { Component, computed, input, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { AvailableDatePipe } from '../../pipes/property-available.pipe';\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.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 if (this.rentFrequency() === 'MONTHLY') {\n this.holdingDeposit = ((price * 12) / 52).toFixed(2);\n this.securityDeposit = (((price * 12) / 52) * 5).toFixed(2);\n }\n if (this.rentFrequency() === 'WEEKLY') {\n this.holdingDeposit = price.toFixed(2);\n this.securityDeposit = (price * 5).toFixed(2);\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: PropertyPricingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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 flex flex-col gap-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() === 'WEEKLY') {\\n <div class=\\\"text-lg font-bold\\\" i18n>Rent per week</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\\\">\\u00A3{{ displayPrice() }}</div>\\n </div>\\n <div class=\\\"flex justify-between items-center\\\">\\n <div>Available</div>\\n <div>{{ property().availableDate | availableDate }}</div>\\n </div>\\n @if (market() === 'LETTINGS') {\\n <div class=\\\"flex justify-between items-center\\\">\\n <span i18n>Holding Deposit</span>\\n <span>\\u00A3{{ holdingDeposit }}</span>\\n </div>\\n <div class=\\\"flex justify-between items-center font-bold\\\">\\n <span i18n>Security Deposit</span>\\n <span>\\u00A3{{ securityDeposit }}</span>\\n </div>\\n }\\n</div>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"pipe\", type: AvailableDatePipe, name: \"availableDate\" }], encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: PropertyPricingComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-pricing', imports: [CommonModule, MatButtonModule, AvailableDatePipe], encapsulation: ViewEncapsulation.None, template: \"<div class=\\\"py-3 flex flex-col gap-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() === 'WEEKLY') {\\n <div class=\\\"text-lg font-bold\\\" i18n>Rent per week</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\\\">\\u00A3{{ displayPrice() }}</div>\\n </div>\\n <div class=\\\"flex justify-between items-center\\\">\\n <div>Available</div>\\n <div>{{ property().availableDate | availableDate }}</div>\\n </div>\\n @if (market() === 'LETTINGS') {\\n <div class=\\\"flex justify-between items-center\\\">\\n <span i18n>Holding Deposit</span>\\n <span>\\u00A3{{ holdingDeposit }}</span>\\n </div>\\n <div class=\\\"flex justify-between items-center font-bold\\\">\\n <span i18n>Security Deposit</span>\\n <span>\\u00A3{{ securityDeposit }}</span>\\n </div>\\n }\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktcHJpY2luZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvY29tcG9uZW50cy9wcm9wZXJ0eS1wcmljaW5nL3Byb3BlcnR5LXByaWNpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktcHJpY2luZy9wcm9wZXJ0eS1wcmljaW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBa0IsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFTeEUsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxRQUFRO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUNELFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxtREFBWSxDQUFDO0lBQ3RDLEtBQUssR0FBRyxLQUFLLDJEQUFVLENBQUM7SUFDeEIsY0FBYyxDQUFDO0lBQ2YsZUFBZSxDQUFDO0lBQ2hCLFlBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQzNCLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQyx3REFBQyxDQUFDO0lBQ0gsTUFBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDckIsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNDLENBQUMsa0RBQUMsQ0FBQztJQUNILGFBQWEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQzVCLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsRCxDQUFDLHlEQUFDLENBQUM7SUFDSCxnQkFBZ0I7UUFDZCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ3BDLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckQsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEQsQ0FBQztJQUNILENBQUM7dUdBM0JVLHdCQUF3QjsyRkFBeEIsd0JBQXdCLHlWQ2JyQywyc0NBK0JBLHlERHZCWSxZQUFZLDhCQUFFLGVBQWUsMEJBQUUsaUJBQWlCOzsyRkFLL0Msd0JBQXdCO2tCQVBwQyxTQUFTOytCQUNFLDJCQUEyQixXQUM1QixDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsaUJBQWlCLENBQUMsaUJBRzVDLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbnB1dCwgT25Jbml0LCBvdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBBdmFpbGFibGVEYXRlUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3Byb3BlcnR5LWF2YWlsYWJsZS5waXBlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvcGVydHktcHJpY2luZycsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgQXZhaWxhYmxlRGF0ZVBpcGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydHktcHJpY2luZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9wZXJ0eS1wcmljaW5nLmNvbXBvbmVudC5zY3NzJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlQcmljaW5nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jYWxjdWxhdGVEZXBvc2l0KCk7XG4gIH1cbiAgcHJvcGVydHkgPSBpbnB1dC5yZXF1aXJlZDxQcm9wZXJ0eT4oKTtcbiAgcHJpY2UgPSBpbnB1dDxudW1iZXI+KCk7XG4gIGhvbGRpbmdEZXBvc2l0O1xuICBzZWN1cml0eURlcG9zaXQ7XG4gIGRpc3BsYXlQcmljZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5wcm9wZXJ0eSgpLnByaWNlLnRvRml4ZWQoMik7XG4gIH0pO1xuICBtYXJrZXQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMucHJvcGVydHkoKS5tYXJrZXQudG9TdHJpbmcoKTtcbiAgfSk7XG4gIHJlbnRGcmVxdWVuY3kgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMucHJvcGVydHkoKS5yZW50RnJlcXVlbmN5LnRvU3RyaW5nKCk7XG4gIH0pO1xuICBjYWxjdWxhdGVEZXBvc2l0KCkge1xuICAgIGNvbnN0IHByaWNlID0gdGhpcy5wcm9wZXJ0eSgpLnByaWNlO1xuICAgIGlmICh0aGlzLnJlbnRGcmVxdWVuY3koKSA9PT0gJ01PTlRITFknKSB7XG4gICAgICB0aGlzLmhvbGRpbmdEZXBvc2l0ID0gKChwcmljZSAqIDEyKSAvIDUyKS50b0ZpeGVkKDIpO1xuICAgICAgdGhpcy5zZWN1cml0eURlcG9zaXQgPSAoKChwcmljZSAqIDEyKSAvIDUyKSAqIDUpLnRvRml4ZWQoMik7XG4gICAgfVxuICAgIGlmICh0aGlzLnJlbnRGcmVxdWVuY3koKSA9PT0gJ1dFRUtMWScpIHtcbiAgICAgIHRoaXMuaG9sZGluZ0RlcG9zaXQgPSBwcmljZS50b0ZpeGVkKDIpO1xuICAgICAgdGhpcy5zZWN1cml0eURlcG9zaXQgPSAocHJpY2UgKiA1KS50b0ZpeGVkKDIpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInB5LTMgZmxleCBmbGV4LWNvbCBnYXAtM1wiPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyXCI+XG4gICAgQGlmIChtYXJrZXQoKSA9PT0gJ0xFVFRJTkdTJyAmJiByZW50RnJlcXVlbmN5KCkgPT09ICdNT05USExZJykge1xuICAgICAgPGRpdiBjbGFzcz1cInRleHQtbGcgZm9udC1ib2xkXCIgaTE4bj5SZW50IHBlciBtb250aDwvZGl2PlxuICAgIH1cbiAgICBAaWYgKG1hcmtldCgpID09PSAnTEVUVElOR1MnICYmIHJlbnRGcmVxdWVuY3koKSA9PT0gJ1dFRUtMWScpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxnIGZvbnQtYm9sZFwiIGkxOG4+UmVudCBwZXIgd2VlazwvZGl2PlxuICAgIH1cbiAgICBAaWYgKG1hcmtldCgpID09PSAnTEVUVElOR1MnICYmIHJlbnRGcmVxdWVuY3koKSA9PT0gJ05PVF9TUEVDSUZJRUQnKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZyBmb250LWJvbGRcIiBpMThuPlJlbnQgcHJpY2U8L2Rpdj5cbiAgICB9XG4gICAgQGlmIChtYXJrZXQoKSA9PT0gJ1NBTEVTJykge1xuICAgICAgPGRpdiBjbGFzcz1cInRleHQtbGcgZm9udC1ib2xkXCIgaTE4bj5QcmljZTwvZGl2PlxuICAgIH1cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC14bCBmb250LWJvbGRcIj7Co3t7IGRpc3BsYXlQcmljZSgpIH19PC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyXCI+XG4gICAgPGRpdj5BdmFpbGFibGU8L2Rpdj5cbiAgICA8ZGl2Pnt7IHByb3BlcnR5KCkuYXZhaWxhYmxlRGF0ZSB8IGF2YWlsYWJsZURhdGUgfX08L2Rpdj5cbiAgPC9kaXY+XG4gIEBpZiAobWFya2V0KCkgPT09ICdMRVRUSU5HUycpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyXCI+XG4gICAgICA8c3BhbiBpMThuPkhvbGRpbmcgRGVwb3NpdDwvc3Bhbj5cbiAgICAgIDxzcGFuPsKje3sgaG9sZGluZ0RlcG9zaXQgfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBmb250LWJvbGRcIj5cbiAgICAgIDxzcGFuIGkxOG4+U2VjdXJpdHkgRGVwb3NpdDwvc3Bhbj5cbiAgICAgIDxzcGFuPsKje3sgc2VjdXJpdHlEZXBvc2l0IH19PC9zcGFuPlxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cbiJdfQ==","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.3.4\", ngImport: i0, type: PropertyInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.3.4\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktaW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvY29tcG9uZW50cy9wcm9wZXJ0eS1pbmZvL3Byb3BlcnR5LWluZm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktaW5mby9wcm9wZXJ0eS1pbmZvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQVkzRCxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxtREFBWSxDQUFDO0lBQ3RDLElBQUksR0FBRyxNQUFNLEVBQVksQ0FBQztJQUMxQixVQUFVLEdBQUcsS0FBSyxDQUFVLEtBQUssc0RBQUMsQ0FBQztJQUNuQyxNQUFNLENBQUMsUUFBa0I7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2IsTUFBTSxLQUFLLENBQUM7dUdBUkQscUJBQXFCOzJGQUFyQixxQkFBcUIsMGJDaEJsQyx1NUNBK0JBLHlERHZCWSxlQUFlLHFOQUFFLGFBQWEsbUxBQUUsWUFBWTs7MkZBUTNDLHFCQUFxQjtrQkFWakMsU0FBUzsrQkFDRSx3QkFBd0IsV0FDekIsQ0FBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQyxpQkFHeEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSixFQUFFLEVBQUUsd0JBQXdCO3FCQUM3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIG91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvcGVydHktaW5mbycsXG4gIGltcG9ydHM6IFtNYXRCdXR0b25Nb2R1bGUsIE1hdEljb25Nb2R1bGUsIFJvdXRlck1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1pbmZvLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb3BlcnR5LWluZm8uY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgaWQ6ICdyb2xhdGVjaC1wcm9wZXJ0eS1pbmZvJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlJbmZvQ29tcG9uZW50IHtcbiAgcHJvcGVydHkgPSBpbnB1dC5yZXF1aXJlZDxQcm9wZXJ0eT4oKTtcbiAgd2lzaCA9IG91dHB1dDxQcm9wZXJ0eT4oKTtcbiAgaW5XaXNoTGlzdCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgb25XaXNoKHByb3BlcnR5OiBQcm9wZXJ0eSkge1xuICAgIHRoaXMud2lzaC5lbWl0KHByb3BlcnR5KTtcbiAgfVxuICBvblNoYXJlKCkgeyB9XG4gIG9uTW9yZSgpIHsgfVxufVxuIiwiPGRpdj5cbiAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LTJ4bCBmb250LW1lZGl1bVwiPnt7IHByb3BlcnR5KCkudGl0bGUgfX08L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgcHgtM1wiPlxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIm9uV2lzaChwcm9wZXJ0eSgpKVwiPlxuICAgICAgICBAaWYgKGluV2lzaExpc3QoKSkge1xuICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGhlaWdodD1cIjI0cHhcIiB2aWV3Qm94PVwiMCAtOTYwIDk2MCA5NjBcIiB3aWR0aD1cIjI0cHhcIiBmaWxsPVwiIzVmNjM2OFwiPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgZD1cIm0yOTMtMjAzLjA4IDQ5LjYyLTIxMi41NC0xNjQuOTMtMTQyLjg0IDIxNy4yMy0xOC44NUw0ODAtNzc3LjY5bDg1LjA4IDIwMC4zOCAyMTcuMjMgMTguODUtMTY0LjkzIDE0Mi44NEw2NjctMjAzLjA4IDQ4MC0zMTUuOTIgMjkzLTIwMy4wOFpcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgaGVpZ2h0PVwiMjRweFwiIHZpZXdCb3g9XCIwIC05NjAgOTYwIDk2MFwiIHdpZHRoPVwiMjRweFwiIGZpbGw9XCIjNWY2MzY4XCI+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBkPVwibTM1NC0yODcgMTI2LTc2IDEyNiA3Ny0zMy0xNDQgMTExLTk2LTE0Ni0xMy01OC0xMzYtNTggMTM1LTE0NiAxMyAxMTEgOTctMzMgMTQzWm0tNjEgODMuOTIgNDkuNjItMjEyLjU0LTE2NC45My0xNDIuODQgMjE3LjIzLTE4Ljg1TDQ4MC03NzcuNjlsODUuMDggMjAwLjM4IDIxNy4yMyAxOC44NS0xNjQuOTMgMTQyLjg0TDY2Ny0yMDMuMDggNDgwLTMxNS45MiAyOTMtMjAzLjA4Wk00ODAtNDcwWlwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICB9XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJvblNoYXJlKClcIj5cbiAgICAgICAgPG1hdC1pY29uPnNoYXJlPC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIm9uTW9yZSgpXCI+XG4gICAgICAgIDxtYXQtaWNvbj5tb3JlX3ZlcnQ8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IFtpbm5lckhUTUxdPVwicHJvcGVydHkoKS5kZXNjcmlwdGlvblwiPlxuICAgIDwhLS0ge3sgcHJvcGVydHkoKS5kZXNjcmlwdGlvbiB9fSAtLT5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==","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.3.4\", ngImport: i0, type: PropertySectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.3.4\", 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.3.4\", ngImport: i0, type: PropertyVideoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.3.4\", 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.3.4\", ngImport: i0, type: PropertyActionContactComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.3.4\", 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.3.4\", 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.3.4\", ngImport: i0, type: PropertyAgentRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.3.4\", 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.3.4\", ngImport: i0, type: PropertyHighlights, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.3.4\", 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+)',\n B: '(81-91)',\n C: '(69-80)',\n D: '(55-68)',\n E: '(39-54)',\n F: '(21-38)',\n 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() {\n return this.topY + this.rows * (this.rowH + this.gapY) + 22;\n }\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() {\n return this.leftPadding;\n }\n get maxW() {\n return this.wedgeMinW + 6 * this.wedgeDelta;\n } // width of G (widest)\n // helpers\n wedgeX(i) {\n return this.leftPadding + this.rangeColW + 12;\n }\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) {\n return this.topY + i * (this.rowH + this.gapY);\n }\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) {\n return Math.max(1, Math.min(100, Math.round(s)));\n }\n // add below COLORS, bandFromScore...\n colorForBand(b) {\n return COLORS[b];\n }\n colorForScore(s) {\n return this.colorForBand(bandFromScore(s));\n }\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) {\n return this.textColorForBand(bandFromScore(s));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: EpcChart, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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 x=\\\"0\\\" y=\\\"0\\\" [attr.width]=\\\"width\\\" [attr.height]=\\\"height\\\" fill=\\\"none\\\" stroke=\\\"var(--rt-text-primary)\\\" stroke-width=\\\"2\\\" />\\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.3.4\", 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 x=\\\"0\\\" y=\\\"0\\\" [attr.width]=\\\"width\\\" [attr.height]=\\\"height\\\" fill=\\\"none\\\" stroke=\\\"var(--rt-text-primary)\\\" stroke-width=\\\"2\\\" />\\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXBjLWNoYXJ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvZXBjLWNoYXJ0L2VwYy1jaGFydC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9jb21wb25lbnRzL2VwYy1jaGFydC9lcGMtY2hhcnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBbUIsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOztBQUcxRSxNQUFNLEtBQUssR0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQzFELE1BQU0sTUFBTSxHQUF5QjtJQUNuQyxDQUFDLEVBQUUsT0FBTztJQUNWLENBQUMsRUFBRSxTQUFTO0lBQ1osQ0FBQyxFQUFFLFNBQVM7SUFDWixDQUFDLEVBQUUsU0FBUztJQUNaLENBQUMsRUFBRSxTQUFTO0lBQ1osQ0FBQyxFQUFFLFNBQVM7SUFDWixDQUFDLEVBQUUsUUFBUTtDQUNaLENBQUM7QUFDRixNQUFNLE1BQU0sR0FBeUI7SUFDbkMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxRQUFRO0lBQ3RCLENBQUMsRUFBRSxTQUFTO0lBQ1osQ0FBQyxFQUFFLFNBQVM7SUFDWixDQUFDLEVBQUUsU0FBUztJQUNaLENBQUMsRUFBRSxTQUFTO0lBQ1osQ0FBQyxFQUFFLFNBQVM7SUFDWixDQUFDLEVBQUUsU0FBUztDQUNiLENBQUM7QUFFRixTQUFTLGFBQWEsQ0FBQyxDQUFpQjtJQUN0QyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pCLElBQUks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LG1DQUFtQztJQUMxRSxDQUFDO0lBQ0QsaUJBQWlCLENBQUMsQ0FBUztRQUN6QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRCxDQUFDO3VHQW5JVSxRQUFROzJGQUFSLFFBQVEsMmlCQzFDckIscXpHQStHQSx5REQxRVksWUFBWTs7MkZBS1gsUUFBUTtrQkFQcEIsU0FBUzsrQkFDRSxvQkFBb0IsV0FDckIsQ0FBQyxZQUFZLENBQUMsUUFHakIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIGNvbXB1dGVkLCBpbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG50eXBlIEJhbmQgPSAnQScgfCAnQicgfCAnQycgfCAnRCcgfCAnRScgfCAnRicgfCAnRyc7XG5cbmNvbnN0IEJBTkRTOiBCYW5kW10gPSBbJ0EnLCAnQicsICdDJywgJ0QnLCAnRScsICdGJywgJ0cnXTtcbmNvbnN0IFJBTkdFUzogUmVjb3JkPEJhbmQsIHN0cmluZz4gPSB7XG4gIEE6ICcoOTIrKScsXG4gIEI6ICcoODEtOTEpJyxcbiAgQzogJyg2OS04MCknLFxuICBEOiAnKDU1LTY4KScsXG4gIEU6ICcoMzktNTQpJyxcbiAgRjogJygyMS0zOCknLFxuICBHOiAnKDEtMjApJyxcbn07XG5jb25zdCBDT0xPUlM6IFJlY29yZDxCYW5kLCBzdHJpbmc+ID0ge1xuICBBOiAnIzBFOUY2RScsIC8vIGdyZWVuXG4gIEI6ICcjMTBCOTgxJyxcbiAgQzogJyM4NENDMTYnLFxuICBEOiAnI0Y1OUUwQicsXG4gIEU6ICcjRjk3MzE2JyxcbiAgRjogJyNGQjcxODUnLFxuICBHOiAnI0RDMjYyNicsXG59O1xuXG5mdW5jdGlvbiBiYW5kRnJvbVNjb3JlKHM/OiBudW1iZXIgfCBudWxsKTogQmFuZCB7XG4gIGNvbnN0IHYgPSBzID8/IDA7XG4gIGlmICh2ID49IDkyKSByZXR1cm4gJ0EnO1xuICBpZiAodiA+PSA4MSkgcmV0dXJuICdCJztcbiAgaWYgKHYgPj0gNjkpIHJldHVybiAnQyc7XG4gIGlmICh2ID49IDU1KSByZXR1cm4gJ0QnO1xuICBpZiAodiA+PSAzOSkgcmV0dXJuICdFJztcbiAgaWYgKHYgPj0gMjEpIHJldHVybiAnRic7XG4gIHJldHVybiAnRyc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWVwYy1jaGFydCcsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vZXBjLWNoYXJ0Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZXBjLWNoYXJ0LnNjc3MnLFxuICBob3N0OiB7IGNsYXNzOiAndy1mdWxsJyB9LFxufSlcbmV4cG9ydCBjbGFzcyBFcGNDaGFydCB7XG4gIC8vIC0tLSBpbnB1dHMgKHNpZ25hbHMpIC0tLVxuICBjdXJyZW50U2NvcmUgPSBpbnB1dDxudW1iZXIgfCBudWxsPihudWxsKTsgLy8gMS4uMTAwXG4gIHBvdGVudGlhbFNjb3JlID0gaW5wdXQ8bnVtYmVyIHwgbnVsbD4obnVsbCk7IC8vIDEuLjEwMFxuICBzaG93Q2FwdGlvbnMgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcblxuICAvLyAtLS0gbGF5b3V0IC0tLVxuICB3aWR0aCA9IDkyMDtcblxuICBsZWZ0UGFkZGluZyA9IDI0O1xuICBoZWFkZXJZID0gNDA7XG5cbiAgcHJpdmF0ZSByYW5nZUNvbFcgPSA5MDtcbiAgcHJpdmF0ZSBnYXBZID0gMTA7XG4gIHByaXZhdGUgdG9wWSA9IDExMDsgLy8gdG9wIG9mIGZpcnN0IHJvdyBhcmVhXG4gIHJvd0ggPSA0ODsgLy8gaGVpZ2h0IG9mIGVhY2ggd2VkZ2Ugcm93XG4gIHJvd3MgPSA3O1xuXG4gIC8vIHdlZGdlIGdlb21ldHJ5XG4gIHByaXZhdGUgd2VkZ2VNYXhXID0gNDIwOyAvLyB3aWR0aCBvZiAnQScgcm93XG4gIHByaXZhdGUgd2VkZ2VNaW5XID0gMjIwO1xuICBwcml2YXRlIHdlZGdlRGVsdGEgPSA0NDsgLy8gZGVjcmVtZW50IHBlciByb3dcbiAgcHJpdmF0ZSBjdXQgPSAyNDsgLy8gcmlnaHQgc2xhbnQgZGVwdGhcblxuICAvLyBhcnJvdyBjb2x1bW5zXG4gIGFycm93VyA9IDEwNDtcbiAgYXJyb3dIID0gNDQ7XG4gIHByaXZhdGUgY29sR2FwID0gMTMwO1xuICBwcml2YXRlIHdlZGdlQXJlYVJpZ2h0ID0gdGhpcy5sZWZ0UGFkZGluZyArIHRoaXMucmFuZ2VDb2xXICsgMTIgKyB0aGlzLndlZGdlTWF4VyArIDIwO1xuICBjdXJyZW50Q29sWCA9IHRoaXMud2VkZ2VBcmVhUmlnaHQgKyA4MDtcbiAgcG90ZW50aWFsQ29sWCA9IHRoaXMuY3VycmVudENvbFggKyB0aGlzLmNvbEdhcDtcblxuICAvLyBjYXB0aW9uc1xuICB0b3BDYXB0aW9uWSA9IHRoaXMudG9wWSAtIDIyO1xuICBnZXQgYm90dG9tQ2FwdGlvblkoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9wWSArIHRoaXMucm93cyAqICh0aGlzLnJvd0ggKyB0aGlzLmdhcFkpICsgMjI7XG4gIH1cblxuICAvLyBvdmVyYWxsIGhlaWdodFxuICBnZXQgaGVpZ2h0KCkge1xuICAgIHJldHVybiB0aGlzLmJvdHRvbUNhcHRpb25ZICsgNTY7XG4gIH1cblxuICAvLyBleHBvc2UgY29uc3RhbnRzIHRvIHRlbXBsYXRlXG4gIGJhbmRzID0gQkFORFM7XG4gIFJBTkdFUyA9IFJBTkdFUztcbiAgQ09MT1JTID0gQ09MT1JTO1xuICBnZXQgcmFuZ2VYKCkge1xuICAgIHJldHVybiB0aGlzLmxlZnRQYWRkaW5nO1xuICB9XG4gIGdldCBtYXhXKCkge1xuICAgIHJldHVybiB0aGlzLndlZGdlTWluVyArIDYgKiB0aGlzLndlZGdlRGVsdGE7XG4gIH0gLy8gd2lkdGggb2YgRyAod2lkZXN0KVxuXG4gIC8vIGhlbHBlcnNcbiAgcHJpdmF0ZSB3ZWRnZVgoaTogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMubGVmdFBhZGRpbmcgKyB0aGlzLnJhbmdlQ29sVyArIDEyO1xuICB9XG4gIC8vIHByaXZhdGUgd2VkZ2VXKGk6IG51bWJlcikgeyByZXR1cm4gdGhpcy53ZWRnZU1heFcgLSAoaSAqIHRoaXMud2VkZ2VEZWx0YSk7IH1cbiAgcHJpdmF0ZSB3ZWRnZVcoaTogbnVtYmVyKSB7XG4gICAgLy8gQS4uRyA9PiAwLi42IOKGkiB3aWR0aHMgaW5jcmVhc2UgZG93bndhcmRcbiAgICByZXR1cm4gdGhpcy53ZWRnZU1pblcgKyBpICogdGhpcy53ZWRnZURlbHRhO1xuICB9XG4gIHJvd1koaTogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMudG9wWSArIGkgKiAodGhpcy5yb3dIICsgdGhpcy5nYXBZKTtcbiAgfVxuXG4gIHdlZGdlUG9pbnRzMShpOiBudW1iZXIpIHtcbiAgICBjb25zdCB4ID0gdGhpcy53ZWRnZVgoaSksXG4gICAgICB5ID0gdGhpcy5yb3dZKGkpLFxuICAgICAgdyA9IHRoaXMud2VkZ2VXKGkpLFxuICAgICAgaCA9IHRoaXMucm93SCxcbiAgICAgIGMgPSB0aGlzLmN1dDtcbiAgICAvLyByZWN0YW5nbGUgd2l0aCByaWdodCBjaGV2cm9uIHRpcFxuICAgIC8vICh4LHkpIOKGkiAoeCt3LWMseSkg4oaSICh4K3cseStoLzIpIOKGkiAoeCt3LWMseStoKSDihpIgKHgseStoKVxuICAgIHJldHVybiBgJHt4fSwke3l9ICR7eCArIHcgLSBjfSwke3l9ICR7eCArIHd9LCR7eSArIGggLyAyfSAke3ggKyB3IC0gY30sJHt5ICsgaH0gJHt4fSwke3kgKyBofWA7XG4gIH1cbiAgd2VkZ2VQb2ludHMoaTogbnVtYmVyKSB7XG4gICAgY29uc3QgeCA9IHRoaXMud2VkZ2VYKGkpLFxuICAgICAgeSA9IHRoaXMucm93WShpKSxcbiAgICAgIHcgPSB0aGlzLndlZGdlVyhpKSxcbiAgICAgIGggPSB0aGlzLnJvd0g7XG4gICAgLy8gcmVjdGFuZ2xlOiAoeCx5KSDihpIgKHgrdyx5KSDihpIgKHgrdyx5K2gpIOKGkiAoeCx5K2gpXG4gICAgcmV0dXJuIGAke3h9LCR7eX0gJHt4ICsgd30sJHt5fSAke3ggKyB3fSwke3kgKyBofSAke3h9LCR7eSArIGh9YDtcbiAgfVxuXG4gIHdlZGdlTGV0dGVyWChpOiBudW1iZXIpIHtcbiAgICAvLyBwbGFjZSBvbiB0aGUgdHJhaWxpbmcgKHJpZ2h0KSBlbmQgb2Ygd2VkZ2UsIGp1c3QgYmVmb3JlIGNoZXZyb24gdGlwXG4gICAgcmV0dXJuIHRoaXMud2VkZ2VYKGkpICsgdGhpcy53ZWRnZVcoaSkgLSB0aGlzLmN1dCAtIDEwO1xuICB9XG5cbiAgLy8gYXJyb3cgYmFkZ2UgKGxlZnQtcG9pbnRpbmcpXG4gIGFycm93UG9pbnRzKCkge1xuICAgIGNvbnN0IHcgPSB0aGlzLmFycm93VyxcbiAgICAgIGggPSB0aGlzLmFycm93SCxcbiAgICAgIHRpcCA9IDE4OyAvLyB0aXAgZGVwdGhcbiAgICAvLyAodywwKSDihpIgKHRpcCwwKSDihpIgKDAsaC8yKSDihpIgKHRpcCxoKSDihpIgKHcsaCkg4oaSIGNsb3NlXG4gICAgcmV0dXJuIGAke3d9LDAgJHt0aXB9LDAgMCwke2ggLyAyfSAke3RpcH0sJHtofSAke3d9LCR7aH1gO1xuICB9XG5cbiAgLy8gdmVydGljYWwgcGxhY2VtZW50OiBjZW50ZXIgdGhlIGFycm93IGluIHRoZSBiYW5kIHJvdyBmb3IgdGhlIGdpdmVuIHNjb3JlXG4gIGFycm93WShzY29yZTogbnVtYmVyKSB7XG4gICAgY29uc3QgYiA9IGJhbmRGcm9tU2NvcmUoc2NvcmUpO1xuICAgIGNvbnN0IHJvd0luZGV4ID0gdGhpcy5iYW5kcy5pbmRleE9mKGIpO1xuICAgIGNvbnN0IHkgPSB0aGlzLnJvd1kocm93SW5kZXgpICsgKHRoaXMucm93SCAtIHRoaXMuYXJyb3dIKSAvIDI7XG4gICAgcmV0dXJuIE1hdGgubWF4KHksIHRoaXMudG9wWSk7IC8vIHNhZmV0eVxuICB9XG5cbiAgY2xhbXBTY29yZShzOiBudW1iZXIpIHtcbiAgICByZXR1cm4gTWF0aC5tYXgoMSwgTWF0aC5taW4oMTAwLCBNYXRoLnJvdW5kKHMpKSk7XG4gIH1cblxuICAvLyBhZGQgYmVsb3cgQ09MT1JTLCBiYW5kRnJvbVNjb3JlLi4uXG4gIGNvbG9yRm9yQmFuZChiOiBCYW5kKSB7XG4gICAgcmV0dXJuIENPTE9SU1tiXTtcbiAgfVxuICBjb2xvckZvclNjb3JlKHM6IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLmNvbG9yRm9yQmFuZChiYW5kRnJvbVNjb3JlKHMpKTtcbiAgfVxuXG4gIC8vIHNpbXBsZSBjb250cmFzdCBzbyBudW1iZXJzIHN0YXkgcmVhZGFibGVcbiAgdGV4dENvbG9yRm9yQmFuZChiOiBCYW5kKSB7XG4gICAgY29uc3QgaGV4ID0gdGhpcy5jb2xvckZvckJhbmQoYikucmVwbGFjZSgnIycsICcnKTtcbiAgICBjb25zdCByID0gcGFyc2VJbnQoaGV4LnNsaWNlKDAsIDIpLCAxNik7XG4gICAgY29uc3QgZyA9IHBhcnNlSW50KGhleC5zbGljZSgyLCA0KSwgMTYpO1xuICAgIGNvbnN0IGJsID0gcGFyc2VJbnQoaGV4LnNsaWNlKDQsIDYpLCAxNik7XG4gICAgY29uc3QgeWlxID0gKHIgKiAyOTkgKyBnICogNTg3ICsgYmwgKiAxMTQpIC8gMTAwMDtcbiAgICByZXR1cm4geWlxID49IDE3MCA/ICcjMTExJyA6ICcjZmZmJzsgLy8gbGlnaHQgYmcg4oaSIGRhcmsgdGV4dCwgZWxzZSB3aGl0ZVxuICB9XG4gIHRleHRDb2xvckZvclNjb3JlKHM6IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLnRleHRDb2xvckZvckJhbmQoYmFuZEZyb21TY29yZShzKSk7XG4gIH1cbn1cbiIsIjxzdmcgW2F0dHIudmlld0JveF09XCInMCAwICcgKyB3aWR0aCArICcgJyArIGhlaWdodFwiIGNsYXNzPVwidy1mdWxsIGgtYXV0b1wiPlxuICA8IS0tIG91dGVyIGJvcmRlciAtLT5cbiAgPHJlY3QgeD1cIjBcIiB5PVwiMFwiIFthdHRyLndpZHRoXT1cIndpZHRoXCIgW2F0dHIuaGVpZ2h0XT1cImhlaWdodFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwidmFyKC0tcnQtdGV4dC1wcmltYXJ5KVwiIHN0cm9rZS13aWR0aD1cIjJcIiAvPlxuXG4gIDwhLS0gaGVhZGVyIHJvdyAtLT5cbiAgPHRleHQgW2F0dHIueF09XCJsZWZ0UGFkZGluZ1wiIFthdHRyLnldPVwiaGVhZGVyWVwiIGZvbnQtd2VpZ2h0PVwiNzAwXCIgZm9udC1zaXplPVwiMTZcIiBmaWxsPVwidmFyKC0tcnQtdGV4dC1wcmltYXJ5KVwiPlxuICAgIEVuZXJneSBSYXRpbmdcbiAgPC90ZXh0PlxuICA8dGV4dFxuICAgIFthdHRyLnhdPVwiY3VycmVudENvbFggKyBhcnJvd1cvMlwiXG4gICAgW2F0dHIueV09XCJoZWFkZXJZXCJcbiAgICB0ZXh0LWFuY2hvcj1cIm1pZGRsZVwiXG4gICAgZm9udC13ZWlnaHQ9XCI3MDBcIlxuICAgIGZvbnQtc2l6ZT1cIjE2XCJcbiAgICBmaWxsPVwidmFyKC0tcnQtdGV4dC1wcmltYXJ5KVwiXG4gID5cbiAgICBDdXJyZW50XG4gIDwvdGV4dD5cbiAgPHRleHRcbiAgICBbYXR0ci54XT1cInBvdGVudGlhbENvbFggKyBhcnJvd1cvMlwiXG4gICAgW2F0dHIueV09XCJoZWFkZXJZXCJcbiAgICB0ZXh0LWFuY2hvcj1cIm1pZGRsZVwiXG4gICAgZm9udC13ZWlnaHQ9XCI3MDBcIlxuICAgIGZvbnQtc2l6ZT1cIjE2XCJcbiAgICBmaWxsPVwidmFyKC0tcnQtdGV4dC1wcmltYXJ5KVwiXG4gID5cbiAgICBQb3RlbnRpYWxcbiAgPC90ZXh0PlxuICA8bGluZVxuICAgIHgxPVwiMFwiXG4gICAgW2F0dHIueTFdPVwiaGVhZGVyWSsxMFwiXG4gICAgW2F0dHIueDJdPVwid2lkdGggLSAxNlwiXG4gICAgW2F0dHIueTJdPVwiaGVhZGVyWSsxMFwiXG4gICAgc3Ryb2tlPVwidmFyKC0tcnQtdGV4dC1wcmltYXJ5KVwiXG4gICAgc3Ryb2tlLXdpZHRoPVwiMlwiXG4gIC8+XG5cbiAgPCEtLSB0b3AvYm90dG9tIGNhcHRpb25zIC0tPlxuICBAaWYgKHNob3dDYXB0aW9ucygpKSB7XG4gIDx0ZXh0IFthdHRyLnhdPVwibGVmdFBhZGRpbmdcIiBbYXR0ci55XT1cInRvcENhcHRpb25ZXCIgZmlsbD1cIiM5Q0EzQUZcIiBmb250LXNpemU9XCIyMFwiPlxuICAgIHZlcnkgZW5lcmd5IGVmZmljaWVudCAtIGxvd2VyIHJ1bm5pbmcgY29zdHNcbiAgPC90ZXh0PlxuICA8dGV4dCBbYXR0ci54XT1cImxlZnRQYWRkaW5nXCIgW2F0dHIueV09XCJib3R0b21DYXB0aW9uWVwiIGZpbGw9XCIjOUNBM0FGXCIgZm9udC1zaXplPVwiMjBcIj5cbiAgICBub3QgZW5lcmd5IGVmZmljaWVudCAtIGhpZ2hlciBydW5uaW5nIGNvc3RzXG4gIDwvdGV4dD5cbiAgfVxuXG4gIDwhLS0gV2VkZ2VzIChBLi5HKSAtLT5cbiAgQGZvciAoYiBvZiBiYW5kczsgdHJhY2sgYjsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgPCEtLSByYW5nZSB0ZXh0IGNvbHVtbiAtLT5cbiAgPHRleHQgW2F0dHIueF09XCJyYW5nZVhcIiBbYXR0ci55XT1cInJvd1koaSkgKyByb3dILzIgKyA1XCIgZmlsbD1cIiM2QjcyODBcIiBmb250LXNpemU9XCIxNlwiPnt7IFJBTkdFU1tiXSB9fTwvdGV4dD5cblxuICA8IS0tIGNvbG9yZWQgd2VkZ2UgLS0+XG4gIDxwb2x5Z29uIFthdHRyLnBvaW50c109XCJ3ZWRnZVBvaW50cyhpKVwiIFthdHRyLmZpbGxdPVwiQ09MT1JTW2JdXCIgc3Ryb2tlPVwibm9uZVwiIC8+XG5cbiAgPCEtLSBiYW5kIGxldHRlciAtLT5cbiAgPHRleHRcbiAgICBbYXR0ci54XT1cIndlZGdlTGV0dGVyWChpKVwiXG4gICAgW2F0dHIueV09XCJyb3dZKGkpICsgcm93SC8yICsgOFwiXG4gICAgZmlsbD1cIndoaXRlXCJcbiAgICBmb250LXNpemU9XCIyOFwiXG4gICAgZm9udC13ZWlnaHQ9XCI3MDBcIlxuICAgIHRleHQtYW5jaG9yPVwiZW5kXCJcbiAgPlxuICAgIHt7IGIgfX1cbiAgPC90ZXh0PlxuICB9XG5cbiAgPCEtLSBDdXJyZW50IGFycm93IGJhZGdlIC0tPlxuICBAaWYgKGN1cnJlbnRTY29yZSgpICE9PSBudWxsKSB7XG4gIDxnIFthdHRyLnRyYW5zZm9ybV09XCIndHJhbnNsYXRlKCcgKyBjdXJyZW50Q29sWCArICcsJyArIGFycm93WShjdXJyZW50U2NvcmUoKSEpICsgJyknXCI+XG4gICAgPHBvbHlnb24gW2F0dHIucG9pbnRzXT1cImFycm93UG9pbnRzKClcIiBbYXR0ci5maWxsXT1cImNvbG9yRm9yU2NvcmUoY3VycmVudFNjb3JlKCkhKVwiPjwvcG9seWdvbj5cbiAgICA8dGV4dFxuICAgICAgW2F0dHIueF09XCJhcnJvd1cvMiArIDZcIlxuICAgICAgW2F0dHIueV09XCJhcnJvd0gvMiArIDlcIlxuICAgICAgdGV4dC1hbmNob3I9XCJtaWRkbGVcIlxuICAgICAgZm9udC1zaXplPVwiMjRcIlxuICAgICAgZm9udC13ZWlnaHQ9XCI4MDBcIlxuICAgICAgW2F0dHIuZmlsbF09XCJ0ZXh0Q29sb3JGb3JTY29yZShjdXJyZW50U2NvcmUoKSEpXCJcbiAgICA+XG4gICAgICB7eyBjbGFtcFNjb3JlKGN1cnJlbnRTY29yZSgpISkgfX1cbiAgICA8L3RleHQ+XG4gICAgPCEtLSB1bmRlcmxpbmUgKG9wdGlvbmFsKSAtLT5cbiAgICA8cmVjdFxuICAgICAgW2F0dHIueF09XCJhcnJvd1cvMiAtIDEyXCJcbiAgICAgIFthdHRyLnldPVwiYXJyb3dILzIgKyAxMlwiXG4gICAgICB3aWR0aD1cIjM2XCJcbiAgICAgIGhlaWdodD1cIjNcIlxuICAgICAgW2F0dHIuZmlsbF09XCJ0ZXh0Q29sb3JGb3JTY29yZShjdXJyZW50U2NvcmUoKSEpXCJcbiAgICAgIG9wYWNpdHk9XCIwLjhcIlxuICAgIC8+XG4gIDwvZz5cbiAgfVxuXG4gIDwhLS0gUG90ZW50aWFsIGFycm93IGJhZGdlIC0tPlxuICBAaWYgKHBvdGVudGlhbFNjb3JlKCkgIT09IG51bGwpIHtcbiAgPGcgW2F0dHIudHJhbnNmb3JtXT1cIid0cmFuc2xhdGUoJyArIHBvdGVudGlhbENvbFggKyAnLCcgKyBhcnJvd1kocG90ZW50aWFsU2NvcmUoKSEpICsgJyknXCI+XG4gICAgPHBvbHlnb24gW2F0dHIucG9pbnRzXT1cImFycm93UG9pbnRzKClcIiBbYXR0ci5maWxsXT1cImNvbG9yRm9yU2NvcmUocG90ZW50aWFsU2NvcmUoKSEpXCI+PC9wb2x5Z29uPlxuICAgIDx0ZXh0XG4gICAgICBbYXR0ci54XT1cImFycm93Vy8yICsgNlwiXG4gICAgICBbYXR0ci55XT1cImFycm93SC8yICsgOVwiXG4gICAgICB0ZXh0LWFuY2hvcj1cIm1pZGRsZVwiXG4gICAgICBmb250LXNpemU9XCIyNFwiXG4gICAgICBmb250LXdlaWdodD1cIjgwMFwiXG4gICAgICBbYXR0ci5maWxsXT1cInRleHRDb2xvckZvclNjb3JlKHBvdGVudGlhbFNjb3JlKCkhKVwiXG4gICAgPlxuICAgICAge3sgY2xhbXBTY29yZShwb3RlbnRpYWxTY29yZSgpISkgfX1cbiAgICA8L3RleHQ+XG4gIDwvZz5cbiAgfVxuPC9zdmc+XG4iXX0=","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.3.4\", ngImport: i0, type: PropertyEpc, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.3.4\", 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.3.4\", 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 { PropertyHighlightsService, 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\";\nexport class PropertyDetailsComponent extends BaseComponent {\n authService = inject(AuthService);\n authUserService = inject(AuthUserService);\n propertyService = inject(PropertyService);\n propertyHighlightsService = inject(PropertyHighlightsService);\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.getFeatures();\n this.getHighlights();\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 getFeatures() {\n this.propertyService.getFeatures(this.id).subscribe({\n next: (res) => {\n this.features = res.data || [];\n },\n });\n }\n getHighlights() {\n this.propertyHighlightsService.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.3.4\", ngImport: i0, type: PropertyDetailsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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 @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 @if (property.location) {\\n <rolatech-property-location [location]=\\\"property.location\\\"></rolatech-property-location>\\n }\\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: 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.3.4\", 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 @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 @if (property.location) {\\n <rolatech-property-location [location]=\\\"property.location\\\"></rolatech-property-location>\\n }\\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZGV0YWlscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHkvcHJvcGVydHktZGV0YWlscy9wcm9wZXJ0eS1kZXRhaWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS9wcm9wZXJ0eS1kZXRhaWxzL3Byb3BlcnR5LWRldGFpbHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzFHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDekcsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sRUFNTCxxQkFBcUIsR0FDdEIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUNyRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUMzRyxPQUFPLEVBQUUsV0FBVyxFQUFF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d0JBQXdCO3dCQUN4Qix3QkFBd0I7d0JBQ3hCLGlCQUFpQjt3QkFDakIscUJBQXFCO3dCQUNyQix5QkFBeUI7d0JBQ3pCLHlCQUF5Qjt3QkFDekIsc0JBQXNCO3dCQUN0Qiw4QkFBOEI7d0JBQzlCLGtCQUFrQjt3QkFDbEIsV0FBVztxQkFDWiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5qZWN0LCBPbkluaXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudHNNb2R1bGUsIEJhc2VDb21wb25lbnQsIENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgUHJvcGVydHlIaWdobGlnaHRzU2VydmljZSwgUHJvcGVydHlTZXJ2aWNlLCBUaW1lWm9uZVNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1zZXJ2aWNlcyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHtcbiAgUHJvcGVydHksXG4gIFByb3BlcnR5T3B0aW9uLFxuICBQcm9wZXJ0eVZhcmlhbnQsXG4gIFByb3BlcnR5VmFyaWFudE9wdGlvbixcbiAgUHJvcGVydHlWaWRlbyxcbiAgUHJvcGVydHlWaWRlb1Byb3ZpZGVyLFxufSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEFuZ3VsYXJDb21tb25Nb2R1bGUgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21tb24nO1xuaW1wb3J0IHsgUHJvcGVydHlQcmljaW5nQ29tcG9uZW50LCBQcm9wZXJ0eUFjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzJztcbmltcG9ydCB7IFByb3BlcnR5SW5mb0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvcHJvcGVydHktaW5mby9wcm9wZXJ0eS1pbmZvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9wZXJ0eU1lZGlhQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9wcm9wZXJ0eS1tZWRpYS9wcm9wZXJ0eS1tZWRpYS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvcGVydHlTZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9wcm9wZXJ0eS1zZWN0aW9uL3Byb3BlcnR5LXNlY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlLCBBdXRoVXNlclNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1hdXRoJztcbmltcG9ydCB7IENvbW1lbnRzQ29tcG9uZW50IH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbWVudCc7XG5pbXBvcnQgeyBQcm9wZXJ0eUxvY2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9wcm9wZXJ0eS1sb2NhdGlvbi9wcm9wZXJ0eS1sb2NhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvcGVydHlGZWF0dXJlc0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvcHJvcGVydHktZmVhdHVyZXMvcHJvcGVydHktZmVhdHVyZXMuY29tcG9uZW50JztcbmltcG9ydCB7IFByb3BlcnR5VmlkZW9Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL3Byb3BlcnR5LXZpZGVvL3Byb3BlcnR5LXZpZGVvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9wZXJ0eUFjdGlvbkNvbnRhY3RDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL3Byb3BlcnR5LWFjdGlvbi1jb250YWN0L3Byb3BlcnR5LWFjdGlvbi1jb250YWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9wZXJ0eUFnZW50UmVuZGVyZXIgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL3Byb3BlcnR5LWFnZW50LXJlbmRlcmVyL3Byb3BlcnR5LWFnZW50LXJlbmRlcmVyJztcbmltcG9ydCB7IFByb3BlcnR5SGlnaGxpZ2h0cyB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvcHJvcGVydHktaGlnaGxpZ2h0cy9wcm9wZXJ0eS1oaWdobGlnaHRzJztcbmltcG9ydCB7IFByb3BlcnR5RXBjIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9wcm9wZXJ0eS1lcGMvcHJvcGVydHktZXBjJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvcGVydHktZGV0YWlscycsXG4gIGltcG9ydHM6IFtcbiAgICBBbmd1bGFyQ29tbW9uTW9kdWxlLFxuICAgIEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlLFxuICAgIENvbnRhaW5lckNvbXBvbmVudCxcbiAgICBQcm9wZXJ0eUluZm9Db21wb25lbnQsXG4gICAgUHJvcGVydHlNZWRpYUNvbXBvbmVudCxcbiAgICBQcm9wZXJ0eVByaWNpbmdDb21wb25lbnQsXG4gICAgUHJvcGVydHlTZWN0aW9uQ29tcG9uZW50LFxuICAgIFByb3BlcnR5QWN0aW9uc0NvbXBvbmVudCxcbiAgICBDb21tZW50c0NvbXBvbmVudCxcbiAgICBQcm9wZXJ0eUFnZW50UmVuZGVyZXIsXG4gICAgUHJvcGVydHlMb2NhdGlvbkNvbXBvbmVudCxcbiAgICBQcm9wZXJ0eUZlYXR1cmVzQ29tcG9uZW50LFxuICAgIFByb3BlcnR5VmlkZW9Db21wb25lbnQsXG4gICAgUHJvcGVydHlBY3Rpb25Db250YWN0Q29tcG9uZW50LFxuICAgIFByb3BlcnR5SGlnaGxpZ2h0cyxcbiAgICBQcm9wZXJ0eUVwYyxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHJvcGVydHktZGV0YWlscy5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5RGV0YWlsc0NvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBhdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7XG4gIGF1dGhVc2VyU2VydmljZSA9IGluamVjdChBdXRoVXNlclNlcnZpY2UpO1xuICBwcm9wZXJ0eVNlcnZpY2UgPSBpbmplY3QoUHJvcGVydHlTZXJ2aWNlKTtcbiAgcHJvcGVydHlIaWdobGlnaHRzU2VydmljZSA9IGluamVjdChQcm9wZXJ0eUhpZ2hsaWdodHNTZXJ2aWNlKTtcblxuICB0aW1lem9uZVNlcnZpY2UgPSBpbmplY3QoVGltZVpvbmVTZXJ2aWNlKTtcbiAgYXV0aGVudGljYXRlZCA9IHRoaXMuYXV0aFNlcnZpY2UuYXV0aGVudGljYXRlZDtcbiAgcHJvcGVydHkhOiBQcm9wZXJ0eTtcbiAgZnVsbG5hbWUgPSAnJztcbiAgdXNlcm5hbWUgPSAnJztcbiAgdXNlcjogYW55O1xuICBpbldpc2hMaXN0ID0gZmFsc2U7XG4gIHB1cmNoYXNlZCA9IGZhbHNlO1xuICBzZWxlY3RlZE9wdGlvbiE6IFByb3BlcnR5T3B0aW9uO1xuICB2YXJpYW50czogUHJvcGVydHlWYXJpYW50W10gPSBbXTtcbiAgZmVhdHVyZXM6IGFueVtdID0gW107XG4gIGhpZ2hsaWdodHM6IGFueVtdID0gW107XG4gIGVwYzogYW55O1xuICB0aW1lem9uZSA9IHNpZ25hbDxzdHJpbmc+KCcnKTtcbiAgc2VsZWN0ZWRWYXJpYW50ITogUHJvcGVydHlWYXJpYW50O1xuICB2YXJpYW50T3B0aW9uID0gc2lnbmFsPFByb3BlcnR5VmFyaWFudE9wdGlvbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgdmFyaWFudE9wdGlvbkNoYW5nZWQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMudmFyaWFudE9wdGlvbigpO1xuICB9KTtcbiAgZ2V0IHZpZGVvcygpOiBQcm9wZXJ0eVZpZGVvW10ge1xuICAgIGlmICghdGhpcy5wcm9wZXJ0eS52aWRlb3MpIHJldHVybiBbXTtcbiAgICBpZiAodGhpcy50aW1lem9uZSgpID09PSAnQXNpYS9TaGFuZ2hhaScpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BlcnR5LnZpZGVvcy5maWx0ZXIoKHYpID0+IHYucHJvdmlkZXIgPT09IFByb3BlcnR5VmlkZW9Qcm92aWRlci5DT1MpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wZXJ0eS52aWRlb3MuZmlsdGVyKCh2KSA9PiB2LnByb3ZpZGVyID09PSBQcm9wZXJ0eVZpZGVvUHJvdmlkZXIuWU9VVFVCRSk7XG4gICAgfVxuICB9XG5cbiAgLy8gcmVzdWx0czogYW55W10gPSBbXTtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuYXV0aGVudGljYXRlZCgpKSB7XG4gICAgICAgIHRoaXMud2lzaExpc3RDaGVjaygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0UHJvcGVydHkoKTtcbiAgICB0aGlzLmdldEZlYXR1cmVzKCk7XG4gICAgdGhpcy5nZXRIaWdobGlnaHRzKCk7XG4gICAgdGhpcy5nZXRFcGMoKTtcbiAgICAvLyB0aGlzLnRpbWV6b25lU2VydmljZS5nZXRUaW1lWm9uZUZyb21BcGkoKS5zdWJzY3JpYmUoe1xuICAgIC8vICAgbmV4dDogcmVzID0+IHtcbiAgICAvLyAgICAgdGhpcy50aW1lem9uZS5zZXQocmVzKVxuICAgIC8vICAgfVxuICAgIC8vIH0pXG4gICAgY29uc3QgdGltZXpvbmUgPSB0aGlzLnRpbWV6b25lU2VydmljZS5nZXRCcm93c2VyVGltZVpvbmUoKSA/PyAnJztcbiAgICB0aGlzLnRpbWV6b25lLnNldCh0aW1lem9uZSk7XG4gIH1cbiAgZ2V0UHJvcGVydHkoKSB7XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZ2V0KHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5wcm9wZXJ0eSA9IHJlcy5kYXRhO1xuICAgICAgICBjb25zdCBmaXJzdFBhcnQgPSB0aGlzLnByb3BlcnR5LmRlc2NyaXB0aW9uLnNwbGl0KCc8YnIvPicpWzBdLnRyaW0oKTtcbiAgICAgICAgY29uc3QgYXJyID0gZmlyc3RQYXJ0LnNwbGl0KCd8JykubWFwKChzKSA9PiBzLnRyaW0oKSk7XG4gICAgICAgIGlmICh0aGlzLnByb3BlcnR5LnZhcmlhbnRzKSB7XG4gICAgICAgICAgdGhpcy52YXJpYW50cyA9IHRoaXMucHJvcGVydHkudmFyaWFudHM7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFZhcmlhbnQgPSB0aGlzLnZhcmlhbnRzWzBdO1xuICAgICAgICAgIC8vIHRoaXMuc2VsZWN0ZWRWYXJpYW50Lm9wdGlvbnMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgIC8vICAgdGhpcy5yZXN1bHRzLnB1c2goW2l0ZW0ub3B0aW9uLmlkLCBpdGVtLnZhbHVlLmlkXSk7XG4gICAgICAgICAgLy8gfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucHJvcGVydHkuYWdlbnRJZCkge1xuICAgICAgICAgIHRoaXMuZmluZFVzZXJCYXNlSW5mbyh0aGlzLnByb3BlcnR5LmFnZW50SWQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldFRpdGxlKGAke3RoaXMucHJvcGVydHkudGl0bGV9YCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kVmFyaWFudChvcHRpb25JZDogc3RyaW5nLCB2YWx1ZUlkOiBzdHJpbmcpOiBQcm9wZXJ0eVZhcmlhbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnZhcmlhbnRzLmZpbmQoKGl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IGV4aXN0ID0gaXRlbS5vcHRpb25zLnNvbWUoKGk6IFByb3BlcnR5VmFyaWFudE9wdGlvbikgPT4gaS5vcHRpb24uaWQgPT09IG9wdGlvbklkICYmIGkudmFsdWUuaWQgPT09IHZhbHVlSWQpO1xuICAgICAgaWYgKGV4aXN0KSB7XG4gICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSk7XG4gIH1cbiAgZmluZFVzZXJCYXNlSW5mbyh1c2VySWQ6IHN0cmluZykge1xuICAgIHRoaXMuYXV0aFVzZXJTZXJ2aWNlLmdldFB1YmxpY1VzZXJJbmZvKHVzZXJJZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5mdWxsbmFtZSA9IHJlcy5uYW1lO1xuICAgICAgICB0aGlzLnVzZXJuYW1lID0gcmVzLnVzZXJuYW1lO1xuICAgICAgICB0aGlzLnVzZXIgPSByZXM7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGdldEZlYXR1cmVzKCkge1xuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmdldEZlYXR1cmVzKHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5mZWF0dXJlcyA9IHJlcy5kYXRhIHx8IFtdO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBnZXRIaWdobGlnaHRzKCkge1xuICAgIHRoaXMucHJvcGVydHlIaWdobGlnaHRzU2VydmljZS5nZXRIaWdobGlnaHRzKHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5oaWdobGlnaHRzID0gcmVzLmRhdGEgfHwgW107XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGdldEVwYygpIHtcbiAgICB0aGlzLnByb3BlcnR5U2VydmljZS5nZXRFcGModGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmVwYyA9IHJlcy5kYXRhO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIHdpc2hMaXN0Q2hlY2soKSB7XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2Uud2lzaExpc3RDaGVjayh0aGlzLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuaW5XaXNoTGlzdCA9IHJlcy5kYXRhO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBvbldpc2goZTogYW55KSB7XG4gICAgaWYgKHRoaXMuYXV0aGVudGljYXRlZCgpKSB7XG4gICAgICBpZiAodGhpcy5pbldpc2hMaXN0KSB7XG4gICAgICAgIHRoaXMucmVtb3ZlRnJvbVdpc2hsaXN0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmFkZFRvV2lzaGxpc3QoKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbignUGxlYXNlIHNpZ24gaW4nKTtcbiAgICB9XG4gIH1cbiAgb25SZXF1ZXN0Vmlld2luZyhlOiBhbnkpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC9wcm9wZXJ0aWVzLyR7dGhpcy5pZH0vdmlld2luZy9hcHBsaWNhdGlvbmBdKTtcbiAgfVxuICBwcml2YXRlIHJlbW92ZUZyb21XaXNobGlzdCgpIHtcbiAgICB0aGlzLnByb3BlcnR5U2VydmljZS5yZW1vdmVGcm9tV2lzaGxpc3QodGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5pbldpc2hMaXN0ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oJ1JlbW92ZWQnKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgcHJpdmF0ZSBhZGRUb1dpc2hsaXN0KCkge1xuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmFkZFRvV2lzaGxpc3QodGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5pbldpc2hMaXN0ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbignQWRkZWQnKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgb25PZmZlcihlOiBhbnkpIHtcbiAgICBpZiAodGhpcy5hdXRoZW50aWNhdGVkKCkpIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgL3Byb3BlcnRpZXMvJHt0aGlzLmlkfS9vZmZlcmBdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbignUGxlYXNlIHNpZ24gaW4nKTtcbiAgICB9XG4gIH1cblxuICBvbk9wdGlvbkNoYW5nZShlKSB7XG4gICAgY29uc3QgY3JpdGVyaWE6IGFueSA9IFtdO1xuICAgIHRoaXMuc2VsZWN0ZWRWYXJpYW50Lm9wdGlvbnMubWFwKChpdGVtKSA9PiB7XG4gICAgICBjcml0ZXJpYS5wdXNoKHtcbiAgICAgICAgb3B0aW9uSWQ6IGl0ZW0ub3B0aW9uLmlkID09PSBlLm9wdGlvbi5pZCA/IGUub3B0aW9uLmlkIDogaXRlbS5vcHRpb24uaWQsXG4gICAgICAgIHZhbHVlSWQ6IGl0ZW0ub3B0aW9uLmlkID09PSBlLm9wdGlvbi5pZCA/IGUudmFsdWUuaWQgOiBpdGVtLnZhbHVlLmlkLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICAvLyBjb25zdCBjcml0ZXJpYSA9IFtcbiAgICAvLyAgIHsgb3B0aW9uSWQ6ICcyNDkwMDg4NTUyOTQ1NDU5MjAnLCB2YWx1ZUlkOiAnMjQ5MDA4ODU1Mjk4NzQwMjI0JyB9LCAvLyBjb2xvcjogcmVkXG4gICAgLy8gICB7IG9wdGlvbklkOiAnMjQ4NjYxNzE1OTU1MzU1NjQ4JywgdmFsdWVJZDogJzI0OTAwMTEzMDA2MTg2MDg2NScgfSwgLy8gc2l6ZTogMjU2R0JcbiAgICAvLyBdO1xuXG4gICAgLy8gRnVuY3Rpb24gdG8gY2hlY2sgaWYgYSB2YXJpYW50IG1hdGNoZXMgYWxsIHRoZSBjcml0ZXJpYVxuICAgIGNvbnN0IG1hdGNoZXNBbGxDcml0ZXJpYSA9ICh2YXJpYW50LCBjcml0ZXJpYSkgPT4ge1xuICAgICAgcmV0dXJuIF8uZXZlcnkoY3JpdGVyaWEsIChjcml0ZXJpb24pID0+IHtcbiAgICAgICAgcmV0dXJuIF8uc29tZSh2YXJpYW50Lm9wdGlvbnMsIChvKSA9PiBvLm9wdGlvbi5pZCA9PT0gY3JpdGVyaW9uLm9wdGlvbklkICYmIG8udmFsdWUuaWQgPT09IGNyaXRlcmlvbi52YWx1ZUlkKTtcbiAgICAgIH0pO1xuICAgIH07XG4gICAgLy8gRnVuY3Rpb24gdG8gdXBkYXRlIHRoZSBjcml0ZXJpYSBiYXNlZCBvbiBhIG1hdGNoaW5nIHZhcmlhbnRcbiAgICBjb25zdCB1cGRhdGVDcml0ZXJpYUZyb21WYXJpYW50ID0gKHZhcmlhbnQpID0+IHtcbiAgICAgIHJldHVybiBfLm1hcCh2YXJpYW50Lm9wdGlvbnMsIChvKSA9PiAoe1xuICAgICAgICBvcHRpb25JZDogby5vcHRpb24uaWQsXG4gICAgICAgIHZhbHVlSWQ6IG8udmFsdWUuaWQsXG4gICAgICB9KSk7XG4gICAgfTtcblxuICAgIC8vIEZpbmQgdGhlIHZhcmlhbnQgdGhhdCBtYXRjaGVzIGFsbCB0aGUgY3JpdGVyaWFcbiAgICBjb25zdCBtYXRjaGluZ1ZhcmlhbnQgPSBfLmZpbmQodGhpcy52YXJpYW50cywgKHZhcmlhbnQpID0+IG1hdGNoZXNBbGxDcml0ZXJpYSh2YXJpYW50LCBjcml0ZXJpYSkpO1xuICAgIHRoaXMuc2VsZWN0ZWRWYXJpYW50ID0gbWF0Y2hpbmdWYXJpYW50ITtcbiAgICAvLyBjb25zdCB1cGRhdGVkQ3JpdGVyaWEgPSBtYXRjaGluZ1ZhcmlhbnQgPyB1cGRhdGVDcml0ZXJpYUZyb21WYXJpYW50KG1hdGNoaW5nVmFyaWFudCkgOiBbXTtcbiAgfVxufVxuIiwiQGlmIChwcm9wZXJ0eSkge1xuICA8cm9sYXRlY2gtY29udGFpbmVyPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIHctZnVsbFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInB5LTNcIj5cbiAgICAgICAgPHJvbGF0ZWNoLXByb3BlcnR5LW1lZGlhIFttZWRpYV09XCJwcm9wZXJ0eS5tZWRpYVwiPjwvcm9sYXRlY2gtcHJvcGVydHktbWVkaWE+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IGdhcC0zIHctZnVsbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIG1kOnctMi8zXCI+XG4gICAgICAgICAgPHJvbGF0ZWNoLXByb3BlcnR5LWluZm8gW3Byb3BlcnR5XT1cInByb3BlcnR5XCIgKHdpc2gpPVwib25XaXNoKCRldmVudClcIiBbaW5XaXNoTGlzdF09XCJpbldpc2hMaXN0XCI+XG4gICAgICAgICAgPC9yb2xhdGVjaC1wcm9wZXJ0eS1pbmZvPlxuICAgICAgICAgIDwhLS0gPHJvbGF0ZWNoLXByb3BlcnR5LWFnZW50LXJlbmRlcmVyXG4gICAgICAgICAgICBbbmFtZV09XCJmdWxsbmFtZVwiXG4gICAgICAgICAgICBbYXZhdGFyXT1cInVzZXI/LmF2YXRhclwiXG4gICAgICAgICAgICBbdXNlcm5hbWVdPVwidXNlcm5hbWVcIlxuICAgICAgICAgID48L3JvbGF0ZWNoLXByb3BlcnR5LWFnZW50LXJlbmRlcmVyPiAtLT5cbiAgICAgICAgICBAaWYgKGZlYXR1cmVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIDxyb2xhdGVjaC1wcm9wZXJ0eS1mZWF0dXJlcyBbZmVhdHVyZXNdPVwiZmVhdHVyZXNcIj48L3JvbGF0ZWNoLXByb3BlcnR5LWZlYXR1cmVzPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKGhpZ2hsaWdodHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgPHJvbGF0ZWNoLXByb3BlcnR5LWhpZ2hsaWdodHMgW2hpZ2hsaWdodHNdPVwiaGlnaGxpZ2h0c1wiPjwvcm9sYXRlY2gtcHJvcGVydHktaGlnaGxpZ2h0cz5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIChwcm9wZXJ0eS5sb2NhdGlvbikge1xuICAgICAgICAgICAgPHJvbGF0ZWNoLXByb3BlcnR5LWxvY2F0aW9uIFtsb2NhdGlvbl09XCJwcm9wZXJ0eS5sb2NhdGlvblwiPjwvcm9sYXRlY2gtcHJvcGVydHktbG9jYXRpb24+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAodmlkZW9zICYmIHZpZGVvcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBAZm9yIChpdGVtIG9mIHZpZGVvczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgIDxyb2xhdGVjaC1wcm9wZXJ0eS12aWRlbyBbdmlkZW9dPVwiaXRlbVwiPjwvcm9sYXRlY2gtcHJvcGVydHktdmlkZW8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoZXBjICYmIGVwYy5jdXJyZW50U2NvcmUpIHtcbiAgICAgICAgICAgIDxyb2xhdGVjaC1wcm9wZXJ0eS1lcGMgW2VwY109XCJlcGNcIj48L3JvbGF0ZWNoLXByb3BlcnR5LWVwYz5cbiAgICAgICAgICB9XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LTJ4bCBmb250LWJvbGQgcHQtM1wiIGkxOG4+U2VjdGlvbnM8L2Rpdj5cbiAgICAgICAgICAgIEBmb3IgKHNlY3Rpb24gb2YgcHJvcGVydHkuc2VjdGlvbnM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICA8cm9sYXRlY2gtcHJvcGVydHktc2VjdGlvbiBbc2VjdGlvbl09XCJzZWN0aW9uXCI+PC9yb2xhdGVjaC1wcm9wZXJ0eS1zZWN0aW9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPHJvbGF0ZWNoLWNvbW1lbnRzIFtpdGVtSWRdPVwicHJvcGVydHkuaWRcIj48L3JvbGF0ZWNoLWNvbW1lbnRzPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBtZDp3LTEvM1wiPlxuICAgICAgICAgIDxyb2xhdGVjaC1wcm9wZXJ0eS1hZ2VudC1yZW5kZXJlclxuICAgICAgICAgICAgW25hbWVdPVwiZnVsbG5hbWVcIlxuICAgICAgICAgICAgW2F2YXRhcl09XCJ1c2VyPy5hdmF0YXJcIlxuICAgICAgICAgICAgW3VzZXJuYW1lXT1cInVzZXJuYW1lXCJcbiAgICAgICAgICA+PC9yb2xhdGVjaC1wcm9wZXJ0eS1hZ2VudC1yZW5kZXJlcj5cbiAgICAgICAgICA8cm9sYXRlY2gtcHJvcGVydHktcHJpY2luZyAod2lzaCk9XCJvbldpc2goJGV2ZW50KVwiIFtwcm9wZXJ0eV09XCJwcm9wZXJ0eVwiPjwvcm9sYXRlY2gtcHJvcGVydHktcHJpY2luZz5cbiAgICAgICAgICA8cm9sYXRlY2gtcHJvcGVydHktYWN0aW9uc1xuICAgICAgICAgICAgW3Byb3BlcnR5XT1cInByb3BlcnR5XCJcbiAgICAgICAgICAgIChvZmZlcik9XCJvbk9mZmVyKCRldmVudClcIlxuICAgICAgICAgICAgKGRlcG9zaXQpPVwib25PZmZlcigkZXZlbnQpXCJcbiAgICAgICAgICAgIChyZXF1ZXN0Vmlld2luZyk9XCJvblJlcXVlc3RWaWV3aW5nKCRldmVudClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIEBpZiAodXNlcikge1xuICAgICAgICAgICAgICA8cm9sYXRlY2gtcHJvcGVydHktYWN0aW9uLWNvbnRhY3QgW2VtYWlsXT1cInVzZXIuZW1haWxcIiBbcGhvbmVdPVwidXNlci5waG9uZVwiPjwvcm9sYXRlY2gtcHJvcGVydHktYWN0aW9uLWNvbnRhY3Q+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9yb2xhdGVjaC1wcm9wZXJ0eS1hY3Rpb25zPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L3JvbGF0ZWNoLWNvbnRhaW5lcj5cbn1cbiJdfQ==","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.3.4\", ngImport: i0, type: PropertyViewingTimeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.3.4\", 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 { AvailableDatePipe } from '../../../pipes/property-available.pipe';\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.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 console.log(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.3.4\", ngImport: i0, type: PropertyViewingRequestComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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 @if (property) {\\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=\\\"text-xl font-bold\\\">{{ property.title }}</div>\\n <div class=\\\"\\\">Available: {{ property.availableDate | availableDate }}</div>\\n @if (property.market.toString() === 'LETTINGS' && property.rentFrequency.toString() === 'MONTHLY') {\\n <div class=\\\"py-3 text-xl font-bold\\\">\\u00A3{{ property.price.toFixed(2) }}pcm</div>\\n } @else {\\n <div class=\\\"py-3 text-xl font-bold\\\">\\u00A3{{ property.price.toFixed(2) }}</div>\\n }\\n }\\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\" }, { kind: \"pipe\", type: AvailableDatePipe, name: \"availableDate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", 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 AvailableDatePipe,\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 @if (property) {\\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=\\\"text-xl font-bold\\\">{{ property.title }}</div>\\n <div class=\\\"\\\">Available: {{ property.availableDate | availableDate }}</div>\\n @if (property.market.toString() === 'LETTINGS' && property.rentFrequency.toString() === 'MONTHLY') {\\n <div class=\\\"py-3 text-xl font-bold\\\">\\u00A3{{ property.price.toFixed(2) }}pcm</div>\\n } @else {\\n <div class=\\\"py-3 text-xl font-bold\\\">\\u00A3{{ property.price.toFixed(2) }}</div>\\n }\\n }\\n </div>\\n </div>\\n</rolatech-container>\\n\", styles: [\"mat-form-field{width:100%}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktdmlld2luZy1yZXF1ZXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS9wcm9wZXJ0eS12aWV3aW5nLXJlcXVlc3QvcHJvcGVydHktdmlld2luZy1yZXF1ZXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS9wcm9wZXJ0eS12aWV3aW5nLXJlcXVlc3QvcHJvcGVydHktdmlld2luZy1yZXF1ZXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBeUIsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNyRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUNMLG1CQUFtQixFQUNu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QUFjLGlZQUNkLGVBQWUsOEJBQ2YsZUFBZSxvWEFDZixrQkFBa0IsMkhBQ2xCLGVBQWUsK3NCQUNmLG1CQUFtQixpZ0JBQ25CLGNBQWMscWxCQUNkLDRCQUE0QiwwTEFDNUIsaUJBQWlCOzsyRkFhUiwrQkFBK0I7a0JBNUIzQyxTQUFTOytCQUNFLG1DQUFtQyxXQUNwQzt3QkFDUCxZQUFZO3dCQUNaLGtCQUFrQjt3QkFDbEIsa0JBQWtCO3dCQUNsQixXQUFXO3dCQUNYLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2QsNEJBQTRCO3dCQUM1QixpQkFBaUI7cUJBQ2xCLGFBR1U7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLFdBQVc7NEJBQ3BCLFFBQVEsRUFBRSxpQkFBaUI7NEJBQzNCLElBQUksRUFBRSxDQUFDLGVBQWUsQ0FBQzt5QkFDeEI7d0JBQ0QsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRTtxQkFDcEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIG1vZGVsLCBPbkluaXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIENvbnRhaW5lckNvbXBvbmVudCwgVGh1bWJuYWlsQ29tcG9uZW50IH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVGV4dEZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RleHQtZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UsIEF1dGhVc2VyU2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWF1dGgnO1xuaW1wb3J0IHsgUHJvcGVydHlTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItc2VydmljZXMnO1xuaW1wb3J0IHtcbiAgQWR2ZXJzZUNyZWRpdFN0YXR1cyxcbiAgUHJvcGVydHlBcHBsaWNhbnRUeXBlLFxuICBFbXBsb3ltZW50U3RhdHVzLFxuICBQcm9wZXJ0eSxcbiAgUHJvcGVydHlWaWV3ZXJDYXRlZ29yeSxcbiAgUHJvcGVydHlWaWV3aW5nLFxuICBQcm9wZXJ0eVZpZXdpbmdSZXF1ZXN0LFxuICBSZXNpZGVuY3lTdGF0dXMsXG59IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IE1hdFJhZGlvQ2hhbmdlLCBNYXRSYWRpb01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcbmltcG9ydCB7IE1vbWVudERhdGVBZGFwdGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwtbW9tZW50LWFkYXB0ZXInO1xuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIsIE1BVF9EQVRFX0ZPUk1BVFMsIE1BVF9EQVRFX0xPQ0FMRSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgUHJvcGVydHlWaWV3aW5nVGltZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvcHJvcGVydHktdmlld2luZy10aW1lL3Byb3BlcnR5LXZpZXdpbmctdGltZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXZhaWxhYmxlRGF0ZVBpcGUgfSBmcm9tICcuLi8uLi8uLi9waXBlcy9wcm9wZXJ0eS1hdmFpbGFibGUucGlwZSc7XG5leHBvcnQgY29uc3QgTVlfRk9STUFUUyA9IHtcbiAgcGFyc2U6IHtcbiAgICBkYXRlSW5wdXQ6ICdZWVlZLU1NLUREJyxcbiAgfSxcbiAgZGlzcGxheToge1xuICAgIGRhdGVJbnB1dDogJ1lZWVktTU0tREQnLFxuICAgIG1vbnRoWWVhckxhYmVsOiAnTU1NIFlZWVknLFxuICAgIGRhdGVBMTF5TGFiZWw6ICdZWVlZLU1NLUREJyxcbiAgICBtb250aFllYXJBMTF5TGFiZWw6ICdNTU1NIFlZWVknLFxuICB9LFxufTtcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb3BlcnR5LXZpZXdpbmctcmVxdWVzdCcsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBUZXh0RmllbGRNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIFRodW1ibmFpbENvbXBvbmVudCxcbiAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgICBNYXRSYWRpb01vZHVsZSxcbiAgICBQcm9wZXJ0eVZpZXdpbmdUaW1lQ29tcG9uZW50LFxuICAgIEF2YWlsYWJsZURhdGVQaXBlLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydHktdmlld2luZy1yZXF1ZXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb3BlcnR5LXZpZXdpbmctcmVxdWVzdC5jb21wb25lbnQuc2NzcycsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IERhdGVBZGFwdGVyLFxuICAgICAgdXNlQ2xhc3M6IE1vbWVudERhdGVBZGFwdGVyLFxuICAgICAgZGVwczogW01BVF9EQVRFX0xPQ0FMRV0sXG4gICAgfSxcbiAgICB7IHByb3ZpZGU6IE1BVF9EQVRFX0ZPUk1BVFMsIHVzZVZhbHVlOiBNWV9GT1JNQVRTIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5Vmlld2luZ1JlcXVlc3RDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgYXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xuICBhdXRoVXNlclNlcnZpY2UgPSBpbmplY3QoQXV0aFVzZXJTZXJ2aWNlKTtcbiAgcHJvcGVydHlTZXJ2aWNlID0gaW5qZWN0KFByb3BlcnR5U2VydmljZSk7XG4gIHByb3BlcnR5ITogUHJvcGVydHk7XG4gIG1pbkRhdGUgPSBuZXcgRGF0ZSgpO1xuICB2aWV3aW5nOiBQcm9wZXJ0eVZpZXdpbmdSZXF1ZXN0ID0ge1xuICAgIGZpcnN0TmFtZTogJycsXG4gICAgbGFzdE5hbWU6ICcnLFxuICAgIGVtYWlsOiAnJyxcbiAgICBwaG9uZTogJycsXG4gICAgdmlld2VyQ2F0ZWdvcnk6IFByb3BlcnR5Vmlld2VyQ2F0ZWdvcnkuVEVOQU5ULFxuICAgIC8vIHRlbmFudENhdGVnb3J5OiBQcm9wZXJ0eUFwcGxpY2FudFR5cGUuSU5ESVZJRFVBTCxcbiAgICBwcm9wb3NlZFNsb3RzOiBbXG4gICAgICB7IGRhdGU6ICcnLCB0aW1lOiAnJyB9LFxuICAgICAgeyBkYXRlOiAnJywgdGltZTogJycgfSxcbiAgICAgIHsgZGF0ZTogJycsIHRpbWU6ICcnIH0sXG4gICAgXSxcbiAgfTtcbiAgc2VsZWN0ZWRWaWV3ZXJDYXRlZ29yeSA9ICdURU5BTlQnO1xuICB2aWV3ZXJDYXRlZ29yeSA9IFByb3BlcnR5Vmlld2VyQ2F0ZWdvcnk7XG4gIGFwcGxpY2FudFR5cGVzID0gUHJvcGVydHlBcHBsaWNhbnRUeXBlO1xuICByZXNpZGVuY3lTdGF0dXMgPSBSZXNpZGVuY3lTdGF0dXM7XG4gIGVtcGxveW1lbnRTdGF0dXMgPSBFbXBsb3ltZW50U3RhdHVzO1xuICBhZHZlcnNlQ3JlZGl0U3RhdHVzID0gQWR2ZXJzZUNyZWRpdFN0YXR1cztcbiAgY291bnRyaWVzOiBzdHJpbmdbXSA9IFsnVW5pdGVkIEtpbmdkb20nLCAnQ2hpbmEnXTtcbiAgc2VsZWN0ZWRDb3VudHJ5O1xuICBkaXNwbGF5UHJpY2UgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMucHJvcGVydHkgPyB0aGlzLnByb3BlcnR5LnByaWNlLnRvRml4ZWQoMikgOiAwO1xuICB9KTtcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5nZXRQcm9wZXJ0eSgpO1xuICAgIC8vIHRoaXMudmlld2luZ1snY291bnRyeSddID0gdGhpcy5jb3VudHJpZXNbMF07XG4gIH1cbiAgZ2V0UHJvcGVydHkoKSB7XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZ2V0KHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5wcm9wZXJ0eSA9IHJlcy5kYXRhO1xuICAgICAgICBjb25zb2xlLmxvZyhyZXMuZGF0YSk7XG4gICAgICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldFRpdGxlKGAke3RoaXMucHJvcGVydHkudGl0bGV9YCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIG9uQ291bnRyeVNlbGVjdChldmVudDogYW55KSB7XG4gICAgdGhpcy52aWV3aW5nWydjb3VudHJ5J10gPSBldmVudC52YWx1ZTtcbiAgfVxuICBvblZpZXdlclNlbGVjdGlvbkNoYW5nZShldmVudDogTWF0UmFkaW9DaGFuZ2UpIHtcbiAgICB0aGlzLnNlbGVjdGVkVmlld2VyQ2F0ZWdvcnkgPSBldmVudC52YWx1ZTtcbiAgfVxuICBzZW5kUmVxdWVzdCgpIHtcbiAgICB0aGlzLnByb3BlcnR5U2VydmljZS5yZXF1ZXN0Vmlld2luZyh0aGlzLmlkLCB0aGlzLnZpZXdpbmcpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oJ1JlcXVlc3Qgdmlld2luZyBzdWNjZXNzZnVsbHknKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oZXJyb3IubWVzc2FnZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iLCI8cm9sYXRlY2gtY29udGFpbmVyPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbC1yZXZlcnNlIG1kOmZsZXgtcm93IHctZnVsbCBweS0yIG1iLTMgZ2FwLTNcIj5cbiAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIG1kOnctMi8zXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC14bCBmb250LWJvbGQgcHktMiBtYi0zXCIgaTE4bj5SZXF1ZXN0IGEgdmlld2luZzwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgIDxtYXQtcmFkaW8tZ3JvdXBcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJTZWxlY3QgYW4gb3B0aW9uXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwidmlld2luZy52aWV3ZXJDYXRlZ29yeVwiXG4gICAgICAgICAgICAoY2hhbmdlKT1cIm9uVmlld2VyU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIFt2YWx1ZV09XCJ2aWV3ZXJDYXRlZ29yeS5URU5BTlRcIiBpMThuPkknbSBhIHRlbmFudDwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIFt2YWx1ZV09XCJ2aWV3ZXJDYXRlZ29yeS5BR0VOVFwiIGkxOG4+SSdtIGFuIGFnZW50PC9tYXQtcmFkaW8tYnV0dG9uPlxuICAgICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgQGlmIChzZWxlY3RlZFZpZXdlckNhdGVnb3J5ID09PSAnVGVuYW50Jykge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IGdhcC0yXCI+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+XG4gICAgICBAaWYgKHByb3BlcnR5KSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXhsIGZvbnQtYm9sZCBweS0yIG1iLTNcIiBpMThuPlByb3BlcnR5IGluZm88L2Rpdj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8cm9sYXRlY2gtdGh1bWJuYWlsIFtzcmNdPVwicHJvcGVydHkgPyBwcm9wZXJ0eS5tZWRpYVswXS51cmwgOiAnJ1wiIHNpemU9XCJzbWFsbFwiPjwvcm9sYXRlY2gtdGh1bWJuYWlsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQteGwgZm9udC1ib2xkXCI+e3sgcHJvcGVydHkudGl0bGUgfX08L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIlwiPkF2YWlsYWJsZToge3sgcHJvcGVydHkuYXZhaWxhYmxlRGF0ZSB8IGF2YWlsYWJsZURhdGUgfX08L2Rpdj5cbiAgICAgICAgQGlmIChwcm9wZXJ0eS5tYXJrZXQudG9TdHJpbmcoKSA9PT0gJ0xFVFRJTkdTJyAmJiBwcm9wZXJ0eS5yZW50RnJlcXVlbmN5LnRvU3RyaW5nKCkgPT09ICdNT05USExZJykge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0zIHRleHQteGwgZm9udC1ib2xkXCI+wqN7eyBwcm9wZXJ0eS5wcmljZS50b0ZpeGVkKDIpIH19cGNtPC9kaXY+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0zIHRleHQteGwgZm9udC1ib2xkXCI+wqN7eyBwcm9wZXJ0eS5wcmljZS50b0ZpeGVkKDIpIH19PC9kaXY+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+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 { AvailableDatePipe } from '../../../pipes/property-available.pipe';\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).toFixed(2);\n // });\n property = signal(null, ...(ngDevMode ? [{ debugName: \"property\" }] : []));\n displayPrice = computed(() => {\n const p = this.property();\n return p ? p.price.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.3.4\", ngImport: i0, type: PropertyOfferComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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 @if (property()) {\\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=\\\"text-xl font-bold\\\">{{ property()!.title }}</div>\\n <div class=\\\"\\\">Available: {{ property()!.availableDate | availableDate }}</div>\\n @if (property()!.market.toString() === 'LETTINGS' && property()!.rentFrequency.toString() === 'MONTHLY') {\\n <div class=\\\"py-3 text-xl font-bold\\\">\\u00A3{{ property()!.price.toFixed(2) }}pcm</div>\\n } @else {\\n <div class=\\\"py-3 text-xl font-bold\\\">\\u00A3{{ property()!.price.toFixed(2) }}</div>\\n }\\n }\\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\" }, { kind: \"pipe\", type: AvailableDatePipe, name: \"availableDate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", 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 AvailableDatePipe,\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 @if (property()) {\\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=\\\"text-xl font-bold\\\">{{ property()!.title }}</div>\\n <div class=\\\"\\\">Available: {{ property()!.availableDate | availableDate }}</div>\\n @if (property()!.market.toString() === 'LETTINGS' && property()!.rentFrequency.toString() === 'MONTHLY') {\\n <div class=\\\"py-3 text-xl font-bold\\\">\\u00A3{{ property()!.price.toFixed(2) }}pcm</div>\\n } @else {\\n <div class=\\\"py-3 text-xl font-bold\\\">\\u00A3{{ property()!.price.toFixed(2) }}</div>\\n }\\n }\\n </div>\\n </div>\\n</rolatech-container>\\n\", styles: [\"mat-form-field{width:100%}\\n\"] }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktb2ZmZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL3BhZ2VzL3Byb3BlcnR5L3Byb3BlcnR5LW9mZmVyL3Byb3BlcnR5LW9mZmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS9wcm9wZXJ0eS1vZmZlci9wcm9wZXJ0eS1vZmZlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTJCLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0csT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNyRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixxQkFBcUIsRUFDckIsZ0JBQWdCLEVBSWhCLGVBQWUsR0FDaEIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxP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d0JBQ1AsWUFBWTt3QkFDWixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsV0FBVzt3QkFDWCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2YsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsaUJBQWlCO3FCQUNsQixhQUdVO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxXQUFXOzRCQUNwQixRQUFRLEVBQUUsaUJBQWlCOzRCQUMzQixJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUM7eUJBQ3hCO3dCQUNELEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7cUJBQ3BEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5qZWN0LCBPbkluaXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBLZXlWYWx1ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UsIEF1dGhVc2VyU2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWF1dGgnO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCwgQ29udGFpbmVyQ29tcG9uZW50LCBUaHVtYm5haWxDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IFByb3BlcnR5U2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLXNlcnZpY2VzJztcbmltcG9ydCB7XG4gIEFkdmVyc2VDcmVkaXRTdGF0dXMsXG4gIFByb3BlcnR5QXBwbGljYW50VHlwZSxcbiAgRW1wbG95bWVudFN0YXR1cyxcbiAgUHJvcGVydHksXG4gIFByb3BlcnR5T2ZmZXIsXG4gIFByb3BlcnR5T2ZmZXJSZXF1ZXN0LFxuICBSZXNpZGVuY3lTdGF0dXMsXG59IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgVGV4dEZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RleHQtZmllbGQnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNb21lbnREYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsLW1vbWVudC1hZGFwdGVyJztcbmltcG9ydCB7IERhdGVBZGFwdGVyLCBNQVRfREFURV9MT0NBTEUsIE1BVF9EQVRFX0ZPUk1BVFMgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xuaW1wb3J0IHsgQXZhaWxhYmxlRGF0ZVBpcGUgfSBmcm9tICcuLi8uLi8uLi9waXBlcy9wcm9wZXJ0eS1hdmFpbGFibGUucGlwZSc7XG5leHBvcnQgY29uc3QgTVlfRk9STUFUUyA9IHtcbiAgcGFyc2U6IHtcbiAgICBkYXRlSW5wdXQ6ICdZWVlZLU1NLUREJyxcbiAgfSxcbiAgZGlzcGxheToge1xuICAgIGRhdGVJbnB1dDogJ1lZWVktTU0tREQnLFxuICAgIG1vbnRoWWVhckxhYmVsOiAnTU1NIFlZWVknLFxuICAgIGRhdGVBMTF5TGFiZWw6ICdZWVlZLU1NLUREJyxcbiAgICBtb250aFllYXJBMTF5TGFiZWw6ICdNTU1NIFlZWVknLFxuICB9LFxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvcGVydHktb2ZmZXInLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIENvbnRhaW5lckNvbXBvbmVudCxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgVGV4dEZpZWxkTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBUaHVtYm5haWxDb21wb25lbnQsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgIEtleVZhbHVlUGlwZSxcbiAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxuICAgIE1hdFByb2dyZXNzU3Bpbm5lcixcbiAgICBBdmFpbGFibGVEYXRlUGlwZSxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LW9mZmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb3BlcnR5LW9mZmVyLmNvbXBvbmVudC5zY3NzJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogRGF0ZUFkYXB0ZXIsXG4gICAgICB1c2VDbGFzczogTW9tZW50RGF0ZUFkYXB0ZXIsXG4gICAgICBkZXBzOiBbTUFUX0RBVEVfTE9DQUxFXSxcbiAgICB9LFxuICAgIHsgcHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUywgdXNlVmFsdWU6IE1ZX0ZPUk1BVFMgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlPZmZlckNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBhdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7XG4gIGF1dGhVc2VyU2VydmljZSA9IGluamVjdChBdXRoVXNlclNlcnZpY2UpO1xuICBwcm9wZXJ0eVNlcnZpY2UgPSBpbmplY3QoUHJvcGVydHlTZXJ2aWNlKTtcbiAgb2ZmZXI6IFByb3BlcnR5T2ZmZXJSZXF1ZXN0ID0ge1xuICAgIGZpcnN0TmFtZTogJycsXG4gICAgbGFzdE5hbWU6ICcnLFxuICAgIHBob25lOiAnJyxcbiAgICBlbWFpbDogJycsXG4gICAgYXBwbGljYW50VHlwZTogJycsXG4gICAgcmVzaWRlbmN5U3RhdHVzOiAnJyxcbiAgICBlbXBsb3ltZW50U3RhdHVzOiAnJyxcbiAgICBhZHZlcnNlQ3JlZGl0U3RhdHVzOiAnJyxcbiAgICBzdGFydERhdGU6ICcnLFxuICAgIG5vdGVzOiAnJyxcbiAgICBhbW91bnQ6IDAsXG4gIH07XG4gIGdldCBmb3JtYXR0ZWRBbW91bnQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5vZmZlci5hbW91bnQudG9GaXhlZCgyKTsgLy8gZXF1aXZhbGVudCB0byB8IG51bWJlcjonMS4yLTInXG4gIH0gLy8gYXBwbGljYW50VHlwZXMgPSBQcm9wZXJ0eUFwcGxpY2FudFR5cGU7XG4gIGFwcGxpY2FudFR5cGVzID0gT2JqZWN0LmtleXMoUHJvcGVydHlBcHBsaWNhbnRUeXBlKTsgLy8gWydJTkRJVklEVUFMJywgJ0NPUlBPUkFURScsIC4uLl1cbiAgUHJvcGVydHlBcHBsaWNhbnRUeXBlID0gUHJvcGVydHlBcHBsaWNhbnRUeXBlO1xuICByZXNpZGVuY3lTdGF0dXMgPSBSZXNpZGVuY3lTdGF0dXM7XG4gIGVtcGxveW1lbnRTdGF0dXMgPSBFbXBsb3ltZW50U3RhdHVzO1xuICBhZHZlcnNlQ3JlZGl0U3RhdHVzID0gQWR2ZXJzZUNyZWRpdFN0YXR1cztcbiAgc2VsZWN0ZWRDb3VudHJ5O1xuICAvLyBwcm9wZXJ0eSE6IFByb3BlcnR5O1xuICAvLyBkaXNwbGF5UHJpY2UgPSBjb21wdXRlZCgoKSA9PiB7XG4gIC8vICAgcmV0dXJuICh0aGlzLnByb3BlcnR5Py5wcmljZSkudG9GaXhlZCgyKTtcbiAgLy8gfSk7XG4gIHByb3BlcnR5ID0gc2lnbmFsPFByb3BlcnR5IHwgbnVsbD4obnVsbCk7XG5cbiAgZGlzcGxheVByaWNlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHAgPSB0aGlzLnByb3BlcnR5KCk7XG4gICAgcmV0dXJuIHAgPyBwLnByaWNlLnRvRml4ZWQoMikgOiAnMC4wMCc7XG4gIH0pO1xuICByZWFkb25seSBmaXJzdEltYWdlVXJsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHAgPSB0aGlzLnByb3BlcnR5KCk7XG4gICAgcmV0dXJuIHA/Lm1lZGlhPy5bMF0/LnVybCB8fCAnJztcbiAgfSk7XG4gIG1pbkRhdGUgPSBuZXcgRGF0ZSgpO1xuICBzZW5kaW5nID0gZmFsc2U7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IHAgPSB0aGlzLnByb3BlcnR5KCk7XG4gICAgICBpZiAocCkge1xuICAgICAgICB0aGlzLnRpdGxlU2VydmljZS5zZXRUaXRsZShwLnRpdGxlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmdldFByb3BlcnR5KCk7XG4gIH1cbiAgb25BbW91bnRDaGFuZ2UoZXZlbnQ6IEV2ZW50KSB7XG4gICAgY29uc3QgaW5wdXRWYWx1ZTogYW55ID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcbiAgICBjb25zb2xlLmxvZyhpbnB1dFZhbHVlKTtcbiAgICBjb25zdCByZWdleCA9IC9eXFxkKlxcLj9cXGR7MCwyfSQvO1xuXG4gICAgaWYgKHJlZ2V4LnRlc3QoaW5wdXRWYWx1ZSkpIHtcbiAgICAgIHRoaXMub2ZmZXIuYW1vdW50ID0gaW5wdXRWYWx1ZTtcbiAgICB9XG4gIH1cbiAgZ2V0UHJvcGVydHkoKSB7XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZ2V0KHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5wcm9wZXJ0eS5zZXQocmVzLmRhdGEpO1xuICAgICAgICAvLyB0aGlzLnRpdGxlU2VydmljZS5zZXRUaXRsZShgJHt0aGlzLnByb3BlcnR5LnRpdGxlfWApO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBvbkNhdGVnb3J5U2VsZWN0KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLm9mZmVyWydjYXRlZ29yeSddID0gZXZlbnQudmFsdWU7XG4gIH1cbiAgb25SZXNpZGVuY3lTdGF0dXNTZWxlY3QoZXZlbnQ6IGFueSkge31cbiAgc2VuZFJlcXVlc3QoKSB7XG4gICAgdGhpcy5zZW5kaW5nID0gdHJ1ZTtcbiAgICB0aGlzLnByb3BlcnR5U2VydmljZS5tYWtlT2ZmZXIodGhpcy5pZCwgdGhpcy5vZmZlcikuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5zZW5kaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oJ1NlbnQgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgL3Byb3BlcnRpZXMvb2ZmZXJzLyR7cmVzLmRhdGEuaWR9YF0pO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5zZW5kaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oZXJyb3IubWVzc2FnZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iLCI8cm9sYXRlY2gtY29udGFpbmVyPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbC1yZXZlcnNlIG1kOmZsZXgtcm93IHctZnVsbCBweS0yIG1iLTMgZ2FwLTNcIj5cbiAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIG1kOnctMi8zXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC14bCBmb250LWJvbGQgcHktMiBtYi0zXCI+XG4gICAgICAgICAgPCEtLSA8c3BhbiBpMThuPk9mZmVyIGZvciA8L3NwYW4+PHNwYW4+e3sgcHJvcGVydHkoKT8udGl0bGUgOiAnJyB9fTwvc3Bhbj4gLS0+XG4gICAgICAgICAgPHNwYW4gaTE4bj1cIkBAb2ZmZXJGb3JcIj5PZmZlciBmb3Ige3sgcHJvcGVydHkoKT8udGl0bGUgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBtZDpmbGV4LXJvdyBnYXAtMlwiPlxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgICAgPG1hdC1sYWJlbCBpMThuPkZpcnN0IG5hbWU8L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwib2ZmZXIuZmlyc3ROYW1lXCIgcmVxdWlyZWQgLz5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgICAgPG1hdC1sYWJlbCBpMThuPkxhc3QgbmFtZTwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJvZmZlci5sYXN0TmFtZVwiIHJlcXVpcmVkIC8+XG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IGdhcC0yXCI+XG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgICA8bWF0LWxhYmVsIGkxOG4+UGhvbmU8L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwib2ZmZXIucGhvbmVcIiByZXF1aXJlZCAvPlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgICA8bWF0LWxhYmVsIGkxOG4+RW1haWw8L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cIm9mZmVyLmVtYWlsXCIgcmVxdWlyZWQgLz5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiBmbG9hdExhYmVsPVwiYWx3YXlzXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbCBpMThuPkFza2luZyBwcmljZTwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxzcGFuIG1hdFRleHRQcmVmaXg+wqMmbmJzcDs8L3NwYW4+XG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCIwLjAwXCIgWyhuZ01vZGVsKV09XCJvZmZlci5hbW91bnRcIiByZXF1aXJlZCAvPlxuICAgICAgICAgIDwhLS0gPGlucHV0XG4gICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIjAuMDBcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cImZvcm1hdHRlZEFtb3VudFwiXG4gICAgICAgICAgICAoaW5wdXQpPVwib25BbW91bnRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgIC8+IC0tPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgICA8bWF0LWxhYmVsIGkxOG4+VGVuYW5jeSBMZW5ndGg8L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cIm9mZmVyLnRlbmFuY3lEdXJhdGlvblwiIHJlcXVpcmVkIC8+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgIDxtYXQtbGFiZWwgaTE4bj5OdW1iZXIgT2YgVGVuYW50czwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwib2ZmZXIubnVtYmVyT2ZUZW5hbnRzXCIgcmVxdWlyZWQgLz5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbD5TdGFydCBkYXRlPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTdGFydCBkYXRlXCJcbiAgICAgICAgICAgIFttYXREYXRlcGlja2VyXT1cInN0YXJ0RGF0ZVBpY2tlclwiXG4gICAgICAgICAgICBbbWluXT1cIm1pbkRhdGVcIlxuICAgICAgICAgICAgKGZvY3VzKT1cInN0YXJ0RGF0ZVBpY2tlci5vcGVuKClcIlxuICAgICAgICAgICAgbmFtZT1cInN0YXJ0RGF0ZVwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm9mZmVyLnN0YXJ0RGF0ZVwiXG4gICAgICAgICAgICAoZGF0ZUlucHV0KT1cIm9mZmVyLnN0YXJ0RGF0ZSA9ICRldmVudC52YWx1ZS5mb3JtYXQoJ1lZWVktTU0tREQnKVwiXG4gICAgICAgICAgICByZWFkb25seVxuICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0SWNvblByZWZpeCBbZm9yXT1cInN0YXJ0RGF0ZVBpY2tlclwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxuICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlciAjc3RhcnREYXRlUGlja2VyPjwvbWF0LWRhdGVwaWNrZXI+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICA8bWF0LWxhYmVsIGkxOG4+QXBwbGljYW50IHR5cGU8L21hdC1sYWJlbD5cbiAgICAgICAgICA8bWF0LXNlbGVjdCBwbGFjZWhvbGRlcj1cIkFwcGxpY2FudCB0eXBlXCIgWyhuZ01vZGVsKV09XCJvZmZlci5hcHBsaWNhbnRUeXBlXCIgcmVxdWlyZWQ+XG4gICAgICAgICAgICBAZm9yIChrZXkgb2YgYXBwbGljYW50VHlwZXM7IHRyYWNrIGtleSkge1xuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwia2V5XCI+XG4gICAgICAgICAgICAgICAge3sgUHJvcGVydHlBcHBsaWNhbnRUeXBlW2tleV0gfX1cbiAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPCEtLSBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCIgLS0+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICA8bWF0LWxhYmVsIGkxOG4+UmVzaWRlbmN5IHN0YXR1czwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxtYXQtc2VsZWN0IHBsYWNlaG9sZGVyPVwiUmVzaWRlbmN5IHN0YXR1c1wiIFsobmdNb2RlbCldPVwib2ZmZXIucmVzaWRlbmN5U3RhdHVzXCIgcmVxdWlyZWQ+XG4gICAgICAgICAgICBAZm9yIChzdGF0dXMgb2YgcmVzaWRlbmN5U3RhdHVzIHwga2V5dmFsdWU7IHRyYWNrIHN0YXR1cykge1xuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwic3RhdHVzLmtleVwiPlxuICAgICAgICAgICAgICAgIHt7IHN0YXR1cy52YWx1ZSB9fVxuICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgPG1hdC1sYWJlbCBpMThuPkVtcGxveW1lbnQgU3RhdHVzPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPG1hdC1zZWxlY3QgcGxhY2Vob2xkZXI9XCJFbXBsb3ltZW50IFN0YXR1c1wiIFsobmdNb2RlbCldPVwib2ZmZXIuZW1wbG95bWVudFN0YXR1c1wiIHJlcXVpcmVkPlxuICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBlbXBsb3ltZW50U3RhdHVzIHwga2V5dmFsdWU7IHRyYWNrIGl0ZW0pIHtcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIml0ZW0ua2V5XCI+XG4gICAgICAgICAgICAgICAge3sgaXRlbS52YWx1ZSB9fVxuICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgPG1hdC1sYWJlbCBpMThuPkFkdmVyc2VDcmVkaXQgU3RhdHVzPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPG1hdC1zZWxlY3QgcGxhY2Vob2xkZXI9XCJBZHZlcnNlQ3JlZGl0IFN0YXR1c1wiIFsobmdNb2RlbCldPVwib2ZmZXIuYWR2ZXJzZUNyZWRpdFN0YXR1c1wiIHJlcXVpcmVkPlxuICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBhZHZlcnNlQ3JlZGl0U3RhdHVzIHwga2V5dmFsdWU7IHRyYWNrIGl0ZW0pIHtcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIml0ZW0ua2V5XCI+XG4gICAgICAgICAgICAgICAge3sgaXRlbS52YWx1ZSB9fVxuICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tZCBweS0yXCIgaTE4bj5Zb3VyIG1lc3NhZ2UoT3B0aW9uYWwpPC9kaXY+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgIDx0ZXh0YXJlYSBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwib2ZmZXIubm90ZXNcIiBjZGtUZXh0YXJlYUF1dG9zaXplIGNka0F1dG9zaXplTWluUm93cz1cIjNcIj48L3RleHRhcmVhPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIChjbGljayk9XCJzZW5kUmVxdWVzdCgpXCIgaTE4bj5TZW5kIHJlcXVlc3Q8L2J1dHRvbj4gLS0+XG4gICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiAoY2xpY2spPVwic2VuZFJlcXVlc3QoKVwiIFtkaXNhYmxlZF09XCJzZW5kaW5nXCI+XG4gICAgICAgIDxzcGFuIHN0eWxlPVwiZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlclwiPlxuICAgICAgICAgIEBpZiAoc2VuZGluZykge1xuICAgICAgICAgICAgPG1hdC1wcm9ncmVzcy1zcGlubmVyIGRpYW1ldGVyPVwiMjBcIiBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiIFtzdHlsZS5tYXJnaW5SaWdodC5weF09XCI4XCI+PC9tYXQtcHJvZ3Jlc3Mtc3Bpbm5lcj5cbiAgICAgICAgICB9XG4gICAgICAgICAge3sgc2VuZGluZyA/ICdSZXF1ZXN0aW5nLi4uJyA6ICdTZW5kIHJlcXVlc3QnIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgbWQ6dy0xLzIgcHktMiBtYi0zXCI+XG4gICAgICBAaWYgKHByb3BlcnR5KCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQteGwgZm9udC1ib2xkIHB5LTIgbWItM1wiIGkxOG4+UHJvcGVydHkgaW5mbzwvZGl2PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxyb2xhdGVjaC10aHVtYm5haWwgW3NyY109XCJmaXJzdEltYWdlVXJsKClcIiBzaXplPVwic21hbGxcIj48L3JvbGF0ZWNoLXRodW1ibmFpbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXhsIGZvbnQtYm9sZFwiPnt7IHByb3BlcnR5KCkhLnRpdGxlIH19PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJcIj5BdmFpbGFibGU6IHt7IHByb3BlcnR5KCkhLmF2YWlsYWJsZURhdGUgfCBhdmFpbGFibGVEYXRlIH19PC9kaXY+XG4gICAgICAgIEBpZiAocHJvcGVydHkoKSEubWFya2V0LnRvU3RyaW5nKCkgPT09ICdMRVRUSU5HUycgJiYgcHJvcGVydHkoKSEucmVudEZyZXF1ZW5jeS50b1N0cmluZygpID09PSAnTU9OVEhMWScpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicHktMyB0ZXh0LXhsIGZvbnQtYm9sZFwiPsKje3sgcHJvcGVydHkoKSEucHJpY2UudG9GaXhlZCgyKSB9fXBjbTwvZGl2PlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicHktMyB0ZXh0LXhsIGZvbnQtYm9sZFwiPsKje3sgcHJvcGVydHkoKSEucHJpY2UudG9GaXhlZCgyKSB9fTwvZGl2PlxuICAgICAgICB9XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9yb2xhdGVjaC1jb250YWluZXI+XG4iXX0=","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 { 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: 'Created',\n icon: 'category',\n status: 'created',\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.3.4\", ngImport: i0, type: PropertyOfferIndexComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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\"] }], encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", 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 ], 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktb2ZmZXItaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL3BhZ2VzL3Byb3BlcnR5L3Byb3BlcnR5LW9mZmVyLWluZGV4L3Byb3BlcnR5LW9mZmVyLWluZGV4LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS9wcm9wZXJ0eS1vZmZlci1pbmRleC9wcm9wZXJ0eS1vZmZlci1pbmRleC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFnQixNQUFNLGlCQUFpQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJB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QW1CO3dCQUNuQixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixlQUFlO3dCQUNmLDBCQUEwQjtxQkFDM0IsaUJBR2MsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIEtleVZhbHVlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBQcm9wZXJ0eVNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0T3B0aW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7XG4gIENvbnRhaW5lckNvbXBvbmVudCxcbiAgVGFic0NvbXBvbmVudCxcbiAgVGFiQ29tcG9uZW50LFxuICBUb29sYmFyQ29tcG9uZW50LFxuICBMaXN0Q29tcG9uZW50LFxuICBFbXB0eUNvbXBvbmVudCxcbiAgRmlsdGVyQ29tcG9uZW50LFxuICBCYXNlQ29tcG9uZW50LFxufSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IFByb3BlcnR5T2ZmZXJJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9wcm9wZXJ0eS1vZmZlci1pdGVtL3Byb3BlcnR5LW9mZmVyLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFByb3BlcnR5T2ZmZXJTdGF0dXMsIFByb3BlcnR5T2ZmZXJUeXBlIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb3BlcnR5LW9mZmVyLWluZGV4JyxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBDb250YWluZXJDb21wb25lbnQsXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIFRhYnNDb21wb25lbnQsXG4gICAgVGFiQ29tcG9uZW50LFxuICAgIFRvb2xiYXJDb21wb25lbnQsXG4gICAgTGlzdENvbXBvbmVudCxcbiAgICBFbXB0eUNvbXBvbmVudCxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgICBNYXRPcHRpb25Nb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBQcm9wZXJ0eU9mZmVySXRlbUNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LW9mZmVyLWluZGV4LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb3BlcnR5LW9mZmVyLWluZGV4LmNvbXBvbmVudC5zY3NzJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlPZmZlckluZGV4Q29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByb3BlcnR5U2VydmljZSA9IGluamVjdChQcm9wZXJ0eVNlcnZpY2UpO1xuICBvZmZlcnM6IGFueTtcbiAgb2ZmZXJUeXBlID0gUHJvcGVydHlPZmZlclR5cGU7XG4gIG9mZmVyU3RhdHVzID0gUHJvcGVydHlPZmZlclN0YXR1cztcbiAgZmlsdGVyID0gZmFsc2U7XG4gIGZpbHRlck9wdGlvbnM6IGFueSA9IHtcbiAgICB0eXBlOiAnJyxcbiAgICBzdGF0dXM6ICcnLFxuICB9O1xuICBzZWxlY3QgPSAwO1xuICBsaW5rcyA9IFtcbiAgICB7XG4gICAgICBuYW1lOiAnQWxsJyxcbiAgICAgIGljb246ICdkYXNoYm9hcmQnLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ0NyZWF0ZWQnLFxuICAgICAgaWNvbjogJ2NhdGVnb3J5JyxcbiAgICAgIHN0YXR1czogJ2NyZWF0ZWQnLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ0FjY2VwdGVkJyxcbiAgICAgIGljb246ICdjYXRlZ29yeScsXG4gICAgICBzdGF0dXM6ICdhY2NlcHRlZCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnUmVqZWN0ZWQnLFxuICAgICAgaWNvbjogJ2NhdGVnb3J5JyxcbiAgICAgIHN0YXR1czogJ3JlamVjdGVkJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdDYW5jZWxsZWQnLFxuICAgICAgaWNvbjogJ2NhdGVnb3J5JyxcbiAgICAgIHN0YXR1czogJ2NhbmNlbGxlZCcsXG4gICAgfSxcbiAgXTtcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5maW5kT2ZmZXJzKCk7XG4gICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoKHsgc3RhdHVzIH0pID0+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 { 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.3.4\", ngImport: i0, type: PropertyViewingItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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 @if (viewing().item) {\\n <div class=\\\"flex flex-col overflow-x-scroll scrollbar-hide\\\">\\n <div class=\\\"flex flex-row py-2\\\">\\n @if (viewing().item.media) {\\n <div class=\\\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\\\">\\n @defer {\\n <rolatech-thumbnail [src]=\\\"viewing().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 } @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().item.title }}</div>\\n <div class=\\\"inline-flex gap-1 mt-2\\\">\\n <div>\\n <span class=\\\"mr-1\\\">{{ viewing().item.bedrooms }}</span>\\n <span i18n>Bedrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ viewing().item.bathrooms }}</span>\\n <span i18n>Bathrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ viewing().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{{ viewing().item.price.toFixed(2) }}</div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n }\\n </div>\\n</div>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: ImagePlaceholderComponent, selector: \"rolatech-image-placeholder\", inputs: [\"ratio\"] }], deferBlockDependencies: [() => [ThumbnailComponent]] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: PropertyViewingItemComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-viewing-item', imports: [MatIconModule, ThumbnailComponent, ImagePlaceholderComponent], 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 @if (viewing().item) {\\n <div class=\\\"flex flex-col overflow-x-scroll scrollbar-hide\\\">\\n <div class=\\\"flex flex-row py-2\\\">\\n @if (viewing().item.media) {\\n <div class=\\\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\\\">\\n @defer {\\n <rolatech-thumbnail [src]=\\\"viewing().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 } @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().item.title }}</div>\\n <div class=\\\"inline-flex gap-1 mt-2\\\">\\n <div>\\n <span class=\\\"mr-1\\\">{{ viewing().item.bedrooms }}</span>\\n <span i18n>Bedrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ viewing().item.bathrooms }}</span>\\n <span i18n>Bathrooms</span>\\n </div>\\n <div>\\n <span class=\\\"mr-1\\\">{{ viewing().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{{ viewing().item.price.toFixed(2) }}</div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n }\\n </div>\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktdmlld2luZy1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9jb21wb25lbnRzL3Byb3BlcnR5LXZpZXdpbmctaXRlbS9wcm9wZXJ0eS12aWV3aW5nLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktdmlld2luZy1pdGVtL3Byb3BlcnR5LXZpZXdpbmctaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFZLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQW1CLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQVE3RixNQUFNLE9BQU8sNEJBQTRCO0lBQ3ZDLE9BQU8sR0FBRyxLQUFLLENBQUMsUUFBUSxrREFBbUIsQ0FBQztJQUM1QyxNQUFNLEdBQVEscUJBQXFCLENBQUM7dUdBRnpCLDRCQUE0QjsyRkFBNUIsNEJBQTRCLG1PQ1h6QywrdEVBcURBLHlERDlDWSxhQUFhLCtCQUFzQix5QkFBeUIsZ0dBQTdDLGtCQUFrQjs7MkZBSWhDLDRCQUE0QjtrQkFOeEMsU0FBUzsrQkFDRSxnQ0FBZ0MsV0FDakMsQ0FBQyxhQUFhLEVBQUUsa0JBQWtCLEVBQUUseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJvcGVydHlWaWV3aW5nLCBQcm9wZXJ0eVZpZXdpbmdTdGF0dXMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IFRodW1ibmFpbENvbXBvbmVudCwgSW1hZ2VQbGFjZWhvbGRlckNvbXBvbmVudCB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1wcm9wZXJ0eS12aWV3aW5nLWl0ZW0nLFxuICBpbXBvcnRzOiBbTWF0SWNvbk1vZHVsZSwgVGh1bWJuYWlsQ29tcG9uZW50LCBJbWFnZVBsYWNlaG9sZGVyQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LXZpZXdpbmctaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9wZXJ0eS12aWV3aW5nLWl0ZW0uY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eVZpZXdpbmdJdGVtQ29tcG9uZW50IHtcbiAgdmlld2luZyA9IGlucHV0LnJlcXVpcmVkPFByb3BlcnR5Vmlld2luZz4oKTtcbiAgc3RhdHVzOiBhbnkgPSBQcm9wZXJ0eVZpZXdpbmdTdGF0dXM7XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBob3ZlcjpiZy1bLS1ydC1yYWlzZWQtYmFja2dyb3VuZF0gY3Vyc29yLXBvaW50ZXIgcC0zXCI+XG4gIDxkaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIHctZnVsbCBtYi0yXCI+XG4gICAgICA8YSBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0zXCI+XG4gICAgICAgIDxzcGFuPlZpZXdpbmcgSUQ6IHt7IHZpZXdpbmcoKS5pZCB9fTwvc3Bhbj5cbiAgICAgIDwvYT5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1tZWRpdW0gdGV4dC1zbVwiPnt7IHN0YXR1c1t2aWV3aW5nKCkuc3RhdHVzXSB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICBAaWYgKHZpZXdpbmcoKS5pdGVtKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBvdmVyZmxvdy14LXNjcm9sbCBzY3JvbGxiYXItaGlkZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBweS0yXCI+XG4gICAgICAgICAgQGlmICh2aWV3aW5nKCkuaXRlbS5tZWRpYSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pbi13LTI0IHctMzYgb2JqZWN0LWNvdmVyIGFzcGVjdC12aWRlbyByb3VuZGVkLWxnIG1yLTNcIj5cbiAgICAgICAgICAgICAgQGRlZmVyIHtcbiAgICAgICAgICAgICAgICA8cm9sYXRlY2gtdGh1bWJuYWlsIFtzcmNdPVwidmlld2luZygpLml0ZW0ubWVkaWFbMF0udXJsXCIgc2l6ZT1cIm1lZGl1bVwiIG1vZGU9XCJmdWxsXCI+IDwvcm9sYXRlY2gtdGh1bWJuYWlsPlxuICAgICAgICAgICAgICB9IEBwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJnLVstLXJ0LXJhaXNlZC1iYWNrZ3JvdW5kXSBoLWZ1bGwgdy1mdWxsIG9iamVjdC1jb3ZlciBhc3BlY3QtdmlkZW8gcm91bmRlZC1sZ1wiPjwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaW4tdy0yNCB3LTM2IG9iamVjdC1jb3ZlciBhc3BlY3QtdmlkZW8gcm91bmRlZC1sZyBtci0zXCI+XG4gICAgICAgICAgICAgIDxyb2xhdGVjaC1pbWFnZS1wbGFjZWhvbGRlcj48L3JvbGF0ZWNoLWltYWdlLXBsYWNlaG9sZGVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IHctZnVsbCBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiB3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgICAgICAgICAgICA8ZGl2Pnt7IHZpZXdpbmcoKS5pdGVtLnRpdGxlIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlubGluZS1mbGV4IGdhcC0xIG10LTJcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXItMVwiPnt7IHZpZXdpbmcoKS5pdGVtLmJlZHJvb21zIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBpMThuPkJlZHJvb21zPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yLTFcIj57eyB2aWV3aW5nKCkuaXRlbS5iYXRocm9vbXMgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGkxOG4+QmF0aHJvb21zPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yLTFcIj57eyB2aWV3aW5nKCkuaXRlbS5yZWNlcHRpb25zIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBpMThuPlJlY2VwdGlvbnM8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc21cIj7Co3t7IHZpZXdpbmcoKS5pdGVtLnByaWNlLnRvRml4ZWQoMikgfX08L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=","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.3.4\", ngImport: i0, type: PropertyViewingIndexComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.3.4\", 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.3.4\", ngImport: i0, type: DuePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\n static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.3.4\", ngImport: i0, type: DuePipe, isStandalone: true, name: \"due\" });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: DuePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'due',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGlwZXMvZHVlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBS3BELE1BQU0sT0FBTyxPQUFPO0lBQ2xCLFNBQVMsQ0FBQyxLQUFVLEVBQUUsR0FBRyxJQUFXO1FBQ2xDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNqQyxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUMsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7SUFDSCxDQUFDO3VHQVRVLE9BQU87cUdBQVAsT0FBTzs7MkZBQVAsT0FBTztrQkFIbkIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsS0FBSztpQkFDWiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQFBpcGUoe1xuICBuYW1lOiAnZHVlJyxcbn0pXG5leHBvcnQgY2xhc3MgRHVlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0odmFsdWU6IGFueSwgLi4uYXJnczogYW55W10pOiBhbnkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgIGRhdGUuc2V0RGF0ZShkYXRlLmdldERhdGUoKSAtIDMpO1xuICAgICAgcmV0dXJuIGRhdGUudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG59XG4iXX0=","import { Component, computed, 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 } 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 '../../../pipes/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 type = computed(() => {\n return this.offer.type.toString();\n }, ...(ngDevMode ? [{ debugName: \"type\" }] : []));\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.amount;\n this.holdingDeposit = ((price * 12) / 52).toFixed(2);\n this.securityDeposit = (((price * 12) / 52) * 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.3.4\", ngImport: i0, type: PropertyOfferDetailComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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-24 w-24 object-cover aspect-video rounded-md\\\">\\n @defer {\\n <rolatech-thumbnail [src]=\\\"offer.item.media[0].url\\\" size=\\\"medium\\\" mode=\\\"clip\\\"> </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 px-2\\\">\\n <div class=\\\"flex flex-col\\\">\\n <div>{{ offer.item.title }}</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.amount.toFixed(2) }}</div>\\n </div>\\n </div>\\n </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.toFixed(2) }}</span>\\n </div>\\n @if (type() === 'LETTINGS') {\\n @if (property) {\\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 }\\n }\\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 <div class=\\\"flex items-center\\\">\\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: DuePipe, name: \"due\" }], deferBlockDependencies: [() => [ThumbnailComponent]] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", 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 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-24 w-24 object-cover aspect-video rounded-md\\\">\\n @defer {\\n <rolatech-thumbnail [src]=\\\"offer.item.media[0].url\\\" size=\\\"medium\\\" mode=\\\"clip\\\"> </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 px-2\\\">\\n <div class=\\\"flex flex-col\\\">\\n <div>{{ offer.item.title }}</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.amount.toFixed(2) }}</div>\\n </div>\\n </div>\\n </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.toFixed(2) }}</span>\\n </div>\\n @if (type() === 'LETTINGS') {\\n @if (property) {\\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 }\\n }\\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 <div class=\\\"flex items-center\\\">\\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktb2ZmZXItZGV0YWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS9wcm9wZXJ0eS1vZmZlci1kZXRhaWwvcHJvcGVydHktb2ZmZXItZGV0YWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS9wcm9wZXJ0eS1vZmZlci1kZXRhaWwvcHJvcGVydHktb2ZmZXItZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLGtCQUFrQixHQUNuQixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQTJCLG1CQUFtQixFQUFFLDJCQUEyQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFD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cHV0ZWQsIGluamVjdCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvY2F0aW9uLCBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBBUFBfQ09ORklHIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7XG4gIFNwaW5uZXJDb21wb25lbnQsXG4gIENvbnRhaW5lckNvbXBvbmVudCxcbiAgVG9vbGJhckNvbXBvbmVudCxcbiAgQmFzZUNvbXBvbmVudCxcbiAgVGh1bWJuYWlsQ29tcG9uZW50LFxufSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IFByb3BlcnR5U2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLXNlcnZpY2VzJztcbmltcG9ydCB7IFByb3BlcnR5LCBQcm9wZXJ0eU9mZmVyLCBQcm9wZXJ0eU9mZmVyU3RhdHVzLCBQcm9wZXJ0eU9mZmVyVGltZWxpbmVTdGF0dXMgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEF1dGhVc2VyU2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWF1dGgnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBSb3V0ZXJMaW5rIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IER1ZVBpcGUgfSBmcm9tICcuLi8uLi8uLi9waXBlcy9kdWUucGlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb3BlcnR5LW9mZmVyLWRldGFpbCcsXG4gIGltcG9ydHM6IFtcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBOZ0NsYXNzLFxuICAgIFRodW1ibmFpbENvbXBvbmVudCxcbiAgICBTcGlubmVyQ29tcG9uZW50LFxuICAgIENvbnRhaW5lckNvbXBvbmVudCxcbiAgICBUb29sYmFyQ29tcG9uZW50LFxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgICBSb3V0ZXJMaW5rLFxuICAgIER1ZVBpcGUsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1vZmZlci1kZXRhaWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHJvcGVydHktb2ZmZXItZGV0YWlsLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlPZmZlckRldGFpbENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByb3BlcnR5U2VydmljZSA9IGluamVjdChQcm9wZXJ0eVNlcnZpY2UpO1xuICBhdXRoVXNlclNlcnZpY2UgPSBpbmplY3QoQXV0aFVzZXJTZXJ2aWNlKTtcbiAgb2ZmZXIhOiBQcm9wZXJ0eU9mZmVyO1xuICBpbmZvID0gZmFsc2U7XG4gIGxvYWRpbmdUaW1lbGluZSA9IGZhbHNlO1xuICB0aW1lbGluZURhdGE6IGFueTtcbiAgc3RhdHVzOiBhbnkgPSBQcm9wZXJ0eU9mZmVyU3RhdHVzO1xuICB0aW1lbGluZVN0YXR1czogYW55ID0gUHJvcGVydHlPZmZlclRpbWVsaW5lU3RhdHVzO1xuICBlbnYgPSBpbmplY3QoQVBQX0NPTkZJRyk7XG4gIGxvY2F0aW9uID0gaW5qZWN0KExvY2F0aW9uKTtcbiAgcHJvcGVydHkhOiBQcm9wZXJ0eTtcbiAgYWdlbnQ6IGFueTtcbiAgY2hlY2tvdXRpbmcgPSBmYWxzZTtcbiAgaG9sZGluZ0RlcG9zaXQ7XG4gIHNlY3VyaXR5RGVwb3NpdDtcbiAgdHlwZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5vZmZlci50eXBlLnRvU3RyaW5nKCk7XG4gIH0pO1xuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnJvdXRlLnBhcmFtcy5zdWJzY3JpYmUoKHBhcmFtcykgPT4ge1xuICAgICAgY29uc3QgaWQgPSBwYXJhbXNbJ2lkJ107XG4gICAgICB0aGlzLmdldChpZCk7XG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoYXN5bmMgKHBhcmFtcykgPT4ge1xuICAgICAgY29uc3Qgc2Vzc2lvbklkID0gcGFyYW1zWydzZXNzaW9uX2lkJ107XG4gICAgICBpZiAoc2Vzc2lvbklkKSB7XG4gICAgICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmNoZWNrT2ZmZXJQYXltZW50U3RhdHVzKHRoaXMuaWQsIHNlc3Npb25JZCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzLnN0YXR1cyA9PT0gJ3BhaWQnKSB7XG4gICAgICAgICAgICAgIHRoaXMub2ZmZXIuc3RhdHVzID0gUHJvcGVydHlPZmZlclN0YXR1cy5IT0xESU5HX0RFUE9TSVRfUEFJRDtcbiAgICAgICAgICAgICAgLy8gU2hvdyBzdWNjZXNzIFVJXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jaGVja291dGluZyA9IGZhbHNlO1xuICB9XG4gIGdldChpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZ2V0T2ZmZXIoaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5vZmZlciA9IHJlcy5kYXRhO1xuICAgICAgICB0aGlzLmdldFByb3BlcnR5KHRoaXMub2ZmZXIucHJvcGVydHlJZCk7XG4gICAgICAgIHRoaXMuY2FsY3VsYXRlRGVwb3NpdCgpO1xuICAgICAgICAvLyB0aGlzLmZpbmRBZ2VudEluZm8oKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgdGltZWxpbmUoKSB7XG4gICAgdGhpcy5pbmZvID0gdHJ1ZTtcbiAgICB0aGlzLmxvYWRpbmdUaW1lbGluZSA9IHRydWU7XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2Uub2ZmZXJUaW1lbGluZSh0aGlzLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLnRpbWVsaW5lRGF0YSA9IHJlcy5kYXRhO1xuICAgICAgICB0aGlzLmxvYWRpbmdUaW1lbGluZSA9IGZhbHNlO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nVGltZWxpbmUgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgZ2V0UHJvcGVydHkocHJvcGVydHlJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZ2V0KHByb3BlcnR5SWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5wcm9wZXJ0eSA9IHJlcy5kYXRhO1xuICAgICAgICB0aGlzLmdldEFnZW50UHVibGljSW5mbyh0aGlzLnByb3BlcnR5LmFnZW50SWQpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBnZXRBZ2VudFB1YmxpY0luZm8oYWdlbnRJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5hdXRoVXNlclNlcnZpY2UuZ2V0UHVibGljVXNlckluZm8oYWdlbnRJZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5hZ2VudCA9IHJlcztcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgY2FuY2VsKCkge1xuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmNhbmNlbE9mZmVyKHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMub2ZmZXIuc3RhdHVzID0gJ0NBTkNFTExFRCcgYXMgUHJvcGVydHlPZmZlclN0YXR1cztcbiAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbignQ2FuY2VsbGVkJyk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBjYWxjdWxhdGVEZXBvc2l0KCkge1xuICAgIGNvbnN0IHByaWNlID0gdGhpcy5vZmZlci5pdGVtLmFtb3VudDtcbiAgICB0aGlzLmhvbGRpbmdEZXBvc2l0ID0gKChwcmljZSAqIDEyKSAvIDUyKS50b0ZpeGVkKDIpO1xuICAgIHRoaXMuc2VjdXJpdHlEZXBvc2l0ID0gKCgocHJpY2UgKiAxMikgLyA1MikgKiA1KS50b0ZpeGVkKDIpO1xuICB9XG4gIGhvbGRpbmdEZXBvc2l0Q2hlY2tvdXQoKSB7XG4gICAgdGhpcy5jaGVja291dGluZyA9IHRydWU7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIHN1Y2Nlc3NVcmw6IHdpbmRvdy5sb2NhdGlvbi5ocmVmICsgJz9zZXNzaW9uX2lkPXtDSEVDS09VVF9TRVNTSU9OX0lEfScsXG4gICAgICBjYW5jZWxVcmw6IHdpbmRvdy5sb2NhdGlvbi5ocmVmLFxuICAgIH07XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuY3JlYXRlSG9sZGluZ0RlcG9zaXRDaGVja291dCh0aGlzLmlkLCBkYXRhKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHJlcy5kYXRhLmNoZWNrb3V0VXJsO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5jaGVja291dGluZyA9IGZhbHNlO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBzZWN1cml0eURlcG9zaXRDaGVja291dCgpIHtcbiAgICB0aGlzLmNoZWNrb3V0aW5nID0gdHJ1ZTtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgc3VjY2Vzc1VybDogd2luZG93LmxvY2F0aW9uLmhyZWYgKyAnP3Nlc3Npb25faWQ9e0NIRUNLT1VUX1NFU1NJT05fSUR9JyxcbiAgICAgIGNhbmNlbFVybDogd2luZG93LmxvY2F0aW9uLmhyZWYsXG4gICAgfTtcbiAgICB0aGlzLnByb3BlcnR5U2VydmljZS5jcmVhdGVTZWN1cml0eURlcG9zaXRDaGVja291dCh0aGlzLmlkLCBkYXRhKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHJlcy5kYXRhLmNoZWNrb3V0VXJsO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5jaGVja291dGluZyA9IGZhbHNlO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwiQGlmIChvZmZlcikge1xuICA8cm9sYXRlY2gtY29udGFpbmVyPlxuICAgIDxyb2xhdGVjaC10b29sYmFyIFt0aXRsZV09XCJzdGF0dXNbb2ZmZXIuc3RhdHVzXVwiIGxhcmdlIGxpbms9XCIuLi9cIj5cbiAgICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIChjbGljayk9XCJ0aW1lbGluZSgpXCI+XG4gICAgICAgIDxtYXQtaWNvbj5oaXN0b3J5PC9tYXQtaWNvbj5cbiAgICAgICAgPHNwYW4gaTE4bj5PZmZlciBzdGF0dXM8L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L3JvbGF0ZWNoLXRvb2xiYXI+XG4gICAgPGRpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgcHktMlwiPlxuICAgICAgICA8YSBjbGFzcz1cInRleHQteGwgZm9udC1ib2xkXCI+T2ZmZXIgSUQ6IHt7IG9mZmVyLmlkIH19PC9hPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxnIGZvbnQtYm9sZCBweS0yXCIgaTE4bj5Qcm9wZXJ0eSBkZXRhaWxzPC9kaXY+XG4gICAgICAgIDxociBjbGFzcz1cIm1iLTJcIiAvPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBweS0yIGN1cnNvci1wb2ludGVyIGhvdmVyOmJnLVstLXJ0LXJhaXNlZC1iYWNrZ3JvdW5kXVwiXG4gICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycuLi8uLi8nLCBvZmZlci5pdGVtLnByb3BlcnR5SWRdXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaW4tdy0yNCB3LTI0IG9iamVjdC1jb3ZlciBhc3BlY3QtdmlkZW8gcm91bmRlZC1tZFwiPlxuICAgICAgICAgICAgQGRlZmVyIHtcbiAgICAgICAgICAgICAgPHJvbGF0ZWNoLXRodW1ibmFpbCBbc3JjXT1cIm9mZmVyLml0ZW0ubWVkaWFbMF0udXJsXCIgc2l6ZT1cIm1lZGl1bVwiIG1vZGU9XCJjbGlwXCI+IDwvcm9sYXRlY2gtdGh1bWJuYWlsPlxuICAgICAgICAgICAgfSBAcGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmctWy0tcnQtcmFpc2VkLWJhY2tncm91bmRdIGgtZnVsbCB3LWZ1bGwgb2JqZWN0LWNvdmVyIGFzcGVjdC12aWRlbyByb3VuZGVkLWxnXCI+PC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggdy1mdWxsIGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIHctZnVsbCBweC0yXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sXCI+XG4gICAgICAgICAgICAgICAgPGRpdj57eyBvZmZlci5pdGVtLnRpdGxlIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlubGluZS1mbGV4IGdhcC0xIG10LTJcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXItMVwiPnt7IG9mZmVyLml0ZW0uYmVkcm9vbXMgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGkxOG4+QmVkcm9vbXM8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXItMVwiPnt7IG9mZmVyLml0ZW0uYmF0aHJvb21zIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBpMThuPkJhdGhyb29tczwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtci0xXCI+e3sgb2ZmZXIuaXRlbS5yZWNlcHRpb25zIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBpMThuPlJlY2VwdGlvbnM8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc21cIj7Co3t7IG9mZmVyLml0ZW0uYW1vdW50LnRvRml4ZWQoMikgfX08L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbGcgcHktMiBmb250LWJvbGRcIiBpMThuPk9mZmVyIGluZm88L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHB5LTFcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1tZWRpdW1cIiBpMThuPkNyZWF0ZWQgYXQ8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc21cIj4ge3sgb2ZmZXIuY3JlYXRlZEF0IH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gcHktMVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LW1lZGl1bVwiIGkxOG4+U3RhcnQgZGF0ZTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbVwiPiB7eyBvZmZlci5zdGFydERhdGUgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBweS0xXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtbWVkaXVtXCIgaTE4bj5Bc2tlZCBwcmljZTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbVwiIGkxOG4+wqN7eyBvZmZlci5hbW91bnQudG9GaXhlZCgyKSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBAaWYgKHR5cGUoKSA9PT0gJ0xFVFRJTkdTJykge1xuICAgICAgICAgICAgQGlmIChwcm9wZXJ0eSkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHB5LTFcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtbWVkaXVtXCIgaTE4bj5EZXBvc2l0IGR1ZSBkYXRlPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbVwiPiB7eyBvZmZlci5zdGFydERhdGUgfCBkdWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHB5LTFcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtbWVkaXVtXCIgaTE4bj5Ib2xkaW5nIGRlcG9zaXQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtXCI+wqN7eyBob2xkaW5nRGVwb3NpdCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gcHktMVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1tZWRpdW1cIiBpMThuPlNlY3VyaXR5IGRlcG9zaXQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtXCI+wqN7eyBzZWN1cml0eURlcG9zaXQgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1iYXNlbGluZSBqdXN0aWZ5LWJldHdlZW4gcHktMVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LW1lZGl1bSBtaW4tdy0yMFwiIGkxOG4+Tm90ZTwvc3Bhbj5cbiAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtXCI+e3sgb2ZmZXIubm90ZSB8fCAnJyB9fTwvc3Bhbj4gLS0+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGlkPVwicGF5bWVudC1lbGVtZW50XCI+PC9kaXY+XG4gICAgICAgIEBpZiAob2ZmZXIuc3RhdHVzLnRvU3RyaW5nKCkgPT09ICdDUkVBVEVEJyB8fCBvZmZlci5zdGF0dXMudG9TdHJpbmcoKSA9PT0gJ1BBSUQnKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTZcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxnIHBiLTMgZm9udC1tZWRpdW1cIiBpMThuPlBheW1lbnQgbWV0aG9kPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtbC0xXCIgaTE4bj5TdHJpcGU8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIHNhZmUgYXJlYSAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJwYi0xNiBzbTpwYi0zXCI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWVuZFwiPlxuICAgICAgICAgIEBpZiAob2ZmZXIuc3RhdHVzLnRvU3RyaW5nKCkgPT09ICdQRU5ESU5HJykge1xuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJ1bmRlcmxpbmUgdGV4dC1zbSB1bmRlcmxpbmUtb2Zmc2V0LTQgbXItNiBjdXJzb3ItcG9pbnRlciBob3Zlcjp0ZXh0LVstLXJ0LWJyYW5kLWNvbG9yXVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjYW5jZWwoKVwiXG4gICAgICAgICAgICAgIGkxOG5cbiAgICAgICAgICAgICAgPkNhbmNlbDwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKG9mZmVyLnN0YXR1cy50b1N0cmluZygpID09PSAnUEVORElORycpIHtcbiAgICAgICAgICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIGNsYXNzPVwibWluLWgtMTFcIiAoY2xpY2spPVwiaG9sZGluZ0RlcG9zaXRDaGVja291dCgpXCIgW2Rpc2FibGVkXT1cImNoZWNrb3V0aW5nXCI+XG4gICAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwiZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlclwiPlxuICAgICAgICAgICAgICAgIEBpZiAoY2hlY2tvdXRpbmcpIHtcbiAgICAgICAgICAgICAgICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBkaWFtZXRlcj1cIjIwXCIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiBbc3R5bGUubWFyZ2luUmlnaHQucHhdPVwiOFwiPjwvbWF0LXByb2dyZXNzLXNwaW5uZXI+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHt7IGNoZWNrb3V0aW5nID8gJ1Byb2Nlc3NpbmcuLi4nIDogJ1BheSBob2xkaW5nIGRlcG9zaXQnIH19XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKG9mZmVyLnN0YXR1cy50b1N0cmluZygpID09PSAnQUNDRVBURUQnKSB7XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjbGFzcz1cIm1pbi1oLTExXCIgKGNsaWNrKT1cInNlY3VyaXR5RGVwb3NpdENoZWNrb3V0KClcIiBbZGlzYWJsZWRdPVwiY2hlY2tvdXRpbmdcIj5cbiAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgQGlmIChjaGVja291dGluZykge1xuICAgICAgICAgICAgICAgICAgPG1hdC1wcm9ncmVzcy1zcGlubmVyIGRpYW1ldGVyPVwiMjBcIiBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiIFtzdHlsZS5tYXJnaW5SaWdodC5weF09XCI4XCI+PC9tYXQtcHJvZ3Jlc3Mtc3Bpbm5lcj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAge3sgY2hlY2tvdXRpbmcgPyAnUHJvY2Vzc2luZy4uLicgOiAnUGF5IHNlY3VyaXR5IGRlcG9zaXQnIH19XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgICA8IS0tIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIGNsYXNzPVwidy0zMiBtaW4taC0xMVwiIChjbGljayk9XCJzZWN1cml0eURlcG9zaXRDaGVja291dCgpXCIgaTE4bj5QYXkgc2VjdXJpdHkgZGVwb3NpdDwvYnV0dG9uPiAtLT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9yb2xhdGVjaC1jb250YWluZXI+XG59XG5AaWYgKGluZm8pIHtcbiAgPGRpdlxuICAgIFtuZ0NsYXNzXT1cImxvYWRpbmdUaW1lbGluZSA/ICd0cmFuc2xhdGUteC1mdWxsJyA6ICd0cmFuc2xhdGUtbm9uZSdcIlxuICAgIGNsYXNzPVwiZml4ZWQgdG9wLTAgcmlnaHQtMCB6LVsxMDAxXSBoLXNjcmVlbiBwLTQgb3ZlcmZsb3cteS1hdXRvIHRyYW5zaXRpb24tdHJhbnNmb3JtIGJnLVstLXJ0LXJhaXNlZC1iYWNrZ3JvdW5kXSB3LTgwIHNtOnctWzMwMHB4XSBzaGFkb3cteGxcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBzbTpwLTRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXhsIGZvbnQtYm9sZFwiIGkxOG4+U3RhdHVzPC9kaXY+XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiaW5mbyA9ICFpbmZvXCI+XG4gICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICBAaWYgKGxvYWRpbmdUaW1lbGluZSkge1xuICAgICAgPGRpdj5cbiAgICAgICAgPHJvbGF0ZWNoLXNwaW5uZXI+PC9yb2xhdGVjaC1zcGlubmVyPlxuICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8ZGl2IGNsYXNzPVwibXQtMyBwLTEgc206cC00XCI+XG4gICAgICAgIDxvbCBjbGFzcz1cInJlbGF0aXZlIGJvZmZlci1sIGJvZmZlci1bLS1ydC1ib2ZmZXItY29sb3JdXCI+XG4gICAgICAgICAgQGZvciAoaXRlbSBvZiB0aW1lbGluZURhdGE7IHRyYWNrIGl0ZW0pIHtcbiAgICAgICAgICAgIDxsaSBjbGFzcz1cIm1iLTggbWwtNFwiPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhYnNvbHV0ZSB3LTMgaC0zIHJvdW5kZWQtZnVsbCBtdC0xLjUgLWxlZnQtMS41IGJvZmZlciBib2ZmZXItWy0tcnQtcmFpc2VkLWJhY2tncm91bmRdIGJnLVstLXJ0LXRleHQtcHJpbWFyeV1cIlxuICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW1kIGZvbnQtYm9sZCBtYi0xXCI+e3sgdGltZWxpbmVTdGF0dXNbaXRlbS5zdGF0dXNdIH19PC9kaXY+XG4gICAgICAgICAgICAgIEBpZiAoaXRlbS5zdGF0dXMgPT09ICdPRkZFUl9SRVRVUk5fUkVKRUNURUQnKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc20gbWItMVwiPnt7IGl0ZW0ucmV0dXJuLm5vdGUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBAaWYgKGl0ZW0uc3RhdHVzID09PSAnT0ZGRVJfUkVUVVJOX1JFUVVFU1RFRCcpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zbSBtYi0xXCI+e3sgaXRlbS5yZXR1cm4ucmVhc29uIH19PC9kaXY+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc20gdGV4dC1bLS1ydC10ZXh0LXNlY29uZGFyeV1cIj57eyBpdGVtLmRhdGUgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgfVxuICAgICAgICA8L29sPlxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbn1cblxuPGRpdlxuICAoY2xpY2spPVwiaW5mbyA9ICFpbmZvXCJcbiAgW25nQ2xhc3NdPVwiaW5mbyA/ICd2aXNpYmxlJyA6ICdpbnZpc2libGUnXCJcbiAgY2xhc3M9XCJiZy1bLS1ydC0xMC1wZXJjZW50LWxheWVyXSBmaXhlZCBpbnNldC0wIHotWzEwMDBdXCJcbj48L2Rpdj5cbiJdfQ==","import { Component, inject } from '@angular/core';\nimport { NgClass } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { 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.3.4\", ngImport: i0, type: PropertyViewingDetailComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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-24 w-24 object-cover aspect-video rounded-md mr-3\\\">\\n @defer {\\n <rolatech-thumbnail [src]=\\\"property.media[0].url\\\" size=\\\"medium\\\" mode=\\\"clip\\\"> </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.toFixed(2) }}</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\"] }], deferBlockDependencies: [() => [ThumbnailComponent]] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", 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 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-24 w-24 object-cover aspect-video rounded-md mr-3\\\">\\n @defer {\\n <rolatech-thumbnail [src]=\\\"property.media[0].url\\\" size=\\\"medium\\\" mode=\\\"clip\\\"> </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.toFixed(2) }}</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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktdmlld2luZy1kZXRhaWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL3BhZ2VzL3Byb3BlcnR5L3Byb3BlcnR5LXZpZXdpbmctZGV0YWlsL3Byb3BlcnR5LXZpZXdpbmctZGV0YWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS9wcm9wZXJ0eS12aWV3aW5nLWRldGFpbC9wcm9wZXJ0eS12aWV3aW5nLWRldGFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUNoQixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLGtCQUFrQixHQUNuQixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUE2QixxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFpQjdDLE1BQU0sT0FBTyw4QkFB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a0JBQWtCO3dCQUNsQixrQkFBa0I7d0JBQ2xCLGdCQUFnQjt3QkFDaEIsVUFBVTtxQkFDWCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IEFQUF9DT05GSUcgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29udGFpbmVyQ29tcG9uZW50LFxuICBUb29sYmFyQ29tcG9uZW50LFxuICBCYXNlQ29tcG9uZW50LFxuICBSaWNoTGFiZWxDb21wb25lbnQsXG4gIFRodW1ibmFpbENvbXBvbmVudCxcbn0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBQcm9wZXJ0eVNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBQcm9wZXJ0eSwgUHJvcGVydHlWaWV3aW5nLCBQcm9wZXJ0eVZpZXdpbmdTdGF0dXMgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEF1dGhVc2VyU2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWF1dGgnO1xuaW1wb3J0IHsgUm91dGVyTGluayB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb3BlcnR5LXZpZXdpbmctZGV0YWlsJyxcbiAgaW1wb3J0czogW1xuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE5nQ2xhc3MsXG4gICAgVGh1bWJuYWlsQ29tcG9uZW50LFxuICAgIFJpY2hMYWJlbENvbXBvbmVudCxcbiAgICBDb250YWluZXJDb21wb25lbnQsXG4gICAgVG9vbGJhckNvbXBvbmVudCxcbiAgICBSb3V0ZXJMaW5rLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydHktdmlld2luZy1kZXRhaWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHJvcGVydHktdmlld2luZy1kZXRhaWwuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eVZpZXdpbmdEZXRhaWxDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJvcGVydHlTZXJ2aWNlID0gaW5qZWN0KFByb3BlcnR5U2VydmljZSk7XG4gIGF1dGhVc2VyU2VydmljZSA9IGluamVjdChBdXRoVXNlclNlcnZpY2UpO1xuICBhZ2VudDogYW55O1xuICB2aWV3aW5nITogUHJvcGVydHlWaWV3aW5nO1xuICBpbmZvID0gZmFsc2U7XG4gIGxvYWRpbmdUaW1lbGluZSA9IGZhbHNlO1xuICBzdGF0dXM6IGFueSA9IFByb3BlcnR5Vmlld2luZ1N0YXR1cztcbiAgZW52ID0gaW5qZWN0KEFQUF9DT05GSUcpO1xuICBwcm9wZXJ0eSE6IFByb3BlcnR5O1xuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHRoaXMucm91dGUucGFyYW1zLnN1YnNjcmliZSgocGFyYW1zKSA9PiB7XG4gICAgICBjb25zdCBpZCA9IHBhcmFtc1snaWQnXTtcbiAgICAgIHRoaXMuZ2V0KGlkKTtcbiAgICB9KTtcbiAgfVxuICBnZXQoaWQ6IHN0cmluZykge1xuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmdldFZpZXdpbmcoaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy52aWV3aW5nID0gcmVzLmRhdGE7XG4gICAgICAgIHRoaXMuZ2V0UHJvcGVydHkodGhpcy52aWV3aW5nLnByb3BlcnR5SWQpO1xuICAgICAgICAvLyB0aGlzLmZpbmRBZ2VudEluZm8oKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgZ2V0UHJvcGVydHkocHJvcGVydHlJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZ2V0KHByb3BlcnR5SWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5wcm9wZXJ0eSA9IHJlcy5kYXRhO1xuICAgICAgICB0aGlzLmdldEFnZW50UHVibGljSW5mbyh0aGlzLnByb3BlcnR5LmFnZW50SWQpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBnZXRBZ2VudFB1YmxpY0luZm8oYWdlbnRJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5hdXRoVXNlclNlcnZpY2UuZ2V0UHVibGljVXNlckluZm8oYWdlbnRJZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5hZ2VudCA9IHJlcztcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgY2FuY2VsKCkge1xuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmNhbmNlbFZpZXdpbmcodGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy52aWV3aW5nLnN0YXR1cyA9ICdDQU5DRUxMRUQnIGFzIFByb3BlcnR5Vmlld2luZ1N0YXR1cztcbiAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbignQ2FuY2VsbGVkJyk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwiQGlmICh2aWV3aW5nKSB7XG4gIDxyb2xhdGVjaC1jb250YWluZXI+XG4gICAgPHJvbGF0ZWNoLXRvb2xiYXIgW3RpdGxlXT1cInN0YXR1c1t2aWV3aW5nLnN0YXR1c11cIiBsYXJnZSBsaW5rPVwiLi4vXCI+IDwvcm9sYXRlY2gtdG9vbGJhcj5cbiAgICA8ZGl2PlxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbGcgZm9udC1ib2xkIHB5LTJcIiBpMThuPlByb3BlcnR5IGRldGFpbHM8L2Rpdj5cbiAgICAgICAgPGhyIGNsYXNzPVwibWItMlwiIC8+XG4gICAgICAgIEBpZiAocHJvcGVydHkpIHtcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIHB5LTIgY3Vyc29yLXBvaW50ZXIgaG92ZXI6YmctWy0tcnQtcmFpc2VkLWJhY2tncm91bmRdXCJcbiAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnLi4vLi4vJywgcHJvcGVydHkuaWRdXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWluLXctMjQgdy0yNCBvYmplY3QtY292ZXIgYXNwZWN0LXZpZGVvIHJvdW5kZWQtbWQgbXItM1wiPlxuICAgICAgICAgICAgICBAZGVmZXIge1xuICAgICAgICAgICAgICAgIDxyb2xhdGVjaC10aHVtYm5haWwgW3NyY109XCJwcm9wZXJ0eS5tZWRpYVswXS51cmxcIiBzaXplPVwibWVkaXVtXCIgbW9kZT1cImNsaXBcIj4gPC9yb2xhdGVjaC10aHVtYm5haWw+XG4gICAgICAgICAgICAgIH0gQHBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmctWy0tcnQtcmFpc2VkLWJhY2tncm91bmRdIGgtZnVsbCB3LWZ1bGwgb2JqZWN0LWNvdmVyIGFzcGVjdC12aWRlbyByb3VuZGVkLWxnXCI+PC9kaXY+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggdy1mdWxsIGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gdy1mdWxsXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXY+e3sgcHJvcGVydHkudGl0bGUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbmxpbmUtZmxleCBnYXAtMSBtdC0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtci0xXCI+e3sgcHJvcGVydHkuYmVkcm9vbXMgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gaTE4bj5CZWRyb29tczwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtci0xXCI+e3sgcHJvcGVydHkuYmF0aHJvb21zIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGkxOG4+QmF0aHJvb21zPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yLTFcIj57eyBwcm9wZXJ0eS5yZWNlcHRpb25zIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGkxOG4+UmVjZXB0aW9uczwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1yaWdodFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc21cIj7Co3t7IHByb3BlcnR5LnByaWNlLnRvRml4ZWQoMikgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+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.3.4\", ngImport: i0, type: PropertyWishlistComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.3.4\", 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\n .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 town: p.get('town') || undefined,\n minBedrooms: p.get('minBedrooms') ? Number(p.get('minBedrooms')) : undefined,\n maxBedrooms: p.get('maxBedrooms') ? Number(p.get('maxBedrooms')) : undefined,\n minPrice: p.get('minPrice') ? Number(p.get('minPrice')) : undefined,\n maxPrice: p.get('maxPrice') ? Number(p.get('maxPrice')) : 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 }))\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.3.4\", ngImport: i0, type: PropertyManageIndexComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.3.4\", 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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LEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtZQUN6RCxtQkFBbUIsRUFBRSxPQUFPO1lBQzVCLFVBQVUsRUFBRSxJQUFJLEVBQUUsdURBQXVEO1NBQzFFLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBeklVLDRCQUE0QjsyRkFBNUIsNEJBQTRCLHdOQUVqQixZQUFZLGdFQ3BDcEMsdzJEQTZEQSx5bENEMUNJLGVBQWUsMmlCQUNmLFVBQVUsbU9BQ1YsYUFBYSxtTEFDYixjQUFjLDhCQUNkLGFBQWEsOEJBQ2Isa0JBQWtCLG9TQUNsQixnQkFBZ0IsZ0lBQ2hCLGdCQUFnQixnRkFDaEIsMkJBQTJCLHFIQUMzQixTQUFTOzsyRkFNQSw0QkFBNEI7a0JBbEJ4QyxTQUFTOytCQUNFLGdDQUFnQyxXQUNqQzt3QkFDUCxlQUFlO3dCQUNmLFVBQVU7d0JBQ1YsYUFBYTt3QkFDYixjQUFjO3dCQUNkLGFBQWE7d0JBQ2Isa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIsMkJBQTJCO3dCQUMzQixTQUFTO3FCQUNWLGlCQUdjLGlCQUFpQixDQUFDLElBQUk7OEJBR2dCLFFBQVE7c0JBQTVELFdBQVc7dUJBQUMsc0NBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBIb3N0QmluZGluZywgaW5qZWN0LCBPbkluaXQsIHNpZ25hbCwgdmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBNYXRQYWdpbmF0b3IsIE1hdFBhZ2luYXRvck1vZHVsZSwgUGFnZUV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciwgUm91dGVyTGluayB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBUb29sYmFyQ29tcG9uZW50LCBTcGlubmVyQ29tcG9uZW50LCBTZWFyY2hCYXIgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IFByb3BlcnR5U2VhcmNoU2VydmljZSwgUHJvcGVydHlTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItc2VydmljZXMnO1xuaW1wb3J0IHsgUHJvcGVydHkgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFByb3BlcnR5TWFuYWdlSXRlbUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvcHJvcGVydHktbWFuYWdlLWl0ZW0vcHJvcGVydHktbWFuYWdlLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaW5hbGl6ZSwgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFByb3BlcnR5VXRpbCwgUHJvcGVydHlWaWV3VHlwZSB9IGZyb20gJy4uLy4uLy4uL3Byb3BlcnR5LXV0aWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1wcm9wZXJ0eS1tYW5hZ2UtaW5kZXgnLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIFJvdXRlckxpbmssXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRUYWJsZU1vZHVsZSxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIE1hdFBhZ2luYXRvck1vZHVsZSxcbiAgICBUb29sYmFyQ29tcG9uZW50LFxuICAgIFNwaW5uZXJDb21wb25lbnQsXG4gICAgUHJvcGVydHlNYW5hZ2VJdGVtQ29tcG9uZW50LFxuICAgIFNlYXJjaEJhcixcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LW1hbmFnZS1pbmRleC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9wZXJ0eS1tYW5hZ2UtaW5kZXguY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eU1hbmFnZUluZGV4Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5yb2xhdGVjaC1wcm9wZXJ0eS1tYW5hZ2UtaW5kZXgnKSBoYXNDbGFzcyA9IHRydWU7XG4gIHBhZ2luYXRvciA9IHZpZXdDaGlsZChNYXRQYWdpbmF0b3IpO1xuICBkaWFsb2cgPSBpbmplY3QoTWF0RGlhbG9nKTtcbiAgc25hY2tCYXIgPSBpbmplY3QoTWF0U25hY2tCYXIpO1xuICBwcml2YXRlIHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBwcml2YXRlIGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIHByaXZhdGUgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuICBncmlkVmlldyA9IHRydWU7XG4gIHV0aWwgPSBpbmplY3QoUHJvcGVydHlVdGlsKTtcblxuICBwcm9wZXJ0eVNlcnZpY2UgPSBpbmplY3QoUHJvcGVydHlTZXJ2aWNlKTtcbiAgcHJvcGVydHlTZWFyY2hTZXJ2aWNlID0gaW5qZWN0KFByb3BlcnR5U2VhcmNoU2VydmljZSk7XG4gIGlzU2VhcmNoID0gZmFsc2U7XG4gIC8vIHByb3BlcnRpZXM6IFByb3BlcnR5W10gPSBbXTtcbiAgcHJvcGVydGllcyA9IHNpZ25hbDxQcm9wZXJ0eVtdPihbXSk7XG5cbiAgZXhwb3J0aW5nID0gZmFsc2U7XG4gIHBhZ2VFdmVudCE6IFBhZ2VFdmVudDtcbiAgbGVuZ3RoID0gMTAwO1xuICBwYWdlU2l6ZSA9IDE1O1xuICBwYWdlU2l6ZU9wdGlvbnM6IG51bWJlcltdID0gWzUsIDEwLCAyNSwgMTAwXTtcbiAgb3BlbiA9IHNpZ25hbChmYWxzZSk7XG4gIHBhZ2VJbmRleCA9IHNpZ25hbCgwKTtcbiAgbWV0YTogYW55O1xuICBsb2FkaW5nID0gZmFsc2U7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gdGhpcy5maW5kUHJvcGVydGllcygpO1xuICAgIGNvbnN0IHN1YiA9IHRoaXMucm91dGUucXVlcnlQYXJhbU1hcFxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHBhZ2UgPSBwLmdldCgncGFnZScpID8gTnVtYmVyKHAuZ2V0KCdwYWdlJykpIDogMTtcbiAgICAgICAgICB0aGlzLnBhZ2VJbmRleC5zZXQoTWF0aC5tYXgocGFnZSAtIDEsIDApKTtcblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBxOiBwLmdldCgncScpIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHRvd246IHAuZ2V0KCd0b3duJykgfHwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgbWluQmVkcm9vbXM6IHAuZ2V0KCdtaW5CZWRyb29tcycpID8gTnVtYmVyKHAuZ2V0KCdtaW5CZWRyb29tcycpKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIG1heEJlZHJvb21zOiBwLmdldCgnbWF4QmVkcm9vbXMnKSA/IE51bWJlcihwLmdldCgnbWF4QmVkcm9vbXMnKSkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBtaW5QcmljZTogcC5nZXQoJ21pblByaWNlJykgPyBOdW1iZXIocC5nZXQoJ21pblByaWNlJykpIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgbWF4UHJpY2U6IHAuZ2V0KCdtYXhQcmljZScpID8gTnVtYmVyKHAuZ2V0KCdtYXhQcmljZScpKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGF2YWlsYWJsZUZyb206IHAuZ2V0KCdhdmFpbGFibGVGcm9tJykgfHwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgYXZhaWxhYmxlVG86IHAuZ2V0KCdhdmFpbGFibGVUbycpIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGZlYXR1cmVzOiBwLmdldEFsbCgnZmVhdHVyZXMnKT8ubGVuZ3RoID8gcC5nZXRBbGwoJ2ZlYXR1cmVzJykgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBwYWdlLFxuICAgICAgICAgICAgbGltaXQ6IHAuZ2V0KCdsaW1pdCcpID8gTnVtYmVyKHAuZ2V0KCdsaW1pdCcpKSA6IDE1LFxuICAgICAgICAgICAgc29ydDogcC5nZXQoJ3NvcnQnKSB8fCB1bmRlZmluZWQsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSksXG4gICAgICAgIC8vIENoZWFwIGRlZXAgY29tcGFyZSB2aWEgSlNPTiB0byBhdm9pZCBzcGFtIGNhbGxzIHdoZW4gbm90aGluZyBjaGFuZ2VkXG4gICAgICAgIG1hcCgobykgPT4gSlNPTi5zdHJpbmdpZnkobykpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICBtYXAoKHMpID0+IEpTT04ucGFyc2UocykpLFxuICAgICAgICBzd2l0Y2hNYXAoKHBhcmFtcykgPT4ge1xuICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucHJvcGVydHlTZWFyY2hTZXJ2aWNlLnNlYXJjaDxhbnk+KHBhcmFtcykucGlwZShmaW5hbGl6ZSgoKSA9PiAodGhpcy5sb2FkaW5nID0gZmFsc2UpKSk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgICB0aGlzLnByb3BlcnRpZXMuc2V0KHJlcy5kYXRhKTtcbiAgICAgICAgICB0aGlzLm1ldGEgPSByZXMubWV0YTtcbiAgICAgICAgICB0aGlzLmxlbmd0aCA9IHJlcy5tZXRhLnBhZ2luYXRpb24uY291bnQ7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5wcm9wZXJ0aWVzLnNldChbXSk7XG4gICAgICAgICAgdGhpcy5sZW5ndGggPSAwO1xuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAvLyAvLyBhdXRvLXVuc3Vic2NyaWJlIG9uIGRlc3Ryb3lcbiAgICB0aGlzLmRlc3Ryb3lSZWYub25EZXN0cm95KCgpID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgfVxuICB0b2dnbGVTZWFyY2goKSB7XG4gICAgdGhpcy5vcGVuLnVwZGF0ZSgodikgPT4gIXYpO1xuICB9XG4gIHRvZ2dsZVZpZXcoKSB7XG4gICAgaWYgKHRoaXMuZ3JpZFZpZXcpIHtcbiAgICAgIHRoaXMuZ3JpZFZpZXcgPSBmYWxzZTtcbiAgICAgIHRoaXMudXRpbC52aWV3RXZlbnQuZW1pdChQcm9wZXJ0eVZpZXdUeXBlLkxJU1QpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmdyaWRWaWV3ID0gdHJ1ZTtcbiAgICAgIHRoaXMudXRpbC52aWV3RXZlbnQuZW1pdChQcm9wZXJ0eVZpZXdUeXBlLkdSSUQpO1xuICAgIH1cbiAgfVxuICBzZWFyY2hCeVRleHQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7XG4gICAgICBxdWVyeVBhcmFtczogeyBxOiBldmVudCwgcGFnZTogMSwgbGltaXQ6IDE1IH0sXG4gICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnLCAvLyBrZWVwIG90aGVyIHBhcmFtcyBsaWtlIHNvcnQsIGV0Yy5cbiAgICB9KTtcbiAgfVxuICBzZWFyY2gocGFyYW1zOiBhbnkpIHtcbiAgICB0aGlzLnByb3BlcnR5U2VhcmNoU2VydmljZS5zZWFyY2gocGFyYW1zKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLnByb3BlcnRpZXMuc2V0KHJlcy5kYXRhKTtcbiAgICAgICAgdGhpcy5tZXRhID0gcmVzLm1ldGE7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxlbmd0aCA9IHJlcy5tZXRhLnBhZ2luYXRpb24uY291bnQ7XG4gICAgICAgIC8vIHRoaXMucGFnZUluZGV4LnNldChNYXRoLm1heChwYWdlIC0gMSwgMCkpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIG9uQ2xvc2VTZWFyY2goKSB7XG4gICAgLy8gdGhpcy5vcGVuLnNldChmYWxzZSk7XG4gICAgLy8gdGhpcy5yb3V0ZXIubmF2aWdhdGUoW10sIHsgcXVlcnlQYXJhbXM6IHt9LCBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnIH0pO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3Byb3BlcnRpZXMnXSk7XG4gIH1cbiAgZXhwb3J0KCkge1xuICAgIHRoaXMuZXhwb3J0aW5nID0gdHJ1ZTtcbiAgICB0aGlzLnByb3BlcnR5U2VydmljZS5leHBvcnQoKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHsgYmxvYiwgZmlsZW5hbWUgfSkgPT4ge1xuICAgICAgICAvLyBCcm93c2VyLW9ubHkgZG93bmxvYWRcbiAgICAgICAgY29uc3QgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICAgICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICAgICAgYS5ocmVmID0gdXJsO1xuICAgICAgICBhLmRvd25sb2FkID0gZmlsZW5hbWUgfHwgJ3Byb3BlcnRpZXMuY3N2JztcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTtcbiAgICAgICAgYS5jbGljaygpO1xuICAgICAgICBhLnJlbW92ZSgpO1xuICAgICAgICBVUkwucmV2b2tlT2JqZWN0VVJMKHVybCk7XG4gICAgICAgIHRoaXMuZXhwb3J0aW5nID0gZmFsc2U7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgIHRoaXMuZXhwb3J0aW5nID0gZmFsc2U7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIG9uUGFnZShlOiBQYWdlRXZlbnQpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwge1xuICAgICAgcXVlcnlQYXJhbXM6IHsgcGFnZTogZS5wYWdlSW5kZXggKyAxLCBsaW1pdDogZS5wYWdlU2l6ZSB9LFxuICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJyxcbiAgICAgIHJlcGxhY2VVcmw6IHRydWUsIC8vIG9wdGlvbmFsOiBhdm9pZCBzdGFja2luZyBoaXN0b3J5IG9uIGV2ZXJ5IHBhZ2UgY2xpY2tcbiAgICB9KTtcbiAgfVxufVxuIiwiPHJvbGF0ZWNoLXRvb2xiYXIgdGl0bGU9XCJQcm9wZXJ0aWVzXCI+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.3.4\", ngImport: i0, type: PropertyManageCreateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.4\", 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.3.4\", 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.3.4\", ngImport: i0, type: PropertyManageLayoutComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.3.4\", 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.3.4\", ngImport: i0, type: PropertyManageContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.4\", 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.3.4\", 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.toFixed(2) : '0.00';\n this.price.set(price);\n if (this.property.priceType?.toString() === 'PARTIAL') {\n const deposit = this.property.deposit.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.3.4\", ngImport: i0, type: PropertyManageInfoComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.3.4\", 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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Q3ZDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO3VHQXRFVSwyQkFBMkI7MkZBQTNCLDJCQUEyQiwyWUFYM0I7WUFDVDtnQkFDRSxPQUFPLEVBQUUsV0FBVztnQkFDcEIsUUFBUSxFQUFFLGlCQUFpQjtnQkFDM0IsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDO2FBQ3hCO1lBQ0QsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRTtTQUNwRCxpRENyREgsbTJJQW1HQSxxRkRuRUksV0FBVyxvd0NBQ1gsa0JBQWtCLDJhQUNsQixjQUFjLGdtQkFDZCxlQUFlLDhCQUNmLGVBQWUsK3NCQUNmLGVBQWUsOEJBQ2YsZUFBZSxvWEFDZixnQkFBZ0IsZ0lBQ2hCLDhCQUE4Qiw2RUFDOUIsZ0JBQWdCLDZEQUdoQixtQkFBbUIsNmZBRG5CLFlBQVk7OzJGQWNILDJCQUEyQjtrQkE1QnZDLFNBQVM7K0JBQ0UsK0JBQStCLFdBQ2hDO3dCQUNQLFdBQVc7d0JBQ1gsa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQiw4QkFBOEI7d0JBQzlCLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixZQUFZO3dCQUNaLG1CQUFtQjtxQkFDcEIsYUFDVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsV0FBVzs0QkFDcEIsUUFBUSxFQUFFLGlCQUFpQjs0QkFDM0IsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDO3lCQUN4Qjt3QkFDRCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFO3FCQUNwRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBtb2RlbCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIEtleVZhbHVlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUZXh0RmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGV4dC1maWVsZCc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfTE9DQUxFLCBNQVRfREFURV9GT1JNQVRTLCBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1vbWVudERhdGVBZGFwdGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwtbW9tZW50LWFkYXB0ZXInO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSwgTWF0U2VsZWN0Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IERlY2ltYWxEaXJlY3RpdmUgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21tb24nO1xuaW1wb3J0IHsgVG9vbGJhckNvbXBvbmVudCwgQmFzZUNvbXBvbmVudCB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgUHJvcGVydHlTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItc2VydmljZXMnO1xuaW1wb3J0IHsgUHJvcGVydHlNYW5hZ2VDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vcHJvcGVydHktbWFuYWdlLWNvbnRlbnQvcHJvcGVydHktbWFuYWdlLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFByb3BlcnR5LCBQcm9wZXJ0eVN0YXR1cywgUHJvcGVydHlUeXBlLCBQcm9wZXJ0eVByaWNlVHlwZSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuXG5leHBvcnQgY29uc3QgTVlfRk9STUFUUyA9IHtcbiAgcGFyc2U6IHtcbiAgICBkYXRlSW5wdXQ6ICdZWVlZLU1NLUREJyxcbiAgfSxcbiAgZGlzcGxheToge1xuICAgIGRhdGVJbnB1dDogJ1lZWVktTU0tREQnLFxuICAgIG1vbnRoWWVhckxhYmVsOiAnTU1NIFlZWVknLFxuICAgIGRhdGVBMTF5TGFiZWw6ICdZWVlZLU1NLUREJyxcbiAgICBtb250aFllYXJBMTF5TGFiZWw6ICdNTU1NIFlZWVknLFxuICB9LFxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvcGVydHktbWFuYWdlLWluZm8nLFxuICBpbXBvcnRzOiBbXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIFRleHRGaWVsZE1vZHVsZSxcbiAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgTWF0T3B0aW9uTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBUb29sYmFyQ29tcG9uZW50LFxuICAgIFByb3BlcnR5TWFuYWdlQ29udGVudENvbXBvbmVudCxcbiAgICBEZWNpbWFsRGlyZWN0aXZlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBLZXlWYWx1ZVBpcGUsXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogRGF0ZUFkYXB0ZXIsXG4gICAgICB1c2VDbGFzczogTW9tZW50RGF0ZUFkYXB0ZXIsXG4gICAgICBkZXBzOiBbTUFUX0RBVEVfTE9DQUxFXSxcbiAgICB9LFxuICAgIHsgcHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUywgdXNlVmFsdWU6IE1ZX0ZPUk1BVFMgfSxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LW1hbmFnZS1pbmZvLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb3BlcnR5LW1hbmFnZS1pbmZvLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlNYW5hZ2VJbmZvQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByb3BlcnR5U2VydmljZSA9IGluamVjdChQcm9wZXJ0eVNlcnZpY2UpO1xuICBwcm9wZXJ0eSE6IFByb3BlcnR5O1xuICBzdGF0dXMgPSBQcm9wZXJ0eVN0YXR1cztcbiAgc2VsZWN0ZWRDYXRlZ295SWRzITogc3RyaW5nW107XG4gIHByb3BlcnR5VHlwZSA9IFByb3BlcnR5VHlwZTtcbiAgcHJpY2VUeXBlID0gUHJvcGVydHlQcmljZVR5cGU7XG4gIHByaWNlID0gbW9kZWw8c3RyaW5nPignMC4wMCcpO1xuICBkZXBvc2l0ID0gbW9kZWw8c3RyaW5nPignJyk7XG4gIG1pbkRhdGUgPSBuZXcgRGF0ZSgpO1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlkID0gdGhpcy5yb3V0ZS5wYXJlbnQ/LnNuYXBzaG90LnBhcmFtTWFwLmdldCgnaWQnKSBhcyBzdHJpbmc7XG4gICAgdGhpcy5maW5kKCk7XG4gIH1cbiAgZmluZCgpIHtcbiAgICB0aGlzLnByb3BlcnR5U2VydmljZS5nZXQodGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnByb3BlcnR5ID0gcmVzLmRhdGE7XG4gICAgICAgIGNvbnN0IHByaWNlID0gdGhpcy5wcm9wZXJ0eS5wcmljZSA/IHRoaXMucHJvcGVydHkucHJpY2UudG9GaXhlZCgyKSA6ICcwLjAwJztcbiAgICAgICAgdGhpcy5wcmljZS5zZXQocHJpY2UpO1xuICAgICAgICBpZiAodGhpcy5wcm9wZXJ0eS5wcmljZVR5cGU/LnRvU3RyaW5nKCkgPT09ICdQQVJUSUFMJykge1xuICAgICAgICAgIGNvbnN0IGRlcG9zaXQgPSB0aGlzLnByb3BlcnR5LmRlcG9zaXQudG9GaXhlZCgyKTtcbiAgICAgICAgICB0aGlzLmRlcG9zaXQuc2V0KGRlcG9zaXQpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGZvcm1hdFByaWNlKHZhbHVlOiBudW1iZXIpIHtcbiAgICAvLyBDb252ZXJ0IHRvIG51bWJlciBmaXJzdCBpbiBjYXNlIGl0J3MgYSBzdHJpbmdcbiAgICB0aGlzLnByb3BlcnR5LnByaWNlID0gTnVtYmVyKE51bWJlcih2YWx1ZSkudG9GaXhlZCgyKSk7XG4gIH1cbiAgdHlwZUNvbXBhcmVGbih0MTogYW55LCB0MjogYW55KSB7XG4gICAgcmV0dXJuIHQxID09PSB0MjtcbiAgfVxuICBwcmljZVR5cGVDb21wYXJlRm4odDE6IGFueSwgdDI6IGFueSkge1xuICAgIHJldHVybiB0MSA9PT0gdDI7XG4gIH1cbiAgb25UeXBlQ2hhbmdlKGV2ZW50OiBNYXRTZWxlY3RDaGFuZ2UpIHtcbiAgICAvLyB0aGlzLnByb3BlcnR5LnR5cGUgPSBPYmplY3Qua2V5cyh0aGlzLnByb3BlcnR5VHlwZSkuZmluZCgoa2V5KSA9PiB7XG4gICAgLy8gICByZXR1cm4gdGhpcy5wcm9wZXJ0eVR5cGVba2V5XSA9PT0gZXZlbnQudmFsdWU7XG4gICAgLy8gfSkhO1xuICAgIHRoaXMucHJvcGVydHkudHlwZSA9IGV2ZW50LnZhbHVlO1xuICB9XG4gIG9uQ2F0ZWdvcnlDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ295SWRzID0gZXZlbnQudmFsdWU7XG4gIH1cbiAgdXBkYXRlKCkge1xuICAgIGNvbnN0IHsgdGl0bGUsIGRlc2NyaXB0aW9uLCB0eXBlLCBwcmljZVR5cGUsIGF2YWlsYWJsZURhdGUsIGJlZHJvb21zLCBiYXRocm9vbXMsIHJlY2VwdGlvbnMsIHNpemUsIGZsb29yIH0gPSB0aGlzLnByb3BlcnR5O1xuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICB0aXRsZSxcbiAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgYmVkcm9vbXMsXG4gICAgICBiYXRocm9vbXMsXG4gICAgICByZWNlcHRpb25zLFxuICAgICAgc2l6ZSxcbiAgICAgIGZsb29yLFxuICAgICAgdHlwZSxcbiAgICAgIHByaWNlOiBOdW1iZXIodGhpcy5wcmljZSgpKSAqIDEwMCxcbiAgICAgIHByaWNlVHlwZSxcbiAgICAgIGRlcG9zaXQ6IE51bWJlcih0aGlzLmRlcG9zaXQoKSkgKiAxMDAsXG4gICAgICBhdmFpbGFibGVEYXRlLFxuICAgIH07XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UudXBkYXRlKHRoaXMuaWQsIGRhdGEpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oJ1VwZGF0ZSBzdWNjZXNzZnVsbHknKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGUpID0+IHtcbiAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbihlLm1lc3NhZ2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPHJvbGF0ZWNoLXByb3BlcnR5LW1hbmFnZS1jb250ZW50PlxuICA8cm9sYXRlY2gtdG9vbGJhciB0aXRsZT1cIkJhc2ljIGluZm9cIiBjbGFzcz1cImhpZGRlbiBtZDpibG9ja1wiIGRpdmlkZXI+PC9yb2xhdGVjaC10b29sYmFyPlxuICBAaWYgKHByb3BlcnR5KSB7XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgIDxmb3JtICNwcm9wZXJ0eUZvcm09XCJuZ0Zvcm1cIj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbCBpMThuPiBUaXRsZSA8L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInByb3BlcnR5LnRpdGxlXCIgbmFtZT1cInRpdGxlXCIgcmVxdWlyZWQgLz5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbCBpMThuPiBEZXNjcmlwdGlvbiA8L21hdC1sYWJlbD5cbiAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInByb3BlcnR5LmRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgIG5hbWU9XCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgY2RrVGV4dGFyZWFBdXRvc2l6ZVxuICAgICAgICAgICAgY2RrQXV0b3NpemVNaW5Sb3dzPVwiM1wiXG4gICAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgIDxtYXQtbGFiZWwgaTE4bj4gQmVkcm9vbXMgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJwcm9wZXJ0eS5iZWRyb29tc1wiIG5hbWU9XCJiZWRyb29tc1wiIHJlcXVpcmVkIC8+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgIDxtYXQtbGFiZWwgaTE4bj4gQmF0aHJvb21zIDwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwicHJvcGVydHkuYmF0aHJvb21zXCIgbmFtZT1cImJhdGhyb29tc1wiIHJlcXVpcmVkIC8+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgIDxtYXQtbGFiZWwgaTE4bj4gUmVjZXB0aW9ucyA8L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInByb3BlcnR5LnJlY2VwdGlvbnNcIiBuYW1lPVwicmVjZXB0aW9uc1wiIHJlcXVpcmVkIC8+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgIDxtYXQtbGFiZWwgaTE4bj4gRmxvb3IgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJwcm9wZXJ0eS5mbG9vclwiIG5hbWU9XCJmbG9vclwiIHJlcXVpcmVkIC8+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgIDxtYXQtbGFiZWwgaTE4bj4gU2l6ZShzcWZ0KSA8L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInByb3BlcnR5LnNpemVcIiBuYW1lPVwic2l6ZVwiIHJlcXVpcmVkIC8+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIHJlcXVpcmVkPlxuICAgICAgICAgIDxtYXQtbGFiZWwgaTE4bj5UeXBlPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICAgIG5hbWU9XCJ0eXBlXCJcbiAgICAgICAgICAgIFtjb21wYXJlV2l0aF09XCJ0eXBlQ29tcGFyZUZuXCJcbiAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25UeXBlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJwcm9wZXJ0eS50eXBlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBAZm9yICh0eXBlIG9mIHByb3BlcnR5VHlwZSB8IGtleXZhbHVlOyB0cmFjayB0eXBlKSB7XG4gICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJ0eXBlLmtleVwiPlxuICAgICAgICAgICAgICAgIHt7IHR5cGUudmFsdWUgfX1cbiAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPCEtLSA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiByZXF1aXJlZD5cbiAgICAgICAgICA8bWF0LWxhYmVsIGkxOG4+UHJpY2UgdHlwZTwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxtYXQtc2VsZWN0IG5hbWU9XCJwcmljZVR5cGVcIiBbY29tcGFyZVdpdGhdPVwicHJpY2VUeXBlQ29tcGFyZUZuXCIgWyhuZ01vZGVsKV09XCJwcm9wZXJ0eS5wcmljZVR5cGVcIj5cbiAgICAgICAgICAgIEBmb3IgKHR5cGUgb2YgcHJpY2VUeXBlIHwga2V5dmFsdWU7IHRyYWNrIHR5cGUpIHtcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInR5cGUua2V5XCI+XG4gICAgICAgICAgICAgICAge3sgdHlwZS52YWx1ZSB9fVxuICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPiAtLT5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbCBpMThuPkF2YWlsYWJsZSBkYXRlPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJBdmFpbGFibGUgZGF0ZVwiXG4gICAgICAgICAgICBbbWF0RGF0ZXBpY2tlcl09XCJhdmFpbGFibGVEYXRlUGlja2VyXCJcbiAgICAgICAgICAgIFttaW5dPVwibWluRGF0ZVwiXG4gICAgICAgICAgICAoZm9jdXMpPVwiYXZhaWxhYmxlRGF0ZVBpY2tlci5vcGVuKClcIlxuICAgICAgICAgICAgbmFtZT1cImF2YWlsYWJsZURhdGVcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJwcm9wZXJ0eS5hdmFpbGFibGVEYXRlXCJcbiAgICAgICAgICAgIChkYXRlSW5wdXQpPVwicHJvcGVydHkuYXZhaWxhYmxlRGF0ZSA9ICRldmVudC52YWx1ZS5mb3JtYXQoJ1lZWVktTU0tREQnKVwiXG4gICAgICAgICAgICByZWFkb25seVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRJY29uUHJlZml4IFtmb3JdPVwiYXZhaWxhYmxlRGF0ZVBpY2tlclwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxuICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlciAjYXZhaWxhYmxlRGF0ZVBpY2tlcj48L21hdC1kYXRlcGlja2VyPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgICA8bWF0LWxhYmVsIGkxOG4+IFByaWNlIDwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwicHJpY2VcIiBuYW1lPVwicHJpY2VcIiByZXF1aXJlZCByb2xhdGVjaERlY2ltYWwgLz5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgQGlmIChwcm9wZXJ0eS5wcmljZVR5cGUgJiYgcHJvcGVydHkucHJpY2VUeXBlLnRvU3RyaW5nKCkgPT09ICdQQVJUSUFMJykge1xuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgICAgPG1hdC1sYWJlbCBpMThuPiBEZXBvc2l0IDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJkZXBvc2l0XCIgbmFtZT1cImRlcG9zaXRcIiByZXF1aXJlZCByb2xhdGVjaERlY2ltYWwgLz5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICB9XG4gICAgICA8L2Zvcm0+XG4gICAgPC9kaXY+XG4gICAgPGRpdj5cbiAgICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIChjbGljayk9XCJ1cGRhdGUoKVwiIGkxOG4+U2F2ZTwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICB9XG48L3JvbGF0ZWNoLXByb3BlcnR5LW1hbmFnZS1jb250ZW50PlxuIl19","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.3.4\", ngImport: i0, type: PropertyManageMediaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.3.4\", 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 { 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.3.4\", ngImport: i0, type: PropertyManageSectionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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 collapsed\\\" [class.expanded]=\\\"expanded\\\">\\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\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", 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 ], 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 collapsed\\\" [class.expanded]=\\\"expanded\\\">\\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbWFuYWdlLXNlY3Rpb24taXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvY29tcG9uZW50cy9wcm9wZXJ0eS1tYW5hZ2Utc2VjdGlvbi1pdGVtL3Byb3BlcnR5LW1hbmFnZS1zZWN0aW9uLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvcHJvcGVydHktbWFuYWdlLXNlY3Rpb24taXRlbS9wcm9wZXJ0eS1tYW5hZ2Utc2VjdGlvbi1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR3RFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDL0IsT0FBTyxFQUFXLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7Ozs7OztBQWtCaEUsTUFBTSxPQUFPLGtDQUFrQztJQUM3QyxXQUFXLEdBQUcsS0FBSyxpRUFBVyxDQUFDO0lBQy9CLE9BQU8sR0FBRyxLQUFLLENBQUMsUUFBUSxrREFBbUIsQ0FBQztJQUM1QyxPQUFPLEdBQUcsS0FBSyxDQUFVLEtBQUssbURBQUMsQ0FBQztJQUNoQyxXQUFXLEdBQUcsS0FBSyxpRUFBTyxDQUFDO0lBQzNCLE1BQU0sR0FBRyxNQUFNLEVBQXVELENBQUM7SUFDdkUsTUFBTSxHQUFHLE1BQU0sRUFBbUIsQ0FBQztJQUNuQyxJQUFJLEdBQUcsTUFBTSxFQUFtQixDQUFDO0lBQ2pDLFdBQVcsR0FBRyxNQUFNLEVBQThDLENBQUM7SUFDbkUsV0FBVyxDQUFlO0lBQzFCLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsZ0JBQWUsQ0FBQztJQUVoQixRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDM0UsQ0FBQztJQUNELFFBQVEsQ0FBQyxJQUFTO1FBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxLQUFZO1FBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBUztRQUNkLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQzFCLENBQUM7SUFDRCxXQUFXLEtBQUksQ0FBQztJQUNoQixNQUFNLENBQUMsT0FBd0I7UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUNELFFBQVEsQ0FBQyxPQUF3QjtRQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBQ0QsYUFBYSxDQUFDLEtBQVk7UUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDL0UsQ0FBQzt1R0FwQ1Usa0NBQWtDOzJGQUFsQyxrQ0FBa0MsdXRCQzlCL0MsODZIQStGQSwwZEQ5RUksa0JBQWtCLDBTQUNsQixjQUFjLGdtQkFDZCxXQUFXLDhtQkFDWCxlQUFlLDhCQUNmLGVBQWUsMGlCQUNmLGFBQWEsbUxBQ2IsYUFBYSw2dkJBQ2Isb0JBQW9CLHdOQUNwQixnQkFBZ0I7OzJGQUtQLGtDQUFrQztrQkFoQjlDLFNBQVM7K0JBQ0UsdUNBQXVDLFdBQ3hDO3dCQUNQLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxXQUFXO3dCQUNYLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGFBQWE7d0JBQ2Isb0JBQW9CO3dCQUNwQixnQkFBZ0I7cUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCwgT25Jbml0LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRleHRGaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXh0LWZpZWxkJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XG5pbXBvcnQgeyBNZWRpYSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQgeyBQcm9wZXJ0eVNlY3Rpb24gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IE1hdE1lbnUsIE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvcGVydHktbWFuYWdlLXNlY3Rpb24taXRlbScsXG4gIGltcG9ydHM6IFtcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgVGV4dEZpZWxkTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsXG4gICAgTWF0RGl2aWRlck1vZHVsZSxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LW1hbmFnZS1zZWN0aW9uLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHJvcGVydHktbWFuYWdlLXNlY3Rpb24taXRlbS5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5TWFuYWdlU2VjdGlvbkl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBpc1VwbG9hZGluZyA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHNlY3Rpb24gPSBpbnB1dC5yZXF1aXJlZDxQcm9wZXJ0eVNlY3Rpb24+KCk7XG4gIGFjdGlvbnMgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHNlbGVjdE1lZGlhID0gaW5wdXQ8YW55PigpO1xuICB1cGxvYWQgPSBvdXRwdXQ8eyBzZWN0aW9uOiBQcm9wZXJ0eVNlY3Rpb247IGRhdGE6IEZvcm1EYXRhIHwgbnVsbCB9PigpO1xuICBkZWxldGUgPSBvdXRwdXQ8UHJvcGVydHlTZWN0aW9uPigpO1xuICBzYXZlID0gb3V0cHV0PFByb3BlcnR5U2VjdGlvbj4oKTtcbiAgZGVsZXRlTWVkaWEgPSBvdXRwdXQ8eyBzZWN0aW9uOiBQcm9wZXJ0eVNlY3Rpb247IG1lZGlhOiBNZWRpYSB9PigpO1xuICBzZWxlY3RlZEltZyE6IE1lZGlhIHwgYW55O1xuICBleHBhbmRlZCA9IGZhbHNlO1xuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEltZyA9IHRoaXMuc2VjdGlvbigpLm1lZGlhID8gdGhpcy5zZWN0aW9uKCkubWVkaWFbMF0gOiBudWxsO1xuICB9XG4gIG9uVXBsb2FkKGRhdGE6IGFueSkge1xuICAgIHRoaXMudXBsb2FkLmVtaXQoeyBzZWN0aW9uOiB0aGlzLnNlY3Rpb24oKSwgZGF0YSB9KTtcbiAgfVxuICBvbk1lZGlhSXRlbUNsaWNrKGltYWdlOiBNZWRpYSkge1xuICAgIHRoaXMuc2VsZWN0ZWRJbWcgPSBpbWFnZTtcbiAgfVxuXG4gIHNlbGVjdChpdGVtOiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGVkSW1nID0gaXRlbTtcbiAgfVxuICBkZWxldGVJbWFnZSgpIHt9XG4gIG9uU2F2ZShzZWN0aW9uOiBQcm9wZXJ0eVNlY3Rpb24pIHtcbiAgICB0aGlzLnNhdmUuZW1pdChzZWN0aW9uKTtcbiAgfVxuICBvbkRlbGV0ZShzZWN0aW9uOiBQcm9wZXJ0eVNlY3Rpb24pIHtcbiAgICB0aGlzLmRlbGV0ZS5lbWl0KHNlY3Rpb24pO1xuICB9XG4gIG9uRGVsZXRlTWVkaWEobWVkaWE6IE1lZGlhKSB7XG4gICAgdGhpcy5kZWxldGVNZWRpYS5lbWl0KHsgc2VjdGlvbjogdGhpcy5zZWN0aW9uKCksIG1lZGlhIH0pO1xuICAgIHRoaXMuc2VsZWN0ZWRJbWcgPSB0aGlzLnNlY3Rpb24oKS5tZWRpYSA/IGZpcnN0KHRoaXMuc2VjdGlvbigpLm1lZGlhKSA6IG51bGw7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJweC0zXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImgtMTQgcHktMyBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gY3Vyc29yLXBvaW50ZXJcIlxuICAgIChjbGljayk9XCJleHBhbmRlZCA9ICFleHBhbmRlZDsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidy0zMiBsaW5lLWNsYW1wLTFcIj57eyBzZWN0aW9uKCkudGl0bGUgfX08L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsaW5lLWNsYW1wLTFcIj57eyBzZWN0aW9uKCkuZGVzY3JpcHRpb24gfX08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gYXJpYS1sYWJlbD1cImV4cGFuZCByb3dcIiAoY2xpY2spPVwiZXhwYW5kZWQgPSAhZXhwYW5kZWQ7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgICBAaWYgKGV4cGFuZGVkKSB7XG4gICAgICAgICAgPG1hdC1pY29uPmtleWJvYXJkX2Fycm93X3VwPC9tYXQtaWNvbj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPG1hdC1pY29uPmtleWJvYXJkX2Fycm93X2Rvd248L21hdC1pY29uPlxuICAgICAgICB9XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zIHctZnVsbCBvdmVyZmxvdy1oaWRkZW4gY29sbGFwc2VkXCIgW2NsYXNzLmV4cGFuZGVkXT1cImV4cGFuZGVkXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbGc6ZmxleC1yb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdyb3dcIj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbCBpMThuPlRpdGxlPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwiVGl0bGVcIiBpMThuLXBsYWNlaG9sZGVyIFsobmdNb2RlbCldPVwic2VjdGlvbigpLnRpdGxlXCIgLz5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgW2hpZGVSZXF1aXJlZE1hcmtlcl09XCJ0cnVlXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbCBpMThuPkRlc2NyaXB0aW9uPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgY2RrVGV4dGFyZWFBdXRvc2l6ZVxuICAgICAgICAgICAgY2RrQXV0b3NpemVNaW5Sb3dzPVwiM1wiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VjdGlvbigpLmRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgIGkxOG4tcGxhY2Vob2xkZXJcbiAgICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBtZWRpYSAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJsZzpiYXNpcy0xLzIgcHgtMCBsZzpweC0zXCI+XG4gICAgICAgIEBpZiAoc2VsZWN0ZWRJbWcpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWNlbnRlciByZWxhdGl2ZSBhc3BlY3QtdmlkZW9cIj5cbiAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJvYmplY3QtY29udGFpbiB3LWZ1bGxcIiBbc3JjXT1cInNlbGVjdGVkSW1nLnVybFwiIFthbHRdPVwic2VsZWN0ZWRJbWcuYWx0XCIgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSB6LTMwIHJpZ2h0LTBcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJiZWZvcmVNZW51XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1sLWF1dG8gZm9jdXM6b3V0bGluZS1ub25lIGhvdmVyOmJnLVstLXJ0LWJhc2UtYmFja2dyb3VuZF0gcC0xXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5tb3JlX3ZlcnQ8L21hdC1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPG1hdC1tZW51ICNiZWZvcmVNZW51PVwibWF0TWVudVwiIHhQb3NpdGlvbj1cImJlZm9yZVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwib25EZWxldGVNZWRpYShzZWxlY3RlZEltZylcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGkxOG4+RGVsZXRlPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIG1lZGlhIC0tPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGZsZXgtd3JhcCBjdXJzb3ItcG9pbnRlciByZWxhdGl2ZSBib3gtYm9yZGVyXCIgZnhMYXlvdXQ9XCJyb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzcy1iYXJcIj5cbiAgICAgICAgICAgICAgQGlmIChzZWN0aW9uKCkuaXNVcGxvYWRpbmcpIHtcbiAgICAgICAgICAgICAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiPjwvbWF0LXByb2dyZXNzLWJhcj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBAZm9yIChtZWRpYSBvZiBzZWN0aW9uKCkubWVkaWE7IHRyYWNrIG1lZGlhKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZWRpYS1saXN0LWl0ZW1cIj5cbiAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwidGlsZS1tZWRpYVwiIChjbGljayk9XCJvbk1lZGlhSXRlbUNsaWNrKG1lZGlhKVwiIFtzcmNdPVwibWVkaWEudXJsXCIgW2FsdF09XCJtZWRpYS5hbHRcIiAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxpbnB1dCBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIiB0eXBlPVwiZmlsZVwiIGFjY2VwdD1cImltYWdlLypcIiAoY2hhbmdlKT1cIm9uVXBsb2FkKCRldmVudClcIiAjZmlsZUlucHV0IC8+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRkLWJ1dHRvblwiPlxuICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiIGNsYXNzPVwidGlsZS1tZWRpYSBmbGV4IGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGhlaWdodD1cIjQ4cHhcIiB2aWV3Qm94PVwiMCAtOTYwIDk2MCA5NjBcIiB3aWR0aD1cIjQ4cHhcIiBmaWxsPVwiIzVmNjM2OFwiPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk00NDQtNDQ0SDI0MHYtNzJoMjA0di0yMDRoNzJ2MjA0aDIwNHY3Mkg1MTZ2MjA0aC03MnYtMjA0WlwiIC8+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgQGlmIChhY3Rpb25zKCkpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGp1c3RpZnktZW5kIHAtMyBnYXAtM1wiPlxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJtYXgtaC04XCIgKGNsaWNrKT1cIm9uRGVsZXRlKHNlY3Rpb24oKSlcIiBpMThuPkRlbGV0ZTwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjbGFzcz1cIm1heC1oLThcIiAoY2xpY2spPVwib25TYXZlKHNlY3Rpb24oKSlcIiBpMThuPlNhdmU8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4iXX0=","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.3.4\", ngImport: i0, type: PropertyManageSectionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.3.4\", 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.3.4\", ngImport: i0, type: PropertyManagePricingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.4\", 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.3.4\", 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.3.4\", ngImport: i0, type: PropertyManageScheduleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.4\", 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.3.4\", 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.findUserFeatures(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.updateUserFeatures(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.3.4\", ngImport: i0, type: PropertyManageFeaturesComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.3.4\", 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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Q3hCLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDMUIsQ0FBQztZQUVELGdDQUFnQztZQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUMxQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ25DLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzt1R0FwRlUsK0JBQStCOzJGQUEvQiwrQkFBK0Isb0hDbkI1QyxtZ0VBMkRBLHlERDVDWSxZQUFZLCtCQUFFLDhCQUE4Qiw2RUFBRSxnQkFBZ0IsK0hBQUUsaUJBQWlCLG1iQUFFLGVBQWU7OzJGQUlqRywrQkFBK0I7a0JBTjNDLFNBQVM7K0JBQ0UsbUNBQW1DLFdBQ3BDLENBQUMsWUFBWSxFQUFFLDhCQUE4QixFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgT25Jbml0LCBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb3BlcnR5TWFuYWdlQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4uL3Byb3BlcnR5LW1hbmFnZS1jb250ZW50L3Byb3BlcnR5LW1hbmFnZS1jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50LCBUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBGZWF0dXJlU2VydmljZSwgUHJvcGVydHlTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItc2VydmljZXMnO1xuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvZmVhdHVyZSc7XG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBmb3JrSm9pbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUHJvcGVydHlGZWF0dXJlT3B0aW9uIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuZXhwb3J0IGludGVyZmFjZSBQcm9wZXJ0eUZlYXR1cmVCaW5kaW5nIHtcbiAgW2ZlYXR1cmVJZDogc3RyaW5nXTogc3RyaW5nW107IC8vIGZlYXR1cmVJZCAtPiBsaXN0IG9mIHZhbHVlSWRzXG59XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1wcm9wZXJ0eS1tYW5hZ2UtZmVhdHVyZXMnLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBQcm9wZXJ0eU1hbmFnZUNvbnRlbnRDb21wb25lbnQsIFRvb2xiYXJDb21wb25lbnQsIE1hdENoZWNrYm94TW9kdWxlLCBNYXRCdXR0b25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydHktbWFuYWdlLWZlYXR1cmVzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb3BlcnR5LW1hbmFnZS1mZWF0dXJlcy5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5TWFuYWdlRmVhdHVyZXNDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJvcGVydHlTZXJ2aWNlID0gaW5qZWN0KFByb3BlcnR5U2VydmljZSk7XG4gIGZlYXR1cmVTZXJ2aWNlID0gaW5qZWN0KEZlYXR1cmVTZXJ2aWNlKTtcbiAgZmVhdHVyZXM6IEZlYXR1cmVbXSA9IFtdO1xuICBzZWxlY3RlZDogUHJvcGVydHlGZWF0dXJlQmluZGluZyA9IHt9O1xuXG4gIHJlYWRvbmx5IHBhcnRpYWxseUNvbXBsZXRlID0gKGZlYXR1cmU6IEZlYXR1cmUpID0+XG4gICAgY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgaWYgKCFmZWF0dXJlLnZhbHVlcykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmVhdHVyZS52YWx1ZXMuc29tZSgodCkgPT4gdC5zZWxlY3RlZCkgJiYgIWZlYXR1cmUudmFsdWVzLmV2ZXJ5KCh0KSA9PiB0LnNlbGVjdGVkKTtcbiAgICB9KTtcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pZCA9IHRoaXMucm91dGUucGFyZW50Py5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ2lkJykgYXMgc3RyaW5nO1xuICAgIHRoaXMuZmluZCgpO1xuICB9XG4gIGlzRW1wdHkob2JqOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gb2JqICYmIE9iamVjdC5rZXlzKG9iaikubGVuZ3RoID09PSAwO1xuICB9XG4gIGZpbmQoKSB7XG4gICAgZm9ya0pvaW4oe1xuICAgICAgZmVhdHVyZXM6IHRoaXMuZmVhdHVyZVNlcnZpY2UuZmluZDxhbnk+KHt9KSxcbiAgICAgIG9wdGlvbnM6IHRoaXMucHJvcGVydHlTZXJ2aWNlLmZpbmRVc2VyRmVhdHVyZXM8YW55Pih0aGlzLmlkKSxcbiAgICB9KS5zdWJzY3JpYmUoKHsgZmVhdHVyZXMsIG9wdGlvbnMgfSkgPT4ge1xuICAgICAgdGhpcy5mZWF0dXJlcyA9IGZlYXR1cmVzLmRhdGE7XG4gICAgICBpZiAob3B0aW9ucy5kYXRhKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQgPSB0aGlzLmNvbnZlcnRUb0JpbmRpbmcob3B0aW9ucy5kYXRhKTtcbiAgICAgICAgLy8gZW5zdXJlIGFsbCBmZWF0dXJlcyBoYXZlIGluaXRpYWxpemVkIHZhbHVlIGFycmF5c1xuICAgICAgICBmb3IgKGNvbnN0IGZlYXR1cmUgb2YgdGhpcy5mZWF0dXJlcykge1xuICAgICAgICAgIGlmICghdGhpcy5zZWxlY3RlZFtmZWF0dXJlLmlkXSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFtmZWF0dXJlLmlkXSA9IFtdO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIHNlY3Rpb25DaGFuZ2UoZmVhdHVyZTogRmVhdHVyZSwgc2VsZWN0ZWQ6IGJvb2xlYW4sIGluZGV4PzogbnVtYmVyKSB7XG4gICAgaWYgKGluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGZlYXR1cmUuc2VsZWN0ZWQgPSBzZWxlY3RlZDtcbiAgICAgIGZlYXR1cmUudmFsdWVzPy5mb3JFYWNoKCh0KSA9PiAodC5zZWxlY3RlZCA9IHNlbGVjdGVkKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZlYXR1cmUudmFsdWVzW2luZGV4XS5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuICAgICAgZmVhdHVyZS5zZWxlY3RlZCA9IGZlYXR1cmUudmFsdWVzPy5ldmVyeSgodCkgPT4gdC5zZWxlY3RlZCkgPz8gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgdG9nZ2xlVmFsdWUoZmVhdHVyZUlkOiBzdHJpbmcsIHZhbHVlSWQ6IHN0cmluZywgY2hlY2tlZDogYm9vbGVhbikge1xuICAgIGNvbnN0IHNlbGVjdGVkVmFsdWVzID0gdGhpcy5zZWxlY3RlZFtmZWF0dXJlSWRdIHx8IFtdO1xuICAgIGlmIChjaGVja2VkKSB7XG4gICAgICBzZWxlY3RlZFZhbHVlcy5wdXNoKHZhbHVlSWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpbmRleCA9IHNlbGVjdGVkVmFsdWVzLmluZGV4T2YodmFsdWVJZCk7XG4gICAgICBpZiAoaW5kZXggIT09IC0xKSBzZWxlY3RlZFZhbHVlcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkW2ZlYXR1cmVJZF0gPSBzZWxlY3RlZFZhbHVlcztcbiAgfVxuICBzYXZlKCkge1xuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLnVwZGF0ZVVzZXJGZWF0dXJlcyh0aGlzLmlkLCB0aGlzLnNlbGVjdGVkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKCdVcGRhdGUgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBjb252ZXJ0VG9CaW5kaW5nKG9wdGlvbnM6IFByb3BlcnR5RmVhdHVyZU9wdGlvbltdKTogUHJvcGVydHlGZWF0dXJlQmluZGluZyB7XG4gICAgY29uc3QgYmluZGluZzogUHJvcGVydHlGZWF0dXJlQmluZGluZyA9IHt9O1xuXG4gICAgZm9yIChjb25zdCBvcHRpb24gb2Ygb3B0aW9ucykge1xuICAgICAgY29uc3QgZmVhdHVyZUlkID0gb3B0aW9uLmZlYXR1cmUuaWQ7XG4gICAgICBjb25zdCB2YWx1ZUlkID0gb3B0aW9uLnZhbHVlLmlkO1xuXG4gICAgICBpZiAoIWJpbmRpbmdbZmVhdHVyZUlkXSkge1xuICAgICAgICBiaW5kaW5nW2ZlYXR1cmVJZF0gPSBbXTtcbiAgICAgIH1cblxuICAgICAgLy8gYXZvaWQgZHVwbGljYXRlcyBqdXN0IGluIGNhc2VcbiAgICAgIGlmICghYmluZGluZ1tmZWF0dXJlSWRdLmluY2x1ZGVzKHZhbHVlSWQpKSB7XG4gICAgICAgIGJpbmRpbmdbZmVhdHVyZUlkXS5wdXNoKHZhbHVlSWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBiaW5kaW5nO1xuICB9XG59XG4iLCI8cm9sYXRlY2gtcHJvcGVydHktbWFuYWdlLWNvbnRlbnQ+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 { 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 static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: PropertyManageLocationComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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 class=\\\"collapsed\\\" [class.expanded]=\\\"!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%}.collapsed{max-height:0;overflow:hidden;transition:max-height .5s cubic-bezier(.4,0,.2,1)}.expanded{max-height:1000px}\\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\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", 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 ], 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 class=\\\"collapsed\\\" [class.expanded]=\\\"!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%}.collapsed{max-height:0;overflow:hidden;transition:max-height .5s cubic-bezier(.4,0,.2,1)}.expanded{max-height:1000px}\\n\"] }]\n }], propDecorators: { autocompleteInput: [{\n type: ViewChild,\n args: ['autocompleteInput', { static: false }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbWFuYWdlLWxvY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS1tYW5hZ2UvcHJvcGVydHktbWFuYWdlLWxvY2F0aW9uL3Byb3BlcnR5LW1hbmFnZS1sb2NhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktbWFuYWdlL3Byb3BlcnR5LW1hbmFnZS1sb2NhdGlvbi9wcm9wZXJ0eS1tYW5hZ2UtbG9jYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFJTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDOUcsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9FLE9BQU8sRUFBMEIsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUscUJBQXFCLEVBQWdDLE1BQU0sZ0NBQWdDLENBQUM7QUFDckcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixD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QkFDWCxrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxXQUFXO3dCQUNYLGVBQWU7d0JBQ2YscUJBQXFCO3dCQUNyQixlQUFlO3dCQUNmLGFBQWE7cUJBQ2Q7OEJBbUNrRCxpQkFBaUI7c0JBQW5FLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBtb2RlbCxcbiAgT25Jbml0LFxuICBQTEFURk9STV9JRCxcbiAgc2lnbmFsLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJvcGVydHlNYW5hZ2VDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vcHJvcGVydHktbWFuYWdlLWNvbnRlbnQvcHJvcGVydHktbWFuYWdlLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIFRvb2xiYXJDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgR29vZ2xlTWFwLCBHb29nbGVNYXBzTW9kdWxlLCBNYXBBZHZhbmNlZE1hcmtlciwgTWFwSW5mb1dpbmRvdywgTWFwTWFya2VyIH0gZnJvbSAnQGFuZ3VsYXIvZ29vZ2xlLW1hcHMnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBUZXh0RmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGV4dC1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZU1vZHVsZSwgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgUHJvcGVydHlMb2NhdGlvbiB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgUHJvcGVydHlTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1wcm9wZXJ0eS1tYW5hZ2UtbG9jYXRpb24nLFxuICBpbXBvcnRzOiBbXG4gICAgUHJvcGVydHlNYW5hZ2VDb250ZW50Q29tcG9uZW50LFxuICAgIFRvb2xiYXJDb21wb25lbnQsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgVGV4dEZpZWxkTW9kdWxlLFxuICAgIE1hdEF1dG9jb21wbGV0ZU1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LW1hbmFnZS1sb2NhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9wZXJ0eS1tYW5hZ2UtbG9jYXRpb24uY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eU1hbmFnZUxvY2F0aW9uQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIHByb3BlcnR5U2VydmljZSA9IGluamVjdChQcm9wZXJ0eVNlcnZpY2UpO1xuICBwcmVkaWN0aW9uczogYW55W10gPSBbXTtcbiAgYXV0b2NvbXBsZXRlU3VnZ2VzdGlvbjogYW55O1xuICB0aXRsZUVsZW1lbnQ7XG4gIHJlc3VsdHNDb250YWluZXJFbGVtZW50O1xuICBpbnB1dEVsZW1lbnQ7XG4gIG5ld2VzdFJlcXVlc3RJZCA9IDA7XG4gIGV4cGFuZCA9IGZhbHNlO1xuICByZXF1ZXN0ID0ge1xuICAgIGlucHV0OiAnJyxcbiAgICBpbmNsdWRlZFByaW1hcnlUeXBlczogWydyZXN0YXVyYW50J10sXG4gICAgbGFuZ3VhZ2U6ICdlbi1HQicsXG4gICAgcmVnaW9uOiAndWsnLFxuICB9O1xuICBtYXAhOiBnb29nbGUubWFwcy5NYXA7XG4gIHBsYWNlc1NlcnZpY2UhOiBnb29nbGUubWFwcy5wbGFjZXMuUGxhY2VzU2VydmljZTtcbiAgc2Vzc2lvblRva2VuITogZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZVNlc3Npb25Ub2tlbjtcbiAgYXV0b2NvbXBsZXRlU2VydmljZSE6IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGVTZXJ2aWNlO1xuICBsb2NhdGlvbiA9IG1vZGVsPFByb3BlcnR5TG9jYXRpb24+KHtcbiAgICBmbGF0TnVtYmVyOiAnJyxcbiAgICBzdHJlZXROdW1iZXI6ICcnLFxuICAgIG5hbWU6ICcnLFxuICAgIHN0cmVldDogJycsXG4gICAgdG93bjogJycsXG4gICAgcG9zdENvZGU6ICcnLFxuICAgIGNvdW50cnk6ICcnLFxuICAgIGxvbmdpdHVkZTogJycsXG4gICAgbGF0aXR1ZGU6ICcnLFxuICB9KTtcbiAgcGxhY2VBdXRvY29tcGxldGVFbGVtZW50OiBhbnk7XG4gIEBWaWV3Q2hpbGQoJ2F1dG9jb21wbGV0ZUlucHV0JywgeyBzdGF0aWM6IGZhbHNlIH0pIGF1dG9jb21wbGV0ZUlucHV0ITogRWxlbWVudFJlZjtcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pZCA9IHRoaXMucm91dGUucGFyZW50Py5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ2lkJykgYXMgc3RyaW5nO1xuICAgIHRoaXMuZmluZCgpO1xuICAgIGlmICh0aGlzLmlzQnJvd3Nlcikge1xuICAgICAgLy8gdGhpcy5hdXRvY29tcGxldGVTZXJ2aWNlID0gbmV3IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGVTZXJ2aWNlKCk7XG4gICAgfVxuICB9XG4gIGZpbmQoKSB7XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZ2V0KHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgLy8gdGhpcy5sb2NhdGlvbiA9IHJlcy5kYXRhLmxvY2F0aW9uIHx8IHt9O1xuICAgICAgICB0aGlzLmxvY2F0aW9uLnVwZGF0ZSgoc3RhdGUpID0+IHtcbiAgICAgICAgICByZXR1cm4geyAuLi4ocmVzLmRhdGEubG9jYXRpb24gfHwge30pIH07XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAocmVzLmRhdGEubG9jYXRpb24pIHtcbiAgICAgICAgICB0aGlzLmV4cGFuZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBvblBsYWNlU2VsZWN0ZWQocGxhY2UpIHtcbiAgICBhd2FpdCBwbGFjZS5mZXRjaEZpZWxkcyh7XG4gICAgICBmaWVsZHM6IFsnZGlzcGxheU5hbWUnLCAnZm9ybWF0dGVkQWRkcmVzcyddLFxuICAgIH0pO1xuICAgIGNvbnN0IHBsYWNlVGV4dCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGAke3BsYWNlLmRpc3BsYXlOYW1lfTogJHtwbGFjZS5mb3JtYXR0ZWRBZGRyZXNzfWApO1xuICAgIHRoaXMucmVzdWx0c0NvbnRhaW5lckVsZW1lbnQucmVwbGFjZUNoaWxkcmVuKHBsYWNlVGV4dCk7XG4gICAgdGhpcy50aXRsZUVsZW1lbnQuaW5uZXJUZXh0ID0gJ1NlbGVjdGVkIFBsYWNlOic7XG4gICAgdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUgPSAnJztcbiAgICB0aGlzLnJlZnJlc2hUb2tlbih0aGlzLnJlcXVlc3QpO1xuICB9XG4gIGRpc3BsYXlGbihvcHRpb246IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIG9wdGlvbiAmJiBvcHRpb24uZGVzY3JpcHRpb24gPyBvcHRpb24uZGVzY3JpcHRpb24gOiAnJztcbiAgfVxuICBvbk9wdGlvblNlbGVjdGVkKGV2ZW50OiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgcHJlZGljdGlvbjogZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZVByZWRpY3Rpb24gPSBldmVudC5vcHRpb24udmFsdWU7XG4gICAgY29uc3QgcGxhY2VJZCA9IHByZWRpY3Rpb24ucGxhY2VfaWQ7XG4gICAgLy8gVXNlIFBsYWNlcyBTZXJ2aWNlIHRvIGdldCBkZXRhaWxlZCBpbmZvcm1hdGlvbiAoZ2VvbWV0cnkpIGFib3V0IHRoZSBzZWxlY3RlZCBwbGFjZVxuICAgIHRoaXMucGxhY2VzU2VydmljZS5nZXREZXRhaWxzKFxuICAgICAgeyBwbGFjZUlkOiBwbGFjZUlkLCBmaWVsZHM6IFsnbmFtZScsICdmb3JtYXR0ZWRfYWRkcmVzcycsICdnZW9tZXRyeScsICdhZGRyZXNzX2NvbXBvbmVudHMnXSB9LFxuICAgICAgKHBsYWNlOiBhbnksIHN0YXR1czogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudHMgPSBwbGFjZS5hZGRyZXNzX2NvbXBvbmVudHM7XG5cbiAgICAgICAgY29uc3QgZ2V0Q29tcG9uZW50ID0gKHR5cGU6IHN0cmluZykgPT4gY29tcG9uZW50cz8uZmluZCgoYzogYW55KSA9PiBjLnR5cGVzLmluY2x1ZGVzKHR5cGUpKT8ubG9uZ19uYW1lIHx8ICcnO1xuXG4gICAgICAgIGNvbnN0IHN0cmVldE51bWJlciA9IGdldENvbXBvbmVudCgnc3RyZWV0X251bWJlcicpO1xuICAgICAgICBjb25zdCByb3V0ZSA9IGdldENvbXBvbmVudCgncm91dGUnKTtcbiAgICAgICAgY29uc3QgdG93biA9IGdldENvbXBvbmVudCgncG9zdGFsX3Rvd24nKSB8fCBnZXRDb21wb25lbnQoJ2xvY2FsaXR5Jyk7XG4gICAgICAgIGNvbnN0IHBvc3Rjb2RlID0gZ2V0Q29tcG9uZW50KCdwb3N0YWxfY29kZScpO1xuXG4gICAgICAgIGlmIChzdHJlZXROdW1iZXIpIHtcbiAgICAgICAgICB0aGlzLmxvY2F0aW9uLnVwZGF0ZSgoc3RhdGUpID0+IHtcbiAgICAgICAgICAgIHN0YXRlLnN0cmVldE51bWJlciA9IHN0cmVldE51bWJlcjtcbiAgICAgICAgICAgIHJldHVybiB7IC4uLnN0YXRlIH07XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRvd24pIHtcbiAgICAgICAgICB0aGlzLmxvY2F0aW9uLnVwZGF0ZSgoc3RhdGUpID0+IHtcbiAgICAgICAgICAgIHN0YXRlLnRvd24gPSB0b3duO1xuICAgICAgICAgICAgcmV0dXJuIHsgLi4uc3RhdGUgfTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocG9zdGNvZGUpIHtcbiAgICAgICAgICB0aGlzLmxvY2F0aW9uLnVwZGF0ZSgoc3RhdGUpID0+IHtcbiAgICAgICAgICAgIHN0YXRlLnBvc3RDb2RlID0gcG9zdGNvZGU7XG4gICAgICAgICAgICByZXR1cm4geyAuLi5zdGF0ZSB9O1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN0YXR1cyA9PT0gZ29vZ2xlLm1hcHMucGxhY2VzLlBsYWNlc1NlcnZpY2VTdGF0dXMuT0sgJiYgcGxhY2U/Lmdlb21ldHJ5KSB7XG4gICAgICAgICAgY29uc3QgbG9jYXRpb24gPSBwbGFjZS5nZW9tZXRyeS5sb2NhdGlvbjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgcmVmcmVzaFRva2VuKHJlcXVlc3QpIHtcbiAgICAvLyBDcmVhdGUgYSBuZXcgc2Vzc2lvbiB0b2tlbiBhbmQgYWRkIGl0IHRvIHRoZSByZXF1ZXN0LlxuICAgIHJlcXVlc3Quc2Vzc2lvblRva2VuID0gbmV3IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGVTZXNzaW9uVG9rZW4oKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgZ29vZ2xlLm1hcHMuaW1wb3J0TGlicmFyeSgncGxhY2VzJykudGhlbigocmVzOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgcGxhY2VzID0gcmVzIGFzIGdvb2dsZS5tYXBzLlBsYWNlc0xpYnJhcnk7XG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlU2VydmljZSA9IG5ldyBnb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlU2VydmljZSgpO1xuICAgICAgICB0aGlzLnBsYWNlc1NlcnZpY2UgPSBuZXcgZ29vZ2xlLm1hcHMucGxhY2VzLlBsYWNlc1NlcnZpY2UoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpO1xuICAgICAgICB0aGlzLnNlc3Npb25Ub2tlbiA9IG5ldyBnb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlU2Vzc2lvblRva2VuKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgb25JbnB1dENoYW5nZShlKSB7XG4gICAgY29uc3QgcXVlcnkgPSBlLnRhcmdldC52YWx1ZTtcbiAgICBpZiAocXVlcnkubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgICAgaW5wdXQ6IGUudGFyZ2V0LnZhbHVlLFxuICAgICAgICBzZXNzaW9uVG9rZW46IHRoaXMuc2Vzc2lvblRva2VuLFxuICAgICAgICBpbmNsdWRlZFJlZ2lvbkNvZGVzOiBbJ3VrJ10sXG4gICAgICAgIHJlZ2lvbjogJ3VrJyxcbiAgICAgICAgaW5jbHVkZWRQcmltYXJ5VHlwZXM6IFsnc3RyZWV0X2FkZHJlc3MnLCAncG9zdGFsX2NvZGUnXSxcbiAgICAgIH07XG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZVNlcnZpY2UuZ2V0UGxhY2VQcmVkaWN0aW9ucyhyZXF1ZXN0LCAocHJlZGljdGlvbnMsIHN0YXR1cykgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZyhwcmVkaWN0aW9ucyk7XG4gICAgICAgIGlmIChzdGF0dXMgPT09IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZXNTZXJ2aWNlU3RhdHVzLk9LICYmIHByZWRpY3Rpb25zKSB7XG4gICAgICAgICAgdGhpcy5wcmVkaWN0aW9ucyA9IHByZWRpY3Rpb25zO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMucHJlZGljdGlvbnMgPSBbXTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJlZGljdGlvbnMgPSBbXTtcbiAgICB9XG4gIH1cbiAgc2F2ZSgpIHtcbiAgICB0aGlzLnByb3BlcnR5U2VydmljZS51cGRhdGVMb2NhdGlvbih0aGlzLmlkLCB0aGlzLmxvY2F0aW9uKCkpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oJ1VwZGF0ZSBzdWNjZXNzZnVsbHknKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oZXJyb3IubWVzc2FnZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIHNlYXJjaFNjaG9vbHMobGF0OiBudW1iZXIsIGxuZzogbnVtYmVyLCByYWRpdXMgPSAyMDAwKSB7fVxufVxuIiwiPHJvbGF0ZWNoLXByb3BlcnR5LW1hbmFnZS1jb250ZW50PlxuICA8cm9sYXRlY2gtdG9vbGJhciB0aXRsZT1cIkxvY2F0aW9uXCIgY2xhc3M9XCJoaWRkZW4gbWQ6YmxvY2tcIiBkaXZpZGVyPjwvcm9sYXRlY2gtdG9vbGJhcj5cbiAgPG1hdC1mb3JtLWZpZWxkIHBvc2l0aW9uPVwibGVmdFwiPlxuICAgIDxpbnB1dFxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2ggZm9yIGEgbG9jYXRpb25cIlxuICAgICAgI3NlYXJjaElucHV0XG4gICAgICAoaW5wdXQpPVwib25JbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICAgIG1hdElucHV0XG4gICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxuICAgIC8+XG4gICAgPG1hdC1hdXRvY29tcGxldGVcbiAgICAgIGNsYXNzPVwic2luZ2xlLWF1dG9jb21wbGV0ZVwiXG4gICAgICAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiXG4gICAgICAob3B0aW9uU2VsZWN0ZWQpPVwib25PcHRpb25TZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgIFtkaXNwbGF5V2l0aF09XCJkaXNwbGF5Rm5cIlxuICAgID5cbiAgICAgIEBmb3IgKHByZWRpY3Rpb24gb2YgcHJlZGljdGlvbnM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwicHJlZGljdGlvblwiPlxuICAgICAgICAgIHt7IHByZWRpY3Rpb24uZGVzY3JpcHRpb24gfX1cbiAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgfVxuICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cbiAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPGRpdiBjbGFzcz1cImJvcmRlciBweC0zIHJvdW5kZWQtbWRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIHB5LTMgY3Vyc29yLXBvaW50ZXIgc2VsZWN0LW5vbmVcIiBpMThuIChjbGljayk9XCJleHBhbmQgPSAhZXhwYW5kXCI+XG4gICAgICA8c3Bhbj4gRW50ZXIgdGhlIGFkZHJlc3MgbWFudWFsbHkgPC9zcGFuPlxuICAgICAgPG1hdC1pY29uPnt7IGV4cGFuZCA/ICdrZXlib2FyZF9hcnJvd191cCcgOiAna2V5Ym9hcmRfYXJyb3dfZG93bicgfX08L21hdC1pY29uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjb2xsYXBzZWRcIiBbY2xhc3MuZXhwYW5kZWRdPVwiIWV4cGFuZFwiPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgIDxtYXQtbGFiZWwgaTE4bj4gRmxhdCBudW1iZXIgPC9tYXQtbGFiZWw+XG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCBbKG5nTW9kZWwpXT1cImxvY2F0aW9uKCkuZmxhdE51bWJlclwiIHJlcXVpcmVkIC8+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgIDxtYXQtbGFiZWwgaTE4bj4gU3RyZWV0IG51bWJlciA8L21hdC1sYWJlbD5cbiAgICAgICAgPGlucHV0IG1hdElucHV0IFsobmdNb2RlbCldPVwibG9jYXRpb24oKS5zdHJlZXROdW1iZXJcIiByZXF1aXJlZCAvPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICA8bWF0LWxhYmVsIGkxOG4+IEJ1aWxkaW5nIG5hbWUgPC9tYXQtbGFiZWw+XG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCBbKG5nTW9kZWwpXT1cImxvY2F0aW9uKCkubmFtZVwiIHJlcXVpcmVkIC8+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgIDxtYXQtbGFiZWwgaTE4bj4gU3RyZWV0IDwvbWF0LWxhYmVsPlxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgWyhuZ01vZGVsKV09XCJsb2NhdGlvbigpLnN0cmVldFwiIHJlcXVpcmVkIC8+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgIDxtYXQtbGFiZWwgaTE4bj4gVG93biA8L21hdC1sYWJlbD5cbiAgICAgICAgPGlucHV0IG1hdElucHV0IFsobmdNb2RlbCldPVwibG9jYXRpb24oKS50b3duXCIgcmVxdWlyZWQgLz5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgPG1hdC1sYWJlbCBpMThuPiBQb3N0Y29kZSA8L21hdC1sYWJlbD5cbiAgICAgICAgPGlucHV0IG1hdElucHV0IFsobmdNb2RlbCldPVwibG9jYXRpb24oKS5wb3N0Q29kZVwiIHJlcXVpcmVkIC8+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1lbmQgaXRlbXMtY2VudGVyIHAtMyBnYXAtM1wiPlxuICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIGkxOG4gKGNsaWNrKT1cInNhdmUoKVwiPlNhdmU8L2J1dHRvbj5cbiAgPC9kaXY+XG48L3JvbGF0ZWNoLXByb3BlcnR5LW1hbmFnZS1jb250ZW50PlxuIl19","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.3.4\", ngImport: i0, type: PropertyVideoYoutubeAddComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.4\", 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.3.4\", 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.3.4\", ngImport: i0, type: SafeUrlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\n static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.3.4\", ngImport: i0, type: SafeUrlPipe, isStandalone: true, name: \"safeUrl\" });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", 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.3.4\", ngImport: i0, type: PropertyVideoItem, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.3.4\", 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+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuICBAaWYgKCFoYXNVbnNhdmVkKCkpIHtcbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICB9XG48L2Rpdj5cbiJdfQ==","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.3.4\", ngImport: i0, type: PropertyManageVideoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.3.4\", 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, signal } from '@angular/core';\nimport { BaseComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { PropertyManageContentComponent } from '../property-manage-content/property-manage-content.component';\nimport { PropertyHighlightsService } from '@rolatech/angular-services';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport { DragDropModule, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MatListModule } from '@angular/material/list';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatInputModule } from '@angular/material/input';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\nimport * as i2 from \"@angular/material/form-field\";\nimport * as i3 from \"@angular/forms\";\nimport * as i4 from \"@angular/cdk/drag-drop\";\nimport * as i5 from \"@angular/material/progress-spinner\";\nimport * as i6 from \"@angular/material/input\";\nexport class PropertyManageHighlights extends BaseComponent {\n propertyHighlightsService = inject(PropertyHighlightsService);\n highlights = signal([], ...(ngDevMode ? [{ debugName: \"highlights\" }] : []));\n loading = signal(false, ...(ngDevMode ? [{ debugName: \"loading\" }] : []));\n savingAll = signal(false, ...(ngDevMode ? [{ debugName: \"savingAll\" }] : []));\n draft = '';\n editIndex = signal(null, ...(ngDevMode ? [{ debugName: \"editIndex\" }] : []));\n editText = '';\n editMode = signal(false, ...(ngDevMode ? [{ debugName: \"editMode\" }] : []));\n ngOnInit() {\n this.id = this.route.parent?.snapshot.paramMap.get('id');\n this.reload();\n }\n toggleEdit() {\n // leaving edit mode cancels any inline edit\n if (this.editMode()) {\n this.cancelEdit();\n }\n this.editMode.update((v) => !v);\n }\n reload() {\n this.loading.set(true);\n this.propertyHighlightsService.getHighlights(this.id).subscribe({\n next: (res) => this.highlights.set(res.data ?? []),\n error: (e) => this.err('Failed to load highlights', e),\n complete: () => this.loading.set(false),\n });\n }\n create() {\n const text = this.draft.trim();\n if (!text)\n return;\n // optimistic append\n const before = this.highlights();\n this.highlights.set([...before, text]);\n this.draft = '';\n this.propertyHighlightsService.addHighlight(this.id, text).subscribe({\n next: (res) => this.highlights.set(res.data),\n error: (e) => {\n this.highlights.set(before);\n this.err('Add failed', e);\n },\n });\n }\n startEdit(index, value) {\n if (!this.editMode())\n return; // only allow in edit mode\n this.editIndex.set(index);\n this.editText = value;\n }\n cancelEdit() {\n this.editIndex.set(null);\n this.editText = '';\n }\n saveEdit(index) {\n const text = this.editText.trim();\n if (!text)\n return;\n const before = this.highlights();\n const copy = before.slice();\n copy[index] = text;\n this.highlights.set(copy);\n this.editIndex.set(null);\n this.editText = '';\n this.propertyHighlightsService.updateHighlightAt(this.id, index, text).subscribe({\n next: (res) => this.highlights.set(res.data),\n error: (e) => {\n this.highlights.set(before);\n this.err('Update failed', e);\n },\n });\n }\n remove(index) {\n const before = this.highlights();\n const copy = before.slice();\n copy.splice(index, 1);\n this.highlights.set(copy);\n this.propertyHighlightsService.deleteHighlightAt(this.id, index).subscribe({\n next: (res) => this.highlights.set(res.data),\n error: (e) => {\n this.highlights.set(before);\n this.err('Delete failed', e);\n },\n });\n }\n dropped(evt) {\n if (!this.editMode() || evt.previousIndex === evt.currentIndex)\n return;\n const before = this.highlights();\n const copy = before.slice();\n moveItemInArray(copy, evt.previousIndex, evt.currentIndex);\n this.highlights.set(copy);\n this.propertyHighlightsService.reorderHighlights(this.id, evt.previousIndex, evt.currentIndex).subscribe({\n next: (res) => this.highlights.set(res.data),\n error: (e) => {\n this.highlights.set(before);\n this.err('Reorder failed', e);\n },\n });\n }\n saveAll() {\n const list = this.highlights();\n this.savingAll.set(true);\n this.propertyHighlightsService.replaceAllHighlights(this.id, list).subscribe({\n next: (res) => this.highlights.set(res.data),\n error: (e) => this.err('Save all failed', e),\n complete: () => this.savingAll.set(false),\n });\n }\n err(msg, _e) {\n this.snackBarService.open(msg);\n // optionally log _e\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: PropertyManageHighlights, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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>\\n <button mat-flat-button (click)=\\\"toggleEdit()\\\">\\n <mat-icon>@if (editMode()) { done } @else { edit }</mat-icon>\\n <span>@if (editMode()) { Done } @else { Edit }</span>\\n </button>\\n </rolatech-toolbar>\\n @if (loading()) {\\n <mat-progress-spinner mode=\\\"indeterminate\\\" diameter=\\\"20\\\"></mat-progress-spinner>\\n }\\n <div class=\\\"flex flex-col gap-2\\\" cdkDropList [cdkDropListDisabled]=\\\"!editMode()\\\" (cdkDropListDropped)=\\\"dropped($event)\\\">\\n @for (h of highlights(); track $index) {\\n <div class=\\\"item\\\" cdkDrag>\\n @if (editMode()) {\\n <div class=\\\"flex cursor-grab items-center\\\" cdkDragHandle aria-label=\\\"Drag to reorder\\\">\\n <mat-icon>drag_indicator</mat-icon>\\n </div>\\n } @if (editIndex() === $index) {\\n <mat-form-field appearance=\\\"fill\\\" class=\\\"grow\\\">\\n <input matInput [(ngModel)]=\\\"editText\\\" name=\\\"edit-{{$index}}\\\" maxlength=\\\"200\\\" />\\n <mat-hint align=\\\"end\\\">{{editText.length}} / 200</mat-hint>\\n </mat-form-field>\\n <button mat-icon-button color=\\\"primary\\\" (click)=\\\"saveEdit($index)\\\" [disabled]=\\\"!editText.trim()\\\">\\n <mat-icon>check</mat-icon>\\n </button>\\n <button mat-icon-button (click)=\\\"cancelEdit()\\\">\\n <mat-icon>close</mat-icon>\\n </button>\\n } @else {\\n <div class=\\\"flex-1 select-text\\\" (dblclick)=\\\"startEdit($index, h)\\\">{{ h }}</div>\\n @if (editMode()) {\\n <button mat-icon-button color=\\\"primary\\\" (click)=\\\"startEdit($index, h)\\\" aria-label=\\\"Edit\\\">\\n <mat-icon>edit</mat-icon>\\n </button>\\n <button mat-icon-button color=\\\"warn\\\" (click)=\\\"remove($index)\\\" aria-label=\\\"Delete\\\">\\n <mat-icon>delete</mat-icon>\\n </button>\\n } }\\n </div>\\n }\\n </div>\\n <form class=\\\"flex items-center gap-2 mt-2\\\" (ngSubmit)=\\\"create()\\\">\\n <mat-form-field appearance=\\\"fill\\\" class=\\\"flex-1\\\" subscriptSizing=\\\"dynamic\\\">\\n <mat-label>New highlight</mat-label>\\n <input matInput [(ngModel)]=\\\"draft\\\" name=\\\"draft\\\" maxlength=\\\"200\\\" />\\n <mat-hint align=\\\"end\\\">{{draft.length}} / 200</mat-hint>\\n </mat-form-field>\\n <button mat-flat-button type=\\\"submit\\\" [disabled]=\\\"!draft.trim()\\\">Add</button>\\n </form>\\n <div class=\\\"flex items-center\\\">\\n <button mat-stroked-button color=\\\"primary\\\" (click)=\\\"saveAll()\\\" [disabled]=\\\"savingAll()\\\">Save All</button>\\n @if (savingAll()) {\\n <span class=\\\"ml-2\\\">Saving\\u2026</span>\\n }\\n </div>\\n</rolatech-property-manage-content>\\n\", styles: [\".header{display:flex;align-items:center;gap:12px}.grow{flex:1 1 auto}.item{display:flex;align-items:center;gap:8px;padding:8px;border:1px solid rgba(0,0,0,.08);border-radius:12px;background:#fff}\\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: 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: \"component\", type: MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { 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.MatHint, selector: \"mat-hint\", inputs: [\"align\", \"id\"] }, { kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i3.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { 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.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i3.MaxLengthValidator, selector: \"[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]\", inputs: [\"maxlength\"] }, { kind: \"directive\", type: i3.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"directive\", type: i3.NgForm, selector: \"form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]\", inputs: [\"ngFormOptions\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"ngmodule\", type: DragDropModule }, { kind: \"directive\", type: i4.CdkDropList, selector: \"[cdkDropList], cdk-drop-list\", inputs: [\"cdkDropListConnectedTo\", \"cdkDropListData\", \"cdkDropListOrientation\", \"id\", \"cdkDropListLockAxis\", \"cdkDropListDisabled\", \"cdkDropListSortingDisabled\", \"cdkDropListEnterPredicate\", \"cdkDropListSortPredicate\", \"cdkDropListAutoScrollDisabled\", \"cdkDropListAutoScrollStep\", \"cdkDropListElementContainer\", \"cdkDropListHasAnchor\"], outputs: [\"cdkDropListDropped\", \"cdkDropListEntered\", \"cdkDropListExited\", \"cdkDropListSorted\"], exportAs: [\"cdkDropList\"] }, { kind: \"directive\", type: i4.CdkDrag, selector: \"[cdkDrag]\", inputs: [\"cdkDragData\", \"cdkDragLockAxis\", \"cdkDragRootElement\", \"cdkDragBoundary\", \"cdkDragStartDelay\", \"cdkDragFreeDragPosition\", \"cdkDragDisabled\", \"cdkDragConstrainPosition\", \"cdkDragPreviewClass\", \"cdkDragPreviewContainer\", \"cdkDragScale\"], outputs: [\"cdkDragStarted\", \"cdkDragReleased\", \"cdkDragEnded\", \"cdkDragEntered\", \"cdkDragExited\", \"cdkDragDropped\", \"cdkDragMoved\"], exportAs: [\"cdkDrag\"] }, { kind: \"directive\", type: i4.CdkDragHandle, selector: \"[cdkDragHandle]\", inputs: [\"cdkDragHandleDisabled\"] }, { kind: \"ngmodule\", type: MatListModule }, { kind: \"ngmodule\", type: MatProgressSpinnerModule }, { kind: \"component\", type: i5.MatProgressSpinner, selector: \"mat-progress-spinner, mat-spinner\", inputs: [\"color\", \"mode\", \"value\", \"diameter\", \"strokeWidth\"], exportAs: [\"matProgressSpinner\"] }, { kind: \"ngmodule\", type: MatInputModule }, { 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\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: PropertyManageHighlights, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-manage-highlights', imports: [\n PropertyManageContentComponent,\n ToolbarComponent,\n MatButtonModule,\n MatIcon,\n MatFormFieldModule,\n CommonModule,\n FormsModule,\n DragDropModule,\n MatListModule,\n MatProgressSpinnerModule,\n MatInputModule,\n ], template: \"<rolatech-property-manage-content>\\n <rolatech-toolbar title=\\\"Highlights\\\" class=\\\"hidden md:block\\\" divider>\\n <button mat-flat-button (click)=\\\"toggleEdit()\\\">\\n <mat-icon>@if (editMode()) { done } @else { edit }</mat-icon>\\n <span>@if (editMode()) { Done } @else { Edit }</span>\\n </button>\\n </rolatech-toolbar>\\n @if (loading()) {\\n <mat-progress-spinner mode=\\\"indeterminate\\\" diameter=\\\"20\\\"></mat-progress-spinner>\\n }\\n <div class=\\\"flex flex-col gap-2\\\" cdkDropList [cdkDropListDisabled]=\\\"!editMode()\\\" (cdkDropListDropped)=\\\"dropped($event)\\\">\\n @for (h of highlights(); track $index) {\\n <div class=\\\"item\\\" cdkDrag>\\n @if (editMode()) {\\n <div class=\\\"flex cursor-grab items-center\\\" cdkDragHandle aria-label=\\\"Drag to reorder\\\">\\n <mat-icon>drag_indicator</mat-icon>\\n </div>\\n } @if (editIndex() === $index) {\\n <mat-form-field appearance=\\\"fill\\\" class=\\\"grow\\\">\\n <input matInput [(ngModel)]=\\\"editText\\\" name=\\\"edit-{{$index}}\\\" maxlength=\\\"200\\\" />\\n <mat-hint align=\\\"end\\\">{{editText.length}} / 200</mat-hint>\\n </mat-form-field>\\n <button mat-icon-button color=\\\"primary\\\" (click)=\\\"saveEdit($index)\\\" [disabled]=\\\"!editText.trim()\\\">\\n <mat-icon>check</mat-icon>\\n </button>\\n <button mat-icon-button (click)=\\\"cancelEdit()\\\">\\n <mat-icon>close</mat-icon>\\n </button>\\n } @else {\\n <div class=\\\"flex-1 select-text\\\" (dblclick)=\\\"startEdit($index, h)\\\">{{ h }}</div>\\n @if (editMode()) {\\n <button mat-icon-button color=\\\"primary\\\" (click)=\\\"startEdit($index, h)\\\" aria-label=\\\"Edit\\\">\\n <mat-icon>edit</mat-icon>\\n </button>\\n <button mat-icon-button color=\\\"warn\\\" (click)=\\\"remove($index)\\\" aria-label=\\\"Delete\\\">\\n <mat-icon>delete</mat-icon>\\n </button>\\n } }\\n </div>\\n }\\n </div>\\n <form class=\\\"flex items-center gap-2 mt-2\\\" (ngSubmit)=\\\"create()\\\">\\n <mat-form-field appearance=\\\"fill\\\" class=\\\"flex-1\\\" subscriptSizing=\\\"dynamic\\\">\\n <mat-label>New highlight</mat-label>\\n <input matInput [(ngModel)]=\\\"draft\\\" name=\\\"draft\\\" maxlength=\\\"200\\\" />\\n <mat-hint align=\\\"end\\\">{{draft.length}} / 200</mat-hint>\\n </mat-form-field>\\n <button mat-flat-button type=\\\"submit\\\" [disabled]=\\\"!draft.trim()\\\">Add</button>\\n </form>\\n <div class=\\\"flex items-center\\\">\\n <button mat-stroked-button color=\\\"primary\\\" (click)=\\\"saveAll()\\\" [disabled]=\\\"savingAll()\\\">Save All</button>\\n @if (savingAll()) {\\n <span class=\\\"ml-2\\\">Saving\\u2026</span>\\n }\\n </div>\\n</rolatech-property-manage-content>\\n\", styles: [\".header{display:flex;align-items:center;gap:12px}.grow{flex:1 1 auto}.item{display:flex;align-items:center;gap:8px;padding:8px;border:1px solid rgba(0,0,0,.08);border-radius:12px;background:#fff}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbWFuYWdlLWhpZ2hsaWdodHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktbWFuYWdlL3Byb3BlcnR5LW1hbmFnZS1oaWdobGlnaHRzL3Byb3BlcnR5LW1hbmFnZS1oaWdobGlnaHRzLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL3BhZ2VzL3Byb3BlcnR5LW1hbmFnZS9wcm9wZXJ0eS1tYW5hZ2UtaGlnaGxpZ2h0cy9wcm9wZXJ0eS1tYW5hZ2UtaGlnaGxpZ2h0cy5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0UsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDOUcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQWUsY0FBYyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFD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RyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1NBQzFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQVc7UUFDbEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0Isb0JBQW9CO0lBQ3RCLENBQUM7dUdBekhVLHdCQUF3QjsyRkFBeEIsd0JBQXdCLHNIQ2pDckMsOGtGQXdEQSwrUER0Q0ksOEJBQThCLDZFQUM5QixnQkFBZ0IsK0hBQ2hCLGVBQWUsMmlCQUNmLE9BQU8sMElBQ1Asa0JBQWtCLGtZQUNsQixZQUFZLDhCQUNaLFdBQVcsMHNDQUNYLGNBQWMsbW9DQUNkLGFBQWEsOEJBQ2Isd0JBQXdCLGtPQUN4QixjQUFjOzsyRkFLTCx3QkFBd0I7a0JBbEJwQyxTQUFTOytCQUNFLHFDQUFxQyxXQUN0Qzt3QkFDUCw4QkFBOEI7d0JBQzlCLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixPQUFPO3dCQUNQLGtCQUFrQjt3QkFDbEIsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYix3QkFBd0I7d0JBQ3hCLGNBQWM7cUJBQ2YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgT25Jbml0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIFRvb2xiYXJDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IFByb3BlcnR5TWFuYWdlQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4uL3Byb3BlcnR5LW1hbmFnZS1jb250ZW50L3Byb3BlcnR5LW1hbmFnZS1jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9wZXJ0eUhpZ2hsaWdodHNTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItc2VydmljZXMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IENka0RyYWdEcm9wLCBEcmFnRHJvcE1vZHVsZSwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5leHBvcnQgdHlwZSBIaWdobGlnaHQgPSBzdHJpbmc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb3BlcnR5LW1hbmFnZS1oaWdobGlnaHRzJyxcbiAgaW1wb3J0czogW1xuICAgIFByb3BlcnR5TWFuYWdlQ29udGVudENvbXBvbmVudCxcbiAgICBUb29sYmFyQ29tcG9uZW50LFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRJY29uLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXG4gICAgTWF0TGlzdE1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1tYW5hZ2UtaGlnaGxpZ2h0cy5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb3BlcnR5LW1hbmFnZS1oaWdobGlnaHRzLnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eU1hbmFnZUhpZ2hsaWdodHMgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJvcGVydHlIaWdobGlnaHRzU2VydmljZSA9IGluamVjdChQcm9wZXJ0eUhpZ2hsaWdodHNTZXJ2aWNlKTtcbiAgaGlnaGxpZ2h0cyA9IHNpZ25hbDxzdHJpbmdbXT4oW10pO1xuICBsb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcbiAgc2F2aW5nQWxsID0gc2lnbmFsKGZhbHNlKTtcblxuICBkcmFmdCA9ICcnO1xuICBlZGl0SW5kZXggPSBzaWduYWw8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG4gIGVkaXRUZXh0ID0gJyc7XG4gIGVkaXRNb2RlID0gc2lnbmFsKGZhbHNlKTtcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pZCA9IHRoaXMucm91dGUucGFyZW50Py5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ2lkJykgYXMgc3RyaW5nO1xuICAgIHRoaXMucmVsb2FkKCk7XG4gIH1cbiAgdG9nZ2xlRWRpdCgpIHtcbiAgICAvLyBsZWF2aW5nIGVkaXQgbW9kZSBjYW5jZWxzIGFueSBpbmxpbmUgZWRpdFxuICAgIGlmICh0aGlzLmVkaXRNb2RlKCkpIHtcbiAgICAgIHRoaXMuY2FuY2VsRWRpdCgpO1xuICAgIH1cbiAgICB0aGlzLmVkaXRNb2RlLnVwZGF0ZSgodikgPT4gIXYpO1xuICB9XG5cbiAgcmVsb2FkKCkge1xuICAgIHRoaXMubG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgdGhpcy5wcm9wZXJ0eUhpZ2hsaWdodHNTZXJ2aWNlLmdldEhpZ2hsaWdodHModGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4gdGhpcy5oaWdobGlnaHRzLnNldChyZXMuZGF0YSA/PyBbXSksXG4gICAgICBlcnJvcjogKGUpID0+IHRoaXMuZXJyKCdGYWlsZWQgdG8gbG9hZCBoaWdobGlnaHRzJywgZSksXG4gICAgICBjb21wbGV0ZTogKCkgPT4gdGhpcy5sb2FkaW5nLnNldChmYWxzZSksXG4gICAgfSk7XG4gIH1cblxuICBjcmVhdGUoKSB7XG4gICAgY29uc3QgdGV4dCA9IHRoaXMuZHJhZnQudHJpbSgpO1xuICAgIGlmICghdGV4dCkgcmV0dXJuO1xuICAgIC8vIG9wdGltaXN0aWMgYXBwZW5kXG4gICAgY29uc3QgYmVmb3JlID0gdGhpcy5oaWdobGlnaHRzKCk7XG4gICAgdGhpcy5oaWdobGlnaHRzLnNldChbLi4uYmVmb3JlLCB0ZXh0XSk7XG4gICAgdGhpcy5kcmFmdCA9ICcnO1xuICAgIHRoaXMucHJvcGVydHlIaWdobGlnaHRzU2VydmljZS5hZGRIaWdobGlnaHQodGhpcy5pZCwgdGV4dCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4gdGhpcy5oaWdobGlnaHRzLnNldChyZXMuZGF0YSksXG4gICAgICBlcnJvcjogKGUpID0+IHtcbiAgICAgICAgdGhpcy5oaWdobGlnaHRzLnNldChiZWZvcmUpO1xuICAgICAgICB0aGlzLmVycignQWRkIGZhaWxlZCcsIGUpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXJ0RWRpdChpbmRleDogbnVtYmVyLCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLmVkaXRNb2RlKCkpIHJldHVybjsgLy8gb25seSBhbGxvdyBpbiBlZGl0IG1vZGVcbiAgICB0aGlzLmVkaXRJbmRleC5zZXQoaW5kZXgpO1xuICAgIHRoaXMuZWRpdFRleHQgPSB2YWx1ZTtcbiAgfVxuXG4gIGNhbmNlbEVkaXQoKSB7XG4gICAgdGhpcy5lZGl0SW5kZXguc2V0KG51bGwpO1xuICAgIHRoaXMuZWRpdFRleHQgPSAnJztcbiAgfVxuICBzYXZlRWRpdChpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgdGV4dCA9IHRoaXMuZWRpdFRleHQudHJpbSgpO1xuICAgIGlmICghdGV4dCkgcmV0dXJuO1xuICAgIGNvbnN0IGJlZm9yZSA9IHRoaXMuaGlnaGxpZ2h0cygpO1xuICAgIGNvbnN0IGNvcHkgPSBiZWZvcmUuc2xpY2UoKTtcbiAgICBjb3B5W2luZGV4XSA9IHRleHQ7XG4gICAgdGhpcy5oaWdobGlnaHRzLnNldChjb3B5KTtcbiAgICB0aGlzLmVkaXRJbmRleC5zZXQobnVsbCk7XG4gICAgdGhpcy5lZGl0VGV4dCA9ICcnO1xuXG4gICAgdGhpcy5wcm9wZXJ0eUhpZ2hsaWdodHNTZXJ2aWNlLnVwZGF0ZUhpZ2hsaWdodEF0KHRoaXMuaWQsIGluZGV4LCB0ZXh0KS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB0aGlzLmhpZ2hsaWdodHMuc2V0KHJlcy5kYXRhKSxcbiAgICAgIGVycm9yOiAoZSkgPT4ge1xuICAgICAgICB0aGlzLmhpZ2hsaWdodHMuc2V0KGJlZm9yZSk7XG4gICAgICAgIHRoaXMuZXJyKCdVcGRhdGUgZmFpbGVkJywgZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcmVtb3ZlKGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBiZWZvcmUgPSB0aGlzLmhpZ2hsaWdodHMoKTtcbiAgICBjb25zdCBjb3B5ID0gYmVmb3JlLnNsaWNlKCk7XG4gICAgY29weS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHRoaXMuaGlnaGxpZ2h0cy5zZXQoY29weSk7XG5cbiAgICB0aGlzLnByb3BlcnR5SGlnaGxpZ2h0c1NlcnZpY2UuZGVsZXRlSGlnaGxpZ2h0QXQodGhpcy5pZCwgaW5kZXgpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHRoaXMuaGlnaGxpZ2h0cy5zZXQocmVzLmRhdGEpLFxuICAgICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0cy5zZXQoYmVmb3JlKTtcbiAgICAgICAgdGhpcy5lcnIoJ0RlbGV0ZSBmYWlsZWQnLCBlKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBkcm9wcGVkKGV2dDogQ2RrRHJhZ0Ryb3A8YW55W10+KSB7XG4gICAgaWYgKCF0aGlzLmVkaXRNb2RlKCkgfHwgZXZ0LnByZXZpb3VzSW5kZXggPT09IGV2dC5jdXJyZW50SW5kZXgpIHJldHVybjtcblxuICAgIGNvbnN0IGJlZm9yZSA9IHRoaXMuaGlnaGxpZ2h0cygpO1xuICAgIGNvbnN0IGNvcHkgPSBiZWZvcmUuc2xpY2UoKTtcbiAgICBtb3ZlSXRlbUluQXJyYXkoY29weSwgZXZ0LnByZXZpb3VzSW5kZXgsIGV2dC5jdXJyZW50SW5kZXgpO1xuICAgIHRoaXMuaGlnaGxpZ2h0cy5zZXQoY29weSk7XG5cbiAgICB0aGlzLnByb3BlcnR5SGlnaGxpZ2h0c1NlcnZpY2UucmVvcmRlckhpZ2hsaWdodHModGhpcy5pZCwgZXZ0LnByZXZpb3VzSW5kZXgsIGV2dC5jdXJyZW50SW5kZXgpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHRoaXMuaGlnaGxpZ2h0cy5zZXQocmVzLmRhdGEpLFxuICAgICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0cy5zZXQoYmVmb3JlKTtcbiAgICAgICAgdGhpcy5lcnIoJ1Jlb3JkZXIgZmFpbGVkJywgZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgc2F2ZUFsbCgpIHtcbiAgICBjb25zdCBsaXN0ID0gdGhpcy5oaWdobGlnaHRzKCk7XG4gICAgdGhpcy5zYXZpbmdBbGwuc2V0KHRydWUpO1xuICAgIHRoaXMucHJvcGVydHlIaWdobGlnaHRzU2VydmljZS5yZXBsYWNlQWxsSGlnaGxpZ2h0cyh0aGlzLmlkLCBsaXN0KS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB0aGlzLmhpZ2hsaWdodHMuc2V0KHJlcy5kYXRhKSxcbiAgICAgIGVycm9yOiAoZSkgPT4gdGhpcy5lcnIoJ1NhdmUgYWxsIGZhaWxlZCcsIGUpLFxuICAgICAgY29tcGxldGU6ICgpID0+IHRoaXMuc2F2aW5nQWxsLnNldChmYWxzZSksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGVycihtc2c6IHN0cmluZywgX2U6IHVua25vd24pIHtcbiAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKG1zZyk7XG4gICAgLy8gb3B0aW9uYWxseSBsb2cgX2VcbiAgfVxufVxuIiwiPHJvbGF0ZWNoLXByb3BlcnR5LW1hbmFnZS1jb250ZW50PlxuICA8cm9sYXRlY2gtdG9vbGJhciB0aXRsZT1cIkhpZ2hsaWdodHNcIiBjbGFzcz1cImhpZGRlbiBtZDpibG9ja1wiIGRpdmlkZXI+XG4gICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gKGNsaWNrKT1cInRvZ2dsZUVkaXQoKVwiPlxuICAgICAgPG1hdC1pY29uPkBpZiAoZWRpdE1vZGUoKSkgeyBkb25lIH0gQGVsc2UgeyBlZGl0IH08L21hdC1pY29uPlxuICAgICAgPHNwYW4+QGlmIChlZGl0TW9kZSgpKSB7IERvbmUgfSBAZWxzZSB7IEVkaXQgfTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9yb2xhdGVjaC10b29sYmFyPlxuICBAaWYgKGxvYWRpbmcoKSkge1xuICA8bWF0LXByb2dyZXNzLXNwaW5uZXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiBkaWFtZXRlcj1cIjIwXCI+PC9tYXQtcHJvZ3Jlc3Mtc3Bpbm5lcj5cbiAgfVxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMlwiIGNka0Ryb3BMaXN0IFtjZGtEcm9wTGlzdERpc2FibGVkXT1cIiFlZGl0TW9kZSgpXCIgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wcGVkKCRldmVudClcIj5cbiAgICBAZm9yIChoIG9mIGhpZ2hsaWdodHMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgPGRpdiBjbGFzcz1cIml0ZW1cIiBjZGtEcmFnPlxuICAgICAgQGlmIChlZGl0TW9kZSgpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBjdXJzb3ItZ3JhYiBpdGVtcy1jZW50ZXJcIiBjZGtEcmFnSGFuZGxlIGFyaWEtbGFiZWw9XCJEcmFnIHRvIHJlb3JkZXJcIj5cbiAgICAgICAgPG1hdC1pY29uPmRyYWdfaW5kaWNhdG9yPC9tYXQtaWNvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgfSBAaWYgKGVkaXRJbmRleCgpID09PSAkaW5kZXgpIHtcbiAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiZ3Jvd1wiPlxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgWyhuZ01vZGVsKV09XCJlZGl0VGV4dFwiIG5hbWU9XCJlZGl0LXt7JGluZGV4fX1cIiBtYXhsZW5ndGg9XCIyMDBcIiAvPlxuICAgICAgICA8bWF0LWhpbnQgYWxpZ249XCJlbmRcIj57e2VkaXRUZXh0Lmxlbmd0aH19IC8gMjAwPC9tYXQtaGludD5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwic2F2ZUVkaXQoJGluZGV4KVwiIFtkaXNhYmxlZF09XCIhZWRpdFRleHQudHJpbSgpXCI+XG4gICAgICAgIDxtYXQtaWNvbj5jaGVjazwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJjYW5jZWxFZGl0KClcIj5cbiAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleC0xIHNlbGVjdC10ZXh0XCIgKGRibGNsaWNrKT1cInN0YXJ0RWRpdCgkaW5kZXgsIGgpXCI+e3sgaCB9fTwvZGl2PlxuICAgICAgQGlmIChlZGl0TW9kZSgpKSB7XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwic3RhcnRFZGl0KCRpbmRleCwgaClcIiBhcmlhLWxhYmVsPVwiRWRpdFwiPlxuICAgICAgICA8bWF0LWljb24+ZWRpdDwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNvbG9yPVwid2FyblwiIChjbGljayk9XCJyZW1vdmUoJGluZGV4KVwiIGFyaWEtbGFiZWw9XCJEZWxldGVcIj5cbiAgICAgICAgPG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIH0gfVxuICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG4gIDxmb3JtIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgbXQtMlwiIChuZ1N1Ym1pdCk9XCJjcmVhdGUoKVwiPlxuICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiZmxleC0xXCIgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxuICAgICAgPG1hdC1sYWJlbD5OZXcgaGlnaGxpZ2h0PC9tYXQtbGFiZWw+XG4gICAgICA8aW5wdXQgbWF0SW5wdXQgWyhuZ01vZGVsKV09XCJkcmFmdFwiIG5hbWU9XCJkcmFmdFwiIG1heGxlbmd0aD1cIjIwMFwiIC8+XG4gICAgICA8bWF0LWhpbnQgYWxpZ249XCJlbmRcIj57e2RyYWZ0Lmxlbmd0aH19IC8gMjAwPC9tYXQtaGludD5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBbZGlzYWJsZWRdPVwiIWRyYWZ0LnRyaW0oKVwiPkFkZDwvYnV0dG9uPlxuICA8L2Zvcm0+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJzYXZlQWxsKClcIiBbZGlzYWJsZWRdPVwic2F2aW5nQWxsKClcIj5TYXZlIEFsbDwvYnV0dG9uPlxuICAgIEBpZiAoc2F2aW5nQWxsKCkpIHtcbiAgICA8c3BhbiBjbGFzcz1cIm1sLTJcIj5TYXZpbmfigKY8L3NwYW4+XG4gICAgfVxuICA8L2Rpdj5cbjwvcm9sYXRlY2gtcHJvcGVydHktbWFuYWdlLWNvbnRlbnQ+XG4iXX0=","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.3.4\", ngImport: i0, type: PropertyManageEpc, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.4\", 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.3.4\", 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.3.4\", ngImport: i0, type: PropertyManageTranslation, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.4\", 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.3.4\", 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.3.4\", ngImport: i0, type: PropertyManageKeywords, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.4\", 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.3.4\", 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.3.4\", ngImport: i0, type: PropertyManageFloorplan, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.4\", 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.3.4\", 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.3.4\", ngImport: i0, type: PropertyViewingConfirmationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.3.4\", 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 { 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.3.4\", ngImport: i0, type: PropertyManageViewingsDetailComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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-24 w-24 object-cover aspect-video rounded-md mr-3\\\">\\n @defer {\\n <rolatech-thumbnail [src]=\\\"property.media[0].url\\\" size=\\\"medium\\\" mode=\\\"clip\\\"> </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.toFixed(2) }}</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\"] }], deferBlockDependencies: [() => [ThumbnailComponent]] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: PropertyManageViewingsDetailComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-manage-viewings-detail', imports: [CommonModule, ToolbarComponent, RichLabelComponent, ThumbnailComponent, 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-24 w-24 object-cover aspect-video rounded-md mr-3\\\">\\n @defer {\\n <rolatech-thumbnail [src]=\\\"property.media[0].url\\\" size=\\\"medium\\\" mode=\\\"clip\\\"> </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.toFixed(2) }}</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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbWFuYWdlLXZpZXdpbmdzLWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktbWFuYWdlL3Byb3BlcnR5LW1hbmFnZS12aWV3aW5ncy1kZXRhaWwvcHJvcGVydHktbWFuYWdlLXZpZXdpbmdzLWRldGFpbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktbWFuYWdlL3Byb3BlcnR5LW1hbmFnZS12aWV3aW5ncy1kZXRhaWwvcHJvcGVydHktbWFuYWdlLXZpZXdpbmdzLWRldGFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUVMLHFCQUFxQixFQUNyQixnQkFBZ0IsRUFFaEIsc0JBQXNCLEdBQ3ZCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLDJGQUEyRixDQUFDOzs7QUFRakosTUFBTSxPQUFPLHFDQUFzQyxTQUFRLGFBQWE7SUFDdEUsZUFB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QyxNQUFNLEVBQUUsRUFBRTtnQkFDZixJQUFJLE1BQU0sRUFBRSxDQUFDO29CQUNYLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3BCLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQzt3QkFDOUQsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7NEJBQ1osSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQzt3QkFDbkMsQ0FBQztxQkFDRixDQUFDLENBQUM7Z0JBQ0wsQ0FBQztZQUNILENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO3VHQW5FVSxxQ0FBcUM7MkZBQXJDLHFDQUFxQywySENyQmxELHF5SkF5R0EseUREeEZZLFlBQVksK0JBQUUsZ0JBQWdCLGdJQUFFLGtCQUFrQiwyRkFBc0IsZUFBZSwwWEFBbkMsa0JBQWtCOzsyRkFJckUscUNBQXFDO2tCQU5qRCxTQUFTOytCQUNFLDBDQUEwQyxXQUMzQyxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVG9vbGJhckNvbXBvbmVudCwgQmFzZUNvbXBvbmVudCwgUmljaExhYmVsQ29tcG9uZW50LCBUaHVtYm5haWxDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IEF1dGhVc2VyU2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWF1dGgnO1xuaW1wb3J0IHsgUHJvcGVydHlTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItc2VydmljZXMnO1xuaW1wb3J0IHtcbiAgUHJvcGVydHksXG4gIFByb3BlcnR5Vmlld2luZ1N0YXR1cyxcbiAgRW1wbG95bWVudFN0YXR1cyxcbiAgUHJvcGVydHlWaWV3aW5nLFxuICBQcm9wZXJ0eVZpZXdlckNhdGVnb3J5LFxufSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBQcm9wZXJ0eVZpZXdpbmdDb25maXJtYXRpb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL3Byb3BlcnR5LXZpZXdpbmctY29uZmlybWF0aW9uL3Byb3BlcnR5LXZpZXdpbmctY29uZmlybWF0aW9uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb3BlcnR5LW1hbmFnZS12aWV3aW5ncy1kZXRhaWwnLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUb29sYmFyQ29tcG9uZW50LCBSaWNoTGFiZWxDb21wb25lbnQsIFRodW1ibmFpbENvbXBvbmVudCwgTWF0QnV0dG9uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LW1hbmFnZS12aWV3aW5ncy1kZXRhaWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHJvcGVydHktbWFuYWdlLXZpZXdpbmdzLWRldGFpbC5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5TWFuYWdlVmlld2luZ3NEZXRhaWxDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJvcGVydHlTZXJ2aWNlID0gaW5qZWN0KFByb3BlcnR5U2VydmljZSk7XG4gIGF1dGhVc2VyU2VydmljZSA9IGluamVjdChBdXRoVXNlclNlcnZpY2UpO1xuICB2aWV3aW5nITogUHJvcGVydHlWaWV3aW5nO1xuICBuYW1lID0gJyc7XG4gIHByb3BlcnR5ITogUHJvcGVydHk7XG4gIHN0YXR1cyA9IFByb3BlcnR5Vmlld2luZ1N0YXR1cztcbiAgZW1wbG95bWVudFN0YXR1cyA9IEVtcGxveW1lbnRTdGF0dXM7XG4gIHByb3BlcnR5Vmlld2VyQ2F0ZWdvcnkgPSBQcm9wZXJ0eVZpZXdlckNhdGVnb3J5O1xuICBhZ2VudDogYW55O1xuICB2aWV3aW5nVGltZUNvbmZpcm1lZCA9IGZhbHNlO1xuICBzZWxlY3RlZFNsb3RJZCA9ICcnO1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmdldFZpZXdpbmcoKTtcbiAgfVxuICBnZXRWaWV3aW5nKCkge1xuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmdldFZpZXdpbmcodGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy52aWV3aW5nID0gcmVzLmRhdGE7XG4gICAgICAgIHRoaXMubmFtZSA9IHRoaXMudmlld2luZy5maXJzdE5hbWUgKyAnLCAnICsgdGhpcy52aWV3aW5nLmxhc3ROYW1lO1xuICAgICAgICB0aGlzLmdldFByb3BlcnR5KHRoaXMudmlld2luZy5wcm9wZXJ0eUlkKTtcbiAgICAgICAgdGhpcy52aWV3aW5nVGltZUNvbmZpcm1lZCA9IHRoaXMudmlld2luZy52aWV3aW5nRGF0ZSA/IHRydWUgOiBmYWxzZTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgZ2V0UHJvcGVydHkocHJvcGVydHlJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZ2V0KHByb3BlcnR5SWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5wcm9wZXJ0eSA9IHJlcy5kYXRhO1xuICAgICAgICB0aGlzLmdldEFnZW50UHVibGljSW5mbyh0aGlzLnByb3BlcnR5LmFnZW50SWQpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBnZXRBZ2VudFB1YmxpY0luZm8oYWdlbnRJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5hdXRoVXNlclNlcnZpY2UuZ2V0UHVibGljVXNlckluZm8oYWdlbnRJZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5hZ2VudCA9IHJlcztcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgZmluZENvbmZpcm1lZFZpZXdpbmdUaW1lKCkge1xuICAgIGNvbnN0IHZpZXdpbmdQcm9wb3NlZFNsb3Q6IGFueSA9IHRoaXMudmlld2luZy5wcm9wb3NlZFNsb3RzLmZpbmQoKGl0ZW0pID0+IHtcbiAgICAgIHJldHVybiBpdGVtLmRhdGUgPT09IHRoaXMudmlld2luZy52aWV3aW5nRGF0ZSAmJiBpdGVtLnRpbWUgPT09IHRoaXMudmlld2luZy52aWV3aW5nVGltZTtcbiAgICB9KTtcbiAgICB0aGlzLnNlbGVjdGVkU2xvdElkID0gdmlld2luZ1Byb3Bvc2VkU2xvdC5pZDtcbiAgfVxuICBjb25maXJtVmlld2luZ1RpbWUoaXRlbTogYW55KSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIHRpdGxlOiAnQ29uZmlybSB2aWV3aW5nIHRpbWUnLFxuICAgICAgY29tcG9uZW50OiBQcm9wZXJ0eVZpZXdpbmdDb25maXJtYXRpb25Db21wb25lbnQsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHByb3Bvc2VkVGltZTogaXRlbSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbihvcHRpb25zKTtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuY29uZmlybWVkKCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXN1bHQpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7XG4gICAgICAgICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuY29uZmlybVZpZXdpbmcodGhpcy5pZCwgaXRlbS5pZCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy52aWV3aW5nVGltZUNvbmZpcm1lZCA9IHRydWU7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iLCJAaWYgKHZpZXdpbmcpIHtcbiAgPHJvbGF0ZWNoLXRvb2xiYXIgW3RpdGxlXT1cInN0YXR1c1t2aWV3aW5nLnN0YXR1c11cIiBsYXJnZSBsaW5rPVwiLi4vXCI+PC9yb2xhdGVjaC10b29sYmFyPlxuICA8ZGl2IGNsYXNzPVwicHgtNFwiPlxuICAgIDxkaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZyBmb250LWJvbGQgcHktMlwiIGkxOG4+Vmlld2VyPC9kaXY+XG4gICAgICA8aHIgY2xhc3M9XCJtYi0yXCIgLz5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IGdhcC0xIG1kOmdhcC0zXCI+XG4gICAgICAgIDxyb2xhdGVjaC1yaWNoLWxhYmVsIGxhYmVsPVwiTmFtZVwiIFt0aXRsZV09XCJuYW1lXCI+PC9yb2xhdGVjaC1yaWNoLWxhYmVsPlxuICAgICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIkVtYWlsXCIgW3RpdGxlXT1cInZpZXdpbmcuZW1haWxcIj48L3JvbGF0ZWNoLXJpY2gtbGFiZWw+XG4gICAgICAgIDxyb2xhdGVjaC1yaWNoLWxhYmVsIGxhYmVsPVwiUGhvbmVcIiBbdGl0bGVdPVwidmlld2luZy5waG9uZVwiPjwvcm9sYXRlY2gtcmljaC1sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZyBmb250LWJvbGQgcHktMlwiIGkxOG4+UHJvcG9zZWQgdGltZXM8L2Rpdj5cbiAgICAgIDxociBjbGFzcz1cIm1iLTJcIiAvPlxuICAgICAgQGZvciAoaXRlbSBvZiB2aWV3aW5nLnByb3Bvc2VkU2xvdHM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBpdGVtcy1jZW50ZXIgZ2FwLTMgcHktM1wiPlxuICAgICAgICAgIDxyb2xhdGVjaC1yaWNoLWxhYmVsIGxhYmVsPVwiRGF0ZVwiIFt0aXRsZV09XCJpdGVtLmRhdGVcIj48L3JvbGF0ZWNoLXJpY2gtbGFiZWw+XG4gICAgICAgICAgPHJvbGF0ZWNoLXJpY2gtbGFiZWwgbGFiZWw9XCJUaW1lXCIgW3RpdGxlXT1cIml0ZW0udGltZVwiPjwvcm9sYXRlY2gtcmljaC1sYWJlbD5cbiAgICAgICAgICBAaWYgKHZpZXdpbmcudmlld2luZ0RhdGUgJiYgdmlld2luZy52aWV3aW5nVGltZSkge1xuICAgICAgICAgICAgQGlmIChpdGVtLmRhdGUgPT09IHZpZXdpbmcudmlld2luZ0RhdGUgJiYgaXRlbS50aW1lID09PSB2aWV3aW5nLnZpZXdpbmdUaW1lKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtbC0zXCI+PGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gaTE4biBkaXNhYmxlZD1cIlwiPkNvbmZpcm1lZDwvYnV0dG9uPjwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKCF2aWV3aW5nVGltZUNvbmZpcm1lZCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1sLTNcIj48YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiAoY2xpY2spPVwiY29uZmlybVZpZXdpbmdUaW1lKGl0ZW0pXCIgaTE4bj5Db25maXJtPC9idXR0b24+PC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICA8IS0tIEludHJvZHVjaW5nIGFnZW50IC0tPlxuICAgIEBpZiAodmlld2luZy52aWV3ZXJDYXRlZ29yeS50b1N0cmluZygpID09PSAnQUdFTlQnKSB7XG4gICAgICA8ZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZyBmb250LWJvbGQgcHktMlwiIGkxOG4+UXVhbGlmaWNhdGlvbjwvZGl2PlxuICAgICAgICA8aHIgY2xhc3M9XCJtYi0yXCIgLz5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbWQ6ZmxleC1yb3cgZ2FwLTEgbWQ6Z2FwLTNcIj5cbiAgICAgICAgICA8IS0tIDxyb2xhdGVjaC1yaWNoLWxhYmVsIGxhYmVsPVwiTW92ZS1pbiBkYXRlXCIgW3RpdGxlXT1cInZpZXdpbmcuc3RhcnREYXRlXCI+PC9yb2xhdGVjaC1yaWNoLWxhYmVsPiAtLT5cbiAgICAgICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIlRlbmFuY3kgZHVyYXRpb25cIiBbdGl0bGVdPVwidmlld2luZy50ZW5hbmN5RHVyYXRpb25cIj48L3JvbGF0ZWNoLXJpY2gtbGFiZWw+XG4gICAgICAgICAgPHJvbGF0ZWNoLXJpY2gtbGFiZWwgbGFiZWw9XCJOdW1iZXIgb2YgdGVuYW50c1wiIFt0aXRsZV09XCJ2aWV3aW5nLm51bWJlck9mVGVuYW50c1wiPjwvcm9sYXRlY2gtcmljaC1sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IGdhcC0xIG1kOmdhcC0zXCI+XG4gICAgICAgICAgPHJvbGF0ZWNoLXJpY2gtbGFiZWxcbiAgICAgICAgICAgIGxhYmVsPVwiRW1wbG95bWVudCBzdGF0dXNcIlxuICAgICAgICAgICAgW3RpdGxlXT1cImVtcGxveW1lbnRTdGF0dXNbdmlld2luZy5lbXBsb3ltZW50U3RhdHVzXVwiXG4gICAgICAgICAgPjwvcm9sYXRlY2gtcmljaC1sYWJlbD5cbiAgICAgICAgICA8IS0tIDxyb2xhdGVjaC1yaWNoLWxhYmVsIGxhYmVsPVwiRW1wbG95ZXJcIiBbdGl0bGVdPVwidmlld2luZy5zdGFydERhdGVcIj48L3JvbGF0ZWNoLXJpY2gtbGFiZWw+IC0tPlxuICAgICAgICAgIDxyb2xhdGVjaC1yaWNoLWxhYmVsIGxhYmVsPVwiQW5udWFsIGluY29tZVwiIFt0aXRsZV09XCJ2aWV3aW5nLmluY29tZVwiPjwvcm9sYXRlY2gtcmljaC1sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICB9XG5cbiAgICA8ZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtbGcgZm9udC1ib2xkIHB5LTJcIiBpMThuPlByb3BlcnR5IGRldGFpbHM8L2Rpdj5cbiAgICAgIDxociBjbGFzcz1cIm1iLTJcIiAvPlxuICAgICAgQGlmIChwcm9wZXJ0eSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgcHktMlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaW4tdy0yNCB3LTI0IG9iamVjdC1jb3ZlciBhc3BlY3QtdmlkZW8gcm91bmRlZC1tZCBtci0zXCI+XG4gICAgICAgICAgICBAZGVmZXIge1xuICAgICAgICAgICAgICA8cm9sYXRlY2gtdGh1bWJuYWlsIFtzcmNdPVwicHJvcGVydHkubWVkaWFbMF0udXJsXCIgc2l6ZT1cIm1lZGl1bVwiIG1vZGU9XCJjbGlwXCI+IDwvcm9sYXRlY2gtdGh1bWJuYWlsPlxuICAgICAgICAgICAgfSBAcGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmctWy0tcnQtcmFpc2VkLWJhY2tncm91bmRdIGgtZnVsbCB3LWZ1bGwgb2JqZWN0LWNvdmVyIGFzcGVjdC12aWRlbyByb3VuZGVkLWxnXCI+PC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggdy1mdWxsIGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIHctZnVsbFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxuICAgICAgICAgICAgICAgIDxkaXY+e3sgcHJvcGVydHkudGl0bGUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5saW5lLWZsZXggZ2FwLTEgbXQtMlwiPlxuICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtci0xXCI+e3sgcHJvcGVydHkuYmVkcm9vbXMgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGkxOG4+QmVkcm9vbXM8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXItMVwiPnt7IHByb3BlcnR5LmJhdGhyb29tcyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gaTE4bj5CYXRocm9vbXM8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXItMVwiPnt7IHByb3BlcnR5LnJlY2VwdGlvbnMgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGkxOG4+UmVjZXB0aW9uczwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtcmlnaHRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zbVwiPsKje3sgcHJvcGVydHkucHJpY2UudG9GaXhlZCgyKSB9fTwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJoaWRkZW4gbWQ6ZmxleCBmbGV4LWNvbCBweC0zXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuXG4gICAgPGRpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxnIGZvbnQtYm9sZCBweS0yXCIgaTE4bj5WaWV3aW5nIGFnZW50PC9kaXY+XG4gICAgICA8aHIgY2xhc3M9XCJtYi0yXCIgLz5cbiAgICAgIEBpZiAoYWdlbnQpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbWQ6ZmxleC1yb3cgZ2FwLTEgbWQ6Z2FwLTNcIj5cbiAgICAgICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIk5hbWVcIiBbdGl0bGVdPVwiYWdlbnQubmFtZVwiPjwvcm9sYXRlY2gtcmljaC1sYWJlbD5cbiAgICAgICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIkVtYWlsXCIgW3RpdGxlXT1cImFnZW50LmVtYWlsXCI+PC9yb2xhdGVjaC1yaWNoLWxhYmVsPlxuICAgICAgICAgIDxyb2xhdGVjaC1yaWNoLWxhYmVsIGxhYmVsPVwiUGhvbmVcIiBbdGl0bGVdPVwiYWdlbnQucGhvbmVcIj48L3JvbGF0ZWNoLXJpY2gtbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbn1cbiJdfQ==","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 { 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.3.4\", ngImport: i0, type: LettingManageItem, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.toFixed(2) }}</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 }], encapsulation: i0.ViewEncapsulation.None, deferBlockDependencies: [() => [ThumbnailComponent]] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: LettingManageItem, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-letting-manage-item', imports: [CommonModule, ThumbnailComponent, ImagePlaceholderComponent, MatButtonModule, MatMenuModule], 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.toFixed(2) }}</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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGV0dGluZy1tYW5hZ2UtaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9jb21wb25lbnRzL2xldHRpbmctbWFuYWdlLWl0ZW0vbGV0dGluZy1tYW5hZ2UtaXRlbS50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9jb21wb25lbnRzL2xldHRpbmctbWFuYWdlLWl0ZW0vbGV0dGluZy1tYW5hZ2UtaXRlbS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RixPQUFPLEVBQVksY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQVM1RCxNQUFNLE9BQU8saUJBQWlCO0lBQ3VCLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDbkUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4QixPQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsa0RBQVksQ0FBQztJQUNyQyxTQUFTLEdBQUcsS0FBSywrREFBRSxDQUFDO0lBQ3BCLE1BQU0sR0FBRyxjQUFjLENBQUM7SUFDeEIsSUFBSSxHQUFHLEtBQUssQ0FBQyxLQUFLLHdDQUFJLFNBQVMsRUFBRSxnQkFBZ0IsT0FBN0IsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsR0FBQyxDQUFDO0lBQ3JEO1FBQ0UsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQ2hCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDakQsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDcEQsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0FmVSxpQkFBaUI7MkZBQWpCLGlCQUFpQiwyaUJDZDlCLCtnQ0EwQkEsdVNEakJZLFlBQVksNkhBQXNCLHlCQUF5Qix5RkFBRSxlQUFlLDhCQUFFLGFBQWEsK0VBQTdFLGtCQUFrQjs7MkZBSy9CLGlCQUFpQjtrQkFQN0IsU0FBUzsrQkFDRSw4QkFBOEIsV0FDL0IsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUseUJBQXlCLEVBQUUsZUFBZSxFQUFFLGFBQWEsQ0FBQyxpQkFHdkYsaUJBQWlCLENBQUMsSUFBSTt3REFHYyxRQUFRO3NCQUExRCxXQUFXO3VCQUFDLG9DQUFvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJvb2xlYW5BdHRyaWJ1dGUsIENvbXBvbmVudCwgZWZmZWN0LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgaW5qZWN0LCBpbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgVGh1bWJuYWlsQ29tcG9uZW50LCBJbWFnZVBsYWNlaG9sZGVyQ29tcG9uZW50IH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBQcm9wZXJ0eSwgUHJvcGVydHlTdGF0dXMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtbGV0dGluZy1tYW5hZ2UtaXRlbScsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRodW1ibmFpbENvbXBvbmVudCwgSW1hZ2VQbGFjZWhvbGRlckNvbXBvbmVudCwgTWF0QnV0dG9uTW9kdWxlLCBNYXRNZW51TW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2xldHRpbmctbWFuYWdlLWl0ZW0uaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9sZXR0aW5nLW1hbmFnZS1pdGVtLnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBMZXR0aW5nTWFuYWdlSXRlbSB7XG4gIEBIb3N0QmluZGluZygnY2xhc3Mucm9sYXRlY2gtbGV0dGluZy1tYW5hZ2UtaXRlbScpIGhhc0NsYXNzID0gdHJ1ZTtcbiAgZWwgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIGxldHRpbmcgPSBpbnB1dC5yZXF1aXJlZDxQcm9wZXJ0eT4oKTtcbiAgdGh1bWJuYWlsID0gaW5wdXQoKTtcbiAgc3RhdHVzID0gUHJvcGVydHlTdGF0dXM7XG4gIGxpc3QgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5saXN0KCkpIHtcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgnbGlzdCcsICcnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2xpc3QnLCAnJyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJmbGV4IHAtMyBiZy1bLS1ydC1yYWlzZWQtYmFja2dyb3VuZF0gaG92ZXI6YmctWy0tcnQtcmFpc2VkLWJhY2tncm91bmRdIGN1cnNvci1wb2ludGVyIHJvdW5kZWQtbWRcIlxuICBbbmdDbGFzc109XCJsaXN0KCkgPyAndy1mdWxsIGZsZXgtcm93JyA6ICdmbGV4LWNvbCBoLWZ1bGwnXCJcbj5cbiAgPGRpdj5cbiAgICBAaWYgKGxldHRpbmcoKS5tZWRpYSkge1xuICAgIDxkaXYgY2xhc3M9XCJvYmplY3QtY292ZXIgYXNwZWN0LXZpZGVvIHJvdW5kZWQtbGdcIiBbbmdDbGFzc109XCJsaXN0KCkgPyAndy0zMiBtci0zJyA6ICcnXCI+XG4gICAgICBAZGVmZXIge1xuICAgICAgPHJvbGF0ZWNoLXRodW1ibmFpbCBbc3JjXT1cImxldHRpbmcoKS5tZWRpYSA/IGxldHRpbmcoKS5tZWRpYVswXS51cmwgOiAnJ1wiIHNpemU9XCJtZWRpdW1cIiBtb2RlPVwiZnVsbFwiPiA8L3JvbGF0ZWNoLXRodW1ibmFpbD5cbiAgICAgIH0gQHBsYWNlaG9sZGVyIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJiZy1bLS1ydC1yYWlzZWQtYmFja2dyb3VuZF0gaC1mdWxsIHctZnVsbCBvYmplY3QtY292ZXIgYXNwZWN0LXZpZGVvIHJvdW5kZWQtbGdcIj48L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICB9IEBlbHNlIHtcbiAgICA8ZGl2IGNsYXNzPVwib2JqZWN0LWNvdmVyIGFzcGVjdC12aWRlbyByb3VuZGVkLWxnXCIgW25nQ2xhc3NdPVwibGlzdCgpID8gJ3ctMzIgbXItMycgOiAnJ1wiPlxuICAgICAgPHJvbGF0ZWNoLWltYWdlLXBsYWNlaG9sZGVyPjwvcm9sYXRlY2gtaW1hZ2UtcGxhY2Vob2xkZXI+XG4gICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwicHktMlwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxnIGZvbnQtYm9sZFwiPnt7IGxldHRpbmcoKS50aXRsZSB9fTwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZsZXgtMVwiPjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiXCI+wqN7eyBsZXR0aW5nKCkucHJpY2UudG9GaXhlZCgyKSB9fTwvZGl2PlxuPC9kaXY+XG4iXX0=","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.3.4\", ngImport: i0, type: LettingManageIndex, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.3.4\", 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.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.3.4\", ngImport: i0, type: LettingActions, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.3.4\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGV0dGluZy1hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL2NvbXBvbmVudHMvbGV0dGluZy1hY3Rpb25zL2xldHRpbmctYWN0aW9ucy50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9jb21wb25lbnRzL2xldHRpbmctYWN0aW9ucy9sZXR0aW5nLWFjdGlvbnMuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBVXZELE1BQU0sT0FBTyxjQUFjO0lBQ3pCLE9BQU8sR0FBRyxLQUFLLENBQUMsUUFBUSxrREFBWSxDQUFDO0lBQ3JDLGNBQWMsR0FBRyxNQUFNLEVBQVksQ0FBQztJQUNwQyxLQUFLLEdBQUcsTUFBTSxFQUFZLENBQUM7SUFDM0IsT0FBTyxHQUFHLE1BQU0sRUFBWSxDQUFDO0lBRTdCLGNBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQzdCLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0MsQ0FBQywwREFBQyxDQUFDO0lBRUgsZ0JBQWdCLENBQUMsT0FBaUI7UUFDaEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNELE9BQU8sQ0FBQyxPQUFpQjtRQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBQ0QsU0FBUyxDQUFDLE9BQWlCO1FBQ3pCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdCLENBQUM7dUdBbEJVLGNBQWM7MkZBQWQsY0FBYyxnVENkM0Isd2dCQVNBLHlEREFZLFlBQVksOEJBQUUsZUFBZSxtWEFBRSxhQUFhLDhCQUFFLGFBQWE7OzJGQUsxRCxjQUFjO2tCQVAxQixTQUFTOytCQUNFLDBCQUEwQixXQUMzQixDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxpQkFHdkQsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGlucHV0LCBvdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWxldHRpbmctYWN0aW9ucycsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgTWF0TWVudU1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9sZXR0aW5nLWFjdGlvbnMuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9sZXR0aW5nLWFjdGlvbnMuc2NzcycsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIExldHRpbmdBY3Rpb25zIHtcbiAgbGV0dGluZyA9IGlucHV0LnJlcXVpcmVkPFByb3BlcnR5PigpO1xuICByZXF1ZXN0Vmlld2luZyA9IG91dHB1dDxQcm9wZXJ0eT4oKTtcbiAgb2ZmZXIgPSBvdXRwdXQ8UHJvcGVydHk+KCk7XG4gIGRlcG9zaXQgPSBvdXRwdXQ8UHJvcGVydHk+KCk7XG5cbiAgZGlzcGxheURlcG9zaXQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMubGV0dGluZygpLmRlcG9zaXQudG9GaXhlZCgyKTtcbiAgfSk7XG5cbiAgb25SZXF1ZXN0Vmlld2luZyhsZXR0aW5nOiBQcm9wZXJ0eSkge1xuICAgIHRoaXMucmVxdWVzdFZpZXdpbmcuZW1pdChsZXR0aW5nKTtcbiAgfVxuICBvbk9mZmVyKGxldHRpbmc6IFByb3BlcnR5KSB7XG4gICAgdGhpcy5vZmZlci5lbWl0KGxldHRpbmcpO1xuICB9XG4gIG9uRGVwb3NpdChsZXR0aW5nOiBQcm9wZXJ0eSkge1xuICAgIHRoaXMuZGVwb3NpdC5lbWl0KGxldHRpbmcpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtM1wiPlxuICA8YSBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJcIiAoY2xpY2spPVwib25SZXF1ZXN0Vmlld2luZyhsZXR0aW5nKCkpXCIgaTE4bj5SZXF1ZXN0IHZpZXdpbmc8L2E+XG4gIEBpZiAobGV0dGluZygpLnByaWNlVHlwZSAmJiBsZXR0aW5nKCkucHJpY2VUeXBlLnRvU3RyaW5nKCkgPT09ICdQQVJUSUFMJykge1xuICA8YSBtYXQtZmxhdC1idXR0b24gY2xhc3M9XCJcIiAoY2xpY2spPVwib25EZXBvc2l0KGxldHRpbmcoKSlcIiBpMThuPlBheSBkZXBvc2l0IMKje3sgZGlzcGxheURlcG9zaXQoKSB9fTwvYT5cbiAgfSBAZWxzZSB7XG4gIDxhIG1hdC1mbGF0LWJ1dHRvbiBjbGFzcz1cIlwiIChjbGljayk9XCJvbk9mZmVyKGxldHRpbmcoKSlcIiBpMThuPk1ha2UgYW4gb2ZmZXI8L2E+XG4gIH1cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwicm9sYXRlY2gtbGV0dGluZy1hY3Rpb24tY29udGFjdFwiPjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19","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.3.4\", ngImport: i0, type: LettingActionContact, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.3.4\", 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.3.4\", 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.3.4\", ngImport: i0, type: LettingManageDetail, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.userFeatures\\\"></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.3.4\", 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.userFeatures\\\"></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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Q0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3BDLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3JCLE9BQU8sRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUU7YUFDcEIsQ0FBQyxDQUFDLENBQUM7UUFDTixDQUFDLENBQUM7UUFFRixpREFBaUQ7UUFDakQsTUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNsRyxJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWdCLENBQUM7UUFDeEMsNkZBQTZGO0lBQy9GLENBQUM7dUdBOUlVLG1CQUFtQjsyRkFBbkIsbUJBQW1CLGlIQ3RDaEMsb25FQWtEQSx5REQ3QkksbUJBQW1CLDhCQUNuQix1QkFBdUIsK0JBQ3ZCLGtCQUFrQiwrREFDbEIscUJBQXFCLDBIQUNyQixzQkFBc0IsOEZBQ3RCLHdCQUF3QixxR0FDeEIsd0JBQXdCLCtHQUN4QixjQUFjLDJJQUNkLG9CQUFvQixxSUFDcEIseUJBQXlCLDZGQUN6Qix5QkFBeUIsNkZBQ3pCLHNCQUFzQix1RkFDdEIscUJBQXFCOzsyRkFLWixtQkFBbUI7a0JBcEIvQixTQUFTOytCQUNFLGdDQUFnQyxXQUNqQzt3QkFDUCxtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIsa0JBQWtCO3dCQUNsQixxQkFBcUI7d0JBQ3JCLHNCQUFzQjt3QkFDdEIsd0JBQXdCO3dCQUN4Qix3QkFBd0I7d0JBQ3hCLGNBQWM7d0JBQ2Qsb0JBQW9CO3dCQUNwQix5QkFBeUI7d0JBQ3pCLHlCQUF5Qjt3QkFDekIsc0JBQXNCO3dCQUN0QixxQkFBcUI7cUJBQ3RCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QsIE9uSW5pdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSwgQXV0aFVzZXJTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItYXV0aCc7XG5pbXBvcnQgeyBBbmd1bGFyQ29tbW9uTW9kdWxlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlLCBDb250YWluZXJDb21wb25lbnQsIEJhc2VDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IFByb3BlcnR5U2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLXNlcnZpY2VzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBQcm9wZXJ0eVByaWNpbmdDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzJztcbmltcG9ydCB7IFByb3BlcnR5RmVhdHVyZXNDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL3Byb3BlcnR5LWZlYXR1cmVzL3Byb3BlcnR5LWZlYXR1cmVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9wZXJ0eUluZm9Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL3Byb3BlcnR5LWluZm8vcHJvcGVydHktaW5mby5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvcGVydHlMb2NhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvcHJvcGVydHktbG9jYXRpb24vcHJvcGVydHktbG9jYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFByb3BlcnR5TWVkaWFDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL3Byb3BlcnR5LW1lZGlhL3Byb3BlcnR5LW1lZGlhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9wZXJ0eVNlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL3Byb3BlcnR5LXNlY3Rpb24vcHJvcGVydHktc2VjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvcGVydHlWaWRlb0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvcHJvcGVydHktdmlkZW8vcHJvcGVydHktdmlkZW8uY29tcG9uZW50JztcbmltcG9ydCB7IFByb3BlcnR5LCBQcm9wZXJ0eU9wdGlvbiwgUHJvcGVydHlWYXJpYW50LCBQcm9wZXJ0eVZhcmlhbnRPcHRpb24gfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IExldHRpbmdBY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9sZXR0aW5nLWFjdGlvbnMvbGV0dGluZy1hY3Rpb25zJztcbmltcG9ydCB7IExldHRpbmdBY3Rpb25Db250YWN0IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9sZXR0aW5nLWFjdGlvbi1jb250YWN0L2xldHRpbmctYWN0aW9uLWNvbnRhY3QnO1xuaW1wb3J0IHsgUHJvcGVydHlBZ2VudFJlbmRlcmVyIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9wcm9wZXJ0eS1hZ2VudC1yZW5kZXJlci9wcm9wZXJ0eS1hZ2VudC1yZW5kZXJlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWxldHRpbmctbWFuYWdlLWRldGFpbCcsXG4gIGltcG9ydHM6IFtcbiAgICBBbmd1bGFyQ29tbW9uTW9kdWxlLFxuICAgIEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlLFxuICAgIENvbnRhaW5lckNvbXBvbmVudCxcbiAgICBQcm9wZXJ0eUluZm9Db21wb25lbnQsXG4gICAgUHJvcGVydHlNZWRpYUNvbXBvbmVudCxcbiAgICBQcm9wZXJ0eVByaWNpbmdDb21wb25lbnQsXG4gICAgUHJvcGVydHlTZWN0aW9uQ29tcG9uZW50LFxuICAgIExldHRpbmdBY3Rpb25zLFxuICAgIExldHRpbmdBY3Rpb25Db250YWN0LFxuICAgIFByb3BlcnR5TG9jYXRpb25Db21wb25lbnQsXG4gICAgUHJvcGVydHlGZWF0dXJlc0NvbXBvbmVudCxcbiAgICBQcm9wZXJ0eVZpZGVvQ29tcG9uZW50LFxuICAgIFByb3BlcnR5QWdlbnRSZW5kZXJlclxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vbGV0dGluZy1tYW5hZ2UtZGV0YWlsLmh0bWwnLFxuICBzdHlsZVVybDogJy4vbGV0dGluZy1tYW5hZ2UtZGV0YWlsLnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBMZXR0aW5nTWFuYWdlRGV0YWlsIGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgYXV0aFVzZXJTZXJ2aWNlID0gaW5qZWN0KEF1dGhVc2VyU2VydmljZSk7XG4gIHByb3BlcnR5U2VydmljZSA9IGluamVjdChQcm9wZXJ0eVNlcnZpY2UpO1xuICBhdXRoZW50aWNhdGVkID0gdGhpcy5hdXRoU2VydmljZS5hdXRoZW50aWNhdGVkO1xuICBwcm9wZXJ0eSE6IFByb3BlcnR5O1xuICBmdWxsbmFtZSA9ICcnO1xuICB1c2VybmFtZSA9ICcnO1xuICB1c2VyOiBhbnk7XG4gIGluV2lzaExpc3QgPSBmYWxzZTtcbiAgcHVyY2hhc2VkID0gZmFsc2U7XG4gIHNlbGVjdGVkT3B0aW9uITogUHJvcGVydHlPcHRpb247XG4gIHZhcmlhbnRzOiBQcm9wZXJ0eVZhcmlhbnRbXSA9IFtdO1xuICBzZWxlY3RlZFZhcmlhbnQhOiBQcm9wZXJ0eVZhcmlhbnQ7XG4gIHZhcmlhbnRPcHRpb24gPSBzaWduYWw8UHJvcGVydHlWYXJpYW50T3B0aW9uIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICB2YXJpYW50T3B0aW9uQ2hhbmdlZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy52YXJpYW50T3B0aW9uKCk7XG4gIH0pO1xuXG4gIC8vIHJlc3VsdHM6IGFueVtdID0gW107XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmF1dGhlbnRpY2F0ZWQoKSkge1xuICAgICAgICB0aGlzLndpc2hMaXN0Q2hlY2soKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmdldFByb3BlcnR5KCk7XG4gIH1cbiAgZ2V0UHJvcGVydHkoKSB7XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZ2V0KHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5wcm9wZXJ0eSA9IHJlcy5kYXRhO1xuICAgICAgICBpZiAodGhpcy5wcm9wZXJ0eS52YXJpYW50cykge1xuICAgICAgICAgIHRoaXMudmFyaWFudHMgPSB0aGlzLnByb3BlcnR5LnZhcmlhbnRzO1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYXJpYW50ID0gdGhpcy52YXJpYW50c1swXTtcbiAgICAgICAgICAvLyB0aGlzLnNlbGVjdGVkVmFyaWFudC5vcHRpb25zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAvLyAgIHRoaXMucmVzdWx0cy5wdXNoKFtpdGVtLm9wdGlvbi5pZCwgaXRlbS52YWx1ZS5pZF0pO1xuICAgICAgICAgIC8vIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZmluZFVzZXJCYXNlSW5mbyh0aGlzLnByb3BlcnR5LmFnZW50SWQpO1xuICAgICAgICB0aGlzLnRpdGxlU2VydmljZS5zZXRUaXRsZShgJHt0aGlzLnByb3BlcnR5LnRpdGxlfWApO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIGZpbmRWYXJpYW50KG9wdGlvbklkOiBzdHJpbmcsIHZhbHVlSWQ6IHN0cmluZyk6IFByb3BlcnR5VmFyaWFudCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMudmFyaWFudHMuZmluZCgoaXRlbSkgPT4ge1xuICAgICAgY29uc3QgZXhpc3QgPSBpdGVtLm9wdGlvbnMuc29tZSgoaTogUHJvcGVydHlWYXJpYW50T3B0aW9uKSA9PiBpLm9wdGlvbi5pZCA9PT0gb3B0aW9uSWQgJiYgaS52YWx1ZS5pZCA9PT0gdmFsdWVJZCk7XG4gICAgICBpZiAoZXhpc3QpIHtcbiAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9KTtcbiAgfVxuICBmaW5kVXNlckJhc2VJbmZvKHVzZXJJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5hdXRoVXNlclNlcnZpY2UuZ2V0UHVibGljVXNlckluZm8odXNlcklkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmZ1bGxuYW1lID0gcmVzLm5hbWU7XG4gICAgICAgIHRoaXMudXNlcm5hbWUgPSByZXMudXNlcm5hbWU7XG4gICAgICAgIHRoaXMudXNlciA9IHJlcztcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgcHJpdmF0ZSB3aXNoTGlzdENoZWNrKCkge1xuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLndpc2hMaXN0Q2hlY2sodGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmluV2lzaExpc3QgPSByZXMuZGF0YTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgb25XaXNoKGU6IGFueSkge1xuICAgIGlmICh0aGlzLmF1dGhlbnRpY2F0ZWQoKSkge1xuICAgICAgaWYgKHRoaXMuaW5XaXNoTGlzdCkge1xuICAgICAgICB0aGlzLnJlbW92ZUZyb21XaXNobGlzdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5hZGRUb1dpc2hsaXN0KCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oJ1BsZWFzZSBzaWduIGluJyk7XG4gICAgfVxuICB9XG4gIG9uUmVxdWVzdFZpZXdpbmcoZTogYW55KSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AvbGV0dGluZ3MvJHt0aGlzLmlkfS92aWV3aW5nL2FwcGxpY2F0aW9uYF0pO1xuICB9XG4gIHByaXZhdGUgcmVtb3ZlRnJvbVdpc2hsaXN0KCkge1xuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLnJlbW92ZUZyb21XaXNobGlzdCh0aGlzLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmluV2lzaExpc3QgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbignUmVtb3ZlZCcpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIGFkZFRvV2lzaGxpc3QoKSB7XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuYWRkVG9XaXNobGlzdCh0aGlzLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmluV2lzaExpc3QgPSB0cnVlO1xuICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKCdBZGRlZCcpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBvbk9mZmVyKGU6IGFueSkge1xuICAgIGlmICh0aGlzLmF1dGhlbnRpY2F0ZWQoKSkge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AvbGV0dGluZ3MvJHt0aGlzLmlkfS9vZmZlcmBdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbignUGxlYXNlIHNpZ24gaW4nKTtcbiAgICB9XG4gIH1cblxuICBvbk9wdGlvbkNoYW5nZShlKSB7XG4gICAgY29uc3QgY3JpdGVyaWE6IGFueSA9IFtdO1xuICAgIHRoaXMuc2VsZWN0ZWRWYXJpYW50Lm9wdGlvbnMubWFwKChpdGVtKSA9PiB7XG4gICAgICBjcml0ZXJpYS5wdXNoKHtcbiAgICAgICAgb3B0aW9uSWQ6IGl0ZW0ub3B0aW9uLmlkID09PSBlLm9wdGlvbi5pZCA/IGUub3B0aW9uLmlkIDogaXRlbS5vcHRpb24uaWQsXG4gICAgICAgIHZhbHVlSWQ6IGl0ZW0ub3B0aW9uLmlkID09PSBlLm9wdGlvbi5pZCA/IGUudmFsdWUuaWQgOiBpdGVtLnZhbHVlLmlkLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICAvLyBjb25zdCBjcml0ZXJpYSA9IFtcbiAgICAvLyAgIHsgb3B0aW9uSWQ6ICcyNDkwMDg4NTUyOTQ1NDU5MjAnLCB2YWx1ZUlkOiAnMjQ5MDA4ODU1Mjk4NzQwMjI0JyB9LCAvLyBjb2xvcjogcmVkXG4gICAgLy8gICB7IG9wdGlvbklkOiAnMjQ4NjYxNzE1OTU1MzU1NjQ4JywgdmFsdWVJZDogJzI0OTAwMTEzMDA2MTg2MDg2NScgfSwgLy8gc2l6ZTogMjU2R0JcbiAgICAvLyBdO1xuXG4gICAgLy8gRnVuY3Rpb24gdG8gY2hlY2sgaWYgYSB2YXJpYW50IG1hdGNoZXMgYWxsIHRoZSBjcml0ZXJpYVxuICAgIGNvbnN0IG1hdGNoZXNBbGxDcml0ZXJpYSA9ICh2YXJpYW50LCBjcml0ZXJpYSkgPT4ge1xuICAgICAgcmV0dXJuIF8uZXZlcnkoY3JpdGVyaWEsIChjcml0ZXJpb24pID0+IHtcbiAgICAgICAgcmV0dXJuIF8uc29tZSh2YXJpYW50Lm9wdGlvbnMsIChvKSA9PiBvLm9wdGlvbi5pZCA9PT0gY3JpdGVyaW9uLm9wdGlvbklkICYmIG8udmFsdWUuaWQgPT09IGNyaXRlcmlvbi52YWx1ZUlkKTtcbiAgICAgIH0pO1xuICAgIH07XG4gICAgLy8gRnVuY3Rpb24gdG8gdXBkYXRlIHRoZSBjcml0ZXJpYSBiYXNlZCBvbiBhIG1hdGNoaW5nIHZhcmlhbnRcbiAgICBjb25zdCB1cGRhdGVDcml0ZXJpYUZyb21WYXJpYW50ID0gKHZhcmlhbnQpID0+IHtcbiAgICAgIHJldHVybiBfLm1hcCh2YXJpYW50Lm9wdGlvbnMsIChvKSA9PiAoe1xuICAgICAgICBvcHRpb25JZDogby5vcHRpb24uaWQsXG4gICAgICAgIHZhbHVlSWQ6IG8udmFsdWUuaWQsXG4gICAgICB9KSk7XG4gICAgfTtcblxuICAgIC8vIEZpbmQgdGhlIHZhcmlhbnQgdGhhdCBtYXRjaGVzIGFsbCB0aGUgY3JpdGVyaWFcbiAgICBjb25zdCBtYXRjaGluZ1ZhcmlhbnQgPSBfLmZpbmQodGhpcy52YXJpYW50cywgKHZhcmlhbnQpID0+IG1hdGNoZXNBbGxDcml0ZXJpYSh2YXJpYW50LCBjcml0ZXJpYSkpO1xuICAgIHRoaXMuc2VsZWN0ZWRWYXJpYW50ID0gbWF0Y2hpbmdWYXJpYW50ITtcbiAgICAvLyBjb25zdCB1cGRhdGVkQ3JpdGVyaWEgPSBtYXRjaGluZ1ZhcmlhbnQgPyB1cGRhdGVDcml0ZXJpYUZyb21WYXJpYW50KG1hdGNoaW5nVmFyaWFudCkgOiBbXTtcbiAgfVxufVxuIiwiQGlmIChwcm9wZXJ0eSkge1xuPHJvbGF0ZWNoLWNvbnRhaW5lcj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgdy1mdWxsXCI+XG4gICAgPGRpdiBjbGFzcz1cInB5LTNcIj5cbiAgICAgIDxyb2xhdGVjaC1wcm9wZXJ0eS1tZWRpYSBbbWVkaWFdPVwicHJvcGVydHkubWVkaWFcIj48L3JvbGF0ZWNoLXByb3BlcnR5LW1lZGlhPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IGdhcC0zIHctZnVsbFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBtZDp3LTIvM1wiPlxuICAgICAgICA8cm9sYXRlY2gtcHJvcGVydHktaW5mbyBbcHJvcGVydHldPVwicHJvcGVydHlcIiAod2lzaCk9XCJvbldpc2goJGV2ZW50KVwiIFtpbldpc2hMaXN0XT1cImluV2lzaExpc3RcIj5cbiAgICAgICAgPC9yb2xhdGVjaC1wcm9wZXJ0eS1pbmZvPlxuICAgICAgICA8cm9sYXRlY2gtcHJvcGVydHktYWdlbnQtcmVuZGVyZXJcbiAgICAgICAgICBbbmFtZV09XCJmdWxsbmFtZVwiXG4gICAgICAgICAgW2F2YXRhcl09XCJ1c2VyPy5hdmF0YXJcIlxuICAgICAgICAgIFt1c2VybmFtZV09XCJ1c2VybmFtZVwiXG4gICAgICAgID48L3JvbGF0ZWNoLXByb3BlcnR5LWFnZW50LXJlbmRlcmVyPlxuICAgICAgICA8cm9sYXRlY2gtcHJvcGVydHktZmVhdHVyZXMgW2ZlYXR1cmVzXT1cInByb3BlcnR5LnVzZXJGZWF0dXJlc1wiPjwvcm9sYXRlY2gtcHJvcGVydHktZmVhdHVyZXM+XG4gICAgICAgIDxyb2xhdGVjaC1wcm9wZXJ0eS1sb2NhdGlvbiBbbG9jYXRpb25dPVwicHJvcGVydHkubG9jYXRpb25cIj48L3JvbGF0ZWNoLXByb3BlcnR5LWxvY2F0aW9uPlxuICAgICAgICBAaWYgKHByb3BlcnR5LnZpZGVvcykge1xuICAgICAgICA8cm9sYXRlY2gtcHJvcGVydHktdmlkZW8gW3ZpZGVvXT1cInByb3BlcnR5LnZpZGVvc1swXVwiPjwvcm9sYXRlY2gtcHJvcGVydHktdmlkZW8+XG4gICAgICAgIH1cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC0yeGwgZm9udC1ib2xkIHB0LTNcIiBpMThuPlNlY3Rpb25zPC9kaXY+XG4gICAgICAgICAgQGZvciAoc2VjdGlvbiBvZiBwcm9wZXJ0eS5zZWN0aW9uczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgPHJvbGF0ZWNoLXByb3BlcnR5LXNlY3Rpb24gW3NlY3Rpb25dPVwic2VjdGlvblwiPjwvcm9sYXRlY2gtcHJvcGVydHktc2VjdGlvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIGgtZml0IG1kOnctMS8zIHJvdW5kZWQtbWQgYm9yZGVyIHNoYWRvdyBwLTNcIj5cbiAgICAgICAgPHJvbGF0ZWNoLXByb3BlcnR5LWFnZW50LXJlbmRlcmVyXG4gICAgICAgICAgW25hbWVdPVwiZnVsbG5hbWVcIlxuICAgICAgICAgIFthdmF0YXJdPVwidXNlcj8uYXZhdGFyXCJcbiAgICAgICAgICBbdXNlcm5hbWVdPVwidXNlcm5hbWVcIlxuICAgICAgICAgIHN1YnRpdGxlPVwiUHJpbWVDYXNlIEFnZW50XCJcbiAgICAgICAgPjwvcm9sYXRlY2gtcHJvcGVydHktYWdlbnQtcmVuZGVyZXI+XG4gICAgICAgIDxyb2xhdGVjaC1wcm9wZXJ0eS1wcmljaW5nICh3aXNoKT1cIm9uV2lzaCgkZXZlbnQpXCIgW3Byb3BlcnR5XT1cInByb3BlcnR5XCI+PC9yb2xhdGVjaC1wcm9wZXJ0eS1wcmljaW5nPlxuICAgICAgICA8cm9sYXRlY2gtbGV0dGluZy1hY3Rpb25zXG4gICAgICAgICAgW2xldHRpbmddPVwicHJvcGVydHlcIlxuICAgICAgICAgIChvZmZlcik9XCJvbk9mZmVyKCRldmVudClcIlxuICAgICAgICAgIChkZXBvc2l0KT1cIm9uT2ZmZXIoJGV2ZW50KVwiXG4gICAgICAgICAgKHJlcXVlc3RWaWV3aW5nKT1cIm9uUmVxdWVzdFZpZXdpbmcoJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgICBAaWYgKHVzZXIpIHtcbiAgICAgICAgICA8cm9sYXRlY2gtbGV0dGluZy1hY3Rpb24tY29udGFjdCBbcGhvbmVdPVwidXNlci5waG9uZVwiPjwvcm9sYXRlY2gtbGV0dGluZy1hY3Rpb24tY29udGFjdD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvcm9sYXRlY2gtbGV0dGluZy1hY3Rpb25zPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9yb2xhdGVjaC1jb250YWluZXI+XG59XG4iXX0=","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.3.4\", ngImport: i0, type: LettingManageViewingRequest, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.3.4\", 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.3.4\", ngImport: i0, type: LettingManageOfferRequest, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.3.4\", 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.3.4\", ngImport: i0, type: TenantItem, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.3.4\", 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.3.4\", 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.3.4\", ngImport: i0, type: TenantManageIndex, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.3.4\", 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.3.4\", ngImport: i0, type: TenantManageDetail, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.3.4\", 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.3.4\", ngImport: i0, type: TenantManageCreate, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", 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.3.4\", 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","import { CommonModule } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { RouterModule } from '@angular/router';\nimport { ToolbarComponent, TabsComponent, TabComponent, EmptyComponent, BaseComponent } from '@rolatech/angular-components';\nimport { PropertyService } from '@rolatech/angular-services';\nimport { PropertyViewingItemComponent } from '../../../components/property-viewing-item/property-viewing-item.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/router\";\nexport class PropertyAgentViewingIndex extends BaseComponent {\n propertyService = inject(PropertyService);\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 filterOptions = {\n type: '',\n status: '',\n };\n viewings = [];\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.findViewingsByAgent(options).subscribe({\n next: (res) => {\n this.viewings = 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.3.4\", ngImport: i0, type: PropertyAgentViewingIndex, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", type: PropertyAgentViewingIndex, isStandalone: true, selector: \"rolatech-property-agent-viewing-index\", usesInheritance: true, ngImport: i0, template: \"<rolatech-toolbar title=\\\"Viewings\\\">\\n <div class=\\\"flex items-center gap-2\\\"></div>\\n</rolatech-toolbar>\\n<rolatech-tabs [select]=\\\"select\\\">\\n @for (item of links; track item) { @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</rolatech-tabs>\\n<div>\\n @if (viewings) { @for (item of viewings; track $index) {\\n <rolatech-property-viewing-item [routerLink]=\\\"['./', item.id]\\\" [viewing]=\\\"item\\\"></rolatech-property-viewing-item>\\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: \"ngmodule\", type: MatButtonModule }, { 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: EmptyComponent, selector: \"rolatech-empty\" }, { kind: \"component\", type: PropertyViewingItemComponent, selector: \"rolatech-property-viewing-item\", inputs: [\"viewing\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: PropertyAgentViewingIndex, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-agent-viewing-index', imports: [\n CommonModule,\n ToolbarComponent,\n MatButtonModule,\n TabsComponent,\n TabComponent,\n RouterModule,\n EmptyComponent,\n PropertyViewingItemComponent,\n ], template: \"<rolatech-toolbar title=\\\"Viewings\\\">\\n <div class=\\\"flex items-center gap-2\\\"></div>\\n</rolatech-toolbar>\\n<rolatech-tabs [select]=\\\"select\\\">\\n @for (item of links; track item) { @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</rolatech-tabs>\\n<div>\\n @if (viewings) { @for (item of viewings; track $index) {\\n <rolatech-property-viewing-item [routerLink]=\\\"['./', item.id]\\\" [viewing]=\\\"item\\\"></rolatech-property-viewing-item>\\n } } @else {\\n <rolatech-empty></rolatech-empty>\\n }\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktYWdlbnQtdmlld2luZy1pbmRleC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItcHJvcGVydHkvc3JjL2xpYi9wYWdlcy9wcm9wZXJ0eS1hZ2VudC9wcm9wZXJ0eS1hZ2VudC12aWV3aW5nLWluZGV4L3Byb3BlcnR5LWFnZW50LXZpZXdpbmctaW5kZXgudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktYWdlbnQvcHJvcGVydHktYWdlbnQtdmlld2luZy1pbmRleC9wcm9wZXJ0eS1hZ2VudC12aWV3aW5nLWluZGV4Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyRUFBMkUsQ0FBQzs7O0FBa0J6SCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsYUFBYTtJQUMxRCxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDWCxLQUFLLEdBQUc7UUFDTjtZQUNFLElBQUksRUFBRSxLQUFLO1lBQ1gsSUFBSSxFQUFFLFdBQVc7U0FDbEI7UUFDRDtZQUNFLElBQUksRUFBRSxXQUFXO1lBQ2pCLElBQUksRUFBRSxVQUFVO1lBQ2hCLE1BQU0sRUFBRSxXQUFXO1NBQ3BCO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsV0FBVztZQUNqQixJQUFJLEVBQUUsVUFBVTtZQUNoQixNQUFNLEVBQUUsV0FBVztTQUNwQjtLQUNGLENBQUM7SUFDRixhQUFhLEdBQVE7UUFDbkIsSUFBSSxFQUFFLEVBQUU7UUFDUixNQUFNLEVBQUUsRUFBRTtLQUNYLENBQUM7SUFDRixRQUFRLEdBQXNCLEVBQUUsQ0FBQztJQUVqQyxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFO1lBQzlDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLENBQUM7WUFDckUsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDWCxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBSSxNQUFpQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQy9ELENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO1lBQ25DLENBQUM7WUFDRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsWUFBWTtRQUNWLE1BQU0sT0FBTyxHQUFHO1lBQ2QsSUFBSSxFQUFFLGdCQUFnQjtTQUN2QixDQUFDO1FBQ0YsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNuRSxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxZQUFZLENBQUM7UUFDbkMsQ0FBQztRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQzFELElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFDM0IsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxvQkFBb0IsQ0FBQyxPQUFPO1FBQzFCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7YUFDM0IsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxFQUFFLElBQUksS0FBSyxLQUFLLFNBQVMsQ0FBQzthQUM3RCxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO1lBQ3BCLE9BQU8sR0FBRyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDO2FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2YsQ0FBQzt1R0F6RFUseUJBQXlCOzJGQUF6Qix5QkFBeUIsd0hDeEJ0Qyw2cUJBaUJBLHlERExJLFlBQVksK0JBQ1osZ0JBQWdCLCtIQUNoQixlQUFlLCtCQUNmLGFBQWEsb0hBQ2IsWUFBWSwyRUFDWixZQUFZLGdSQUNaLGNBQWMsMkRBQ2QsNEJBQTRCOzsyRkFLbkIseUJBQXlCO2tCQWZyQyxTQUFTOytCQUNFLHVDQUF1QyxXQUN4Qzt3QkFDUCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixhQUFhO3dCQUNiLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixjQUFjO3dCQUNkLDRCQUE0QjtxQkFDN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBUb29sYmFyQ29tcG9uZW50LCBUYWJzQ29tcG9uZW50LCBUYWJDb21wb25lbnQsIEVtcHR5Q29tcG9uZW50LCBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBQcm9wZXJ0eVNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBQcm9wZXJ0eVZpZXdpbmdJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9wcm9wZXJ0eS12aWV3aW5nLWl0ZW0vcHJvcGVydHktdmlld2luZy1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9wZXJ0eVZpZXdpbmcgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvcGVydHktYWdlbnQtdmlld2luZy1pbmRleCcsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVG9vbGJhckNvbXBvbmVudCxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgVGFic0NvbXBvbmVudCxcbiAgICBUYWJDb21wb25lbnQsXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIEVtcHR5Q29tcG9uZW50LFxuICAgIFByb3BlcnR5Vmlld2luZ0l0ZW1Db21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1hZ2VudC12aWV3aW5nLWluZGV4Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHJvcGVydHktYWdlbnQtdmlld2luZy1pbmRleC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlBZ2VudFZpZXdpbmdJbmRleCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcm9wZXJ0eVNlcnZpY2UgPSBpbmplY3QoUHJvcGVydHlTZXJ2aWNlKTtcbiAgc2VsZWN0ID0gMDtcbiAgbGlua3MgPSBbXG4gICAge1xuICAgICAgbmFtZTogJ0FsbCcsXG4gICAgICBpY29uOiAnZGFzaGJvYXJkJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdDb21wbGV0ZWQnLFxuICAgICAgaWNvbjogJ2NhdGVnb3J5JyxcbiAgICAgIHN0YXR1czogJ2NvbXBsZXRlZCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnQ2FuY2VsbGVkJyxcbiAgICAgIGljb246ICdjYXRlZ29yeScsXG4gICAgICBzdGF0dXM6ICdjYW5jZWxsZWQnLFxuICAgIH0sXG4gIF07XG4gIGZpbHRlck9wdGlvbnM6IGFueSA9IHtcbiAgICB0eXBlOiAnJyxcbiAgICBzdGF0dXM6ICcnLFxuICB9O1xuICB2aWV3aW5nczogUHJvcGVydHlWaWV3aW5nW10gPSBbXTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZSgoeyBzdGF0dXMgfSkgPT4ge1xuICAgICAgdGhpcy5zZWxlY3QgPSB0aGlzLmxpbmtzLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS5zdGF0dXMgPT09IHN0YXR1cyk7XG4gICAgICBpZiAoc3RhdHVzKSB7XG4gICAgICAgIHRoaXMuZmlsdGVyT3B0aW9ucy5zdGF0dXMgPSAoc3RhdHVzIGFzIHN0cmluZykudG9VcHBlckNhc2UoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmZpbHRlck9wdGlvbnMuc3RhdHVzO1xuICAgICAgfVxuICAgICAgdGhpcy5maW5kVmlld2luZ3MoKTtcbiAgICB9KTtcbiAgfVxuICBmaW5kVmlld2luZ3MoKSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIHNvcnQ6ICd1cGRhdGVkQXQgZGVzYycsXG4gICAgfTtcbiAgICBjb25zdCBmaWx0ZXJTdHJpbmcgPSB0aGlzLmNvbnZlcnRGaWx0ZXJPcHRpb25zKHRoaXMuZmlsdGVyT3B0aW9ucyk7XG4gICAgaWYgKGZpbHRlclN0cmluZykge1xuICAgICAgb3B0aW9uc1snZmlsdGVyJ10gPSBmaWx0ZXJTdHJpbmc7XG4gICAgfVxuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmZpbmRWaWV3aW5nc0J5QWdlbnQob3B0aW9ucykuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnZpZXdpbmdzID0gcmVzLmRhdGE7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGNvbnZlcnRGaWx0ZXJPcHRpb25zKGpzb25PYmopIHtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoanNvbk9iailcbiAgICAgIC5maWx0ZXIoKFtrZXksIHZhbHVlXSkgPT4gdmFsdWUgIT09ICcnICYmIHZhbHVlICE9PSB1bmRlZmluZWQpXG4gICAgICAubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgcmV0dXJuIGAke2tleX06JHt2YWx1ZX1gO1xuICAgICAgfSlcbiAgICAgIC5qb2luKCcsJyk7XG4gIH1cbn1cbiIsIjxyb2xhdGVjaC10b29sYmFyIHRpdGxlPVwiVmlld2luZ3NcIj5cbiAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+PC9kaXY+XG48L3JvbGF0ZWNoLXRvb2xiYXI+XG48cm9sYXRlY2gtdGFicyBbc2VsZWN0XT1cInNlbGVjdFwiPlxuICBAZm9yIChpdGVtIG9mIGxpbmtzOyB0cmFjayBpdGVtKSB7IEBpZiAoaXRlbS5zdGF0dXMpIHtcbiAgPHJvbGF0ZWNoLXRhYiBbbGFiZWxdPVwiaXRlbS5uYW1lXCIgcm91dGVyTGluaz1cIi4vXCIgW3F1ZXJ5UGFyYW1zXT1cInsgc3RhdHVzOiBpdGVtLnN0YXR1cyB9XCI+PC9yb2xhdGVjaC10YWI+XG4gIH0gQGVsc2Uge1xuICA8cm9sYXRlY2gtdGFiIFtsYWJlbF09XCJpdGVtLm5hbWVcIiByb3V0ZXJMaW5rPVwiLi9cIj48L3JvbGF0ZWNoLXRhYj5cbiAgfSB9XG48L3JvbGF0ZWNoLXRhYnM+XG48ZGl2PlxuICBAaWYgKHZpZXdpbmdzKSB7IEBmb3IgKGl0ZW0gb2Ygdmlld2luZ3M7IHRyYWNrICRpbmRleCkge1xuICA8cm9sYXRlY2gtcHJvcGVydHktdmlld2luZy1pdGVtIFtyb3V0ZXJMaW5rXT1cIlsnLi8nLCBpdGVtLmlkXVwiIFt2aWV3aW5nXT1cIml0ZW1cIj48L3JvbGF0ZWNoLXByb3BlcnR5LXZpZXdpbmctaXRlbT5cbiAgfSB9IEBlbHNlIHtcbiAgPHJvbGF0ZWNoLWVtcHR5Pjwvcm9sYXRlY2gtZW1wdHk+XG4gIH1cbjwvZGl2PlxuIl19","import { CommonModule } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { AuthUserService } from '@rolatech/angular-auth';\nimport { ToolbarComponent, RichLabelComponent, ThumbnailComponent, BaseComponent } from '@rolatech/angular-components';\nimport { PropertyService } from '@rolatech/angular-services';\nimport { PropertyViewingConfirmationComponent } from '../../../components/property-viewing-confirmation/property-viewing-confirmation.component';\nimport { PropertyViewingStatus, EmploymentStatus, PropertyViewerCategory, } from '../../../interfaces';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\nexport class PropertyAgentViewingDetail 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.3.4\", ngImport: i0, type: PropertyAgentViewingDetail, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", type: PropertyAgentViewingDetail, isStandalone: true, selector: \"rolatech-property-agent-viewing-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) { @if (item.date === viewing.viewingDate && item.time ===\\n viewing.viewingTime) {\\n <div class=\\\"ml-3\\\"><button mat-flat-button i18n disabled=\\\"\\\">Confirmed</button></div>\\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 label=\\\"Employment status\\\" [title]=\\\"employmentStatus[viewing.employmentStatus]\\\"></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-24 w-24 object-cover aspect-video rounded-md mr-3\\\">\\n @defer {\\n <rolatech-thumbnail [src]=\\\"property.media[0].url\\\" size=\\\"medium\\\" mode=\\\"clip\\\"> </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.toFixed(2) }}</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\"] }], deferBlockDependencies: [() => [ThumbnailComponent]] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: PropertyAgentViewingDetail, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-agent-viewing-detail', imports: [CommonModule, ToolbarComponent, RichLabelComponent, ThumbnailComponent, 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) { @if (item.date === viewing.viewingDate && item.time ===\\n viewing.viewingTime) {\\n <div class=\\\"ml-3\\\"><button mat-flat-button i18n disabled=\\\"\\\">Confirmed</button></div>\\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 label=\\\"Employment status\\\" [title]=\\\"employmentStatus[viewing.employmentStatus]\\\"></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-24 w-24 object-cover aspect-video rounded-md mr-3\\\">\\n @defer {\\n <rolatech-thumbnail [src]=\\\"property.media[0].url\\\" size=\\\"medium\\\" mode=\\\"clip\\\"> </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.toFixed(2) }}</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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktYWdlbnQtdmlld2luZy1kZXRhaWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktYWdlbnQvcHJvcGVydHktYWdlbnQtdmlld2luZy1kZXRhaWwvcHJvcGVydHktYWdlbnQtdmlld2luZy1kZXRhaWwudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktYWdlbnQvcHJvcGVydHktYWdlbnQtdmlld2luZy1kZXRhaWwvcHJvcGVydHktYWdlbnQtdmlld2luZy1kZXRhaWwuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLDJGQUEyRixDQUFDO0FBQ2pKLE9BQU8sRUFHTCxxQkFBcUIsRUFDckIsZ0JBQWdCLEVBQ2hCLHNCQUFzQixHQUN2QixNQUFNLHFCQUFxQixDQUFDOzs7QUFRN0IsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGFBQWE7SUFDM0QsZUFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMxQyxlQUFl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O29CQUNYLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3BCLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQzt3QkFDOUQsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7NEJBQ1osSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQzt3QkFDbkMsQ0FBQztxQkFDRixDQUFDLENBQUM7Z0JBQ0wsQ0FBQztZQUNILENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO3VHQW5FVSwwQkFBMEI7MkZBQTFCLDBCQUEwQix5SENyQnZDLDY1SUFvR0EseUREbkZZLFlBQVksK0JBQUUsZ0JBQWdCLGdJQUFFLGtCQUFrQiwyRkFBc0IsZUFBZSwwWEFBbkMsa0JBQWtCOzsyRkFJckUsMEJBQTBCO2tCQU50QyxTQUFTOytCQUNFLHdDQUF3QyxXQUN6QyxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IEF1dGhVc2VyU2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWF1dGgnO1xuaW1wb3J0IHsgVG9vbGJhckNvbXBvbmVudCwgUmljaExhYmVsQ29tcG9uZW50LCBUaHVtYm5haWxDb21wb25lbnQsIEJhc2VDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IFByb3BlcnR5U2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLXNlcnZpY2VzJztcbmltcG9ydCB7IFByb3BlcnR5Vmlld2luZ0NvbmZpcm1hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvcHJvcGVydHktdmlld2luZy1jb25maXJtYXRpb24vcHJvcGVydHktdmlld2luZy1jb25maXJtYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7XG4gIFByb3BlcnR5Vmlld2luZyxcbiAgUHJvcGVydHksXG4gIFByb3BlcnR5Vmlld2luZ1N0YXR1cyxcbiAgRW1wbG95bWVudFN0YXR1cyxcbiAgUHJvcGVydHlWaWV3ZXJDYXRlZ29yeSxcbn0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb3BlcnR5LWFnZW50LXZpZXdpbmctZGV0YWlsJyxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVG9vbGJhckNvbXBvbmVudCwgUmljaExhYmVsQ29tcG9uZW50LCBUaHVtYm5haWxDb21wb25lbnQsIE1hdEJ1dHRvbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1hZ2VudC12aWV3aW5nLWRldGFpbC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb3BlcnR5LWFnZW50LXZpZXdpbmctZGV0YWlsLnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eUFnZW50Vmlld2luZ0RldGFpbCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcm9wZXJ0eVNlcnZpY2UgPSBpbmplY3QoUHJvcGVydHlTZXJ2aWNlKTtcbiAgYXV0aFVzZXJTZXJ2aWNlID0gaW5qZWN0KEF1dGhVc2VyU2VydmljZSk7XG4gIHZpZXdpbmchOiBQcm9wZXJ0eVZpZXdpbmc7XG4gIG5hbWUgPSAnJztcbiAgcHJvcGVydHkhOiBQcm9wZXJ0eTtcbiAgc3RhdHVzID0gUHJvcGVydHlWaWV3aW5nU3RhdHVzO1xuICBlbXBsb3ltZW50U3RhdHVzID0gRW1wbG95bWVudFN0YXR1cztcbiAgcHJvcGVydHlWaWV3ZXJDYXRlZ29yeSA9IFByb3BlcnR5Vmlld2VyQ2F0ZWdvcnk7XG4gIGFnZW50OiBhbnk7XG4gIHZpZXdpbmdUaW1lQ29uZmlybWVkID0gZmFsc2U7XG4gIHNlbGVjdGVkU2xvdElkID0gJyc7XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0Vmlld2luZygpO1xuICB9XG4gIGdldFZpZXdpbmcoKSB7XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZ2V0Vmlld2luZyh0aGlzLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLnZpZXdpbmcgPSByZXMuZGF0YTtcbiAgICAgICAgdGhpcy5uYW1lID0gdGhpcy52aWV3aW5nLmZpcnN0TmFtZSArICcsICcgKyB0aGlzLnZpZXdpbmcubGFzdE5hbWU7XG4gICAgICAgIHRoaXMuZ2V0UHJvcGVydHkodGhpcy52aWV3aW5nLnByb3BlcnR5SWQpO1xuICAgICAgICB0aGlzLnZpZXdpbmdUaW1lQ29uZmlybWVkID0gdGhpcy52aWV3aW5nLnZpZXdpbmdEYXRlID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBnZXRQcm9wZXJ0eShwcm9wZXJ0eUlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnByb3BlcnR5U2VydmljZS5nZXQocHJvcGVydHlJZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnByb3BlcnR5ID0gcmVzLmRhdGE7XG4gICAgICAgIHRoaXMuZ2V0QWdlbnRQdWJsaWNJbmZvKHRoaXMucHJvcGVydHkuYWdlbnRJZCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGdldEFnZW50UHVibGljSW5mbyhhZ2VudElkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmF1dGhVc2VyU2VydmljZS5nZXRQdWJsaWNVc2VySW5mbyhhZ2VudElkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmFnZW50ID0gcmVzO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBmaW5kQ29uZmlybWVkVmlld2luZ1RpbWUoKSB7XG4gICAgY29uc3Qgdmlld2luZ1Byb3Bvc2VkU2xvdDogYW55ID0gdGhpcy52aWV3aW5nLnByb3Bvc2VkU2xvdHMuZmluZCgoaXRlbSkgPT4ge1xuICAgICAgcmV0dXJuIGl0ZW0uZGF0ZSA9PT0gdGhpcy52aWV3aW5nLnZpZXdpbmdEYXRlICYmIGl0ZW0udGltZSA9PT0gdGhpcy52aWV3aW5nLnZpZXdpbmdUaW1lO1xuICAgIH0pO1xuICAgIHRoaXMuc2VsZWN0ZWRTbG90SWQgPSB2aWV3aW5nUHJvcG9zZWRTbG90LmlkO1xuICB9XG4gIGNvbmZpcm1WaWV3aW5nVGltZShpdGVtOiBhbnkpIHtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgdGl0bGU6ICdDb25maXJtIHZpZXdpbmcgdGltZScsXG4gICAgICBjb21wb25lbnQ6IFByb3BlcnR5Vmlld2luZ0NvbmZpcm1hdGlvbkNvbXBvbmVudCxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgcHJvcG9zZWRUaW1lOiBpdGVtLFxuICAgICAgfSxcbiAgICB9O1xuICAgIHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKG9wdGlvbnMpO1xuICAgIHRoaXMuZGlhbG9nU2VydmljZS5jb25maXJtZWQoKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlc3VsdCkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgY29uc29sZS5sb2cocmVzdWx0KTtcbiAgICAgICAgICB0aGlzLnByb3BlcnR5U2VydmljZS5jb25maXJtVmlld2luZyh0aGlzLmlkLCBpdGVtLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnZpZXdpbmdUaW1lQ29uZmlybWVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiIsIkBpZiAodmlld2luZykge1xuPHJvbGF0ZWNoLXRvb2xiYXIgW3RpdGxlXT1cInN0YXR1c1t2aWV3aW5nLnN0YXR1c11cIiBsYXJnZSBsaW5rPVwiLi4vXCI+PC9yb2xhdGVjaC10b29sYmFyPlxuPGRpdiBjbGFzcz1cInB4LTRcIj5cbiAgPGRpdj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZyBmb250LWJvbGQgcHktMlwiIGkxOG4+Vmlld2VyPC9kaXY+XG4gICAgPGhyIGNsYXNzPVwibWItMlwiIC8+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbWQ6ZmxleC1yb3cgZ2FwLTEgbWQ6Z2FwLTNcIj5cbiAgICAgIDxyb2xhdGVjaC1yaWNoLWxhYmVsIGxhYmVsPVwiTmFtZVwiIFt0aXRsZV09XCJuYW1lXCI+PC9yb2xhdGVjaC1yaWNoLWxhYmVsPlxuICAgICAgPHJvbGF0ZWNoLXJpY2gtbGFiZWwgbGFiZWw9XCJFbWFpbFwiIFt0aXRsZV09XCJ2aWV3aW5nLmVtYWlsXCI+PC9yb2xhdGVjaC1yaWNoLWxhYmVsPlxuICAgICAgPHJvbGF0ZWNoLXJpY2gtbGFiZWwgbGFiZWw9XCJQaG9uZVwiIFt0aXRsZV09XCJ2aWV3aW5nLnBob25lXCI+PC9yb2xhdGVjaC1yaWNoLWxhYmVsPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZyBmb250LWJvbGQgcHktMlwiIGkxOG4+UHJvcG9zZWQgdGltZXM8L2Rpdj5cbiAgICA8aHIgY2xhc3M9XCJtYi0yXCIgLz5cbiAgICBAZm9yIChpdGVtIG9mIHZpZXdpbmcucHJvcG9zZWRTbG90czsgdHJhY2sgJGluZGV4KSB7XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgaXRlbXMtY2VudGVyIGdhcC0zIHB5LTNcIj5cbiAgICAgIDxyb2xhdGVjaC1yaWNoLWxhYmVsIGxhYmVsPVwiRGF0ZVwiIFt0aXRsZV09XCJpdGVtLmRhdGVcIj48L3JvbGF0ZWNoLXJpY2gtbGFiZWw+XG4gICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIlRpbWVcIiBbdGl0bGVdPVwiaXRlbS50aW1lXCI+PC9yb2xhdGVjaC1yaWNoLWxhYmVsPlxuICAgICAgQGlmICh2aWV3aW5nLnZpZXdpbmdEYXRlICYmIHZpZXdpbmcudmlld2luZ1RpbWUpIHsgQGlmIChpdGVtLmRhdGUgPT09IHZpZXdpbmcudmlld2luZ0RhdGUgJiYgaXRlbS50aW1lID09PVxuICAgICAgdmlld2luZy52aWV3aW5nVGltZSkge1xuICAgICAgPGRpdiBjbGFzcz1cIm1sLTNcIj48YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBpMThuIGRpc2FibGVkPVwiXCI+Q29uZmlybWVkPC9idXR0b24+PC9kaXY+XG4gICAgICB9IH0gQGlmICghdmlld2luZ1RpbWVDb25maXJtZWQpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJtbC0zXCI+PGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gKGNsaWNrKT1cImNvbmZpcm1WaWV3aW5nVGltZShpdGVtKVwiIGkxOG4+Q29uZmlybTwvYnV0dG9uPjwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG4gIDwhLS0gSW50cm9kdWNpbmcgYWdlbnQgLS0+XG4gIEBpZiAodmlld2luZy52aWV3ZXJDYXRlZ29yeS50b1N0cmluZygpID09PSAnQUdFTlQnKSB7XG4gIDxkaXY+XG4gICAgPGRpdiBjbGFzcz1cInRleHQtbGcgZm9udC1ib2xkIHB5LTJcIiBpMThuPlF1YWxpZmljYXRpb248L2Rpdj5cbiAgICA8aHIgY2xhc3M9XCJtYi0yXCIgLz5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBtZDpmbGV4LXJvdyBnYXAtMSBtZDpnYXAtM1wiPlxuICAgICAgPCEtLSA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIk1vdmUtaW4gZGF0ZVwiIFt0aXRsZV09XCJ2aWV3aW5nLnN0YXJ0RGF0ZVwiPjwvcm9sYXRlY2gtcmljaC1sYWJlbD4gLS0+XG4gICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIlRlbmFuY3kgZHVyYXRpb25cIiBbdGl0bGVdPVwidmlld2luZy50ZW5hbmN5RHVyYXRpb25cIj48L3JvbGF0ZWNoLXJpY2gtbGFiZWw+XG4gICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIk51bWJlciBvZiB0ZW5hbnRzXCIgW3RpdGxlXT1cInZpZXdpbmcubnVtYmVyT2ZUZW5hbnRzXCI+PC9yb2xhdGVjaC1yaWNoLWxhYmVsPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IGdhcC0xIG1kOmdhcC0zXCI+XG4gICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIkVtcGxveW1lbnQgc3RhdHVzXCIgW3RpdGxlXT1cImVtcGxveW1lbnRTdGF0dXNbdmlld2luZy5lbXBsb3ltZW50U3RhdHVzXVwiPjwvcm9sYXRlY2gtcmljaC1sYWJlbD5cbiAgICAgIDwhLS0gPHJvbGF0ZWNoLXJpY2gtbGFiZWwgbGFiZWw9XCJFbXBsb3llclwiIFt0aXRsZV09XCJ2aWV3aW5nLnN0YXJ0RGF0ZVwiPjwvcm9sYXRlY2gtcmljaC1sYWJlbD4gLS0+XG4gICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIkFubnVhbCBpbmNvbWVcIiBbdGl0bGVdPVwidmlld2luZy5pbmNvbWVcIj48L3JvbGF0ZWNoLXJpY2gtbGFiZWw+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICB9XG5cbiAgPGRpdj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZyBmb250LWJvbGQgcHktMlwiIGkxOG4+UHJvcGVydHkgZGV0YWlsczwvZGl2PlxuICAgIDxociBjbGFzcz1cIm1iLTJcIiAvPlxuICAgIEBpZiAocHJvcGVydHkpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgcHktMlwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1pbi13LTI0IHctMjQgb2JqZWN0LWNvdmVyIGFzcGVjdC12aWRlbyByb3VuZGVkLW1kIG1yLTNcIj5cbiAgICAgICAgQGRlZmVyIHtcbiAgICAgICAgPHJvbGF0ZWNoLXRodW1ibmFpbCBbc3JjXT1cInByb3BlcnR5Lm1lZGlhWzBdLnVybFwiIHNpemU9XCJtZWRpdW1cIiBtb2RlPVwiY2xpcFwiPiA8L3JvbGF0ZWNoLXRodW1ibmFpbD5cbiAgICAgICAgfSBAcGxhY2Vob2xkZXIge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiYmctWy0tcnQtcmFpc2VkLWJhY2tncm91bmRdIGgtZnVsbCB3LWZ1bGwgb2JqZWN0LWNvdmVyIGFzcGVjdC12aWRlbyByb3VuZGVkLWxnXCI+PC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggdy1mdWxsIGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gdy1mdWxsXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgICAgICAgIDxkaXY+e3sgcHJvcGVydHkudGl0bGUgfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbmxpbmUtZmxleCBnYXAtMSBtdC0yXCI+XG4gICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtci0xXCI+e3sgcHJvcGVydHkuYmVkcm9vbXMgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gaTE4bj5CZWRyb29tczwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtci0xXCI+e3sgcHJvcGVydHkuYmF0aHJvb21zIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGkxOG4+QmF0aHJvb21zPC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yLTFcIj57eyBwcm9wZXJ0eS5yZWNlcHRpb25zIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGkxOG4+UmVjZXB0aW9uczwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1yaWdodFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc21cIj7Co3t7IHByb3BlcnR5LnByaWNlLnRvRml4ZWQoMikgfX08L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJoaWRkZW4gbWQ6ZmxleCBmbGV4LWNvbCBweC0zXCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cblxuICA8ZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxnIGZvbnQtYm9sZCBweS0yXCIgaTE4bj5WaWV3aW5nIGFnZW50PC9kaXY+XG4gICAgPGhyIGNsYXNzPVwibWItMlwiIC8+XG4gICAgQGlmIChhZ2VudCkge1xuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IGdhcC0xIG1kOmdhcC0zXCI+XG4gICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIk5hbWVcIiBbdGl0bGVdPVwiYWdlbnQubmFtZVwiPjwvcm9sYXRlY2gtcmljaC1sYWJlbD5cbiAgICAgIDxyb2xhdGVjaC1yaWNoLWxhYmVsIGxhYmVsPVwiRW1haWxcIiBbdGl0bGVdPVwiYWdlbnQuZW1haWxcIj48L3JvbGF0ZWNoLXJpY2gtbGFiZWw+XG4gICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIlBob25lXCIgW3RpdGxlXT1cImFnZW50LnBob25lXCI+PC9yb2xhdGVjaC1yaWNoLWxhYmVsPlxuICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG48L2Rpdj5cbn1cbiJdfQ==","import { PropertyAgentViewingIndex } from './property-agent-viewing-index/property-agent-viewing-index';\nimport { PropertyAgentViewingDetail } from './property-agent-viewing-detail/property-agent-viewing-detail';\nexport const propertyAgentViewingRoutes = [\n {\n path: '',\n component: PropertyAgentViewingIndex,\n },\n {\n path: ':id',\n component: PropertyAgentViewingDetail,\n },\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktYWdlbnQtdmlld2luZy5yb3V0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktYWdlbnQvcHJvcGVydHktYWdlbnQtdmlld2luZy5yb3V0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDeEcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFFM0csTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQVc7SUFDaEQ7UUFDRSxJQUFJLEVBQUUsRUFBRTtRQUNSLFNBQVMsRUFBRSx5QkFBeUI7S0FDckM7SUFDRDtRQUNFLElBQUksRUFBRSxLQUFLO1FBQ1gsU0FBUyxFQUFFLDBCQUEwQjtLQUN0QztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgUHJvcGVydHlBZ2VudFZpZXdpbmdJbmRleCB9IGZyb20gJy4vcHJvcGVydHktYWdlbnQtdmlld2luZy1pbmRleC9wcm9wZXJ0eS1hZ2VudC12aWV3aW5nLWluZGV4JztcbmltcG9ydCB7IFByb3BlcnR5QWdlbnRWaWV3aW5nRGV0YWlsIH0gZnJvbSAnLi9wcm9wZXJ0eS1hZ2VudC12aWV3aW5nLWRldGFpbC9wcm9wZXJ0eS1hZ2VudC12aWV3aW5nLWRldGFpbCc7XG5cbmV4cG9ydCBjb25zdCBwcm9wZXJ0eUFnZW50Vmlld2luZ1JvdXRlczogUm91dGVzID0gW1xuICB7XG4gICAgcGF0aDogJycsXG4gICAgY29tcG9uZW50OiBQcm9wZXJ0eUFnZW50Vmlld2luZ0luZGV4LFxuICB9LFxuICB7XG4gICAgcGF0aDogJzppZCcsXG4gICAgY29tcG9uZW50OiBQcm9wZXJ0eUFnZW50Vmlld2luZ0RldGFpbCxcbiAgfSxcbl07XG4iXX0=","import { CommonModule } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { AuthUserService } from '@rolatech/angular-auth';\nimport { ToolbarComponent, RichLabelComponent, ThumbnailComponent, BaseComponent, AcceptDialogComponent, RejectDialogComponent, } from '@rolatech/angular-components';\nimport { PropertyService, InvoiceService } from '@rolatech/angular-services';\nimport { PropertyOfferStatus, EmploymentStatus } from '../../../interfaces';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\nexport class PropertyAgentOfferDetail extends BaseComponent {\n propertyService = inject(PropertyService);\n authUserService = inject(AuthUserService);\n invoiceService = inject(InvoiceService);\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 counter() { }\n createInvoice() {\n this.invoiceService.create({ itemId: this.id }).subscribe({\n next: (res) => {\n console.log(res);\n },\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: PropertyAgentOfferDetail, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", type: PropertyAgentOfferDetail, isStandalone: true, selector: \"rolatech-property-agent-offer-detail\", usesInheritance: true, ngImport: i0, template: \"@if (offer) {\\n<rolatech-toolbar [title]=\\\"status[offer.status]\\\" large link=\\\"../\\\">\\n @if (offer.status.toString() === 'CREATED') {\\n <button mat-flat-button (click)=\\\"accept()\\\" i18n>Accept</button>\\n <button mat-flat-button (click)=\\\"counter()\\\" i18n>Counter offer</button>\\n <button mat-button (click)=\\\"reject()\\\" i18n>Reject</button>\\n }\\n <button mat-flat-button (click)=\\\"createInvoice()\\\" i18n>Create invoice</button>\\n\\n <!-- create invoice -->\\n @if (offer.status.toString() === 'ACCEPTED') {\\n <button mat-flat-button (click)=\\\"createInvoice()\\\" i18n>Create invoice</button>\\n }\\n <!-- References -->\\n @if (offer.status.toString() === 'REFERENCES_PASSED') {\\n <button mat-flat-button (click)=\\\"createInvoice()\\\" i18n>Create invoice</button>\\n } @if (offer.status.toString() === 'REFERENCES_FAILED') {\\n <button mat-flat-button (click)=\\\"createInvoice()\\\" i18n>Create invoice</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-24 w-24 object-cover aspect-video rounded-md mr-3\\\">\\n @defer {\\n <rolatech-thumbnail [src]=\\\"offer.item.media[0].url\\\" size=\\\"medium\\\" mode=\\\"clip\\\"> </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.title }}</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.amount.toFixed(2) }}</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\"] }], deferBlockDependencies: [() => [ThumbnailComponent]] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: PropertyAgentOfferDetail, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-agent-offer-detail', imports: [CommonModule, ToolbarComponent, RichLabelComponent, ThumbnailComponent, MatButtonModule], template: \"@if (offer) {\\n<rolatech-toolbar [title]=\\\"status[offer.status]\\\" large link=\\\"../\\\">\\n @if (offer.status.toString() === 'CREATED') {\\n <button mat-flat-button (click)=\\\"accept()\\\" i18n>Accept</button>\\n <button mat-flat-button (click)=\\\"counter()\\\" i18n>Counter offer</button>\\n <button mat-button (click)=\\\"reject()\\\" i18n>Reject</button>\\n }\\n <button mat-flat-button (click)=\\\"createInvoice()\\\" i18n>Create invoice</button>\\n\\n <!-- create invoice -->\\n @if (offer.status.toString() === 'ACCEPTED') {\\n <button mat-flat-button (click)=\\\"createInvoice()\\\" i18n>Create invoice</button>\\n }\\n <!-- References -->\\n @if (offer.status.toString() === 'REFERENCES_PASSED') {\\n <button mat-flat-button (click)=\\\"createInvoice()\\\" i18n>Create invoice</button>\\n } @if (offer.status.toString() === 'REFERENCES_FAILED') {\\n <button mat-flat-button (click)=\\\"createInvoice()\\\" i18n>Create invoice</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-24 w-24 object-cover aspect-video rounded-md mr-3\\\">\\n @defer {\\n <rolatech-thumbnail [src]=\\\"offer.item.media[0].url\\\" size=\\\"medium\\\" mode=\\\"clip\\\"> </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.title }}</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.amount.toFixed(2) }}</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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktYWdlbnQtb2ZmZXItZGV0YWlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL3BhZ2VzL3Byb3BlcnR5LWFnZW50L3Byb3BlcnR5LWFnZW50LW9mZmVyLWRldGFpbC9wcm9wZXJ0eS1hZ2VudC1vZmZlci1kZXRhaWwudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktYWdlbnQvcHJvcGVydHktYWdlbnQtb2ZmZXItZGV0YWlsL3Byb3BlcnR5LWFnZW50LW9mZmVyLWRldGFpbC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IscUJBQXFCLEVBQ3JCLHFCQUFxQixHQUN0QixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0UsT0FBTyxFQUEyQixtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFRckcsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGFBQWE7SUFDekQsZUFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMxQyxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFD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QkFOcEMsU0FBUzsrQkFDRSxzQ0FBc0MsV0FDdkMsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBBdXRoVXNlclNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1hdXRoJztcbmltcG9ydCB7XG4gIFRvb2xiYXJDb21wb25lbnQsXG4gIFJpY2hMYWJlbENvbXBvbmVudCxcbiAgVGh1bWJuYWlsQ29tcG9uZW50LFxuICBCYXNlQ29tcG9uZW50LFxuICBBY2NlcHREaWFsb2dDb21wb25lbnQsXG4gIFJlamVjdERpYWxvZ0NvbXBvbmVudCxcbn0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBQcm9wZXJ0eVNlcnZpY2UsIEludm9pY2VTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItc2VydmljZXMnO1xuaW1wb3J0IHsgUHJvcGVydHlPZmZlciwgUHJvcGVydHksIFByb3BlcnR5T2ZmZXJTdGF0dXMsIEVtcGxveW1lbnRTdGF0dXMgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvcGVydHktYWdlbnQtb2ZmZXItZGV0YWlsJyxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVG9vbGJhckNvbXBvbmVudCwgUmljaExhYmVsQ29tcG9uZW50LCBUaHVtYm5haWxDb21wb25lbnQsIE1hdEJ1dHRvbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1hZ2VudC1vZmZlci1kZXRhaWwuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9wZXJ0eS1hZ2VudC1vZmZlci1kZXRhaWwuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5QWdlbnRPZmZlckRldGFpbCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcm9wZXJ0eVNlcnZpY2UgPSBpbmplY3QoUHJvcGVydHlTZXJ2aWNlKTtcbiAgYXV0aFVzZXJTZXJ2aWNlID0gaW5qZWN0KEF1dGhVc2VyU2VydmljZSk7XG4gIGludm9pY2VTZXJ2aWNlID0gaW5qZWN0KEludm9pY2VTZXJ2aWNlKTtcbiAgb2ZmZXIhOiBQcm9wZXJ0eU9mZmVyO1xuICBuYW1lID0gJyc7XG4gIHByb3BlcnR5ITogUHJvcGVydHk7XG4gIHN0YXR1cyA9IFByb3BlcnR5T2ZmZXJTdGF0dXM7XG4gIGVtcGxveW1lbnRTdGF0dXMgPSBFbXBsb3ltZW50U3RhdHVzO1xuICBhZ2VudDogYW55O1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmdldE9mZmVyKCk7XG4gIH1cbiAgZ2V0T2ZmZXIoKSB7XG4gICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZ2V0T2ZmZXIodGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5vZmZlciA9IHJlcy5kYXRhO1xuICAgICAgICB0aGlzLm5hbWUgPSB0aGlzLm9mZmVyLmZpcnN0TmFtZSArICcsICcgKyB0aGlzLm9mZmVyLmxhc3ROYW1lO1xuICAgICAgICB0aGlzLmdldFByb3BlcnR5KHRoaXMub2ZmZXIucHJvcGVydHlJZCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGdldFByb3BlcnR5KHByb3BlcnR5SWQ6IHN0cmluZykge1xuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmdldChwcm9wZXJ0eUlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMucHJvcGVydHkgPSByZXMuZGF0YTtcbiAgICAgICAgdGhpcy5nZXRBZ2VudFB1YmxpY0luZm8odGhpcy5wcm9wZXJ0eS5hZ2VudElkKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgZ2V0QWdlbnRQdWJsaWNJbmZvKGFnZW50SWQ6IHN0cmluZykge1xuICAgIHRoaXMuYXV0aFVzZXJTZXJ2aWNlLmdldFB1YmxpY1VzZXJJbmZvKGFnZW50SWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuYWdlbnQgPSByZXM7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGFjY2VwdCgpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEFjY2VwdERpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgd2lkdGg6ICc0MDBweCcsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHRpdGxlOiAnQWNjZXB0IG9mZmVyJyxcbiAgICAgICAgbWVzc2FnZTogJ0FjY2VwdCB0aGlzIG9mZmVyPycsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmFjY2VwdE9mZmVyKHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICAgICAgdGhpcy5vZmZlci5zdGF0dXMgPSAnQUNDRVBURUQnIGFzIFByb3BlcnR5T2ZmZXJTdGF0dXM7XG4gICAgICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKCdBY2NlcHRlZCcpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKGUubWVzc2FnZSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgcmVqZWN0KCkge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oUmVqZWN0RGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICB3aWR0aDogJzQwMHB4JyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgY29udGVudDogJycsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLnJlamVjdE9mZmVyKHRoaXMuaWQsIHsgcmVhc29uOiByZXN1bHQuY29udGVudCB9KS5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgICAgIHRoaXMub2ZmZXIuc3RhdHVzID0gJ1JFSkVDVEVEJyBhcyBQcm9wZXJ0eU9mZmVyU3RhdHVzO1xuICAgICAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbignUmVqZWN0ZWQnKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yOiAoZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbihlLm1lc3NhZ2UpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIGNvdW50ZXIoKSB7fVxuICBjcmVhdGVJbnZvaWNlKCkge1xuICAgIHRoaXMuaW52b2ljZVNlcnZpY2UuY3JlYXRlKHsgaXRlbUlkOiB0aGlzLmlkIH0pLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKHJlcyk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iLCJAaWYgKG9mZmVyKSB7XG48cm9sYXRlY2gtdG9vbGJhciBbdGl0bGVdPVwic3RhdHVzW29mZmVyLnN0YXR1c11cIiBsYXJnZSBsaW5rPVwiLi4vXCI+XG4gIEBpZiAob2ZmZXIuc3RhdHVzLnRvU3RyaW5nKCkgPT09ICdDUkVBVEVEJykge1xuICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiAoY2xpY2spPVwiYWNjZXB0KClcIiBpMThuPkFjY2VwdDwvYnV0dG9uPlxuICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiAoY2xpY2spPVwiY291bnRlcigpXCIgaTE4bj5Db3VudGVyIG9mZmVyPC9idXR0b24+XG4gIDxidXR0b24gbWF0LWJ1dHRvbiAoY2xpY2spPVwicmVqZWN0KClcIiBpMThuPlJlamVjdDwvYnV0dG9uPlxuICB9XG4gIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIChjbGljayk9XCJjcmVhdGVJbnZvaWNlKClcIiBpMThuPkNyZWF0ZSBpbnZvaWNlPC9idXR0b24+XG5cbiAgPCEtLSBjcmVhdGUgaW52b2ljZSAtLT5cbiAgQGlmIChvZmZlci5zdGF0dXMudG9TdHJpbmcoKSA9PT0gJ0FDQ0VQVEVEJykge1xuICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiAoY2xpY2spPVwiY3JlYXRlSW52b2ljZSgpXCIgaTE4bj5DcmVhdGUgaW52b2ljZTwvYnV0dG9uPlxuICB9XG4gIDwhLS0gUmVmZXJlbmNlcyAtLT5cbiAgQGlmIChvZmZlci5zdGF0dXMudG9TdHJpbmcoKSA9PT0gJ1JFRkVSRU5DRVNfUEFTU0VEJykge1xuICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiAoY2xpY2spPVwiY3JlYXRlSW52b2ljZSgpXCIgaTE4bj5DcmVhdGUgaW52b2ljZTwvYnV0dG9uPlxuICB9IEBpZiAob2ZmZXIuc3RhdHVzLnRvU3RyaW5nKCkgPT09ICdSRUZFUkVOQ0VTX0ZBSUxFRCcpIHtcbiAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gKGNsaWNrKT1cImNyZWF0ZUludm9pY2UoKVwiIGkxOG4+Q3JlYXRlIGludm9pY2U8L2J1dHRvbj5cbiAgfVxuPC9yb2xhdGVjaC10b29sYmFyPlxuPGRpdiBjbGFzcz1cInB4LTRcIj5cbiAgPGRpdj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZyBmb250LWJvbGQgcHktMlwiPlZpZXdlcjwvZGl2PlxuICAgIDxociBjbGFzcz1cIm1iLTJcIiAvPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IGdhcC0xIG1kOmdhcC00XCI+XG4gICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIk5hbWVcIiBbdGl0bGVdPVwibmFtZVwiPjwvcm9sYXRlY2gtcmljaC1sYWJlbD5cbiAgICAgIDxyb2xhdGVjaC1yaWNoLWxhYmVsIGxhYmVsPVwiRW1haWxcIiBbdGl0bGVdPVwib2ZmZXIuZW1haWxcIj48L3JvbGF0ZWNoLXJpY2gtbGFiZWw+XG4gICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIlBob25lXCIgW3RpdGxlXT1cIm9mZmVyLnBob25lXCI+PC9yb2xhdGVjaC1yaWNoLWxhYmVsPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZyBmb250LWJvbGQgcHktMlwiPlF1YWxpZmljYXRpb248L2Rpdj5cbiAgICA8aHIgY2xhc3M9XCJtYi0yXCIgLz5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBtZDpmbGV4LXJvdyBnYXAtMSBtZDpnYXAtNFwiPlxuICAgICAgPHJvbGF0ZWNoLXJpY2gtbGFiZWwgbGFiZWw9XCJNb3ZlLWluIGRhdGVcIiBbdGl0bGVdPVwib2ZmZXIuc3RhcnREYXRlXCI+PC9yb2xhdGVjaC1yaWNoLWxhYmVsPlxuICAgICAgPHJvbGF0ZWNoLXJpY2gtbGFiZWwgbGFiZWw9XCJUZW5hbmN5IGR1cmF0aW9uXCIgW3RpdGxlXT1cIm9mZmVyLnRlbmFuY3lEdXJhdGlvblwiPjwvcm9sYXRlY2gtcmljaC1sYWJlbD5cbiAgICAgIDxyb2xhdGVjaC1yaWNoLWxhYmVsIGxhYmVsPVwiTnVtYmVyIG9mIHRlbmFudHNcIiBbdGl0bGVdPVwib2ZmZXIubnVtYmVyT2ZUZW5hbnRzXCI+PC9yb2xhdGVjaC1yaWNoLWxhYmVsPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IGdhcC0xIG1kOmdhcC00XCI+XG4gICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIkVtcGxveW1lbnQgc3RhdHVzXCIgW3RpdGxlXT1cImVtcGxveW1lbnRTdGF0dXNbb2ZmZXIuZW1wbG95bWVudFN0YXR1c11cIj48L3JvbGF0ZWNoLXJpY2gtbGFiZWw+XG4gICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIkVtcGxveWVyXCIgW3RpdGxlXT1cIm9mZmVyLnN0YXJ0RGF0ZVwiPjwvcm9sYXRlY2gtcmljaC1sYWJlbD5cbiAgICAgIEBpZiAob2ZmZXIuaW5jb21lKSB7XG4gICAgICA8cm9sYXRlY2gtcmljaC1sYWJlbCBsYWJlbD1cIkFubnVhbCBpbmNvbWVcIiBbdGl0bGVdPVwib2ZmZXIuaW5jb21lXCI+PC9yb2xhdGVjaC1yaWNoLWxhYmVsPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZyBmb250LWJvbGQgcHktMlwiPlByb3BlcnR5IGRldGFpbHM8L2Rpdj5cbiAgICA8aHIgY2xhc3M9XCJtYi0yXCIgLz5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgcHktMlwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1pbi13LTI0IHctMjQgb2JqZWN0LWNvdmVyIGFzcGVjdC12aWRlbyByb3VuZGVkLW1kIG1yLTNcIj5cbiAgICAgICAgQGRlZmVyIHtcbiAgICAgICAgPHJvbGF0ZWNoLXRodW1ibmFpbCBbc3JjXT1cIm9mZmVyLml0ZW0ubWVkaWFbMF0udXJsXCIgc2l6ZT1cIm1lZGl1bVwiIG1vZGU9XCJjbGlwXCI+IDwvcm9sYXRlY2gtdGh1bWJuYWlsPlxuICAgICAgICB9IEBwbGFjZWhvbGRlciB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJiZy1bLS1ydC1yYWlzZWQtYmFja2dyb3VuZF0gaC1mdWxsIHctZnVsbCBvYmplY3QtY292ZXIgYXNwZWN0LXZpZGVvIHJvdW5kZWQtbGdcIj48L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCB3LWZ1bGwganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiB3LWZ1bGxcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxuICAgICAgICAgICAgPGRpdj57eyBvZmZlci5pdGVtLnRpdGxlIH19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5saW5lLWZsZXggZ2FwLTEgbXQtMlwiPlxuICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXItMVwiPnt7IG9mZmVyLml0ZW0uYmVkcm9vbXMgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gaTE4bj5CZWRyb29tczwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtci0xXCI+e3sgb2ZmZXIuaXRlbS5iYXRocm9vbXMgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gaTE4bj5CYXRocm9vbXM8L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXItMVwiPnt7IG9mZmVyLml0ZW0ucmVjZXB0aW9ucyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBpMThuPlJlY2VwdGlvbnM8L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtcmlnaHRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNtXCI+wqN7eyBvZmZlci5pdGVtLmFtb3VudC50b0ZpeGVkKDIpIH19PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiaGlkZGVuIG1kOmZsZXggZmxleC1jb2wgcHgtM1wiPjwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxnIGZvbnQtYm9sZCBweS0yXCI+Vmlld2luZyBhZ2VudDwvZGl2PlxuICAgIDxociBjbGFzcz1cIm1iLTJcIiAvPlxuICAgIEBpZiAoYWdlbnQpIHtcbiAgICA8ZGl2PlxuICAgICAgPHJvbGF0ZWNoLXJpY2gtbGFiZWwgbGFiZWw9XCJNb3ZlLWluIGRhdGVcIiBbdGl0bGVdPVwib2ZmZXIuc3RhcnREYXRlXCI+PC9yb2xhdGVjaC1yaWNoLWxhYmVsPlxuICAgICAgPHJvbGF0ZWNoLXJpY2gtbGFiZWwgbGFiZWw9XCJUZW5hbmN5IGR1cmF0aW9uXCIgW3RpdGxlXT1cIm9mZmVyLnRlbmFuY3lEdXJhdGlvblwiPjwvcm9sYXRlY2gtcmljaC1sYWJlbD5cbiAgICAgIDxyb2xhdGVjaC1yaWNoLWxhYmVsIGxhYmVsPVwiUGhvbmVcIiBbdGl0bGVdPVwiYWdlbnQucGhvbmVcIj48L3JvbGF0ZWNoLXJpY2gtbGFiZWw+XG4gICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbjwvZGl2PlxufVxuIl19","import { Component, inject } from '@angular/core';\nimport { BaseComponent, EmptyComponent, ListComponent, TabComponent, TabsComponent, ToolbarComponent, } from '@rolatech/angular-components';\nimport { PropertyService } from '@rolatech/angular-services';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\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 PropertyAgentOfferIndex 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.3.4\", ngImport: i0, type: PropertyAgentOfferIndex, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", type: PropertyAgentOfferIndex, isStandalone: true, selector: \"rolatech-property-agent-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) { @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</rolatech-tabs>\\n<rolatech-list>\\n @if (offers) { @for (item of offers; track item) {\\n <rolatech-property-offer-item [routerLink]=\\\"['./', item.id]\\\" [offer]=\\\"item\\\"></rolatech-property-offer-item>\\n } } @else {\\n <rolatech-empty></rolatech-empty>\\n }\\n</rolatech-list>\\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\" }, { kind: \"component\", type: ListComponent, selector: \"rolatech-list\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: PropertyAgentOfferIndex, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-property-agent-offer-index', imports: [\n CommonModule,\n ToolbarComponent,\n TabsComponent,\n TabComponent,\n RouterModule,\n PropertyOfferItemComponent,\n EmptyComponent,\n ListComponent,\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) { @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</rolatech-tabs>\\n<rolatech-list>\\n @if (offers) { @for (item of offers; track item) {\\n <rolatech-property-offer-item [routerLink]=\\\"['./', item.id]\\\" [offer]=\\\"item\\\"></rolatech-property-offer-item>\\n } } @else {\\n <rolatech-empty></rolatech-empty>\\n }\\n</rolatech-list>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktYWdlbnQtb2ZmZXItaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktYWdlbnQvcHJvcGVydHktYWdlbnQtb2ZmZXItaW5kZXgvcHJvcGVydHktYWdlbnQtb2ZmZXItaW5kZXgudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXByb3BlcnR5L3NyYy9saWIvcGFnZXMvcHJvcGVydHktYWdlbnQvcHJvcGVydHktYWdlbnQtb2ZmZXItaW5kZXgvcHJvcGVydHktYWdlbnQtb2ZmZXItaW5kZXguaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQ0wsYUFBYSxFQUNiLGNBQWMsRUFDZCxhQUFhLEVBQ2IsWUFBWSxFQUNaLGFBQWEsRUFDYixnQkFBZ0IsR0FDakIsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1RUFBdUUsQ0FBQzs7O0FBaUJuSCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsYUFBYTtJQUN4RCxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBRTFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDWCxLQUFLLEdBQUc7UUFDTjtZQUNFLElBQUksRUFBRSxLQUFLO1lBQ1gsSUFBSSxFQUFFLFdBQVc7U0FDbEI7UUFDRDtZQUNFLElBQUksRUFBRSxTQUFTO1lBQ2Ys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b3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQmFzZUNvbXBvbmVudCxcbiAgRW1wdHlDb21wb25lbnQsXG4gIExpc3RDb21wb25lbnQsXG4gIFRhYkNvbXBvbmVudCxcbiAgVGFic0NvbXBvbmVudCxcbiAgVG9vbGJhckNvbXBvbmVudCxcbn0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBQcm9wZXJ0eVNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBQcm9wZXJ0eU9mZmVyIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFByb3BlcnR5T2ZmZXJJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9wcm9wZXJ0eS1vZmZlci1pdGVtL3Byb3BlcnR5LW9mZmVyLWl0ZW0uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvcGVydHktYWdlbnQtb2ZmZXItaW5kZXgnLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFRvb2xiYXJDb21wb25lbnQsXG4gICAgVGFic0NvbXBvbmVudCxcbiAgICBUYWJDb21wb25lbnQsXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIFByb3BlcnR5T2ZmZXJJdGVtQ29tcG9uZW50LFxuICAgIEVtcHR5Q29tcG9uZW50LFxuICAgIExpc3RDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1hZ2VudC1vZmZlci1pbmRleC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb3BlcnR5LWFnZW50LW9mZmVyLWluZGV4LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eUFnZW50T2ZmZXJJbmRleCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcm9wZXJ0eVNlcnZpY2UgPSBpbmplY3QoUHJvcGVydHlTZXJ2aWNlKTtcblxuICBzZWxlY3QgPSAwO1xuICBsaW5rcyA9IFtcbiAgICB7XG4gICAgICBuYW1lOiAnQWxsJyxcbiAgICAgIGljb246ICdkYXNoYm9hcmQnLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ1BlbmRpbmcnLFxuICAgICAgaWNvbjogJ2NhdGVnb3J5JyxcbiAgICAgIHN0YXR1czogJ3BlbmRpbmcnLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ0FjY2VwdGVkJyxcbiAgICAgIGljb246ICdjYXRlZ29yeScsXG4gICAgICBzdGF0dXM6ICdhY2NlcHRlZCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnUmVqZWN0ZWQnLFxuICAgICAgaWNvbjogJ2NhdGVnb3J5JyxcbiAgICAgIHN0YXR1czogJ3JlamVjdGVkJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdDYW5jZWxsZWQnLFxuICAgICAgaWNvbjogJ2NhdGVnb3J5JyxcbiAgICAgIHN0YXR1czogJ2NhbmNlbGxlZCcsXG4gICAgfSxcbiAgXTtcbiAgZmlsdGVyT3B0aW9uczogYW55ID0ge1xuICAgIHR5cGU6ICcnLFxuICAgIHN0YXR1czogJycsXG4gIH07XG4gIG9mZmVyczogUHJvcGVydHlPZmZlcltdID0gW107XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoKHsgc3RhdHVzIH0pID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0ID0gdGhpcy5saW5rcy5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0uc3RhdHVzID09PSBzdGF0dXMpO1xuICAgICAgaWYgKHN0YXR1cykge1xuICAgICAgICB0aGlzLmZpbHRlck9wdGlvbnMuc3RhdHVzID0gKHN0YXR1cyBhcyBzdHJpbmcpLnRvVXBwZXJDYXNlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZWxldGUgdGhpcy5maWx0ZXJPcHRpb25zLnN0YXR1cztcbiAgICAgIH1cbiAgICAgIHRoaXMuZmluZE9mZmVycygpO1xuICAgIH0pO1xuICB9XG4gIGZpbmRPZmZlcnMoKSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIHNvcnQ6ICd1cGRhdGVkQXQgZGVzYycsXG4gICAgfTtcbiAgICBjb25zdCBmaWx0ZXJTdHJpbmcgPSB0aGlzLmNvbnZlcnRGaWx0ZXJPcHRpb25zKHRoaXMuZmlsdGVyT3B0aW9ucyk7XG4gICAgaWYgKGZpbHRlclN0cmluZykge1xuICAgICAgb3B0aW9uc1snZmlsdGVyJ10gPSBmaWx0ZXJTdHJpbmc7XG4gICAgfVxuICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmZpbmRPZmZlcnNCeUFnZW50KG9wdGlvbnMpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5vZmZlcnMgPSByZXMuZGF0YTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgY29udmVydEZpbHRlck9wdGlvbnMoanNvbk9iaikge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhqc29uT2JqKVxuICAgICAgLmZpbHRlcigoW2tleSwgdmFsdWVdKSA9PiB2YWx1ZSAhPT0gJycgJiYgdmFsdWUgIT09IHVuZGVmaW5lZClcbiAgICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICByZXR1cm4gYCR7a2V5fToke3ZhbHVlfWA7XG4gICAgICB9KVxuICAgICAgLmpvaW4oJywnKTtcbiAgfVxufVxuIiwiPHJvbGF0ZWNoLXRvb2xiYXIgdGl0bGU9XCJPZmZlcnNcIj5cbiAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+PC9kaXY+XG48L3JvbGF0ZWNoLXRvb2xiYXI+XG48cm9sYXRlY2gtdGFicyBbc2VsZWN0XT1cInNlbGVjdFwiPlxuICBAZm9yIChpdGVtIG9mIGxpbmtzOyB0cmFjayBpdGVtKSB7IEBpZiAoaXRlbS5zdGF0dXMpIHtcbiAgPHJvbGF0ZWNoLXRhYiBbbGFiZWxdPVwiaXRlbS5uYW1lXCIgcm91dGVyTGluaz1cIi4vXCIgW3F1ZXJ5UGFyYW1zXT1cInsgc3RhdHVzOiBpdGVtLnN0YXR1cyB9XCI+PC9yb2xhdGVjaC10YWI+XG4gIH0gQGVsc2Uge1xuICA8cm9sYXRlY2gtdGFiIFtsYWJlbF09XCJpdGVtLm5hbWVcIiByb3V0ZXJMaW5rPVwiLi9cIj48L3JvbGF0ZWNoLXRhYj5cbiAgfSB9XG48L3JvbGF0ZWNoLXRhYnM+XG48cm9sYXRlY2gtbGlzdD5cbiAgQGlmIChvZmZlcnMpIHsgQGZvciAoaXRlbSBvZiBvZmZlcnM7IHRyYWNrIGl0ZW0pIHtcbiAgPHJvbGF0ZWNoLXByb3BlcnR5LW9mZmVyLWl0ZW0gW3JvdXRlckxpbmtdPVwiWycuLycsIGl0ZW0uaWRdXCIgW29mZmVyXT1cIml0ZW1cIj48L3JvbGF0ZWNoLXByb3BlcnR5LW9mZmVyLWl0ZW0+XG4gIH0gfSBAZWxzZSB7XG4gIDxyb2xhdGVjaC1lbXB0eT48L3JvbGF0ZWNoLWVtcHR5PlxuICB9XG48L3JvbGF0ZWNoLWxpc3Q+XG4iXX0=","import { PropertyAgentOfferDetail } from './property-agent-offer-detail/property-agent-offer-detail';\nimport { PropertyAgentOfferIndex } from './property-agent-offer-index/property-agent-offer-index';\nexport const propertyAgentOfferRoutes = [\n {\n path: '',\n component: PropertyAgentOfferIndex,\n },\n {\n path: ':id',\n component: PropertyAgentOfferDetail,\n },\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktYWdlbnQtb2ZmZXIucm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1wcm9wZXJ0eS9zcmMvbGliL3BhZ2VzL3Byb3BlcnR5LWFnZW50L3Byb3BlcnR5LWFnZW50LW9mZmVyLnJvdXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUNyRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUVsRyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBVztJQUM5QztRQUNFLElBQUksRUFBRSxFQUFFO1FBQ1IsU0FBUyxFQUFFLHVCQUF1QjtLQUNuQztJQUNEO1FBQ0UsSUFBSSxFQUFFLEtBQUs7UUFDWCxTQUFTLEVBQUUsd0JBQXdCO0tBQ3BDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBQcm9wZXJ0eUFnZW50T2ZmZXJEZXRhaWwgfSBmcm9tICcuL3Byb3BlcnR5LWFnZW50LW9mZmVyLWRldGFpbC9wcm9wZXJ0eS1hZ2VudC1vZmZlci1kZXRhaWwnO1xuaW1wb3J0IHsgUHJvcGVydHlBZ2VudE9mZmVySW5kZXggfSBmcm9tICcuL3Byb3BlcnR5LWFnZW50LW9mZmVyLWluZGV4L3Byb3BlcnR5LWFnZW50LW9mZmVyLWluZGV4JztcblxuZXhwb3J0IGNvbnN0IHByb3BlcnR5QWdlbnRPZmZlclJvdXRlczogUm91dGVzID0gW1xuICB7XG4gICAgcGF0aDogJycsXG4gICAgY29tcG9uZW50OiBQcm9wZXJ0eUFnZW50T2ZmZXJJbmRleCxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICc6aWQnLFxuICAgIGNvbXBvbmVudDogUHJvcGVydHlBZ2VudE9mZmVyRGV0YWlsLFxuICB9LFxuXTtcbiJdfQ==","/**\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","i8","i7","i9"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAU,IAAC;AACX,CAAC,UAAU,aAAa,EAAE;AAC1B,IAAI,aAAa,CAAC,eAAe,CAAC,GAAG,eAAe;AACpD,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,QAAQ;AACtC,IAAI,aAAa,CAAC,WAAW,CAAC,GAAG,WAAW;AAC5C,IAAI,aAAa,CAAC,SAAS,CAAC,GAAG,SAAS;AACxC,IAAI,aAAa,CAAC,YAAY,CAAC,GAAG,YAAY;AAC9C,IAAI,aAAa,CAAC,WAAW,CAAC,GAAG,WAAW;AAC5C,IAAI,aAAa,CAAC,aAAa,CAAC,GAAG,aAAa;AAChD,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,QAAQ;AACtC,IAAI,aAAa,CAAC,UAAU,CAAC,GAAG,UAAU;AAC1C,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,OAAO;AACpC,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,QAAQ;AACtC,CAAC,EAAE,aAAa,KAAK,aAAa,GAAG,EAAE,CAAC,CAAC;AAC/B,IAAC;AACX,CAAC,UAAU,MAAM,EAAE;AACnB,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO;AAC7B,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,UAAU;AACnC,IAAI,MAAM,CAAC,eAAe,CAAC,GAAG,eAAe;AAC7C,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,EAAE,CAAC,CAAC;AACjB,IAAC;AACX,CAAC,UAAU,iBAAiB,EAAE;AAC9B,IAAI,iBAAiB,CAAC,OAAO,CAAC,GAAG,0BAA0B;AAC3D,IAAI,iBAAiB,CAAC,SAAS,CAAC,GAAG,0BAA0B;AAC7D,IAAI,iBAAiB,CAAC,QAAQ,CAAC,GAAG,oBAAoB;AACtD,CAAC,EAAE,iBAAiB,KAAK,iBAAiB,GAAG,EAAE,CAAC,CAAC;AACvC,IAAC;AACX,CAAC,UAAU,qBAAqB,EAAE;AAClC,IAAI,qBAAqB,CAAC,SAAS,CAAC,GAAG,SAAS;AAChD,IAAI,qBAAqB,CAAC,IAAI,CAAC,GAAG,QAAQ;AAC1C,IAAI,qBAAqB,CAAC,OAAO,CAAC,GAAG,cAAc;AACnD,IAAI,qBAAqB,CAAC,KAAK,CAAC,GAAG,KAAK;AACxC,CAAC,EAAE,qBAAqB,KAAK,qBAAqB,GAAG,EAAE,CAAC,CAAC;AAC/C,IAAC;AACX,CAAC,UAAU,cAAc,EAAE;AAC3B,IAAI,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,OAAO;AAC/D,IAAI,cAAc,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,GAAG,SAAS;AACrE,IAAI,cAAc,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,GAAG,UAAU;AACxE,IAAI,cAAc,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,GAAG,UAAU;AACxE,IAAI,cAAc,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC,GAAG,WAAW;AAC3E,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,MAAM;AAC5D,IAAI,cAAc,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,GAAG,QAAQ;AAClE,IAAI,cAAc,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,GAAG,SAAS;AACrE,IAAI,cAAc,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,GAAG,UAAU;AACxE,CAAC,EAAE,cAAc,KAAK,cAAc,GAAG,EAAE,CAAC,CAAC;AACjC,IAAC;AACX,CAAC,UAAU,YAAY,EAAE;AACzB,IAAI,YAAY,CAAC,WAAW,CAAC,GAAG,WAAW;AAC3C,IAAI,YAAY,CAAC,OAAO,CAAC,GAAG,OAAO;AACnC,IAAI,YAAY,CAAC,OAAO,CAAC,GAAG,QAAQ;AACpC,IAAI,YAAY,CAAC,WAAW,CAAC,GAAG,YAAY;AAC5C,IAAI,YAAY,CAAC,MAAM,CAAC,GAAG,MAAM;AACjC,IAAI,YAAY,CAAC,YAAY,CAAC,GAAG,YAAY;AAC7C,IAAI,YAAY,CAAC,YAAY,CAAC,GAAG,YAAY;AAC7C,IAAI,YAAY,CAAC,MAAM,CAAC,GAAG,MAAM;AACjC,IAAI,YAAY,CAAC,OAAO,CAAC,GAAG,OAAO;AACnC,CAAC,EAAE,YAAY,KAAK,YAAY,GAAG,EAAE,CAAC,CAAC;AAC7B,IAAC;AACX,CAAC,UAAU,uBAAuB,EAAE;AACpC,IAAI,uBAAuB,CAAC,UAAU,CAAC,GAAG,cAAc;AACxD,IAAI,uBAAuB,CAAC,WAAW,CAAC,GAAG,0BAA0B;AACrE,IAAI,uBAAuB,CAAC,cAAc,CAAC,GAAG,cAAc;AAC5D,IAAI,uBAAuB,CAAC,cAAc,CAAC,GAAG,oBAAoB;AAClE,CAAC,EAAE,uBAAuB,KAAK,uBAAuB,GAAG,EAAE,CAAC,CAAC;AACnD,IAAC;AACX,CAAC,UAAU,aAAa,EAAE;AAC1B,IAAI,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK;AACtD,IAAI,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,GAAG,QAAQ;AAC5D,CAAC,EAAE,aAAa,KAAK,aAAa,GAAG,EAAE,CAAC,CAAC;AAC/B,IAAC;AACX,CAAC,UAAU,qBAAqB,EAAE;AAClC,IAAI,qBAAqB,CAAC,SAAS,CAAC,GAAG,SAAS;AAChD,IAAI,qBAAqB,CAAC,UAAU,CAAC,GAAG,UAAU;AAClD,IAAI,qBAAqB,CAAC,UAAU,CAAC,GAAG,UAAU;AAClD,IAAI,qBAAqB,CAAC,WAAW,CAAC,GAAG,WAAW;AACpD,IAAI,qBAAqB,CAAC,WAAW,CAAC,GAAG,WAAW;AACpD,CAAC,EAAE,qBAAqB,KAAK,qBAAqB,GAAG,EAAE,CAAC,CAAC;AAC/C,IAAC;AACX,CAAC,UAAU,sBAAsB,EAAE;AACnC,IAAI,sBAAsB,CAAC,QAAQ,CAAC,GAAG,QAAQ;AAC/C,IAAI,sBAAsB,CAAC,OAAO,CAAC,GAAG,OAAO;AAC7C,CAAC,EAAE,sBAAsB,KAAK,sBAAsB,GAAG,EAAE,CAAC,CAAC;AACjD,IAAC;AACX,CAAC,UAAU,2BAA2B,EAAE;AACxC,IAAI,2BAA2B,CAAC,eAAe,CAAC,GAAG,eAAe;AAClE,IAAI,2BAA2B,CAAC,gBAAgB,CAAC,GAAG,gBAAgB;AACpE,IAAI,2BAA2B,CAAC,gBAAgB,CAAC,GAAG,gBAAgB;AACpE,IAAI,2BAA2B,CAAC,cAAc,CAAC,GAAG,cAAc;AAChE,IAAI,2BAA2B,CAAC,iBAAiB,CAAC,GAAG,iBAAiB;AACtE,IAAI,2BAA2B,CAAC,4BAA4B,CAAC,GAAG,4BAA4B;AAC5F,IAAI,2BAA2B,CAAC,6BAA6B,CAAC,GAAG,6BAA6B;AAC9F,IAAI,2BAA2B,CAAC,gBAAgB,CAAC,GAAG,gBAAgB;AACpE,IAAI,2BAA2B,CAAC,iBAAiB,CAAC,GAAG,iBAAiB;AACtE,IAAI,2BAA2B,CAAC,wBAAwB,CAAC,GAAG,wBAAwB;AACpF,IAAI,2BAA2B,CAAC,uBAAuB,CAAC,GAAG,uBAAuB;AAClF,IAAI,2BAA2B,CAAC,uBAAuB,CAAC,GAAG,uBAAuB;AAClF,IAAI,2BAA2B,CAAC,yBAAyB,CAAC,GAAG,yBAAyB;AACtF,IAAI,2BAA2B,CAAC,uBAAuB,CAAC,GAAG,uBAAuB;AAClF,CAAC,EAAE,2BAA2B,KAAK,2BAA2B,GAAG,EAAE,CAAC,CAAC;AAC3D,IAAC;AACX,CAAC,UAAU,iBAAiB,EAAE;AAC9B,IAAI,iBAAiB,CAAC,OAAO,CAAC,GAAG,OAAO;AACxC,IAAI,iBAAiB,CAAC,UAAU,CAAC,GAAG,UAAU;AAC9C,IAAI,iBAAiB,CAAC,eAAe,CAAC,GAAG,eAAe;AACxD,CAAC,EAAE,iBAAiB,KAAK,iBAAiB,GAAG,EAAE,CAAC,CAAC;AACvC,IAAC;AACX,CAAC,UAAU,mBAAmB,EAAE;AAChC,IAAI,mBAAmB,CAAC,SAAS,CAAC,GAAG,SAAS;AAC9C,IAAI,mBAAmB,CAAC,UAAU,CAAC,GAAG,UAAU;AAChD,IAAI,mBAAmB,CAAC,UAAU,CAAC,GAAG,UAAU;AAChD,IAAI,mBAAmB,CAAC,sBAAsB,CAAC,GAAG,sBAAsB;AACxE,IAAI,mBAAmB,CAAC,uBAAuB,CAAC,GAAG,uBAAuB;AAC1E,IAAI,mBAAmB,CAAC,WAAW,CAAC,GAAG,WAAW;AAClD,IAAI,mBAAmB,CAAC,mBAAmB,CAAC,GAAG,WAAW;AAC1D,CAAC,EAAE,mBAAmB,KAAK,mBAAmB,GAAG,EAAE,CAAC,CAAC;AAC3C,IAAC;AACX,CAAC,UAAU,gBAAgB,EAAE;AAC7B,IAAI,gBAAgB,CAAC,UAAU,CAAC,GAAG,UAAU;AAC7C,IAAI,gBAAgB,CAAC,SAAS,CAAC,GAAG,SAAS;AAC3C,IAAI,gBAAgB,CAAC,eAAe,CAAC,GAAG,eAAe;AACvD,IAAI,gBAAgB,CAAC,SAAS,CAAC,GAAG,SAAS;AAC3C,IAAI,gBAAgB,CAAC,YAAY,CAAC,GAAG,YAAY;AACjD,CAAC,EAAE,gBAAgB,KAAK,gBAAgB,GAAG,EAAE,CAAC,CAAC;AACrC,IAAC;AACX,CAAC,UAAU,eAAe,EAAE;AAC5B,IAAI,eAAe,CAAC,YAAY,CAAC,GAAG,qBAAqB;AACzD,IAAI,eAAe,CAAC,aAAa,CAAC,GAAG,eAAe;AACpD,IAAI,eAAe,CAAC,kBAAkB,CAAC,GAAG,0BAA0B;AACpE,IAAI,eAAe,CAAC,0BAA0B,CAAC,GAAG,mCAAmC;AACrF,CAAC,EAAE,eAAe,KAAK,eAAe,GAAG,EAAE,CAAC,CAAC;AACnC,IAAC;AACX,CAAC,UAAU,qBAAqB,EAAE;AAClC,IAAI,qBAAqB,CAAC,YAAY,CAAC,GAAG,YAAY;AACtD,IAAI,qBAAqB,CAAC,WAAW,CAAC,GAAG,WAAW;AACpD,IAAI,qBAAqB,CAAC,SAAS,CAAC,GAAG,SAAS;AAChD,IAAI,qBAAqB,CAAC,oBAAoB,CAAC,GAAG,oBAAoB;AACtE,CAAC,EAAE,qBAAqB,KAAK,qBAAqB,GAAG,EAAE,CAAC,CAAC;AAC/C,IAAC;AACX,CAAC,UAAU,mBAAmB,EAAE;AAChC,IAAI,mBAAmB,CAAC,MAAM,CAAC,GAAG,MAAM;AACxC,IAAI,mBAAmB,CAAC,YAAY,CAAC,GAAG,YAAY;AACpD,IAAI,mBAAmB,CAAC,eAAe,CAAC,GAAG,eAAe;AAC1D,IAAI,mBAAmB,CAAC,sBAAsB,CAAC,GAAG,qBAAqB;AACvE,IAAI,mBAAmB,CAAC,kBAAkB,CAAC,GAAG,kBAAkB;AAChE,IAAI,mBAAmB,CAAC,OAAO,CAAC,GAAG,OAAO;AAC1C,CAAC,EAAE,mBAAmB,KAAK,mBAAmB,GAAG,EAAE,CAAC,CAAC;AACzC,MAAC,WAAW,GAAG;AAC3B,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;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;AACY,MAAC,YAAY,GAAG;AAC5B,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;AACnC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE;AACpC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;AAC9B,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;AAC9B,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;AAC9B,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;AAC9B,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;AAC9B;AACY,MAAC,UAAU,GAAG;AAC1B,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;AACjC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE;AACpC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE;AACrC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE;AACrC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE;AACrC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE;AACrC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE;AACrC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE;AACrC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE;AACrC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE;AACrC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE;AACrC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE;AACrC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE;AACrC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE;AACrC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE;AACrC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE;AACxC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE;AACxC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE;AACxC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE;AACxC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE;AACxC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE;AACxC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE;AACxC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE;AACxC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE;AACxC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE;AACxC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE;AACxC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE;AACxC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE;AACxC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE;AACxC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE;AACxC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE;AACxC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE;AACxC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE;AACxC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE;AACxC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE;AACxC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE;AACxC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE;AACxC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE;AACxC,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1C,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1C,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1C,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1C,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1C,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1C,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1C,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1C,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1C;;ACrSO,MAAM,2BAA2B,CAAC;AACzC,IAAI,QAAQ,GAAG,IAAI;AACnB,IAAI,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AAC3B,IAAI,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChF,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACpF,IAAI,MAAM,GAAG,cAAc;AAC3B,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;AAClI,IAAI,WAAW,GAAG;AAClB,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;AAC7B,gBAAgB,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;AAC9D,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;AACjE,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,GAAG,EAAE;AAChB,IAAI,QAAQ,GAAG,EAAE;AACjB,IAAI,MAAM,GAAG,EAAE;AACf,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACrL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,2BAA2B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,+BAA+B,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,qCAAqC,EAAE,eAAe,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,qkCAAqkC,EAAE,MAAM,EAAE,CAAC,sPAAsP,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,yBAAyB,EAAE,QAAQ,EAAE,4BAA4B,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,sBAAsB,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC;AACn7E;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,UAAU,EAAE,CAAC;AACrI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,+BAA+B,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,eAAe,EAAE,aAAa,CAAC,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,qkCAAqkC,EAAE,MAAM,EAAE,CAAC,sPAAsP,CAAC,EAAE;AACliD,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC;AACnE,gBAAgB,IAAI,EAAE,WAAW;AACjC,gBAAgB,IAAI,EAAE,CAAC,qCAAqC;AAC5D,aAAa,CAAC,EAAE,EAAE,CAAC;;ACxBZ,MAAM,4BAA4B,CAAC;AAC1C,IAAI,QAAQ,GAAG,IAAI;AACnB,IAAI,SAAS,GAAG,SAAS,CAAC,YAAY,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3F,IAAI,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;AAC9B,IAAI,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC;AAClC,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,SAAS,GAAG,KAAK;AACrB,IAAI,QAAQ,GAAG,KAAK;AACpB,IAAI,UAAU,GAAG,EAAE;AACnB,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,cAAc,EAAE;AAC7B,IAAI;AACJ,IAAI,cAAc,GAAG;AACrB,QAAQ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AAChD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,IAAI;AAC1C,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACtL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,4BAA4B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,gCAAgC,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,sCAAsC,EAAE,eAAe,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,izBAAizB,EAAE,MAAM,EAAE,CAAC,+/BAA+/B,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,2BAA2B,EAAE,QAAQ,EAAE,+BAA+B,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;AACjmG;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,UAAU,EAAE,CAAC;AACtI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,gCAAgC,EAAE,OAAO,EAAE;AAC1E,wBAAwB,eAAe;AACvC,wBAAwB,UAAU;AAClC,wBAAwB,aAAa;AACrC,wBAAwB,cAAc;AACtC,wBAAwB,aAAa;AACrC,wBAAwB,kBAAkB;AAC1C,wBAAwB,gBAAgB;AACxC,wBAAwB,gBAAgB;AACxC,wBAAwB,2BAA2B;AACnD,qBAAqB,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,izBAAizB,EAAE,MAAM,EAAE,CAAC,+/BAA+/B,CAAC,EAAE;AACt4D,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC;AACzC,gBAAgB,IAAI,EAAE,WAAW;AACjC,gBAAgB,IAAI,EAAE,CAAC,sCAAsC;AAC7D,aAAa,CAAC,EAAE,EAAE,CAAC;;AC9CZ,MAAM,sBAAsB,CAAC;AACpC,IAAI,QAAQ,GAAG,IAAI;AACnB,IAAI,gBAAgB,GAAG,IAAI;AAC3B,IAAI,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;AAC9B,IAAI,KAAK,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrE,IAAI,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACpE,IAAI,UAAU,GAAG,CAAC;AAClB,IAAI,YAAY,CAAC,CAAC,EAAE;AACpB,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;AACxE,YAAY,QAAQ,EAAE,MAAM;AAC5B,YAAY,SAAS,EAAE,MAAM;AAC7B,YAAY,MAAM,EAAE,KAAK;AACzB,YAAY,KAAK,EAAE,KAAK;AACxB,YAAY,UAAU,EAAE,mBAAmB;AAC3C,YAAY,IAAI,EAAE;AAClB,gBAAgB,KAAK,EAAE,IAAI,CAAC,KAAK;AACjC,gBAAgB,QAAQ,EAAE,CAAC;AAC3B,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC;AAC1D,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAChL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,sBAAsB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,8BAA8B,EAAE,eAAe,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,mqBAAmqB,EAAE,MAAM,EAAE,CAAC,qSAAqS,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;AAChzD;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,CAAC;AAChI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,yBAAyB,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,kBAAkB,CAAC,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,mqBAAmqB,EAAE,MAAM,EAAE,CAAC,qSAAqS,CAAC,EAAE;AACzmC,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC;AACzC,gBAAgB,IAAI,EAAE,WAAW;AACjC,gBAAgB,IAAI,EAAE,CAAC,8BAA8B;AACrD,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;AACnC,gBAAgB,IAAI,EAAE,WAAW;AACjC,gBAAgB,IAAI,EAAE,CAAC,sBAAsB;AAC7C,aAAa,CAAC,EAAE,EAAE,CAAC;;ACjCZ,MAAM,yBAAyB,CAAC;AACvC,IAAI,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChF,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACnL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,yBAAyB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,4BAA4B,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,gWAAgW,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;AACj8B;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,CAAC;AACnI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,4BAA4B,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,gWAAgW,EAAE;AACjd,SAAS,CAAC,EAAE,CAAC;;ACbb;AACA,IAAI,kBAAkB,GAAG,IAAI;AACtB,SAAS,cAAc,CAAC,EAAE,IAAI,GAAG,yBAAyB,EAAE,GAAG,EAAE,SAAS,GAAG,EAAE,EAAE,OAAO,GAAG,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM;AACpI,aAAa,GAAG,EAAE;AAClB,IAAI,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,QAAQ,KAAK,WAAW;AACxE,QAAQ,OAAO,OAAO,CAAC,OAAO,EAAE;AAChC,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI;AAC3B,QAAQ,OAAO,OAAO,CAAC,OAAO,EAAE;AAChC,IAAI,IAAI,kBAAkB;AAC1B,QAAQ,OAAO,kBAAkB;AACjC,IAAI,kBAAkB,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAC1D;AACA,QAAQ,MAAM,CAAC,iBAAiB,GAAG,MAAM;AACzC,YAAY,OAAO,EAAE;AACrB,YAAY,OAAO,MAAM,CAAC,iBAAiB;AAC3C,QAAQ,CAAC;AACT,QAAQ,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE;AAC5C,QAAQ,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC;AAC9B,QAAQ,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC;AAChC,QAAQ,IAAI,SAAS,CAAC,MAAM;AAC5B,YAAY,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7E,QAAQ,IAAI,QAAQ;AACpB,YAAY,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC;AAC5C,QAAQ,IAAI,MAAM;AAClB,YAAY,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC;AACxC,QAAQ,IAAI,MAAM,EAAE,MAAM;AAC1B,YAAY,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACzE,QAAQ,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC;AACtC,QAAQ,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,mBAAmB,CAAC;AACnD,QAAQ,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;AACvD,QAAQ,MAAM,CAAC,KAAK,GAAG,IAAI;AAC3B,QAAQ,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/D,QAAQ,IAAI,aAAa,EAAE;AAC3B,YAAY,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC;AAC5D,YAAY,IAAI,EAAE,EAAE,KAAK;AACzB,gBAAgB,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK;AACvC,QAAQ;AACR,QAAQ,MAAM,CAAC,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;AAC1E,QAAQ,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;AACzC,IAAI,CAAC,CAAC;AACN,IAAI,OAAO,kBAAkB;AAC7B;;ACpCO,MAAM,yBAAyB,CAAC;AACvC,IAAI,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AACpC,IAAI,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChF,IAAI,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC;AACpD,IAAI,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AACpC,IAAI,MAAM,QAAQ,GAAG;AACrB,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC;AAC/C,YAAY;AACZ,QAAQ,MAAM,cAAc,CAAC;AAC7B,YAAY,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO;AAC1C,YAAY,GAAG,EAAE,yCAAyC;AAC1D,YAAY,SAAS,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;AAC3C,YAAY,QAAQ,EAAE,OAAO;AAC7B,YAAY,MAAM,EAAE,IAAI;AACxB,YAAY,MAAM,EAAE,CAAC,kBAAkB,CAAC;AACxC,SAAS,CAAC;AACV,QAAQ,MAAM,EAAE,GAAG,EAAE,IAAI,MAAM,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACjE,QAAQ,MAAM,EAAE,qBAAqB,EAAE,IAAI,MAAM,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACrF,QAAQ,MAAM,MAAM,GAAG;AACvB,YAAY,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,IAAI,SAAS;AAClE,YAAY,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ;AACnE,SAAS;AACT,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,KAAK,EAAE,kBAAkB;AACrC,YAAY,MAAM,EAAE,MAAM;AAC1B,YAAY,IAAI,EAAE,EAAE;AACpB,SAAS;AACT,QAAQ,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC;AACxE,QAAQ,IAAI,qBAAqB,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC;AACrE,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACnL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,yBAAyB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,4BAA4B,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,4OAA4O,EAAE,MAAM,EAAE,CAAC,yOAAyO,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;AACj/B;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,CAAC;AACnI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,4BAA4B,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,4OAA4O,EAAE,MAAM,EAAE,CAAC,yOAAyO,CAAC,EAAE;AACnkB,SAAS,CAAC,EAAE,CAAC;;ACnCN,MAAM,8BAA8B,CAAC;AAC5C,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1E,IAAI,MAAM,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9E,IAAI,QAAQ,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF,IAAI,QAAQ,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACxL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,8BAA8B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,kCAAkC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,s2BAAs2B,EAAE,MAAM,EAAE,CAAC,6DAA6D,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;AACvnE;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,UAAU,EAAE,CAAC;AACxI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,kCAAkC,EAAE,OAAO,EAAE,CAAC,mBAAmB,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,s2BAAs2B,EAAE,MAAM,EAAE,CAAC,6DAA6D,CAAC,EAAE;AAC7iC,SAAS,CAAC,EAAE,CAAC;;ACNN,MAAM,mBAAmB,CAAC;AACjC,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,OAAO,GAAG,IAAI;AAClB,IAAI,MAAM,GAAG,MAAM,EAAE;AACrB,IAAI,MAAM;AACV,IAAI,eAAe;AACnB,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,IAAI;AACJ,IAAI,UAAU,GAAG;AACjB,QAAQ,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACnD,YAAY,IAAI,EAAE,GAAG,IAAI;AACzB,gBAAgB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI;AACtC,gBAAgB,IAAI,CAAC,OAAO,GAAG,KAAK;AACpC,YAAY;AACZ,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,SAAS,GAAG;AAChB,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;AAC9C,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAC7K,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,gCAAgC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,+dAA+d,EAAE,MAAM,EAAE,CAAC,8BAA8B,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,oBAAoB,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,qDAAqD,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,kBAAkB,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,8BAA8B,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,wBAAwB,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,EAAE,0BAA0B,CAAC,EAAE,OAAO,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,mBAAmB,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;AAC5tE;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC;AAC7H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,gCAAgC,EAAE,OAAO,EAAE;AAC1E,wBAAwB,YAAY;AACpC,wBAAwB,kBAAkB;AAC1C,wBAAwB,WAAW;AACnC,wBAAwB,cAAc;AACtC,wBAAwB,eAAe;AACvC,qBAAqB,EAAE,QAAQ,EAAE,+dAA+d,EAAE,MAAM,EAAE,CAAC,8BAA8B,CAAC,EAAE;AAC5iB,SAAS,CAAC,EAAE,CAAC;;AC7BN,MAAM,6BAA6B,SAAS,aAAa,CAAC;AACjE,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,YAAY,GAAG,EAAE;AACrB,IAAI,QAAQ;AACZ,IAAI,IAAI;AACR,IAAI,KAAK;AACT,IAAI,MAAM,GAAG,cAAc;AAC3B,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACpD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI;AACxC,gBAAgB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC1C,oBAAoB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AAChE,gBAAgB;AAChB,gBAAgB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AAC3C,oBAAoB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AAClE,gBAAgB;AAChB,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,iBAAiB,CAAC,MAAM,EAAE;AAC9B,QAAQ,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC;AACjE,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,IAAI,GAAG,GAAG;AAC/B,gBAAgB,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,IAAI;AAC5C,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,kBAAkB,CAAC,OAAO,EAAE;AAChC,QAAQ,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;AAClE,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,KAAK,GAAG,GAAG;AAChC,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,GAAG;AACd,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;AAClE,YAAY,KAAK,EAAE,OAAO;AAC1B,YAAY,IAAI,EAAE;AAClB,gBAAgB,KAAK,EAAE,SAAS;AAChC,gBAAgB,OAAO,EAAE,wBAAwB;AACjD,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK;AACtD,YAAY,IAAI,MAAM,EAAE;AACxB,gBAAgB,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACtE,oBAAoB,IAAI,EAAE,CAAC,GAAG,KAAK;AACnC,wBAAwB,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,QAAQ;AACvD,wBAAwB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC;AAC7D,oBAAoB,CAAC;AACrB,oBAAoB,KAAK,EAAE,CAAC,CAAC,KAAK;AAClC,wBAAwB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;AAC5D,oBAAoB,CAAC;AACrB,iBAAiB,CAAC;AAClB,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;AAClE,YAAY,KAAK,EAAE,OAAO;AAC1B,YAAY,IAAI,EAAE;AAClB,gBAAgB,OAAO,EAAE,EAAE;AAC3B,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK;AACtD,YAAY,IAAI,MAAM,EAAE;AACxB,gBAAgB,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC;AAC7E,oBAAoB,IAAI,EAAE,CAAC,GAAG,KAAK;AACnC,wBAAwB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC;AAC7D,oBAAoB,CAAC;AACrB,oBAAoB,KAAK,EAAE,CAAC,CAAC,KAAK;AAClC,wBAAwB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;AAC5D,oBAAoB,CAAC;AACrB,iBAAiB,CAAC;AAClB,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,KAAK,EAAE,cAAc;AACjC,YAAY,UAAU,EAAE,QAAQ;AAChC,YAAY,WAAW,EAAE,SAAS;AAClC,YAAY,SAAS,EAAE,mBAAmB;AAC1C,YAAY,IAAI,EAAE;AAClB,gBAAgB,MAAM,EAAE,EAAE;AAC1B,aAAa;AACb,YAAY,KAAK,EAAE,OAAO;AAC1B,SAAS;AACT,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;AACxC,QAAQ,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC;AACjD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,GAAG,EAAE;AACzB,oBAAoB,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC;AACzF,wBAAwB,IAAI,EAAE,CAAC,GAAG,KAAK;AACvC,4BAA4B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;AAC5C,4BAA4B,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AACrE,wBAAwB,CAAC;AACzB,qBAAqB,CAAC;AACtB,gBAAgB;AAChB,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACzL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,6BAA6B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,iCAAiC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,84FAA84F,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,yBAAyB,EAAE,QAAQ,EAAE,4BAA4B,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,yBAAyB,EAAE,QAAQ,EAAE,4BAA4B,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEF,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,iOAAiO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,8BAA8B,EAAE,QAAQ,EAAE,kCAAkC,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;AACl0I;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,UAAU,EAAE,CAAC;AACvI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,iCAAiC,EAAE,OAAO,EAAE;AAC3E,wBAAwB,YAAY;AACpC,wBAAwB,gBAAgB;AACxC,wBAAwB,kBAAkB;AAC1C,wBAAwB,sBAAsB;AAC9C,wBAAwB,yBAAyB;AACjD,wBAAwB,yBAAyB;AACjD,wBAAwB,eAAe;AACvC,wBAAwB,8BAA8B;AACtD,qBAAqB,EAAE,QAAQ,EAAE,84FAA84F,EAAE;AACj7F,SAAS,CAAC,EAAE,CAAC;;ACrID,MAAC,oBAAoB,GAAG;AACpC,IAAI;AACJ,QAAQ,IAAI,EAAE,EAAE;AAChB,QAAQ,SAAS,EAAE,4BAA4B;AAC/C,KAAK;AACL,IAAI;AACJ,QAAQ,IAAI,EAAE,gBAAgB;AAC9B,QAAQ,SAAS,EAAE,6BAA6B;AAChD,KAAK;AACL;;ACAO,MAAM,0BAA0B,CAAC;AACxC,IAAI,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9E,IAAI,SAAS,GAAG,IAAI;AACpB,IAAI,MAAM,GAAG,MAAM,EAAE;AACrB,IAAI,IAAI,GAAG,MAAM,EAAE;AACnB,IAAI,IAAI,GAAG,MAAM,EAAE;AACnB,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AACxC,IAAI;AACJ,IAAI,MAAM,GAAG;AACb,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AACtC,IAAI;AACJ,IAAI,MAAM,GAAG;AACb,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AACtC,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACpL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,0BAA0B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,8BAA8B,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,0oBAA0oB,EAAE,MAAM,EAAE,CAAC,sBAAsB,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,sFAAsF,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;AACt1D;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,UAAU,EAAE,CAAC;AACpI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,8BAA8B,EAAE,OAAO,EAAE;AACxE,wBAAwB,cAAc;AACtC,wBAAwB,eAAe;AACvC,wBAAwB,kBAAkB;AAC1C,wBAAwB,mBAAmB;AAC3C,wBAAwB,uBAAuB;AAC/C,wBAAwB,aAAa;AACrC,wBAAwB,iBAAiB;AACzC,qBAAqB,EAAE,QAAQ,EAAE,0oBAA0oB,EAAE,MAAM,EAAE,CAAC,sBAAsB,CAAC,EAAE;AAC/sB,SAAS,CAAC,EAAE,CAAC;;ACzBN,MAAM,6BAA6B,CAAC;AAC3C,IAAI,OAAO,GAAG;AACd,QAAQ,EAAE,EAAE,EAAE;AACd,QAAQ,IAAI,EAAE,EAAE;AAChB,QAAQ,MAAM,EAAE,EAAE;AAClB,KAAK;AACL,IAAI,SAAS,GAAG,IAAI;AACpB,IAAI,kBAAkB,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;AACvC,IAAI,MAAM,GAAG,MAAM,EAAE;AACrB,IAAI,IAAI,GAAG,MAAM,EAAE;AACnB,IAAI,MAAM,GAAG,IAAI;AACjB,IAAI,MAAM,GAAG,MAAM,EAAE;AACrB,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAC1B,IAAI;AACJ,IAAI,MAAM,GAAG;AACb,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AACpC,IAAI;AACJ,IAAI,gBAAgB,CAAC,KAAK,EAAE;AAC5B,QAAQ,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,IAAI,EAAE;AAChD,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC;AAC1G,QAAQ,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE;AAC9B,YAAY,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC7D,QAAQ;AACR,QAAQ,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE;AAC/B,IAAI;AACJ,IAAI,WAAW,CAAC,KAAK,EAAE;AACvB,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC;AAC3F,YAAY,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AACjD,QAAQ;AACR,IAAI;AACJ,IAAI,SAAS,GAAG;AAChB,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AACtC,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACvL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,6BAA6B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,kCAAkC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,83CAA83C,EAAE,MAAM,EAAE,CAAC,8BAA8B,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEF,IAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,mBAAmB,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,EAAE,CAAC,iBAAiB,EAAE,uBAAuB,EAAE,+BAA+B,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,iCAAiC,CAAC,EAAE,OAAO,EAAE,CAAC,sBAAsB,CAAC,EAAE,QAAQ,EAAE,CAAC,cAAc,EAAE,iBAAiB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,wEAAwE,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,iOAAiO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,oBAAoB,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,8CAA8C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,8MAA8M,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,0FAA0F,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,qDAAqD,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,wDAAwD,EAAE,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,yHAAyH,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,EAAE,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;AACtwJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,UAAU,EAAE,CAAC;AACvI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,kCAAkC,EAAE,OAAO,EAAE,CAAC,cAAc,EAAE,eAAe,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,83CAA83C,EAAE,MAAM,EAAE,CAAC,8BAA8B,CAAC,EAAE;AACpnD,SAAS,CAAC,EAAE,CAAC;;ACrCN,MAAM,2BAA2B,SAAS,aAAa,CAAC;AAC/D,IAAI,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AAC3C,IAAI,QAAQ,GAAG,EAAE;AACjB,IAAI,gBAAgB,GAAG,EAAE;AACzB,IAAI,gBAAgB;AACpB,IAAI,SAAS,GAAG,IAAI;AACpB,IAAI,GAAG,GAAG,KAAK;AACf,IAAI,uBAAuB,GAAG,KAAK;AACnC,IAAI,cAAc,GAAG,IAAI,WAAW,EAAE;AACtC,IAAI,kBAAkB,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;AACvC,IAAI,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC;AACrD,IAAI,eAAe,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACjG,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,gBAAgB,EAAE;AAC/B,IAAI;AACJ,IAAI,gBAAgB,GAAG;AACvB,QAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AAC/C,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE;AAC9C,gBAAgB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,WAAW,KAAK;AACpH,oBAAoB,OAAO,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC;AAChE,gBAAgB,CAAC,CAAC,CAAC;AACnB,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;AAC5B,QAAQ,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;AAC1D,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5C,gBAAgB,IAAI,CAAC,GAAG,GAAG,KAAK;AAChC,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,eAAe,CAAC,OAAO,EAAE;AAC7B,QAAQ,MAAM,QAAQ,GAAG;AACzB,YAAY,KAAK,EAAE,cAAc;AACjC,YAAY,UAAU,EAAE,QAAQ;AAChC,YAAY,WAAW,EAAE,SAAS;AAClC,YAAY,IAAI,EAAE;AAClB,gBAAgB,OAAO,EAAE,OAAO;AAChC,gBAAgB,MAAM,EAAE,KAAK;AAC7B,aAAa;AACb,YAAY,SAAS,EAAE,6BAA6B;AACpD,SAAS;AACT,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC;AACzC,QAAQ,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC;AACjD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,GAAG,EAAE;AACzB,oBAAoB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC;AAC1E,wBAAwB,IAAI,EAAE,CAAC,GAAG,KAAK;AACvC,4BAA4B,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM;AAC5D,wBAAwB,CAAC;AACzB,qBAAqB,CAAC;AACtB,gBAAgB;AAChB,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,eAAe,CAAC,OAAO,EAAE;AAC7B,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;AACxE,YAAY,KAAK,EAAE,OAAO;AAC1B,YAAY,IAAI,EAAE;AAClB,gBAAgB,KAAK,EAAE,gBAAgB;AACvC,gBAAgB,OAAO,EAAE,CAAC,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;AAC3D,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK;AACtD,YAAY,IAAI,MAAM,EAAE;AACxB,gBAAgB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACjE,oBAAoB,IAAI,EAAE,CAAC,GAAG,KAAK;AACnC,wBAAwB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC;AAC/F,wBAAwB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AACtD,wBAAwB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACxE,oBAAoB,CAAC;AACrB,iBAAiB,CAAC;AAClB,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,mBAAmB,CAAC,WAAW,EAAE;AACrC,QAAQ,MAAM,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpJ,QAAQ,OAAO;AACf,cAAc,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE,WAAW;AAClE,cAAc,oBAAoB,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC;AACjE,IAAI;AACJ,IAAI,aAAa,CAAC,WAAW,EAAE,WAAW,EAAE;AAC5C,QAAQ,IAAI,mBAAmB,GAAG,EAAE;AACpC,QAAQ,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,EAAE;AACrD,QAAQ,MAAM,2BAA2B,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAClI,QAAQ,IAAI,2BAA2B,CAAC,MAAM,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAChF,YAAY,mBAAmB,GAAG,2BAA2B;AAC7D,QAAQ;AACR,aAAa;AACb,YAAY,mBAAmB,GAAG,WAAW;AAC7C,QAAQ;AACR,QAAQ,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC;AACjE,IAAI;AACJ,IAAI,MAAM,CAAC,OAAO,EAAE;AACpB,QAAQ,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC;AAC5F,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;AACxB,YAAY,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAClD,YAAY,IAAI,CAAC,WAAW,EAAE;AAC9B,QAAQ;AACR,IAAI;AACJ,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,QAAQ,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AACpD,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,IAAI;AACJ,IAAI,mBAAmB,CAAC,WAAW,EAAE;AACrC,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC;AACrF,QAAQ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AACnD,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE;AACpD,QAAQ,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC1C,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACvL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,2BAA2B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,+BAA+B,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,cAAc,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,61BAA61B,EAAE,MAAM,EAAE,CAAC,mCAAmC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEL,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,qBAAqB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,iOAAiO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,0BAA0B,EAAE,QAAQ,EAAE,8BAA8B,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,6BAA6B,EAAE,QAAQ,EAAE,kCAAkC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;AACjrF;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,UAAU,EAAE,CAAC;AACrI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,+BAA+B,EAAE,OAAO,EAAE;AACzE,wBAAwB,gBAAgB;AACxC,wBAAwB,WAAW;AACnC,wBAAwB,kBAAkB;AAC1C,wBAAwB,cAAc;AACtC,wBAAwB,aAAa;AACrC,wBAAwB,qBAAqB;AAC7C,wBAAwB,mBAAmB;AAC3C,wBAAwB,eAAe;AACvC,wBAAwB,eAAe;AACvC,wBAAwB,gBAAgB;AACxC,wBAAwB,0BAA0B;AAClD,wBAAwB,6BAA6B;AACrD,qBAAqB,EAAE,QAAQ,EAAE,61BAA61B,EAAE,MAAM,EAAE,CAAC,mCAAmC,CAAC,EAAE;AAC/6B,SAAS,CAAC,EAAE,CAAC;;AC7JN,MAAM,4BAA4B,CAAC;AAC1C,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACtL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,4BAA4B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,gCAAgC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,uCAAuC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;AACnU;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,UAAU,EAAE,CAAC;AACtI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,gCAAgC,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,uCAAuC,EAAE;AAC7I,SAAS,CAAC,EAAE,CAAC;;ACRD,MAAC,mBAAmB,GAAG;AACnC,IAAI;AACJ,QAAQ,IAAI,EAAE,EAAE;AAChB,QAAQ,SAAS,EAAE,2BAA2B;AAC9C,KAAK;AACL,IAAI;AACJ,QAAQ,IAAI,EAAE,KAAK;AACnB,QAAQ,SAAS,EAAE,4BAA4B;AAC/C,KAAK;AACL;;ACNO,MAAM,0BAA0B,CAAC;AACxC,IAAI,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1E,IAAI,MAAM,GAAG,mBAAmB;AAChC,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM;AAC3B,QAAQ,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7C,IAAI,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACtD,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACpL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,0BAA0B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,8BAA8B,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,qmEAAqmE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,yBAAyB,EAAE,QAAQ,EAAE,4BAA4B,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,sBAAsB,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC;AAC1qF;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,UAAU,EAAE,CAAC;AACpI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,8BAA8B,EAAE,OAAO,EAAE,CAAC,aAAa,EAAE,kBAAkB,EAAE,yBAAyB,CAAC,EAAE,QAAQ,EAAE,qmEAAqmE,EAAE;AACzvE,SAAS,CAAC,EAAE,CAAC;;ACTN,MAAM,iCAAiC,SAAS,aAAa,CAAC;AACrE,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,MAAM,GAAG,CAAC;AACd,IAAI,KAAK,GAAG;AACZ,QAAQ;AACR,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,IAAI,EAAE,WAAW;AAC7B,SAAS;AACT,QAAQ;AACR,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,MAAM,EAAE,SAAS;AAC7B,SAAS;AACT,QAAQ;AACR,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,MAAM,EAAE,UAAU;AAC9B,SAAS;AACT,QAAQ;AACR,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,MAAM,EAAE,UAAU;AAC9B,SAAS;AACT,QAAQ;AACR,YAAY,IAAI,EAAE,WAAW;AAC7B,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,MAAM,EAAE,WAAW;AAC/B,SAAS;AACT,KAAK;AACL,IAAI,aAAa,GAAG;AACpB,QAAQ,IAAI,EAAE,EAAE;AAChB,QAAQ,MAAM,EAAE,EAAE;AAClB,KAAK;AACL,IAAI,MAAM,GAAG,EAAE;AACf,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK;AACzD,YAAY,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC;AAChF,YAAY,IAAI,MAAM,EAAE;AACxB,gBAAgB,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE;AAChE,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM;AAChD,YAAY;AACZ,YAAY,IAAI,CAAC,UAAU,EAAE;AAC7B,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,UAAU,GAAG;AACjB,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,IAAI,EAAE,gBAAgB;AAClC,SAAS;AACT,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC;AAC1E,QAAQ,IAAI,YAAY,EAAE;AAC1B,YAAY,OAAO,CAAC,QAAQ,CAAC,GAAG,YAAY;AAC5C,QAAQ;AACR,QAAQ,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;AAClE,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI;AACtC,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,oBAAoB,CAAC,OAAO,EAAE;AAClC,QAAQ,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO;AACrC,aAAa,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,SAAS;AACzE,aAAa,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK;AACnC,YAAY,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACpC,QAAQ,CAAC;AACT,aAAa,IAAI,CAAC,GAAG,CAAC;AACtB,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iCAAiC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAC7L,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,iCAAiC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,sCAAsC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,utBAAutB,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAED,IAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,0BAA0B,EAAE,QAAQ,EAAE,8BAA8B,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC;AAC/5D;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iCAAiC,EAAE,UAAU,EAAE,CAAC;AAC3I,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,sCAAsC,EAAE,OAAO,EAAE;AAChF,wBAAwB,YAAY;AACpC,wBAAwB,gBAAgB;AACxC,wBAAwB,aAAa;AACrC,wBAAwB,YAAY;AACpC,wBAAwB,YAAY;AACpC,wBAAwB,0BAA0B;AAClD,wBAAwB,cAAc;AACtC,wBAAwB;AACxB,qBAAqB,EAAE,QAAQ,EAAE,utBAAutB,EAAE;AAC1vB,SAAS,CAAC,EAAE,CAAC;;AClFN,MAAM,kCAAkC,SAAS,aAAa,CAAC;AACtE,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AAC3C,IAAI,KAAK;AACT,IAAI,IAAI,GAAG,EAAE;AACb,IAAI,QAAQ;AACZ,IAAI,MAAM,GAAG,mBAAmB;AAChC,IAAI,gBAAgB,GAAG,gBAAgB;AACvC,IAAI,KAAK;AACT,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,IAAI;AACJ,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACzD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI;AACrC,gBAAgB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ;AAC7E,gBAAgB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AACvD,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,WAAW,CAAC,UAAU,EAAE;AAC5B,QAAQ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC;AACvD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI;AACxC,gBAAgB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC9D,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,kBAAkB,CAAC,OAAO,EAAE;AAChC,QAAQ,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;AAClE,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,KAAK,GAAG,GAAG;AAChC,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;AAClE,YAAY,KAAK,EAAE,OAAO;AAC1B,YAAY,IAAI,EAAE;AAClB,gBAAgB,KAAK,EAAE,cAAc;AACrC,gBAAgB,OAAO,EAAE,oBAAoB;AAC7C,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK;AACtD,YAAY,IAAI,MAAM,EAAE;AACxB,gBAAgB,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACpE,oBAAoB,IAAI,EAAE,CAAC,GAAG,KAAK;AACnC,wBAAwB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU;AACtD,wBAAwB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC;AAC7D,oBAAoB,CAAC;AACrB,oBAAoB,KAAK,EAAE,CAAC,CAAC,KAAK;AAClC,wBAAwB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;AAC5D,oBAAoB,CAAC;AACrB,iBAAiB,CAAC;AAClB,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;AAClE,YAAY,KAAK,EAAE,OAAO;AAC1B,YAAY,IAAI,EAAE;AAClB,gBAAgB,OAAO,EAAE,EAAE;AAC3B,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK;AACtD,YAAY,IAAI,MAAM,EAAE;AACxB,gBAAgB,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC;AAChG,oBAAoB,IAAI,EAAE,CAAC,GAAG,KAAK;AACnC,wBAAwB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU;AACtD,wBAAwB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC;AAC7D,oBAAoB,CAAC;AACrB,oBAAoB,KAAK,EAAE,CAAC,CAAC,KAAK;AAClC,wBAAwB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;AAC5D,oBAAoB,CAAC;AACrB,iBAAiB,CAAC;AAClB,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,GAAG,EAAE;AAChB,IAAI,aAAa,GAAG;AACpB,QAAQ,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC;AAClE,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;AAChC,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kCAAkC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAC9L,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,kCAAkC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,uCAAuC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,w+IAAw+I,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,iOAAiO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,sBAAsB,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC;AAC99K;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kCAAkC,EAAE,UAAU,EAAE,CAAC;AAC5I,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,uCAAuC,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,eAAe,CAAC,EAAE,QAAQ,EAAE,w+IAAw+I,EAAE;AAChqJ,SAAS,CAAC,EAAE,CAAC;;ACrGD,MAAC,0BAA0B,GAAG;AAC1C,IAAI;AACJ,QAAQ,IAAI,EAAE,EAAE;AAChB,QAAQ,SAAS,EAAE,iCAAiC;AACpD,KAAK;AACL,IAAI;AACJ,QAAQ,IAAI,EAAE,KAAK;AACnB,QAAQ,SAAS,EAAE,kCAAkC;AACrD,KAAK;AACL;;ACTU,IAAC;AACX,CAAC,UAAU,gBAAgB,EAAE;AAC7B,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;AAC3D,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;AAC3D,CAAC,EAAE,gBAAgB,KAAK,gBAAgB,GAAG,EAAE,CAAC,CAAC;AACxC,MAAM,YAAY,CAAC;AAC1B,IAAI,SAAS,GAAG,IAAI,YAAY,EAAE;AAClC,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;AACvK,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AAC9I;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AACtH,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,UAAU,EAAE,MAAM;AACtC,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACGN,MAAMM,YAAU,GAAG;AAC1B,IAAI,KAAK,EAAE;AACX,QAAQ,SAAS,EAAE,YAAY;AAC/B,KAAK;AACL,IAAI,OAAO,EAAE;AACb,QAAQ,SAAS,EAAE,YAAY;AAC/B,QAAQ,cAAc,EAAE,UAAU;AAClC,QAAQ,aAAa,EAAE,YAAY;AACnC,QAAQ,kBAAkB,EAAE,WAAW;AACvC,KAAK;AACL,CAAC;AACM,MAAM,iBAAiB,CAAC;AAC/B,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC;AAClC,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC3B,IAAI,MAAM,GAAG,MAAM,EAAE;AACrB,IAAI,KAAK,GAAG,MAAM,EAAE;AACpB,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrE,IAAI,YAAY,GAAG,UAAU;AAC7B,IAAI,cAAc,GAAG,YAAY;AACjC,IAAI,UAAU,GAAG,QAAQ,CAAC,MAAM;AAChC,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;AAChE,IAAI,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3D,IAAI,UAAU,GAAG,QAAQ,CAAC,MAAM;AAChC,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;AAC7D,IAAI,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3D,IAAI,UAAU,GAAG,QAAQ,CAAC,MAAM;AAChC,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;AAClE,IAAI,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3D,IAAI,UAAU,GAAG,QAAQ,CAAC,MAAM;AAChC,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC;AACjE,IAAI,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3D,IAAI,KAAK,GAAG,CAAC,QAAQ,CAAC;AACtB,IAAI,MAAM,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC;AAClC,IAAI,OAAO,GAAG,KAAK,CAAC;AACpB,QAAQ,MAAM,EAAE,EAAE;AAClB,QAAQ,IAAI,EAAE,EAAE;AAChB,QAAQ,aAAa,EAAE,EAAE;AACzB,QAAQ,WAAW,EAAE,EAAE;AACvB,QAAQ,WAAW,EAAE,EAAE;AACvB,QAAQ,QAAQ,EAAE,CAAC;AACnB,QAAQ,QAAQ,EAAE,IAAI;AACtB,QAAQ,QAAQ,EAAE,EAAE;AACpB,QAAQ,MAAM,EAAE,EAAE;AAClB,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACxD,IAAI,OAAO,GAAG,IAAI,IAAI,EAAE;AACxB,IAAI,WAAW,GAAG;AAClB;AACA,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE;AACvC,YAAY,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE;AACrC,gBAAgB,WAAW,EAAE;AAC7B,oBAAoB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI;AAC/C,oBAAoB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;AAC3C,oBAAoB,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI;AACzD,oBAAoB,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI;AACzD,oBAAoB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;AACnD,oBAAoB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;AACnD,iBAAiB;AACjB,gBAAgB,mBAAmB,EAAE,OAAO;AAC5C,aAAa,CAAC;AACd,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK;AACrD,YAAY,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;AAC7B,gBAAgB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC9C,gBAAgB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;AAC1C,gBAAgB,aAAa,EAAE,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE;AAC5D,gBAAgB,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE;AACxD,gBAAgB,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE;AACxD,gBAAgB,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC;AACtE,gBAAgB,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI;AACzE,gBAAgB,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE;AAClD,gBAAgB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;AAC1D,gBAAgB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;AAC9D,aAAa,CAAC;AACd,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AAC3B,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM;AAClC,YAAY,OAAO;AACnB,gBAAgB,MAAM,EAAE,EAAE;AAC1B,gBAAgB,IAAI,EAAE,EAAE;AACxB,gBAAgB,aAAa,EAAE,EAAE;AACjC,gBAAgB,WAAW,EAAE,EAAE;AAC/B,gBAAgB,WAAW,EAAE,EAAE;AAC/B,gBAAgB,QAAQ,EAAE,CAAC;AAC3B,gBAAgB,QAAQ,EAAE,IAAI;AAC9B,gBAAgB,QAAQ,EAAE,EAAE;AAC5B,gBAAgB,MAAM,EAAE,EAAE;AAC1B,gBAAgB,IAAI,EAAE,CAAC;AACvB,gBAAgB,KAAK,EAAE,EAAE;AACzB,aAAa;AACb,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,QAAQ,GAAG;AACf,QAAQ,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AAC5H,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;AACzC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE;AACjC,YAAY,WAAW,EAAE,eAAe;AACxC,YAAY,mBAAmB,EAAE,OAAO;AACxC,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAC3K,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,iBAAiB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,8BAA8B,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,SAAS,EAAE;AACnhB,YAAY;AACZ,gBAAgB,OAAO,EAAE,WAAW;AACpC,gBAAgB,QAAQ,EAAE,iBAAiB;AAC3C,gBAAgB,IAAI,EAAE,CAAC,eAAe,CAAC;AACvC,aAAa;AACb,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAEA,YAAU,EAAE;AAC/D,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,k4IAAk4I,EAAE,MAAM,EAAE,CAAC,4IAA4I,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEN,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,iOAAiO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,oBAAoB,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,+CAA+C,EAAE,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,yHAAyH,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,EAAE,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEE,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,kBAAkB,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,8BAA8B,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,wBAAwB,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,EAAE,0BAA0B,CAAC,EAAE,OAAO,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,mBAAmB,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,8MAA8M,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,qDAAqD,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,kBAAkB,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,oBAAoB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;AAC1wP;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC;AAC3H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,8BAA8B,EAAE,OAAO,EAAE;AACxE,wBAAwB,YAAY;AACpC,wBAAwB,eAAe;AACvC,wBAAwB,kBAAkB;AAC1C,wBAAwB,cAAc;AACtC,wBAAwB,eAAe;AACvC,wBAAwB,eAAe;AACvC,wBAAwB,WAAW;AACnC,wBAAwB,mBAAmB;AAC3C,qBAAqB,EAAE,SAAS,EAAE;AAClC,wBAAwB;AACxB,4BAA4B,OAAO,EAAE,WAAW;AAChD,4BAA4B,QAAQ,EAAE,iBAAiB;AACvD,4BAA4B,IAAI,EAAE,CAAC,eAAe,CAAC;AACnD,yBAAyB;AACzB,wBAAwB,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAEE,YAAU,EAAE;AAC3E,qBAAqB,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,k4IAAk4I,EAAE,MAAM,EAAE,CAAC,4IAA4I,CAAC,EAAE;AACpmJ,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC/IhC,MAAM,uBAAuB,SAAS,aAAa,CAAC;AAC3D,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC;AAC/B,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvE,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF,IAAI,KAAK,GAAG,EAAE;AACd,IAAI,QAAQ,GAAG,IAAI;AACnB,IAAI,SAAS,GAAG,SAAS,CAAC,WAAW,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1F,IAAI,WAAW,GAAG,CAAC;AACnB,IAAI,MAAM,GAAG,KAAK;AAClB,IAAI,OAAO,GAAG,MAAM,CAAC;AACrB,QAAQ,MAAM,EAAE,EAAE;AAClB,QAAQ,IAAI,EAAE,EAAE;AAChB,QAAQ,aAAa,EAAE,EAAE;AACzB,QAAQ,WAAW,EAAE,EAAE;AACvB,QAAQ,WAAW,EAAE,EAAE;AACvB,QAAQ,QAAQ,EAAE,CAAC;AACnB,QAAQ,QAAQ,EAAE,IAAI;AACtB,QAAQ,QAAQ,EAAE,EAAE;AACpB,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACxD,IAAI,QAAQ,GAAG,EAAE;AACjB,IAAI,YAAY,GAAG;AACnB,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACnC,IAAI;AACJ,IAAI,aAAa,GAAG;AACpB;AACA;AACA,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,CAAC;AAC7C,IAAI;AACJ,IAAI,UAAU,GAAG;AACjB,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3B,YAAY,IAAI,CAAC,QAAQ,GAAG,KAAK;AACjC,YAAY,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;AAC3D,QAAQ;AACR,aAAa;AACb,YAAY,IAAI,CAAC,QAAQ,GAAG,IAAI;AAChC,YAAY,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;AAC3D,QAAQ;AACR,IAAI;AACJ,IAAI,YAAY,GAAG;AACnB,QAAQ,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACzC,IAAI;AACJ,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,QAAQ,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AACnK,QAAQ,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;AACvB,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE;AACjC,YAAY,WAAW,EAAE,EAAE;AAC3B,YAAY,mBAAmB,EAAE,OAAO;AACxC,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,YAAY,CAAC,KAAK,EAAE;AACxB,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE;AACjC,YAAY,WAAW,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;AACzD,YAAY,mBAAmB,EAAE,OAAO;AACxC,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE;AACjC,YAAY,WAAW,EAAE,EAAE;AAC3B;AACA,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACnL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,uBAAuB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,0BAA0B,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,0vCAA0vC,EAAE,MAAM,EAAE,CAAC,iZAAiZ,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEN,IAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,OAAO,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,sFAAsF,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,8BAA8B,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC;AAC5uG;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,UAAU,EAAE,CAAC;AACjI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,0BAA0B,EAAE,OAAO,EAAE,CAAC,mBAAmB,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,SAAS,EAAE,iBAAiB,CAAC,EAAE,QAAQ,EAAE,0vCAA0vC,EAAE,MAAM,EAAE,CAAC,iZAAiZ,CAAC,EAAE;AACz0D,SAAS,CAAC,EAAE,CAAC;;ACvEN,MAAM,wBAAwB,CAAC;AACtC,IAAI,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChF,IAAI,cAAc,GAAG,MAAM,EAAE;AAC7B,IAAI,KAAK,GAAG,MAAM,EAAE;AACpB,IAAI,OAAO,GAAG,MAAM,EAAE;AACtB,IAAI,cAAc,GAAG,QAAQ,CAAC,MAAM;AACpC,QAAQ,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AACjD,IAAI,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/D,IAAI,gBAAgB,CAAC,QAAQ,EAAE;AAC/B,QAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC1C,IAAI;AACJ,IAAI,OAAO,CAAC,QAAQ,EAAE;AACtB,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;AACjC,IAAI;AACJ,IAAI,SAAS,CAAC,QAAQ,EAAE;AACxB,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;AACnC,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAClL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,wBAAwB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,2BAA2B,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,khBAAkhB,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEF,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,iOAAiO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;AACtgD;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,UAAU,EAAE,CAAC;AAClI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,2BAA2B,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,CAAC,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,khBAAkhB,EAAE;AACzsB,SAAS,CAAC,EAAE,CAAC;;AC1BN,MAAM,qBAAqB,CAAC;AACnC,IAAI,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChF,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAC/K,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,qBAAqB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,s/DAAs/D,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,yBAAyB,EAAE,QAAQ,EAAE,4BAA4B,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,sBAAsB,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC;AACxjF;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,UAAU,EAAE,CAAC;AAC/H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,wBAAwB,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,kBAAkB,EAAE,yBAAyB,CAAC,EAAE,QAAQ,EAAE,s/DAAs/D,EAAE;AACnoE,SAAS,CAAC,EAAE,CAAC;;ACZb;AAGO,MAAM,iBAAiB,CAAC;AAC/B,IAAI,SAAS,CAAC,KAAK,EAAE;AACrB,QAAQ,IAAI,CAAC,KAAK;AAClB,YAAY,OAAO,EAAE;AACrB,QAAQ,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;AACpC,QAAQ,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE;AAChC;AACA,QAAQ,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACjC,QAAQ,IAAI,IAAI,IAAI,KAAK,EAAE;AAC3B,YAAY,OAAO,KAAK;AACxB,QAAQ;AACR,QAAQ,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;AAChD,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,KAAK,EAAE,OAAO;AAC1B,YAAY,GAAG,EAAE,SAAS;AAC1B,SAAS,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;AACvB,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;AACtK,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;AACpK;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC;AAC3H,YAAY,IAAI,EAAE,IAAI;AACtB,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,IAAI,EAAE,eAAe;AACzC,oBAAoB,UAAU,EAAE,IAAI;AACpC,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACzBN,MAAM,wBAAwB,CAAC;AACtC,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,gBAAgB,EAAE;AAC/B,IAAI;AACJ,IAAI,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChF,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC5E,IAAI,cAAc;AAClB,IAAI,eAAe;AACnB,IAAI,YAAY,GAAG,QAAQ,CAAC,MAAM;AAClC,QAAQ,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/C,IAAI,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7D,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM;AAC5B,QAAQ,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE;AAChD,IAAI,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvD,IAAI,aAAa,GAAG,QAAQ,CAAC,MAAM;AACnC,QAAQ,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE;AACvD,IAAI,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9D,IAAI,gBAAgB,GAAG;AACvB,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK;AAC3C,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,SAAS,EAAE;AAChD,YAAY,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;AAChE,YAAY,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AACvE,QAAQ;AACR,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,QAAQ,EAAE;AAC/C,YAAY,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAClD,YAAY,IAAI,CAAC,eAAe,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AACzD,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAClL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,wBAAwB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,2BAA2B,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,2sCAA2sC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;AAC33D;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,UAAU,EAAE,CAAC;AAClI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,2BAA2B,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,iBAAiB,CAAC,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,2sCAA2sC,EAAE;AACv3C,SAAS,CAAC,EAAE,CAAC;;AChCN,MAAM,qBAAqB,CAAC;AACnC,IAAI,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChF,IAAI,IAAI,GAAG,MAAM,EAAE;AACnB,IAAI,UAAU,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF,IAAI,MAAM,CAAC,QAAQ,EAAE;AACrB,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;AAChC,IAAI;AACJ,IAAI,OAAO,GAAG,EAAE;AAChB,IAAI,MAAM,GAAG,EAAE;AACf,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAC/K,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,qBAAqB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,iBAAiB,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,u5CAAu5C,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,sFAAsF,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;AAC19E;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,UAAU,EAAE,CAAC;AAC/H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,wBAAwB,EAAE,OAAO,EAAE,CAAC,eAAe,EAAE,aAAa,EAAE,YAAY,CAAC,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE;AAC/J,wBAAwB,EAAE,EAAE,wBAAwB;AACpD,qBAAqB,EAAE,QAAQ,EAAE,u5CAAu5C,EAAE;AAC17C,SAAS,CAAC,EAAE,CAAC;;ACpBN,MAAM,wBAAwB,CAAC;AACtC,IAAI,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9E,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1E,IAAI,QAAQ,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF,IAAI,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC/C,IAAI,eAAe,CAAC,EAAE,EAAE;AACxB,QAAQ,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,EAAE,CAAC;AAChD,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAClL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,wBAAwB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,2BAA2B,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,y0BAAy0B,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;AACnpD;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,UAAU,EAAE,CAAC;AAClI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,2BAA2B,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,kBAAkB,CAAC,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,y0BAAy0B,EAAE;AACr+B,SAAS,CAAC,EAAE,CAAC;;ACbN,MAAM,sBAAsB,CAAC;AACpC,IAAI,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC;AACpC,IAAI,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1E,IAAI,QAAQ,GAAG,QAAQ,CAAC,MAAM;AAC9B,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,KAAK,qBAAqB,CAAC,OAAO;AACnE,YAAY;AACZ,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,iDAAiD,CAAC;AAC/F,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;AAC/B,YAAY,OAAO,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7G,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC;AACpB,IAAI,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACzD,IAAI,OAAO,GAAG,QAAQ,CAAC,MAAM;AAC7B,QAAQ,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,KAAK,qBAAqB,CAAC,OAAO;AACtE,IAAI,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACxD,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAChL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,sBAAsB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,sbAAsb,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;AACx0B;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,CAAC;AAChI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,yBAAyB,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,sbAAsb,EAAE;AACrhB,SAAS,CAAC,EAAE,CAAC;;AChBN,MAAM,8BAA8B,CAAC;AAC5C,IAAI,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;AACtH,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC5E,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC5E,IAAI,SAAS,GAAG,MAAM,EAAE;AACxB,IAAI,UAAU,GAAG,MAAM,EAAE;AACzB,IAAI,WAAW,GAAG,EAAE;AACpB,IAAI,YAAY,CAAC,QAAQ,EAAE;AAC3B,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;AACtC,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACxL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,8BAA8B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,kCAAkC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,qsCAAqsC,EAAE,MAAM,EAAE,CAAC,0DAA0D,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,iOAAiO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,6BAA6B,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,6CAA6C,EAAE,MAAM,EAAE,CAAC,sBAAsB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,4BAA4B,CAAC,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;AAC//G;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,UAAU,EAAE,CAAC;AACxI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,kCAAkC,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,CAAC,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,qsCAAqsC,EAAE,MAAM,EAAE,CAAC,0DAA0D,CAAC,EAAE;AACz8C,SAAS,CAAC,EAAE,CAAC;;ACpBN,MAAM,qBAAqB,CAAC;AACnC,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1E,IAAI,MAAM,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9E,IAAI,QAAQ,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF,IAAI,QAAQ,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAC/K,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,qBAAqB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,kCAAkC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,o8BAAo8B,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEF,IAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;AACjpE;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,UAAU,EAAE,CAAC;AAC/H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,kCAAkC,EAAE,OAAO,EAAE,CAAC,mBAAmB,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,o8BAAo8B,EAAE;AAClkC,SAAS,CAAC,EAAE,CAAC;;ACfN,MAAM,kBAAkB,CAAC;AAChC,IAAI,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACpF,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAC5K,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,kBAAkB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,8BAA8B,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE,iBAAiB,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,2UAA2U,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACnrB;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC;AAC5H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,8BAA8B,EAAE,QAAQ,EAAE,2UAA2U,EAAE;AACtZ,SAAS,CAAC,EAAE,CAAC;;ACPb,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACjD,MAAM,MAAM,GAAG;AACf,IAAI,CAAC,EAAE,OAAO;AACd,IAAI,CAAC,EAAE,SAAS;AAChB,IAAI,CAAC,EAAE,SAAS;AAChB,IAAI,CAAC,EAAE,SAAS;AAChB,IAAI,CAAC,EAAE,SAAS;AAChB,IAAI,CAAC,EAAE,SAAS;AAChB,IAAI,CAAC,EAAE,QAAQ;AACf,CAAC;AACD,MAAM,MAAM,GAAG;AACf,IAAI,CAAC,EAAE,SAAS;AAChB,IAAI,CAAC,EAAE,SAAS;AAChB,IAAI,CAAC,EAAE,SAAS;AAChB,IAAI,CAAC,EAAE,SAAS;AAChB,IAAI,CAAC,EAAE,SAAS;AAChB,IAAI,CAAC,EAAE,SAAS;AAChB,IAAI,CAAC,EAAE,SAAS;AAChB,CAAC;AACD,SAAS,aAAa,CAAC,CAAC,EAAE;AAC1B,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AACpB,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,QAAQ,OAAO,GAAG;AAClB,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,QAAQ,OAAO,GAAG;AAClB,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,QAAQ,OAAO,GAAG;AAClB,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,QAAQ,OAAO,GAAG;AAClB,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,QAAQ,OAAO,GAAG;AAClB,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,QAAQ,OAAO,GAAG;AAClB,IAAI,OAAO,GAAG;AACd;AACO,MAAM,QAAQ,CAAC;AACtB;AACA,IAAI,YAAY,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACtF,IAAI,cAAc,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC1F,IAAI,YAAY,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrF;AACA,IAAI,KAAK,GAAG,GAAG;AACf,IAAI,WAAW,GAAG,EAAE;AACpB,IAAI,OAAO,GAAG,EAAE;AAChB,IAAI,SAAS,GAAG,EAAE;AAClB,IAAI,IAAI,GAAG,EAAE;AACb,IAAI,IAAI,GAAG,GAAG,CAAC;AACf,IAAI,IAAI,GAAG,EAAE,CAAC;AACd,IAAI,IAAI,GAAG,CAAC;AACZ;AACA,IAAI,SAAS,GAAG,GAAG,CAAC;AACpB,IAAI,SAAS,GAAG,GAAG;AACnB,IAAI,UAAU,GAAG,EAAE,CAAC;AACpB,IAAI,GAAG,GAAG,EAAE,CAAC;AACb;AACA,IAAI,MAAM,GAAG,GAAG;AAChB,IAAI,MAAM,GAAG,EAAE;AACf,IAAI,MAAM,GAAG,GAAG;AAChB,IAAI,cAAc,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,GAAG,EAAE;AACjF,IAAI,WAAW,GAAG,IAAI,CAAC,cAAc,GAAG,EAAE;AAC1C,IAAI,aAAa,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM;AAClD;AACA,IAAI,WAAW,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE;AAChC,IAAI,IAAI,cAAc,GAAG;AACzB,QAAQ,OAAO,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACnE,IAAI;AACJ;AACA,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,cAAc,GAAG,EAAE;AACvC,IAAI;AACJ;AACA,IAAI,KAAK,GAAG,KAAK;AACjB,IAAI,MAAM,GAAG,MAAM;AACnB,IAAI,MAAM,GAAG,MAAM;AACnB,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,WAAW;AAC/B,IAAI;AACJ,IAAI,IAAI,IAAI,GAAG;AACf,QAAQ,OAAO,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU;AACnD,IAAI,CAAC;AACL;AACA,IAAI,MAAM,CAAC,CAAC,EAAE;AACd,QAAQ,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,GAAG,EAAE;AACrD,IAAI;AACJ;AACA,IAAI,MAAM,CAAC,CAAC,EAAE;AACd;AACA,QAAQ,OAAO,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU;AACnD,IAAI;AACJ,IAAI,IAAI,CAAC,CAAC,EAAE;AACZ,QAAQ,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACtD,IAAI;AACJ,IAAI,YAAY,CAAC,CAAC,EAAE;AACpB,QAAQ,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG;AACnG;AACA;AACA,QAAQ,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACtG,IAAI;AACJ,IAAI,WAAW,CAAC,CAAC,EAAE;AACnB,QAAQ,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI;AACrF;AACA,QAAQ,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACxE,IAAI;AACJ,IAAI,YAAY,CAAC,CAAC,EAAE;AACpB;AACA,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE;AAC9D,IAAI;AACJ;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC;AACzD;AACA,QAAQ,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACjE,IAAI;AACJ;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC;AACtC,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9C,QAAQ,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC;AACrE,QAAQ,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AACtC,IAAI;AACJ,IAAI,UAAU,CAAC,CAAC,EAAE;AAClB,QAAQ,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,IAAI;AACJ;AACA,IAAI,YAAY,CAAC,CAAC,EAAE;AACpB,QAAQ,OAAO,MAAM,CAAC,CAAC,CAAC;AACxB,IAAI;AACJ,IAAI,aAAa,CAAC,CAAC,EAAE;AACrB,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AAClD,IAAI;AACJ;AACA,IAAI,gBAAgB,CAAC,CAAC,EAAE;AACxB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;AACzD,QAAQ,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AAC/C,QAAQ,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AAC/C,QAAQ,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AAChD,QAAQ,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI;AACzD,QAAQ,OAAO,GAAG,IAAI,GAAG,GAAG,MAAM,GAAG,MAAM,CAAC;AAC5C,IAAI;AACJ,IAAI,iBAAiB,CAAC,CAAC,EAAE;AACzB,QAAQ,OAAO,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AACtD,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAClK,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,cAAc,EAAE,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,qzGAAqzG,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;AAC9gI;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AAClH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,qzGAAqzG,EAAE;AAC16G,SAAS,CAAC,EAAE,CAAC;;ACpJN,MAAM,WAAW,CAAC;AACzB,IAAI,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACtE,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACrK,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,uVAAuV,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,cAAc,EAAE,gBAAgB,EAAE,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/yB;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AACrH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,uBAAuB,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,uVAAuV,EAAE;AAChb,SAAS,CAAC,EAAE,CAAC;;ACSN,MAAM,wBAAwB,SAAS,aAAa,CAAC;AAC5D,IAAI,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACrC,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,yBAAyB,GAAG,MAAM,CAAC,yBAAyB,CAAC;AACjE,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa;AAClD,IAAI,QAAQ;AACZ,IAAI,QAAQ,GAAG,EAAE;AACjB,IAAI,QAAQ,GAAG,EAAE;AACjB,IAAI,IAAI;AACR,IAAI,UAAU,GAAG,KAAK;AACtB,IAAI,SAAS,GAAG,KAAK;AACrB,IAAI,cAAc;AAClB,IAAI,QAAQ,GAAG,EAAE;AACjB,IAAI,QAAQ,GAAG,EAAE;AACjB,IAAI,UAAU,GAAG,EAAE;AACnB,IAAI,GAAG;AACP,IAAI,QAAQ,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC5E,IAAI,eAAe;AACnB,IAAI,aAAa,GAAG,MAAM,CAAC,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7F,IAAI,oBAAoB,GAAG,QAAQ,CAAC,MAAM;AAC1C,QAAQ,OAAO,IAAI,CAAC,aAAa,EAAE;AACnC,IAAI,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrE,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM;AACjC,YAAY,OAAO,EAAE;AACrB,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,eAAe,EAAE;AACjD,YAAY,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,qBAAqB,CAAC,GAAG,CAAC;AAC/F,QAAQ;AACR,aAAa;AACb,YAAY,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,qBAAqB,CAAC,OAAO,CAAC;AACnG,QAAQ;AACR,IAAI;AACJ;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,EAAE;AACf,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACtC,gBAAgB,IAAI,CAAC,aAAa,EAAE;AACpC,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC5B,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE,IAAI,EAAE;AACxE,QAAQ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;AACnC,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACpD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI;AACxC,gBAAgB,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACpF,gBAAgB,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;AACrE,gBAAgB,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AAC5C,oBAAoB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ;AAC1D,oBAAoB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3D;AACA;AACA;AACA,gBAAgB;AAChB,gBAAgB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AAC3C,oBAAoB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChE,gBAAgB;AAChB,gBAAgB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACpE,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE;AACnC,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;AAC5C,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC;AACtG,YAAY,IAAI,KAAK,EAAE;AACvB,gBAAgB,OAAO,IAAI;AAC3B,YAAY;AACZ,YAAY,OAAO,IAAI;AACvB,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,gBAAgB,CAAC,MAAM,EAAE;AAC7B,QAAQ,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC;AACjE,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI;AACxC,gBAAgB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ;AAC5C,gBAAgB,IAAI,CAAC,IAAI,GAAG,GAAG;AAC/B,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AAC5D,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE;AAC9C,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,aAAa,GAAG;AACpB,QAAQ,IAAI,CAAC,yBAAyB,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACxE,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE;AAChD,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,MAAM,GAAG;AACb,QAAQ,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACvD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI;AACnC,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,aAAa,GAAG;AACpB,QAAQ,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AAC9D,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,IAAI;AAC1C,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,MAAM,CAAC,CAAC,EAAE;AACd,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AAClC,YAAY,IAAI,IAAI,CAAC,UAAU,EAAE;AACjC,gBAAgB,IAAI,CAAC,kBAAkB,EAAE;AACzC,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,aAAa,EAAE;AACpC,YAAY;AACZ,QAAQ;AACR,aAAa;AACb,YAAY,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC;AACvD,QAAQ;AACR,IAAI;AACJ,IAAI,gBAAgB,CAAC,CAAC,EAAE;AACxB,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;AAC5E,IAAI;AACJ,IAAI,kBAAkB,GAAG;AACzB,QAAQ,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACnE,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,UAAU,GAAG,KAAK;AACvC,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC;AACpD,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,aAAa,GAAG;AACpB,QAAQ,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AAC9D,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,UAAU,GAAG,IAAI;AACtC,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;AAClD,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,CAAC,CAAC,EAAE;AACf,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AAClC,YAAY,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAClE,QAAQ;AACR,aAAa;AACb,YAAY,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC;AACvD,QAAQ;AACR,IAAI;AACJ,IAAI,cAAc,CAAC,CAAC,EAAE;AACtB,QAAQ,MAAM,QAAQ,GAAG,EAAE;AAC3B,QAAQ,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK;AACnD,YAAY,QAAQ,CAAC,IAAI,CAAC;AAC1B,gBAAgB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE;AACvF,gBAAgB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE;AACpF,aAAa,CAAC;AACd,QAAQ,CAAC,CAAC;AACV;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM,kBAAkB,GAAG,CAAC,OAAO,EAAE,QAAQ,KAAK;AAC1D,YAAY,OAAO,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,SAAS,KAAK;AACpD,gBAAgB,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,SAAS,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,SAAS,CAAC,OAAO,CAAC;AAC7H,YAAY,CAAC,CAAC;AACd,QAAQ,CAAC;AACT;AACA,QAAQ,MAAM,yBAAyB,GAAG,CAAC,OAAO,KAAK;AACvD,YAAY,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM;AAClD,gBAAgB,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE;AACrC,gBAAgB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE;AACnC,aAAa,CAAC,CAAC;AACf,QAAQ,CAAC;AACT;AACA,QAAQ,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,KAAK,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACzG,QAAQ,IAAI,CAAC,eAAe,GAAG,eAAe;AAC9C;AACA,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAClL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,wBAAwB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,2BAA2B,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,+rFAA+rF,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,wBAAwB,EAAE,QAAQ,EAAE,2BAA2B,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,wBAAwB,EAAE,QAAQ,EAAE,2BAA2B,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,wBAAwB,EAAE,QAAQ,EAAE,2BAA2B,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,gBAAgB,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,kCAAkC,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,yBAAyB,EAAE,QAAQ,EAAE,4BAA4B,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,yBAAyB,EAAE,QAAQ,EAAE,4BAA4B,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,8BAA8B,EAAE,QAAQ,EAAE,kCAAkC,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,8BAA8B,EAAE,MAAM,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;AAClvJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,UAAU,EAAE,CAAC;AAClI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,2BAA2B,EAAE,OAAO,EAAE;AACrE,wBAAwB,mBAAmB;AAC3C,wBAAwB,uBAAuB;AAC/C,wBAAwB,kBAAkB;AAC1C,wBAAwB,qBAAqB;AAC7C,wBAAwB,sBAAsB;AAC9C,wBAAwB,wBAAwB;AAChD,wBAAwB,wBAAwB;AAChD,wBAAwB,wBAAwB;AAChD,wBAAwB,iBAAiB;AACzC,wBAAwB,qBAAqB;AAC7C,wBAAwB,yBAAyB;AACjD,wBAAwB,yBAAyB;AACjD,wBAAwB,sBAAsB;AAC9C,wBAAwB,8BAA8B;AACtD,wBAAwB,kBAAkB;AAC1C,wBAAwB,WAAW;AACnC,qBAAqB,EAAE,QAAQ,EAAE,+rFAA+rF,EAAE;AACluF,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;ACzNhC,MAAMM,YAAU,GAAG;AAC1B,IAAI,KAAK,EAAE;AACX,QAAQ,SAAS,EAAE,YAAY;AAC/B,KAAK;AACL,IAAI,OAAO,EAAE;AACb,QAAQ,SAAS,EAAE,YAAY;AAC/B,QAAQ,cAAc,EAAE,UAAU;AAClC,QAAQ,aAAa,EAAE,YAAY;AACnC,QAAQ,kBAAkB,EAAE,WAAW;AACvC,KAAK;AACL,CAAC;AACM,MAAM,4BAA4B,CAAC;AAC1C,IAAI,OAAO,GAAG,IAAI,IAAI,EAAE;AACxB,IAAI,OAAO,GAAG,IAAI,IAAI,EAAE;AACxB,IAAI,MAAM,GAAG,MAAM,EAAE;AACrB,IAAI,MAAM,GAAG,MAAM,EAAE;AACrB,IAAI,YAAY,GAAG,KAAK,CAAC;AACzB,QAAQ,IAAI,EAAE,EAAE;AAChB,QAAQ,IAAI,EAAE,EAAE;AAChB,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7D,IAAI,IAAI,GAAG,WAAW;AACtB,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACxD,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACxD,IAAI;AACJ,IAAI,SAAS,GAAG;AAChB,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;AAC7C,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACtL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,4BAA4B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,gCAAgC,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE;AAC9Y,YAAY;AACZ,gBAAgB,OAAO,EAAE,WAAW;AACpC,gBAAgB,QAAQ,EAAE,iBAAiB;AAC3C,gBAAgB,IAAI,EAAE,CAAC,eAAe,CAAC;AACvC,aAAa;AACb,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAEA,YAAU,EAAE;AAC/D,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,ojCAAojC,EAAE,MAAM,EAAE,CAAC,8BAA8B,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEN,IAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,oBAAoB,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,+CAA+C,EAAE,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,yHAAyH,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,EAAE,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,8MAA8M,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,wIAAwI,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,qDAAqD,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,kBAAkB,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,oBAAoB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,mBAAmB,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,kBAAkB,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,8BAA8B,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,wBAAwB,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,EAAE,0BAA0B,CAAC,EAAE,OAAO,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,mBAAmB,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC;AACl0I;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,UAAU,EAAE,CAAC;AACtI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,gCAAgC,EAAE,OAAO,EAAE;AAC1E,wBAAwB,kBAAkB;AAC1C,wBAAwB,cAAc;AACtC,wBAAwB,WAAW;AACnC,wBAAwB,mBAAmB;AAC3C,wBAAwB,eAAe;AACvC,wBAAwB,eAAe;AACvC,wBAAwB,aAAa;AACrC,wBAAwB,eAAe;AACvC,qBAAqB,EAAE,SAAS,EAAE;AAClC,wBAAwB;AACxB,4BAA4B,OAAO,EAAE,WAAW;AAChD,4BAA4B,QAAQ,EAAE,iBAAiB;AACvD,4BAA4B,IAAI,EAAE,CAAC,eAAe,CAAC;AACnD,yBAAyB;AACzB,wBAAwB,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAEC,YAAU,EAAE;AAC3E,qBAAqB,EAAE,QAAQ,EAAE,ojCAAojC,EAAE,MAAM,EAAE,CAAC,8BAA8B,CAAC,EAAE;AACjoC,SAAS,CAAC,EAAE,CAAC;;AChDN,MAAMA,YAAU,GAAG;AAC1B,IAAI,KAAK,EAAE;AACX,QAAQ,SAAS,EAAE,YAAY;AAC/B,KAAK;AACL,IAAI,OAAO,EAAE;AACb,QAAQ,SAAS,EAAE,YAAY;AAC/B,QAAQ,cAAc,EAAE,UAAU;AAClC,QAAQ,aAAa,EAAE,YAAY;AACnC,QAAQ,kBAAkB,EAAE,WAAW;AACvC,KAAK;AACL,CAAC;AACM,MAAM,+BAA+B,SAAS,aAAa,CAAC;AACnE,IAAI,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACrC,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,QAAQ;AACZ,IAAI,OAAO,GAAG,IAAI,IAAI,EAAE;AACxB,IAAI,OAAO,GAAG;AACd,QAAQ,SAAS,EAAE,EAAE;AACrB,QAAQ,QAAQ,EAAE,EAAE;AACpB,QAAQ,KAAK,EAAE,EAAE;AACjB,QAAQ,KAAK,EAAE,EAAE;AACjB,QAAQ,cAAc,EAAE,sBAAsB,CAAC,MAAM;AACrD;AACA,QAAQ,aAAa,EAAE;AACvB,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;AAClC,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;AAClC,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;AAClC,SAAS;AACT,KAAK;AACL,IAAI,sBAAsB,GAAG,QAAQ;AACrC,IAAI,cAAc,GAAG,sBAAsB;AAC3C,IAAI,cAAc,GAAG,qBAAqB;AAC1C,IAAI,eAAe,GAAG,eAAe;AACrC,IAAI,gBAAgB,GAAG,gBAAgB;AACvC,IAAI,mBAAmB,GAAG,mBAAmB;AAC7C,IAAI,SAAS,GAAG,CAAC,gBAAgB,EAAE,OAAO,CAAC;AAC3C,IAAI,eAAe;AACnB,IAAI,YAAY,GAAG,QAAQ,CAAC,MAAM;AAClC,QAAQ,OAAO,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AACjE,IAAI,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7D,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B;AACA,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACpD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI;AACxC,gBAAgB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AACrC,gBAAgB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACpE,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,eAAe,CAAC,KAAK,EAAE;AAC3B,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,KAAK;AAC7C,IAAI;AACJ,IAAI,uBAAuB,CAAC,KAAK,EAAE;AACnC,QAAQ,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC,KAAK;AACjD,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;AAC7E,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,8BAA8B,CAAC;AACzE,YAAY,CAAC;AACb,YAAY,KAAK,EAAE,CAAC,KAAK,KAAK;AAC9B,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACxD,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAC3L,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,+BAA+B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,mCAAmC,EAAE,SAAS,EAAE;AAC1M,YAAY;AACZ,gBAAgB,OAAO,EAAE,WAAW;AACpC,gBAAgB,QAAQ,EAAE,iBAAiB;AAC3C,gBAAgB,IAAI,EAAE,CAAC,eAAe,CAAC;AACvC,aAAa;AACb,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAEA,YAAU,EAAE;AAC/D,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,43NAA43N,EAAE,MAAM,EAAE,CAAC,8BAA8B,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEN,IAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,oBAAoB,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,+CAA+C,EAAE,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,+CAA+C,EAAE,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,8MAA8M,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,mBAAmB,EAAE,QAAQ,EAAE,iGAAiG,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,qDAAqD,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,yHAAyH,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,EAAE,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEE,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,iOAAiO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,kBAAkB,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,8BAA8B,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,wBAAwB,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,EAAE,0BAA0B,CAAC,EAAE,OAAO,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,mBAAmB,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,kBAAkB,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,oBAAoB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,qBAAqB,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,qBAAqB,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,4BAA4B,EAAE,QAAQ,EAAE,gCAAgC,EAAE,MAAM,EAAE,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAEI,EAAE,CAAC,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC;AACpgX;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,UAAU,EAAE,CAAC;AACzI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,mCAAmC,EAAE,OAAO,EAAE;AAC7E,wBAAwB,YAAY;AACpC,wBAAwB,kBAAkB;AAC1C,wBAAwB,kBAAkB;AAC1C,wBAAwB,WAAW;AACnC,wBAAwB,cAAc;AACtC,wBAAwB,eAAe;AACvC,wBAAwB,eAAe;AACvC,wBAAwB,kBAAkB;AAC1C,wBAAwB,eAAe;AACvC,wBAAwB,mBAAmB;AAC3C,wBAAwB,cAAc;AACtC,wBAAwB,4BAA4B;AACpD,wBAAwB,iBAAiB;AACzC,qBAAqB,EAAE,SAAS,EAAE;AAClC,wBAAwB;AACxB,4BAA4B,OAAO,EAAE,WAAW;AAChD,4BAA4B,QAAQ,EAAE,iBAAiB;AACvD,4BAA4B,IAAI,EAAE,CAAC,eAAe,CAAC;AACnD,yBAAyB;AACzB,wBAAwB,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAED,YAAU,EAAE;AAC3E,qBAAqB,EAAE,QAAQ,EAAE,43NAA43N,EAAE,MAAM,EAAE,CAAC,8BAA8B,CAAC,EAAE;AACz8N,SAAS,CAAC,EAAE,CAAC;;ACzGN,MAAMA,YAAU,GAAG;AAC1B,IAAI,KAAK,EAAE;AACX,QAAQ,SAAS,EAAE,YAAY;AAC/B,KAAK;AACL,IAAI,OAAO,EAAE;AACb,QAAQ,SAAS,EAAE,YAAY;AAC/B,QAAQ,cAAc,EAAE,UAAU;AAClC,QAAQ,aAAa,EAAE,YAAY;AACnC,QAAQ,kBAAkB,EAAE,WAAW;AACvC,KAAK;AACL,CAAC;AACM,MAAM,sBAAsB,SAAS,aAAa,CAAC;AAC1D,IAAI,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACrC,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,KAAK,GAAG;AACZ,QAAQ,SAAS,EAAE,EAAE;AACrB,QAAQ,QAAQ,EAAE,EAAE;AACpB,QAAQ,KAAK,EAAE,EAAE;AACjB,QAAQ,KAAK,EAAE,EAAE;AACjB,QAAQ,aAAa,EAAE,EAAE;AACzB,QAAQ,eAAe,EAAE,EAAE;AAC3B,QAAQ,gBAAgB,EAAE,EAAE;AAC5B,QAAQ,mBAAmB,EAAE,EAAE;AAC/B,QAAQ,SAAS,EAAE,EAAE;AACrB,QAAQ,KAAK,EAAE,EAAE;AACjB,QAAQ,MAAM,EAAE,CAAC;AACjB,KAAK;AACL,IAAI,IAAI,eAAe,GAAG;AAC1B,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC5C,IAAI,CAAC;AACL,IAAI,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AACxD,IAAI,qBAAqB,GAAG,qBAAqB;AACjD,IAAI,eAAe,GAAG,eAAe;AACrC,IAAI,gBAAgB,GAAG,gBAAgB;AACvC,IAAI,mBAAmB,GAAG,mBAAmB;AAC7C,IAAI,eAAe;AACnB;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9E,IAAI,YAAY,GAAG,QAAQ,CAAC,MAAM;AAClC,QAAQ,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE;AACjC,QAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM;AAC9C,IAAI,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7D,IAAI,aAAa,GAAG,QAAQ,CAAC,MAAM;AACnC,QAAQ,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE;AACjC,QAAQ,OAAO,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE;AACvC,IAAI,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9D,IAAI,OAAO,GAAG,IAAI,IAAI,EAAE;AACxB,IAAI,OAAO,GAAG,KAAK;AACnB,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,EAAE;AACf,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE;AACrC,YAAY,IAAI,CAAC,EAAE;AACnB,gBAAgB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AACnD,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,IAAI;AACJ,IAAI,cAAc,CAAC,KAAK,EAAE;AAC1B,QAAQ,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK;AAC7C,QAAQ,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;AAC/B,QAAQ,MAAM,KAAK,GAAG,iBAAiB;AACvC,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACpC,YAAY,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU;AAC1C,QAAQ;AACR,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACpD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AAC3C;AACA,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,gBAAgB,CAAC,KAAK,EAAE;AAC5B,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,KAAK;AAC5C,IAAI;AACJ,IAAI,uBAAuB,CAAC,KAAK,EAAE,EAAE;AACrC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI;AAC3B,QAAQ,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;AACtE,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,OAAO,GAAG,KAAK;AACpC,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC;AAC9D,gBAAgB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,mBAAmB,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3E,YAAY,CAAC;AACb,YAAY,KAAK,EAAE,CAAC,KAAK,KAAK;AAC9B,gBAAgB,IAAI,CAAC,OAAO,GAAG,KAAK;AACpC,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACxD,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAChL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,sBAAsB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,yBAAyB,EAAE,SAAS,EAAE;AACvL,YAAY;AACZ,gBAAgB,OAAO,EAAE,WAAW;AACpC,gBAAgB,QAAQ,EAAE,iBAAiB;AAC3C,gBAAgB,IAAI,EAAE,CAAC,eAAe,CAAC;AACvC,aAAa;AACb,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAEA,YAAU,EAAE;AAC/D,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,02MAA02M,EAAE,MAAM,EAAE,CAAC,8BAA8B,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEN,IAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,oBAAoB,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,+CAA+C,EAAE,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,8MAA8M,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,wIAAwI,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,qDAAqD,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,yHAAyH,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,EAAE,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEE,IAAE,CAAC,mBAAmB,EAAE,QAAQ,EAAE,+BAA+B,EAAE,MAAM,EAAE,CAAC,oBAAoB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,iOAAiO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,kBAAkB,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,8BAA8B,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,wBAAwB,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,EAAE,0BAA0B,CAAC,EAAE,OAAO,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,mBAAmB,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEG,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,kBAAkB,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,oBAAoB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,mBAAmB,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,mCAAmC,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,oBAAoB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAED,EAAE,CAAC,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC;AAC1kV;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,CAAC;AAChI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,yBAAyB,EAAE,OAAO,EAAE;AACnE,wBAAwB,YAAY;AACpC,wBAAwB,kBAAkB;AAC1C,wBAAwB,kBAAkB;AAC1C,wBAAwB,WAAW;AACnC,wBAAwB,cAAc;AACtC,wBAAwB,eAAe;AACvC,wBAAwB,eAAe;AACvC,wBAAwB,kBAAkB;AAC1C,wBAAwB,eAAe;AACvC,wBAAwB,YAAY;AACpC,wBAAwB,mBAAmB;AAC3C,wBAAwB,kBAAkB;AAC1C,wBAAwB,iBAAiB;AACzC,qBAAqB,EAAE,SAAS,EAAE;AAClC,wBAAwB;AACxB,4BAA4B,OAAO,EAAE,WAAW;AAChD,4BAA4B,QAAQ,EAAE,iBAAiB;AACvD,4BAA4B,IAAI,EAAE,CAAC,eAAe,CAAC;AACnD,yBAAyB;AACzB,wBAAwB,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAED,YAAU,EAAE;AAC3E,qBAAqB,EAAE,QAAQ,EAAE,02MAA02M,EAAE,MAAM,EAAE,CAAC,8BAA8B,CAAC,EAAE;AACv7M,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC7IhC,MAAM,2BAA2B,SAAS,aAAa,CAAC;AAC/D,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,MAAM;AACV,IAAI,SAAS,GAAG,iBAAiB;AACjC,IAAI,WAAW,GAAG,mBAAmB;AACrC,IAAI,MAAM,GAAG,KAAK;AAClB,IAAI,aAAa,GAAG;AACpB,QAAQ,IAAI,EAAE,EAAE;AAChB,QAAQ,MAAM,EAAE,EAAE;AAClB,KAAK;AACL,IAAI,MAAM,GAAG,CAAC;AACd,IAAI,KAAK,GAAG;AACZ,QAAQ;AACR,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,IAAI,EAAE,WAAW;AAC7B,SAAS;AACT,QAAQ;AACR,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,MAAM,EAAE,SAAS;AAC7B,SAAS;AACT,QAAQ;AACR,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,MAAM,EAAE,UAAU;AAC9B,SAAS;AACT,QAAQ;AACR,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,MAAM,EAAE,UAAU;AAC9B,SAAS;AACT,QAAQ;AACR,YAAY,IAAI,EAAE,WAAW;AAC7B,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,MAAM,EAAE,WAAW;AAC/B,SAAS;AACT,KAAK;AACL,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,QAAQ,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK;AACzD,YAAY,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC;AAChF,YAAY,IAAI,MAAM,EAAE;AACxB,gBAAgB,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE;AAChE,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM;AAChD,YAAY;AACZ,YAAY,IAAI,CAAC,UAAU,EAAE;AAC7B,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,UAAU,GAAG;AACjB,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,IAAI,EAAE,gBAAgB;AAClC,SAAS;AACT,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC;AAC1E,QAAQ,IAAI,YAAY,EAAE;AAC1B,YAAY,OAAO,CAAC,QAAQ,CAAC,GAAG,YAAY;AAC5C,QAAQ;AACR,QAAQ,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;AACjE,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI;AACtC,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,cAAc,CAAC,GAAG,EAAE,EAAE;AAC1B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,aAAa,GAAG;AAC7B,YAAY,IAAI,EAAE,EAAE;AACpB,SAAS;AACT,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK;AAC3B,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,IAAI;AACJ,IAAI,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE;AAC5B,QAAQ,OAAO,EAAE,KAAK,EAAE;AACxB,IAAI;AACJ,IAAI,oBAAoB,CAAC,OAAO,EAAE;AAClC,QAAQ,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO;AACrC,aAAa,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,SAAS;AACzE,aAAa,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK;AACnC,YAAY,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACpC,QAAQ,CAAC;AACT,aAAa,IAAI,CAAC,GAAG,CAAC;AACtB,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACvL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,2BAA2B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,+BAA+B,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,8vBAA8vB,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEN,IAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,0BAA0B,EAAE,QAAQ,EAAE,8BAA8B,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;AAC55E;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,UAAU,EAAE,CAAC;AACrI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,+BAA+B,EAAE,OAAO,EAAE;AACzE,wBAAwB,YAAY;AACpC,wBAAwB,kBAAkB;AAC1C,wBAAwB,YAAY;AACpC,wBAAwB,aAAa;AACrC,wBAAwB,YAAY;AACpC,wBAAwB,gBAAgB;AACxC,wBAAwB,aAAa;AACrC,wBAAwB,cAAc;AACtC,wBAAwB,eAAe;AACvC,wBAAwB,aAAa;AACrC,wBAAwB,WAAW;AACnC,wBAAwB,kBAAkB;AAC1C,wBAAwB,mBAAmB;AAC3C,wBAAwB,eAAe;AACvC,wBAAwB,cAAc;AACtC,wBAAwB,eAAe;AACvC,wBAAwB,eAAe;AACvC,wBAAwB,0BAA0B;AAClD,qBAAqB,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,8vBAA8vB,EAAE;AACx0B,SAAS,CAAC,EAAE,CAAC;;ACxHN,MAAM,4BAA4B,CAAC;AAC1C,IAAI,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9E,IAAI,MAAM,GAAG,qBAAqB;AAClC,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACtL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,4BAA4B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,gCAAgC,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,+tEAA+tE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,yBAAyB,EAAE,QAAQ,EAAE,4BAA4B,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,sBAAsB,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC;AAC9yF;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,UAAU,EAAE,CAAC;AACtI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,gCAAgC,EAAE,OAAO,EAAE,CAAC,aAAa,EAAE,kBAAkB,EAAE,yBAAyB,CAAC,EAAE,QAAQ,EAAE,+tEAA+tE,EAAE;AACr3E,SAAS,CAAC,EAAE,CAAC;;ACGN,MAAM,6BAA6B,SAAS,aAAa,CAAC;AACjE,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,QAAQ;AACZ,IAAI,cAAc,GAAG,sBAAsB;AAC3C,IAAI,cAAc,GAAG,qBAAqB;AAC1C,IAAI,aAAa,GAAG,qBAAqB;AACzC,IAAI,MAAM,GAAG,KAAK;AAClB,IAAI,aAAa,GAAG;AACpB,QAAQ,IAAI,EAAE,EAAE;AAChB,QAAQ,QAAQ,EAAE,EAAE;AACpB,QAAQ,MAAM,EAAE,EAAE;AAClB,KAAK;AACL,IAAI,MAAM,GAAG,CAAC;AACd,IAAI,KAAK,GAAG;AACZ,QAAQ;AACR,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,IAAI,EAAE,WAAW;AAC7B,SAAS;AACT,QAAQ;AACR,YAAY,IAAI,EAAE,WAAW;AAC7B,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,MAAM,EAAE,WAAW;AAC/B,SAAS;AACT,QAAQ;AACR,YAAY,IAAI,EAAE,WAAW;AAC7B,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,MAAM,EAAE,WAAW;AAC/B,SAAS;AACT,KAAK;AACL,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK;AACzD,YAAY,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC;AAChF,YAAY,IAAI,MAAM,EAAE;AACxB,gBAAgB,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE;AAChE,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM;AAChD,YAAY;AACZ,YAAY,IAAI,CAAC,YAAY,EAAE;AAC/B,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,YAAY,GAAG;AACnB,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,IAAI,EAAE,gBAAgB;AAClC,SAAS;AACT,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC;AAC1E,QAAQ,IAAI,YAAY,EAAE;AAC1B,YAAY,OAAO,CAAC,QAAQ,CAAC,GAAG,YAAY;AAC5C,QAAQ;AACR,QAAQ,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;AACnE,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI;AACxC,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,cAAc,CAAC,GAAG,EAAE,EAAE;AAC1B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,aAAa,GAAG;AAC7B,YAAY,IAAI,EAAE,EAAE;AACpB,SAAS;AACT,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK;AAC3B,QAAQ,IAAI,CAAC,YAAY,EAAE;AAC3B,IAAI;AACJ,IAAI,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE;AAC5B,QAAQ,OAAO,EAAE,KAAK,EAAE;AACxB,IAAI;AACJ,IAAI,oBAAoB,CAAC,OAAO,EAAE;AAClC,QAAQ,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO;AACrC,aAAa,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,SAAS;AACzE,aAAa,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK;AACnC,YAAY,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACpC,QAAQ,CAAC;AACT,aAAa,IAAI,CAAC,GAAG,CAAC;AACtB,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACzL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,6BAA6B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,iCAAiC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,0wBAA0wB,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,4BAA4B,EAAE,QAAQ,EAAE,gCAAgC,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;AACx4E;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,UAAU,EAAE,CAAC;AACvI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,iCAAiC,EAAE,OAAO,EAAE;AAC3E,wBAAwB,YAAY;AACpC,wBAAwB,kBAAkB;AAC1C,wBAAwB,YAAY;AACpC,wBAAwB,aAAa;AACrC,wBAAwB,YAAY;AACpC,wBAAwB,gBAAgB;AACxC,wBAAwB,aAAa;AACrC,wBAAwB,cAAc;AACtC,wBAAwB,eAAe;AACvC,wBAAwB,aAAa;AACrC,wBAAwB,WAAW;AACnC,wBAAwB,kBAAkB;AAC1C,wBAAwB,mBAAmB;AAC3C,wBAAwB,eAAe;AACvC,wBAAwB,cAAc;AACtC,wBAAwB,eAAe;AACvC,wBAAwB,eAAe;AACvC,wBAAwB,4BAA4B;AACpD,qBAAqB,EAAE,QAAQ,EAAE,0wBAA0wB,EAAE;AAC7yB,SAAS,CAAC,EAAE,CAAC;;AClHN,MAAM,OAAO,CAAC;AACrB,IAAI,SAAS,CAAC,KAAK,EAAE,GAAG,IAAI,EAAE;AAC9B,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;AACxC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAC5C,YAAY,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACnD,QAAQ;AACR,aAAa;AACb,YAAY,OAAO,EAAE;AACrB,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;AAC5J,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAChJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AACjH,YAAY,IAAI,EAAE,IAAI;AACtB,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,IAAI,EAAE,KAAK;AAC/B,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACLN,MAAM,4BAA4B,SAAS,aAAa,CAAC;AAChE,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,KAAK;AACT,IAAI,IAAI,GAAG,KAAK;AAChB,IAAI,eAAe,GAAG,KAAK;AAC3B,IAAI,YAAY;AAChB,IAAI,MAAM,GAAG,mBAAmB;AAChC,IAAI,cAAc,GAAG,2BAA2B;AAChD,IAAI,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC;AAC5B,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC/B,IAAI,QAAQ;AACZ,IAAI,KAAK;AACT,IAAI,WAAW,GAAG,KAAK;AACvB,IAAI,cAAc;AAClB,IAAI,eAAe;AACnB,IAAI,IAAI,GAAG,QAAQ,CAAC,MAAM;AAC1B,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE;AACzC,IAAI,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrD,IAAI,MAAM,QAAQ,GAAG;AACrB,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK;AAChD,YAAY,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;AACnC,YAAY,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AACxB,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,MAAM,KAAK;AAC3D,YAAY,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC;AAClD,YAAY,IAAI,SAAS,EAAE;AAC3B,gBAAgB,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,SAAS,CAAC;AAC3F,oBAAoB,IAAI,EAAE,CAAC,GAAG,KAAK;AACnC,wBAAwB,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE;AACnD,4BAA4B,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,mBAAmB,CAAC,oBAAoB;AACxF;AACA,wBAAwB;AACxB,oBAAoB,CAAC;AACrB,iBAAiB,CAAC;AAClB,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,WAAW,GAAG,KAAK;AAChC,IAAI;AACJ,IAAI,GAAG,CAAC,EAAE,EAAE;AACZ,QAAQ,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACpD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI;AACrC,gBAAgB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AACvD,gBAAgB,IAAI,CAAC,gBAAgB,EAAE;AACvC;AACA,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI;AACnC,QAAQ,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AAC9D,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,IAAI;AAC5C,gBAAgB,IAAI,CAAC,eAAe,GAAG,KAAK;AAC5C,YAAY,CAAC;AACb,YAAY,KAAK,EAAE,CAAC,KAAK,KAAK;AAC9B,gBAAgB,IAAI,CAAC,eAAe,GAAG,KAAK;AAC5C,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,WAAW,CAAC,UAAU,EAAE;AAC5B,QAAQ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC;AACvD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI;AACxC,gBAAgB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC9D,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,kBAAkB,CAAC,OAAO,EAAE;AAChC,QAAQ,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;AAClE,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,KAAK,GAAG,GAAG;AAChC,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,MAAM,GAAG;AACb,QAAQ,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AAC5D,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,WAAW;AAC/C,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC;AACtD,YAAY,CAAC;AACb,YAAY,KAAK,EAAE,CAAC,KAAK,KAAK;AAC9B,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACxD,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,gBAAgB,GAAG;AACvB,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM;AAC5C,QAAQ,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;AAC5D,QAAQ,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AACnE,IAAI;AACJ,IAAI,sBAAsB,GAAG;AAC7B,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI;AAC/B,QAAQ,MAAM,IAAI,GAAG;AACrB,YAAY,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,mCAAmC;AAClF,YAAY,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;AAC3C,SAAS;AACT,QAAQ,IAAI,CAAC,eAAe,CAAC,4BAA4B,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC;AACnF,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW;AAC3D,YAAY,CAAC;AACb,YAAY,KAAK,EAAE,CAAC,KAAK,KAAK;AAC9B,gBAAgB,IAAI,CAAC,WAAW,GAAG,KAAK;AACxC,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,uBAAuB,GAAG;AAC9B,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI;AAC/B,QAAQ,MAAM,IAAI,GAAG;AACrB,YAAY,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,mCAAmC;AAClF,YAAY,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;AAC3C,SAAS;AACT,QAAQ,IAAI,CAAC,eAAe,CAAC,6BAA6B,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC;AACpF,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW;AAC3D,YAAY,CAAC;AACb,YAAY,KAAK,EAAE,CAAC,KAAK,KAAK;AAC9B,gBAAgB,IAAI,CAAC,WAAW,GAAG,KAAK;AACxC,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACxL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,4BAA4B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,gCAAgC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,yzPAAyzP,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,iOAAiO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,sFAAsF,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,wBAAwB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEE,IAAE,CAAC,kBAAkB,EAAE,QAAQ,EAAE,mCAAmC,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,oBAAoB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,sBAAsB,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC;AACnyT;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,UAAU,EAAE,CAAC;AACtI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,gCAAgC,EAAE,OAAO,EAAE;AAC1E,wBAAwB,eAAe;AACvC,wBAAwB,aAAa;AACrC,wBAAwB,OAAO;AAC/B,wBAAwB,kBAAkB;AAC1C,wBAAwB,gBAAgB;AACxC,wBAAwB,kBAAkB;AAC1C,wBAAwB,gBAAgB;AACxC,wBAAwB,wBAAwB;AAChD,wBAAwB,UAAU;AAClC,wBAAwB,OAAO;AAC/B,qBAAqB,EAAE,QAAQ,EAAE,yzPAAyzP,EAAE;AAC51P,SAAS,CAAC,EAAE,CAAC;;ACjJN,MAAM,8BAA8B,SAAS,aAAa,CAAC;AAClE,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,KAAK;AACT,IAAI,OAAO;AACX,IAAI,IAAI,GAAG,KAAK;AAChB,IAAI,eAAe,GAAG,KAAK;AAC3B,IAAI,MAAM,GAAG,qBAAqB;AAClC,IAAI,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC;AAC5B,IAAI,QAAQ;AACZ,IAAI,MAAM,QAAQ,GAAG;AACrB,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK;AAChD,YAAY,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;AACnC,YAAY,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AACxB,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,GAAG,CAAC,EAAE,EAAE;AACZ,QAAQ,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACtD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI;AACvC,gBAAgB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;AACzD;AACA,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,WAAW,CAAC,UAAU,EAAE;AAC5B,QAAQ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC;AACvD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI;AACxC,gBAAgB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC9D,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,kBAAkB,CAAC,OAAO,EAAE;AAChC,QAAQ,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;AAClE,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,KAAK,GAAG,GAAG;AAChC,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,MAAM,GAAG;AACb,QAAQ,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AAC9D,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,WAAW;AACjD,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC;AACtD,YAAY,CAAC;AACb,YAAY,KAAK,EAAE,CAAC,KAAK,KAAK;AAC9B,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACxD,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAC1L,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,8BAA8B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,kCAAkC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,izHAAizH,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEF,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,iOAAiO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,sFAAsF,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,CAAC,EAAE,sBAAsB,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC;AACrgL;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,UAAU,EAAE,CAAC;AACxI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,kCAAkC,EAAE,OAAO,EAAE;AAC5E,wBAAwB,eAAe;AACvC,wBAAwB,aAAa;AACrC,wBAAwB,OAAO;AAC/B,wBAAwB,kBAAkB;AAC1C,wBAAwB,kBAAkB;AAC1C,wBAAwB,kBAAkB;AAC1C,wBAAwB,gBAAgB;AACxC,wBAAwB,UAAU;AAClC,qBAAqB,EAAE,QAAQ,EAAE,izHAAizH,EAAE;AACp1H,SAAS,CAAC,EAAE,CAAC;;AC/DN,MAAM,yBAAyB,SAAS,aAAa,CAAC;AAC7D,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,QAAQ;AACZ,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,YAAY,EAAE;AAC3B,IAAI;AACJ,IAAI,YAAY,GAAG;AACnB,QAAQ,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACxD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI;AACxC,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACrL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,yBAAyB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,4BAA4B,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,qZAAqZ,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;AACnyD;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,CAAC;AACnI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,4BAA4B,EAAE,OAAO,EAAE;AACtE,wBAAwB,YAAY;AACpC,wBAAwB,kBAAkB;AAC1C,wBAAwB,YAAY;AACpC,wBAAwB,gBAAgB;AACxC,wBAAwB,aAAa;AACrC,wBAAwB,cAAc;AACtC,wBAAwB,eAAe;AACvC,wBAAwB,aAAa;AACrC,wBAAwB,WAAW;AACnC,wBAAwB,kBAAkB;AAC1C,wBAAwB,mBAAmB;AAC3C,wBAAwB,eAAe;AACvC,wBAAwB,cAAc;AACtC,wBAAwB,eAAe;AACvC,wBAAwB,eAAe;AACvC,wBAAwB,qBAAqB;AAC7C,qBAAqB,EAAE,QAAQ,EAAE,qZAAqZ,EAAE;AACxb,SAAS,CAAC,EAAE,CAAC;;AC1CD,MAAC,cAAc,GAAG;AAC9B,IAAI;AACJ,QAAQ,IAAI,EAAE,EAAE;AAChB,QAAQ,SAAS,EAAE,uBAAuB;AAC1C,QAAQ,QAAQ,EAAE;AAClB,YAAY;AACZ,gBAAgB,IAAI,EAAE,EAAE;AACxB,gBAAgB,aAAa,EAAE,MAAM,OAAO,mEAA2C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC;AAC9H,aAAa;AACb,SAAS;AACT,KAAK;AACL,IAAI;AACJ,QAAQ,IAAI,EAAE,UAAU;AACxB,QAAQ,WAAW,EAAE,CAAC,SAAS,CAAC;AAChC,QAAQ,SAAS,EAAE,yBAAyB;AAC5C,KAAK;AACL,IAAI;AACJ,QAAQ,IAAI,EAAE,UAAU;AACxB,QAAQ,WAAW,EAAE,CAAC,SAAS,CAAC;AAChC,QAAQ,SAAS,EAAE,6BAA6B;AAChD,KAAK;AACL,IAAI;AACJ,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,WAAW,EAAE,CAAC,SAAS,CAAC;AAChC,QAAQ,SAAS,EAAE,2BAA2B;AAC9C,KAAK;AACL,IAAI;AACJ,QAAQ,IAAI,EAAE,cAAc;AAC5B,QAAQ,WAAW,EAAE,CAAC,SAAS,CAAC;AAChC,QAAQ,SAAS,EAAE,8BAA8B;AACjD,KAAK;AACL,IAAI;AACJ,QAAQ,IAAI,EAAE,YAAY;AAC1B,QAAQ,WAAW,EAAE,CAAC,SAAS,CAAC;AAChC,QAAQ,SAAS,EAAE,4BAA4B;AAC/C,KAAK;AACL,IAAI;AACJ,QAAQ,IAAI,EAAE,yBAAyB;AACvC,QAAQ,WAAW,EAAE,CAAC,SAAS,CAAC;AAChC,QAAQ,SAAS,EAAE,+BAA+B;AAClD,KAAK;AACL,IAAI;AACJ,QAAQ,IAAI,EAAE,WAAW;AACzB,QAAQ,WAAW,EAAE,CAAC,SAAS,CAAC;AAChC,QAAQ,SAAS,EAAE,sBAAsB;AACzC,KAAK;AACL,IAAI;AACJ,QAAQ,IAAI,EAAE,KAAK;AACnB,QAAQ,SAAS,EAAE,wBAAwB;AAC3C,KAAK;AACL;;AC1CO,MAAM,4BAA4B,CAAC;AAC1C,IAAI,QAAQ,GAAG,IAAI;AACnB,IAAI,SAAS,GAAG,SAAS,CAAC,YAAY,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3F,IAAI,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;AAC9B,IAAI,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC;AAClC,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC3B,IAAI,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AACnC,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC;AAClC,IAAI,QAAQ,GAAG,IAAI;AACnB,IAAI,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC;AAC/B,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACzD,IAAI,QAAQ,GAAG,KAAK;AACpB;AACA,IAAI,UAAU,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChF,IAAI,SAAS,GAAG,KAAK;AACrB,IAAI,SAAS;AACb,IAAI,MAAM,GAAG,GAAG;AAChB,IAAI,QAAQ,GAAG,EAAE;AACjB,IAAI,eAAe,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;AACtC,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvE,IAAI,SAAS,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7E,IAAI,IAAI;AACR,IAAI,OAAO,GAAG,KAAK;AACnB,IAAI,QAAQ,GAAG;AACf;AACA,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;AAC/B,aAAa,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;AAC7B,YAAY,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC;AAClE,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACrD,YAAY,OAAO;AACnB,gBAAgB,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,SAAS;AAC1C,gBAAgB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS;AAChD,gBAAgB,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,SAAS;AAC5F,gBAAgB,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,SAAS;AAC5F,gBAAgB,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,SAAS;AACnF,gBAAgB,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,SAAS;AACnF,gBAAgB,aAAa,EAAE,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,SAAS;AAClE,gBAAgB,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,SAAS;AAC9D,gBAAgB,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,SAAS;AACzF,gBAAgB,IAAI;AACpB,gBAAgB,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE;AACnE,gBAAgB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS;AAChD,aAAa;AACb,QAAQ,CAAC,CAAC;AACV;AACA,QAAQ,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,MAAM,KAAK;AAChH,YAAY,IAAI,CAAC,OAAO,GAAG,IAAI;AAC/B,YAAY,OAAO,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC;AACzG,QAAQ,CAAC,CAAC;AACV,aAAa,SAAS,CAAC;AACvB,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AAC7C,gBAAgB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI;AACpC,gBAAgB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK;AACvD,YAAY,CAAC;AACb,YAAY,KAAK,EAAE,MAAM;AACzB,gBAAgB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;AACvC,gBAAgB,IAAI,CAAC,MAAM,GAAG,CAAC;AAC/B,YAAY,CAAC;AACb,SAAS,CAAC;AACV;AACA,QAAQ,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;AAC1D,IAAI;AACJ,IAAI,YAAY,GAAG;AACnB,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACnC,IAAI;AACJ,IAAI,UAAU,GAAG;AACjB,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3B,YAAY,IAAI,CAAC,QAAQ,GAAG,KAAK;AACjC,YAAY,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;AAC3D,QAAQ;AACR,aAAa;AACb,YAAY,IAAI,CAAC,QAAQ,GAAG,IAAI;AAChC,YAAY,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;AAC3D,QAAQ;AACR,IAAI;AACJ,IAAI,YAAY,CAAC,KAAK,EAAE;AACxB,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE;AACjC,YAAY,WAAW,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;AACzD,YAAY,mBAAmB,EAAE,OAAO;AACxC,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,MAAM,CAAC,MAAM,EAAE;AACnB,QAAQ,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC;AAC5D,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AAC7C,gBAAgB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI;AACpC,gBAAgB,IAAI,CAAC,OAAO,GAAG,KAAK;AACpC,gBAAgB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK;AACvD;AACA,YAAY,CAAC;AACb,YAAY,KAAK,EAAE,CAAC,KAAK,KAAK;AAC9B,gBAAgB,IAAI,CAAC,OAAO,GAAG,KAAK;AACpC,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,aAAa,GAAG;AACpB;AACA;AACA,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,CAAC;AAC7C,IAAI;AACJ,IAAI,MAAM,GAAG;AACb,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI;AAC7B,QAAQ,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC;AAChD,YAAY,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK;AAC1C;AACA,gBAAgB,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;AACrD,gBAAgB,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;AACrD,gBAAgB,CAAC,CAAC,IAAI,GAAG,GAAG;AAC5B,gBAAgB,CAAC,CAAC,QAAQ,GAAG,QAAQ,IAAI,gBAAgB;AACzD,gBAAgB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AAC5C,gBAAgB,CAAC,CAAC,KAAK,EAAE;AACzB,gBAAgB,CAAC,CAAC,MAAM,EAAE;AAC1B,gBAAgB,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC;AACxC,gBAAgB,IAAI,CAAC,SAAS,GAAG,KAAK;AACtC,YAAY,CAAC;AACb,YAAY,KAAK,EAAE,CAAC,CAAC,KAAK;AAC1B,gBAAgB,IAAI,CAAC,SAAS,GAAG,KAAK;AACtC,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,MAAM,CAAC,CAAC,EAAE;AACd,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE;AACjC,YAAY,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE;AACrE,YAAY,mBAAmB,EAAE,OAAO;AACxC,YAAY,UAAU,EAAE,IAAI;AAC5B,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACtL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,4BAA4B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,gCAAgC,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,sCAAsC,EAAE,eAAe,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,w2DAAw2D,EAAE,MAAM,EAAE,CAAC,kiCAAkiC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,iOAAiO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,sFAAsF,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEE,IAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,iBAAiB,EAAE,cAAc,EAAE,sBAAsB,EAAE,cAAc,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,2BAA2B,EAAE,QAAQ,EAAE,+BAA+B,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;AACxuK;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,UAAU,EAAE,CAAC;AACtI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,gCAAgC,EAAE,OAAO,EAAE;AAC1E,wBAAwB,eAAe;AACvC,wBAAwB,UAAU;AAClC,wBAAwB,aAAa;AACrC,wBAAwB,cAAc;AACtC,wBAAwB,aAAa;AACrC,wBAAwB,kBAAkB;AAC1C,wBAAwB,gBAAgB;AACxC,wBAAwB,gBAAgB;AACxC,wBAAwB,2BAA2B;AACnD,wBAAwB,SAAS;AACjC,qBAAqB,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,w2DAAw2D,EAAE,MAAM,EAAE,CAAC,kiCAAkiC,CAAC,EAAE;AACh+F,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC;AACzC,gBAAgB,IAAI,EAAE,WAAW;AACjC,gBAAgB,IAAI,EAAE,CAAC,sCAAsC;AAC7D,aAAa,CAAC,EAAE,EAAE,CAAC;;ACrJZ,MAAM,6BAA6B,CAAC;AAC3C,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC3B,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC;AAClC,IAAI,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC;AAClC,IAAI,QAAQ,GAAG,EAAE;AACjB,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,IAAI,GAAG;AACrB,YAAY,GAAG,IAAI,CAAC,QAAQ;AAC5B,SAAS;AACT,QAAQ,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC;AACpD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE;AACxE,oBAAoB,UAAU,EAAE,IAAI,CAAC,KAAK;AAC1C,iBAAiB,CAAC;AAClB,YAAY,CAAC;AACb,YAAY,KAAK,EAAE,CAAC,CAAC,KAAK;AAC1B,gBAAgB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;AAC7C,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACvL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,6BAA6B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,iCAAiC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,k/BAAk/B,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEF,IAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,8CAA8C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,8MAA8M,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,0FAA0F,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,wIAAwI,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,qDAAqD,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,wDAAwD,EAAE,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,oBAAoB,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,yHAAyH,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,EAAE,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEE,IAAE,CAAC,mBAAmB,EAAE,QAAQ,EAAE,+BAA+B,EAAE,MAAM,EAAE,CAAC,oBAAoB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,iOAAiO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;AACxjI;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,UAAU,EAAE,CAAC;AACvI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,iCAAiC,EAAE,OAAO,EAAE;AAC3E,wBAAwB,gBAAgB;AACxC,wBAAwB,WAAW;AACnC,wBAAwB,kBAAkB;AAC1C,wBAAwB,cAAc;AACtC,wBAAwB,eAAe;AACvC,wBAAwB,eAAe;AACvC,wBAAwB,eAAe;AACvC,wBAAwB,eAAe;AACvC,qBAAqB,EAAE,QAAQ,EAAE,k/BAAk/B,EAAE;AACrhC,SAAS,CAAC,EAAE,CAAC;;AC9CN,MAAM,6BAA6B,SAAS,aAAa,CAAC;AACjE,IAAI,QAAQ;AACZ,IAAI,SAAS,GAAG,KAAK;AACrB,IAAI,QAAQ,GAAG,KAAK;AACpB,IAAI,OAAO,GAAG,KAAK;AACnB,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AACxD,QAAQ,IAAI,CAAC,GAAG,EAAE;AAClB,IAAI;AACJ,IAAI,GAAG,GAAG;AACV,QAAQ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACpD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI;AACxC,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,MAAM,GAAG;AACb,QAAQ,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AAChE,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,qBAAqB,CAAC;AAChE,gBAAgB,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC;AAChE,gBAAgB,IAAI,CAAC,YAAY,EAAE;AACnC,YAAY,CAAC;AACb,YAAY,KAAK,EAAE,CAAC,KAAK,KAAK;AAC9B,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACxD,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,YAAY,GAAG;AACnB,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,SAAS;AACnH,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,UAAU;AACtE,IAAI;AACJ,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACxD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,sBAAsB,CAAC;AACjE,gBAAgB,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,cAAc,CAAC,WAAW,CAAC;AAClE,gBAAgB,IAAI,CAAC,YAAY,EAAE;AACnC,YAAY,CAAC;AACb,YAAY,KAAK,EAAE,CAAC,KAAK,KAAK;AAC9B,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACxD,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACzL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,6BAA6B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,iCAAiC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,wtGAAwtG,EAAE,MAAM,EAAE,CAAC,6XAA6X,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,yBAAyB,EAAE,uBAAuB,EAAE,kBAAkB,CAAC,EAAE,OAAO,EAAE,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,CAAC,kBAAkB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEJ,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,iOAAiO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,OAAO,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;AACj5J;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,UAAU,EAAE,CAAC;AACvI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,iCAAiC,EAAE,OAAO,EAAE,CAAC,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,YAAY,CAAC,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,wtGAAwtG,EAAE,MAAM,EAAE,CAAC,6XAA6X,CAAC,EAAE;AAC9xH,SAAS,CAAC,EAAE,CAAC;;ACxDN,MAAM,8BAA8B,CAAC;AAC5C,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACxL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,8BAA8B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,kCAAkC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,mHAAmH,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;AACnZ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,UAAU,EAAE,CAAC;AACxI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,kCAAkC,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,mHAAmH,EAAE;AAC3N,SAAS,CAAC,EAAE,CAAC;;ACcN,MAAMM,YAAU,GAAG;AAC1B,IAAI,KAAK,EAAE;AACX,QAAQ,SAAS,EAAE,YAAY;AAC/B,KAAK;AACL,IAAI,OAAO,EAAE;AACb,QAAQ,SAAS,EAAE,YAAY;AAC/B,QAAQ,cAAc,EAAE,UAAU;AAClC,QAAQ,aAAa,EAAE,YAAY;AACnC,QAAQ,kBAAkB,EAAE,WAAW;AACvC,KAAK;AACL,CAAC;AACM,MAAM,2BAA2B,SAAS,aAAa,CAAC;AAC/D,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,QAAQ;AACZ,IAAI,MAAM,GAAG,cAAc;AAC3B,IAAI,kBAAkB;AACtB,IAAI,YAAY,GAAG,YAAY;AAC/B,IAAI,SAAS,GAAG,iBAAiB;AACjC,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACzE,IAAI,OAAO,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACzE,IAAI,OAAO,GAAG,IAAI,IAAI,EAAE;AACxB,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AAChE,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB,IAAI;AACJ,IAAI,IAAI,GAAG;AACX,QAAQ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACpD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI;AACxC,gBAAgB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM;AAC3F,gBAAgB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AACrC,gBAAgB,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,SAAS,EAAE;AACvE,oBAAoB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AACpE,oBAAoB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;AAC7C,gBAAgB;AAChB,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,WAAW,CAAC,KAAK,EAAE;AACvB;AACA,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC9D,IAAI;AACJ,IAAI,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE;AAC1B,QAAQ,OAAO,EAAE,KAAK,EAAE;AACxB,IAAI;AACJ,IAAI,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE;AAC/B,QAAQ,OAAO,EAAE,KAAK,EAAE;AACxB,IAAI;AACJ,IAAI,YAAY,CAAC,KAAK,EAAE;AACxB;AACA;AACA;AACA,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK;AACxC,IAAI;AACJ,IAAI,gBAAgB,CAAC,KAAK,EAAE;AAC5B,QAAQ,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,KAAK;AAC7C,IAAI;AACJ,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,QAAQ;AAClI,QAAQ,MAAM,IAAI,GAAG;AACrB,YAAY,KAAK;AACjB,YAAY,WAAW;AACvB,YAAY,QAAQ;AACpB,YAAY,SAAS;AACrB,YAAY,UAAU;AACtB,YAAY,IAAI;AAChB,YAAY,KAAK;AACjB,YAAY,IAAI;AAChB,YAAY,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,GAAG;AAC7C,YAAY,SAAS;AACrB,YAAY,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,GAAG;AACjD,YAAY,aAAa;AACzB,SAAS;AACT,QAAQ,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC;AAC7D,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,qBAAqB,CAAC;AAChE,YAAY,CAAC;AACb,YAAY,KAAK,EAAE,CAAC,CAAC,KAAK;AAC1B,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;AACpD,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACvL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,2BAA2B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,+BAA+B,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,SAAS,EAAE;AACjgB,YAAY;AACZ,gBAAgB,OAAO,EAAE,WAAW;AACpC,gBAAgB,QAAQ,EAAE,iBAAiB;AAC3C,gBAAgB,IAAI,EAAE,CAAC,eAAe,CAAC;AACvC,aAAa;AACb,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAEA,YAAU,EAAE;AAC/D,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,m2IAAm2I,EAAE,MAAM,EAAE,CAAC,8BAA8B,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEN,IAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,8CAA8C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,8MAA8M,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,0FAA0F,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,wIAAwI,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,qDAAqD,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,wDAAwD,EAAE,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,oBAAoB,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,+CAA+C,EAAE,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,yHAAyH,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,EAAE,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEE,IAAE,CAAC,mBAAmB,EAAE,QAAQ,EAAE,+BAA+B,EAAE,MAAM,EAAE,CAAC,oBAAoB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,kBAAkB,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,8BAA8B,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,wBAAwB,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,EAAE,0BAA0B,CAAC,EAAE,OAAO,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,mBAAmB,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEE,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,iOAAiO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,8BAA8B,EAAE,QAAQ,EAAE,kCAAkC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEG,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,kBAAkB,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,oBAAoB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,mBAAmB,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;AACn2R;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,UAAU,EAAE,CAAC;AACrI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,+BAA+B,EAAE,OAAO,EAAE;AACzE,wBAAwB,WAAW;AACnC,wBAAwB,kBAAkB;AAC1C,wBAAwB,cAAc;AACtC,wBAAwB,eAAe;AACvC,wBAAwB,eAAe;AACvC,wBAAwB,eAAe;AACvC,wBAAwB,eAAe;AACvC,wBAAwB,gBAAgB;AACxC,wBAAwB,8BAA8B;AACtD,wBAAwB,gBAAgB;AACxC,wBAAwB,eAAe;AACvC,wBAAwB,YAAY;AACpC,wBAAwB,mBAAmB;AAC3C,qBAAqB,EAAE,SAAS,EAAE;AAClC,wBAAwB;AACxB,4BAA4B,OAAO,EAAE,WAAW;AAChD,4BAA4B,QAAQ,EAAE,iBAAiB;AACvD,4BAA4B,IAAI,EAAE,CAAC,eAAe,CAAC;AACnD,yBAAyB;AACzB,wBAAwB,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAEF,YAAU,EAAE;AAC3E,qBAAqB,EAAE,QAAQ,EAAE,m2IAAm2I,EAAE,MAAM,EAAE,CAAC,8BAA8B,CAAC,EAAE;AACh7I,SAAS,CAAC,EAAE,CAAC;;AClIb,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AACvB,MAAM,4BAA4B,CAAC;AAC1C,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC;AAClC,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;AAC9B,IAAI,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC;AAClC,IAAI,EAAE;AACN,IAAI,SAAS,GAAG,KAAK;AACrB,IAAI,KAAK,GAAG,EAAE;AACd,IAAI,MAAM,GAAG,cAAc;AAC3B;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AAChE,IAAI;AACJ,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB,IAAI;AACJ,IAAI,IAAI,GAAG;AACX,QAAQ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACpD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;AACjD,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,YAAY,CAAC,CAAC,EAAE;AACpB,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;AACxE,YAAY,QAAQ,EAAE,MAAM;AAC5B,YAAY,SAAS,EAAE,MAAM;AAC7B,YAAY,MAAM,EAAE,KAAK;AACzB,YAAY,KAAK,EAAE,KAAK;AACxB,YAAY,UAAU,EAAE,mBAAmB;AAC3C,YAAY,IAAI,EAAE;AAClB,gBAAgB,KAAK,EAAE,IAAI,CAAC,KAAK;AACjC,gBAAgB,QAAQ,EAAE,CAAC;AAC3B,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC;AAC1D,IAAI;AACJ,IAAI,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE;AACvC,QAAQ,MAAM,aAAa,GAAG,EAAE;AAChC,QAAQ,IAAI,GAAG,GAAG,CAAC;AACnB,QAAQ,OAAO,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE;AAChC,YAAY,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;AACrE,YAAY,GAAG,IAAI,IAAI;AACvB,QAAQ;AACR,QAAQ,OAAO,aAAa;AAC5B,IAAI;AACJ,IAAI,cAAc,CAAC,KAAK,EAAE;AAC1B,QAAQ,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1C,QAAQ,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE;AACvC,QAAQ,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;AAClC,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;AACxD,QAAQ,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;AAC5C,IAAI;AACJ,IAAI,qBAAqB,CAAC,KAAK,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM;AAClC,QAAQ,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACnD,YAAY,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AACjD,YAAY,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK;AACzD,gBAAgB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,CAAC,CAAC;AACrD,YAAY,CAAC,CAAC;AACd,QAAQ;AACR,IAAI;AACJ,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE;AAC5B,QAAQ,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE;AACvC,QAAQ,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE;AACvC,QAAQ,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;AACrC,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE;AACpC,YAAY,GAAG,EAAE,EAAE;AACnB,YAAY,GAAG,EAAE,cAAc;AAC/B,YAAY,KAAK,EAAE,CAAC;AACpB,YAAY,MAAM,EAAE,CAAC;AACrB,YAAY,SAAS,EAAE,IAAI;AAC3B,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;AAClC,QAAQ,MAAM,CAAC,MAAM,GAAG,MAAM;AAC9B,YAAY,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE;AACnC,YAAY,GAAG,CAAC,MAAM,GAAG,MAAM;AAC/B,gBAAgB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AACjD,oBAAoB,GAAG,EAAE,GAAG,CAAC,GAAG;AAChC,oBAAoB,KAAK,EAAE,GAAG,CAAC,KAAK;AACpC,oBAAoB,MAAM,EAAE,GAAG,CAAC,MAAM;AACtC,iBAAiB,CAAC;AAClB,YAAY,CAAC;AACb,YAAY,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM;AACnC,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,SAAS,CAAC;AACtE,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B;AACA;AACA,gBAAgB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE;AAC5C,oBAAoB,GAAG,GAAG,CAAC,IAAI;AAC/B,oBAAoB,SAAS,EAAE,KAAK;AACpC,iBAAiB,CAAC;AAClB,YAAY,CAAC;AACb,YAAY,KAAK,EAAE,CAAC,CAAC,KAAK;AAC1B,gBAAgB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,OAAO,CAAC;AACjE,gBAAgB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC5C,YAAY,CAAC;AACb,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,OAAO,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;AACvC,IAAI;AACJ,IAAI,aAAa,CAAC,KAAK,EAAE;AACzB,QAAQ,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1C;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,IAAI,EAAE;AAClB,YAAY,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE;AAC3C,YAAY,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE;AAC3C,YAAY,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;AACzC,YAAY,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;AACtC,YAAY,MAAM,CAAC,MAAM,GAAG,MAAM;AAClC,gBAAgB,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE;AACvC,gBAAgB,GAAG,CAAC,MAAM,GAAG,MAAM;AACnC,oBAAoB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AACpC,wBAAwB,GAAG,EAAE,GAAG,CAAC,GAAG;AACpC,wBAAwB,GAAG,EAAE,cAAc;AAC3C,wBAAwB,KAAK,EAAE,GAAG,CAAC,KAAK;AACxC,wBAAwB,MAAM,EAAE,GAAG,CAAC,MAAM;AAC1C,qBAAqB,CAAC;AACtB,gBAAgB,CAAC;AACjB,gBAAgB,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;AACxC,YAAY,CAAC;AACb,YAAY,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,SAAS,CAAC;AAC1E,gBAAgB,IAAI,EAAE,CAAC,GAAG,KAAK;AAC/B,oBAAoB,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3D;AACA,oBAAoB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC;AACzD,gBAAgB,CAAC;AACjB,gBAAgB,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;AACjC,aAAa,CAAC;AACd,YAAY,MAAM,CAAC,OAAO,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;AAC3C,QAAQ;AACR,IAAI;AACJ,IAAI,aAAa,CAAC,IAAI,EAAE;AACxB,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;AACxE,YAAY,KAAK,EAAE,OAAO;AAC1B,YAAY,IAAI,EAAE;AAClB,gBAAgB,KAAK,EAAE,MAAM;AAC7B,gBAAgB,OAAO,EAAE,cAAc;AACvC,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK;AACtD,YAAY,IAAI,MAAM,EAAE;AACxB,gBAAgB,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AAC7E,oBAAoB,IAAI,EAAE,CAAC,GAAG,KAAK;AACnC,wBAAwB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;AAC/E,wBAAwB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACjE,oBAAoB,CAAC;AACrB,oBAAoB,KAAK,EAAE,CAAC,CAAC,KAAK;AAClC,wBAAwB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;AACrD,oBAAoB,CAAC;AACrB,iBAAiB,CAAC;AAClB,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACtL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,4BAA4B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,gCAAgC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,0nBAA0nB,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,gBAAgB,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,0BAA0B,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,gBAAgB,EAAE,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,8BAA8B,EAAE,QAAQ,EAAE,kCAAkC,EAAE,CAAC,EAAE,CAAC;AACt8C;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,UAAU,EAAE,CAAC;AACtI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,gCAAgC,EAAE,OAAO,EAAE,CAAC,kBAAkB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,8BAA8B,CAAC,EAAE,QAAQ,EAAE,0nBAA0nB,EAAE;AAChzB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AChKhC,MAAM,kCAAkC,CAAC;AAChD,IAAI,WAAW,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACxF,IAAI,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9E,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC5E,IAAI,WAAW,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACxF,IAAI,MAAM,GAAG,MAAM,EAAE;AACrB,IAAI,MAAM,GAAG,MAAM,EAAE;AACrB,IAAI,IAAI,GAAG,MAAM,EAAE;AACnB,IAAI,WAAW,GAAG,MAAM,EAAE;AAC1B,IAAI,WAAW;AACf,IAAI,QAAQ,GAAG,KAAK;AACpB,IAAI,WAAW,GAAG,EAAE;AACpB,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;AAChF,IAAI;AACJ,IAAI,QAAQ,CAAC,IAAI,EAAE;AACnB,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC;AAC3D,IAAI;AACJ,IAAI,gBAAgB,CAAC,KAAK,EAAE;AAC5B,QAAQ,IAAI,CAAC,WAAW,GAAG,KAAK;AAChC,IAAI;AACJ,IAAI,MAAM,CAAC,IAAI,EAAE;AACjB,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI;AAC/B,IAAI;AACJ,IAAI,WAAW,GAAG,EAAE;AACpB,IAAI,MAAM,CAAC,OAAO,EAAE;AACpB,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AAC/B,IAAI;AACJ,IAAI,QAAQ,CAAC,OAAO,EAAE;AACtB,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AACjC,IAAI;AACJ,IAAI,aAAa,CAAC,KAAK,EAAE;AACzB,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC;AACjE,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI;AACpF,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kCAAkC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAC5L,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,kCAAkC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,uCAAuC,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,86HAA86H,EAAE,MAAM,EAAE,CAAC,maAAma,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEN,IAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,oBAAoB,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,yHAAyH,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,EAAE,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,mBAAmB,EAAE,QAAQ,EAAE,+BAA+B,EAAE,MAAM,EAAE,CAAC,oBAAoB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,8MAA8M,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,qDAAqD,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,iOAAiO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,sFAAsF,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEG,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,6CAA6C,EAAE,MAAM,EAAE,CAAC,sBAAsB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,4BAA4B,CAAC,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;AACrpR;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kCAAkC,EAAE,UAAU,EAAE,CAAC;AAC5I,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,uCAAuC,EAAE,OAAO,EAAE;AACjF,wBAAwB,kBAAkB;AAC1C,wBAAwB,cAAc;AACtC,wBAAwB,WAAW;AACnC,wBAAwB,eAAe;AACvC,wBAAwB,eAAe;AACvC,wBAAwB,aAAa;AACrC,wBAAwB,aAAa;AACrC,wBAAwB,oBAAoB;AAC5C,wBAAwB,gBAAgB;AACxC,qBAAqB,EAAE,QAAQ,EAAE,86HAA86H,EAAE,MAAM,EAAE,CAAC,maAAma,CAAC,EAAE;AACh4I,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;ACzDhC,MAAM,+BAA+B,CAAC;AAC7C,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC;AAClC,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;AAC9B,IAAI,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC;AAClC,IAAI,EAAE;AACN,IAAI,SAAS,GAAG,KAAK;AACrB,IAAI,WAAW,GAAG,KAAK;AACvB,IAAI,QAAQ,GAAG,EAAE;AACjB,IAAI,MAAM,GAAG,cAAc;AAC3B,IAAI,YAAY,GAAG,YAAY;AAC/B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AAChE,IAAI;AACJ,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB,IAAI;AACJ,IAAI,IAAI,GAAG;AACX,QAAQ,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AAC7D,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,GAAG,CAAC,IAAI,EAAE;AAC9B,oBAAoB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI;AAC5C,gBAAgB;AAChB,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,UAAU,GAAG;AACjB,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC5B,YAAY,IAAI,CAAC,QAAQ,GAAG,EAAE;AAC9B,QAAQ;AACR,QAAQ,IAAI,CAAC;AACb,aAAa,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE;AACjC,YAAY,KAAK,EAAE,EAAE;AACrB,YAAY,WAAW,EAAE,EAAE;AAC3B,YAAY,OAAO,EAAE,EAAE;AACvB,YAAY,KAAK,EAAE,EAAE;AACrB,SAAS;AACT,aAAa,SAAS,CAAC;AACvB,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI;AACxC,gBAAgB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACnC,oBAAoB,EAAE,EAAE,OAAO,CAAC,EAAE;AAClC,oBAAoB,KAAK,EAAE,UAAU;AACrC,oBAAoB,WAAW,EAAE,EAAE;AACnC,oBAAoB,OAAO,EAAE,EAAE;AAC/B,oBAAoB,KAAK,EAAE,EAAE;AAC7B,iBAAiB,CAAC;AAClB,YAAY,CAAC;AACb,YAAY,KAAK,EAAE,CAAC,CAAC,KAAK;AAC1B,gBAAgB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;AAC7C,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,oBAAoB,CAAC,KAAK,EAAE;AAChC,QAAQ,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO;AACrC,QAAQ,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE;AACpC,QAAQ,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/C,QAAQ,IAAI,IAAI,EAAE;AAClB,YAAY,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE;AAC3C,YAAY,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;AACtC,YAAY,MAAM,CAAC,MAAM,GAAG,MAAM;AAClC,gBAAgB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AACpC,oBAAoB,OAAO,CAAC,KAAK,GAAG,EAAE;AACtC,gBAAgB;AAChB,gBAAgB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;AACnC,oBAAoB,GAAG,EAAE,MAAM,CAAC,MAAM;AACtC,oBAAoB,GAAG,EAAE,cAAc;AACvC,iBAAiB,CAAC;AAClB,gBAAgB,OAAO,CAAC,WAAW,GAAG,IAAI;AAC1C,gBAAgB,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE;AAC/C,gBAAgB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;AAC7C,gBAAgB,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,SAAS,CAAC;AACvF,oBAAoB,IAAI,EAAE,CAAC,GAAG,KAAK;AACnC,wBAAwB,IAAI,CAAC,WAAW,GAAG,KAAK;AAChD,wBAAwB,OAAO,CAAC,WAAW,GAAG,KAAK;AACnD,wBAAwB,OAAO,GAAG,CAAC,IAAI,CAAC,eAAe;AACvD,wBAAwB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE;AAChF,wBAAwB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG;AAClF,oBAAoB,CAAC;AACrB,oBAAoB,KAAK,EAAE,CAAC,CAAC,KAAK;AAClC,wBAAwB,IAAI,CAAC,WAAW,GAAG,KAAK;AAChD,wBAAwB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,OAAO,CAAC;AACzE,oBAAoB,CAAC;AACrB,iBAAiB,CAAC;AAClB,YAAY,CAAC;AACb,YAAY,MAAM,CAAC,OAAO,GAAG,CAAC,KAAK,KAAK;AACxC,gBAAgB,IAAI,CAAC,WAAW,GAAG,KAAK;AACxC,YAAY,CAAC;AACb,QAAQ;AACR,IAAI;AACJ,IAAI,oBAAoB,CAAC,KAAK,EAAE;AAChC,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;AACxE,YAAY,KAAK,EAAE,OAAO;AAC1B,YAAY,IAAI,EAAE;AAClB,gBAAgB,KAAK,EAAE,MAAM;AAC7B,gBAAgB,OAAO,EAAE,CAAC,MAAM,CAAC;AACjC,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK;AACtD,YAAY,IAAI,MAAM,EAAE;AACxB,gBAAgB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO;AAC7C,gBAAgB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE;AAC9C,gBAAgB,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE;AACtC,oBAAoB,EAAE,EAAE,OAAO;AAC/B,iBAAiB,CAAC;AAClB,gBAAgB,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC;AACvF,oBAAoB,IAAI,EAAE,CAAC,GAAG,KAAK;AACnC;AACA;AACA;AACA,oBAAoB,CAAC;AACrB,iBAAiB,CAAC;AAClB,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,aAAa,CAAC,OAAO,EAAE;AAC3B,QAAQ,OAAO,OAAO,CAAC,WAAW;AAClC,QAAQ,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC;AAC1E,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;AAC7C,YAAY,CAAC;AACb,YAAY,KAAK,EAAE,CAAC,CAAC,KAAK;AAC1B,gBAAgB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;AAC7C,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,eAAe,CAAC,OAAO,EAAE;AAC7B,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;AACxE,YAAY,KAAK,EAAE,OAAO;AAC1B,YAAY,IAAI,EAAE;AAClB,gBAAgB,KAAK,EAAE,MAAM;AAC7B,gBAAgB,OAAO,EAAE,WAAW;AACpC,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK;AACtD,YAAY,IAAI,MAAM,EAAE;AACxB,gBAAgB,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACzE,oBAAoB,IAAI,EAAE,CAAC,GAAG,KAAK;AACnC,wBAAwB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACpD,wBAAwB,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC9C,4BAA4B,EAAE,EAAE,OAAO,CAAC,EAAE;AAC1C,yBAAyB,CAAC;AAC1B,oBAAoB,CAAC;AACrB,oBAAoB,KAAK,EAAE,CAAC,CAAC,KAAK;AAClC,wBAAwB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;AACrD,oBAAoB,CAAC;AACrB,iBAAiB,CAAC;AAClB,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACzL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,+BAA+B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,mCAAmC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,ixBAAixB,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAET,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,iOAAiO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,8BAA8B,EAAE,QAAQ,EAAE,kCAAkC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kCAAkC,EAAE,QAAQ,EAAE,uCAAuC,EAAE,MAAM,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9iE;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,UAAU,EAAE,CAAC;AACzI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,mCAAmC,EAAE,OAAO,EAAE;AAC7E,wBAAwB,eAAe;AACvC,wBAAwB,aAAa;AACrC,wBAAwB,gBAAgB;AACxC,wBAAwB,8BAA8B;AACtD,wBAAwB,kCAAkC;AAC1D,qBAAqB,EAAE,QAAQ,EAAE,ixBAAixB,EAAE;AACpzB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC9KhC,MAAM,8BAA8B,CAAC;AAC5C,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACxL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,8BAA8B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,kCAAkC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,yCAAyC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;AACzU;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,UAAU,EAAE,CAAC;AACxI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,kCAAkC,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,yCAAyC,EAAE;AACjJ,SAAS,CAAC,EAAE,CAAC;;ACPN,MAAM,+BAA+B,CAAC;AAC7C,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACzL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,+BAA+B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,mCAAmC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,0CAA0C,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;AAC5U;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,UAAU,EAAE,CAAC;AACzI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,mCAAmC,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,0CAA0C,EAAE;AACnJ,SAAS,CAAC,EAAE,CAAC;;ACCN,MAAM,+BAA+B,SAAS,aAAa,CAAC;AACnE,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AAC3C,IAAI,QAAQ,GAAG,EAAE;AACjB,IAAI,QAAQ,GAAG,EAAE;AACjB,IAAI,iBAAiB,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,MAAM;AACpD,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AAC7B,YAAY,OAAO,KAAK;AACxB,QAAQ;AACR,QAAQ,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;AACjG,IAAI,CAAC,CAAC;AACN,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AAChE,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB,IAAI;AACJ,IAAI,OAAO,CAAC,GAAG,EAAE;AACjB,QAAQ,OAAO,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC;AACnD,IAAI;AACJ,IAAI,IAAI,GAAG;AACX,QAAQ,QAAQ,CAAC;AACjB,YAAY,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;AAClD,YAAY,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;AACnE,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK;AAChD,YAAY,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI;AACzC,YAAY,IAAI,OAAO,CAAC,IAAI,EAAE;AAC9B,gBAAgB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC;AACnE;AACA,gBAAgB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;AACrD,oBAAoB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;AACpD,wBAAwB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE;AACtD,oBAAoB;AACpB,gBAAgB;AAChB,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;AAC5C,QAAQ,IAAI,KAAK,KAAK,SAAS,EAAE;AACjC,YAAY,OAAO,CAAC,QAAQ,GAAG,QAAQ;AACvC,YAAY,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;AACnE,QAAQ;AACR,aAAa;AACb,YAAY,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,QAAQ;AACrD,YAAY,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI;AAC/E,QAAQ;AACR,IAAI;AACJ,IAAI,WAAW,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE;AAC7C,QAAQ,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE;AAC7D,QAAQ,IAAI,OAAO,EAAE;AACrB,YAAY,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AACxC,QAAQ;AACR,aAAa;AACb,YAAY,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC;AACzD,YAAY,IAAI,KAAK,KAAK,CAAC,CAAC;AAC5B,gBAAgB,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAC/C,QAAQ;AACR,QAAQ,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,cAAc;AACjD,IAAI;AACJ,IAAI,IAAI,GAAG;AACX,QAAQ,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC;AAClF,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,qBAAqB,CAAC;AAChE,YAAY,CAAC;AACb,YAAY,KAAK,EAAE,CAAC,KAAK,KAAK;AAC9B,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACxD,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,gBAAgB,CAAC,OAAO,EAAE;AAC9B,QAAQ,MAAM,OAAO,GAAG,EAAE;AAC1B,QAAQ,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AACtC,YAAY,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE;AAC/C,YAAY,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE;AAC3C,YAAY,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AACrC,gBAAgB,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE;AACvC,YAAY;AACZ;AACA,YAAY,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AACvD,gBAAgB,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;AAChD,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,OAAO;AACtB,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAC3L,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,+BAA+B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,mCAAmC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,mgEAAmgE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,8BAA8B,EAAE,QAAQ,EAAE,kCAAkC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,iOAAiO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;AAC73G;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,UAAU,EAAE,CAAC;AACzI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,mCAAmC,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,8BAA8B,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,CAAC,EAAE,QAAQ,EAAE,mgEAAmgE,EAAE;AAClsE,SAAS,CAAC,EAAE,CAAC;;AC/EN,MAAM,+BAA+B,SAAS,aAAa,CAAC;AACnE,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,WAAW,GAAG,EAAE;AACpB,IAAI,sBAAsB;AAC1B,IAAI,YAAY;AAChB,IAAI,uBAAuB;AAC3B,IAAI,YAAY;AAChB,IAAI,eAAe,GAAG,CAAC;AACvB,IAAI,MAAM,GAAG,KAAK;AAClB,IAAI,OAAO,GAAG;AACd,QAAQ,KAAK,EAAE,EAAE;AACjB,QAAQ,oBAAoB,EAAE,CAAC,YAAY,CAAC;AAC5C,QAAQ,QAAQ,EAAE,OAAO;AACzB,QAAQ,MAAM,EAAE,IAAI;AACpB,KAAK;AACL,IAAI,GAAG;AACP,IAAI,aAAa;AACjB,IAAI,YAAY;AAChB,IAAI,mBAAmB;AACvB,IAAI,QAAQ,GAAG,KAAK,CAAC;AACrB,QAAQ,UAAU,EAAE,EAAE;AACtB,QAAQ,YAAY,EAAE,EAAE;AACxB,QAAQ,IAAI,EAAE,EAAE;AAChB,QAAQ,MAAM,EAAE,EAAE;AAClB,QAAQ,IAAI,EAAE,EAAE;AAChB,QAAQ,QAAQ,EAAE,EAAE;AACpB,QAAQ,OAAO,EAAE,EAAE;AACnB,QAAQ,SAAS,EAAE,EAAE;AACrB,QAAQ,QAAQ,EAAE,EAAE;AACpB,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACzD,IAAI,wBAAwB;AAC5B,IAAI,iBAAiB;AACrB,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AAChE,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AAC5B;AACA,QAAQ;AACR,IAAI;AACJ,IAAI,IAAI,GAAG;AACX,QAAQ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACpD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B;AACA,gBAAgB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK;AAChD,oBAAoB,OAAO,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE;AAC3D,gBAAgB,CAAC,CAAC;AAClB,gBAAgB,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE;AACvC,oBAAoB,IAAI,CAAC,MAAM,GAAG,IAAI;AACtC,gBAAgB;AAChB,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,MAAM,eAAe,CAAC,KAAK,EAAE;AACjC,QAAQ,MAAM,KAAK,CAAC,WAAW,CAAC;AAChC,YAAY,MAAM,EAAE,CAAC,aAAa,EAAE,kBAAkB,CAAC;AACvD,SAAS,CAAC;AACV,QAAQ,MAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACpG,QAAQ,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,SAAS,CAAC;AAC/D,QAAQ,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,iBAAiB;AACvD,QAAQ,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,EAAE;AACpC,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;AACvC,IAAI;AACJ,IAAI,SAAS,CAAC,MAAM,EAAE;AACtB,QAAQ,OAAO,MAAM,IAAI,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,GAAG,EAAE;AACrE,IAAI;AACJ,IAAI,gBAAgB,CAAC,KAAK,EAAE;AAC5B,QAAQ,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK;AAC7C,QAAQ,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ;AAC3C;AACA,QAAQ,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,oBAAoB,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK;AACxJ,YAAY,MAAM,UAAU,GAAG,KAAK,CAAC,kBAAkB;AACvD,YAAY,MAAM,YAAY,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,IAAI,EAAE;AAC3G,YAAY,MAAM,YAAY,GAAG,YAAY,CAAC,eAAe,CAAC;AAC9D,YAAY,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC;AAC/C,YAAY,MAAM,IAAI,GAAG,YAAY,CAAC,aAAa,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC;AAChF,YAAY,MAAM,QAAQ,GAAG,YAAY,CAAC,aAAa,CAAC;AACxD,YAAY,IAAI,YAAY,EAAE;AAC9B,gBAAgB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK;AAChD,oBAAoB,KAAK,CAAC,YAAY,GAAG,YAAY;AACrD,oBAAoB,OAAO,EAAE,GAAG,KAAK,EAAE;AACvC,gBAAgB,CAAC,CAAC;AAClB,YAAY;AACZ,YAAY,IAAI,IAAI,EAAE;AACtB,gBAAgB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK;AAChD,oBAAoB,KAAK,CAAC,IAAI,GAAG,IAAI;AACrC,oBAAoB,OAAO,EAAE,GAAG,KAAK,EAAE;AACvC,gBAAgB,CAAC,CAAC;AAClB,YAAY;AACZ,YAAY,IAAI,QAAQ,EAAE;AAC1B,gBAAgB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK;AAChD,oBAAoB,KAAK,CAAC,QAAQ,GAAG,QAAQ;AAC7C,oBAAoB,OAAO,EAAE,GAAG,KAAK,EAAE;AACvC,gBAAgB,CAAC,CAAC;AAClB,YAAY;AACZ,YAAY,IAAI,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,IAAI,KAAK,EAAE,QAAQ,EAAE;AACzF,gBAAgB,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ;AACxD,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,YAAY,CAAC,OAAO,EAAE;AAC1B;AACA,QAAQ,OAAO,CAAC,YAAY,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,wBAAwB,EAAE;AAChF,IAAI;AACJ,IAAI,eAAe,GAAG;AACtB,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AAChD,YAAY,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK;AAC9D,gBAAgB,MAAM,MAAM,GAAG,GAAG;AAClC,gBAAgB,IAAI,CAAC,mBAAmB,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE;AACvF,gBAAgB,IAAI,CAAC,aAAa,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACxG,gBAAgB,IAAI,CAAC,YAAY,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,wBAAwB,EAAE;AACrF,YAAY,CAAC,CAAC;AACd,QAAQ;AACR,IAAI;AACJ,IAAI,aAAa,CAAC,CAAC,EAAE;AACrB,QAAQ,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK;AACpC,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9B,YAAY,MAAM,OAAO,GAAG;AAC5B,gBAAgB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK;AACrC,gBAAgB,YAAY,EAAE,IAAI,CAAC,YAAY;AAC/C,gBAAgB,mBAAmB,EAAE,CAAC,IAAI,CAAC;AAC3C,gBAAgB,MAAM,EAAE,IAAI;AAC5B,gBAAgB,oBAAoB,EAAE,CAAC,gBAAgB,EAAE,aAAa,CAAC;AACvE,aAAa;AACb,YAAY,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK;AAC3F,gBAAgB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;AACxC,gBAAgB,IAAI,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,IAAI,WAAW,EAAE;AACzF,oBAAoB,IAAI,CAAC,WAAW,GAAG,WAAW;AAClD,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,IAAI,CAAC,WAAW,GAAG,EAAE;AACzC,gBAAgB;AAChB,YAAY,CAAC,CAAC;AACd,QAAQ;AACR,aAAa;AACb,YAAY,IAAI,CAAC,WAAW,GAAG,EAAE;AACjC,QAAQ;AACR,IAAI;AACJ,IAAI,IAAI,GAAG;AACX,QAAQ,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC;AAChF,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,qBAAqB,CAAC;AAChE,YAAY,CAAC;AACb,YAAY,KAAK,EAAE,CAAC,KAAK,KAAK;AAC9B,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACxD,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE;AAC7C,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAC3L,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,+BAA+B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,mCAAmC,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,mBAAmB,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,m7EAAm7E,EAAE,MAAM,EAAE,CAAC,oJAAoJ,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,8BAA8B,EAAE,QAAQ,EAAE,kCAAkC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAED,IAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,8MAA8M,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,wIAAwI,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,qDAAqD,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,oBAAoB,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,yHAAyH,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,EAAE,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,qBAAqB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEE,IAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,YAAY,EAAE,eAAe,EAAE,OAAO,EAAE,8BAA8B,CAAC,EAAE,OAAO,EAAE,CAAC,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,mBAAmB,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,sBAAsB,EAAE,QAAQ,EAAE,mDAAmD,EAAE,MAAM,EAAE,CAAC,iBAAiB,EAAE,yBAAyB,EAAE,4BAA4B,EAAE,cAAc,EAAE,yBAAyB,CAAC,EAAE,QAAQ,EAAE,CAAC,wBAAwB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEE,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,iOAAiO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEG,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;AAC36M;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,UAAU,EAAE,CAAC;AACzI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,mCAAmC,EAAE,OAAO,EAAE;AAC7E,wBAAwB,8BAA8B;AACtD,wBAAwB,gBAAgB;AACxC,wBAAwB,WAAW;AACnC,wBAAwB,kBAAkB;AAC1C,wBAAwB,mBAAmB;AAC3C,wBAAwB,cAAc;AACtC,wBAAwB,WAAW;AACnC,wBAAwB,eAAe;AACvC,wBAAwB,qBAAqB;AAC7C,wBAAwB,eAAe;AACvC,wBAAwB,aAAa;AACrC,qBAAqB,EAAE,QAAQ,EAAE,m7EAAm7E,EAAE,MAAM,EAAE,CAAC,oJAAoJ,CAAC,EAAE;AACtnF,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,iBAAiB,EAAE,CAAC;AAClD,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,IAAI,EAAE,CAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;AAC7D,aAAa,CAAC,EAAE,EAAE,CAAC;;ACpLZ,MAAM,gCAAgC,CAAC;AAC9C,IAAI,GAAG,GAAG,EAAE;AACZ,IAAI,MAAM,GAAG,MAAM,EAAE;AACrB,IAAI,iBAAiB,CAAC,GAAG,EAAE;AAC3B,QAAQ,MAAM,KAAK,GAAG,qFAAqF;AAC3G,QAAQ,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;AACtC,QAAQ,OAAO,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;AACtC,IAAI;AACJ,IAAI,SAAS,GAAG;AAChB,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAClC,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gCAAgC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAC1L,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,gCAAgC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,qCAAqC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,sMAAsM,EAAE,MAAM,EAAE,CAAC,8BAA8B,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAER,IAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,oBAAoB,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,yHAAyH,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,EAAE,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,8MAA8M,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,qDAAqD,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;AAC12D;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gCAAgC,EAAE,UAAU,EAAE,CAAC;AAC1I,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,qCAAqC,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,sMAAsM,EAAE,MAAM,EAAE,CAAC,8BAA8B,CAAC,EAAE;AAC5Y,SAAS,CAAC,EAAE,CAAC;;ACvBN,MAAM,WAAW,CAAC;AACzB,IAAI,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC;AACpC,IAAI,SAAS,CAAC,GAAG,EAAE;AACnB,QAAQ,IAAI,CAAC,GAAG,EAAE;AAClB,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR;AACA,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,GAAG,CAAC;AACjE,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;AAChK,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AACxJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AACrH,YAAY,IAAI,EAAE,IAAI;AACtB,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,IAAI,EAAE,SAAS;AACnC,oBAAoB,UAAU,EAAE;AAChC,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACTN,MAAM,iBAAiB,CAAC;AAC/B,IAAI,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AACpC,IAAI,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AAC3B,IAAI,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AACzC,IAAI,OAAO,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF,IAAI,QAAQ,GAAG,KAAK,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1E,IAAI,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1E,IAAI,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3E,IAAI,UAAU,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF,IAAI,MAAM,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9E,IAAI,IAAI,GAAG,MAAM,EAAE;AACnB,IAAI,MAAM,GAAG,MAAM,EAAE;AACrB,IAAI,MAAM,GAAG,MAAM,EAAE;AACrB,IAAI,IAAI,GAAG,MAAM,EAAE;AACnB,IAAI,MAAM,GAAG,MAAM,EAAE;AACrB,IAAI,SAAS,GAAG,KAAK;AACrB,IAAI,OAAO,GAAG,KAAK;AACnB,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK;AAC9B,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AAC7B,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7B,IAAI;AACJ,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK;AAC9B,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AAC7B,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AAC/B,IAAI;AACJ,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AAC/B,IAAI;AACJ,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;AACjC,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI;AAC7B,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7B,IAAI;AACJ,IAAI,WAAW,CAAC,KAAK,EAAE;AACvB,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;AACjC,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI;AAC3B,IAAI;AACJ,IAAI,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE;AACvB,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC,SAAS,GAAG,IAAI;AACrC,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtC,IAAI;AACJ,IAAI,gBAAgB,CAAC,KAAK,EAAE;AAC5B,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;AACnC,YAAY;AACZ,QAAQ;AACR,QAAQ,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM;AACzC,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,GAAG,YAAY,CAAC,QAAQ;AACrD,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAC3K,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,iBAAiB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,8BAA8B,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,iBAAiB,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,4kFAA4kF,EAAE,MAAM,EAAE,CAAC,4GAA4G,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEF,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,iOAAiO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,sFAAsF,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;AACrjK;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC;AAC3H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,8BAA8B,EAAE,OAAO,EAAE;AACxE,wBAAwB,aAAa;AACrC,wBAAwB,mBAAmB;AAC3C,wBAAwB,WAAW;AACnC,wBAAwB,eAAe;AACvC,wBAAwB,gBAAgB;AACxC,wBAAwB,uBAAuB;AAC/C,wBAAwB,YAAY;AACpC,wBAAwB;AACxB,qBAAqB,EAAE,QAAQ,EAAE,4kFAA4kF,EAAE,MAAM,EAAE,CAAC,4GAA4G,CAAC,EAAE;AACvuF,SAAS,CAAC,EAAE,CAAC;;AC/DN,MAAM,4BAA4B,SAAS,aAAa,CAAC;AAChE,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,QAAQ,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3E,IAAI,MAAM,GAAG,EAAE;AACf,IAAI,IAAI;AACR,IAAI,aAAa,GAAG,KAAK;AACzB,IAAI,YAAY,GAAG,KAAK;AACxB,IAAI,YAAY;AAChB,IAAI,QAAQ,GAAG,qBAAqB;AACpC,IAAI,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAChC,IAAI,cAAc,GAAG,EAAE;AACvB,IAAI,WAAW,GAAG,EAAE;AACpB,IAAI,IAAI,aAAa,GAAG;AACxB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,qBAAqB,CAAC,OAAO,CAAC;AACpF,IAAI;AACJ,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,qBAAqB,CAAC,GAAG,CAAC;AAChF,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,EAAE;AACf,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;AACzC,YAAY,IAAI,KAAK,KAAK,CAAC,EAAE;AAC7B,gBAAgB,IAAI,CAAC,cAAc,GAAG,SAAS;AAC/C,YAAY;AACZ,YAAY,IAAI,KAAK,KAAK,CAAC,EAAE;AAC7B,gBAAgB,IAAI,CAAC,cAAc,GAAG,KAAK;AAC3C,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AAChE,QAAQ,IAAI,CAAC,SAAS,EAAE;AACxB,IAAI;AACJ,IAAI,SAAS,GAAG;AAChB,QAAQ,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AAC1D,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,EAAE;AACrE,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,UAAU,GAAG;AACjB,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI;AACjC,IAAI;AACJ,IAAI,YAAY,GAAG;AACnB,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI;AAChC,IAAI;AACJ,IAAI,aAAa,GAAG;AACpB,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,KAAK,EAAE,iBAAiB;AACpC,YAAY,UAAU,EAAE,QAAQ;AAChC,YAAY,WAAW,EAAE,SAAS;AAClC,YAAY,IAAI,EAAE;AAClB,gBAAgB,GAAG,EAAE,EAAE;AACvB,aAAa;AACb,YAAY,SAAS,EAAE,gCAAgC;AACvD,SAAS;AACT,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;AACxC,QAAQ,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC;AACjD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,GAAG,EAAE;AACzB,oBAAoB,MAAM,IAAI,GAAG;AACjC,wBAAwB,GAAG,EAAE,GAAG;AAChC,wBAAwB,KAAK,EAAE,SAAS;AACxC,wBAAwB,QAAQ,EAAE,qBAAqB,CAAC;AACxD,qBAAqB;AACrB,oBAAoB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC;AAC3E,wBAAwB,IAAI,EAAE,CAAC,GAAG,KAAK;AACvC,4BAA4B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACtD,4BAA4B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC;AACpE,wBAAwB,CAAC;AACzB,qBAAqB,CAAC;AACtB,gBAAgB;AAChB,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,gBAAgB,CAAC,KAAK,EAAE;AAC5B,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,KAAK,EAAE,oBAAoB;AACvC,YAAY,UAAU,EAAE,QAAQ;AAChC,YAAY,WAAW,EAAE,SAAS;AAClC,YAAY,IAAI,EAAE;AAClB,gBAAgB,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE;AACrC,aAAa;AACb,YAAY,SAAS,EAAE,gCAAgC;AACvD,SAAS;AACT,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;AACxC,QAAQ,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC;AACjD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,GAAG,EAAE;AACzB,oBAAoB,MAAM,IAAI,GAAG;AACjC,wBAAwB,GAAG,EAAE,GAAG;AAChC,wBAAwB,KAAK,EAAE,KAAK,CAAC;AACrC,qBAAqB;AACrB,oBAAoB,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC;AACxF,wBAAwB,IAAI,EAAE,CAAC,GAAG,KAAK;AACvC,4BAA4B,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG;AACpD;AACA,4BAA4B,IAAI,CAAC,YAAY,GAAG,KAAK;AACrD,4BAA4B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,qBAAqB,CAAC;AAC5E,wBAAwB,CAAC;AACzB,qBAAqB,CAAC;AACtB,gBAAgB;AAChB,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,cAAc,CAAC,OAAO,EAAE;AAC5B,QAAQ,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC;AAC7E,QAAQ,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO;AACrC,QAAQ,OAAO,CAAC,uCAAuC,EAAE,EAAE,CAAC,CAAC;AAC7D,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,MAAM,KAAK,GAAG;AACtB,YAAY,QAAQ,EAAE,qBAAqB,CAAC;AAC5C,SAAS;AACT,QAAQ,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC;AAChE,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE;AAC9C,gBAAgB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AAC1C,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,cAAc,CAAC,KAAK,EAAE;AAC1B,QAAQ,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,KAAK;AACxC,QAAQ,MAAM,IAAI,GAAG;AACrB,YAAY,KAAK,EAAE;AACnB,SAAS;AACT,QAAQ,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC;AACtE,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,qBAAqB,CAAC;AAChE,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE;AACnC,QAAQ,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE;AACvB,YAAY;AACZ,QAAQ;AACR,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,KAAK,EAAE,gBAAgB;AACnC,YAAY,OAAO,EAAE,eAAe;AACpC,YAAY,UAAU,EAAE,QAAQ;AAChC,YAAY,WAAW,EAAE,IAAI;AAC7B,SAAS;AACT,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;AACxC,QAAQ,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC;AACjD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,GAAG,EAAE;AACzB,oBAAoB,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AAClF,wBAAwB,IAAI,EAAE,GAAG,IAAI;AACrC,4BAA4B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC;AACpF,4BAA4B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC;AACtE,wBAAwB,CAAC;AACzB,wBAAwB,KAAK,EAAE,CAAC,KAAK,KAAK;AAC1C,4BAA4B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACpE,wBAAwB,CAAC;AACzB,qBAAqB,CAAC;AACtB,gBAAgB;AAChB,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,WAAW,CAAC,KAAK,EAAE,EAAE;AACzB,IAAI,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;AAClC,IAAI,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE;AACnC,QAAQ,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/C,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB,YAAY;AACZ,QAAQ;AACR,QAAQ,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;AAC7C,QAAQ,KAAK,CAAC,QAAQ,GAAG,CAAC;AAC1B,QAAQ,KAAK,CAAC,SAAS,GAAG,IAAI;AAC9B,QAAQ,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE;AACvC,QAAQ,IAAI,MAAM,CAAC,UAAU,KAAK,UAAU,CAAC,KAAK,EAAE;AACpD,YAAY,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK;AACzC,gBAAgB,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM;AAClD,gBAAgB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK;AAC1E,oBAAoB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;AACrE,oBAAoB,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AACxG,oBAAoB,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE;AACzG,oBAAoB,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC;AACnF,wBAAwB,IAAI,EAAE,CAAC,GAAG,KAAK;AACvC,4BAA4B,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;AAC3E,wBAAwB,CAAC;AACzB,wBAAwB,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;AACzC,qBAAqB,CAAC;AACtB,gBAAgB,CAAC,CAAC;AAClB,YAAY,CAAC;AACb,YAAY,MAAM,CAAC,OAAO,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;AAC3C,YAAY,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAC1C,QAAQ;AACR,IAAI;AACJ,IAAI,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;AACtC,QAAQ,IAAI,aAAa,GAAG,CAAC;AAC7B,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;AACxD,QAAQ,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM;AACnD,QAAQ,IAAI,CAAC,aAAa;AAC1B,aAAa,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC;AACpH,aAAa,SAAS,CAAC,CAAC,GAAG,KAAK;AAChC,YAAY,aAAa,EAAE;AAC3B,YAAY,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa,GAAG,cAAc,IAAI,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;AACzE,YAAY,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC;AAC1C,YAAY,IAAI,aAAa,KAAK,cAAc,EAAE;AAClD,gBAAgB,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC;AAC5D,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE;AACpC,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;AACtC,QAAQ,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC;AAChF,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,KAAK,CAAC,SAAS,GAAG,KAAK;AACvC,YAAY,CAAC;AACb,YAAY,KAAK,EAAE,CAAC,CAAC,KAAK;AAC1B,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,OAAO,CAAC;AACxE,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE;AAChD,QAAQ,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE;AACvC,QAAQ,OAAO,IAAI,UAAU,CAAC,CAAC,QAAQ,KAAK;AAC5C,YAAY,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAC1C,YAAY,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK;AACnC,gBAAgB,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM;AAClD,gBAAgB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK;AAC1E,oBAAoB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;AACrE,oBAAoB,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AACxG,oBAAoB,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE;AACnD,oBAAoB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;AACjD,oBAAoB,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC;AACzD,oBAAoB,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC;AACxD,oBAAoB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;AACpD,oBAAoB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;AAClD,oBAAoB,IAAI,CAAC,eAAe,CAAC,2BAA2B,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,SAAS,CAAC;AACtG,wBAAwB,IAAI,EAAE,CAAC,GAAG,KAAK;AACvC,4BAA4B,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;AAC9C,4BAA4B,QAAQ,CAAC,QAAQ,EAAE;AAC/C,wBAAwB,CAAC;AACzB,wBAAwB,KAAK,EAAE,CAAC,CAAC,KAAK;AACtC,4BAA4B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,OAAO,CAAC;AACpF,wBAAwB,CAAC;AACzB,qBAAqB,CAAC;AACtB,gBAAgB,CAAC,CAAC;AAClB,YAAY,CAAC;AACb,YAAY,MAAM,CAAC,OAAO,GAAG,CAAC,KAAK,KAAK;AACxC,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AACpE,YAAY,CAAC;AACb,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE;AACjD,QAAQ,MAAM,aAAa,GAAG,EAAE;AAChC,QAAQ,IAAI,KAAK,GAAG,CAAC;AACrB,QAAQ,OAAO,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE;AAClC,YAAY,aAAa,CAAC,IAAI,CAAC;AAC/B,gBAAgB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;AACrD,aAAa,CAAC;AACd,YAAY,KAAK,IAAI,IAAI;AACzB,QAAQ;AACR,QAAQ,OAAO,aAAa;AAC5B,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACtL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,4BAA4B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,gCAAgC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,8gEAA8gE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,8BAA8B,EAAE,QAAQ,EAAE,kCAAkC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEF,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,iOAAiO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,8BAA8B,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;AACpkH;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,UAAU,EAAE,CAAC;AACtI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,gCAAgC,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,EAAE,8BAA8B,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,8gEAA8gE,EAAE;AAC7vE,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AClQhC,MAAM,wBAAwB,SAAS,aAAa,CAAC;AAC5D,IAAI,yBAAyB,GAAG,MAAM,CAAC,yBAAyB,CAAC;AACjE,IAAI,UAAU,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChF,IAAI,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7E,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACjF,IAAI,KAAK,GAAG,EAAE;AACd,IAAI,SAAS,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChF,IAAI,QAAQ,GAAG,EAAE;AACjB,IAAI,QAAQ,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/E,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AAChE,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,IAAI;AACJ,IAAI,UAAU,GAAG;AACjB;AACA,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AAC7B,YAAY,IAAI,CAAC,UAAU,EAAE;AAC7B,QAAQ;AACR,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACvC,IAAI;AACJ,IAAI,MAAM,GAAG;AACb,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AAC9B,QAAQ,IAAI,CAAC,yBAAyB,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACxE,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;AAC9D,YAAY,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,2BAA2B,EAAE,CAAC,CAAC;AAClE,YAAY,QAAQ,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;AACnD,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;AACtC,QAAQ,IAAI,CAAC,IAAI;AACjB,YAAY;AACZ;AACA,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE;AACxC,QAAQ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC;AAC9C,QAAQ,IAAI,CAAC,KAAK,GAAG,EAAE;AACvB,QAAQ,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC;AAC7E,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AACxD,YAAY,KAAK,EAAE,CAAC,CAAC,KAAK;AAC1B,gBAAgB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;AAC3C,gBAAgB,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;AACzC,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE;AAC5B,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC5B,YAAY,OAAO;AACnB,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;AACjC,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK;AAC7B,IAAI;AACJ,IAAI,UAAU,GAAG;AACjB,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;AAChC,QAAQ,IAAI,CAAC,QAAQ,GAAG,EAAE;AAC1B,IAAI;AACJ,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AACzC,QAAQ,IAAI,CAAC,IAAI;AACjB,YAAY;AACZ,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE;AACxC,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE;AACnC,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI;AAC1B,QAAQ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;AACjC,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;AAChC,QAAQ,IAAI,CAAC,QAAQ,GAAG,EAAE;AAC1B,QAAQ,IAAI,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC;AACzF,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AACxD,YAAY,KAAK,EAAE,CAAC,CAAC,KAAK;AAC1B,gBAAgB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;AAC3C,gBAAgB,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC;AAC5C,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE;AACxC,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE;AACnC,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAC7B,QAAQ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;AACjC,QAAQ,IAAI,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC;AACnF,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AACxD,YAAY,KAAK,EAAE,CAAC,CAAC,KAAK;AAC1B,gBAAgB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;AAC3C,gBAAgB,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC;AAC5C,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,CAAC,GAAG,EAAE;AACjB,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,aAAa,KAAK,GAAG,CAAC,YAAY;AACtE,YAAY;AACZ,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE;AACxC,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE;AACnC,QAAQ,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,YAAY,CAAC;AAClE,QAAQ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;AACjC,QAAQ,IAAI,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC;AACjH,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AACxD,YAAY,KAAK,EAAE,CAAC,CAAC,KAAK;AAC1B,gBAAgB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;AAC3C,gBAAgB,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC;AAC7C,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,GAAG;AACd,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE;AACtC,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;AAChC,QAAQ,IAAI,CAAC,yBAAyB,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC;AACrF,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AACxD,YAAY,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxD,YAAY,QAAQ,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;AACrD,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE;AACjB,QAAQ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC;AACtC;AACA,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACpL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,wBAAwB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,qCAAqC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,8kFAA8kF,EAAE,MAAM,EAAE,CAAC,uMAAuM,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,8BAA8B,EAAE,QAAQ,EAAE,kCAAkC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,iOAAiO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,sFAAsF,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,oBAAoB,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,8CAA8C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,8MAA8M,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,0FAA0F,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,kBAAkB,EAAE,QAAQ,EAAE,4EAA4E,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,qDAAqD,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,wDAAwD,EAAE,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,8BAA8B,EAAE,MAAM,EAAE,CAAC,wBAAwB,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,IAAI,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,+BAA+B,EAAE,2BAA2B,EAAE,6BAA6B,EAAE,sBAAsB,CAAC,EAAE,OAAO,EAAE,CAAC,oBAAoB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,mBAAmB,CAAC,EAAE,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,aAAa,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,uBAAuB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,wBAAwB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,kBAAkB,EAAE,QAAQ,EAAE,mCAAmC,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,oBAAoB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,yHAAyH,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,EAAE,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;AAC37O;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,UAAU,EAAE,CAAC;AAClI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,qCAAqC,EAAE,OAAO,EAAE;AAC/E,wBAAwB,8BAA8B;AACtD,wBAAwB,gBAAgB;AACxC,wBAAwB,eAAe;AACvC,wBAAwB,OAAO;AAC/B,wBAAwB,kBAAkB;AAC1C,wBAAwB,YAAY;AACpC,wBAAwB,WAAW;AACnC,wBAAwB,cAAc;AACtC,wBAAwB,aAAa;AACrC,wBAAwB,wBAAwB;AAChD,wBAAwB,cAAc;AACtC,qBAAqB,EAAE,QAAQ,EAAE,8kFAA8kF,EAAE,MAAM,EAAE,CAAC,uMAAuM,CAAC,EAAE;AACp0F,SAAS,CAAC,EAAE,CAAC;;ACzIN,MAAM,iBAAiB,SAAS,aAAa,CAAC;AACrD,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,aAAa,GAAG,EAAE;AACtB,IAAI,eAAe,GAAG,EAAE;AACxB,IAAI,YAAY,GAAG,CAAC;AACpB,IAAI,cAAc,GAAG,CAAC;AACtB,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AAChE,QAAQ,IAAI,CAAC,GAAG,EAAE;AAClB,IAAI;AACJ,IAAI,GAAG,GAAG;AACV,QAAQ,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACvD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC;AAC9D,gBAAgB,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC;AAClE,YAAY;AACZ,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,GAAG,GAAG;AACV,QAAQ,MAAM,IAAI,GAAG;AACrB,YAAY,YAAY,EAAE,IAAI,CAAC,YAAY;AAC3C,YAAY,cAAc,EAAE,IAAI,CAAC;AACjC,SAAS;AACT,QAAQ,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC;AAC7D,YAAY,IAAI,EAAE,GAAG,IAAI;AACzB,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC;AACtD,YAAY;AACZ,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,IAAI,GAAG;AACrB,YAAY,YAAY,EAAE,IAAI,CAAC,YAAY;AAC3C,YAAY,cAAc,EAAE,IAAI,CAAC;AACjC,SAAS;AACT,QAAQ,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC;AAChE,YAAY,IAAI,EAAE,GAAG,IAAI;AACzB,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC;AACxD,YAAY;AACZ,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAC7K,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,iBAAiB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,8BAA8B,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,29BAA29B,EAAE,MAAM,EAAE,CAAC,8BAA8B,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,8BAA8B,EAAE,QAAQ,EAAE,kCAAkC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,cAAc,EAAE,gBAAgB,EAAE,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEL,IAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,oBAAoB,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,8MAA8M,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,qDAAqD,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,yHAAyH,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,EAAE,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEE,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,iOAAiO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;AACvzG;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC;AAC3H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,8BAA8B,EAAE,OAAO,EAAE,CAAC,8BAA8B,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,CAAC,EAAE,QAAQ,EAAE,29BAA29B,EAAE,MAAM,EAAE,CAAC,8BAA8B,CAAC,EAAE;AACztC,SAAS,CAAC,EAAE,CAAC;;AC1DN,MAAM,yBAAyB,CAAC;AACvC,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACnL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,yBAAyB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,sCAAsC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,6CAA6C,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAClR;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,CAAC;AACnI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,sCAAsC,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,6CAA6C,EAAE;AAC7I,SAAS,CAAC,EAAE,CAAC;;ACLN,MAAM,sBAAsB,CAAC;AACpC,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAChL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,sBAAsB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,mCAAmC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,wLAAwL,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,8BAA8B,EAAE,QAAQ,EAAE,kCAAkC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;AAClqB;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,CAAC;AAChI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,mCAAmC,EAAE,OAAO,EAAE,CAAC,8BAA8B,EAAE,gBAAgB,CAAC,EAAE,QAAQ,EAAE,wLAAwL,EAAE;AACrU,SAAS,CAAC,EAAE,CAAC;;ACPN,MAAM,uBAAuB,CAAC;AACrC,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACjL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,uBAAuB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,oCAAoC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,yLAAyL,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,8BAA8B,EAAE,QAAQ,EAAE,kCAAkC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;AACrqB;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,UAAU,EAAE,CAAC;AACjI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,oCAAoC,EAAE,OAAO,EAAE,CAAC,8BAA8B,EAAE,gBAAgB,CAAC,EAAE,QAAQ,EAAE,yLAAyL,EAAE;AACvU,SAAS,CAAC,EAAE,CAAC;;ACKD,MAAC,oBAAoB,GAAG;AACpC,IAAI;AACJ,QAAQ,IAAI,EAAE,EAAE;AAChB,QAAQ,SAAS,EAAE,4BAA4B;AAC/C,KAAK;AACL,IAAI;AACJ,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,SAAS,EAAE,6BAA6B;AAChD,KAAK;AACL,IAAI;AACJ,QAAQ,IAAI,EAAE,YAAY;AAC1B,QAAQ,SAAS,EAAE,6BAA6B;AAChD,QAAQ,QAAQ,EAAE;AAClB,YAAY;AACZ,gBAAgB,IAAI,EAAE,MAAM;AAC5B,gBAAgB,SAAS,EAAE,2BAA2B;AACtD,aAAa;AACb,YAAY;AACZ,gBAAgB,IAAI,EAAE,OAAO;AAC7B,gBAAgB,SAAS,EAAE,4BAA4B;AACvD,aAAa;AACb,YAAY;AACZ,gBAAgB,IAAI,EAAE,QAAQ;AAC9B,gBAAgB,SAAS,EAAE,4BAA4B;AACvD,aAAa;AACb,YAAY;AACZ,gBAAgB,IAAI,EAAE,UAAU;AAChC,gBAAgB,SAAS,EAAE,+BAA+B;AAC1D,aAAa;AACb,YAAY;AACZ,gBAAgB,IAAI,EAAE,WAAW;AACjC,gBAAgB,SAAS,EAAE,uBAAuB;AAClD,aAAa;AACb,YAAY;AACZ,gBAAgB,IAAI,EAAE,UAAU;AAChC,gBAAgB,SAAS,EAAE,+BAA+B;AAC1D,aAAa;AACb,YAAY;AACZ,gBAAgB,IAAI,EAAE,UAAU;AAChC,gBAAgB,SAAS,EAAE,+BAA+B;AAC1D,aAAa;AACb,YAAY;AACZ,gBAAgB,IAAI,EAAE,UAAU;AAChC,gBAAgB,SAAS,EAAE,sBAAsB;AACjD,aAAa;AACb,YAAY;AACZ,gBAAgB,IAAI,EAAE,YAAY;AAClC,gBAAgB,SAAS,EAAE,wBAAwB;AACnD,aAAa;AACb,YAAY;AACZ,gBAAgB,IAAI,EAAE,KAAK;AAC3B,gBAAgB,SAAS,EAAE,iBAAiB;AAC5C,aAAa;AACb,YAAY;AACZ,gBAAgB,IAAI,EAAE,aAAa;AACnC,gBAAgB,SAAS,EAAE,yBAAyB;AACpD,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,SAAS,EAAE,8BAA8B;AACzD,aAAa;AACb,YAAY;AACZ,gBAAgB,IAAI,EAAE,UAAU;AAChC,gBAAgB,SAAS,EAAE,+BAA+B;AAC1D,aAAa;AACb,SAAS;AACT,KAAK;AACL;;ACxFO,MAAM,oCAAoC,CAAC;AAClD,IAAI,MAAM,GAAG,MAAM,EAAE;AACrB,IAAI,YAAY,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1F,IAAI,YAAY,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1F,IAAI,SAAS,GAAG;AAChB,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9B,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oCAAoC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAC9L,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,oCAAoC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,wCAAwC,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE,oBAAoB,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,6JAA6J,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;AACt1B;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oCAAoC,EAAE,UAAU,EAAE,CAAC;AAC9I,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,wCAAwC,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,6JAA6J,EAAE;AAC3Q,SAAS,CAAC,EAAE,CAAC;;ACNN,MAAM,qCAAqC,SAAS,aAAa,CAAC;AACzE,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,OAAO;AACX,IAAI,IAAI,GAAG,EAAE;AACb,IAAI,QAAQ;AACZ,IAAI,MAAM,GAAG,qBAAqB;AAClC,IAAI,gBAAgB,GAAG,gBAAgB;AACvC,IAAI,sBAAsB,GAAG,sBAAsB;AACnD,IAAI,KAAK;AACT,IAAI,oBAAoB,GAAG,KAAK;AAChC,IAAI,cAAc,GAAG,EAAE;AACvB,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,IAAI;AACJ,IAAI,UAAU,GAAG;AACjB,QAAQ,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AAC3D,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI;AACvC,gBAAgB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ;AACjF,gBAAgB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;AACzD,gBAAgB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,GAAG,KAAK;AACnF,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,WAAW,CAAC,UAAU,EAAE;AAC5B,QAAQ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC;AACvD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI;AACxC,gBAAgB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC9D,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,kBAAkB,CAAC,OAAO,EAAE;AAChC,QAAQ,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;AAClE,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,KAAK,GAAG,GAAG;AAChC,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,wBAAwB,GAAG;AAC/B,QAAQ,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;AAC9E,YAAY,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,WAAW;AACnG,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,cAAc,GAAG,mBAAmB,CAAC,EAAE;AACpD,IAAI;AACJ,IAAI,kBAAkB,CAAC,IAAI,EAAE;AAC7B,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,KAAK,EAAE,sBAAsB;AACzC,YAAY,SAAS,EAAE,oCAAoC;AAC3D,YAAY,IAAI,EAAE;AAClB,gBAAgB,YAAY,EAAE,IAAI;AAClC,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;AACxC,QAAQ,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC;AACjD,YAAY,IAAI,EAAE,CAAC,MAAM,KAAK;AAC9B,gBAAgB,IAAI,MAAM,EAAE;AAC5B,oBAAoB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;AACvC,oBAAoB,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACpF,wBAAwB,IAAI,EAAE,CAAC,GAAG,KAAK;AACvC,4BAA4B,IAAI,CAAC,oBAAoB,GAAG,IAAI;AAC5D,wBAAwB,CAAC;AACzB,qBAAqB,CAAC;AACtB,gBAAgB;AAChB,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qCAAqC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACjM,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,qCAAqC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,0CAA0C,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,qyJAAqyJ,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEH,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,iOAAiO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,sBAAsB,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC;AACjyL;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qCAAqC,EAAE,UAAU,EAAE,CAAC;AAC/I,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,0CAA0C,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,eAAe,CAAC,EAAE,QAAQ,EAAE,qyJAAqyJ,EAAE;AACh+J,SAAS,CAAC,EAAE,CAAC;;ACnFD,MAAC,4BAA4B,GAAG;AAC5C,IAAI;AACJ,QAAQ,IAAI,EAAE,EAAE;AAChB,QAAQ,aAAa,EAAE,MAAM,OAAO,mFAA2E,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,oCAAoC,CAAC;AACpK,KAAK;AACL,IAAI;AACJ,QAAQ,IAAI,EAAE,KAAK;AACnB,QAAQ,SAAS,EAAE,qCAAqC;AACxD,KAAK;AACL;;ACFO,MAAM,iBAAiB,CAAC;AAC/B,IAAI,QAAQ,GAAG,IAAI;AACnB,IAAI,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AAC3B,IAAI,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9E,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACpF,IAAI,MAAM,GAAG,cAAc;AAC3B,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;AAClI,IAAI,WAAW,GAAG;AAClB,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;AAC7B,gBAAgB,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;AAC9D,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;AACjE,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAC3K,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,iBAAiB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,8BAA8B,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,oCAAoC,EAAE,eAAe,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,+gCAA+gC,EAAE,MAAM,EAAE,CAAC,gPAAgP,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,yBAAyB,EAAE,QAAQ,EAAE,4BAA4B,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,sBAAsB,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC;AACx2E;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC;AAC3H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,8BAA8B,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,eAAe,EAAE,aAAa,CAAC,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,+gCAA+gC,EAAE,MAAM,EAAE,CAAC,gPAAgP,CAAC,EAAE;AACr+C,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC;AACnE,gBAAgB,IAAI,EAAE,WAAW;AACjC,gBAAgB,IAAI,EAAE,CAAC,oCAAoC;AAC3D,aAAa,CAAC,EAAE,EAAE,CAAC;;AC1BZ,MAAM,kBAAkB,CAAC;AAChC,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,OAAO,GAAG,KAAK;AACnB,IAAI,QAAQ;AACZ,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB,IAAI;AACJ,IAAI,IAAI,GAAG;AACX,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI;AAC3B,QAAQ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AAChD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI;AACxC,gBAAgB,IAAI,CAAC,OAAO,GAAG,KAAK;AACpC,YAAY,CAAC;AACb,YAAY,KAAK,EAAE,KAAK,IAAI;AAC5B,gBAAgB,IAAI,CAAC,OAAO,GAAG,KAAK;AACpC,YAAY;AACZ,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAC5K,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,kBAAkB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,+BAA+B,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,qtBAAqtB,EAAE,MAAM,EAAE,CAAC,ohBAAohB,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,8BAA8B,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;AACjrE;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC;AAC5H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,+BAA+B,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,UAAU,EAAE,iBAAiB,CAAC,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,qtBAAqtB,EAAE,MAAM,EAAE,CAAC,ohBAAohB,CAAC,EAAE;AACr9C,SAAS,CAAC,EAAE,CAAC;;AC1BN,MAAM,cAAc,CAAC;AAC5B,IAAI,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9E,IAAI,cAAc,GAAG,MAAM,EAAE;AAC7B,IAAI,KAAK,GAAG,MAAM,EAAE;AACpB,IAAI,OAAO,GAAG,MAAM,EAAE;AACtB,IAAI,cAAc,GAAG,QAAQ,CAAC,MAAM;AACpC,QAAQ,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AAChD,IAAI,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/D,IAAI,gBAAgB,CAAC,OAAO,EAAE;AAC9B,QAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AACzC,IAAI;AACJ,IAAI,OAAO,CAAC,OAAO,EAAE;AACrB,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;AAChC,IAAI;AACJ,IAAI,SAAS,CAAC,OAAO,EAAE;AACvB,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;AAClC,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACxK,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,0BAA0B,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,wgBAAwgB,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,iOAAiO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;AAC9+C;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AACxH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,0BAA0B,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,CAAC,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,wgBAAwgB,EAAE;AAC9rB,SAAS,CAAC,EAAE,CAAC;;ACvBN,MAAM,oBAAoB,CAAC;AAClC,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC5E,IAAI,SAAS,GAAG,MAAM,EAAE;AACxB,IAAI,UAAU,GAAG,MAAM,EAAE;AACzB,IAAI,WAAW,GAAG,EAAE;AACpB,IAAI,YAAY,CAAC,QAAQ,EAAE;AAC3B,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;AACtC,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAC9K,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,oBAAoB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,iCAAiC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,8IAA8I,EAAE,MAAM,EAAE,CAAC,0DAA0D,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,iOAAiO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;AAChqC;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC;AAC9H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,iCAAiC,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,CAAC,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,8IAA8I,EAAE,MAAM,EAAE,CAAC,0DAA0D,CAAC,EAAE;AACjZ,SAAS,CAAC,EAAE,CAAC;;ACJN,MAAM,mBAAmB,SAAS,aAAa,CAAC;AACvD,IAAI,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACrC,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa;AAClD,IAAI,QAAQ;AACZ,IAAI,QAAQ,GAAG,EAAE;AACjB,IAAI,QAAQ,GAAG,EAAE;AACjB,IAAI,IAAI;AACR,IAAI,UAAU,GAAG,KAAK;AACtB,IAAI,SAAS,GAAG,KAAK;AACrB,IAAI,cAAc;AAClB,IAAI,QAAQ,GAAG,EAAE;AACjB,IAAI,eAAe;AACnB,IAAI,aAAa,GAAG,MAAM,CAAC,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7F,IAAI,oBAAoB,GAAG,QAAQ,CAAC,MAAM;AAC1C,QAAQ,OAAO,IAAI,CAAC,aAAa,EAAE;AACnC,IAAI,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrE;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,EAAE;AACf,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACtC,gBAAgB,IAAI,CAAC,aAAa,EAAE;AACpC,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACpD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI;AACxC,gBAAgB,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AAC5C,oBAAoB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ;AAC1D,oBAAoB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3D;AACA;AACA;AACA,gBAAgB;AAChB,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC5D,gBAAgB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACpE,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE;AACnC,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;AAC5C,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC;AACtG,YAAY,IAAI,KAAK,EAAE;AACvB,gBAAgB,OAAO,IAAI;AAC3B,YAAY;AACZ,YAAY,OAAO,IAAI;AACvB,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,gBAAgB,CAAC,MAAM,EAAE;AAC7B,QAAQ,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC;AACjE,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI;AACxC,gBAAgB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ;AAC5C,gBAAgB,IAAI,CAAC,IAAI,GAAG,GAAG;AAC/B,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,aAAa,GAAG;AACpB,QAAQ,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AAC9D,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,IAAI;AAC1C,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,MAAM,CAAC,CAAC,EAAE;AACd,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AAClC,YAAY,IAAI,IAAI,CAAC,UAAU,EAAE;AACjC,gBAAgB,IAAI,CAAC,kBAAkB,EAAE;AACzC,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,aAAa,EAAE;AACpC,YAAY;AACZ,QAAQ;AACR,aAAa;AACb,YAAY,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC;AACvD,QAAQ;AACR,IAAI;AACJ,IAAI,gBAAgB,CAAC,CAAC,EAAE;AACxB,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;AAC1E,IAAI;AACJ,IAAI,kBAAkB,GAAG;AACzB,QAAQ,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACnE,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,UAAU,GAAG,KAAK;AACvC,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC;AACpD,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,aAAa,GAAG;AACpB,QAAQ,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AAC9D,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,UAAU,GAAG,IAAI;AACtC,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;AAClD,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,CAAC,CAAC,EAAE;AACf,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AAClC,YAAY,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAChE,QAAQ;AACR,aAAa;AACb,YAAY,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC;AACvD,QAAQ;AACR,IAAI;AACJ,IAAI,cAAc,CAAC,CAAC,EAAE;AACtB,QAAQ,MAAM,QAAQ,GAAG,EAAE;AAC3B,QAAQ,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK;AACnD,YAAY,QAAQ,CAAC,IAAI,CAAC;AAC1B,gBAAgB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE;AACvF,gBAAgB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE;AACpF,aAAa,CAAC;AACd,QAAQ,CAAC,CAAC;AACV;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM,kBAAkB,GAAG,CAAC,OAAO,EAAE,QAAQ,KAAK;AAC1D,YAAY,OAAO,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,SAAS,KAAK;AACpD,gBAAgB,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,SAAS,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,SAAS,CAAC,OAAO,CAAC;AAC7H,YAAY,CAAC,CAAC;AACd,QAAQ,CAAC;AACT;AACA,QAAQ,MAAM,yBAAyB,GAAG,CAAC,OAAO,KAAK;AACvD,YAAY,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM;AAClD,gBAAgB,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE;AACrC,gBAAgB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE;AACnC,aAAa,CAAC,CAAC;AACf,QAAQ,CAAC;AACT;AACA,QAAQ,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,KAAK,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACzG,QAAQ,IAAI,CAAC,eAAe,GAAG,eAAe;AAC9C;AACA,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAC7K,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,gCAAgC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,onEAAonE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,wBAAwB,EAAE,QAAQ,EAAE,2BAA2B,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,wBAAwB,EAAE,QAAQ,EAAE,2BAA2B,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,0BAA0B,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,gBAAgB,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,iCAAiC,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,yBAAyB,EAAE,QAAQ,EAAE,4BAA4B,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,yBAAyB,EAAE,QAAQ,EAAE,4BAA4B,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,kCAAkC,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;AACn1H;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC;AAC7H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,gCAAgC,EAAE,OAAO,EAAE;AAC1E,wBAAwB,mBAAmB;AAC3C,wBAAwB,uBAAuB;AAC/C,wBAAwB,kBAAkB;AAC1C,wBAAwB,qBAAqB;AAC7C,wBAAwB,sBAAsB;AAC9C,wBAAwB,wBAAwB;AAChD,wBAAwB,wBAAwB;AAChD,wBAAwB,cAAc;AACtC,wBAAwB,oBAAoB;AAC5C,wBAAwB,yBAAyB;AACjD,wBAAwB,yBAAyB;AACjD,wBAAwB,sBAAsB;AAC9C,wBAAwB;AACxB,qBAAqB,EAAE,QAAQ,EAAE,onEAAonE,EAAE;AACvpE,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC1JhC,MAAMM,YAAU,GAAG;AAC1B,IAAI,KAAK,EAAE;AACX,QAAQ,SAAS,EAAE,YAAY;AAC/B,KAAK;AACL,IAAI,OAAO,EAAE;AACb,QAAQ,SAAS,EAAE,YAAY;AAC/B,QAAQ,cAAc,EAAE,UAAU;AAClC,QAAQ,aAAa,EAAE,YAAY;AACnC,QAAQ,kBAAkB,EAAE,WAAW;AACvC,KAAK;AACL,CAAC;AACM,MAAM,2BAA2B,SAAS,aAAa,CAAC;AAC/D,IAAI,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACrC,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,QAAQ;AACZ,IAAI,OAAO,GAAG,IAAI,IAAI,EAAE;AACxB,IAAI,OAAO,GAAG;AACd,QAAQ,aAAa,EAAE;AACvB,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;AAClC,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;AAClC,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;AAClC,SAAS;AACT,KAAK;AACL,IAAI,OAAO;AACX,IAAI,SAAS,GAAG,CAAC,gBAAgB,EAAE,OAAO,CAAC;AAC3C,IAAI,eAAe;AACnB,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACpD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI;AACxC,gBAAgB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACpE,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACvD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI;AACvC,YAAY;AACZ,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,eAAe,CAAC,KAAK,EAAE;AAC3B,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,KAAK;AAC7C,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;AAC7E,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,8BAA8B,CAAC;AACzE,YAAY,CAAC;AACb,YAAY,KAAK,EAAE,CAAC,KAAK,KAAK;AAC9B,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACxD,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACvL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,2BAA2B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,kCAAkC,EAAE,SAAS,EAAE;AACrM,YAAY;AACZ,gBAAgB,OAAO,EAAE,WAAW;AACpC,gBAAgB,QAAQ,EAAE,iBAAiB;AAC3C,gBAAgB,IAAI,EAAE,CAAC,eAAe,CAAC;AACvC,aAAa;AACb,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAEA,YAAU,EAAE;AAC/D,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,mvFAAmvF,EAAE,MAAM,EAAE,CAAC,8BAA8B,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEN,IAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,oBAAoB,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,+CAA+C,EAAE,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,+CAA+C,EAAE,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,8MAA8M,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,mBAAmB,EAAE,QAAQ,EAAE,iGAAiG,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,qDAAqD,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,yHAAyH,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,EAAE,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEE,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,iOAAiO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,kBAAkB,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,8BAA8B,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,wBAAwB,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,EAAE,0BAA0B,CAAC,EAAE,OAAO,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,mBAAmB,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,kBAAkB,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,oBAAoB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,4BAA4B,EAAE,QAAQ,EAAE,gCAAgC,EAAE,MAAM,EAAE,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,wBAAwB,EAAE,QAAQ,EAAE,2BAA2B,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;AACr0N;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,UAAU,EAAE,CAAC;AACrI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,kCAAkC,EAAE,OAAO,EAAE;AAC5E,wBAAwB,YAAY;AACpC,wBAAwB,kBAAkB;AAC1C,wBAAwB,kBAAkB;AAC1C,wBAAwB,WAAW;AACnC,wBAAwB,cAAc;AACtC,wBAAwB,eAAe;AACvC,wBAAwB,eAAe;AACvC,wBAAwB,kBAAkB;AAC1C,wBAAwB,eAAe;AACvC,wBAAwB,mBAAmB;AAC3C,wBAAwB,cAAc;AACtC,wBAAwB,4BAA4B;AACpD,wBAAwB;AACxB,qBAAqB,EAAE,SAAS,EAAE;AAClC,wBAAwB;AACxB,4BAA4B,OAAO,EAAE,WAAW;AAChD,4BAA4B,QAAQ,EAAE,iBAAiB;AACvD,4BAA4B,IAAI,EAAE,CAAC,eAAe,CAAC;AACnD,yBAAyB;AACzB,wBAAwB,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAEG,YAAU,EAAE;AAC3E,qBAAqB,EAAE,QAAQ,EAAE,mvFAAmvF,EAAE,MAAM,EAAE,CAAC,8BAA8B,CAAC,EAAE;AACh0F,SAAS,CAAC,EAAE,CAAC;;AC7FN,MAAM,UAAU,GAAG;AAC1B,IAAI,KAAK,EAAE;AACX,QAAQ,SAAS,EAAE,YAAY;AAC/B,KAAK;AACL,IAAI,OAAO,EAAE;AACb,QAAQ,SAAS,EAAE,YAAY;AAC/B,QAAQ,cAAc,EAAE,UAAU;AAClC,QAAQ,aAAa,EAAE,YAAY;AACnC,QAAQ,kBAAkB,EAAE,WAAW;AACvC,KAAK;AACL,CAAC;AACM,MAAM,yBAAyB,SAAS,aAAa,CAAC;AAC7D,IAAI,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACrC,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,KAAK,GAAG;AACZ,QAAQ,SAAS,EAAE,EAAE;AACrB,QAAQ,KAAK,EAAE,EAAE;AACjB,QAAQ,MAAM,EAAE,CAAC;AACjB,KAAK;AACL,IAAI,IAAI,eAAe,GAAG;AAC1B,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC5C,IAAI;AACJ;AACA,IAAI,QAAQ;AACZ,IAAI,OAAO,GAAG,IAAI,IAAI,EAAE;AACxB,IAAI,OAAO,GAAG,KAAK;AACnB,IAAI,OAAO;AACX,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,IAAI;AACJ,IAAI,cAAc,CAAC,KAAK,EAAE;AAC1B,QAAQ,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK;AAC7C,QAAQ,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;AAC/B,QAAQ,MAAM,KAAK,GAAG,iBAAiB;AACvC,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACpC,YAAY,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU;AAC1C,QAAQ;AACR,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACpD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI;AACxC,gBAAgB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACpE,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACvD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI;AACvC,YAAY;AACZ,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,gBAAgB,CAAC,KAAK,EAAE;AAC5B,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,KAAK;AAC5C,IAAI;AACJ,IAAI,uBAAuB,CAAC,KAAK,EAAE,EAAE;AACrC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI;AAC3B,QAAQ,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;AACtE,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,OAAO,GAAG,KAAK;AACpC,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC;AAC9D,gBAAgB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,mBAAmB,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3E,YAAY,CAAC;AACb,YAAY,KAAK,EAAE,CAAC,KAAK,KAAK;AAC9B,gBAAgB,IAAI,CAAC,OAAO,GAAG,KAAK;AACpC,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACxD,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACrL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,yBAAyB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,uCAAuC,EAAE,SAAS,EAAE;AACxM,YAAY;AACZ,gBAAgB,OAAO,EAAE,WAAW;AACpC,gBAAgB,QAAQ,EAAE,iBAAiB;AAC3C,gBAAgB,IAAI,EAAE,CAAC,eAAe,CAAC;AACvC,aAAa;AACb,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE;AAC/D,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,6lHAA6lH,EAAE,MAAM,EAAE,CAAC,8BAA8B,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEN,IAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,oBAAoB,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,+CAA+C,EAAE,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,8MAA8M,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,wIAAwI,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,qDAAqD,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,yHAAyH,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,EAAE,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEE,IAAE,CAAC,mBAAmB,EAAE,QAAQ,EAAE,+BAA+B,EAAE,MAAM,EAAE,CAAC,oBAAoB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,iOAAiO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,kBAAkB,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,8BAA8B,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,wBAAwB,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,EAAE,0BAA0B,CAAC,EAAE,OAAO,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,mBAAmB,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEG,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,kBAAkB,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,oBAAoB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,mBAAmB,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,mCAAmC,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,oBAAoB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,wBAAwB,EAAE,QAAQ,EAAE,2BAA2B,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;AAC7zP;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,CAAC;AACnI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,uCAAuC,EAAE,OAAO,EAAE;AACjF,wBAAwB,YAAY;AACpC,wBAAwB,kBAAkB;AAC1C,wBAAwB,kBAAkB;AAC1C,wBAAwB,WAAW;AACnC,wBAAwB,cAAc;AACtC,wBAAwB,eAAe;AACvC,wBAAwB,eAAe;AACvC,wBAAwB,kBAAkB;AAC1C,wBAAwB,eAAe;AACvC,wBAAwB,mBAAmB;AAC3C,wBAAwB,kBAAkB;AAC1C,wBAAwB;AACxB,qBAAqB,EAAE,SAAS,EAAE;AAClC,wBAAwB;AACxB,4BAA4B,OAAO,EAAE,WAAW;AAChD,4BAA4B,QAAQ,EAAE,iBAAiB;AACvD,4BAA4B,IAAI,EAAE,CAAC,eAAe,CAAC;AACnD,yBAAyB;AACzB,wBAAwB,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE;AAC3E,qBAAqB,EAAE,QAAQ,EAAE,6lHAA6lH,EAAE,MAAM,EAAE,CAAC,8BAA8B,CAAC,EAAE;AAC1qH,SAAS,CAAC,EAAE,CAAC;;AC9HD,MAAC,mBAAmB,GAAG;AACnC,IAAI;AACJ,QAAQ,IAAI,EAAE,EAAE;AAChB,QAAQ,SAAS,EAAE;AACnB,KAAK;AACL,IAAI;AACJ,QAAQ,IAAI,EAAE,KAAK;AACnB,QAAQ,SAAS,EAAE;AACnB,KAAK;AACL,IAAI;AACJ,QAAQ,IAAI,EAAE,yBAAyB;AACvC,QAAQ,SAAS,EAAE,2BAA2B;AAC9C,KAAK;AACL,IAAI;AACJ,QAAQ,IAAI,EAAE,WAAW;AACzB,QAAQ,SAAS,EAAE,yBAAyB;AAC5C,KAAK;AACL;;AClBO,MAAM,UAAU,CAAC;AACxB,IAAI,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC5E,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACpK,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,+QAA+Q,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;AACrpB;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AACpH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,sBAAsB,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,+QAA+Q,EAAE;AAC3W,SAAS,CAAC,EAAE,CAAC;;ACDN,MAAM,iBAAiB,CAAC;AAC/B,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,OAAO,GAAG,KAAK;AACnB,IAAI,OAAO;AACX,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB,IAAI;AACJ,IAAI,IAAI,GAAG;AACX,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI;AAC3B,QAAQ,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACvD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI;AACvC,gBAAgB,IAAI,CAAC,OAAO,GAAG,KAAK;AACpC,YAAY,CAAC;AACb,YAAY,KAAK,EAAE,KAAK,IAAI;AAC5B,gBAAgB,IAAI,CAAC,OAAO,GAAG,KAAK;AACpC,YAAY;AACZ,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAC3K,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,iBAAiB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,8BAA8B,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,0jCAA0jC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAER,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,iOAAiO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;AAC15E;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC;AAC3H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,8BAA8B,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,0jCAA0jC,EAAE;AACpvC,SAAS,CAAC,EAAE,CAAC;;AC7BN,MAAM,kBAAkB,SAAS,aAAa,CAAC;AACtD,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,MAAM;AACV,IAAI,gBAAgB,GAAG,gBAAgB;AACvC,IAAI,cAAc,GAAG,qBAAqB;AAC1C,IAAI,eAAe,GAAG,eAAe;AACrC,IAAI,mBAAmB,GAAG,mBAAmB;AAC7C,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,SAAS,EAAE;AACxB,IAAI;AACJ,IAAI,SAAS,GAAG;AAChB,QAAQ,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AAC1D,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI;AACtC,YAAY;AACZ,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAC9K,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,kBAAkB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,+BAA+B,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,2nDAA2nD,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;AACjqE;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC;AAC5H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,+BAA+B,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,gBAAgB,CAAC,EAAE,QAAQ,EAAE,2nDAA2nD,EAAE;AACxxD,SAAS,CAAC,EAAE,CAAC;;ACRN,MAAM,kBAAkB,CAAC;AAChC,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC3B,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC;AAClC,IAAI,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC;AAClC,IAAI,MAAM,GAAG,EAAE;AACf,IAAI,cAAc,GAAG,qBAAqB;AAC1C,IAAI,eAAe,GAAG,eAAe;AACrC,IAAI,gBAAgB,GAAG,gBAAgB;AACvC,IAAI,mBAAmB,GAAG,mBAAmB;AAC7C,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,IAAI,GAAG;AACrB,YAAY,GAAG,IAAI,CAAC,MAAM;AAC1B,SAAS;AACT,QAAQ,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC;AAC1D,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AAC5D,oBAAoB,UAAU,EAAE,IAAI,CAAC,KAAK;AAC1C,iBAAiB,CAAC;AAClB,YAAY,CAAC;AACb,YAAY,KAAK,EAAE,CAAC,CAAC,KAAK;AAC1B,gBAAgB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;AAC7C,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAC5K,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,kBAAkB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,+BAA+B,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,inGAAinG,EAAE,MAAM,EAAE,CAAC,8BAA8B,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,8MAA8M,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,wIAAwI,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,qDAAqD,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,oBAAoB,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,+CAA+C,EAAE,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,yHAAyH,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,EAAE,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEE,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,kBAAkB,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,8BAA8B,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,wBAAwB,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,EAAE,0BAA0B,CAAC,EAAE,OAAO,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,mBAAmB,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,iOAAiO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAEC,EAAE,CAAC,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;AACr8M;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC;AAC5H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,+BAA+B,EAAE,OAAO,EAAE;AACzE,wBAAwB,YAAY;AACpC,wBAAwB,gBAAgB;AACxC,wBAAwB,WAAW;AACnC,wBAAwB,kBAAkB;AAC1C,wBAAwB,cAAc;AACtC,wBAAwB,eAAe;AACvC,wBAAwB,eAAe;AACvC,wBAAwB,eAAe;AACvC,wBAAwB;AACxB,qBAAqB,EAAE,QAAQ,EAAE,inGAAinG,EAAE,MAAM,EAAE,CAAC,8BAA8B,CAAC,EAAE;AAC9rG,SAAS,CAAC,EAAE,CAAC;;AC3DD,MAAC,kBAAkB,GAAG;AAClC,IAAI;AACJ,QAAQ,IAAI,EAAE,EAAE;AAChB,QAAQ,SAAS,EAAE,iBAAiB;AACpC,KAAK;AACL,IAAI;AACJ,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,SAAS,EAAE,kBAAkB;AACrC,KAAK;AACL,IAAI;AACJ,QAAQ,IAAI,EAAE,KAAK;AACnB,QAAQ,SAAS,EAAE,kBAAkB;AACrC;AACA;;ACPO,MAAM,yBAAyB,SAAS,aAAa,CAAC;AAC7D,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,MAAM,GAAG,CAAC;AACd,IAAI,KAAK,GAAG;AACZ,QAAQ;AACR,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,IAAI,EAAE,WAAW;AAC7B,SAAS;AACT,QAAQ;AACR,YAAY,IAAI,EAAE,WAAW;AAC7B,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,MAAM,EAAE,WAAW;AAC/B,SAAS;AACT,QAAQ;AACR,YAAY,IAAI,EAAE,WAAW;AAC7B,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,MAAM,EAAE,WAAW;AAC/B,SAAS;AACT,KAAK;AACL,IAAI,aAAa,GAAG;AACpB,QAAQ,IAAI,EAAE,EAAE;AAChB,QAAQ,MAAM,EAAE,EAAE;AAClB,KAAK;AACL,IAAI,QAAQ,GAAG,EAAE;AACjB,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK;AACzD,YAAY,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC;AAChF,YAAY,IAAI,MAAM,EAAE;AACxB,gBAAgB,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE;AAChE,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM;AAChD,YAAY;AACZ,YAAY,IAAI,CAAC,YAAY,EAAE;AAC/B,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,YAAY,GAAG;AACnB,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,IAAI,EAAE,gBAAgB;AAClC,SAAS;AACT,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC;AAC1E,QAAQ,IAAI,YAAY,EAAE;AAC1B,YAAY,OAAO,CAAC,QAAQ,CAAC,GAAG,YAAY;AAC5C,QAAQ;AACR,QAAQ,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;AACpE,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI;AACxC,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,oBAAoB,CAAC,OAAO,EAAE;AAClC,QAAQ,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO;AACrC,aAAa,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,SAAS;AACzE,aAAa,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK;AACnC,YAAY,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACpC,QAAQ,CAAC;AACT,aAAa,IAAI,CAAC,GAAG,CAAC;AACtB,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACrL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,yBAAyB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,uCAAuC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,6qBAA6qB,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEL,IAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,4BAA4B,EAAE,QAAQ,EAAE,gCAAgC,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;AAC11D;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,CAAC;AACnI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,uCAAuC,EAAE,OAAO,EAAE;AACjF,wBAAwB,YAAY;AACpC,wBAAwB,gBAAgB;AACxC,wBAAwB,eAAe;AACvC,wBAAwB,aAAa;AACrC,wBAAwB,YAAY;AACpC,wBAAwB,YAAY;AACpC,wBAAwB,cAAc;AACtC,wBAAwB,4BAA4B;AACpD,qBAAqB,EAAE,QAAQ,EAAE,6qBAA6qB,EAAE;AAChtB,SAAS,CAAC,EAAE,CAAC;;ACxEN,MAAM,0BAA0B,SAAS,aAAa,CAAC;AAC9D,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,OAAO;AACX,IAAI,IAAI,GAAG,EAAE;AACb,IAAI,QAAQ;AACZ,IAAI,MAAM,GAAG,qBAAqB;AAClC,IAAI,gBAAgB,GAAG,gBAAgB;AACvC,IAAI,sBAAsB,GAAG,sBAAsB;AACnD,IAAI,KAAK;AACT,IAAI,oBAAoB,GAAG,KAAK;AAChC,IAAI,cAAc,GAAG,EAAE;AACvB,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,IAAI;AACJ,IAAI,UAAU,GAAG;AACjB,QAAQ,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AAC3D,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI;AACvC,gBAAgB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ;AACjF,gBAAgB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;AACzD,gBAAgB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,GAAG,KAAK;AACnF,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,WAAW,CAAC,UAAU,EAAE;AAC5B,QAAQ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC;AACvD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI;AACxC,gBAAgB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC9D,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,kBAAkB,CAAC,OAAO,EAAE;AAChC,QAAQ,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;AAClE,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,KAAK,GAAG,GAAG;AAChC,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,wBAAwB,GAAG;AAC/B,QAAQ,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;AAC9E,YAAY,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,WAAW;AACnG,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,cAAc,GAAG,mBAAmB,CAAC,EAAE;AACpD,IAAI;AACJ,IAAI,kBAAkB,CAAC,IAAI,EAAE;AAC7B,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,KAAK,EAAE,sBAAsB;AACzC,YAAY,SAAS,EAAE,oCAAoC;AAC3D,YAAY,IAAI,EAAE;AAClB,gBAAgB,YAAY,EAAE,IAAI;AAClC,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;AACxC,QAAQ,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC;AACjD,YAAY,IAAI,EAAE,CAAC,MAAM,KAAK;AAC9B,gBAAgB,IAAI,MAAM,EAAE;AAC5B,oBAAoB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;AACvC,oBAAoB,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACpF,wBAAwB,IAAI,EAAE,CAAC,GAAG,KAAK;AACvC,4BAA4B,IAAI,CAAC,oBAAoB,GAAG,IAAI;AAC5D,wBAAwB,CAAC;AACzB,qBAAqB,CAAC;AACtB,gBAAgB;AAChB,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACtL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,0BAA0B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,wCAAwC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,65IAA65I,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,iOAAiO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,sBAAsB,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC;AAC54K;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,UAAU,EAAE,CAAC;AACpI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,wCAAwC,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,eAAe,CAAC,EAAE,QAAQ,EAAE,65IAA65I,EAAE;AACtlJ,SAAS,CAAC,EAAE,CAAC;;AClFD,MAAC,0BAA0B,GAAG;AAC1C,IAAI;AACJ,QAAQ,IAAI,EAAE,EAAE;AAChB,QAAQ,SAAS,EAAE,yBAAyB;AAC5C,KAAK;AACL,IAAI;AACJ,QAAQ,IAAI,EAAE,KAAK;AACnB,QAAQ,SAAS,EAAE,0BAA0B;AAC7C,KAAK;AACL;;ACFO,MAAM,wBAAwB,SAAS,aAAa,CAAC;AAC5D,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AAC3C,IAAI,KAAK;AACT,IAAI,IAAI,GAAG,EAAE;AACb,IAAI,QAAQ;AACZ,IAAI,MAAM,GAAG,mBAAmB;AAChC,IAAI,gBAAgB,GAAG,gBAAgB;AACvC,IAAI,KAAK;AACT,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,IAAI;AACJ,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACzD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI;AACrC,gBAAgB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ;AAC7E,gBAAgB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AACvD,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,WAAW,CAAC,UAAU,EAAE;AAC5B,QAAQ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC;AACvD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI;AACxC,gBAAgB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC9D,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,kBAAkB,CAAC,OAAO,EAAE;AAChC,QAAQ,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;AAClE,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,KAAK,GAAG,GAAG;AAChC,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;AAClE,YAAY,KAAK,EAAE,OAAO;AAC1B,YAAY,IAAI,EAAE;AAClB,gBAAgB,KAAK,EAAE,cAAc;AACrC,gBAAgB,OAAO,EAAE,oBAAoB;AAC7C,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK;AACtD,YAAY,IAAI,MAAM,EAAE;AACxB,gBAAgB,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACpE,oBAAoB,IAAI,EAAE,CAAC,GAAG,KAAK;AACnC,wBAAwB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU;AACtD,wBAAwB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC;AAC7D,oBAAoB,CAAC;AACrB,oBAAoB,KAAK,EAAE,CAAC,CAAC,KAAK;AAClC,wBAAwB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;AAC5D,oBAAoB,CAAC;AACrB,iBAAiB,CAAC;AAClB,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;AAClE,YAAY,KAAK,EAAE,OAAO;AAC1B,YAAY,IAAI,EAAE;AAClB,gBAAgB,OAAO,EAAE,EAAE;AAC3B,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK;AACtD,YAAY,IAAI,MAAM,EAAE;AACxB,gBAAgB,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC;AAChG,oBAAoB,IAAI,EAAE,CAAC,GAAG,KAAK;AACnC,wBAAwB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU;AACtD,wBAAwB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC;AAC7D,oBAAoB,CAAC;AACrB,oBAAoB,KAAK,EAAE,CAAC,CAAC,KAAK;AAClC,wBAAwB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;AAC5D,oBAAoB,CAAC;AACrB,iBAAiB,CAAC;AAClB,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,GAAG,EAAE;AAChB,IAAI,aAAa,GAAG;AACpB,QAAQ,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC;AAClE,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;AAChC,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACpL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,wBAAwB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,sCAAsC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,2wIAA2wI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,iOAAiO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,sBAAsB,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC;AACtvK;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,UAAU,EAAE,CAAC;AAClI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,sCAAsC,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,eAAe,CAAC,EAAE,QAAQ,EAAE,2wIAA2wI,EAAE;AACl8I,SAAS,CAAC,EAAE,CAAC;;AC/FN,MAAM,uBAAuB,SAAS,aAAa,CAAC;AAC3D,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC7C,IAAI,MAAM,GAAG,CAAC;AACd,IAAI,KAAK,GAAG;AACZ,QAAQ;AACR,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,IAAI,EAAE,WAAW;AAC7B,SAAS;AACT,QAAQ;AACR,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,MAAM,EAAE,SAAS;AAC7B,SAAS;AACT,QAAQ;AACR,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,MAAM,EAAE,UAAU;AAC9B,SAAS;AACT,QAAQ;AACR,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,MAAM,EAAE,UAAU;AAC9B,SAAS;AACT,QAAQ;AACR,YAAY,IAAI,EAAE,WAAW;AAC7B,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,MAAM,EAAE,WAAW;AAC/B,SAAS;AACT,KAAK;AACL,IAAI,aAAa,GAAG;AACpB,QAAQ,IAAI,EAAE,EAAE;AAChB,QAAQ,MAAM,EAAE,EAAE;AAClB,KAAK;AACL,IAAI,MAAM,GAAG,EAAE;AACf,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK;AACzD,YAAY,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC;AAChF,YAAY,IAAI,MAAM,EAAE;AACxB,gBAAgB,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE;AAChE,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM;AAChD,YAAY;AACZ,YAAY,IAAI,CAAC,UAAU,EAAE;AAC7B,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,UAAU,GAAG;AACjB,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,IAAI,EAAE,gBAAgB;AAClC,SAAS;AACT,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC;AAC1E,QAAQ,IAAI,YAAY,EAAE;AAC1B,YAAY,OAAO,CAAC,QAAQ,CAAC,GAAG,YAAY;AAC5C,QAAQ;AACR,QAAQ,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;AAClE,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI;AACtC,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,oBAAoB,CAAC,OAAO,EAAE;AAClC,QAAQ,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO;AACrC,aAAa,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,SAAS;AACzE,aAAa,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK;AACnC,YAAY,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACpC,QAAQ,CAAC;AACT,aAAa,IAAI,CAAC,GAAG,CAAC;AACtB,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACnL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,uBAAuB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,qCAAqC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,mrBAAmrB,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,0BAA0B,EAAE,QAAQ,EAAE,8BAA8B,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC;AACh3D;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,UAAU,EAAE,CAAC;AACjI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,qCAAqC,EAAE,OAAO,EAAE;AAC/E,wBAAwB,YAAY;AACpC,wBAAwB,gBAAgB;AACxC,wBAAwB,aAAa;AACrC,wBAAwB,YAAY;AACpC,wBAAwB,YAAY;AACpC,wBAAwB,0BAA0B;AAClD,wBAAwB,cAAc;AACtC,wBAAwB,aAAa;AACrC,qBAAqB,EAAE,QAAQ,EAAE,mrBAAmrB,EAAE;AACttB,SAAS,CAAC,EAAE,CAAC;;ACzFD,MAAC,wBAAwB,GAAG;AACxC,IAAI;AACJ,QAAQ,IAAI,EAAE,EAAE;AAChB,QAAQ,SAAS,EAAE,uBAAuB;AAC1C,KAAK;AACL,IAAI;AACJ,QAAQ,IAAI,EAAE,KAAK;AACnB,QAAQ,SAAS,EAAE,wBAAwB;AAC3C,KAAK;AACL;;ACXA;AACA;AACA;;;;"}